diff --git a/.nx/cache/18.3.4-nx.linux-x64-gnu.node b/.nx/cache/18.3.4-nx.linux-x64-gnu.node deleted file mode 100644 index 29fb952f..00000000 Binary files a/.nx/cache/18.3.4-nx.linux-x64-gnu.node and /dev/null differ diff --git a/md/dependencies/dependencies.md b/md/dependencies/dependencies.md index 6ce3dfb4..893adee9 100644 --- a/md/dependencies/dependencies.md +++ b/md/dependencies/dependencies.md @@ -1,59 +1,59 @@ # backend -| Name | Version | Description | -| ------------------------- | ------------------ | ----------------------------------------------------------------------------- | -| @org/shared | file:../shared/src | Contains shared code, models, and types used by both the backend and frontend | -| @ts-rest/core | ^3.45.0 | Core library for building the TypeScript REST API in the backend | -| @ts-rest/express | ^3.45.0 | Integrates the @ts-rest/core library with Express.js in the backend | -| @ts-rest/open-api | ^3.45.0 | Generates OpenAPI documentation from the @ts-rest/core API in the backend | -| @tsvdec/core | ^2.0.11 | Provides core functionality for using TypeScript decorators in the backend | -| @tsvdec/decorators | ^1.0.7 | Collection of decorators used throughout the backend codebase | -| bcrypt | ^5.1.1 | Used for hashing and verifying user passwords in the backend | -| body-parser | ^1.20.2 | Parses incoming request bodies in the Express.js middleware in the backend | -| bottlejs | ^2.0.1 | Inversion of Control (IoC) container for dependency injection in the backend | -| compression | ^1.7.4 | Compresses responses to reduce data transfer in the backend | -| cookie-parser | ^1.4.6 | Parses cookie headers in incoming requests in the backend | -| cors | ^2.8.5 | Provides a middleware for enabling CORS in the Express.js app in the backend | -| cross-dirname | ^0.1.0 | Utility for getting the directory path of a file in the backend | -| dotenv | ^16.4.5 | Loads environment variables from .env files in the backend | -| express | ^4.18.2 | The web framework used for building the backend API | -| express-rate-limit | ^7.2.0 | Provides rate limiting to protect against brute force attacks in the backend | -| helmet | ^7.1.0 | Collection of security middleware for Express.js in the backend | -| hpp | ^0.2.3 | Protects against HTTP Parameter Pollution attacks in the backend | -| jsonwebtoken | ^9.0.2 | Used for generating and verifying JSON Web Tokens (JWT) in the backend | -| mongodb | ^6.5.0 | The official MongoDB driver for Node.js used in the backend | -| morgan | ^1.10.0 | HTTP request logger middleware for Express.js in the backend | -| swagger-jsdoc | ^6.2.8 | Generates OpenAPI documentation from JSDoc comments in the backend | -| swagger-ui-express | ^5.0.0 | Renders the Swagger UI for the OpenAPI documentation in the backend | -| winston | ^3.11.0 | Logging library used for application logging in the backend | -| winston-daily-rotate-file | ^5.0.0 | Winston transport for logging to a rotating file in the backend | -| zod | ^3.22.5 | TypeScript-first schema validation library used throughout the project | +| Name | Version | Description | +| ------------------------- | ------------ | ----------------------------------------------------------------------------- | +| @org/shared | workspace:\* | Contains shared code, models, and types used by both the backend and frontend | +| @ts-rest/core | ^3.45.0 | Core library for building the TypeScript REST API in the backend | +| @ts-rest/express | ^3.45.0 | Integrates the @ts-rest/core library with Express.js in the backend | +| @ts-rest/open-api | ^3.45.0 | Generates OpenAPI documentation from the @ts-rest/core API in the backend | +| @tsvdec/core | ^2.0.11 | Provides core functionality for using TypeScript decorators in the backend | +| @tsvdec/decorators | ^1.0.7 | Collection of decorators used throughout the backend codebase | +| bcrypt | ^5.1.1 | Used for hashing and verifying user passwords in the backend | +| body-parser | ^1.20.2 | Parses incoming request bodies in the Express.js middleware in the backend | +| bottlejs | ^2.0.1 | Inversion of Control (IoC) container for dependency injection in the backend | +| compression | ^1.7.4 | Compresses responses to reduce data transfer in the backend | +| cookie-parser | ^1.4.6 | Parses cookie headers in incoming requests in the backend | +| cors | ^2.8.5 | Provides a middleware for enabling CORS in the Express.js app in the backend | +| cross-dirname | ^0.1.0 | Utility for getting the directory path of a file in the backend | +| dotenv | ^16.4.5 | Loads environment variables from .env files in the backend | +| express | ^4.18.2 | The web framework used for building the backend API | +| express-rate-limit | ^7.2.0 | Provides rate limiting to protect against brute force attacks in the backend | +| helmet | ^7.1.0 | Collection of security middleware for Express.js in the backend | +| hpp | ^0.2.3 | Protects against HTTP Parameter Pollution attacks in the backend | +| jsonwebtoken | ^9.0.2 | Used for generating and verifying JSON Web Tokens (JWT) in the backend | +| mongodb | ^6.5.0 | The official MongoDB driver for Node.js used in the backend | +| morgan | ^1.10.0 | HTTP request logger middleware for Express.js in the backend | +| swagger-jsdoc | ^6.2.8 | Generates OpenAPI documentation from JSDoc comments in the backend | +| swagger-ui-express | ^5.0.0 | Renders the Swagger UI for the OpenAPI documentation in the backend | +| winston | ^3.11.0 | Logging library used for application logging in the backend | +| winston-daily-rotate-file | ^5.0.0 | Winston transport for logging to a rotating file in the backend | +| zod | ^3.22.5 | TypeScript-first schema validation library used throughout the project | # frontend -| Name | Version | Description | -| -------------------------------- | ------------------ | ----------------------------------------------------------------------------------------------- | -| @emotion/react | ^11.11.4 | Used by Material-UI for styling React components in the frontend | -| @emotion/styled | ^11.11.0 | Used by Material-UI for styling React components in the frontend | -| @mui/icons-material | ^5.15.14 | Provides Material Design icons for use in the frontend UI | -| @mui/lab | 5.0.0-alpha.169 | Provides additional components and utilities from Material-UI for the frontend UI | -| @mui/material | ^5.15.14 | The core Material-UI library for building the frontend UI | -| @mui/styles | ^5.15.14 | Used by Material-UI for styling React components in the frontend | -| @mui/x-tree-view | ^7.0.0 | Provides a TreeView component from Material-UI for displaying hierarchical data in the frontend | -| @org/shared | file:../shared/src | Contains shared code, models, and types used by both the backend and frontend | -| @preact/signals-react | ^2.0.1 | Provides a way to use Preact signals in React components for the frontend | -| @tanstack/react-query | ^5.32.1 | Used for data fetching and caching in the frontend React application | -| @ts-rest/core | ^3.45.0 | Core library for building the TypeScript REST API in the backend | -| @ts-rest/react-query | ^3.45.0 | Integrates @tanstack/react-query with the @ts-rest/core API for the frontend | -| axios | ^1.6.8 | Used for making HTTP requests in the frontend React application | -| i18next | ^23.10.1 | Provides internationalization (i18n) support for the frontend UI | -| i18next-browser-languagedetector | ^7.2.0 | Detects the user's language in the browser for i18n in the frontend | -| i18next-http-backend | ^2.5.0 | Loads translation files from the server for i18n in the frontend | -| material-ui-popup-state | ^5.1.0 | Provides a state management solution for popups and menus in the Material-UI frontend UI | -| react | ^18.2.0 | The core React library used for building the frontend UI | -| react-dom | ^18.2.0 | Provides DOM-specific methods for React in the frontend UI | -| react-i18next | ^14.1.0 | Integrates i18next with React for internationalization in the frontend UI | -| react-router-dom | ^6.22.3 | Provides routing functionality for the React frontend application | +| Name | Version | Description | +| -------------------------------- | --------------- | ----------------------------------------------------------------------------------------------- | +| @emotion/react | ^11.11.4 | Used by Material-UI for styling React components in the frontend | +| @emotion/styled | ^11.11.0 | Used by Material-UI for styling React components in the frontend | +| @mui/icons-material | ^5.15.14 | Provides Material Design icons for use in the frontend UI | +| @mui/lab | 5.0.0-alpha.169 | Provides additional components and utilities from Material-UI for the frontend UI | +| @mui/material | ^5.15.14 | The core Material-UI library for building the frontend UI | +| @mui/styles | ^5.15.14 | Used by Material-UI for styling React components in the frontend | +| @mui/x-tree-view | ^7.0.0 | Provides a TreeView component from Material-UI for displaying hierarchical data in the frontend | +| @org/shared | workspace:\* | Contains shared code, models, and types used by both the backend and frontend | +| @preact/signals-react | ^2.0.1 | Provides a way to use Preact signals in React components for the frontend | +| @tanstack/react-query | ^5.32.1 | Used for data fetching and caching in the frontend React application | +| @ts-rest/core | ^3.45.0 | Core library for building the TypeScript REST API in the backend | +| @ts-rest/react-query | ^3.45.0 | Integrates @tanstack/react-query with the @ts-rest/core API for the frontend | +| axios | ^1.6.8 | Used for making HTTP requests in the frontend React application | +| i18next | ^23.10.1 | Provides internationalization (i18n) support for the frontend UI | +| i18next-browser-languagedetector | ^7.2.0 | Detects the user's language in the browser for i18n in the frontend | +| i18next-http-backend | ^2.5.0 | Loads translation files from the server for i18n in the frontend | +| material-ui-popup-state | ^5.1.0 | Provides a state management solution for popups and menus in the Material-UI frontend UI | +| react | ^18.2.0 | The core React library used for building the frontend UI | +| react-dom | ^18.2.0 | Provides DOM-specific methods for React in the frontend UI | +| react-i18next | ^14.1.0 | Integrates i18next with React for internationalization in the frontend UI | +| react-router-dom | ^6.22.3 | Provides routing functionality for the React frontend application | # shared diff --git a/md/scripts/output.md b/md/scripts/output.md index 43c4b807..be94c7d0 100644 --- a/md/scripts/output.md +++ b/md/scripts/output.md @@ -1,13 +1,15 @@

