diff --git a/apps/cms/src/app/(payload)/admin/[[...segments]]/not-found.tsx b/apps/cms/src/app/(payload)/admin/[[...segments]]/not-found.tsx
index abeb574..dcf6bf1 100644
--- a/apps/cms/src/app/(payload)/admin/[[...segments]]/not-found.tsx
+++ b/apps/cms/src/app/(payload)/admin/[[...segments]]/not-found.tsx
@@ -4,7 +4,7 @@ import type { Metadata } from "next";
import config from "@payload-config";
import { NotFoundPage, generatePageMetadata } from "@payloadcms/next/views";
-import { importMap } from "../../importMap.js";
+import { importMap } from "../../importMap";
type Args = {
params: Promise<{ segments: string[] }>;
diff --git a/apps/cms/src/app/(payload)/admin/[[...segments]]/page.tsx b/apps/cms/src/app/(payload)/admin/[[...segments]]/page.tsx
index 55580f2..9f4b5f9 100644
--- a/apps/cms/src/app/(payload)/admin/[[...segments]]/page.tsx
+++ b/apps/cms/src/app/(payload)/admin/[[...segments]]/page.tsx
@@ -4,7 +4,7 @@ import type { Metadata } from "next";
import config from "@payload-config";
import { RootPage, generatePageMetadata } from "@payloadcms/next/views";
-import { importMap } from "../../importMap.js";
+import { importMap } from "../../importMap";
type Args = {
params: Promise<{ segments: string[] }>;
diff --git a/apps/cms/src/app/(payload)/layout.tsx b/apps/cms/src/app/(payload)/layout.tsx
index b5bc3d2..4a56c52 100644
--- a/apps/cms/src/app/(payload)/layout.tsx
+++ b/apps/cms/src/app/(payload)/layout.tsx
@@ -6,7 +6,7 @@ import config from "@payload-config";
import { RootLayout } from "@payloadcms/next/layouts";
import React from "react";
-import { importMap } from "./importMap.js";
+import { importMap } from "./importMap";
import "./custom.scss";
type Args = {
diff --git a/apps/web-next/next-env.d.ts b/apps/web-next/next-env.d.ts
new file mode 100644
index 0000000..830fb59
--- /dev/null
+++ b/apps/web-next/next-env.d.ts
@@ -0,0 +1,6 @@
+///
+///
+///
+
+// NOTE: This file should not be edited
+// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
diff --git a/apps/web-next/tsconfig.json b/apps/web-next/tsconfig.json
index c7800e0..9a933d2 100644
--- a/apps/web-next/tsconfig.json
+++ b/apps/web-next/tsconfig.json
@@ -3,9 +3,19 @@
"compilerOptions": {
"baseUrl": ".",
"paths": {
- "@/*": ["./src/*"]
- }
+ "@/*": [
+ "./src/*"
+ ]
+ },
+ "allowJs": true
},
- "include": ["src/**/*.ts", "src/**/*.tsx", "next-env.d.ts"],
- "exclude": ["node_modules"]
+ "include": [
+ "next-env.d.ts",
+ "src/**/*.ts",
+ "src/**/*.tsx",
+ ".next/types/**/*.ts"
+ ],
+ "exclude": [
+ "node_modules"
+ ]
}
diff --git a/packages/api-client/src/index.ts b/packages/api-client/src/index.ts
index 7a30ddd..92fc846 100644
--- a/packages/api-client/src/index.ts
+++ b/packages/api-client/src/index.ts
@@ -1,3 +1,3 @@
-export { ApiProvider } from "./provider.js";
-export { useTRPC } from "./trpc.js";
-export { getQueryClient } from "./query-client.js";
+export { ApiProvider } from "./provider";
+export { useTRPC } from "./trpc";
+export { getQueryClient } from "./query-client";
diff --git a/packages/api-client/src/provider.tsx b/packages/api-client/src/provider.tsx
index f8bb215..6de7a80 100644
--- a/packages/api-client/src/provider.tsx
+++ b/packages/api-client/src/provider.tsx
@@ -3,8 +3,8 @@
import { QueryClientProvider } from "@tanstack/react-query";
import { createTRPCClient, httpBatchLink } from "@trpc/client";
import type { AppRouter } from "@repo/api";
-import { TRPCProvider } from "./trpc.js";
-import { getQueryClient } from "./query-client.js";
+import { TRPCProvider } from "./trpc";
+import { getQueryClient } from "./query-client";
export function ApiProvider({
children,
diff --git a/packages/api/src/index.ts b/packages/api/src/index.ts
index b35fc58..3488ab4 100644
--- a/packages/api/src/index.ts
+++ b/packages/api/src/index.ts
@@ -1 +1 @@
-export { appRouter, type AppRouter } from "./router/index.js";
+export { appRouter, type AppRouter } from "./router/index";
diff --git a/packages/api/src/router/auth.router.ts b/packages/api/src/router/auth.router.ts
index 6bbf14e..86835eb 100644
--- a/packages/api/src/router/auth.router.ts
+++ b/packages/api/src/router/auth.router.ts
@@ -1,5 +1,5 @@
import { z } from "zod";
-import { router, publicProcedure } from "../trpc.js";
+import { router, publicProcedure } from "../trpc";
import {
signInController,
signUpController,
diff --git a/packages/api/src/router/content.router.ts b/packages/api/src/router/content.router.ts
index ad4ac54..57c55be 100644
--- a/packages/api/src/router/content.router.ts
+++ b/packages/api/src/router/content.router.ts
@@ -1,5 +1,5 @@
import { z } from "zod";
-import { router, publicProcedure } from "../trpc.js";
+import { router, publicProcedure } from "../trpc";
import { createArticleController, getArticlesController } from "@repo/core";
export const contentRouter = router({
diff --git a/packages/api/src/router/index.ts b/packages/api/src/router/index.ts
index c5f6193..847ffa6 100644
--- a/packages/api/src/router/index.ts
+++ b/packages/api/src/router/index.ts
@@ -1,6 +1,6 @@
-import { router } from "../trpc.js";
-import { authRouter } from "./auth.router.js";
-import { contentRouter } from "./content.router.js";
+import { router } from "../trpc";
+import { authRouter } from "./auth.router";
+import { contentRouter } from "./content.router";
export const appRouter = router({
auth: authRouter,
diff --git a/packages/cms-client/src/client.ts b/packages/cms-client/src/client.ts
index aceaa9c..bb5b5a5 100644
--- a/packages/cms-client/src/client.ts
+++ b/packages/cms-client/src/client.ts
@@ -1,7 +1,7 @@
import type { Payload } from "payload";
-import type { PayloadClient } from "./types.js";
-import { LocalPayloadClient } from "./local-client.js";
-import { HTTPPayloadClient } from "./http-client.js";
+import type { PayloadClient } from "./types";
+import { LocalPayloadClient } from "./local-client";
+import { HTTPPayloadClient } from "./http-client";
type PayloadClientOptions =
| { mode: "local"; payload: Payload }
diff --git a/packages/cms-client/src/http-client.ts b/packages/cms-client/src/http-client.ts
index d00381d..3d372ce 100644
--- a/packages/cms-client/src/http-client.ts
+++ b/packages/cms-client/src/http-client.ts
@@ -2,7 +2,7 @@ import type {
FindOptions,
PayloadClient,
PayloadClientResult,
-} from "./types.js";
+} from "./types";
export class HTTPPayloadClient implements PayloadClient {
constructor(private baseURL: string) {}
diff --git a/packages/cms-client/src/index.ts b/packages/cms-client/src/index.ts
index f812f16..78fbe5f 100644
--- a/packages/cms-client/src/index.ts
+++ b/packages/cms-client/src/index.ts
@@ -1,8 +1,8 @@
-export { createPayloadClient } from "./client.js";
-export { LocalPayloadClient } from "./local-client.js";
-export { HTTPPayloadClient } from "./http-client.js";
+export { createPayloadClient } from "./client";
+export { LocalPayloadClient } from "./local-client";
+export { HTTPPayloadClient } from "./http-client";
export type {
PayloadClient,
PayloadClientResult,
FindOptions,
-} from "./types.js";
+} from "./types";
diff --git a/packages/cms-client/src/local-client.ts b/packages/cms-client/src/local-client.ts
index f6e02c3..3b8dcf8 100644
--- a/packages/cms-client/src/local-client.ts
+++ b/packages/cms-client/src/local-client.ts
@@ -3,7 +3,7 @@ import type {
FindOptions,
PayloadClient,
PayloadClientResult,
-} from "./types.js";
+} from "./types";
export class LocalPayloadClient implements PayloadClient {
constructor(private payload: Payload) {}
diff --git a/packages/core/src/application/repositories/articles.repository.interface.ts b/packages/core/src/application/repositories/articles.repository.interface.ts
index c71c948..e588a3f 100644
--- a/packages/core/src/application/repositories/articles.repository.interface.ts
+++ b/packages/core/src/application/repositories/articles.repository.interface.ts
@@ -1,4 +1,4 @@
-import type { Article } from "@/entities/models/article.js";
+import type { Article } from "@/entities/models/article";
export interface IArticlesRepository {
getArticle(id: string): Promise;
diff --git a/packages/core/src/application/repositories/index.ts b/packages/core/src/application/repositories/index.ts
index 4290829..3970ca6 100644
--- a/packages/core/src/application/repositories/index.ts
+++ b/packages/core/src/application/repositories/index.ts
@@ -1,2 +1,2 @@
-export type { IUsersRepository } from "./users.repository.interface.js";
-export type { IArticlesRepository } from "./articles.repository.interface.js";
+export type { IUsersRepository } from "./users.repository.interface";
+export type { IArticlesRepository } from "./articles.repository.interface";
diff --git a/packages/core/src/application/repositories/users.repository.interface.ts b/packages/core/src/application/repositories/users.repository.interface.ts
index 8b1bd3a..16c80e5 100644
--- a/packages/core/src/application/repositories/users.repository.interface.ts
+++ b/packages/core/src/application/repositories/users.repository.interface.ts
@@ -1,4 +1,4 @@
-import type { User } from "@/entities/models/user.js";
+import type { User } from "@/entities/models/user";
export interface IUsersRepository {
getUser(id: string): Promise;
diff --git a/packages/core/src/application/services/auth.service.interface.ts b/packages/core/src/application/services/auth.service.interface.ts
index d195fb6..5718f3b 100644
--- a/packages/core/src/application/services/auth.service.interface.ts
+++ b/packages/core/src/application/services/auth.service.interface.ts
@@ -1,6 +1,6 @@
-import type { Cookie } from "@/entities/models/cookie.js";
-import type { Session } from "@/entities/models/session.js";
-import type { User } from "@/entities/models/user.js";
+import type { Cookie } from "@/entities/models/cookie";
+import type { Session } from "@/entities/models/session";
+import type { User } from "@/entities/models/user";
export interface IAuthenticationService {
generateUserId(): string;
diff --git a/packages/core/src/application/services/index.ts b/packages/core/src/application/services/index.ts
index 4a8cb14..2e8c013 100644
--- a/packages/core/src/application/services/index.ts
+++ b/packages/core/src/application/services/index.ts
@@ -1,2 +1,2 @@
-export type { IAuthenticationService } from "./auth.service.interface.js";
-export type { ITelemetryService } from "./telemetry.service.interface.js";
+export type { IAuthenticationService } from "./auth.service.interface";
+export type { ITelemetryService } from "./telemetry.service.interface";
diff --git a/packages/core/src/application/use-cases/auth/sign-in.use-case.ts b/packages/core/src/application/use-cases/auth/sign-in.use-case.ts
index eb4a9b1..b9be7c9 100644
--- a/packages/core/src/application/use-cases/auth/sign-in.use-case.ts
+++ b/packages/core/src/application/use-cases/auth/sign-in.use-case.ts
@@ -1,7 +1,7 @@
-import { AuthenticationError } from "@/entities/errors/auth.js";
-import type { Cookie } from "@/entities/models/cookie.js";
-import type { Session } from "@/entities/models/session.js";
-import { getInjection } from "@/di/container.js";
+import { AuthenticationError } from "@/entities/errors/auth";
+import type { Cookie } from "@/entities/models/cookie";
+import type { Session } from "@/entities/models/session";
+import { getInjection } from "@/di/container";
export async function signInUseCase(input: {
username: string;
diff --git a/packages/core/src/application/use-cases/auth/sign-out.use-case.ts b/packages/core/src/application/use-cases/auth/sign-out.use-case.ts
index e07c2a7..b738e7c 100644
--- a/packages/core/src/application/use-cases/auth/sign-out.use-case.ts
+++ b/packages/core/src/application/use-cases/auth/sign-out.use-case.ts
@@ -1,5 +1,5 @@
-import type { Cookie } from "@/entities/models/cookie.js";
-import { getInjection } from "@/di/container.js";
+import type { Cookie } from "@/entities/models/cookie";
+import { getInjection } from "@/di/container";
export async function signOutUseCase(
sessionId: string
diff --git a/packages/core/src/application/use-cases/auth/sign-up.use-case.ts b/packages/core/src/application/use-cases/auth/sign-up.use-case.ts
index f264ea9..233ff1f 100644
--- a/packages/core/src/application/use-cases/auth/sign-up.use-case.ts
+++ b/packages/core/src/application/use-cases/auth/sign-up.use-case.ts
@@ -1,8 +1,8 @@
-import { AuthenticationError } from "@/entities/errors/auth.js";
-import type { Cookie } from "@/entities/models/cookie.js";
-import type { Session } from "@/entities/models/session.js";
-import type { User } from "@/entities/models/user.js";
-import { getInjection } from "@/di/container.js";
+import { AuthenticationError } from "@/entities/errors/auth";
+import type { Cookie } from "@/entities/models/cookie";
+import type { Session } from "@/entities/models/session";
+import type { User } from "@/entities/models/user";
+import { getInjection } from "@/di/container";
export async function signUpUseCase(input: {
username: string;
diff --git a/packages/core/src/application/use-cases/content/create-article.use-case.ts b/packages/core/src/application/use-cases/content/create-article.use-case.ts
index 64985c8..698a249 100644
--- a/packages/core/src/application/use-cases/content/create-article.use-case.ts
+++ b/packages/core/src/application/use-cases/content/create-article.use-case.ts
@@ -1,5 +1,5 @@
-import type { Article } from "@/entities/models/article.js";
-import { getInjection } from "@/di/container.js";
+import type { Article } from "@/entities/models/article";
+import { getInjection } from "@/di/container";
function generateSlug(title: string): string {
return title
diff --git a/packages/core/src/application/use-cases/content/get-articles.use-case.ts b/packages/core/src/application/use-cases/content/get-articles.use-case.ts
index 6094d69..d9d5d52 100644
--- a/packages/core/src/application/use-cases/content/get-articles.use-case.ts
+++ b/packages/core/src/application/use-cases/content/get-articles.use-case.ts
@@ -1,5 +1,5 @@
-import type { Article } from "@/entities/models/article.js";
-import { getInjection } from "@/di/container.js";
+import type { Article } from "@/entities/models/article";
+import { getInjection } from "@/di/container";
export async function getArticlesUseCase(options?: {
status?: string;
diff --git a/packages/core/src/di/container.ts b/packages/core/src/di/container.ts
index f53d0f4..fd0e543 100644
--- a/packages/core/src/di/container.ts
+++ b/packages/core/src/di/container.ts
@@ -1,9 +1,9 @@
import "reflect-metadata";
import { Container } from "inversify";
-import { AuthModule } from "./modules/auth.module.js";
-import { ContentModule } from "./modules/content.module.js";
-import { DI_RETURN_TYPES, DI_SYMBOLS } from "./types.js";
+import { AuthModule } from "./modules/auth.module";
+import { ContentModule } from "./modules/content.module";
+import { DI_RETURN_TYPES, DI_SYMBOLS } from "./types";
const ApplicationContainer = new Container({
defaultScope: "Singleton",
diff --git a/packages/core/src/di/modules/auth.module.ts b/packages/core/src/di/modules/auth.module.ts
index 58111f6..cddce58 100644
--- a/packages/core/src/di/modules/auth.module.ts
+++ b/packages/core/src/di/modules/auth.module.ts
@@ -1,10 +1,10 @@
import { ContainerModule, interfaces } from "inversify";
-import type { IUsersRepository } from "@/application/repositories/users.repository.interface.js";
-import type { IAuthenticationService } from "@/application/services/auth.service.interface.js";
-import { MockUsersRepository } from "@/infrastructure/repositories/mock-users.repository.js";
-import { MockAuthenticationService } from "@/infrastructure/services/mock-auth.service.js";
-import { DI_SYMBOLS } from "../types.js";
+import type { IUsersRepository } from "@/application/repositories/users.repository.interface";
+import type { IAuthenticationService } from "@/application/services/auth.service.interface";
+import { MockUsersRepository } from "@/infrastructure/repositories/mock-users.repository";
+import { MockAuthenticationService } from "@/infrastructure/services/mock-auth.service";
+import { DI_SYMBOLS } from "../types";
const initializeModule = (bind: interfaces.Bind) => {
bind(DI_SYMBOLS.IUsersRepository).to(MockUsersRepository);
diff --git a/packages/core/src/di/modules/content.module.ts b/packages/core/src/di/modules/content.module.ts
index 15ca4dd..b8d3317 100644
--- a/packages/core/src/di/modules/content.module.ts
+++ b/packages/core/src/di/modules/content.module.ts
@@ -1,8 +1,8 @@
import { ContainerModule, interfaces } from "inversify";
-import type { IArticlesRepository } from "@/application/repositories/articles.repository.interface.js";
-import { MockArticlesRepository } from "@/infrastructure/repositories/mock-articles.repository.js";
-import { DI_SYMBOLS } from "../types.js";
+import type { IArticlesRepository } from "@/application/repositories/articles.repository.interface";
+import { MockArticlesRepository } from "@/infrastructure/repositories/mock-articles.repository";
+import { DI_SYMBOLS } from "../types";
const initializeModule = (bind: interfaces.Bind) => {
bind(DI_SYMBOLS.IArticlesRepository).to(
diff --git a/packages/core/src/di/types.ts b/packages/core/src/di/types.ts
index b923ad4..c9fd476 100644
--- a/packages/core/src/di/types.ts
+++ b/packages/core/src/di/types.ts
@@ -1,7 +1,7 @@
-import type { IAuthenticationService } from "@/application/services/auth.service.interface.js";
-import type { ITelemetryService } from "@/application/services/telemetry.service.interface.js";
-import type { IUsersRepository } from "@/application/repositories/users.repository.interface.js";
-import type { IArticlesRepository } from "@/application/repositories/articles.repository.interface.js";
+import type { IAuthenticationService } from "@/application/services/auth.service.interface";
+import type { ITelemetryService } from "@/application/services/telemetry.service.interface";
+import type { IUsersRepository } from "@/application/repositories/users.repository.interface";
+import type { IArticlesRepository } from "@/application/repositories/articles.repository.interface";
export const DI_SYMBOLS = {
IAuthenticationService: Symbol.for("IAuthenticationService"),
diff --git a/packages/core/src/entities/errors/index.ts b/packages/core/src/entities/errors/index.ts
index edb5fbd..9a41450 100644
--- a/packages/core/src/entities/errors/index.ts
+++ b/packages/core/src/entities/errors/index.ts
@@ -2,5 +2,5 @@ export {
AuthenticationError,
UnauthenticatedError,
UnauthorizedError,
-} from "./auth.js";
-export { NotFoundError, InputParseError } from "./common.js";
+} from "./auth";
+export { NotFoundError, InputParseError } from "./common";
diff --git a/packages/core/src/entities/index.ts b/packages/core/src/entities/index.ts
index fd3412e..6c5b32a 100644
--- a/packages/core/src/entities/index.ts
+++ b/packages/core/src/entities/index.ts
@@ -1,2 +1,2 @@
-export * from "./models/index.js";
-export * from "./errors/index.js";
+export * from "./models/index";
+export * from "./errors/index";
diff --git a/packages/core/src/entities/models/index.ts b/packages/core/src/entities/models/index.ts
index b852b8b..f1e7217 100644
--- a/packages/core/src/entities/models/index.ts
+++ b/packages/core/src/entities/models/index.ts
@@ -1,9 +1,9 @@
-export { userSchema, type User } from "./user.js";
+export { userSchema, type User } from "./user";
export {
articleSchema,
articleStatusSchema,
type Article,
type ArticleStatus,
-} from "./article.js";
-export { sessionSchema, type Session } from "./session.js";
-export type { Cookie } from "./cookie.js";
+} from "./article";
+export { sessionSchema, type Session } from "./session";
+export type { Cookie } from "./cookie";
diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts
index 195f5b8..a2b3477 100644
--- a/packages/core/src/index.ts
+++ b/packages/core/src/index.ts
@@ -1,22 +1,22 @@
// @repo/core — Clean Architecture core package
-export * from "./entities/index.js";
-export * from "./application/repositories/index.js";
-export * from "./application/services/index.js";
-export { signInUseCase } from "./application/use-cases/auth/sign-in.use-case.js";
-export { signUpUseCase } from "./application/use-cases/auth/sign-up.use-case.js";
-export { signOutUseCase } from "./application/use-cases/auth/sign-out.use-case.js";
-export { createArticleUseCase } from "./application/use-cases/content/create-article.use-case.js";
-export { getArticlesUseCase } from "./application/use-cases/content/get-articles.use-case.js";
-export { signInController } from "./interface-adapters/controllers/auth/sign-in.controller.js";
-export { signUpController } from "./interface-adapters/controllers/auth/sign-up.controller.js";
-export { signOutController } from "./interface-adapters/controllers/auth/sign-out.controller.js";
+export * from "./entities/index";
+export * from "./application/repositories/index";
+export * from "./application/services/index";
+export { signInUseCase } from "./application/use-cases/auth/sign-in.use-case";
+export { signUpUseCase } from "./application/use-cases/auth/sign-up.use-case";
+export { signOutUseCase } from "./application/use-cases/auth/sign-out.use-case";
+export { createArticleUseCase } from "./application/use-cases/content/create-article.use-case";
+export { getArticlesUseCase } from "./application/use-cases/content/get-articles.use-case";
+export { signInController } from "./interface-adapters/controllers/auth/sign-in.controller";
+export { signUpController } from "./interface-adapters/controllers/auth/sign-up.controller";
+export { signOutController } from "./interface-adapters/controllers/auth/sign-out.controller";
export {
createArticleController,
getArticlesController,
-} from "./interface-adapters/controllers/content/articles.controller.js";
+} from "./interface-adapters/controllers/content/articles.controller";
export {
getInjection,
initializeContainer,
destroyContainer,
-} from "./di/container.js";
-export { DI_SYMBOLS } from "./di/types.js";
+} from "./di/container";
+export { DI_SYMBOLS } from "./di/types";
diff --git a/packages/core/src/infrastructure/repositories/mock-articles.repository.ts b/packages/core/src/infrastructure/repositories/mock-articles.repository.ts
index 8ed6800..3dbfff9 100644
--- a/packages/core/src/infrastructure/repositories/mock-articles.repository.ts
+++ b/packages/core/src/infrastructure/repositories/mock-articles.repository.ts
@@ -1,7 +1,7 @@
import { injectable } from "inversify";
-import type { IArticlesRepository } from "@/application/repositories/articles.repository.interface.js";
-import type { Article } from "@/entities/models/article.js";
+import type { IArticlesRepository } from "@/application/repositories/articles.repository.interface";
+import type { Article } from "@/entities/models/article";
@injectable()
export class MockArticlesRepository implements IArticlesRepository {
diff --git a/packages/core/src/infrastructure/repositories/mock-users.repository.ts b/packages/core/src/infrastructure/repositories/mock-users.repository.ts
index 968f838..c2d8c90 100644
--- a/packages/core/src/infrastructure/repositories/mock-users.repository.ts
+++ b/packages/core/src/infrastructure/repositories/mock-users.repository.ts
@@ -1,7 +1,7 @@
import { injectable } from "inversify";
-import type { IUsersRepository } from "@/application/repositories/users.repository.interface.js";
-import type { User } from "@/entities/models/user.js";
+import type { IUsersRepository } from "@/application/repositories/users.repository.interface";
+import type { User } from "@/entities/models/user";
@injectable()
export class MockUsersRepository implements IUsersRepository {
diff --git a/packages/core/src/infrastructure/services/mock-auth.service.ts b/packages/core/src/infrastructure/services/mock-auth.service.ts
index 9999b55..890939e 100644
--- a/packages/core/src/infrastructure/services/mock-auth.service.ts
+++ b/packages/core/src/infrastructure/services/mock-auth.service.ts
@@ -1,13 +1,13 @@
import { inject, injectable } from "inversify";
-import type { IAuthenticationService } from "@/application/services/auth.service.interface.js";
-import type { IUsersRepository } from "@/application/repositories/users.repository.interface.js";
-import { UnauthenticatedError } from "@/entities/errors/auth.js";
-import { sessionSchema, type Session } from "@/entities/models/session.js";
-import type { Cookie } from "@/entities/models/cookie.js";
-import type { User } from "@/entities/models/user.js";
-import { DI_SYMBOLS } from "@/di/types.js";
-import { SESSION_COOKIE } from "@/config.js";
+import type { IAuthenticationService } from "@/application/services/auth.service.interface";
+import type { IUsersRepository } from "@/application/repositories/users.repository.interface";
+import { UnauthenticatedError } from "@/entities/errors/auth";
+import { sessionSchema, type Session } from "@/entities/models/session";
+import type { Cookie } from "@/entities/models/cookie";
+import type { User } from "@/entities/models/user";
+import { DI_SYMBOLS } from "@/di/types";
+import { SESSION_COOKIE } from "@/config";
@injectable()
export class MockAuthenticationService implements IAuthenticationService {
diff --git a/packages/core/src/infrastructure/services/mock-telemetry.service.ts b/packages/core/src/infrastructure/services/mock-telemetry.service.ts
index 5b6e1c1..ed36589 100644
--- a/packages/core/src/infrastructure/services/mock-telemetry.service.ts
+++ b/packages/core/src/infrastructure/services/mock-telemetry.service.ts
@@ -1,6 +1,6 @@
import { injectable } from "inversify";
-import type { ITelemetryService } from "@/application/services/telemetry.service.interface.js";
+import type { ITelemetryService } from "@/application/services/telemetry.service.interface";
@injectable()
export class MockTelemetryService implements ITelemetryService {
diff --git a/packages/core/src/interface-adapters/controllers/auth/sign-in.controller.ts b/packages/core/src/interface-adapters/controllers/auth/sign-in.controller.ts
index 745a7c2..48a792a 100644
--- a/packages/core/src/interface-adapters/controllers/auth/sign-in.controller.ts
+++ b/packages/core/src/interface-adapters/controllers/auth/sign-in.controller.ts
@@ -1,8 +1,8 @@
import { z } from "zod";
-import { InputParseError } from "@/entities/errors/common.js";
-import type { Cookie } from "@/entities/models/cookie.js";
-import { signInUseCase } from "@/application/use-cases/auth/sign-in.use-case.js";
+import { InputParseError } from "@/entities/errors/common";
+import type { Cookie } from "@/entities/models/cookie";
+import { signInUseCase } from "@/application/use-cases/auth/sign-in.use-case";
const inputSchema = z.object({
username: z.string().min(3).max(31),
diff --git a/packages/core/src/interface-adapters/controllers/auth/sign-out.controller.ts b/packages/core/src/interface-adapters/controllers/auth/sign-out.controller.ts
index ed75dfe..bbe18a1 100644
--- a/packages/core/src/interface-adapters/controllers/auth/sign-out.controller.ts
+++ b/packages/core/src/interface-adapters/controllers/auth/sign-out.controller.ts
@@ -1,6 +1,6 @@
-import { InputParseError } from "@/entities/errors/common.js";
-import type { Cookie } from "@/entities/models/cookie.js";
-import { signOutUseCase } from "@/application/use-cases/auth/sign-out.use-case.js";
+import { InputParseError } from "@/entities/errors/common";
+import type { Cookie } from "@/entities/models/cookie";
+import { signOutUseCase } from "@/application/use-cases/auth/sign-out.use-case";
export async function signOutController(
sessionId: string | undefined
diff --git a/packages/core/src/interface-adapters/controllers/auth/sign-up.controller.ts b/packages/core/src/interface-adapters/controllers/auth/sign-up.controller.ts
index 5cad5b4..a973239 100644
--- a/packages/core/src/interface-adapters/controllers/auth/sign-up.controller.ts
+++ b/packages/core/src/interface-adapters/controllers/auth/sign-up.controller.ts
@@ -1,7 +1,7 @@
import { z } from "zod";
-import { InputParseError } from "@/entities/errors/common.js";
-import { signUpUseCase } from "@/application/use-cases/auth/sign-up.use-case.js";
+import { InputParseError } from "@/entities/errors/common";
+import { signUpUseCase } from "@/application/use-cases/auth/sign-up.use-case";
const inputSchema = z
.object({
diff --git a/packages/core/src/interface-adapters/controllers/content/articles.controller.ts b/packages/core/src/interface-adapters/controllers/content/articles.controller.ts
index f35534b..982ce28 100644
--- a/packages/core/src/interface-adapters/controllers/content/articles.controller.ts
+++ b/packages/core/src/interface-adapters/controllers/content/articles.controller.ts
@@ -1,9 +1,9 @@
import { z } from "zod";
-import { InputParseError } from "@/entities/errors/common.js";
-import type { Article } from "@/entities/models/article.js";
-import { createArticleUseCase } from "@/application/use-cases/content/create-article.use-case.js";
-import { getArticlesUseCase } from "@/application/use-cases/content/get-articles.use-case.js";
+import { InputParseError } from "@/entities/errors/common";
+import type { Article } from "@/entities/models/article";
+import { createArticleUseCase } from "@/application/use-cases/content/create-article.use-case";
+import { getArticlesUseCase } from "@/application/use-cases/content/get-articles.use-case";
const createInputSchema = z.object({
title: z.string().min(1).max(255),
diff --git a/packages/core/tests/unit/controllers/auth/sign-in.controller.test.ts b/packages/core/tests/unit/controllers/auth/sign-in.controller.test.ts
index 1de30ad..4012138 100644
--- a/packages/core/tests/unit/controllers/auth/sign-in.controller.test.ts
+++ b/packages/core/tests/unit/controllers/auth/sign-in.controller.test.ts
@@ -4,10 +4,10 @@ import { afterEach, beforeEach, describe, expect, it } from "vitest";
import {
destroyContainer,
initializeContainer,
-} from "@/di/container.js";
-import { signInController } from "@/interface-adapters/controllers/auth/sign-in.controller.js";
-import { InputParseError } from "@/entities/errors/common.js";
-import { AuthenticationError } from "@/entities/errors/auth.js";
+} from "@/di/container";
+import { signInController } from "@/interface-adapters/controllers/auth/sign-in.controller";
+import { InputParseError } from "@/entities/errors/common";
+import { AuthenticationError } from "@/entities/errors/auth";
beforeEach(() => {
initializeContainer();
diff --git a/packages/core/tests/unit/controllers/auth/sign-out.controller.test.ts b/packages/core/tests/unit/controllers/auth/sign-out.controller.test.ts
index f631ebd..cda91f1 100644
--- a/packages/core/tests/unit/controllers/auth/sign-out.controller.test.ts
+++ b/packages/core/tests/unit/controllers/auth/sign-out.controller.test.ts
@@ -4,9 +4,9 @@ import { afterEach, beforeEach, describe, expect, it } from "vitest";
import {
destroyContainer,
initializeContainer,
-} from "@/di/container.js";
-import { signOutController } from "@/interface-adapters/controllers/auth/sign-out.controller.js";
-import { InputParseError } from "@/entities/errors/common.js";
+} from "@/di/container";
+import { signOutController } from "@/interface-adapters/controllers/auth/sign-out.controller";
+import { InputParseError } from "@/entities/errors/common";
beforeEach(() => {
initializeContainer();
diff --git a/packages/core/tests/unit/controllers/auth/sign-up.controller.test.ts b/packages/core/tests/unit/controllers/auth/sign-up.controller.test.ts
index ae97f0b..43073dd 100644
--- a/packages/core/tests/unit/controllers/auth/sign-up.controller.test.ts
+++ b/packages/core/tests/unit/controllers/auth/sign-up.controller.test.ts
@@ -4,9 +4,9 @@ import { afterEach, beforeEach, describe, expect, it } from "vitest";
import {
destroyContainer,
initializeContainer,
-} from "@/di/container.js";
-import { signUpController } from "@/interface-adapters/controllers/auth/sign-up.controller.js";
-import { InputParseError } from "@/entities/errors/common.js";
+} from "@/di/container";
+import { signUpController } from "@/interface-adapters/controllers/auth/sign-up.controller";
+import { InputParseError } from "@/entities/errors/common";
beforeEach(() => {
initializeContainer();
diff --git a/packages/core/tests/unit/controllers/content/articles.controller.test.ts b/packages/core/tests/unit/controllers/content/articles.controller.test.ts
index 7031121..35f8939 100644
--- a/packages/core/tests/unit/controllers/content/articles.controller.test.ts
+++ b/packages/core/tests/unit/controllers/content/articles.controller.test.ts
@@ -4,12 +4,12 @@ import { afterEach, beforeEach, describe, expect, it } from "vitest";
import {
destroyContainer,
initializeContainer,
-} from "@/di/container.js";
+} from "@/di/container";
import {
createArticleController,
getArticlesController,
-} from "@/interface-adapters/controllers/content/articles.controller.js";
-import { InputParseError } from "@/entities/errors/common.js";
+} from "@/interface-adapters/controllers/content/articles.controller";
+import { InputParseError } from "@/entities/errors/common";
beforeEach(() => {
initializeContainer();
diff --git a/packages/core/tests/unit/use-cases/auth/sign-in.use-case.test.ts b/packages/core/tests/unit/use-cases/auth/sign-in.use-case.test.ts
index b515721..28b74cb 100644
--- a/packages/core/tests/unit/use-cases/auth/sign-in.use-case.test.ts
+++ b/packages/core/tests/unit/use-cases/auth/sign-in.use-case.test.ts
@@ -4,9 +4,9 @@ import { afterEach, beforeEach, describe, expect, it } from "vitest";
import {
destroyContainer,
initializeContainer,
-} from "@/di/container.js";
-import { signInUseCase } from "@/application/use-cases/auth/sign-in.use-case.js";
-import { AuthenticationError } from "@/entities/errors/auth.js";
+} from "@/di/container";
+import { signInUseCase } from "@/application/use-cases/auth/sign-in.use-case";
+import { AuthenticationError } from "@/entities/errors/auth";
beforeEach(() => {
initializeContainer();
diff --git a/packages/core/tests/unit/use-cases/auth/sign-out.use-case.test.ts b/packages/core/tests/unit/use-cases/auth/sign-out.use-case.test.ts
index 0bc78d4..862e2cf 100644
--- a/packages/core/tests/unit/use-cases/auth/sign-out.use-case.test.ts
+++ b/packages/core/tests/unit/use-cases/auth/sign-out.use-case.test.ts
@@ -4,8 +4,8 @@ import { afterEach, beforeEach, describe, expect, it } from "vitest";
import {
destroyContainer,
initializeContainer,
-} from "@/di/container.js";
-import { signOutUseCase } from "@/application/use-cases/auth/sign-out.use-case.js";
+} from "@/di/container";
+import { signOutUseCase } from "@/application/use-cases/auth/sign-out.use-case";
beforeEach(() => {
initializeContainer();
diff --git a/packages/core/tests/unit/use-cases/auth/sign-up.use-case.test.ts b/packages/core/tests/unit/use-cases/auth/sign-up.use-case.test.ts
index 02aba06..37640b4 100644
--- a/packages/core/tests/unit/use-cases/auth/sign-up.use-case.test.ts
+++ b/packages/core/tests/unit/use-cases/auth/sign-up.use-case.test.ts
@@ -4,9 +4,9 @@ import { afterEach, beforeEach, describe, expect, it } from "vitest";
import {
destroyContainer,
initializeContainer,
-} from "@/di/container.js";
-import { signUpUseCase } from "@/application/use-cases/auth/sign-up.use-case.js";
-import { AuthenticationError } from "@/entities/errors/auth.js";
+} from "@/di/container";
+import { signUpUseCase } from "@/application/use-cases/auth/sign-up.use-case";
+import { AuthenticationError } from "@/entities/errors/auth";
beforeEach(() => {
initializeContainer();
diff --git a/packages/core/tests/unit/use-cases/content/create-article.use-case.test.ts b/packages/core/tests/unit/use-cases/content/create-article.use-case.test.ts
index 3f09844..37fff51 100644
--- a/packages/core/tests/unit/use-cases/content/create-article.use-case.test.ts
+++ b/packages/core/tests/unit/use-cases/content/create-article.use-case.test.ts
@@ -4,8 +4,8 @@ import { afterEach, beforeEach, describe, expect, it } from "vitest";
import {
destroyContainer,
initializeContainer,
-} from "@/di/container.js";
-import { createArticleUseCase } from "@/application/use-cases/content/create-article.use-case.js";
+} from "@/di/container";
+import { createArticleUseCase } from "@/application/use-cases/content/create-article.use-case";
beforeEach(() => {
initializeContainer();
diff --git a/packages/core/tests/unit/use-cases/content/get-articles.use-case.test.ts b/packages/core/tests/unit/use-cases/content/get-articles.use-case.test.ts
index aed1bd5..a586299 100644
--- a/packages/core/tests/unit/use-cases/content/get-articles.use-case.test.ts
+++ b/packages/core/tests/unit/use-cases/content/get-articles.use-case.test.ts
@@ -4,9 +4,9 @@ import { afterEach, beforeEach, describe, expect, it } from "vitest";
import {
destroyContainer,
initializeContainer,
-} from "@/di/container.js";
-import { createArticleUseCase } from "@/application/use-cases/content/create-article.use-case.js";
-import { getArticlesUseCase } from "@/application/use-cases/content/get-articles.use-case.js";
+} from "@/di/container";
+import { createArticleUseCase } from "@/application/use-cases/content/create-article.use-case";
+import { getArticlesUseCase } from "@/application/use-cases/content/get-articles.use-case";
beforeEach(() => {
initializeContainer();
diff --git a/packages/ui/src/atoms/button/button.stories.tsx b/packages/ui/src/atoms/button/button.stories.tsx
index 958f932..094736a 100644
--- a/packages/ui/src/atoms/button/button.stories.tsx
+++ b/packages/ui/src/atoms/button/button.stories.tsx
@@ -1,5 +1,5 @@
import type { Meta, StoryObj } from "@storybook/react";
-import { Button } from "./button.js";
+import { Button } from "./button";
const meta = {
title: "Atoms/Button",
diff --git a/packages/ui/src/atoms/button/button.tsx b/packages/ui/src/atoms/button/button.tsx
index bef3ba3..38564ed 100644
--- a/packages/ui/src/atoms/button/button.tsx
+++ b/packages/ui/src/atoms/button/button.tsx
@@ -1,5 +1,5 @@
import { forwardRef, type ButtonHTMLAttributes } from "react";
-import { cn } from "../../lib/utils.js";
+import { cn } from "../../lib/utils";
export interface ButtonProps extends ButtonHTMLAttributes {
variant?: "default" | "secondary" | "destructive" | "outline" | "ghost";
diff --git a/packages/ui/src/atoms/button/index.ts b/packages/ui/src/atoms/button/index.ts
index 83169c3..f4ea832 100644
--- a/packages/ui/src/atoms/button/index.ts
+++ b/packages/ui/src/atoms/button/index.ts
@@ -1 +1 @@
-export { Button, type ButtonProps } from "./button.js";
+export { Button, type ButtonProps } from "./button";
diff --git a/packages/ui/src/atoms/index.ts b/packages/ui/src/atoms/index.ts
index 1e6d696..51482ab 100644
--- a/packages/ui/src/atoms/index.ts
+++ b/packages/ui/src/atoms/index.ts
@@ -1,3 +1,3 @@
-export { Button, type ButtonProps } from "./button/index.js";
-export { Input, type InputProps } from "./input/index.js";
-export { Label, type LabelProps } from "./label/index.js";
+export { Button, type ButtonProps } from "./button/index";
+export { Input, type InputProps } from "./input/index";
+export { Label, type LabelProps } from "./label/index";
diff --git a/packages/ui/src/atoms/input/index.ts b/packages/ui/src/atoms/input/index.ts
index eeb75cf..af6d92a 100644
--- a/packages/ui/src/atoms/input/index.ts
+++ b/packages/ui/src/atoms/input/index.ts
@@ -1 +1 @@
-export { Input, type InputProps } from "./input.js";
+export { Input, type InputProps } from "./input";
diff --git a/packages/ui/src/atoms/input/input.stories.tsx b/packages/ui/src/atoms/input/input.stories.tsx
index 41a2e68..74b69af 100644
--- a/packages/ui/src/atoms/input/input.stories.tsx
+++ b/packages/ui/src/atoms/input/input.stories.tsx
@@ -1,5 +1,5 @@
import type { Meta, StoryObj } from "@storybook/react";
-import { Input } from "./input.js";
+import { Input } from "./input";
const meta = {
title: "Atoms/Input",
diff --git a/packages/ui/src/atoms/input/input.tsx b/packages/ui/src/atoms/input/input.tsx
index e58f3a6..51b3dd0 100644
--- a/packages/ui/src/atoms/input/input.tsx
+++ b/packages/ui/src/atoms/input/input.tsx
@@ -1,5 +1,5 @@
import { forwardRef, type InputHTMLAttributes } from "react";
-import { cn } from "../../lib/utils.js";
+import { cn } from "../../lib/utils";
export interface InputProps extends InputHTMLAttributes {}
diff --git a/packages/ui/src/atoms/label/index.ts b/packages/ui/src/atoms/label/index.ts
index 016fabe..7d4a6c5 100644
--- a/packages/ui/src/atoms/label/index.ts
+++ b/packages/ui/src/atoms/label/index.ts
@@ -1 +1 @@
-export { Label, type LabelProps } from "./label.js";
+export { Label, type LabelProps } from "./label";
diff --git a/packages/ui/src/atoms/label/label.tsx b/packages/ui/src/atoms/label/label.tsx
index f499781..13d0f4e 100644
--- a/packages/ui/src/atoms/label/label.tsx
+++ b/packages/ui/src/atoms/label/label.tsx
@@ -1,5 +1,5 @@
import { forwardRef, type LabelHTMLAttributes } from "react";
-import { cn } from "../../lib/utils.js";
+import { cn } from "../../lib/utils";
export interface LabelProps extends LabelHTMLAttributes {}
diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts
index 0bc6e2f..2ec687a 100644
--- a/packages/ui/src/index.ts
+++ b/packages/ui/src/index.ts
@@ -1,5 +1,5 @@
-export { cn } from "./lib/utils.js";
-export * from "./atoms/index.js";
-export * from "./molecules/index.js";
-export * from "./organisms/index.js";
-export * from "./templates/index.js";
+export { cn } from "./lib/utils";
+export * from "./atoms/index";
+export * from "./molecules/index";
+export * from "./organisms/index";
+export * from "./templates/index";
diff --git a/packages/ui/src/molecules/form-field/form-field.stories.tsx b/packages/ui/src/molecules/form-field/form-field.stories.tsx
index 4e81d16..de769e3 100644
--- a/packages/ui/src/molecules/form-field/form-field.stories.tsx
+++ b/packages/ui/src/molecules/form-field/form-field.stories.tsx
@@ -1,5 +1,5 @@
import type { Meta, StoryObj } from "@storybook/react";
-import { FormField } from "./form-field.js";
+import { FormField } from "./form-field";
const meta = {
title: "Molecules/FormField",
diff --git a/packages/ui/src/molecules/form-field/form-field.tsx b/packages/ui/src/molecules/form-field/form-field.tsx
index 6f51c21..d7d9322 100644
--- a/packages/ui/src/molecules/form-field/form-field.tsx
+++ b/packages/ui/src/molecules/form-field/form-field.tsx
@@ -1,6 +1,6 @@
-import { Label } from "../../atoms/label/index.js";
-import { Input, type InputProps } from "../../atoms/input/index.js";
-import { cn } from "../../lib/utils.js";
+import { Label } from "../../atoms/label/index";
+import { Input, type InputProps } from "../../atoms/input/index";
+import { cn } from "../../lib/utils";
export interface FormFieldProps extends InputProps {
label: string;
diff --git a/packages/ui/src/molecules/form-field/index.ts b/packages/ui/src/molecules/form-field/index.ts
index ad9b6a6..58d4e76 100644
--- a/packages/ui/src/molecules/form-field/index.ts
+++ b/packages/ui/src/molecules/form-field/index.ts
@@ -1 +1 @@
-export { FormField, type FormFieldProps } from "./form-field.js";
+export { FormField, type FormFieldProps } from "./form-field";
diff --git a/packages/ui/src/molecules/index.ts b/packages/ui/src/molecules/index.ts
index 6107d6a..5ad534d 100644
--- a/packages/ui/src/molecules/index.ts
+++ b/packages/ui/src/molecules/index.ts
@@ -1 +1 @@
-export { FormField, type FormFieldProps } from "./form-field/index.js";
+export { FormField, type FormFieldProps } from "./form-field/index";