mirror of
https://github.com/twentyhq/twenty.git
synced 2024-09-11 15:35:36 +03:00
Update scripts and documentation to use nx and new monorepo architecture (#2912)
* Update scripts and documentation to use nx and new monorepo architecture * Start fixing docker * Migrate eslint plugin and postgres setup * Fix docker * Fix patches * Fix * fix: wip try to fix the patches * Apply patches --------- Co-authored-by: Jérémy Magrin <jeremy.magrin@gmail.com>
This commit is contained in:
parent
f91bb35573
commit
44baaee28e
40
.github/workflows/ci-front.yaml
vendored
40
.github/workflows/ci-front.yaml
vendored
@ -25,12 +25,12 @@ jobs:
|
|||||||
path: front/node_modules
|
path: front/node_modules
|
||||||
key: front-node_modules-${{hashFiles('front/yarn.lock')}}
|
key: front-node_modules-${{hashFiles('front/yarn.lock')}}
|
||||||
restore-keys: front-node_modules-
|
restore-keys: front-node_modules-
|
||||||
- name: Cache eslint-plugin-twenty node modules
|
- name: Cache twenty-eslint-plugin node modules
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
path: packages/eslint-plugin-twenty/node_modules
|
path: packages/twenty-eslint-plugin/node_modules
|
||||||
key: eslint-plugin-twenty-node_modules-${{hashFiles('packages/eslint-plugin-twenty/yarn.lock')}}
|
key: twenty-eslint-plugin-node_modules-${{hashFiles('packages/twenty-eslint-plugin/yarn.lock')}}
|
||||||
restore-keys: eslint-plugin-twenty-node_modules-
|
restore-keys: twenty-eslint-plugin-node_modules-
|
||||||
- name: Front / Install Dependencies
|
- name: Front / Install Dependencies
|
||||||
run: cd front && yarn
|
run: cd front && yarn
|
||||||
front-pages-sb-test:
|
front-pages-sb-test:
|
||||||
@ -58,12 +58,12 @@ jobs:
|
|||||||
path: front/node_modules
|
path: front/node_modules
|
||||||
key: front-node_modules-${{hashFiles('front/yarn.lock')}}
|
key: front-node_modules-${{hashFiles('front/yarn.lock')}}
|
||||||
restore-keys: front-node_modules-
|
restore-keys: front-node_modules-
|
||||||
- name: Cache eslint-plugin-twenty node modules
|
- name: Cache twenty-eslint-plugin node modules
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
path: packages/eslint-plugin-twenty/node_modules
|
path: packages/twenty-eslint-plugin/node_modules
|
||||||
key: eslint-plugin-twenty-node_modules-${{hashFiles('packages/eslint-plugin-twenty/yarn.lock')}}
|
key: twenty-eslint-plugin-node_modules-${{hashFiles('packages/twenty-eslint-plugin/yarn.lock')}}
|
||||||
restore-keys: eslint-plugin-twenty-node_modules-
|
restore-keys: twenty-eslint-plugin-node_modules-
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: yarn
|
run: yarn
|
||||||
- name: Install Playwright
|
- name: Install Playwright
|
||||||
@ -100,12 +100,12 @@ jobs:
|
|||||||
path: front/node_modules
|
path: front/node_modules
|
||||||
key: front-node_modules-${{hashFiles('front/yarn.lock')}}
|
key: front-node_modules-${{hashFiles('front/yarn.lock')}}
|
||||||
restore-keys: front-node_modules-
|
restore-keys: front-node_modules-
|
||||||
- name: Cache eslint-plugin-twenty node modules
|
- name: Cache twenty-eslint-plugin node modules
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
path: packages/eslint-plugin-twenty/node_modules
|
path: packages/twenty-eslint-plugin/node_modules
|
||||||
key: eslint-plugin-twenty-node_modules-${{hashFiles('packages/eslint-plugin-twenty/yarn.lock')}}
|
key: twenty-eslint-plugin-node_modules-${{hashFiles('packages/twenty-eslint-plugin/yarn.lock')}}
|
||||||
restore-keys: eslint-plugin-twenty-node_modules-
|
restore-keys: twenty-eslint-plugin-node_modules-
|
||||||
- name: Install Playwright
|
- name: Install Playwright
|
||||||
run: cd front && npx playwright install
|
run: cd front && npx playwright install
|
||||||
- name: Build Storybook
|
- name: Build Storybook
|
||||||
@ -136,12 +136,12 @@ jobs:
|
|||||||
path: front/node_modules
|
path: front/node_modules
|
||||||
key: front-node_modules-${{hashFiles('front/yarn.lock')}}
|
key: front-node_modules-${{hashFiles('front/yarn.lock')}}
|
||||||
restore-keys: front-node_modules-
|
restore-keys: front-node_modules-
|
||||||
- name: Cache eslint-plugin-twenty node modules
|
- name: Cache twenty-eslint-plugin node modules
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
path: packages/eslint-plugin-twenty/node_modules
|
path: packages/twenty-eslint-plugin/node_modules
|
||||||
key: eslint-plugin-twenty-node_modules-${{hashFiles('packages/eslint-plugin-twenty/yarn.lock')}}
|
key: twenty-eslint-plugin-node_modules-${{hashFiles('packages/twenty-eslint-plugin/yarn.lock')}}
|
||||||
restore-keys: eslint-plugin-twenty-node_modules-
|
restore-keys: twenty-eslint-plugin-node_modules-
|
||||||
- name: Front / Install Dependencies
|
- name: Front / Install Dependencies
|
||||||
run: cd front && yarn
|
run: cd front && yarn
|
||||||
- name: Front / Run linter
|
- name: Front / Run linter
|
||||||
@ -167,11 +167,11 @@ jobs:
|
|||||||
path: front/node_modules
|
path: front/node_modules
|
||||||
key: front-node_modules-${{hashFiles('front/yarn.lock')}}
|
key: front-node_modules-${{hashFiles('front/yarn.lock')}}
|
||||||
restore-keys: front-node_modules-
|
restore-keys: front-node_modules-
|
||||||
- name: Cache eslint-plugin-twenty node modules
|
- name: Cache twenty-eslint-plugin node modules
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
path: packages/eslint-plugin-twenty/node_modules
|
path: packages/twenty-eslint-plugin/node_modules
|
||||||
key: eslint-plugin-twenty-node_modules-${{hashFiles('packages/eslint-plugin-twenty/yarn.lock')}}
|
key: twenty-eslint-plugin-node_modules-${{hashFiles('packages/twenty-eslint-plugin/yarn.lock')}}
|
||||||
restore-keys: eslint-plugin-twenty-node_modules-
|
restore-keys: twenty-eslint-plugin-node_modules-
|
||||||
- name: Front / Run jest
|
- name: Front / Run jest
|
||||||
run: cd front && yarn test
|
run: cd front && yarn test
|
15
.gitignore
vendored
15
.gitignore
vendored
@ -1,9 +1,18 @@
|
|||||||
**/**/.env
|
**/**/.env
|
||||||
.DS_Store
|
.DS_Store
|
||||||
.idea/workspace.xml
|
.idea/workspace.xml
|
||||||
node_modules/
|
**/**/node_modules/
|
||||||
|
|
||||||
# yarn is the recommended package manager across the project
|
# yarn is the recommended package manager across the project
|
||||||
.package-lock.json
|
**/**/.package-lock.json
|
||||||
|
|
||||||
.nx/installation
|
.nx/installation
|
||||||
.nx/cache
|
.nx/cache
|
||||||
|
|
||||||
|
.pnp.*
|
||||||
|
.yarn/*
|
||||||
|
!.yarn/patches
|
||||||
|
!.yarn/plugins
|
||||||
|
!.yarn/releases
|
||||||
|
!.yarn/sdks
|
||||||
|
!.yarn/versions
|
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
@ -47,6 +47,5 @@
|
|||||||
},
|
},
|
||||||
"search.exclude": {
|
"search.exclude": {
|
||||||
"**/.yarn": true,
|
"**/.yarn": true,
|
||||||
"**/.pnp.*": true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
5
.yarn/sdks/integrations.yml
vendored
5
.yarn/sdks/integrations.yml
vendored
@ -1,5 +0,0 @@
|
|||||||
# This file is automatically generated by @yarnpkg/sdks.
|
|
||||||
# Manual changes might be lost!
|
|
||||||
|
|
||||||
integrations:
|
|
||||||
- vscode
|
|
20
.yarn/sdks/typescript/bin/tsc
vendored
20
.yarn/sdks/typescript/bin/tsc
vendored
@ -1,20 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
const {existsSync} = require(`fs`);
|
|
||||||
const {createRequire} = require(`module`);
|
|
||||||
const {resolve} = require(`path`);
|
|
||||||
|
|
||||||
const relPnpApiPath = "../../../../.pnp.cjs";
|
|
||||||
|
|
||||||
const absPnpApiPath = resolve(__dirname, relPnpApiPath);
|
|
||||||
const absRequire = createRequire(absPnpApiPath);
|
|
||||||
|
|
||||||
if (existsSync(absPnpApiPath)) {
|
|
||||||
if (!process.versions.pnp) {
|
|
||||||
// Setup the environment to be able to require typescript/bin/tsc
|
|
||||||
require(absPnpApiPath).setup();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Defer to the real typescript/bin/tsc your application uses
|
|
||||||
module.exports = absRequire(`typescript/bin/tsc`);
|
|
20
.yarn/sdks/typescript/bin/tsserver
vendored
20
.yarn/sdks/typescript/bin/tsserver
vendored
@ -1,20 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
const {existsSync} = require(`fs`);
|
|
||||||
const {createRequire} = require(`module`);
|
|
||||||
const {resolve} = require(`path`);
|
|
||||||
|
|
||||||
const relPnpApiPath = "../../../../.pnp.cjs";
|
|
||||||
|
|
||||||
const absPnpApiPath = resolve(__dirname, relPnpApiPath);
|
|
||||||
const absRequire = createRequire(absPnpApiPath);
|
|
||||||
|
|
||||||
if (existsSync(absPnpApiPath)) {
|
|
||||||
if (!process.versions.pnp) {
|
|
||||||
// Setup the environment to be able to require typescript/bin/tsserver
|
|
||||||
require(absPnpApiPath).setup();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Defer to the real typescript/bin/tsserver your application uses
|
|
||||||
module.exports = absRequire(`typescript/bin/tsserver`);
|
|
20
.yarn/sdks/typescript/lib/tsc.js
vendored
20
.yarn/sdks/typescript/lib/tsc.js
vendored
@ -1,20 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
const {existsSync} = require(`fs`);
|
|
||||||
const {createRequire} = require(`module`);
|
|
||||||
const {resolve} = require(`path`);
|
|
||||||
|
|
||||||
const relPnpApiPath = "../../../../.pnp.cjs";
|
|
||||||
|
|
||||||
const absPnpApiPath = resolve(__dirname, relPnpApiPath);
|
|
||||||
const absRequire = createRequire(absPnpApiPath);
|
|
||||||
|
|
||||||
if (existsSync(absPnpApiPath)) {
|
|
||||||
if (!process.versions.pnp) {
|
|
||||||
// Setup the environment to be able to require typescript/lib/tsc.js
|
|
||||||
require(absPnpApiPath).setup();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Defer to the real typescript/lib/tsc.js your application uses
|
|
||||||
module.exports = absRequire(`typescript/lib/tsc.js`);
|
|
225
.yarn/sdks/typescript/lib/tsserver.js
vendored
225
.yarn/sdks/typescript/lib/tsserver.js
vendored
@ -1,225 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
const {existsSync} = require(`fs`);
|
|
||||||
const {createRequire} = require(`module`);
|
|
||||||
const {resolve} = require(`path`);
|
|
||||||
|
|
||||||
const relPnpApiPath = "../../../../.pnp.cjs";
|
|
||||||
|
|
||||||
const absPnpApiPath = resolve(__dirname, relPnpApiPath);
|
|
||||||
const absRequire = createRequire(absPnpApiPath);
|
|
||||||
|
|
||||||
const moduleWrapper = tsserver => {
|
|
||||||
if (!process.versions.pnp) {
|
|
||||||
return tsserver;
|
|
||||||
}
|
|
||||||
|
|
||||||
const {isAbsolute} = require(`path`);
|
|
||||||
const pnpApi = require(`pnpapi`);
|
|
||||||
|
|
||||||
const isVirtual = str => str.match(/\/(\$\$virtual|__virtual__)\//);
|
|
||||||
const isPortal = str => str.startsWith("portal:/");
|
|
||||||
const normalize = str => str.replace(/\\/g, `/`).replace(/^\/?/, `/`);
|
|
||||||
|
|
||||||
const dependencyTreeRoots = new Set(pnpApi.getDependencyTreeRoots().map(locator => {
|
|
||||||
return `${locator.name}@${locator.reference}`;
|
|
||||||
}));
|
|
||||||
|
|
||||||
// VSCode sends the zip paths to TS using the "zip://" prefix, that TS
|
|
||||||
// doesn't understand. This layer makes sure to remove the protocol
|
|
||||||
// before forwarding it to TS, and to add it back on all returned paths.
|
|
||||||
|
|
||||||
function toEditorPath(str) {
|
|
||||||
// We add the `zip:` prefix to both `.zip/` paths and virtual paths
|
|
||||||
if (isAbsolute(str) && !str.match(/^\^?(zip:|\/zip\/)/) && (str.match(/\.zip\//) || isVirtual(str))) {
|
|
||||||
// We also take the opportunity to turn virtual paths into physical ones;
|
|
||||||
// this makes it much easier to work with workspaces that list peer
|
|
||||||
// dependencies, since otherwise Ctrl+Click would bring us to the virtual
|
|
||||||
// file instances instead of the real ones.
|
|
||||||
//
|
|
||||||
// We only do this to modules owned by the the dependency tree roots.
|
|
||||||
// This avoids breaking the resolution when jumping inside a vendor
|
|
||||||
// with peer dep (otherwise jumping into react-dom would show resolution
|
|
||||||
// errors on react).
|
|
||||||
//
|
|
||||||
const resolved = isVirtual(str) ? pnpApi.resolveVirtual(str) : str;
|
|
||||||
if (resolved) {
|
|
||||||
const locator = pnpApi.findPackageLocator(resolved);
|
|
||||||
if (locator && (dependencyTreeRoots.has(`${locator.name}@${locator.reference}`) || isPortal(locator.reference))) {
|
|
||||||
str = resolved;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
str = normalize(str);
|
|
||||||
|
|
||||||
if (str.match(/\.zip\//)) {
|
|
||||||
switch (hostInfo) {
|
|
||||||
// Absolute VSCode `Uri.fsPath`s need to start with a slash.
|
|
||||||
// VSCode only adds it automatically for supported schemes,
|
|
||||||
// so we have to do it manually for the `zip` scheme.
|
|
||||||
// The path needs to start with a caret otherwise VSCode doesn't handle the protocol
|
|
||||||
//
|
|
||||||
// Ref: https://github.com/microsoft/vscode/issues/105014#issuecomment-686760910
|
|
||||||
//
|
|
||||||
// 2021-10-08: VSCode changed the format in 1.61.
|
|
||||||
// Before | ^zip:/c:/foo/bar.zip/package.json
|
|
||||||
// After | ^/zip//c:/foo/bar.zip/package.json
|
|
||||||
//
|
|
||||||
// 2022-04-06: VSCode changed the format in 1.66.
|
|
||||||
// Before | ^/zip//c:/foo/bar.zip/package.json
|
|
||||||
// After | ^/zip/c:/foo/bar.zip/package.json
|
|
||||||
//
|
|
||||||
// 2022-05-06: VSCode changed the format in 1.68
|
|
||||||
// Before | ^/zip/c:/foo/bar.zip/package.json
|
|
||||||
// After | ^/zip//c:/foo/bar.zip/package.json
|
|
||||||
//
|
|
||||||
case `vscode <1.61`: {
|
|
||||||
str = `^zip:${str}`;
|
|
||||||
} break;
|
|
||||||
|
|
||||||
case `vscode <1.66`: {
|
|
||||||
str = `^/zip/${str}`;
|
|
||||||
} break;
|
|
||||||
|
|
||||||
case `vscode <1.68`: {
|
|
||||||
str = `^/zip${str}`;
|
|
||||||
} break;
|
|
||||||
|
|
||||||
case `vscode`: {
|
|
||||||
str = `^/zip/${str}`;
|
|
||||||
} break;
|
|
||||||
|
|
||||||
// To make "go to definition" work,
|
|
||||||
// We have to resolve the actual file system path from virtual path
|
|
||||||
// and convert scheme to supported by [vim-rzip](https://github.com/lbrayner/vim-rzip)
|
|
||||||
case `coc-nvim`: {
|
|
||||||
str = normalize(resolved).replace(/\.zip\//, `.zip::`);
|
|
||||||
str = resolve(`zipfile:${str}`);
|
|
||||||
} break;
|
|
||||||
|
|
||||||
// Support neovim native LSP and [typescript-language-server](https://github.com/theia-ide/typescript-language-server)
|
|
||||||
// We have to resolve the actual file system path from virtual path,
|
|
||||||
// everything else is up to neovim
|
|
||||||
case `neovim`: {
|
|
||||||
str = normalize(resolved).replace(/\.zip\//, `.zip::`);
|
|
||||||
str = `zipfile://${str}`;
|
|
||||||
} break;
|
|
||||||
|
|
||||||
default: {
|
|
||||||
str = `zip:${str}`;
|
|
||||||
} break;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
str = str.replace(/^\/?/, process.platform === `win32` ? `` : `/`);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
|
|
||||||
function fromEditorPath(str) {
|
|
||||||
switch (hostInfo) {
|
|
||||||
case `coc-nvim`: {
|
|
||||||
str = str.replace(/\.zip::/, `.zip/`);
|
|
||||||
// The path for coc-nvim is in format of /<pwd>/zipfile:/<pwd>/.yarn/...
|
|
||||||
// So in order to convert it back, we use .* to match all the thing
|
|
||||||
// before `zipfile:`
|
|
||||||
return process.platform === `win32`
|
|
||||||
? str.replace(/^.*zipfile:\//, ``)
|
|
||||||
: str.replace(/^.*zipfile:/, ``);
|
|
||||||
} break;
|
|
||||||
|
|
||||||
case `neovim`: {
|
|
||||||
str = str.replace(/\.zip::/, `.zip/`);
|
|
||||||
// The path for neovim is in format of zipfile:///<pwd>/.yarn/...
|
|
||||||
return str.replace(/^zipfile:\/\//, ``);
|
|
||||||
} break;
|
|
||||||
|
|
||||||
case `vscode`:
|
|
||||||
default: {
|
|
||||||
return str.replace(/^\^?(zip:|\/zip(\/ts-nul-authority)?)\/+/, process.platform === `win32` ? `` : `/`)
|
|
||||||
} break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Force enable 'allowLocalPluginLoads'
|
|
||||||
// TypeScript tries to resolve plugins using a path relative to itself
|
|
||||||
// which doesn't work when using the global cache
|
|
||||||
// https://github.com/microsoft/TypeScript/blob/1b57a0395e0bff191581c9606aab92832001de62/src/server/project.ts#L2238
|
|
||||||
// VSCode doesn't want to enable 'allowLocalPluginLoads' due to security concerns but
|
|
||||||
// TypeScript already does local loads and if this code is running the user trusts the workspace
|
|
||||||
// https://github.com/microsoft/vscode/issues/45856
|
|
||||||
const ConfiguredProject = tsserver.server.ConfiguredProject;
|
|
||||||
const {enablePluginsWithOptions: originalEnablePluginsWithOptions} = ConfiguredProject.prototype;
|
|
||||||
ConfiguredProject.prototype.enablePluginsWithOptions = function() {
|
|
||||||
this.projectService.allowLocalPluginLoads = true;
|
|
||||||
return originalEnablePluginsWithOptions.apply(this, arguments);
|
|
||||||
};
|
|
||||||
|
|
||||||
// And here is the point where we hijack the VSCode <-> TS communications
|
|
||||||
// by adding ourselves in the middle. We locate everything that looks
|
|
||||||
// like an absolute path of ours and normalize it.
|
|
||||||
|
|
||||||
const Session = tsserver.server.Session;
|
|
||||||
const {onMessage: originalOnMessage, send: originalSend} = Session.prototype;
|
|
||||||
let hostInfo = `unknown`;
|
|
||||||
|
|
||||||
Object.assign(Session.prototype, {
|
|
||||||
onMessage(/** @type {string | object} */ message) {
|
|
||||||
const isStringMessage = typeof message === 'string';
|
|
||||||
const parsedMessage = isStringMessage ? JSON.parse(message) : message;
|
|
||||||
|
|
||||||
if (
|
|
||||||
parsedMessage != null &&
|
|
||||||
typeof parsedMessage === `object` &&
|
|
||||||
parsedMessage.arguments &&
|
|
||||||
typeof parsedMessage.arguments.hostInfo === `string`
|
|
||||||
) {
|
|
||||||
hostInfo = parsedMessage.arguments.hostInfo;
|
|
||||||
if (hostInfo === `vscode` && process.env.VSCODE_IPC_HOOK) {
|
|
||||||
const [, major, minor] = (process.env.VSCODE_IPC_HOOK.match(
|
|
||||||
// The RegExp from https://semver.org/ but without the caret at the start
|
|
||||||
/(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/
|
|
||||||
) ?? []).map(Number)
|
|
||||||
|
|
||||||
if (major === 1) {
|
|
||||||
if (minor < 61) {
|
|
||||||
hostInfo += ` <1.61`;
|
|
||||||
} else if (minor < 66) {
|
|
||||||
hostInfo += ` <1.66`;
|
|
||||||
} else if (minor < 68) {
|
|
||||||
hostInfo += ` <1.68`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const processedMessageJSON = JSON.stringify(parsedMessage, (key, value) => {
|
|
||||||
return typeof value === 'string' ? fromEditorPath(value) : value;
|
|
||||||
});
|
|
||||||
|
|
||||||
return originalOnMessage.call(
|
|
||||||
this,
|
|
||||||
isStringMessage ? processedMessageJSON : JSON.parse(processedMessageJSON)
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
send(/** @type {any} */ msg) {
|
|
||||||
return originalSend.call(this, JSON.parse(JSON.stringify(msg, (key, value) => {
|
|
||||||
return typeof value === `string` ? toEditorPath(value) : value;
|
|
||||||
})));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return tsserver;
|
|
||||||
};
|
|
||||||
|
|
||||||
if (existsSync(absPnpApiPath)) {
|
|
||||||
if (!process.versions.pnp) {
|
|
||||||
// Setup the environment to be able to require typescript/lib/tsserver.js
|
|
||||||
require(absPnpApiPath).setup();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Defer to the real typescript/lib/tsserver.js your application uses
|
|
||||||
module.exports = moduleWrapper(absRequire(`typescript/lib/tsserver.js`));
|
|
225
.yarn/sdks/typescript/lib/tsserverlibrary.js
vendored
225
.yarn/sdks/typescript/lib/tsserverlibrary.js
vendored
@ -1,225 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
const {existsSync} = require(`fs`);
|
|
||||||
const {createRequire} = require(`module`);
|
|
||||||
const {resolve} = require(`path`);
|
|
||||||
|
|
||||||
const relPnpApiPath = "../../../../.pnp.cjs";
|
|
||||||
|
|
||||||
const absPnpApiPath = resolve(__dirname, relPnpApiPath);
|
|
||||||
const absRequire = createRequire(absPnpApiPath);
|
|
||||||
|
|
||||||
const moduleWrapper = tsserver => {
|
|
||||||
if (!process.versions.pnp) {
|
|
||||||
return tsserver;
|
|
||||||
}
|
|
||||||
|
|
||||||
const {isAbsolute} = require(`path`);
|
|
||||||
const pnpApi = require(`pnpapi`);
|
|
||||||
|
|
||||||
const isVirtual = str => str.match(/\/(\$\$virtual|__virtual__)\//);
|
|
||||||
const isPortal = str => str.startsWith("portal:/");
|
|
||||||
const normalize = str => str.replace(/\\/g, `/`).replace(/^\/?/, `/`);
|
|
||||||
|
|
||||||
const dependencyTreeRoots = new Set(pnpApi.getDependencyTreeRoots().map(locator => {
|
|
||||||
return `${locator.name}@${locator.reference}`;
|
|
||||||
}));
|
|
||||||
|
|
||||||
// VSCode sends the zip paths to TS using the "zip://" prefix, that TS
|
|
||||||
// doesn't understand. This layer makes sure to remove the protocol
|
|
||||||
// before forwarding it to TS, and to add it back on all returned paths.
|
|
||||||
|
|
||||||
function toEditorPath(str) {
|
|
||||||
// We add the `zip:` prefix to both `.zip/` paths and virtual paths
|
|
||||||
if (isAbsolute(str) && !str.match(/^\^?(zip:|\/zip\/)/) && (str.match(/\.zip\//) || isVirtual(str))) {
|
|
||||||
// We also take the opportunity to turn virtual paths into physical ones;
|
|
||||||
// this makes it much easier to work with workspaces that list peer
|
|
||||||
// dependencies, since otherwise Ctrl+Click would bring us to the virtual
|
|
||||||
// file instances instead of the real ones.
|
|
||||||
//
|
|
||||||
// We only do this to modules owned by the the dependency tree roots.
|
|
||||||
// This avoids breaking the resolution when jumping inside a vendor
|
|
||||||
// with peer dep (otherwise jumping into react-dom would show resolution
|
|
||||||
// errors on react).
|
|
||||||
//
|
|
||||||
const resolved = isVirtual(str) ? pnpApi.resolveVirtual(str) : str;
|
|
||||||
if (resolved) {
|
|
||||||
const locator = pnpApi.findPackageLocator(resolved);
|
|
||||||
if (locator && (dependencyTreeRoots.has(`${locator.name}@${locator.reference}`) || isPortal(locator.reference))) {
|
|
||||||
str = resolved;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
str = normalize(str);
|
|
||||||
|
|
||||||
if (str.match(/\.zip\//)) {
|
|
||||||
switch (hostInfo) {
|
|
||||||
// Absolute VSCode `Uri.fsPath`s need to start with a slash.
|
|
||||||
// VSCode only adds it automatically for supported schemes,
|
|
||||||
// so we have to do it manually for the `zip` scheme.
|
|
||||||
// The path needs to start with a caret otherwise VSCode doesn't handle the protocol
|
|
||||||
//
|
|
||||||
// Ref: https://github.com/microsoft/vscode/issues/105014#issuecomment-686760910
|
|
||||||
//
|
|
||||||
// 2021-10-08: VSCode changed the format in 1.61.
|
|
||||||
// Before | ^zip:/c:/foo/bar.zip/package.json
|
|
||||||
// After | ^/zip//c:/foo/bar.zip/package.json
|
|
||||||
//
|
|
||||||
// 2022-04-06: VSCode changed the format in 1.66.
|
|
||||||
// Before | ^/zip//c:/foo/bar.zip/package.json
|
|
||||||
// After | ^/zip/c:/foo/bar.zip/package.json
|
|
||||||
//
|
|
||||||
// 2022-05-06: VSCode changed the format in 1.68
|
|
||||||
// Before | ^/zip/c:/foo/bar.zip/package.json
|
|
||||||
// After | ^/zip//c:/foo/bar.zip/package.json
|
|
||||||
//
|
|
||||||
case `vscode <1.61`: {
|
|
||||||
str = `^zip:${str}`;
|
|
||||||
} break;
|
|
||||||
|
|
||||||
case `vscode <1.66`: {
|
|
||||||
str = `^/zip/${str}`;
|
|
||||||
} break;
|
|
||||||
|
|
||||||
case `vscode <1.68`: {
|
|
||||||
str = `^/zip${str}`;
|
|
||||||
} break;
|
|
||||||
|
|
||||||
case `vscode`: {
|
|
||||||
str = `^/zip/${str}`;
|
|
||||||
} break;
|
|
||||||
|
|
||||||
// To make "go to definition" work,
|
|
||||||
// We have to resolve the actual file system path from virtual path
|
|
||||||
// and convert scheme to supported by [vim-rzip](https://github.com/lbrayner/vim-rzip)
|
|
||||||
case `coc-nvim`: {
|
|
||||||
str = normalize(resolved).replace(/\.zip\//, `.zip::`);
|
|
||||||
str = resolve(`zipfile:${str}`);
|
|
||||||
} break;
|
|
||||||
|
|
||||||
// Support neovim native LSP and [typescript-language-server](https://github.com/theia-ide/typescript-language-server)
|
|
||||||
// We have to resolve the actual file system path from virtual path,
|
|
||||||
// everything else is up to neovim
|
|
||||||
case `neovim`: {
|
|
||||||
str = normalize(resolved).replace(/\.zip\//, `.zip::`);
|
|
||||||
str = `zipfile://${str}`;
|
|
||||||
} break;
|
|
||||||
|
|
||||||
default: {
|
|
||||||
str = `zip:${str}`;
|
|
||||||
} break;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
str = str.replace(/^\/?/, process.platform === `win32` ? `` : `/`);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
|
|
||||||
function fromEditorPath(str) {
|
|
||||||
switch (hostInfo) {
|
|
||||||
case `coc-nvim`: {
|
|
||||||
str = str.replace(/\.zip::/, `.zip/`);
|
|
||||||
// The path for coc-nvim is in format of /<pwd>/zipfile:/<pwd>/.yarn/...
|
|
||||||
// So in order to convert it back, we use .* to match all the thing
|
|
||||||
// before `zipfile:`
|
|
||||||
return process.platform === `win32`
|
|
||||||
? str.replace(/^.*zipfile:\//, ``)
|
|
||||||
: str.replace(/^.*zipfile:/, ``);
|
|
||||||
} break;
|
|
||||||
|
|
||||||
case `neovim`: {
|
|
||||||
str = str.replace(/\.zip::/, `.zip/`);
|
|
||||||
// The path for neovim is in format of zipfile:///<pwd>/.yarn/...
|
|
||||||
return str.replace(/^zipfile:\/\//, ``);
|
|
||||||
} break;
|
|
||||||
|
|
||||||
case `vscode`:
|
|
||||||
default: {
|
|
||||||
return str.replace(/^\^?(zip:|\/zip(\/ts-nul-authority)?)\/+/, process.platform === `win32` ? `` : `/`)
|
|
||||||
} break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Force enable 'allowLocalPluginLoads'
|
|
||||||
// TypeScript tries to resolve plugins using a path relative to itself
|
|
||||||
// which doesn't work when using the global cache
|
|
||||||
// https://github.com/microsoft/TypeScript/blob/1b57a0395e0bff191581c9606aab92832001de62/src/server/project.ts#L2238
|
|
||||||
// VSCode doesn't want to enable 'allowLocalPluginLoads' due to security concerns but
|
|
||||||
// TypeScript already does local loads and if this code is running the user trusts the workspace
|
|
||||||
// https://github.com/microsoft/vscode/issues/45856
|
|
||||||
const ConfiguredProject = tsserver.server.ConfiguredProject;
|
|
||||||
const {enablePluginsWithOptions: originalEnablePluginsWithOptions} = ConfiguredProject.prototype;
|
|
||||||
ConfiguredProject.prototype.enablePluginsWithOptions = function() {
|
|
||||||
this.projectService.allowLocalPluginLoads = true;
|
|
||||||
return originalEnablePluginsWithOptions.apply(this, arguments);
|
|
||||||
};
|
|
||||||
|
|
||||||
// And here is the point where we hijack the VSCode <-> TS communications
|
|
||||||
// by adding ourselves in the middle. We locate everything that looks
|
|
||||||
// like an absolute path of ours and normalize it.
|
|
||||||
|
|
||||||
const Session = tsserver.server.Session;
|
|
||||||
const {onMessage: originalOnMessage, send: originalSend} = Session.prototype;
|
|
||||||
let hostInfo = `unknown`;
|
|
||||||
|
|
||||||
Object.assign(Session.prototype, {
|
|
||||||
onMessage(/** @type {string | object} */ message) {
|
|
||||||
const isStringMessage = typeof message === 'string';
|
|
||||||
const parsedMessage = isStringMessage ? JSON.parse(message) : message;
|
|
||||||
|
|
||||||
if (
|
|
||||||
parsedMessage != null &&
|
|
||||||
typeof parsedMessage === `object` &&
|
|
||||||
parsedMessage.arguments &&
|
|
||||||
typeof parsedMessage.arguments.hostInfo === `string`
|
|
||||||
) {
|
|
||||||
hostInfo = parsedMessage.arguments.hostInfo;
|
|
||||||
if (hostInfo === `vscode` && process.env.VSCODE_IPC_HOOK) {
|
|
||||||
const [, major, minor] = (process.env.VSCODE_IPC_HOOK.match(
|
|
||||||
// The RegExp from https://semver.org/ but without the caret at the start
|
|
||||||
/(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/
|
|
||||||
) ?? []).map(Number)
|
|
||||||
|
|
||||||
if (major === 1) {
|
|
||||||
if (minor < 61) {
|
|
||||||
hostInfo += ` <1.61`;
|
|
||||||
} else if (minor < 66) {
|
|
||||||
hostInfo += ` <1.66`;
|
|
||||||
} else if (minor < 68) {
|
|
||||||
hostInfo += ` <1.68`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const processedMessageJSON = JSON.stringify(parsedMessage, (key, value) => {
|
|
||||||
return typeof value === 'string' ? fromEditorPath(value) : value;
|
|
||||||
});
|
|
||||||
|
|
||||||
return originalOnMessage.call(
|
|
||||||
this,
|
|
||||||
isStringMessage ? processedMessageJSON : JSON.parse(processedMessageJSON)
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
send(/** @type {any} */ msg) {
|
|
||||||
return originalSend.call(this, JSON.parse(JSON.stringify(msg, (key, value) => {
|
|
||||||
return typeof value === `string` ? toEditorPath(value) : value;
|
|
||||||
})));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return tsserver;
|
|
||||||
};
|
|
||||||
|
|
||||||
if (existsSync(absPnpApiPath)) {
|
|
||||||
if (!process.versions.pnp) {
|
|
||||||
// Setup the environment to be able to require typescript/lib/tsserverlibrary.js
|
|
||||||
require(absPnpApiPath).setup();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Defer to the real typescript/lib/tsserverlibrary.js your application uses
|
|
||||||
module.exports = moduleWrapper(absRequire(`typescript/lib/tsserverlibrary.js`));
|
|
20
.yarn/sdks/typescript/lib/typescript.js
vendored
20
.yarn/sdks/typescript/lib/typescript.js
vendored
@ -1,20 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
const {existsSync} = require(`fs`);
|
|
||||||
const {createRequire} = require(`module`);
|
|
||||||
const {resolve} = require(`path`);
|
|
||||||
|
|
||||||
const relPnpApiPath = "../../../../.pnp.cjs";
|
|
||||||
|
|
||||||
const absPnpApiPath = resolve(__dirname, relPnpApiPath);
|
|
||||||
const absRequire = createRequire(absPnpApiPath);
|
|
||||||
|
|
||||||
if (existsSync(absPnpApiPath)) {
|
|
||||||
if (!process.versions.pnp) {
|
|
||||||
// Setup the environment to be able to require typescript
|
|
||||||
require(absPnpApiPath).setup();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Defer to the real typescript your application uses
|
|
||||||
module.exports = absRequire(`typescript`);
|
|
10
.yarn/sdks/typescript/package.json
vendored
10
.yarn/sdks/typescript/package.json
vendored
@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "typescript",
|
|
||||||
"version": "5.3.3-sdk",
|
|
||||||
"main": "./lib/typescript.js",
|
|
||||||
"type": "commonjs",
|
|
||||||
"bin": {
|
|
||||||
"tsc": "./bin/tsc",
|
|
||||||
"tsserver": "./bin/tsserver"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1 +1,2 @@
|
|||||||
nodeLinker: node-modules
|
nodeLinker: node-modules
|
||||||
|
enableInlineHunks: true
|
10
package.json
10
package.json
@ -2,10 +2,15 @@
|
|||||||
"name": "twenty",
|
"name": "twenty",
|
||||||
"version": "0.2.1",
|
"version": "0.2.1",
|
||||||
"packageManager": "yarn@4.0.2",
|
"packageManager": "yarn@4.0.2",
|
||||||
|
"engines": {
|
||||||
|
"node": "^18.16.0",
|
||||||
|
"npm": "please-use-yarn",
|
||||||
|
"yarn": ">=4.0.2"
|
||||||
|
},
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"workspaces": {
|
"workspaces": {
|
||||||
"packages": [
|
"packages": [
|
||||||
"packages/eslint-plugin-twenty",
|
"packages/twenty-eslint-plugin",
|
||||||
"packages/twenty-front",
|
"packages/twenty-front",
|
||||||
"packages/twenty-docs",
|
"packages/twenty-docs",
|
||||||
"packages/twenty-server"
|
"packages/twenty-server"
|
||||||
@ -14,5 +19,8 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"nx": "17.2.0",
|
"nx": "17.2.0",
|
||||||
"typescript": "^5.3.3"
|
"typescript": "^5.3.3"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"patch-package": "^8.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
33
packages/twenty-docker/Makefile
Normal file
33
packages/twenty-docker/Makefile
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
dev-build:
|
||||||
|
@docker compose -f dev/docker-compose.yml down
|
||||||
|
rm -rf ../twenty-front/node_modules
|
||||||
|
rm -rf ../twenty-server/node_modules
|
||||||
|
rm -rf ../twenty-docs/node_modules
|
||||||
|
@docker volume rm twenty_node_modules_front > /dev/null 2>&1 || true
|
||||||
|
@docker volume rm twenty_node_modules_server > /dev/null 2>&1 || true
|
||||||
|
@docker volume rm twenty_node_modules_docs > /dev/null 2>&1 || true
|
||||||
|
@docker compose -f dev/docker-compose.yml build
|
||||||
|
|
||||||
|
dev-up:
|
||||||
|
@docker compose -f dev/docker-compose.yml up -d
|
||||||
|
|
||||||
|
dev-down:
|
||||||
|
@docker compose -f dev/docker-compose.yml down -v
|
||||||
|
|
||||||
|
dev-sh:
|
||||||
|
@docker compose -f dev/docker-compose.yml exec twenty-dev sh
|
||||||
|
|
||||||
|
dev-front-start:
|
||||||
|
@docker compose -f dev/docker-compose.yml exec twenty-dev sh -c "cd /app/packages/twenty-front && yarn run start"
|
||||||
|
|
||||||
|
dev-server-start:
|
||||||
|
@docker compose -f dev/docker-compose.yml exec twenty-dev sh -c "yarn nx run twenty-server:start:dev"
|
||||||
|
|
||||||
|
dev-server-database-init:
|
||||||
|
@docker compose -f dev/docker-compose.yml exec twenty-dev sh -c "yarn nx run twenty-server:database:init"
|
||||||
|
|
||||||
|
dev-build-postgres:
|
||||||
|
@docker stop twenty_postgres || true
|
||||||
|
@docker rm twenty_postgres || true
|
||||||
|
@docker volume rm twenty_db_data || true
|
||||||
|
@docker compose up --build postgres -d
|
@ -1,69 +0,0 @@
|
|||||||
build:
|
|
||||||
@docker compose down
|
|
||||||
rm -rf ../../front/node_modules
|
|
||||||
rm -rf ../../server/node_modules
|
|
||||||
rm -rf ../../docs/node_modules
|
|
||||||
@docker volume rm twenty_node_modules_front > /dev/null 2>&1 || true
|
|
||||||
@docker volume rm twenty_node_modules_server > /dev/null 2>&1 || true
|
|
||||||
@docker volume rm twenty_node_modules_docs > /dev/null 2>&1 || true
|
|
||||||
@docker compose build
|
|
||||||
|
|
||||||
provision-postgres-docker:
|
|
||||||
@docker stop twenty_postgres || true
|
|
||||||
@docker rm twenty_postgres || true
|
|
||||||
@docker volume rm twenty_db_data || true
|
|
||||||
@docker compose up --build postgres -d
|
|
||||||
|
|
||||||
provision-postgres-macos-arm:
|
|
||||||
sh ./scripts/setup-postgres-macos-arm.sh
|
|
||||||
|
|
||||||
provision-postgres-macos-intel:
|
|
||||||
sh ./scripts/setup-postgres-macos-intel.sh
|
|
||||||
|
|
||||||
provision-postgres-linux:
|
|
||||||
sh ./scripts/setup-postgres-linux.sh
|
|
||||||
|
|
||||||
up:
|
|
||||||
@docker compose up -d
|
|
||||||
|
|
||||||
down:
|
|
||||||
@docker compose down -v
|
|
||||||
|
|
||||||
sh:
|
|
||||||
@docker compose exec twenty-dev sh
|
|
||||||
|
|
||||||
front-start:
|
|
||||||
@docker compose exec twenty-dev sh -c "cd ./front && yarn start"
|
|
||||||
|
|
||||||
front-lint:
|
|
||||||
@docker compose exec twenty-dev sh -c "cd ./front && yarn lint"
|
|
||||||
|
|
||||||
front-test:
|
|
||||||
@docker compose exec twenty-dev sh -c "cd ./front && yarn test"
|
|
||||||
|
|
||||||
front-coverage:
|
|
||||||
@docker compose exec twenty-dev sh -c "cd ./front && yarn coverage"
|
|
||||||
|
|
||||||
front-graphql-generate:
|
|
||||||
@docker compose exec twenty-dev sh -c "cd ./front && yarn graphql:generate"
|
|
||||||
|
|
||||||
front-storybook:
|
|
||||||
@docker compose exec twenty-dev sh -c "cd ./front && yarn storybook:dev"
|
|
||||||
|
|
||||||
server-start:
|
|
||||||
@docker compose exec twenty-dev sh -c "cd /app/server && yarn start:dev"
|
|
||||||
|
|
||||||
server-database-init:
|
|
||||||
@docker compose exec twenty-dev sh -c "cd /app/server && yarn database:init"
|
|
||||||
|
|
||||||
server-database-setup:
|
|
||||||
@docker compose exec twenty-dev sh -c "cd /app/server && yarn database:setup"
|
|
||||||
|
|
||||||
server-database-migrate:
|
|
||||||
@docker compose exec twenty-dev sh -c "cd /app/server && yarn database:migrate"
|
|
||||||
|
|
||||||
server-database-seed:
|
|
||||||
@docker compose exec twenty-dev sh -c "cd /app/server && yarn database:seed"
|
|
||||||
|
|
||||||
server-database-reset:
|
|
||||||
@docker compose exec twenty-dev sh -c "cd /app/server && yarn database:reset"
|
|
@ -2,27 +2,33 @@ version: "3.9"
|
|||||||
services:
|
services:
|
||||||
twenty-dev:
|
twenty-dev:
|
||||||
build:
|
build:
|
||||||
context: ../..
|
context: ../../..
|
||||||
dockerfile: ./infra/dev/twenty-dev/Dockerfile
|
dockerfile: ./packages/twenty-docker/dev/twenty-dev/Dockerfile
|
||||||
ports:
|
ports:
|
||||||
- "3000:3000"
|
- "3000:3000"
|
||||||
- "3001:3001"
|
- "3001:3001"
|
||||||
- "6006:6006"
|
- "6006:6006"
|
||||||
volumes:
|
volumes:
|
||||||
- ../..:/app
|
- ../../../packages/twenty-front:/app/packages/twenty-front
|
||||||
- /app/front/node_modules
|
- ../../../packages/twenty-server:/app/packages/twenty-server
|
||||||
- /app/server/node_modules
|
- ../../../packages/twenty-eslint-plugin:/app/packages/twenty-eslint-plugin
|
||||||
|
- twenty_dev_node_modules_root:/app/node_modules
|
||||||
|
- twenty_dev_node_modules_yarn:/app/.yarn
|
||||||
|
- twenty_dev_node_modules_front:/app/packages/twenty-front/node_modules
|
||||||
|
- twenty_dev_node_modules_server:/app/packages/twenty-server/node_modules
|
||||||
depends_on:
|
depends_on:
|
||||||
- postgres
|
- postgres
|
||||||
twenty-docs:
|
twenty-docs:
|
||||||
build:
|
build:
|
||||||
context: ../..
|
context: ../../..
|
||||||
dockerfile: ./infra/dev/twenty-docs/Dockerfile
|
dockerfile: ./packages/twenty-docker/dev/twenty-docs/Dockerfile
|
||||||
ports:
|
ports:
|
||||||
- "5001:5001"
|
- "5001:5001"
|
||||||
volumes:
|
volumes:
|
||||||
- ../../docs:/app/docs
|
- ../../../packages/twenty-docs:/app/packages/twenty-docs
|
||||||
- twenty_node_modules_docs:/app/docs/node_modules
|
- twenty_docs_node_modules_root:/app/node_modules
|
||||||
|
- twenty_docs_node_modules_yarn:/app/.yarn
|
||||||
|
- twenty_docs_node_modules_docs:/app/packages/twenty-docs/node_modules
|
||||||
postgres:
|
postgres:
|
||||||
container_name: twenty_postgres
|
container_name: twenty_postgres
|
||||||
build: ./postgres
|
build: ./postgres
|
||||||
@ -37,6 +43,10 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
twenty_db_data:
|
twenty_db_data:
|
||||||
name: twenty_db_data
|
name: twenty_db_data
|
||||||
twenty_node_modules_front:
|
twenty_dev_node_modules_root:
|
||||||
twenty_node_modules_server:
|
twenty_dev_node_modules_yarn:
|
||||||
twenty_node_modules_docs:
|
twenty_dev_node_modules_front:
|
||||||
|
twenty_dev_node_modules_server:
|
||||||
|
twenty_docs_node_modules_root:
|
||||||
|
twenty_docs_node_modules_yarn:
|
||||||
|
twenty_docs_node_modules_docs:
|
||||||
|
@ -1,21 +1,17 @@
|
|||||||
FROM node:18.16-bullseye as twenty-dev
|
FROM node:18.16-bullseye as twenty-dev
|
||||||
|
|
||||||
COPY /../../packages /app/packages
|
WORKDIR /app
|
||||||
|
COPY ../../../../package.json .
|
||||||
|
COPY ../../../../yarn.lock .
|
||||||
|
COPY ../../../../.yarnrc.yml .
|
||||||
|
COPY ../../../packages/twenty-front/package.json /app/packages/twenty-front/package.json
|
||||||
|
COPY ../../../packages/twenty-server/package.json /app/packages/twenty-server/package.json
|
||||||
|
COPY ../../../packages/twenty-eslint-plugin/package.json /app/packages/twenty-eslint-plugin/package.json
|
||||||
|
|
||||||
WORKDIR /app/front
|
RUN corepack enable
|
||||||
|
RUN yarn set version 4.0.2
|
||||||
|
RUN yarn
|
||||||
|
|
||||||
COPY ../../front/package.json .
|
|
||||||
COPY ../../front/yarn.lock .
|
|
||||||
RUN yarn install
|
|
||||||
RUN npx playwright install-deps
|
RUN npx playwright install-deps
|
||||||
|
|
||||||
WORKDIR /app/server
|
|
||||||
|
|
||||||
COPY ../../server/package.json .
|
|
||||||
COPY ../../server/yarn.lock .
|
|
||||||
COPY ../../server/patches ./patches
|
|
||||||
RUN yarn install
|
|
||||||
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
CMD ["tail", "-f", "/dev/null"]
|
CMD ["tail", "-f", "/dev/null"]
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
FROM node:18.16-bullseye as docs
|
FROM node:18.16-bullseye as twenty-docs
|
||||||
|
|
||||||
WORKDIR /app/docs
|
WORKDIR /app
|
||||||
|
|
||||||
COPY ../../docs/package.json .
|
COPY ../../../../package.json .
|
||||||
COPY ../../docs/yarn.lock .
|
COPY ../../../../yarn.lock .
|
||||||
|
COPY ../../../../.yarnrc.yml .
|
||||||
|
COPY ../../../packages/twenty-docs/package.json /app/packages/twenty-docs/package.json
|
||||||
|
|
||||||
|
RUN yarn set version 4.0.2
|
||||||
RUN yarn
|
RUN yarn
|
||||||
|
|
||||||
COPY ../../docs .
|
WORKDIR /app/packages/twenty-docs
|
||||||
|
|
||||||
CMD ["yarn", "start"]
|
CMD ["tail", "-f", "/dev/null"]
|
||||||
|
@ -57,13 +57,13 @@ You need to set some environment variables before you can work on the project. L
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd twenty
|
cd twenty
|
||||||
cp ./front/.env.example ./front/.env
|
cp ./packages/twenty-front/.env.example ./packages/twenty-front/.env
|
||||||
cp ./server/.env.example ./server/.env
|
cp ./packages/twenty-server/.env.example ./packages/twenty-server/.env
|
||||||
```
|
```
|
||||||
|
|
||||||
The default values should work out of the box, except for the postgres URL, which requires a small modification.
|
The default values should work out of the box, except for the postgres URL, which requires a small modification.
|
||||||
|
|
||||||
Open `./server/.env` and change to the following:
|
Open `./packages/twenty-server/.env` and change to the following:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
PG_DATABASE_URL=postgres://twenty:twenty@postgres:5432/default?connection_limit=1
|
PG_DATABASE_URL=postgres://twenty:twenty@postgres:5432/default?connection_limit=1
|
||||||
@ -75,14 +75,9 @@ PG_DATABASE_URL=postgres://twenty:twenty@postgres:5432/default?connection_limit=
|
|||||||
The project includes an environment containerized with Docker and orchestrated with `docker-compose`.
|
The project includes an environment containerized with Docker and orchestrated with `docker-compose`.
|
||||||
This installation method will also provision a PostgreSQL container.
|
This installation method will also provision a PostgreSQL container.
|
||||||
|
|
||||||
:::info
|
|
||||||
|
|
||||||
The configuration for the build is in the `infra/dev` folder, but you can run `make` commands directly from the root folder.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make build
|
make -C packages/twenty-docker dev-build
|
||||||
```
|
```
|
||||||
|
|
||||||
## Step 4: Migrate & seed
|
## Step 4: Migrate & seed
|
||||||
@ -91,12 +86,12 @@ Before running the project, you need to initialize the database by running the m
|
|||||||
|
|
||||||
Start the containers:
|
Start the containers:
|
||||||
```bash
|
```bash
|
||||||
make up
|
make -C packages/twenty-docker dev-up
|
||||||
```
|
```
|
||||||
|
|
||||||
Setup database, run migrations, and seed:
|
Setup database, run migrations, and seed:
|
||||||
```bash
|
```bash
|
||||||
make server-database-init
|
make -C packages/twenty-docker dev-server-database-init
|
||||||
```
|
```
|
||||||
|
|
||||||
## Step 5: Start Twenty
|
## Step 5: Start Twenty
|
||||||
@ -104,11 +99,11 @@ make server-database-init
|
|||||||
Run the project with the following commands from the `root` folder:
|
Run the project with the following commands from the `root` folder:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make server-start
|
make -C packages/twenty-docker dev-server-start
|
||||||
```
|
```
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make front-start
|
make -C packages/twenty-docker dev-front-start
|
||||||
```
|
```
|
||||||
|
|
||||||
You should now have:
|
You should now have:
|
||||||
@ -123,12 +118,11 @@ Sign in using a seeded demo account `tim@apple.dev` (password: `Applecar2025`) t
|
|||||||
If you don't want to use the `make` command and work directly from the container, you can also ssh directly into the container:
|
If you don't want to use the `make` command and work directly from the container, you can also ssh directly into the container:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make sh
|
make -C packages/twenty-docker dev-sh
|
||||||
```
|
```
|
||||||
Then run commands through yarn:
|
Then run commands through yarn and nx:
|
||||||
```bash
|
```bash
|
||||||
cd server
|
yarn nx run twenty-server:database:init
|
||||||
yarn database:init
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
@ -33,10 +33,11 @@ Windows users can install the project through WSL2. [This guide](/contributor/lo
|
|||||||
The repository has the following structure:
|
The repository has the following structure:
|
||||||
```
|
```
|
||||||
twenty
|
twenty
|
||||||
└───docs // contains this documentation
|
└───packages // contains this documentation
|
||||||
└───front // contains the frontend code for the application
|
└───twenty-front // contains the frontend code for the application
|
||||||
└───server // contains the backend code for the application
|
└───twenty-server // contains the backend code for the application
|
||||||
└───infra // contains docker configurations for development and production deployments
|
└───twenty-docker // contains docker configurations for development and production build
|
||||||
|
└───many other packages your are invited to discover such as twenty-docs, twenty-ui, twenty-eslint-plugin, twenty-zapier...
|
||||||
```
|
```
|
||||||
|
|
||||||
## IDE Setup
|
## IDE Setup
|
||||||
|
@ -23,9 +23,14 @@ In this document, you'll learn how to install the project using yarn. You should
|
|||||||
Before you can install and use Twenty, make sure you install the following on your computer:
|
Before you can install and use Twenty, make sure you install the following on your computer:
|
||||||
- [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
|
- [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
|
||||||
- [Node v18](https://nodejs.org/en/download)
|
- [Node v18](https://nodejs.org/en/download)
|
||||||
- [yarn v1](https://classic.yarnpkg.com/lang/en/docs/install/)
|
- [yarn v4](https://yarnpkg.com/getting-started/install).
|
||||||
- [nvm](https://github.com/nvm-sh/nvm/blob/master/README.md)
|
- [nvm](https://github.com/nvm-sh/nvm/blob/master/README.md)
|
||||||
|
|
||||||
|
:::info Note
|
||||||
|
Yarn is now shipped with Node.js nowadays, so you don't need to install it separately.
|
||||||
|
You should only have to run `corepack enable` to enable Yarn if you haven't done it yet.
|
||||||
|
:::
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|
||||||
<TabItem value="wsl" label="Windows (WSL)" >
|
<TabItem value="wsl" label="Windows (WSL)" >
|
||||||
@ -53,7 +58,7 @@ git config --global user.email "youremail@domain.com"
|
|||||||
```bash
|
```bash
|
||||||
sudo apt-get install curl
|
sudo apt-get install curl
|
||||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
|
||||||
curl -o- -L https://yarnpkg.com/install.sh | bash
|
corepack enable
|
||||||
```
|
```
|
||||||
Close and reopen your terminal to start using nvm.
|
Close and reopen your terminal to start using nvm.
|
||||||
|
|
||||||
@ -94,8 +99,16 @@ git clone https://github.com/twentyhq/twenty.git
|
|||||||
</TabItem>
|
</TabItem>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|
||||||
|
## Step 2: Place yourself at the root of the project
|
||||||
|
|
||||||
## Step 2: Set up PostgreSQL Database
|
```bash
|
||||||
|
cd twenty
|
||||||
|
```
|
||||||
|
|
||||||
|
All commands in the following steps should be run from the root of the project.
|
||||||
|
|
||||||
|
|
||||||
|
## Step 3: Set up PostgreSQL Database
|
||||||
You need to have a PostgreSQL instance available to be able to use Twenty.
|
You need to have a PostgreSQL instance available to be able to use Twenty.
|
||||||
You need to provision this database with a `twenty` user (password: `twenty`), a `default` database and a `test` database.
|
You need to provision this database with a `twenty` user (password: `twenty`), a `default` database and a `test` database.
|
||||||
|
|
||||||
@ -105,7 +118,6 @@ You need to provision this database with a `twenty` user (password: `twenty`), a
|
|||||||
<br /><br />
|
<br /><br />
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd twenty
|
|
||||||
make provision-postgres-linux
|
make provision-postgres-linux
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -113,7 +125,6 @@ make provision-postgres-linux
|
|||||||
<br /><br />
|
<br /><br />
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd twenty
|
|
||||||
make provision-postgres-docker
|
make provision-postgres-docker
|
||||||
```
|
```
|
||||||
This will create a Docker container, exposing a PostgresSQL instance at [http://localhost:5432](http://localhost:5432).
|
This will create a Docker container, exposing a PostgresSQL instance at [http://localhost:5432](http://localhost:5432).
|
||||||
@ -125,7 +136,6 @@ You can access this using `twenty` postgres user (password: `twenty`)
|
|||||||
<br /><br />
|
<br /><br />
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd twenty
|
|
||||||
make provision-postgres-macos-intel #for intel architecture
|
make provision-postgres-macos-intel #for intel architecture
|
||||||
make provision-postgres-macos-arm #for M1/M2/M3 architecture
|
make provision-postgres-macos-arm #for M1/M2/M3 architecture
|
||||||
```
|
```
|
||||||
@ -134,7 +144,6 @@ make provision-postgres-macos-arm #for M1/M2/M3 architecture
|
|||||||
<br /><br />
|
<br /><br />
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd twenty
|
|
||||||
make provision-postgres-docker
|
make provision-postgres-docker
|
||||||
```
|
```
|
||||||
This will create a Docker container, exposing a PostgresSQL instance at [http://localhost:5432](http://localhost:5432).
|
This will create a Docker container, exposing a PostgresSQL instance at [http://localhost:5432](http://localhost:5432).
|
||||||
@ -145,7 +154,6 @@ You can access this using `twenty` postgres user (password: `twenty`)
|
|||||||
|
|
||||||
It's better to provision your database locally:
|
It's better to provision your database locally:
|
||||||
```bash
|
```bash
|
||||||
cd twenty
|
|
||||||
make provision-postgres-linux
|
make provision-postgres-linux
|
||||||
```
|
```
|
||||||
This will create a Docker container, exposing a PostgresSQL instance at [http://localhost:5432](http://localhost:5432).
|
This will create a Docker container, exposing a PostgresSQL instance at [http://localhost:5432](http://localhost:5432).
|
||||||
@ -160,57 +168,42 @@ Twenty requires you to set some environment variables. Locally, you should set t
|
|||||||
|
|
||||||
To do so, make copies of the `.env.example` files in `/front` and `/server`:
|
To do so, make copies of the `.env.example` files in `/front` and `/server`:
|
||||||
```bash
|
```bash
|
||||||
cp ./front/.env.example ./front/.env
|
cp ./packages/twenty-front/.env.example ./packages/twenty-front/.env
|
||||||
cp ./server/.env.example ./server/.env
|
cp ./packages/twenty-server/.env.example ./packages/twenty-server/.env
|
||||||
```
|
```
|
||||||
|
|
||||||
## Step 4: Server setup
|
## Step 4: Installing dependencies
|
||||||
|
|
||||||
:::info
|
:::info
|
||||||
|
|
||||||
Use `nvm` to install the correct `node` version. The `server/.nvmrc` ensures all contributors use the same version.
|
Use `nvm` to install the correct `node` version. The `.nvmrc` ensures all contributors use the same version.
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
To build Twenty server and seed some data into your database, run the following commands:
|
To build Twenty server and seed some data into your database, run the following commands:
|
||||||
```bash
|
```bash
|
||||||
cd server
|
|
||||||
nvm install #recommended
|
nvm install #recommended
|
||||||
nvm use #recommended
|
nvm use #recommended
|
||||||
|
corepack enable #to enable yarn if you haven't done it yet
|
||||||
|
yarn set version stable #to set the yarn version to yarn version 4
|
||||||
|
|
||||||
yarn
|
yarn
|
||||||
yarn database:init
|
```
|
||||||
yarn start:dev
|
|
||||||
|
## Step 5: Running the project
|
||||||
|
|
||||||
|
Setup your database with the following command:
|
||||||
|
```bash
|
||||||
|
yarn nx run twenty-server:database:init
|
||||||
|
```
|
||||||
|
|
||||||
|
Start the server and the frontend:
|
||||||
|
```bash
|
||||||
|
yarn nx run twenty-server:database:init
|
||||||
|
yarn nx run twenty-server:start:dev
|
||||||
|
yarn nx run twenty-front:dev
|
||||||
```
|
```
|
||||||
|
|
||||||
Twenty's server will be up and running at [http://localhost:3000/graphql](http://localhost:3000/graphql).
|
Twenty's server will be up and running at [http://localhost:3000/graphql](http://localhost:3000/graphql).
|
||||||
|
|
||||||
## Step 5: Frontend setup
|
|
||||||
|
|
||||||
:::info
|
|
||||||
|
|
||||||
For the frontend setup, too, it's better to use `nvm` to install the right node version.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
To set up the frontend, run the following commands in another terminal:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd front
|
|
||||||
nvm install #recommended
|
|
||||||
nvm use #recommended
|
|
||||||
yarn
|
|
||||||
yarn start
|
|
||||||
```
|
|
||||||
|
|
||||||
Twenty's frontend will be running at [http://localhost:3001](http://localhost:3001). Just login using the seeded demo account: `tim@apple.dev` to start using Twenty.
|
Twenty's frontend will be running at [http://localhost:3001](http://localhost:3001). Just login using the seeded demo account: `tim@apple.dev` to start using Twenty.
|
||||||
|
|
||||||
# Troubleshouting
|
|
||||||
|
|
||||||
## Error: Failed to execute init.sql script.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cp: ./infra/dev/postgres/init.sql: No such file or directory
|
|
||||||
psql: error: /tmp/init.sql: No such file or directory
|
|
||||||
```
|
|
||||||
|
|
||||||
If you get this error it means you are not launching the local database init script from the repo's root folder. Make sure you're in `twenty/` and not in `twenty/infra/dev/scripts`.
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "eslint-plugin-twenty",
|
"name": "twenty-eslint-plugin",
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
@ -4,12 +4,12 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"start": "vite --host",
|
||||||
"dev:clean": "yarn dev --force",
|
"start:clean": "yarn start --force",
|
||||||
"build": "tsc && vite build && yarn build:inject-runtime-env",
|
"build": "tsc && vite build && yarn build:inject-runtime-env",
|
||||||
"build:inject-runtime-env": "./scripts/inject-runtime-env.sh",
|
"build:inject-runtime-env": "./scripts/inject-runtime-env.sh",
|
||||||
"preview": "vite preview",
|
"preview": "vite preview",
|
||||||
"eslint-plugin:setup": "cd ../packages/eslint-plugin-twenty/ && yarn && yarn build && cd ../../front/ && yarn upgrade eslint-plugin-twenty",
|
"eslint-plugin:setup": "cd ../packages/twenty-eslint-plugin/ && yarn && yarn build && cd ../../front/ && yarn upgrade twenty-eslint-plugin",
|
||||||
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
|
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
|
||||||
"fmt:fix": "prettier --cache --write \"src/**/*.ts\" \"src/**/*.tsx\"",
|
"fmt:fix": "prettier --cache --write \"src/**/*.ts\" \"src/**/*.tsx\"",
|
||||||
"fmt": "prettier --check \"src/**/*.ts\" \"src/**/*.tsx\"",
|
"fmt": "prettier --check \"src/**/*.ts\" \"src/**/*.tsx\"",
|
||||||
@ -140,7 +140,6 @@
|
|||||||
"eslint-plugin-react-refresh": "^0.4.4",
|
"eslint-plugin-react-refresh": "^0.4.4",
|
||||||
"eslint-plugin-simple-import-sort": "^10.0.0",
|
"eslint-plugin-simple-import-sort": "^10.0.0",
|
||||||
"eslint-plugin-storybook": "^0.6.15",
|
"eslint-plugin-storybook": "^0.6.15",
|
||||||
"eslint-plugin-twenty": "file:../eslint-plugin-twenty",
|
|
||||||
"eslint-plugin-unused-imports": "^3.0.0",
|
"eslint-plugin-unused-imports": "^3.0.0",
|
||||||
"http-server": "^14.1.1",
|
"http-server": "^14.1.1",
|
||||||
"jest": "29.7.0",
|
"jest": "29.7.0",
|
||||||
@ -151,13 +150,15 @@
|
|||||||
"storybook": "^7.6.3",
|
"storybook": "^7.6.3",
|
||||||
"storybook-addon-cookie": "^3.1.0",
|
"storybook-addon-cookie": "^3.1.0",
|
||||||
"storybook-addon-pseudo-states": "^2.1.2",
|
"storybook-addon-pseudo-states": "^2.1.2",
|
||||||
|
"twenty-eslint-plugin": "file:../twenty-eslint-plugin",
|
||||||
"typescript": "^5.2.2",
|
"typescript": "^5.2.2",
|
||||||
"vite": "^5.0.0",
|
"vite": "^5.0.0",
|
||||||
"vite-plugin-svgr": "^4.2.0"
|
"vite-plugin-svgr": "^4.2.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.16.0",
|
"node": "^18.16.0",
|
||||||
"npm": "please-use-yarn"
|
"npm": "please-use-yarn",
|
||||||
|
"yarn": "^4.0.2"
|
||||||
},
|
},
|
||||||
"browserslist": {
|
"browserslist": {
|
||||||
"production": [
|
"production": [
|
||||||
|
8
packages/twenty-postgres/Makefile
Normal file
8
packages/twenty-postgres/Makefile
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
provision-postgres-macos-arm:
|
||||||
|
sh ./scripts/setup-postgres-macos-arm.sh
|
||||||
|
|
||||||
|
provision-postgres-macos-intel:
|
||||||
|
sh ./scripts/setup-postgres-macos-intel.sh
|
||||||
|
|
||||||
|
provision-postgres-linux:
|
||||||
|
sh ./scripts/setup-postgres-linux.sh
|
1
packages/twenty-server/.gitignore
vendored
Normal file
1
packages/twenty-server/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
dist/*
|
@ -1 +0,0 @@
|
|||||||
18.16.0
|
|
@ -6,7 +6,6 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"license": "UNLICENSED",
|
"license": "UNLICENSED",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"postinstall": "patch-package",
|
|
||||||
"prebuild": "rimraf dist",
|
"prebuild": "rimraf dist",
|
||||||
"build": "nest build",
|
"build": "nest build",
|
||||||
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
||||||
@ -37,12 +36,12 @@
|
|||||||
"@aws-sdk/credential-providers": "^3.363.0",
|
"@aws-sdk/credential-providers": "^3.363.0",
|
||||||
"@google-cloud/local-auth": "2.1.0",
|
"@google-cloud/local-auth": "2.1.0",
|
||||||
"@graphql-tools/schema": "^10.0.0",
|
"@graphql-tools/schema": "^10.0.0",
|
||||||
"@graphql-yoga/nestjs": "2.1.0",
|
"@graphql-yoga/nestjs": "patch:@graphql-yoga/nestjs@2.1.0#./patches/@graphql-yoga+nestjs+2.1.0.patch",
|
||||||
"@nestjs/apollo": "^11.0.5",
|
"@nestjs/apollo": "^11.0.5",
|
||||||
"@nestjs/common": "^9.0.0",
|
"@nestjs/common": "^9.0.0",
|
||||||
"@nestjs/config": "^2.3.2",
|
"@nestjs/config": "^2.3.2",
|
||||||
"@nestjs/core": "^9.0.0",
|
"@nestjs/core": "^9.0.0",
|
||||||
"@nestjs/graphql": "12.0.8",
|
"@nestjs/graphql": "patch:@nestjs/graphql@12.0.8#./patches/@nestjs+graphql+12.0.8.patch",
|
||||||
"@nestjs/jwt": "^10.0.3",
|
"@nestjs/jwt": "^10.0.3",
|
||||||
"@nestjs/passport": "^9.0.3",
|
"@nestjs/passport": "^9.0.3",
|
||||||
"@nestjs/platform-express": "^9.0.0",
|
"@nestjs/platform-express": "^9.0.0",
|
||||||
@ -50,7 +49,7 @@
|
|||||||
"@nestjs/terminus": "^9.2.2",
|
"@nestjs/terminus": "^9.2.2",
|
||||||
"@nestjs/typeorm": "^10.0.0",
|
"@nestjs/typeorm": "^10.0.0",
|
||||||
"@ptc-org/nestjs-query-core": "^4.2.0",
|
"@ptc-org/nestjs-query-core": "^4.2.0",
|
||||||
"@ptc-org/nestjs-query-graphql": "4.2.0",
|
"@ptc-org/nestjs-query-graphql": "patch:@ptc-org/nestjs-query-graphql@4.2.0#./patches/@ptc-org+nestjs-query-graphql+4.2.0.patch",
|
||||||
"@ptc-org/nestjs-query-typeorm": "4.2.1-alpha.2",
|
"@ptc-org/nestjs-query-typeorm": "4.2.1-alpha.2",
|
||||||
"@sentry/node": "^7.66.0",
|
"@sentry/node": "^7.66.0",
|
||||||
"@sentry/profiling-node": "^1.2.6",
|
"@sentry/profiling-node": "^1.2.6",
|
||||||
@ -65,7 +64,7 @@
|
|||||||
"bullmq": "^4.14.0",
|
"bullmq": "^4.14.0",
|
||||||
"bytes": "^3.1.2",
|
"bytes": "^3.1.2",
|
||||||
"class-transformer": "^0.5.1",
|
"class-transformer": "^0.5.1",
|
||||||
"class-validator": "^0.14.0",
|
"class-validator": "patch:class-validator@^0.14.0#./patches/class-validator+0.14.0.patch",
|
||||||
"dataloader": "^2.2.2",
|
"dataloader": "^2.2.2",
|
||||||
"date-fns": "^2.30.0",
|
"date-fns": "^2.30.0",
|
||||||
"file-type": "16.5.4",
|
"file-type": "16.5.4",
|
||||||
@ -93,10 +92,8 @@
|
|||||||
"passport-google-oauth20": "^2.0.0",
|
"passport-google-oauth20": "^2.0.0",
|
||||||
"passport-jwt": "^4.0.1",
|
"passport-jwt": "^4.0.1",
|
||||||
"passport-local": "^1.0.0",
|
"passport-local": "^1.0.0",
|
||||||
"patch-package": "^8.0.0",
|
|
||||||
"pg": "^8.11.3",
|
"pg": "^8.11.3",
|
||||||
"pg-boss": "^9.0.3",
|
"pg-boss": "^9.0.3",
|
||||||
"postinstall-postinstall": "^2.1.0",
|
|
||||||
"rimraf": "^3.0.2",
|
"rimraf": "^3.0.2",
|
||||||
"rxjs": "^7.2.0",
|
"rxjs": "^7.2.0",
|
||||||
"sharp": "^0.32.1",
|
"sharp": "^0.32.1",
|
||||||
@ -147,5 +144,10 @@
|
|||||||
},
|
},
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
"graphql": "16.8.0"
|
"graphql": "16.8.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^18.16.0",
|
||||||
|
"npm": "please-use-yarn",
|
||||||
|
"yarn": "^4.0.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
diff --git a/node_modules/@graphql-yoga/nestjs/dist/cjs/index.js b/node_modules/@graphql-yoga/nestjs/dist/cjs/index.js
|
diff --git a/dist/cjs/index.js b/dist/cjs/index.js
|
||||||
index 1684394..8a92c3c 100644
|
index 1684394..8a92c3c 100644
|
||||||
--- a/node_modules/@graphql-yoga/nestjs/dist/cjs/index.js
|
--- a/dist/cjs/index.js
|
||||||
+++ b/node_modules/@graphql-yoga/nestjs/dist/cjs/index.js
|
+++ b/dist/cjs/index.js
|
||||||
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
|
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
|
||||||
const graphql_1 = require("graphql");
|
const graphql_1 = require("graphql");
|
||||||
const graphql_yoga_1 = require("graphql-yoga");
|
const graphql_yoga_1 = require("graphql-yoga");
|
||||||
@ -69,10 +69,10 @@ index 1684394..8a92c3c 100644
|
|||||||
graphqlEndpoint: options.path,
|
graphqlEndpoint: options.path,
|
||||||
// disable logging by default
|
// disable logging by default
|
||||||
// however, if `true` use fastify logger
|
// however, if `true` use fastify logger
|
||||||
diff --git a/node_modules/@graphql-yoga/nestjs/dist/esm/index.js b/node_modules/@graphql-yoga/nestjs/dist/esm/index.js
|
diff --git a/dist/esm/index.js b/dist/esm/index.js
|
||||||
index 7068c51..8ba5d2a 100644
|
index 7068c51..8ba5d2a 100644
|
||||||
--- a/node_modules/@graphql-yoga/nestjs/dist/esm/index.js
|
--- a/dist/esm/index.js
|
||||||
+++ b/node_modules/@graphql-yoga/nestjs/dist/esm/index.js
|
+++ b/dist/esm/index.js
|
||||||
@@ -2,6 +2,7 @@ import { __decorate } from "tslib";
|
@@ -2,6 +2,7 @@ import { __decorate } from "tslib";
|
||||||
import { printSchema } from 'graphql';
|
import { printSchema } from 'graphql';
|
||||||
import { createYoga, filter, pipe } from 'graphql-yoga';
|
import { createYoga, filter, pipe } from 'graphql-yoga';
|
||||||
@ -140,10 +140,10 @@ index 7068c51..8ba5d2a 100644
|
|||||||
graphqlEndpoint: options.path,
|
graphqlEndpoint: options.path,
|
||||||
// disable logging by default
|
// disable logging by default
|
||||||
// however, if `true` use fastify logger
|
// however, if `true` use fastify logger
|
||||||
diff --git a/node_modules/@graphql-yoga/nestjs/dist/typings/index.d.cts b/node_modules/@graphql-yoga/nestjs/dist/typings/index.d.cts
|
diff --git a/dist/typings/index.d.cts b/dist/typings/index.d.cts
|
||||||
index 2c6a965..fd86dac 100644
|
index 2c6a965..fd86dac 100644
|
||||||
--- a/node_modules/@graphql-yoga/nestjs/dist/typings/index.d.cts
|
--- a/dist/typings/index.d.cts
|
||||||
+++ b/node_modules/@graphql-yoga/nestjs/dist/typings/index.d.cts
|
+++ b/dist/typings/index.d.cts
|
||||||
@@ -1,7 +1,8 @@
|
@@ -1,7 +1,8 @@
|
||||||
import type { Express, Request as ExpressRequest, Response as ExpressResponse } from 'express';
|
import type { Express, Request as ExpressRequest, Response as ExpressResponse } from 'express';
|
||||||
import type { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
|
import type { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
|
||||||
@ -178,10 +178,10 @@ index 2c6a965..fd86dac 100644
|
|||||||
preStartHook?: (app: FastifyInstance) => void;
|
preStartHook?: (app: FastifyInstance) => void;
|
||||||
}): void;
|
}): void;
|
||||||
subscriptionWithFilter<TPayload, TVariables, TContext>(instanceRef: unknown, filterFn: (payload: TPayload, variables: TVariables, context: TContext) => boolean | Promise<boolean>, createSubscribeContext: Function): (args_0: TPayload, args_1: TVariables, args_2: TContext) => Promise<import("graphql-yoga").Repeater<TPayload, void, unknown>>;
|
subscriptionWithFilter<TPayload, TVariables, TContext>(instanceRef: unknown, filterFn: (payload: TPayload, variables: TVariables, context: TContext) => boolean | Promise<boolean>, createSubscribeContext: Function): (args_0: TPayload, args_1: TVariables, args_2: TContext) => Promise<import("graphql-yoga").Repeater<TPayload, void, unknown>>;
|
||||||
diff --git a/node_modules/@graphql-yoga/nestjs/dist/typings/index.d.ts b/node_modules/@graphql-yoga/nestjs/dist/typings/index.d.ts
|
diff --git a/dist/typings/index.d.ts b/dist/typings/index.d.ts
|
||||||
index 2c6a965..fd86dac 100644
|
index 2c6a965..fd86dac 100644
|
||||||
--- a/node_modules/@graphql-yoga/nestjs/dist/typings/index.d.ts
|
--- a/dist/typings/index.d.ts
|
||||||
+++ b/node_modules/@graphql-yoga/nestjs/dist/typings/index.d.ts
|
+++ b/dist/typings/index.d.ts
|
||||||
@@ -1,7 +1,8 @@
|
@@ -1,7 +1,8 @@
|
||||||
import type { Express, Request as ExpressRequest, Response as ExpressResponse } from 'express';
|
import type { Express, Request as ExpressRequest, Response as ExpressResponse } from 'express';
|
||||||
import type { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
|
import type { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
|
||||||
@ -216,10 +216,10 @@ index 2c6a965..fd86dac 100644
|
|||||||
preStartHook?: (app: FastifyInstance) => void;
|
preStartHook?: (app: FastifyInstance) => void;
|
||||||
}): void;
|
}): void;
|
||||||
subscriptionWithFilter<TPayload, TVariables, TContext>(instanceRef: unknown, filterFn: (payload: TPayload, variables: TVariables, context: TContext) => boolean | Promise<boolean>, createSubscribeContext: Function): (args_0: TPayload, args_1: TVariables, args_2: TContext) => Promise<import("graphql-yoga").Repeater<TPayload, void, unknown>>;
|
subscriptionWithFilter<TPayload, TVariables, TContext>(instanceRef: unknown, filterFn: (payload: TPayload, variables: TVariables, context: TContext) => boolean | Promise<boolean>, createSubscribeContext: Function): (args_0: TPayload, args_1: TVariables, args_2: TContext) => Promise<import("graphql-yoga").Repeater<TPayload, void, unknown>>;
|
||||||
diff --git a/node_modules/@graphql-yoga/nestjs/src/index.ts b/node_modules/@graphql-yoga/nestjs/src/index.ts
|
diff --git a/src/index.ts b/src/index.ts
|
||||||
index ce142f6..cda4117 100644
|
index ce142f6..cda4117 100644
|
||||||
--- a/node_modules/@graphql-yoga/nestjs/src/index.ts
|
--- a/src/index.ts
|
||||||
+++ b/node_modules/@graphql-yoga/nestjs/src/index.ts
|
+++ b/src/index.ts
|
||||||
@@ -1,9 +1,10 @@
|
@@ -1,9 +1,10 @@
|
||||||
import type { Express, Request as ExpressRequest, Response as ExpressResponse } from 'express';
|
import type { Express, Request as ExpressRequest, Response as ExpressResponse } from 'express';
|
||||||
import type { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
|
import type { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
diff --git a/node_modules/@nestjs/graphql/dist/schema-builder/graphql-schema.factory.js b/node_modules/@nestjs/graphql/dist/schema-builder/graphql-schema.factory.js
|
diff --git a/dist/schema-builder/graphql-schema.factory.js b/dist/schema-builder/graphql-schema.factory.js
|
||||||
index 787bcbc..1c825bd 100644
|
index 787bcbc..1c825bd 100644
|
||||||
--- a/node_modules/@nestjs/graphql/dist/schema-builder/graphql-schema.factory.js
|
--- a/dist/schema-builder/graphql-schema.factory.js
|
||||||
+++ b/node_modules/@nestjs/graphql/dist/schema-builder/graphql-schema.factory.js
|
+++ b/dist/schema-builder/graphql-schema.factory.js
|
||||||
@@ -32,6 +32,7 @@ let GraphQLSchemaFactory = exports.GraphQLSchemaFactory = GraphQLSchemaFactory_1
|
@@ -32,6 +32,7 @@ let GraphQLSchemaFactory = exports.GraphQLSchemaFactory = GraphQLSchemaFactory_1
|
||||||
else {
|
else {
|
||||||
options = scalarsOrOptions;
|
options = scalarsOrOptions;
|
||||||
@ -10,10 +10,10 @@ index 787bcbc..1c825bd 100644
|
|||||||
lazy_metadata_storage_1.LazyMetadataStorage.load(resolvers);
|
lazy_metadata_storage_1.LazyMetadataStorage.load(resolvers);
|
||||||
type_metadata_storage_1.TypeMetadataStorage.compile(options.orphanedTypes);
|
type_metadata_storage_1.TypeMetadataStorage.compile(options.orphanedTypes);
|
||||||
this.typeDefinitionsGenerator.generate(options);
|
this.typeDefinitionsGenerator.generate(options);
|
||||||
diff --git a/node_modules/@nestjs/graphql/dist/schema-builder/storages/type-definitions.storage.js b/node_modules/@nestjs/graphql/dist/schema-builder/storages/type-definitions.storage.js
|
diff --git a/dist/schema-builder/storages/type-definitions.storage.js b/dist/schema-builder/storages/type-definitions.storage.js
|
||||||
index d100444..158c592 100644
|
index d100444..158c592 100644
|
||||||
--- a/node_modules/@nestjs/graphql/dist/schema-builder/storages/type-definitions.storage.js
|
--- a/dist/schema-builder/storages/type-definitions.storage.js
|
||||||
+++ b/node_modules/@nestjs/graphql/dist/schema-builder/storages/type-definitions.storage.js
|
+++ b/dist/schema-builder/storages/type-definitions.storage.js
|
||||||
@@ -81,6 +81,10 @@ let TypeDefinitionsStorage = exports.TypeDefinitionsStorage = class TypeDefiniti
|
@@ -81,6 +81,10 @@ let TypeDefinitionsStorage = exports.TypeDefinitionsStorage = class TypeDefiniti
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@ -25,10 +25,10 @@ index d100444..158c592 100644
|
|||||||
};
|
};
|
||||||
exports.TypeDefinitionsStorage = TypeDefinitionsStorage = tslib_1.__decorate([
|
exports.TypeDefinitionsStorage = TypeDefinitionsStorage = tslib_1.__decorate([
|
||||||
(0, common_1.Injectable)()
|
(0, common_1.Injectable)()
|
||||||
diff --git a/node_modules/@nestjs/graphql/dist/schema-builder/type-definitions.generator.js b/node_modules/@nestjs/graphql/dist/schema-builder/type-definitions.generator.js
|
diff --git a/dist/schema-builder/type-definitions.generator.js b/dist/schema-builder/type-definitions.generator.js
|
||||||
index eb6bcfd..4fbc1ae 100644
|
index eb6bcfd..4fbc1ae 100644
|
||||||
--- a/node_modules/@nestjs/graphql/dist/schema-builder/type-definitions.generator.js
|
--- a/dist/schema-builder/type-definitions.generator.js
|
||||||
+++ b/node_modules/@nestjs/graphql/dist/schema-builder/type-definitions.generator.js
|
+++ b/dist/schema-builder/type-definitions.generator.js
|
||||||
@@ -26,6 +26,9 @@ let TypeDefinitionsGenerator = exports.TypeDefinitionsGenerator = class TypeDefi
|
@@ -26,6 +26,9 @@ let TypeDefinitionsGenerator = exports.TypeDefinitionsGenerator = class TypeDefi
|
||||||
this.generateObjectTypeDefs(options);
|
this.generateObjectTypeDefs(options);
|
||||||
this.generateInputTypeDefs(options);
|
this.generateInputTypeDefs(options);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
diff --git a/node_modules/@ptc-org/nestjs-query-graphql/src/types/connection/cursor/page-info.type.js b/node_modules/@ptc-org/nestjs-query-graphql/src/types/connection/cursor/page-info.type.js
|
diff --git a/src/types/connection/cursor/page-info.type.js b/src/types/connection/cursor/page-info.type.js
|
||||||
index 00d836d..8eef442 100644
|
index 00d836d..8eef442 100644
|
||||||
--- a/node_modules/@ptc-org/nestjs-query-graphql/src/types/connection/cursor/page-info.type.js
|
--- a/src/types/connection/cursor/page-info.type.js
|
||||||
+++ b/node_modules/@ptc-org/nestjs-query-graphql/src/types/connection/cursor/page-info.type.js
|
+++ b/src/types/connection/cursor/page-info.type.js
|
||||||
@@ -39,7 +39,6 @@ const getOrCreatePageInfoType = () => {
|
@@ -39,7 +39,6 @@ const getOrCreatePageInfoType = () => {
|
||||||
tslib_1.__metadata("design:type", String)
|
tslib_1.__metadata("design:type", String)
|
||||||
], PageInfoTypeImpl.prototype, "endCursor", void 0);
|
], PageInfoTypeImpl.prototype, "endCursor", void 0);
|
||||||
@ -10,10 +10,10 @@ index 00d836d..8eef442 100644
|
|||||||
(0, graphql_1.ObjectType)('PageInfo'),
|
(0, graphql_1.ObjectType)('PageInfo'),
|
||||||
tslib_1.__metadata("design:paramtypes", [Boolean, Boolean, String, String])
|
tslib_1.__metadata("design:paramtypes", [Boolean, Boolean, String, String])
|
||||||
], PageInfoTypeImpl);
|
], PageInfoTypeImpl);
|
||||||
diff --git a/node_modules/@ptc-org/nestjs-query-graphql/src/types/connection/offset/offset-connection.type.js b/node_modules/@ptc-org/nestjs-query-graphql/src/types/connection/offset/offset-connection.type.js
|
diff --git a/src/types/connection/offset/offset-connection.type.js b/src/types/connection/offset/offset-connection.type.js
|
||||||
index b47564f..d33f391 100644
|
index b47564f..d33f391 100644
|
||||||
--- a/node_modules/@ptc-org/nestjs-query-graphql/src/types/connection/offset/offset-connection.type.js
|
--- a/src/types/connection/offset/offset-connection.type.js
|
||||||
+++ b/node_modules/@ptc-org/nestjs-query-graphql/src/types/connection/offset/offset-connection.type.js
|
+++ b/src/types/connection/offset/offset-connection.type.js
|
||||||
@@ -64,7 +64,6 @@ function getOrCreateOffsetConnectionType(TItemClass, opts) {
|
@@ -64,7 +64,6 @@ function getOrCreateOffsetConnectionType(TItemClass, opts) {
|
||||||
tslib_1.__metadata("design:paramtypes", [])
|
tslib_1.__metadata("design:paramtypes", [])
|
||||||
], AbstractConnection.prototype, "totalCount", null);
|
], AbstractConnection.prototype, "totalCount", null);
|
||||||
@ -22,10 +22,10 @@ index b47564f..d33f391 100644
|
|||||||
(0, graphql_1.ObjectType)(connectionName),
|
(0, graphql_1.ObjectType)(connectionName),
|
||||||
tslib_1.__metadata("design:paramtypes", [Object, Array, Function])
|
tslib_1.__metadata("design:paramtypes", [Object, Array, Function])
|
||||||
], AbstractConnection);
|
], AbstractConnection);
|
||||||
diff --git a/node_modules/@ptc-org/nestjs-query-graphql/src/types/connection/offset/offset-page-info.type.js b/node_modules/@ptc-org/nestjs-query-graphql/src/types/connection/offset/offset-page-info.type.js
|
diff --git a/src/types/connection/offset/offset-page-info.type.js b/src/types/connection/offset/offset-page-info.type.js
|
||||||
index 4803306..d459b16 100644
|
index 4803306..d459b16 100644
|
||||||
--- a/node_modules/@ptc-org/nestjs-query-graphql/src/types/connection/offset/offset-page-info.type.js
|
--- a/src/types/connection/offset/offset-page-info.type.js
|
||||||
+++ b/node_modules/@ptc-org/nestjs-query-graphql/src/types/connection/offset/offset-page-info.type.js
|
+++ b/src/types/connection/offset/offset-page-info.type.js
|
||||||
@@ -25,7 +25,6 @@ const getOrCreateOffsetPageInfoType = () => {
|
@@ -25,7 +25,6 @@ const getOrCreateOffsetPageInfoType = () => {
|
||||||
tslib_1.__metadata("design:type", Boolean)
|
tslib_1.__metadata("design:type", Boolean)
|
||||||
], PageInfoTypeImpl.prototype, "hasPreviousPage", void 0);
|
], PageInfoTypeImpl.prototype, "hasPreviousPage", void 0);
|
||||||
@ -34,10 +34,10 @@ index 4803306..d459b16 100644
|
|||||||
(0, graphql_1.ObjectType)('OffsetPageInfo'),
|
(0, graphql_1.ObjectType)('OffsetPageInfo'),
|
||||||
tslib_1.__metadata("design:paramtypes", [Boolean, Boolean])
|
tslib_1.__metadata("design:paramtypes", [Boolean, Boolean])
|
||||||
], PageInfoTypeImpl);
|
], PageInfoTypeImpl);
|
||||||
diff --git a/node_modules/@ptc-org/nestjs-query-graphql/src/types/delete-many-reponse.type.js b/node_modules/@ptc-org/nestjs-query-graphql/src/types/delete-many-reponse.type.js
|
diff --git a/src/types/delete-many-reponse.type.js b/src/types/delete-many-reponse.type.js
|
||||||
index 4de72de..b42f05f 100644
|
index 4de72de..b42f05f 100644
|
||||||
--- a/node_modules/@ptc-org/nestjs-query-graphql/src/types/delete-many-reponse.type.js
|
--- a/src/types/delete-many-reponse.type.js
|
||||||
+++ b/node_modules/@ptc-org/nestjs-query-graphql/src/types/delete-many-reponse.type.js
|
+++ b/src/types/delete-many-reponse.type.js
|
||||||
@@ -16,7 +16,6 @@ const DeleteManyResponseType = () => {
|
@@ -16,7 +16,6 @@ const DeleteManyResponseType = () => {
|
||||||
tslib_1.__metadata("design:type", Number)
|
tslib_1.__metadata("design:type", Number)
|
||||||
], DeleteManyResponseTypeImpl.prototype, "deletedCount", void 0);
|
], DeleteManyResponseTypeImpl.prototype, "deletedCount", void 0);
|
||||||
@ -46,10 +46,10 @@ index 4de72de..b42f05f 100644
|
|||||||
(0, graphql_1.ObjectType)('DeleteManyResponse')
|
(0, graphql_1.ObjectType)('DeleteManyResponse')
|
||||||
], DeleteManyResponseTypeImpl);
|
], DeleteManyResponseTypeImpl);
|
||||||
deleteManyResponseType = DeleteManyResponseTypeImpl;
|
deleteManyResponseType = DeleteManyResponseTypeImpl;
|
||||||
diff --git a/node_modules/@ptc-org/nestjs-query-graphql/src/types/update-many-response.type.js b/node_modules/@ptc-org/nestjs-query-graphql/src/types/update-many-response.type.js
|
diff --git a/src/types/update-many-response.type.js b/src/types/update-many-response.type.js
|
||||||
index c525d14..74be84f 100644
|
index c525d14..74be84f 100644
|
||||||
--- a/node_modules/@ptc-org/nestjs-query-graphql/src/types/update-many-response.type.js
|
--- a/src/types/update-many-response.type.js
|
||||||
+++ b/node_modules/@ptc-org/nestjs-query-graphql/src/types/update-many-response.type.js
|
+++ b/src/types/update-many-response.type.js
|
||||||
@@ -16,7 +16,6 @@ const UpdateManyResponseType = () => {
|
@@ -16,7 +16,6 @@ const UpdateManyResponseType = () => {
|
||||||
tslib_1.__metadata("design:type", Number)
|
tslib_1.__metadata("design:type", Number)
|
||||||
], UpdateManyResponseTypeImpl.prototype, "updatedCount", void 0);
|
], UpdateManyResponseTypeImpl.prototype, "updatedCount", void 0);
|
||||||
|
File diff suppressed because one or more lines are too long
@ -31,7 +31,6 @@ export class IsFieldMetadataDefaultValue
|
|||||||
|
|
||||||
if (!type) {
|
if (!type) {
|
||||||
// Extract id value from the instance, should happen only when updating
|
// Extract id value from the instance, should happen only when updating
|
||||||
// @ts-expect-error Todo: Fix typing error
|
|
||||||
const id: string | undefined = args.instance?.['id'];
|
const id: string | undefined = args.instance?.['id'];
|
||||||
|
|
||||||
if (!id) {
|
if (!id) {
|
||||||
|
@ -25,7 +25,6 @@ export class IsFieldMetadataOptions {
|
|||||||
|
|
||||||
if (!type) {
|
if (!type) {
|
||||||
// Extract id value from the instance, should happen only when updating
|
// Extract id value from the instance, should happen only when updating
|
||||||
// @ts-expect-error Todo: Fix typing error
|
|
||||||
const id: string | undefined = args.instance?.['id'];
|
const id: string | undefined = args.instance?.['id'];
|
||||||
|
|
||||||
if (!id) {
|
if (!id) {
|
||||||
|
178
yarn.lock
178
yarn.lock
@ -5718,6 +5718,19 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@graphql-yoga/nestjs@patch:@graphql-yoga/nestjs@2.1.0#./patches/@graphql-yoga+nestjs+2.1.0.patch::locator=twenty-server%40workspace%3Apackages%2Ftwenty-server":
|
||||||
|
version: 2.1.0
|
||||||
|
resolution: "@graphql-yoga/nestjs@patch:@graphql-yoga/nestjs@npm%3A2.1.0#./patches/@graphql-yoga+nestjs+2.1.0.patch::version=2.1.0&hash=25fc63&locator=twenty-server%40workspace%3Apackages%2Ftwenty-server"
|
||||||
|
peerDependencies:
|
||||||
|
"@nestjs/common": ^10.0.0
|
||||||
|
"@nestjs/core": ^10.0.0
|
||||||
|
"@nestjs/graphql": ^12.0.0
|
||||||
|
graphql: ^15.0.0 || ^16.0.0
|
||||||
|
graphql-yoga: ^4.0.4
|
||||||
|
checksum: 333501a04f79ef158cd92e240abecf1056ea12e8f63345758d6f79bbd88d923846fac44940765ae48a1b05d108107e3ba1539eea1092802c5bdf74bf166ea16a
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@graphql-yoga/subscription@npm:^4.0.0":
|
"@graphql-yoga/subscription@npm:^4.0.0":
|
||||||
version: 4.0.0
|
version: 4.0.0
|
||||||
resolution: "@graphql-yoga/subscription@npm:4.0.0"
|
resolution: "@graphql-yoga/subscription@npm:4.0.0"
|
||||||
@ -6902,6 +6915,46 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@nestjs/graphql@patch:@nestjs/graphql@12.0.8#./patches/@nestjs+graphql+12.0.8.patch::locator=twenty-server%40workspace%3Apackages%2Ftwenty-server":
|
||||||
|
version: 12.0.8
|
||||||
|
resolution: "@nestjs/graphql@patch:@nestjs/graphql@npm%3A12.0.8#./patches/@nestjs+graphql+12.0.8.patch::version=12.0.8&hash=daa690&locator=twenty-server%40workspace%3Apackages%2Ftwenty-server"
|
||||||
|
dependencies:
|
||||||
|
"@graphql-tools/merge": "npm:9.0.0"
|
||||||
|
"@graphql-tools/schema": "npm:10.0.0"
|
||||||
|
"@graphql-tools/utils": "npm:10.0.1"
|
||||||
|
"@nestjs/mapped-types": "npm:2.0.2"
|
||||||
|
chokidar: "npm:3.5.3"
|
||||||
|
fast-glob: "npm:3.2.12"
|
||||||
|
graphql-tag: "npm:2.12.6"
|
||||||
|
graphql-ws: "npm:5.14.0"
|
||||||
|
lodash: "npm:4.17.21"
|
||||||
|
normalize-path: "npm:3.0.0"
|
||||||
|
subscriptions-transport-ws: "npm:0.11.0"
|
||||||
|
tslib: "npm:2.6.0"
|
||||||
|
uuid: "npm:9.0.0"
|
||||||
|
ws: "npm:8.13.0"
|
||||||
|
peerDependencies:
|
||||||
|
"@apollo/subgraph": ^2.0.0
|
||||||
|
"@nestjs/common": ^9.3.8 || ^10.0.0
|
||||||
|
"@nestjs/core": ^9.3.8 || ^10.0.0
|
||||||
|
class-transformer: "*"
|
||||||
|
class-validator: "*"
|
||||||
|
graphql: ^16.6.0
|
||||||
|
reflect-metadata: ^0.1.13
|
||||||
|
ts-morph: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
|
peerDependenciesMeta:
|
||||||
|
"@apollo/subgraph":
|
||||||
|
optional: true
|
||||||
|
class-transformer:
|
||||||
|
optional: true
|
||||||
|
class-validator:
|
||||||
|
optional: true
|
||||||
|
ts-morph:
|
||||||
|
optional: true
|
||||||
|
checksum: e53b804e87e65c78e0e231a7033e135a8346d44ee110a8e2f270b026bd47fda41525b598a301b5ca84537b3c8e37fa92462be353e611751a5b433aadb1f6f290
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@nestjs/jwt@npm:^10.0.3":
|
"@nestjs/jwt@npm:^10.0.3":
|
||||||
version: 10.2.0
|
version: 10.2.0
|
||||||
resolution: "@nestjs/jwt@npm:10.2.0"
|
resolution: "@nestjs/jwt@npm:10.2.0"
|
||||||
@ -7615,6 +7668,34 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@ptc-org/nestjs-query-graphql@patch:@ptc-org/nestjs-query-graphql@4.2.0#./patches/@ptc-org+nestjs-query-graphql+4.2.0.patch::locator=twenty-server%40workspace%3Apackages%2Ftwenty-server":
|
||||||
|
version: 4.2.0
|
||||||
|
resolution: "@ptc-org/nestjs-query-graphql@patch:@ptc-org/nestjs-query-graphql@npm%3A4.2.0#./patches/@ptc-org+nestjs-query-graphql+4.2.0.patch::version=4.2.0&hash=2d5c00&locator=twenty-server%40workspace%3Apackages%2Ftwenty-server"
|
||||||
|
dependencies:
|
||||||
|
"@ptc-org/nestjs-query-core": "npm:4.2.0"
|
||||||
|
dataloader: "npm:^2.2.2"
|
||||||
|
graphql-fields: "npm:^2.0.3"
|
||||||
|
lodash.merge: "npm:4.6.2"
|
||||||
|
lodash.omit: "npm:^4.5.0"
|
||||||
|
lower-case-first: "npm:^2.0.2"
|
||||||
|
pluralize: "npm:^8.0.0"
|
||||||
|
reflect-metadata: "npm:0.1.13"
|
||||||
|
tslib: "npm:^2.6.2"
|
||||||
|
upper-case-first: "npm:^2.0.2"
|
||||||
|
peerDependencies:
|
||||||
|
"@apollo/gateway": ^0.44.1 || ^0.46.0 || ^0.48.0 || ^0.49.0 || ^0.50.0 || ^2.0.0
|
||||||
|
"@nestjs/common": ^9.0.0 || ^10.0.0
|
||||||
|
"@nestjs/core": ^9.0.0 || ^10.0.0
|
||||||
|
"@nestjs/graphql": ^11.0.0 || ^12.0.0
|
||||||
|
class-transformer: ^0.5
|
||||||
|
class-validator: ^0.14.0
|
||||||
|
graphql: ^16.0.0
|
||||||
|
graphql-subscriptions: ^2.0.0
|
||||||
|
ts-morph: ^19.0.0
|
||||||
|
checksum: e22941524df13a20a67176aac42d27f6ac7860c72a4189eca91846d493f3da63b7d3ea71f2979bfb38de5e159fc6ac70d898fce20ef443e235f3b9202073441a
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@ptc-org/nestjs-query-typeorm@npm:4.2.1-alpha.2":
|
"@ptc-org/nestjs-query-typeorm@npm:4.2.1-alpha.2":
|
||||||
version: 4.2.1-alpha.2
|
version: 4.2.1-alpha.2
|
||||||
resolution: "@ptc-org/nestjs-query-typeorm@npm:4.2.1-alpha.2"
|
resolution: "@ptc-org/nestjs-query-typeorm@npm:4.2.1-alpha.2"
|
||||||
@ -16106,6 +16187,17 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"class-validator@patch:class-validator@^0.14.0#./patches/class-validator+0.14.0.patch::locator=twenty-server%40workspace%3Apackages%2Ftwenty-server":
|
||||||
|
version: 0.14.0
|
||||||
|
resolution: "class-validator@patch:class-validator@npm%3A0.14.0#./patches/class-validator+0.14.0.patch::version=0.14.0&hash=053904&locator=twenty-server%40workspace%3Apackages%2Ftwenty-server"
|
||||||
|
dependencies:
|
||||||
|
"@types/validator": "npm:^13.7.10"
|
||||||
|
libphonenumber-js: "npm:^1.10.14"
|
||||||
|
validator: "npm:^13.7.0"
|
||||||
|
checksum: d996aa04abefb737f07ec3f389f74c7ee6f3ec7f0ab13a8244f1bdc777cef827f3b2297789b4814b24440cf8fa936f5af0beee21f84b9ae413c7568b4c8e7407
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"classnames@npm:^2.2.6, classnames@npm:^2.3.0, classnames@npm:^2.3.1":
|
"classnames@npm:^2.2.6, classnames@npm:^2.3.0, classnames@npm:^2.3.1":
|
||||||
version: 2.3.2
|
version: 2.3.2
|
||||||
resolution: "classnames@npm:2.3.2"
|
resolution: "classnames@npm:2.3.2"
|
||||||
@ -18863,39 +18955,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"eslint-plugin-twenty@file:../eslint-plugin-twenty::locator=twenty-front%40workspace%3Apackages%2Ftwenty-front":
|
|
||||||
version: 1.0.3
|
|
||||||
resolution: "eslint-plugin-twenty@file:../eslint-plugin-twenty#../eslint-plugin-twenty::hash=105f90&locator=twenty-front%40workspace%3Apackages%2Ftwenty-front"
|
|
||||||
checksum: 63f3201afa92b79c2d5db2a3aed1a1c5897793ef9e845f4a2f4ae9126007fece2fd6795d840b3f776e8da70fface644215d3640bf2ca22d3e145e36119ccf7bd
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"eslint-plugin-twenty@workspace:packages/eslint-plugin-twenty":
|
|
||||||
version: 0.0.0-use.local
|
|
||||||
resolution: "eslint-plugin-twenty@workspace:packages/eslint-plugin-twenty"
|
|
||||||
dependencies:
|
|
||||||
"@types/jest": "npm:^29.5.4"
|
|
||||||
"@typescript-eslint/eslint-plugin": "npm:^6.7.0"
|
|
||||||
"@typescript-eslint/parser": "npm:^6.7.0"
|
|
||||||
"@typescript-eslint/rule-tester": "npm:^6.7.0"
|
|
||||||
"@typescript-eslint/utils": "npm:^6.7.0"
|
|
||||||
eslint: "npm:^8.49.0"
|
|
||||||
eslint-config-prettier: "npm:^9.0.0"
|
|
||||||
eslint-config-standard-with-typescript: "npm:^39.0.0"
|
|
||||||
eslint-plugin-import: "npm:^2.28.1"
|
|
||||||
eslint-plugin-prefer-arrow: "npm:^1.2.3"
|
|
||||||
eslint-plugin-prettier: "npm:^5.0.0"
|
|
||||||
eslint-plugin-simple-import-sort: "npm:^10.0.0"
|
|
||||||
eslint-plugin-unused-imports: "npm:^3.0.0"
|
|
||||||
jest: "npm:^28.1.3"
|
|
||||||
postcss: "npm:^8.4.29"
|
|
||||||
prettier: "npm:^3.0.3"
|
|
||||||
ts-jest: "npm:^29.1.1"
|
|
||||||
ts-node: "npm:^10.9.1"
|
|
||||||
typescript: "npm:^5.2.2"
|
|
||||||
languageName: unknown
|
|
||||||
linkType: soft
|
|
||||||
|
|
||||||
"eslint-plugin-unused-imports@npm:^3.0.0":
|
"eslint-plugin-unused-imports@npm:^3.0.0":
|
||||||
version: 3.0.0
|
version: 3.0.0
|
||||||
resolution: "eslint-plugin-unused-imports@npm:3.0.0"
|
resolution: "eslint-plugin-unused-imports@npm:3.0.0"
|
||||||
@ -29159,13 +29218,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"postinstall-postinstall@npm:^2.1.0":
|
|
||||||
version: 2.1.0
|
|
||||||
resolution: "postinstall-postinstall@npm:2.1.0"
|
|
||||||
checksum: 70488447292c712afa7806126824d6fe93362392cbe261ae60166d9119a350713e0dbf4deb2ca91637c1037bc030ed1de78d61d9041bf2504513070f1caacdfd
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"prebuild-install@npm:^7.1.1":
|
"prebuild-install@npm:^7.1.1":
|
||||||
version: 7.1.1
|
version: 7.1.1
|
||||||
resolution: "prebuild-install@npm:7.1.1"
|
resolution: "prebuild-install@npm:7.1.1"
|
||||||
@ -33863,6 +33915,39 @@ __metadata:
|
|||||||
languageName: unknown
|
languageName: unknown
|
||||||
linkType: soft
|
linkType: soft
|
||||||
|
|
||||||
|
"twenty-eslint-plugin@file:../twenty-eslint-plugin::locator=twenty-front%40workspace%3Apackages%2Ftwenty-front":
|
||||||
|
version: 1.0.3
|
||||||
|
resolution: "twenty-eslint-plugin@file:../twenty-eslint-plugin#../twenty-eslint-plugin::hash=e1455f&locator=twenty-front%40workspace%3Apackages%2Ftwenty-front"
|
||||||
|
checksum: 95746bedcf1aa2e5937c75501e4a6d9bcecbfd208e60c6688727fde46ce2ce74824ff5d688b4be5061163487f96d6f4d4c37381e9f36fbc4929273eb04852b54
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"twenty-eslint-plugin@workspace:packages/twenty-eslint-plugin":
|
||||||
|
version: 0.0.0-use.local
|
||||||
|
resolution: "twenty-eslint-plugin@workspace:packages/twenty-eslint-plugin"
|
||||||
|
dependencies:
|
||||||
|
"@types/jest": "npm:^29.5.4"
|
||||||
|
"@typescript-eslint/eslint-plugin": "npm:^6.7.0"
|
||||||
|
"@typescript-eslint/parser": "npm:^6.7.0"
|
||||||
|
"@typescript-eslint/rule-tester": "npm:^6.7.0"
|
||||||
|
"@typescript-eslint/utils": "npm:^6.7.0"
|
||||||
|
eslint: "npm:^8.49.0"
|
||||||
|
eslint-config-prettier: "npm:^9.0.0"
|
||||||
|
eslint-config-standard-with-typescript: "npm:^39.0.0"
|
||||||
|
eslint-plugin-import: "npm:^2.28.1"
|
||||||
|
eslint-plugin-prefer-arrow: "npm:^1.2.3"
|
||||||
|
eslint-plugin-prettier: "npm:^5.0.0"
|
||||||
|
eslint-plugin-simple-import-sort: "npm:^10.0.0"
|
||||||
|
eslint-plugin-unused-imports: "npm:^3.0.0"
|
||||||
|
jest: "npm:^28.1.3"
|
||||||
|
postcss: "npm:^8.4.29"
|
||||||
|
prettier: "npm:^3.0.3"
|
||||||
|
ts-jest: "npm:^29.1.1"
|
||||||
|
ts-node: "npm:^10.9.1"
|
||||||
|
typescript: "npm:^5.2.2"
|
||||||
|
languageName: unknown
|
||||||
|
linkType: soft
|
||||||
|
|
||||||
"twenty-front@workspace:packages/twenty-front":
|
"twenty-front@workspace:packages/twenty-front":
|
||||||
version: 0.0.0-use.local
|
version: 0.0.0-use.local
|
||||||
resolution: "twenty-front@workspace:packages/twenty-front"
|
resolution: "twenty-front@workspace:packages/twenty-front"
|
||||||
@ -33936,7 +34021,6 @@ __metadata:
|
|||||||
eslint-plugin-react-refresh: "npm:^0.4.4"
|
eslint-plugin-react-refresh: "npm:^0.4.4"
|
||||||
eslint-plugin-simple-import-sort: "npm:^10.0.0"
|
eslint-plugin-simple-import-sort: "npm:^10.0.0"
|
||||||
eslint-plugin-storybook: "npm:^0.6.15"
|
eslint-plugin-storybook: "npm:^0.6.15"
|
||||||
eslint-plugin-twenty: "file:../eslint-plugin-twenty"
|
|
||||||
eslint-plugin-unused-imports: "npm:^3.0.0"
|
eslint-plugin-unused-imports: "npm:^3.0.0"
|
||||||
framer-motion: "npm:^10.12.17"
|
framer-motion: "npm:^10.12.17"
|
||||||
graphql: "npm:^16.6.0"
|
graphql: "npm:^16.6.0"
|
||||||
@ -33978,6 +34062,7 @@ __metadata:
|
|||||||
storybook-addon-cookie: "npm:^3.1.0"
|
storybook-addon-cookie: "npm:^3.1.0"
|
||||||
storybook-addon-pseudo-states: "npm:^2.1.2"
|
storybook-addon-pseudo-states: "npm:^2.1.2"
|
||||||
ts-key-enum: "npm:^2.0.12"
|
ts-key-enum: "npm:^2.0.12"
|
||||||
|
twenty-eslint-plugin: "file:../twenty-eslint-plugin"
|
||||||
type-fest: "npm:^4.1.0"
|
type-fest: "npm:^4.1.0"
|
||||||
typescript: "npm:^5.2.2"
|
typescript: "npm:^5.2.2"
|
||||||
uuid: "npm:^9.0.0"
|
uuid: "npm:^9.0.0"
|
||||||
@ -33998,13 +34083,13 @@ __metadata:
|
|||||||
"@aws-sdk/credential-providers": "npm:^3.363.0"
|
"@aws-sdk/credential-providers": "npm:^3.363.0"
|
||||||
"@google-cloud/local-auth": "npm:2.1.0"
|
"@google-cloud/local-auth": "npm:2.1.0"
|
||||||
"@graphql-tools/schema": "npm:^10.0.0"
|
"@graphql-tools/schema": "npm:^10.0.0"
|
||||||
"@graphql-yoga/nestjs": "npm:2.1.0"
|
"@graphql-yoga/nestjs": "patch:@graphql-yoga/nestjs@2.1.0#./patches/@graphql-yoga+nestjs+2.1.0.patch"
|
||||||
"@nestjs/apollo": "npm:^11.0.5"
|
"@nestjs/apollo": "npm:^11.0.5"
|
||||||
"@nestjs/cli": "npm:^9.0.0"
|
"@nestjs/cli": "npm:^9.0.0"
|
||||||
"@nestjs/common": "npm:^9.0.0"
|
"@nestjs/common": "npm:^9.0.0"
|
||||||
"@nestjs/config": "npm:^2.3.2"
|
"@nestjs/config": "npm:^2.3.2"
|
||||||
"@nestjs/core": "npm:^9.0.0"
|
"@nestjs/core": "npm:^9.0.0"
|
||||||
"@nestjs/graphql": "npm:12.0.8"
|
"@nestjs/graphql": "patch:@nestjs/graphql@12.0.8#./patches/@nestjs+graphql+12.0.8.patch"
|
||||||
"@nestjs/jwt": "npm:^10.0.3"
|
"@nestjs/jwt": "npm:^10.0.3"
|
||||||
"@nestjs/passport": "npm:^9.0.3"
|
"@nestjs/passport": "npm:^9.0.3"
|
||||||
"@nestjs/platform-express": "npm:^9.0.0"
|
"@nestjs/platform-express": "npm:^9.0.0"
|
||||||
@ -34014,7 +34099,7 @@ __metadata:
|
|||||||
"@nestjs/testing": "npm:^9.0.0"
|
"@nestjs/testing": "npm:^9.0.0"
|
||||||
"@nestjs/typeorm": "npm:^10.0.0"
|
"@nestjs/typeorm": "npm:^10.0.0"
|
||||||
"@ptc-org/nestjs-query-core": "npm:^4.2.0"
|
"@ptc-org/nestjs-query-core": "npm:^4.2.0"
|
||||||
"@ptc-org/nestjs-query-graphql": "npm:4.2.0"
|
"@ptc-org/nestjs-query-graphql": "patch:@ptc-org/nestjs-query-graphql@4.2.0#./patches/@ptc-org+nestjs-query-graphql+4.2.0.patch"
|
||||||
"@ptc-org/nestjs-query-typeorm": "npm:4.2.1-alpha.2"
|
"@ptc-org/nestjs-query-typeorm": "npm:4.2.1-alpha.2"
|
||||||
"@sentry/node": "npm:^7.66.0"
|
"@sentry/node": "npm:^7.66.0"
|
||||||
"@sentry/profiling-node": "npm:^1.2.6"
|
"@sentry/profiling-node": "npm:^1.2.6"
|
||||||
@ -34050,7 +34135,7 @@ __metadata:
|
|||||||
bullmq: "npm:^4.14.0"
|
bullmq: "npm:^4.14.0"
|
||||||
bytes: "npm:^3.1.2"
|
bytes: "npm:^3.1.2"
|
||||||
class-transformer: "npm:^0.5.1"
|
class-transformer: "npm:^0.5.1"
|
||||||
class-validator: "npm:^0.14.0"
|
class-validator: "patch:class-validator@^0.14.0#./patches/class-validator+0.14.0.patch"
|
||||||
dataloader: "npm:^2.2.2"
|
dataloader: "npm:^2.2.2"
|
||||||
date-fns: "npm:^2.30.0"
|
date-fns: "npm:^2.30.0"
|
||||||
eslint: "npm:^8.0.1"
|
eslint: "npm:^8.0.1"
|
||||||
@ -34084,10 +34169,8 @@ __metadata:
|
|||||||
passport-google-oauth20: "npm:^2.0.0"
|
passport-google-oauth20: "npm:^2.0.0"
|
||||||
passport-jwt: "npm:^4.0.1"
|
passport-jwt: "npm:^4.0.1"
|
||||||
passport-local: "npm:^1.0.0"
|
passport-local: "npm:^1.0.0"
|
||||||
patch-package: "npm:^8.0.0"
|
|
||||||
pg: "npm:^8.11.3"
|
pg: "npm:^8.11.3"
|
||||||
pg-boss: "npm:^9.0.3"
|
pg-boss: "npm:^9.0.3"
|
||||||
postinstall-postinstall: "npm:^2.1.0"
|
|
||||||
prettier: "npm:^2.3.2"
|
prettier: "npm:^2.3.2"
|
||||||
rimraf: "npm:^3.0.2"
|
rimraf: "npm:^3.0.2"
|
||||||
rxjs: "npm:^7.2.0"
|
rxjs: "npm:^7.2.0"
|
||||||
@ -34111,6 +34194,7 @@ __metadata:
|
|||||||
resolution: "twenty@workspace:."
|
resolution: "twenty@workspace:."
|
||||||
dependencies:
|
dependencies:
|
||||||
nx: "npm:17.2.0"
|
nx: "npm:17.2.0"
|
||||||
|
patch-package: "npm:^8.0.0"
|
||||||
typescript: "npm:^5.3.3"
|
typescript: "npm:^5.3.3"
|
||||||
languageName: unknown
|
languageName: unknown
|
||||||
linkType: soft
|
linkType: soft
|
||||||
|
Loading…
Reference in New Issue
Block a user