- logo + + + MERN Monorepo starter banner +

- TypeScript badge - React badge - Express badge - MongoDB badge - + TypeScript badge + React badge + Express badge + MongoDB badge

TOC @@ -16,17 +18,13 @@ TOC ## Understanding the repository name -**monorepo** - -- A **monorepo** refers to a single repository containing multiple codebases that might otherwise be separated into individual repositories. This approach simplifies dependency management, streamlines workflows, and enhances collaboration across different parts of an application. Our repository utilizes this structure to centralize and unify the development process, ensuring consistency and ease of maintenance. - **mern** - The **MERN** stack is a popular set of technologies (MongoDB, Express.js, React, and Node.js) used for full-stack development. This stack is known for its efficiency in building scalable and performance-oriented web applications. By employing the MERN stack, this repo provides a robust foundation for developing modern web applications with TypeScript, ensuring a seamless fullstack experience. -**railway** +**monorepo** -- **Railway** is a platform as a service (PaaS) that offers easy deployment, scaling, and infrastructure management for cloud applications. It's chosen for this project to simplify the deployment process and provide developers with a quick way to see their applications in production. Utilizing Railway, developers can focus more on code and less on configuring servers. +- A **monorepo** refers to a single repository containing multiple codebases that might otherwise be separated into individual repositories. This approach simplifies dependency management, streamlines workflows, and enhances collaboration across different parts of an application. Our repository utilizes this structure to centralize and unify the development process, ensuring consistency and ease of maintenance. **starter** diff --git a/nx.json b/nx.json deleted file mode 100644 index 37c9e9d6..00000000 --- a/nx.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "namedInputs": { - "noMarkdown": ["!{projectRoot}/**/*.md"] - }, - "targetDefaults": { - "build": { - "inputs": ["noMarkdown", "^noMarkdown"], - "dependsOn": ["^build"], - "cache": true - }, - "dev": { - "dependsOn": ["^build"] - }, - "test": { - "inputs": ["noMarkdown", "^noMarkdown"] - } - } -} diff --git a/package.json b/package.json index c8aac235..586f56c6 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,6 @@ "husky": "^9.0.11", "lint-staged": "^15.2.2", "markdown-toc": "^1.2.0", - "nx": "^18.3.4", "prettier": "^3.2.5", "ts-node": "^10.9.2", "tsc-alias": "^1.8.8", diff --git a/packages/backend/package.json b/packages/backend/package.json index 1fdfe349..7a43012a 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -7,14 +7,14 @@ "scripts": { "build": "rm -rf dist && npm run compile:ts", "compile:ts": "tsc && npm run tsc-alias", - "start": "export PACKAGE_JSON_VERSION=$(grep -o '\"version\": *\"[^\"]*\"' package.json | awk -F'\"' '{print $4}') && node --no-warnings --loader ts-node/esm --experimental-specifier-resolution=node ./dist/backend/src/main.js", - "tsc-alias": "tsc --project tsconfig.json && tsc-alias -p tsconfig.json" + "start": "export PACKAGE_JSON_VERSION=$(grep -o '\"version\": *\"[^\"]*\"' package.json | awk -F'\"' '{print $4}') && node --no-warnings --loader ts-node/esm --experimental-specifier-resolution=node ./dist/main.js", + "tsc-alias": "tsc-alias -p tsconfig.json" }, "keywords": [], "author": "Bruno Tot", "license": "MIT", "dependencies": { - "@org/shared": "*", + "@org/shared": "workspace:*", "@ts-rest/core": "^3.45.0", "@ts-rest/express": "^3.45.0", "@ts-rest/open-api": "^3.45.0", diff --git a/packages/backend/src/infrastructure/middleware/globals/withCompression.ts b/packages/backend/src/infrastructure/middleware/globals/withCompression.ts index 5940101f..92489c9d 100644 --- a/packages/backend/src/infrastructure/middleware/globals/withCompression.ts +++ b/packages/backend/src/infrastructure/middleware/globals/withCompression.ts @@ -3,6 +3,7 @@ * @see {@link https://www.npmjs.com/package/compression|npm specifics} */ +import { RouteMiddleware } from "@org/backend/types"; import compression from "compression"; import type { RequestHandler } from "express"; @@ -11,4 +12,4 @@ export function withCompression(): RequestHandler { } /** @hidden */ -export const withCompressionMiddleware = withCompression(); +export const withCompressionMiddleware: RouteMiddleware = withCompression(); diff --git a/packages/backend/src/infrastructure/middleware/globals/withCookieParser.ts b/packages/backend/src/infrastructure/middleware/globals/withCookieParser.ts index 72c5ee4d..c9b3a282 100644 --- a/packages/backend/src/infrastructure/middleware/globals/withCookieParser.ts +++ b/packages/backend/src/infrastructure/middleware/globals/withCookieParser.ts @@ -3,6 +3,7 @@ * @see {@link https://www.npmjs.com/package/cookie-parser|npm specifics} */ +import { RouteMiddleware } from "@org/backend/types"; import cookieParser from "cookie-parser"; import type { RequestHandler } from "express"; @@ -11,4 +12,4 @@ export function withCookieParser(): RequestHandler { } /** @hidden */ -export const withCookieParserMiddleware = withCookieParser(); +export const withCookieParserMiddleware: RouteMiddleware = withCookieParser(); diff --git a/packages/backend/src/infrastructure/middleware/globals/withCors.ts b/packages/backend/src/infrastructure/middleware/globals/withCors.ts index 18b7a6c9..b235d236 100644 --- a/packages/backend/src/infrastructure/middleware/globals/withCors.ts +++ b/packages/backend/src/infrastructure/middleware/globals/withCors.ts @@ -5,6 +5,7 @@ */ import { Environment } from "@org/backend/config"; +import { RouteMiddleware } from "@org/backend/types"; import cors from "cors"; import type { RequestHandler } from "express"; @@ -17,4 +18,4 @@ export function withCors(): RequestHandler { } /** @hidden */ -export const withCorsMiddleware = withCors(); +export const withCorsMiddleware: RouteMiddleware = withCors(); diff --git a/packages/backend/src/infrastructure/middleware/globals/withCredentials.ts b/packages/backend/src/infrastructure/middleware/globals/withCredentials.ts index 8dbdf919..e5d86626 100644 --- a/packages/backend/src/infrastructure/middleware/globals/withCredentials.ts +++ b/packages/backend/src/infrastructure/middleware/globals/withCredentials.ts @@ -2,6 +2,7 @@ * @packageDocumentation Middleware which enables credentials for cross-origin requests. */ +import { RouteMiddleware } from "@org/backend/types"; import type { RequestHandler } from "express"; const VAR_ALLOWED_ORIGINS = [ @@ -21,4 +22,4 @@ export function withCredentials(): RequestHandler { } /** @hidden */ -export const withCredentialsMiddleware = withCredentials(); +export const withCredentialsMiddleware: RouteMiddleware = withCredentials(); diff --git a/packages/backend/src/infrastructure/middleware/globals/withHelmet.ts b/packages/backend/src/infrastructure/middleware/globals/withHelmet.ts index 08764d58..ada135a4 100644 --- a/packages/backend/src/infrastructure/middleware/globals/withHelmet.ts +++ b/packages/backend/src/infrastructure/middleware/globals/withHelmet.ts @@ -3,6 +3,7 @@ * @see {@link https://www.npmjs.com/package/helmet|npm specifics} */ +import { RouteMiddleware } from "@org/backend/types"; import type { RequestHandler } from "express"; import helmet from "helmet"; @@ -11,4 +12,4 @@ export function withHelmet(): RequestHandler { } /** @hidden */ -export const withHelmetMiddleware = withHelmet(); +export const withHelmetMiddleware: RouteMiddleware = withHelmet(); diff --git a/packages/backend/src/infrastructure/middleware/globals/withHpp.ts b/packages/backend/src/infrastructure/middleware/globals/withHpp.ts index b9124fcb..ce2a8cfd 100644 --- a/packages/backend/src/infrastructure/middleware/globals/withHpp.ts +++ b/packages/backend/src/infrastructure/middleware/globals/withHpp.ts @@ -4,6 +4,7 @@ * @see {@link https://en.wikipedia.org/wiki/HTTP_parameter_pollution|http parameter pollution wiki} */ +import { RouteMiddleware } from "@org/backend/types"; import type { RequestHandler } from "express"; import hpp from "hpp"; @@ -12,4 +13,4 @@ export function withHpp(): RequestHandler { } /** @hidden */ -export const withHppMiddleware = withHpp(); +export const withHppMiddleware: RouteMiddleware = withHpp(); diff --git a/packages/backend/src/infrastructure/middleware/globals/withJsonParser.ts b/packages/backend/src/infrastructure/middleware/globals/withJsonParser.ts index 9e1f4b76..af43bca5 100644 --- a/packages/backend/src/infrastructure/middleware/globals/withJsonParser.ts +++ b/packages/backend/src/infrastructure/middleware/globals/withJsonParser.ts @@ -2,6 +2,7 @@ * @packageDocumentation Middleware which parses incoming requests with JSON payloads and is based on body-parser. */ +import { RouteMiddleware } from "@org/backend/types"; import type { RequestHandler } from "express"; import express from "express"; @@ -10,4 +11,4 @@ export function withJsonParser(): RequestHandler { } /** @hidden */ -export const withJsonParserMiddleware = withJsonParser(); +export const withJsonParserMiddleware: RouteMiddleware = withJsonParser(); diff --git a/packages/backend/src/infrastructure/middleware/globals/withMorgan.ts b/packages/backend/src/infrastructure/middleware/globals/withMorgan.ts index b0b7bc35..8bda8c31 100644 --- a/packages/backend/src/infrastructure/middleware/globals/withMorgan.ts +++ b/packages/backend/src/infrastructure/middleware/globals/withMorgan.ts @@ -4,6 +4,7 @@ */ import { Environment, Logger } from "@org/backend/config"; +import { RouteMiddleware } from "@org/backend/types"; import type { RequestHandler } from "express"; import morgan from "morgan"; @@ -13,4 +14,4 @@ export function withMorgan(): RequestHandler { } /** @hidden */ -export const withMorganMiddleware = withMorgan(); +export const withMorganMiddleware: RouteMiddleware = withMorgan(); diff --git a/packages/backend/src/infrastructure/middleware/globals/withStaticAssets.ts b/packages/backend/src/infrastructure/middleware/globals/withStaticAssets.ts index 481f010f..e06a92bf 100644 --- a/packages/backend/src/infrastructure/middleware/globals/withStaticAssets.ts +++ b/packages/backend/src/infrastructure/middleware/globals/withStaticAssets.ts @@ -2,6 +2,7 @@ * @packageDocumentation Middleware which serves static and public files from assets directory.. */ +import { RouteMiddleware } from "@org/backend/types"; import type { RequestHandler } from "express"; import express from "express"; @@ -10,4 +11,4 @@ export function withStaticAssets(): RequestHandler { } /** @hidden */ -export const withStaticAssetsMiddleware = withStaticAssets(); +export const withStaticAssetsMiddleware: RouteMiddleware = withStaticAssets(); diff --git a/packages/backend/src/infrastructure/middleware/globals/withUrlEncoded.ts b/packages/backend/src/infrastructure/middleware/globals/withUrlEncoded.ts index 47d30130..b26d04b8 100644 --- a/packages/backend/src/infrastructure/middleware/globals/withUrlEncoded.ts +++ b/packages/backend/src/infrastructure/middleware/globals/withUrlEncoded.ts @@ -2,6 +2,7 @@ * @packageDocumentation Middleware which only parses urlencoded bodies and only looks at requests where the Content-Type header matches the type option. */ +import { RouteMiddleware } from "@org/backend/types"; import type { RequestHandler } from "express"; import express from "express"; @@ -10,4 +11,4 @@ export function withUrlEncoded(): RequestHandler { } /** @hidden */ -export const withUrlEncodedMiddleware = withUrlEncoded(); +export const withUrlEncodedMiddleware: RouteMiddleware = withUrlEncoded(); diff --git a/packages/backend/tsconfig.json b/packages/backend/tsconfig.json index 47e59104..dc52957a 100644 --- a/packages/backend/tsconfig.json +++ b/packages/backend/tsconfig.json @@ -4,5 +4,6 @@ "outDir": "./dist", "typeRoots": ["./node_modules/@types"] }, - "include": ["src"] + "include": ["src"], + "exclude": ["src/logs"] } diff --git a/packages/frontend/package.json b/packages/frontend/package.json index edaf74fd..7dd2df94 100644 --- a/packages/frontend/package.json +++ b/packages/frontend/package.json @@ -19,7 +19,7 @@ "@mui/material": "^5.15.14", "@mui/styles": "^5.15.14", "@mui/x-tree-view": "^7.0.0", - "@org/shared": "file:../shared/src", + "@org/shared": "workspace:*", "@preact/signals-react": "^2.0.1", "@tanstack/react-query": "^5.32.1", "@ts-rest/core": "^3.45.0", diff --git a/packages/shared/package.json b/packages/shared/package.json index 21b5c9fb..68607803 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,27 +1,26 @@ { + "private": true, "name": "@org/shared", "version": "0.0.1", "description": "", - "main": "index.js", - "exports": { - ".": "./src/index.ts" - }, + "main": "dist/index.js", + "type": "module", "scripts": { - "build": "rm -rf dist && npm run compile:ts", - "compile:ts": "tsc", - "test": "echo \"Error: no test specified\" && exit 1" + "build": "rm -rf dist && npx tsc && npm run tsc-alias", + "test": "echo \"Error: no test specified\" && exit 1", + "tsc-alias": "tsc-alias -p tsconfig.json" }, "keywords": [], "author": "Bruno Tot", "license": "MIT", - "devDependencies": { - "typescript": "^5.3.3" - }, "dependencies": { "@anatine/zod-openapi": "^2.2.5", "@ts-rest/core": "^3.45.0", "@ts-rest/open-api": "^3.45.0", "http-status": "^1.7.4", "zod": "^3.22.5" + }, + "devDependencies": { + "typescript": "^5.3.3" } } diff --git a/packages/shared/src/config/index.ts b/packages/shared/src/config/index.ts index c318b351..8b83210d 100644 --- a/packages/shared/src/config/index.ts +++ b/packages/shared/src/config/index.ts @@ -1,4 +1,3 @@ export {}; -/* @org/shared/config/setup */ import "./setup"; diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts index 70edc84b..8dbc1f99 100644 --- a/packages/shared/src/index.ts +++ b/packages/shared/src/index.ts @@ -2,10 +2,10 @@ * @packageDocumentation This shared package supplies backend and frontend with a set of config, models, types, utils and web components. */ -export * from "@org/shared/config"; -export * from "@org/shared/models"; -export * from "@org/shared/types"; -export * from "@org/shared/utils"; -export * from "@org/shared/web"; +export * from "./config"; +export * from "./models"; +export * from "./types"; +export * from "./utils"; +export * from "./web"; -import "@org/shared/config"; +import "./config"; diff --git a/packages/shared/src/web/contracts/index.ts b/packages/shared/src/web/contracts/index.ts index d98f5b78..17e5920e 100644 --- a/packages/shared/src/web/contracts/index.ts +++ b/packages/shared/src/web/contracts/index.ts @@ -5,7 +5,7 @@ import type { ContractControllerFactory, ContractNameFactory, ContractResolverFactory, -} from "@org/shared/types"; +} from "./../../types"; type ContractController = ContractControllerFactory; diff --git a/packages/shared/tsconfig.json b/packages/shared/tsconfig.json index 5b84967b..c9deb9c1 100644 --- a/packages/shared/tsconfig.json +++ b/packages/shared/tsconfig.json @@ -2,8 +2,7 @@ "extends": "../../tsconfig.json", "compilerOptions": { "outDir": "./dist", - "typeRoots": [], - "moduleResolution": "Bundler" + "typeRoots": [] }, "include": ["src"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2723bb9a..e4690bb3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,9 +26,6 @@ importers: markdown-toc: specifier: ^1.2.0 version: 1.2.0 - nx: - specifier: ^18.3.4 - version: 18.3.4 prettier: specifier: ^3.2.5 version: 3.2.5 @@ -57,7 +54,7 @@ importers: packages/backend: dependencies: '@org/shared': - specifier: '*' + specifier: workspace:* version: link:../shared '@ts-rest/core': specifier: ^3.45.0 @@ -202,8 +199,8 @@ importers: specifier: ^7.0.0 version: 7.3.1(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.16)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1) '@org/shared': - specifier: file:../shared/src - version: file:packages/shared/src + specifier: workspace:* + version: link:../shared '@preact/signals-react': specifier: ^2.0.1 version: 2.0.1(react@18.3.1) @@ -1186,13 +1183,6 @@ packages: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} dev: true - /@jest/schemas@29.6.3: - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': 0.27.8 - dev: true - /@jridgewell/gen-mapping@0.3.5: resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -1556,108 +1546,6 @@ packages: fastq: 1.17.1 dev: true - /@nrwl/tao@18.3.4: - resolution: {integrity: sha512-+7KsDYmGj1cvNaXZcjSYOPN1h17hsGFBtVX7MqnpJLLkQTUhKg2rQxqyluzshJ+RoDUVtYPGyHg1AizlB66RIA==} - hasBin: true - dependencies: - nx: 18.3.4 - tslib: 2.6.2 - transitivePeerDependencies: - - '@swc-node/register' - - '@swc/core' - - debug - dev: true - - /@nx/nx-darwin-arm64@18.3.4: - resolution: {integrity: sha512-MOGk9z4fIoOkJB68diH3bwoWrC8X9IzMNsz1mu0cbVfgCRAfIV3b+lMsiwQYzWal3UWW5DE5Rkss4F8whiV5Uw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@nx/nx-darwin-x64@18.3.4: - resolution: {integrity: sha512-tSzPRnNB3QdPM+KYiIuRCUtyCwcuIRC95FfP0ZB3WvfDeNxJChEAChNqmCMDE4iFvZhGuze8WqkJuIVdte+lyQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@nx/nx-freebsd-x64@18.3.4: - resolution: {integrity: sha512-bjSPak/d+bcR95/pxHMRhnnpHc6MnrQcG6f5AjX15Esm4JdrdQKPBmG1RybuK0WKSyD5wgVhkAGc/QQUom9l8g==} - engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@nx/nx-linux-arm-gnueabihf@18.3.4: - resolution: {integrity: sha512-/1HnUL7jhH0S7PxJqf6R1pk3QlAU22GY89EQV9fd+RDUtp7IyzaTlkebijTIqfxlSjC4OO3bPizaxEaxdd3uKQ==} - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@nx/nx-linux-arm64-gnu@18.3.4: - resolution: {integrity: sha512-g/2IaB2bZTKaBNPEf9LxtIXb1XHdhh3VO9PnePIrwkkixPMLN0dTxT5Sttt75lvLP3EU1AUR5w3Aaz2Q1mYtWA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@nx/nx-linux-arm64-musl@18.3.4: - resolution: {integrity: sha512-MgfKLoEF6I1cCS+0ooFLEjJSSVdCYyCT9Q96IHRJntAEL8u/0GR2OUoBoLC+q1lnbIkJr/uqTJxA2Jh+sJTIbA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@nx/nx-linux-x64-gnu@18.3.4: - resolution: {integrity: sha512-vbHxv7m3gjthBvw50EYCtgyY0Zg5nVTaQtX+wRsmKybV2i7wHbw5zIe1aL4zHUm6TcPGbIQK+utVM+hyCqKHVA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@nx/nx-linux-x64-musl@18.3.4: - resolution: {integrity: sha512-qIJKJCYFRLVSALsvg3avjReOjuYk91Q0hFXMJ2KaEM1Y3tdzcFN0fKBiaHexgbFIUk8zJuS4dJObTqSYMXowbg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@nx/nx-win32-arm64-msvc@18.3.4: - resolution: {integrity: sha512-UxC8mRkFTPdZbKFprZkiBqVw8624xU38kI0xyooxKlFpt5lccTBwJ0B7+R8p1RoWyvh2DSyFI9VvfD7lczg1lA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@nx/nx-win32-x64-msvc@18.3.4: - resolution: {integrity: sha512-/RqEjNU9hxIBxRLafCNKoH3SaB2FShf+1ZnIYCdAoCZBxLJebDpnhiyrVs0lPnMj9248JbizEMdJj1+bs/bXig==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@popperjs/core@2.11.8: resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} dev: false @@ -1824,10 +1712,6 @@ packages: dev: true optional: true - /@sinclair/typebox@0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - dev: true - /@tanstack/query-core@5.35.1: resolution: {integrity: sha512-0Dnpybqb8+ps6WgqBnqFEC+1F/xLvUosRAq+wiGisTgolOZzqZfkE2995dEXmhuzINiTM7/a6xSGznU0NIvBkw==} dev: false @@ -2275,29 +2159,10 @@ packages: - supports-color dev: true - /@yarnpkg/lockfile@1.1.0: - resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} - dev: true - - /@yarnpkg/parsers@3.0.0-rc.46: - resolution: {integrity: sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==} - engines: {node: '>=14.15.0'} - dependencies: - js-yaml: 3.14.1 - tslib: 2.6.2 - dev: true - /@zeit/schemas@2.36.0: resolution: {integrity: sha512-7kjMwcChYEzMKjeex9ZFXkt1AyNov9R5HZtjBKVsmVpw7pa7ZtlCGvCBC2vnnXctaYN+aRI61HjIqeetZW5ROg==} dev: true - /@zkochan/js-yaml@0.0.6: - resolution: {integrity: sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==} - hasBin: true - dependencies: - argparse: 2.0.1 - dev: true - /JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -2384,11 +2249,6 @@ packages: string-width: 4.2.3 dev: true - /ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - dev: true - /ansi-escapes@6.2.1: resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} engines: {node: '>=14.16'} @@ -2427,11 +2287,6 @@ packages: color-convert: 2.0.1 dev: true - /ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - dev: true - /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} @@ -2506,6 +2361,7 @@ packages: /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: false /autolinker@0.28.1: resolution: {integrity: sha512-zQAFO1Dlsn69eXaO6+7YZc+v84aquQKbwpzCE3L0stj56ERn9hutFxPopViLjo9G+rWwjozRhgS5KJ25Xy19cQ==} @@ -2521,6 +2377,7 @@ packages: proxy-from-env: 1.1.0 transitivePeerDependencies: - debug + dev: false /babel-plugin-macros@3.1.0: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} @@ -2534,10 +2391,6 @@ packages: /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: true - /basic-auth@2.0.1: resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} engines: {node: '>= 0.8'} @@ -2562,14 +2415,6 @@ packages: engines: {node: '>=8'} dev: true - /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - dev: true - /body-parser@1.20.2: resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -2655,13 +2500,6 @@ packages: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true - /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: true - /bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} @@ -2790,13 +2628,6 @@ packages: engines: {node: '>=10'} dev: true - /cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - dependencies: - restore-cursor: 3.1.0 - dev: true - /cli-cursor@4.0.0: resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2804,11 +2635,6 @@ packages: restore-cursor: 4.0.0 dev: true - /cli-spinners@2.6.1: - resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} - engines: {node: '>=6'} - dev: true - /cli-truncate@4.0.0: resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} engines: {node: '>=18'} @@ -2835,11 +2661,6 @@ packages: wrap-ansi: 7.0.0 dev: true - /clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - dev: true - /clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} @@ -2910,6 +2731,7 @@ packages: engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 + dev: false /commander@11.1.0: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} @@ -3187,12 +3009,6 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - dependencies: - clone: 1.0.4 - dev: true - /define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -3202,14 +3018,10 @@ packages: gopd: 1.0.1 dev: false - /define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - dev: true - /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + dev: false /delegates@1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} @@ -3235,11 +3047,6 @@ packages: engines: {node: '>=0.8.0'} dev: true - /diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -3304,24 +3111,10 @@ packages: is-obj: 2.0.0 dev: true - /dotenv-expand@10.0.0: - resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} - engines: {node: '>=12'} - dev: true - - /dotenv@16.3.2: - resolution: {integrity: sha512-HTlk5nmhkm8F6JcdXvHIzaorzCoziNQT9mGxLPVXW8wJF1TiGSL60ZGB4gHWabHOaMmWmhvk2/lPHfnBiT78AQ==} - engines: {node: '>=12'} - dev: true - /dotenv@16.4.5: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} - /duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - dev: true - /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true @@ -3366,19 +3159,6 @@ packages: iconv-lite: 0.6.3 dev: true - /end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - dependencies: - once: 1.4.0 - dev: true - - /enquirer@2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} - engines: {node: '>=8.6'} - dependencies: - ansi-colors: 4.1.3 - dev: true - /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -3709,13 +3489,6 @@ packages: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} dev: false - /figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - dependencies: - escape-string-regexp: 1.0.5 - dev: true - /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -3819,6 +3592,7 @@ packages: peerDependenciesMeta: debug: optional: true + dev: false /for-in@1.0.2: resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} @@ -3832,6 +3606,7 @@ packages: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 + dev: false /forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} @@ -3843,10 +3618,6 @@ packages: engines: {node: '>= 0.6'} dev: false - /fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - dev: true - /fs-extra@11.1.1: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} @@ -4203,10 +3974,6 @@ packages: safer-buffer: 2.1.2 dev: true - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: true - /ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} @@ -4330,11 +4097,6 @@ packages: resolution: {integrity: sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==} dev: false - /is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - dev: true - /is-number@2.1.0: resolution: {integrity: sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==} engines: {node: '>=0.10.0'} @@ -4390,11 +4152,6 @@ packages: text-extensions: 2.4.0 dev: true - /is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - dev: true - /is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -4422,21 +4179,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - dev: true - - /jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - /jiti@1.21.0: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true @@ -4490,10 +4232,6 @@ packages: hasBin: true dev: true - /jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - dev: true - /jsonc-parser@3.2.1: resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} dev: true @@ -4655,11 +4393,6 @@ packages: /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - /lines-and-columns@2.0.4: - resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - /lint-staged@15.2.2: resolution: {integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==} engines: {node: '>=18.12.0'} @@ -4840,14 +4573,6 @@ packages: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: false - /log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - dev: true - /log-update@6.0.0: resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} engines: {node: '>=18'} @@ -5037,13 +4762,6 @@ packages: dependencies: brace-expansion: 1.1.11 - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - dev: true - /minimatch@9.0.4: resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} engines: {node: '>=16 || 14 >=14.17'} @@ -5195,10 +4913,6 @@ packages: dependencies: whatwg-url: 5.0.0 - /node-machine-id@1.1.12: - resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} - dev: true - /node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} dev: true @@ -5245,68 +4959,6 @@ packages: boolbase: 1.0.0 dev: true - /nx@18.3.4: - resolution: {integrity: sha512-7rOHRyxpnZGJ3pHnwmpoAMHt9hNuwibWhOhPBJDhJVcbQJtGfwcWWyV/iSEnVXwKZ2lfHVE3TwE+gXFdT/GFiw==} - hasBin: true - requiresBuild: true - peerDependencies: - '@swc-node/register': ^1.8.0 - '@swc/core': ^1.3.85 - peerDependenciesMeta: - '@swc-node/register': - optional: true - '@swc/core': - optional: true - dependencies: - '@nrwl/tao': 18.3.4 - '@yarnpkg/lockfile': 1.1.0 - '@yarnpkg/parsers': 3.0.0-rc.46 - '@zkochan/js-yaml': 0.0.6 - axios: 1.6.8 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.6.1 - cliui: 8.0.1 - dotenv: 16.3.2 - dotenv-expand: 10.0.0 - enquirer: 2.3.6 - figures: 3.2.0 - flat: 5.0.2 - fs-extra: 11.1.1 - ignore: 5.3.1 - jest-diff: 29.7.0 - js-yaml: 4.1.0 - jsonc-parser: 3.2.0 - lines-and-columns: 2.0.4 - minimatch: 9.0.3 - node-machine-id: 1.1.12 - npm-run-path: 4.0.1 - open: 8.4.2 - ora: 5.3.0 - semver: 7.6.0 - string-width: 4.2.3 - strong-log-transformer: 2.1.0 - tar-stream: 2.2.0 - tmp: 0.2.3 - tsconfig-paths: 4.2.0 - tslib: 2.6.2 - yargs: 17.7.2 - yargs-parser: 21.1.1 - optionalDependencies: - '@nx/nx-darwin-arm64': 18.3.4 - '@nx/nx-darwin-x64': 18.3.4 - '@nx/nx-freebsd-x64': 18.3.4 - '@nx/nx-linux-arm-gnueabihf': 18.3.4 - '@nx/nx-linux-arm64-gnu': 18.3.4 - '@nx/nx-linux-arm64-musl': 18.3.4 - '@nx/nx-linux-x64-gnu': 18.3.4 - '@nx/nx-linux-x64-musl': 18.3.4 - '@nx/nx-win32-arm64-msvc': 18.3.4 - '@nx/nx-win32-x64-msvc': 18.3.4 - transitivePeerDependencies: - - debug - dev: true - /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -5375,15 +5027,6 @@ packages: mimic-fn: 4.0.0 dev: true - /open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - dev: true - /openapi-types@12.1.3: resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} dev: false @@ -5412,20 +5055,6 @@ packages: word-wrap: 1.2.5 dev: true - /ora@5.3.0: - resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} - engines: {node: '>=10'} - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.6.1 - is-interactive: 1.0.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - dev: true - /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -5576,15 +5205,6 @@ packages: hasBin: true dev: true - /pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.3.1 - dev: true - /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true @@ -5613,6 +5233,7 @@ packages: /proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: false /punycode@1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} @@ -5722,6 +5343,7 @@ packages: /react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + dev: false /react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} @@ -5790,6 +5412,7 @@ packages: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 + dev: false /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} @@ -5862,14 +5485,6 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: false - /restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: true - /restore-cursor@4.0.0: resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -6205,6 +5820,7 @@ packages: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 + dev: false /strings-file@0.0.5: resolution: {integrity: sha512-4/Fc8WshjKl/6MctVvdcdH3pQpbSP3J481hMUo9qMSpEK+piDYKYg8oSTGGKFMt2AyeZCQCnGF1uMq3i/xg/wQ==} @@ -6225,11 +5841,6 @@ packages: ansi-regex: 6.0.1 dev: true - /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: true - /strip-color@0.1.0: resolution: {integrity: sha512-p9LsUieSjWNNAxVCXLeilaDlmuUOrDS5/dF9znM1nZc7EGX5+zEFC0bEevsNIaldjlks+2jns5Siz6F9iK6jwA==} engines: {node: '>=0.10.0'} @@ -6255,16 +5866,6 @@ packages: engines: {node: '>=8'} dev: true - /strong-log-transformer@2.1.0: - resolution: {integrity: sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==} - engines: {node: '>=4'} - hasBin: true - dependencies: - duplexer: 0.1.2 - minimist: 1.2.8 - through: 2.3.8 - dev: true - /stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} dev: false @@ -6325,17 +5926,6 @@ packages: swagger-ui-dist: 5.17.2 dev: false - /tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} - dependencies: - bl: 4.1.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - inherits: 2.0.4 - readable-stream: 3.6.2 - dev: true - /tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} @@ -6382,11 +5972,6 @@ packages: xml2js: 0.5.0 dev: true - /tmp@0.2.3: - resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} - engines: {node: '>=14.14'} - dev: true - /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -6486,19 +6071,6 @@ packages: plimit-lit: 1.6.1 dev: true - /tsconfig-paths@4.2.0: - resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} - engines: {node: '>=6'} - dependencies: - json5: 2.2.3 - minimist: 1.2.8 - strip-bom: 3.0.0 - dev: true - - /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - dev: true - /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -6699,12 +6271,6 @@ packages: resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} dev: true - /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - dependencies: - defaults: 1.0.4 - dev: true - /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -6941,8 +6507,3 @@ packages: engines: {node: '>=0.8'} hasBin: true dev: true - - file:packages/shared/src: - resolution: {directory: packages/shared/src, type: directory} - name: src - dev: false diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 3ff5faaa..dee51e92 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,2 @@ packages: - - "apps/*" - "packages/*" diff --git a/tsconfig.json b/tsconfig.json index 01b919d1..9f7958ef 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,9 +1,9 @@ { - "include": ["packages/backend/src", "packages/frontend/src", "packages/shared/src"], "compilerOptions": { "target": "ES6", "module": "ES6", "moduleResolution": "node", + "declaration": true, "sourceMap": true, "strictPropertyInitialization": false, "esModuleInterop": true, @@ -25,20 +25,7 @@ "@org/backend/infrastructure": ["./packages/backend/src/infrastructure/index"], "@org/backend/infrastructure/*": ["./packages/backend/src/infrastructure/*"], "@org/backend/web": ["./packages/backend/src/web/index"], - "@org/backend/web/*": ["./packages/backend/src/web/*"], - - "@org/shared": ["./packages/shared/src/index"], - "@org/shared/*": ["./packages/shared/src/*"], - "@org/shared/config": ["./packages/shared/src/config/index"], - "@org/shared/config/*": ["./packages/shared/src/config/*"], - "@org/shared/types": ["./packages/shared/src/types/index"], - "@org/shared/types/*": ["./packages/shared/src/types/*"], - "@org/shared/web": ["./packages/shared/src/web/index"], - "@org/shared/web/*": ["./packages/shared/src/web/*"], - "@org/shared/models": ["./packages/shared/src/models/index"], - "@org/shared/models/*": ["./packages/shared/src/models/*"], - "@org/shared/utils": ["./packages/shared/src/utils/index"], - "@org/shared/utils/*": ["./packages/shared/src/utils/*"] + "@org/backend/web/*": ["./packages/backend/src/web/*"] } } }