diff --git a/codecov.yml b/codecov.yml index f42112df09..4d10d879bd 100644 --- a/codecov.yml +++ b/codecov.yml @@ -39,6 +39,7 @@ component_management: - packages/@n8n/client-oauth2/** - packages/@n8n/decorators/** - packages/@n8n/constants/** + - packages/@n8n/db/** - packages/@n8n/di/** - packages/@n8n/imap/** - packages/@n8n/permissions/** diff --git a/packages/@n8n/db/.eslintrc.js b/packages/@n8n/db/.eslintrc.js new file mode 100644 index 0000000000..8c5b78c5da --- /dev/null +++ b/packages/@n8n/db/.eslintrc.js @@ -0,0 +1,7 @@ +const sharedOptions = require('@n8n/eslint-config/shared'); + +/** @type {import('@types/eslint').ESLint.ConfigData} */ +module.exports = { + extends: ['@n8n/eslint-config/base'], + ...sharedOptions(__dirname), +}; diff --git a/packages/@n8n/db/jest.config.js b/packages/@n8n/db/jest.config.js new file mode 100644 index 0000000000..d14f2d60c6 --- /dev/null +++ b/packages/@n8n/db/jest.config.js @@ -0,0 +1,7 @@ +/** @type {import('jest').Config} */ +module.exports = { + ...require('../../../jest.config'), + transform: { + '^.+\\.ts$': ['ts-jest', { isolatedModules: false }], + }, +}; diff --git a/packages/@n8n/db/package.json b/packages/@n8n/db/package.json new file mode 100644 index 0000000000..9246c72ea0 --- /dev/null +++ b/packages/@n8n/db/package.json @@ -0,0 +1,29 @@ +{ + "name": "@n8n/db", + "version": "0.1.0", + "scripts": { + "clean": "rimraf dist .turbo", + "dev": "pnpm watch", + "typecheck": "tsc --noEmit", + "build": "tsc -p tsconfig.build.json", + "format": "biome format --write .", + "format:check": "biome ci .", + "lint": "eslint .", + "lintfix": "eslint . --fix", + "watch": "tsc -p tsconfig.build.json --watch", + "test": "jest", + "test:dev": "jest --watch" + }, + "main": "dist/index.js", + "module": "src/index.ts", + "types": "dist/index.d.ts", + "files": [ + "dist/**/*" + ], + "dependencies": { + "reflect-metadata": "catalog:" + }, + "devDependencies": { + "@n8n/typescript-config": "workspace:*" + } +} diff --git a/packages/@n8n/db/src/index.ts b/packages/@n8n/db/src/index.ts new file mode 100644 index 0000000000..cb0ff5c3b5 --- /dev/null +++ b/packages/@n8n/db/src/index.ts @@ -0,0 +1 @@ +export {}; diff --git a/packages/@n8n/db/tsconfig.build.json b/packages/@n8n/db/tsconfig.build.json new file mode 100644 index 0000000000..ee0e3e20fd --- /dev/null +++ b/packages/@n8n/db/tsconfig.build.json @@ -0,0 +1,11 @@ +{ + "extends": ["./tsconfig.json", "@n8n/typescript-config/tsconfig.build.json"], + "compilerOptions": { + "composite": true, + "rootDir": "src", + "outDir": "dist", + "tsBuildInfoFile": "dist/build.tsbuildinfo" + }, + "include": ["src/**/*.ts"], + "exclude": ["src/**/__tests__/**"] +} diff --git a/packages/@n8n/db/tsconfig.json b/packages/@n8n/db/tsconfig.json new file mode 100644 index 0000000000..eca44d32aa --- /dev/null +++ b/packages/@n8n/db/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "@n8n/typescript-config/tsconfig.common.json", + "compilerOptions": { + "rootDir": ".", + "types": ["node", "jest"], + "baseUrl": "src", + "tsBuildInfoFile": "dist/typecheck.tsbuildinfo", + "experimentalDecorators": true, + "emitDecoratorMetadata": true + }, + "include": ["src/**/*.ts"] +} diff --git a/packages/cli/package.json b/packages/cli/package.json index 03a010f3ed..c686463bb3 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -94,6 +94,7 @@ "@n8n/client-oauth2": "workspace:*", "@n8n/config": "workspace:*", "@n8n/constants": "workspace:^", + "@n8n/db": "workspace:^", "@n8n/decorators": "workspace:*", "@n8n/di": "workspace:*", "@n8n/localtunnel": "3.0.0", diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json index 1d976ae14b..d0a7ea00be 100644 --- a/packages/cli/tsconfig.json +++ b/packages/cli/tsconfig.json @@ -28,6 +28,7 @@ { "path": "../@n8n/config/tsconfig.build.json" }, { "path": "../@n8n/constants/tsconfig.build.json" }, { "path": "../@n8n/decorators/tsconfig.build.json" }, + { "path": "../@n8n/db/tsconfig.build.json" }, { "path": "../@n8n/di/tsconfig.build.json" }, { "path": "../@n8n/nodes-langchain/tsconfig.build.json" }, { "path": "../@n8n/permissions/tsconfig.build.json" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 81365530e9..c0300f48f7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -462,6 +462,16 @@ importers: specifier: workspace:* version: link:../typescript-config + packages/@n8n/db: + dependencies: + reflect-metadata: + specifier: 'catalog:' + version: 0.2.2 + devDependencies: + '@n8n/typescript-config': + specifier: workspace:* + version: link:../typescript-config + packages/@n8n/decorators: dependencies: '@n8n/constants': @@ -638,7 +648,7 @@ importers: version: 3.666.0(@aws-sdk/client-sts@3.666.0) '@getzep/zep-cloud': specifier: 1.0.12 - version: 1.0.12(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(langchain@0.3.11(6006e4ec6d742ca755e4775e38dc0b4c)) + version: 1.0.12(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(langchain@0.3.11(561f86043553ea1cdca62460394870a4)) '@getzep/zep-js': specifier: 0.9.0 version: 0.9.0 @@ -665,7 +675,7 @@ importers: version: 0.3.2(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13) '@langchain/community': specifier: 'catalog:' - version: 0.3.24(c9c4611e1b6dc12df1941bdd7ead1452) + version: 0.3.24(baacc6cfd87ca40452e0e4a1284c9bc7) '@langchain/core': specifier: 'catalog:' version: 0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)) @@ -764,7 +774,7 @@ importers: version: 23.0.1 langchain: specifier: 0.3.11 - version: 0.3.11(6006e4ec6d742ca755e4775e38dc0b4c) + version: 0.3.11(561f86043553ea1cdca62460394870a4) lodash: specifier: 'catalog:' version: 4.17.21 @@ -1009,6 +1019,9 @@ importers: '@n8n/constants': specifier: workspace:^ version: link:../@n8n/constants + '@n8n/db': + specifier: workspace:^ + version: link:../@n8n/db '@n8n/decorators': specifier: workspace:* version: link:../@n8n/decorators @@ -16306,7 +16319,7 @@ snapshots: '@gar/promisify@1.1.3': optional: true - '@getzep/zep-cloud@1.0.12(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(langchain@0.3.11(6006e4ec6d742ca755e4775e38dc0b4c))': + '@getzep/zep-cloud@1.0.12(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(langchain@0.3.11(561f86043553ea1cdca62460394870a4))': dependencies: form-data: 4.0.0 node-fetch: 2.7.0(encoding@0.1.13) @@ -16315,7 +16328,7 @@ snapshots: zod: 3.24.1 optionalDependencies: '@langchain/core': 0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)) - langchain: 0.3.11(6006e4ec6d742ca755e4775e38dc0b4c) + langchain: 0.3.11(561f86043553ea1cdca62460394870a4) transitivePeerDependencies: - encoding @@ -16830,7 +16843,7 @@ snapshots: - aws-crt - encoding - '@langchain/community@0.3.24(c9c4611e1b6dc12df1941bdd7ead1452)': + '@langchain/community@0.3.24(baacc6cfd87ca40452e0e4a1284c9bc7)': dependencies: '@browserbasehq/stagehand': 1.9.0(@playwright/test@1.49.1)(deepmerge@4.3.1)(dotenv@16.4.5)(encoding@0.1.13)(openai@4.78.1(encoding@0.1.13)(zod@3.24.1))(zod@3.24.1) '@ibm-cloud/watsonx-ai': 1.1.2 @@ -16841,7 +16854,7 @@ snapshots: flat: 5.0.2 ibm-cloud-sdk-core: 5.1.0 js-yaml: 4.1.0 - langchain: 0.3.11(6006e4ec6d742ca755e4775e38dc0b4c) + langchain: 0.3.11(561f86043553ea1cdca62460394870a4) langsmith: 0.2.15(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)) openai: 4.78.1(encoding@0.1.13)(zod@3.24.1) uuid: 10.0.0 @@ -16856,7 +16869,7 @@ snapshots: '@aws-sdk/credential-provider-node': 3.666.0(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@aws-sdk/client-sts@3.666.0) '@azure/storage-blob': 12.18.0(encoding@0.1.13) '@browserbasehq/sdk': 2.0.0(encoding@0.1.13) - '@getzep/zep-cloud': 1.0.12(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(langchain@0.3.11(6006e4ec6d742ca755e4775e38dc0b4c)) + '@getzep/zep-cloud': 1.0.12(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(langchain@0.3.11(561f86043553ea1cdca62460394870a4)) '@getzep/zep-js': 0.9.0 '@google-ai/generativelanguage': 2.6.0(encoding@0.1.13) '@google-cloud/storage': 7.12.1(encoding@0.1.13) @@ -23067,7 +23080,7 @@ snapshots: '@types/debug': 4.1.12 '@types/node': 18.16.16 '@types/tough-cookie': 4.0.2 - axios: 1.8.2(debug@4.4.0) + axios: 1.8.2 camelcase: 6.3.0 debug: 4.4.0(supports-color@8.1.1) dotenv: 16.4.5 @@ -23077,7 +23090,7 @@ snapshots: isstream: 0.1.2 jsonwebtoken: 9.0.2 mime-types: 2.1.35 - retry-axios: 2.6.0(axios@1.8.2) + retry-axios: 2.6.0(axios@1.8.2(debug@4.4.0)) tough-cookie: 4.1.3 transitivePeerDependencies: - supports-color @@ -24071,7 +24084,7 @@ snapshots: kuler@2.0.0: {} - langchain@0.3.11(6006e4ec6d742ca755e4775e38dc0b4c): + langchain@0.3.11(561f86043553ea1cdca62460394870a4): dependencies: '@langchain/core': 0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)) '@langchain/openai': 0.3.17(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13) @@ -26444,7 +26457,7 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - retry-axios@2.6.0(axios@1.8.2): + retry-axios@2.6.0(axios@1.8.2(debug@4.4.0)): dependencies: axios: 1.8.2 diff --git a/turbo.json b/turbo.json index 43543633e9..71fc63f5ca 100644 --- a/turbo.json +++ b/turbo.json @@ -30,6 +30,7 @@ "@n8n/config#lint", "@n8n/decorators#lint", "@n8n/constants#lint", + "@n8n/db#lint", "@n8n/di#lint", "@n8n/client-oauth2#lint", "@n8n/imap#lint",