@strapi/strapi 5.49.0 → 5.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin.d.ts +0 -1
- package/dist/admin.d.ts.map +1 -1
- package/dist/cli/commands/admin/active-user.d.ts.map +1 -1
- package/dist/cli/commands/admin/block-user.d.ts.map +1 -1
- package/dist/cli/commands/admin/create-user.d.ts.map +1 -1
- package/dist/cli/commands/admin/delete-user.d.ts.map +1 -1
- package/dist/cli/commands/admin/reset-user-password.d.ts.map +1 -1
- package/dist/cli/commands/configuration/dump.d.ts.map +1 -1
- package/dist/cli/commands/configuration/restore.d.ts.map +1 -1
- package/dist/cli/commands/export/action.d.ts.map +1 -1
- package/dist/cli/commands/import/action.d.ts.map +1 -1
- package/dist/cli/commands/openapi/generate.d.ts.map +1 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/transfer/action.d.ts.map +1 -1
- package/dist/cli/commands/ts/generate-types.d.ts.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/utils/commander.d.ts.map +1 -1
- package/dist/cli/utils/data-transfer.d.ts +1 -1
- package/dist/cli/utils/data-transfer.d.ts.map +1 -1
- package/dist/cli/utils/helpers.d.ts +0 -1
- package/dist/cli/utils/helpers.d.ts.map +1 -1
- package/dist/cli/utils/logger.d.ts.map +1 -1
- package/dist/cli/utils/pkg.d.ts.map +1 -1
- package/dist/cli/utils/telemetry.d.ts.map +1 -1
- package/dist/cli/utils/try-quick-outdir.d.ts +12 -0
- package/dist/cli/utils/try-quick-outdir.d.ts.map +1 -0
- package/dist/cli/utils/tsconfig.d.ts +1 -1
- package/dist/cli/utils/tsconfig.d.ts.map +1 -1
- package/dist/cli.js +18 -7
- package/dist/cli.js.map +1 -1
- package/dist/cli.mjs +18 -7
- package/dist/cli.mjs.map +1 -1
- package/dist/load/package-path.d.ts.map +1 -1
- package/dist/node/build.d.ts.map +1 -1
- package/dist/node/core/admin-customisations.d.ts +1 -1
- package/dist/node/core/admin-customisations.d.ts.map +1 -1
- package/dist/node/core/aliases.d.ts.map +1 -1
- package/dist/node/core/config.d.ts.map +1 -1
- package/dist/node/core/dependencies.d.ts.map +1 -1
- package/dist/node/core/ensure-admin-dependencies.d.ts.map +1 -1
- package/dist/node/core/env.d.ts.map +1 -1
- package/dist/node/core/errors.d.ts.map +1 -1
- package/dist/node/core/files.d.ts.map +1 -1
- package/dist/node/core/linked-packages.d.ts.map +1 -1
- package/dist/node/core/plugins.d.ts +4 -4
- package/dist/node/core/plugins.d.ts.map +1 -1
- package/dist/node/core/resolve-module.d.ts.map +1 -1
- package/dist/node/core/timer.d.ts.map +1 -1
- package/dist/node/create-build-context.d.ts.map +1 -1
- package/dist/node/develop.d.ts.map +1 -1
- package/dist/node/staticFiles.d.ts.map +1 -1
- package/dist/node/vite/build.d.ts.map +1 -1
- package/dist/node/vite/config.d.ts.map +1 -1
- package/dist/node/vite/plugins.d.ts.map +1 -1
- package/dist/node/vite/watch.d.ts.map +1 -1
- package/dist/node/webpack/build.d.ts.map +1 -1
- package/dist/node/webpack/config.d.ts.map +1 -1
- package/dist/node/webpack/watch.d.ts.map +1 -1
- package/dist/package.json.js +1 -1
- package/dist/package.json.mjs +1 -1
- package/dist/src/cli/commands/start.js +23 -7
- package/dist/src/cli/commands/start.js.map +1 -1
- package/dist/src/cli/commands/start.mjs +22 -6
- package/dist/src/cli/commands/start.mjs.map +1 -1
- package/dist/src/cli/commands/ts/generate-types.js +8 -9
- package/dist/src/cli/commands/ts/generate-types.js.map +1 -1
- package/dist/src/cli/commands/ts/generate-types.mjs +6 -3
- package/dist/src/cli/commands/ts/generate-types.mjs.map +1 -1
- package/dist/src/cli/utils/try-quick-outdir.js +80 -0
- package/dist/src/cli/utils/try-quick-outdir.js.map +1 -0
- package/dist/src/cli/utils/try-quick-outdir.mjs +72 -0
- package/dist/src/cli/utils/try-quick-outdir.mjs.map +1 -0
- package/dist/src/cli/utils/tsconfig.js +13 -5
- package/dist/src/cli/utils/tsconfig.js.map +1 -1
- package/dist/src/cli/utils/tsconfig.mjs +13 -4
- package/dist/src/cli/utils/tsconfig.mjs.map +1 -1
- package/dist/test/mocks/inquirer.d.ts +0 -1
- package/dist/test/mocks/inquirer.d.ts.map +1 -1
- package/package.json +24 -25
|
@@ -2,22 +2,38 @@
|
|
|
2
2
|
|
|
3
3
|
var commander = require('commander');
|
|
4
4
|
var fs = require('fs');
|
|
5
|
-
var
|
|
5
|
+
var path = require('path');
|
|
6
6
|
var core = require('@strapi/core');
|
|
7
7
|
var helpers = require('../utils/helpers.js');
|
|
8
|
+
var tryQuickOutdir = require('../utils/try-quick-outdir.js');
|
|
8
9
|
|
|
9
10
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
11
|
|
|
11
12
|
var fs__default = /*#__PURE__*/_interopDefault(fs);
|
|
12
|
-
var
|
|
13
|
+
var path__default = /*#__PURE__*/_interopDefault(path);
|
|
13
14
|
|
|
14
15
|
const action = async ()=>{
|
|
15
16
|
const appDir = process.cwd();
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
const tsconfigPath = path__default.default.join(appDir, 'tsconfig.json');
|
|
18
|
+
let distDir;
|
|
19
|
+
if (!fs__default.default.existsSync(tsconfigPath)) {
|
|
20
|
+
distDir = appDir;
|
|
21
|
+
} else {
|
|
22
|
+
const quickOutDir = tryQuickOutdir.tryQuickOutDir(appDir, tsconfigPath);
|
|
23
|
+
if (quickOutDir && fs__default.default.existsSync(path__default.default.join(quickOutDir, 'src', 'index.js'))) {
|
|
24
|
+
// Built output at configured outDir — skip loading `@strapi/typescript-utils`
|
|
25
|
+
distDir = quickOutDir;
|
|
26
|
+
} else {
|
|
27
|
+
// Custom/extended tsconfig or unbuilt project — fall back to the slow correct path
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
29
|
+
const tsUtils = require('@strapi/typescript-utils');
|
|
30
|
+
const outDir = await tsUtils.resolveOutDir(appDir);
|
|
31
|
+
if (!fs__default.default.existsSync(outDir)) {
|
|
32
|
+
throw new Error(`${outDir} directory not found. Please run the build command before starting your application`);
|
|
33
|
+
}
|
|
34
|
+
distDir = outDir;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
21
37
|
core.createStrapi({
|
|
22
38
|
appDir,
|
|
23
39
|
distDir
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sources":["../../../../src/cli/commands/start.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport fs from 'fs';\nimport
|
|
1
|
+
{"version":3,"file":"start.js","sources":["../../../../src/cli/commands/start.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport fs from 'fs';\nimport path from 'path';\nimport { createStrapi } from '@strapi/core';\n\nimport type { StrapiCommand } from '../types';\nimport { runAction } from '../utils/helpers';\nimport { tryQuickOutDir } from '../utils/try-quick-outdir';\n\nconst action = async () => {\n const appDir = process.cwd();\n const tsconfigPath = path.join(appDir, 'tsconfig.json');\n\n let distDir: string;\n\n if (!fs.existsSync(tsconfigPath)) {\n distDir = appDir;\n } else {\n const quickOutDir = tryQuickOutDir(appDir, tsconfigPath);\n\n if (quickOutDir && fs.existsSync(path.join(quickOutDir, 'src', 'index.js'))) {\n // Built output at configured outDir — skip loading `@strapi/typescript-utils`\n distDir = quickOutDir;\n } else {\n // Custom/extended tsconfig or unbuilt project — fall back to the slow correct path\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const tsUtils = require('@strapi/typescript-utils');\n const outDir = await tsUtils.resolveOutDir(appDir);\n\n if (!fs.existsSync(outDir)) {\n throw new Error(\n `${outDir} directory not found. Please run the build command before starting your application`\n );\n }\n\n distDir = outDir;\n }\n }\n\n createStrapi({ appDir, distDir }).start();\n};\n\n/**\n * `$ strapi start`\n */\nconst command: StrapiCommand = () => {\n return createCommand('start')\n .description('Start your Strapi application')\n .action(runAction('start', action));\n};\n\nexport { command };\n"],"names":["action","appDir","process","cwd","tsconfigPath","path","join","distDir","fs","existsSync","quickOutDir","tryQuickOutDir","tsUtils","require","outDir","resolveOutDir","Error","createStrapi","start","command","createCommand","description","runAction"],"mappings":";;;;;;;;;;;;;;AASA,MAAMA,MAAAA,GAAS,UAAA;IACb,MAAMC,MAAAA,GAASC,QAAQC,GAAG,EAAA;AAC1B,IAAA,MAAMC,YAAAA,GAAeC,qBAAAA,CAAKC,IAAI,CAACL,MAAAA,EAAQ,eAAA,CAAA;IAEvC,IAAIM,OAAAA;AAEJ,IAAA,IAAI,CAACC,mBAAAA,CAAGC,UAAU,CAACL,YAAAA,CAAAA,EAAe;QAChCG,OAAAA,GAAUN,MAAAA;IACZ,CAAA,MAAO;QACL,MAAMS,WAAAA,GAAcC,8BAAeV,MAAAA,EAAQG,YAAAA,CAAAA;QAE3C,IAAIM,WAAAA,IAAeF,oBAAGC,UAAU,CAACJ,sBAAKC,IAAI,CAACI,WAAAA,EAAa,KAAA,EAAO,UAAA,CAAA,CAAA,EAAc;;YAE3EH,OAAAA,GAAUG,WAAAA;QACZ,CAAA,MAAO;;;AAGL,YAAA,MAAME,UAAUC,OAAAA,CAAQ,0BAAA,CAAA;AACxB,YAAA,MAAMC,MAAAA,GAAS,MAAMF,OAAAA,CAAQG,aAAa,CAACd,MAAAA,CAAAA;AAE3C,YAAA,IAAI,CAACO,mBAAAA,CAAGC,UAAU,CAACK,MAAAA,CAAAA,EAAS;AAC1B,gBAAA,MAAM,IAAIE,KAAAA,CACR,CAAA,EAAGF,MAAAA,CAAO,mFAAmF,CAAC,CAAA;AAElG,YAAA;YAEAP,OAAAA,GAAUO,MAAAA;AACZ,QAAA;AACF,IAAA;IAEAG,iBAAAA,CAAa;AAAEhB,QAAAA,MAAAA;AAAQM,QAAAA;AAAQ,KAAA,CAAA,CAAGW,KAAK,EAAA;AACzC,CAAA;AAEA;;AAEC,UACKC,OAAAA,GAAyB,IAAA;IAC7B,OAAOC,uBAAAA,CAAc,SAClBC,WAAW,CAAC,iCACZrB,MAAM,CAACsB,kBAAU,OAAA,EAAStB,MAAAA,CAAAA,CAAAA;AAC/B;;;;"}
|
|
@@ -1,16 +1,32 @@
|
|
|
1
1
|
import { createCommand } from 'commander';
|
|
2
2
|
import fs from 'fs';
|
|
3
|
-
import
|
|
3
|
+
import path from 'path';
|
|
4
4
|
import { createStrapi } from '@strapi/core';
|
|
5
5
|
import { runAction } from '../utils/helpers.mjs';
|
|
6
|
+
import { tryQuickOutDir } from '../utils/try-quick-outdir.mjs';
|
|
6
7
|
|
|
7
8
|
const action = async ()=>{
|
|
8
9
|
const appDir = process.cwd();
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
const tsconfigPath = path.join(appDir, 'tsconfig.json');
|
|
11
|
+
let distDir;
|
|
12
|
+
if (!fs.existsSync(tsconfigPath)) {
|
|
13
|
+
distDir = appDir;
|
|
14
|
+
} else {
|
|
15
|
+
const quickOutDir = tryQuickOutDir(appDir, tsconfigPath);
|
|
16
|
+
if (quickOutDir && fs.existsSync(path.join(quickOutDir, 'src', 'index.js'))) {
|
|
17
|
+
// Built output at configured outDir — skip loading `@strapi/typescript-utils`
|
|
18
|
+
distDir = quickOutDir;
|
|
19
|
+
} else {
|
|
20
|
+
// Custom/extended tsconfig or unbuilt project — fall back to the slow correct path
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
22
|
+
const tsUtils = require('@strapi/typescript-utils');
|
|
23
|
+
const outDir = await tsUtils.resolveOutDir(appDir);
|
|
24
|
+
if (!fs.existsSync(outDir)) {
|
|
25
|
+
throw new Error(`${outDir} directory not found. Please run the build command before starting your application`);
|
|
26
|
+
}
|
|
27
|
+
distDir = outDir;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
14
30
|
createStrapi({
|
|
15
31
|
appDir,
|
|
16
32
|
distDir
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.mjs","sources":["../../../../src/cli/commands/start.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport fs from 'fs';\nimport
|
|
1
|
+
{"version":3,"file":"start.mjs","sources":["../../../../src/cli/commands/start.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport fs from 'fs';\nimport path from 'path';\nimport { createStrapi } from '@strapi/core';\n\nimport type { StrapiCommand } from '../types';\nimport { runAction } from '../utils/helpers';\nimport { tryQuickOutDir } from '../utils/try-quick-outdir';\n\nconst action = async () => {\n const appDir = process.cwd();\n const tsconfigPath = path.join(appDir, 'tsconfig.json');\n\n let distDir: string;\n\n if (!fs.existsSync(tsconfigPath)) {\n distDir = appDir;\n } else {\n const quickOutDir = tryQuickOutDir(appDir, tsconfigPath);\n\n if (quickOutDir && fs.existsSync(path.join(quickOutDir, 'src', 'index.js'))) {\n // Built output at configured outDir — skip loading `@strapi/typescript-utils`\n distDir = quickOutDir;\n } else {\n // Custom/extended tsconfig or unbuilt project — fall back to the slow correct path\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const tsUtils = require('@strapi/typescript-utils');\n const outDir = await tsUtils.resolveOutDir(appDir);\n\n if (!fs.existsSync(outDir)) {\n throw new Error(\n `${outDir} directory not found. Please run the build command before starting your application`\n );\n }\n\n distDir = outDir;\n }\n }\n\n createStrapi({ appDir, distDir }).start();\n};\n\n/**\n * `$ strapi start`\n */\nconst command: StrapiCommand = () => {\n return createCommand('start')\n .description('Start your Strapi application')\n .action(runAction('start', action));\n};\n\nexport { command };\n"],"names":["action","appDir","process","cwd","tsconfigPath","path","join","distDir","fs","existsSync","quickOutDir","tryQuickOutDir","tsUtils","require","outDir","resolveOutDir","Error","createStrapi","start","command","createCommand","description","runAction"],"mappings":";;;;;;;AASA,MAAMA,MAAAA,GAAS,UAAA;IACb,MAAMC,MAAAA,GAASC,QAAQC,GAAG,EAAA;AAC1B,IAAA,MAAMC,YAAAA,GAAeC,IAAAA,CAAKC,IAAI,CAACL,MAAAA,EAAQ,eAAA,CAAA;IAEvC,IAAIM,OAAAA;AAEJ,IAAA,IAAI,CAACC,EAAAA,CAAGC,UAAU,CAACL,YAAAA,CAAAA,EAAe;QAChCG,OAAAA,GAAUN,MAAAA;IACZ,CAAA,MAAO;QACL,MAAMS,WAAAA,GAAcC,eAAeV,MAAAA,EAAQG,YAAAA,CAAAA;QAE3C,IAAIM,WAAAA,IAAeF,GAAGC,UAAU,CAACJ,KAAKC,IAAI,CAACI,WAAAA,EAAa,KAAA,EAAO,UAAA,CAAA,CAAA,EAAc;;YAE3EH,OAAAA,GAAUG,WAAAA;QACZ,CAAA,MAAO;;;AAGL,YAAA,MAAME,UAAUC,OAAAA,CAAQ,0BAAA,CAAA;AACxB,YAAA,MAAMC,MAAAA,GAAS,MAAMF,OAAAA,CAAQG,aAAa,CAACd,MAAAA,CAAAA;AAE3C,YAAA,IAAI,CAACO,EAAAA,CAAGC,UAAU,CAACK,MAAAA,CAAAA,EAAS;AAC1B,gBAAA,MAAM,IAAIE,KAAAA,CACR,CAAA,EAAGF,MAAAA,CAAO,mFAAmF,CAAC,CAAA;AAElG,YAAA;YAEAP,OAAAA,GAAUO,MAAAA;AACZ,QAAA;AACF,IAAA;IAEAG,YAAAA,CAAa;AAAEhB,QAAAA,MAAAA;AAAQM,QAAAA;AAAQ,KAAA,CAAA,CAAGW,KAAK,EAAA;AACzC,CAAA;AAEA;;AAEC,UACKC,OAAAA,GAAyB,IAAA;IAC7B,OAAOC,aAAAA,CAAc,SAClBC,WAAW,CAAC,iCACZrB,MAAM,CAACsB,UAAU,OAAA,EAAStB,MAAAA,CAAAA,CAAAA;AAC/B;;;;"}
|
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var commander = require('commander');
|
|
4
|
-
var tsUtils = require('@strapi/typescript-utils');
|
|
5
|
-
var core = require('@strapi/core');
|
|
6
4
|
var helpers = require('../../utils/helpers.js');
|
|
7
5
|
|
|
8
|
-
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
-
|
|
10
|
-
var tsUtils__default = /*#__PURE__*/_interopDefault(tsUtils);
|
|
11
|
-
|
|
12
6
|
const action = async ({ debug, silent, verbose, outDir })=>{
|
|
13
7
|
if ((debug || verbose) && silent) {
|
|
14
8
|
console.error('Flags conflict: both silent and debug mode are enabled, exiting...');
|
|
15
9
|
process.exit(1);
|
|
16
10
|
}
|
|
17
|
-
|
|
11
|
+
// Defer heavy requires until the command actually runs
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
13
|
+
const tsUtils = require('@strapi/typescript-utils');
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
15
|
+
const { createStrapi, compileStrapi } = require('@strapi/core');
|
|
16
|
+
const appContext = await compileStrapi({
|
|
18
17
|
ignoreDiagnostics: true
|
|
19
18
|
});
|
|
20
|
-
const app = await
|
|
21
|
-
await
|
|
19
|
+
const app = await createStrapi(appContext).register();
|
|
20
|
+
await tsUtils.generators.generate({
|
|
22
21
|
strapi: app,
|
|
23
22
|
pwd: appContext.appDir,
|
|
24
23
|
rootDir: outDir ?? undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-types.js","sources":["../../../../../src/cli/commands/ts/generate-types.ts"],"sourcesContent":["import { createCommand } from 'commander';\
|
|
1
|
+
{"version":3,"file":"generate-types.js","sources":["../../../../../src/cli/commands/ts/generate-types.ts"],"sourcesContent":["import { createCommand } from 'commander';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\n\ninterface CmdOptions {\n debug?: boolean;\n silent?: boolean;\n verbose?: boolean;\n outDir?: string;\n}\n\nconst action = async ({ debug, silent, verbose, outDir }: CmdOptions) => {\n if ((debug || verbose) && silent) {\n console.error('Flags conflict: both silent and debug mode are enabled, exiting...');\n process.exit(1);\n }\n\n // Defer heavy requires until the command actually runs\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const tsUtils = require('@strapi/typescript-utils');\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const { createStrapi, compileStrapi } = require('@strapi/core');\n\n const appContext = await compileStrapi({ ignoreDiagnostics: true });\n const app = await createStrapi(appContext).register();\n\n await tsUtils.generators.generate({\n strapi: app,\n pwd: appContext.appDir,\n rootDir: outDir ?? undefined,\n logger: {\n silent,\n debug,\n },\n artifacts: { contentTypes: true, components: true },\n });\n\n await app.destroy();\n};\n\n/**\n * `$ strapi ts:generate-types`\n */\nconst command: StrapiCommand = () => {\n return createCommand('ts:generate-types')\n .description(`Generate TypeScript typings for your schemas`)\n .option('-d, --debug', `Run the generation with debug messages`, false)\n .option('-s, --silent', `Run the generation silently, without any output`, false)\n .option(\n '-o, --out-dir <outDir>',\n 'Specify a relative root directory in which the definitions will be generated. Changing this value might break types exposed by Strapi that relies on generated types.'\n )\n .action(runAction('ts:generate-types', action));\n};\n\nexport { action, command };\n"],"names":["action","debug","silent","verbose","outDir","console","error","process","exit","tsUtils","require","createStrapi","compileStrapi","appContext","ignoreDiagnostics","app","register","generators","generate","strapi","pwd","appDir","rootDir","undefined","logger","artifacts","contentTypes","components","destroy","command","createCommand","description","option","runAction"],"mappings":";;;;;AAYA,MAAMA,MAAAA,GAAS,OAAO,EAAEC,KAAK,EAAEC,MAAM,EAAEC,OAAO,EAAEC,MAAM,EAAc,GAAA;AAClE,IAAA,IAAI,CAACH,KAAAA,IAASE,OAAM,KAAMD,MAAAA,EAAQ;AAChCG,QAAAA,OAAAA,CAAQC,KAAK,CAAC,oEAAA,CAAA;AACdC,QAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf,IAAA;;;AAIA,IAAA,MAAMC,UAAUC,OAAAA,CAAQ,0BAAA,CAAA;;AAExB,IAAA,MAAM,EAAEC,YAAY,EAAEC,aAAa,EAAE,GAAGF,OAAAA,CAAQ,cAAA,CAAA;IAEhD,MAAMG,UAAAA,GAAa,MAAMD,aAAAA,CAAc;QAAEE,iBAAAA,EAAmB;AAAK,KAAA,CAAA;AACjE,IAAA,MAAMC,GAAAA,GAAM,MAAMJ,YAAAA,CAAaE,UAAAA,CAAAA,CAAYG,QAAQ,EAAA;AAEnD,IAAA,MAAMP,OAAAA,CAAQQ,UAAU,CAACC,QAAQ,CAAC;QAChCC,MAAAA,EAAQJ,GAAAA;AACRK,QAAAA,GAAAA,EAAKP,WAAWQ,MAAM;AACtBC,QAAAA,OAAAA,EAASlB,MAAAA,IAAUmB,SAAAA;QACnBC,MAAAA,EAAQ;AACNtB,YAAAA,MAAAA;AACAD,YAAAA;AACF,SAAA;QACAwB,SAAAA,EAAW;YAAEC,YAAAA,EAAc,IAAA;YAAMC,UAAAA,EAAY;AAAK;AACpD,KAAA,CAAA;AAEA,IAAA,MAAMZ,IAAIa,OAAO,EAAA;AACnB;AAEA;;AAEC,UACKC,OAAAA,GAAyB,IAAA;AAC7B,IAAA,OAAOC,uBAAAA,CAAc,mBAAA,CAAA,CAClBC,WAAW,CAAC,CAAC,4CAA4C,CAAC,CAAA,CAC1DC,MAAM,CAAC,aAAA,EAAe,CAAC,sCAAsC,CAAC,EAAE,KAAA,CAAA,CAChEA,MAAM,CAAC,cAAA,EAAgB,CAAC,+CAA+C,CAAC,EAAE,KAAA,CAAA,CAC1EA,MAAM,CACL,wBAAA,EACA,uKAAA,CAAA,CAEDhC,MAAM,CAACiC,kBAAU,mBAAA,EAAqBjC,MAAAA,CAAAA,CAAAA;AAC3C;;;;;"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { createCommand } from 'commander';
|
|
2
|
-
import tsUtils__default from '@strapi/typescript-utils';
|
|
3
|
-
import { compileStrapi, createStrapi } from '@strapi/core';
|
|
4
2
|
import { runAction } from '../../utils/helpers.mjs';
|
|
5
3
|
|
|
6
4
|
const action = async ({ debug, silent, verbose, outDir })=>{
|
|
@@ -8,11 +6,16 @@ const action = async ({ debug, silent, verbose, outDir })=>{
|
|
|
8
6
|
console.error('Flags conflict: both silent and debug mode are enabled, exiting...');
|
|
9
7
|
process.exit(1);
|
|
10
8
|
}
|
|
9
|
+
// Defer heavy requires until the command actually runs
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
11
|
+
const tsUtils = require('@strapi/typescript-utils');
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
13
|
+
const { createStrapi, compileStrapi } = require('@strapi/core');
|
|
11
14
|
const appContext = await compileStrapi({
|
|
12
15
|
ignoreDiagnostics: true
|
|
13
16
|
});
|
|
14
17
|
const app = await createStrapi(appContext).register();
|
|
15
|
-
await
|
|
18
|
+
await tsUtils.generators.generate({
|
|
16
19
|
strapi: app,
|
|
17
20
|
pwd: appContext.appDir,
|
|
18
21
|
rootDir: outDir ?? undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-types.mjs","sources":["../../../../../src/cli/commands/ts/generate-types.ts"],"sourcesContent":["import { createCommand } from 'commander';\
|
|
1
|
+
{"version":3,"file":"generate-types.mjs","sources":["../../../../../src/cli/commands/ts/generate-types.ts"],"sourcesContent":["import { createCommand } from 'commander';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\n\ninterface CmdOptions {\n debug?: boolean;\n silent?: boolean;\n verbose?: boolean;\n outDir?: string;\n}\n\nconst action = async ({ debug, silent, verbose, outDir }: CmdOptions) => {\n if ((debug || verbose) && silent) {\n console.error('Flags conflict: both silent and debug mode are enabled, exiting...');\n process.exit(1);\n }\n\n // Defer heavy requires until the command actually runs\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const tsUtils = require('@strapi/typescript-utils');\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const { createStrapi, compileStrapi } = require('@strapi/core');\n\n const appContext = await compileStrapi({ ignoreDiagnostics: true });\n const app = await createStrapi(appContext).register();\n\n await tsUtils.generators.generate({\n strapi: app,\n pwd: appContext.appDir,\n rootDir: outDir ?? undefined,\n logger: {\n silent,\n debug,\n },\n artifacts: { contentTypes: true, components: true },\n });\n\n await app.destroy();\n};\n\n/**\n * `$ strapi ts:generate-types`\n */\nconst command: StrapiCommand = () => {\n return createCommand('ts:generate-types')\n .description(`Generate TypeScript typings for your schemas`)\n .option('-d, --debug', `Run the generation with debug messages`, false)\n .option('-s, --silent', `Run the generation silently, without any output`, false)\n .option(\n '-o, --out-dir <outDir>',\n 'Specify a relative root directory in which the definitions will be generated. Changing this value might break types exposed by Strapi that relies on generated types.'\n )\n .action(runAction('ts:generate-types', action));\n};\n\nexport { action, command };\n"],"names":["action","debug","silent","verbose","outDir","console","error","process","exit","tsUtils","require","createStrapi","compileStrapi","appContext","ignoreDiagnostics","app","register","generators","generate","strapi","pwd","appDir","rootDir","undefined","logger","artifacts","contentTypes","components","destroy","command","createCommand","description","option","runAction"],"mappings":";;;AAYA,MAAMA,MAAAA,GAAS,OAAO,EAAEC,KAAK,EAAEC,MAAM,EAAEC,OAAO,EAAEC,MAAM,EAAc,GAAA;AAClE,IAAA,IAAI,CAACH,KAAAA,IAASE,OAAM,KAAMD,MAAAA,EAAQ;AAChCG,QAAAA,OAAAA,CAAQC,KAAK,CAAC,oEAAA,CAAA;AACdC,QAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf,IAAA;;;AAIA,IAAA,MAAMC,UAAUC,OAAAA,CAAQ,0BAAA,CAAA;;AAExB,IAAA,MAAM,EAAEC,YAAY,EAAEC,aAAa,EAAE,GAAGF,OAAAA,CAAQ,cAAA,CAAA;IAEhD,MAAMG,UAAAA,GAAa,MAAMD,aAAAA,CAAc;QAAEE,iBAAAA,EAAmB;AAAK,KAAA,CAAA;AACjE,IAAA,MAAMC,GAAAA,GAAM,MAAMJ,YAAAA,CAAaE,UAAAA,CAAAA,CAAYG,QAAQ,EAAA;AAEnD,IAAA,MAAMP,OAAAA,CAAQQ,UAAU,CAACC,QAAQ,CAAC;QAChCC,MAAAA,EAAQJ,GAAAA;AACRK,QAAAA,GAAAA,EAAKP,WAAWQ,MAAM;AACtBC,QAAAA,OAAAA,EAASlB,MAAAA,IAAUmB,SAAAA;QACnBC,MAAAA,EAAQ;AACNtB,YAAAA,MAAAA;AACAD,YAAAA;AACF,SAAA;QACAwB,SAAAA,EAAW;YAAEC,YAAAA,EAAc,IAAA;YAAMC,UAAAA,EAAY;AAAK;AACpD,KAAA,CAAA;AAEA,IAAA,MAAMZ,IAAIa,OAAO,EAAA;AACnB;AAEA;;AAEC,UACKC,OAAAA,GAAyB,IAAA;AAC7B,IAAA,OAAOC,aAAAA,CAAc,mBAAA,CAAA,CAClBC,WAAW,CAAC,CAAC,4CAA4C,CAAC,CAAA,CAC1DC,MAAM,CAAC,aAAA,EAAe,CAAC,sCAAsC,CAAC,EAAE,KAAA,CAAA,CAChEA,MAAM,CAAC,cAAA,EAAgB,CAAC,+CAA+C,CAAC,EAAE,KAAA,CAAA,CAC1EA,MAAM,CACL,wBAAA,EACA,uKAAA,CAAA,CAEDhC,MAAM,CAACiC,UAAU,mBAAA,EAAqBjC,MAAAA,CAAAA,CAAAA;AAC3C;;;;"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var fs = require('fs');
|
|
4
|
+
var path = require('path');
|
|
5
|
+
|
|
6
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
|
|
8
|
+
var fs__default = /*#__PURE__*/_interopDefault(fs);
|
|
9
|
+
var path__default = /*#__PURE__*/_interopDefault(path);
|
|
10
|
+
|
|
11
|
+
const DEFAULT_OUT_DIR = 'dist';
|
|
12
|
+
/**
|
|
13
|
+
* Strip `//` and `/* *\/` comments from JSON-like text without loading `typescript`.
|
|
14
|
+
*/ const stripJsonComments = (input)=>{
|
|
15
|
+
let result = '';
|
|
16
|
+
let inString = false;
|
|
17
|
+
let stringChar = '';
|
|
18
|
+
let i = 0;
|
|
19
|
+
while(i < input.length){
|
|
20
|
+
const char = input[i];
|
|
21
|
+
const next = input[i + 1];
|
|
22
|
+
if (inString) {
|
|
23
|
+
result += char;
|
|
24
|
+
if (char === '\\') {
|
|
25
|
+
result += input[i + 1] ?? '';
|
|
26
|
+
i += 2;
|
|
27
|
+
} else if (char === stringChar) {
|
|
28
|
+
inString = false;
|
|
29
|
+
i += 1;
|
|
30
|
+
} else {
|
|
31
|
+
i += 1;
|
|
32
|
+
}
|
|
33
|
+
} else if (char === '"' || char === "'") {
|
|
34
|
+
inString = true;
|
|
35
|
+
stringChar = char;
|
|
36
|
+
result += char;
|
|
37
|
+
i += 1;
|
|
38
|
+
} else if (char === '/' && next === '/') {
|
|
39
|
+
while(i < input.length && input[i] !== '\n'){
|
|
40
|
+
i += 1;
|
|
41
|
+
}
|
|
42
|
+
} else if (char === '/' && next === '*') {
|
|
43
|
+
i += 2;
|
|
44
|
+
while(i < input.length && !(input[i] === '*' && input[i + 1] === '/')){
|
|
45
|
+
i += 1;
|
|
46
|
+
}
|
|
47
|
+
i += 2;
|
|
48
|
+
} else {
|
|
49
|
+
result += char;
|
|
50
|
+
i += 1;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return result;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Read `compilerOptions.outDir` from tsconfig.json without loading `typescript` or
|
|
57
|
+
* `@strapi/typescript-utils`. Returns null when the file cannot be parsed or when
|
|
58
|
+
* `extends` may define outDir (fall back to resolveOutDir).
|
|
59
|
+
*/ const tryQuickOutDir = (appDir, tsconfigPath)=>{
|
|
60
|
+
let raw;
|
|
61
|
+
try {
|
|
62
|
+
const contents = fs__default.default.readFileSync(tsconfigPath, 'utf8');
|
|
63
|
+
raw = JSON.parse(stripJsonComments(contents));
|
|
64
|
+
} catch {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
if (!raw || typeof raw !== 'object') {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
const config = raw;
|
|
71
|
+
const localOutDir = config.compilerOptions?.outDir;
|
|
72
|
+
if (config.extends && localOutDir === undefined) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
return path__default.default.resolve(appDir, localOutDir ?? DEFAULT_OUT_DIR);
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
exports.stripJsonComments = stripJsonComments;
|
|
79
|
+
exports.tryQuickOutDir = tryQuickOutDir;
|
|
80
|
+
//# sourceMappingURL=try-quick-outdir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"try-quick-outdir.js","sources":["../../../../src/cli/utils/try-quick-outdir.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\n\nconst DEFAULT_OUT_DIR = 'dist';\n\n/**\n * Strip `//` and `/* *\\/` comments from JSON-like text without loading `typescript`.\n */\nconst stripJsonComments = (input: string): string => {\n let result = '';\n let inString = false;\n let stringChar = '';\n let i = 0;\n\n while (i < input.length) {\n const char = input[i];\n const next = input[i + 1];\n\n if (inString) {\n result += char;\n\n if (char === '\\\\') {\n result += input[i + 1] ?? '';\n i += 2;\n } else if (char === stringChar) {\n inString = false;\n i += 1;\n } else {\n i += 1;\n }\n } else if (char === '\"' || char === \"'\") {\n inString = true;\n stringChar = char;\n result += char;\n i += 1;\n } else if (char === '/' && next === '/') {\n while (i < input.length && input[i] !== '\\n') {\n i += 1;\n }\n } else if (char === '/' && next === '*') {\n i += 2;\n while (i < input.length && !(input[i] === '*' && input[i + 1] === '/')) {\n i += 1;\n }\n i += 2;\n } else {\n result += char;\n i += 1;\n }\n }\n\n return result;\n};\n\n/**\n * Read `compilerOptions.outDir` from tsconfig.json without loading `typescript` or\n * `@strapi/typescript-utils`. Returns null when the file cannot be parsed or when\n * `extends` may define outDir (fall back to resolveOutDir).\n */\nconst tryQuickOutDir = (appDir: string, tsconfigPath: string): string | null => {\n let raw: unknown;\n\n try {\n const contents = fs.readFileSync(tsconfigPath, 'utf8');\n raw = JSON.parse(stripJsonComments(contents));\n } catch {\n return null;\n }\n\n if (!raw || typeof raw !== 'object') {\n return null;\n }\n\n const config = raw as { extends?: string; compilerOptions?: { outDir?: string } };\n const localOutDir = config.compilerOptions?.outDir;\n\n if (config.extends && localOutDir === undefined) {\n return null;\n }\n\n return path.resolve(appDir, localOutDir ?? DEFAULT_OUT_DIR);\n};\n\nexport { tryQuickOutDir, stripJsonComments };\n"],"names":["DEFAULT_OUT_DIR","stripJsonComments","input","result","inString","stringChar","i","length","char","next","tryQuickOutDir","appDir","tsconfigPath","raw","contents","fs","readFileSync","JSON","parse","config","localOutDir","compilerOptions","outDir","extends","undefined","path","resolve"],"mappings":";;;;;;;;;;AAGA,MAAMA,eAAAA,GAAkB,MAAA;AAExB;;IAGA,MAAMC,oBAAoB,CAACC,KAAAA,GAAAA;AACzB,IAAA,IAAIC,MAAAA,GAAS,EAAA;AACb,IAAA,IAAIC,QAAAA,GAAW,KAAA;AACf,IAAA,IAAIC,UAAAA,GAAa,EAAA;AACjB,IAAA,IAAIC,CAAAA,GAAI,CAAA;IAER,MAAOA,CAAAA,GAAIJ,KAAAA,CAAMK,MAAM,CAAE;QACvB,MAAMC,IAAAA,GAAON,KAAK,CAACI,CAAAA,CAAE;AACrB,QAAA,MAAMG,IAAAA,GAAOP,KAAK,CAACI,CAAAA,GAAI,CAAA,CAAE;AAEzB,QAAA,IAAIF,QAAAA,EAAU;YACZD,MAAAA,IAAUK,IAAAA;AAEV,YAAA,IAAIA,SAAS,IAAA,EAAM;AACjBL,gBAAAA,MAAAA,IAAUD,KAAK,CAACI,CAAAA,GAAI,CAAA,CAAE,IAAI,EAAA;gBAC1BA,CAAAA,IAAK,CAAA;YACP,CAAA,MAAO,IAAIE,SAASH,UAAAA,EAAY;gBAC9BD,QAAAA,GAAW,KAAA;gBACXE,CAAAA,IAAK,CAAA;YACP,CAAA,MAAO;gBACLA,CAAAA,IAAK,CAAA;AACP,YAAA;AACF,QAAA,CAAA,MAAO,IAAIE,IAAAA,KAAS,GAAA,IAAOA,IAAAA,KAAS,GAAA,EAAK;YACvCJ,QAAAA,GAAW,IAAA;YACXC,UAAAA,GAAaG,IAAAA;YACbL,MAAAA,IAAUK,IAAAA;YACVF,CAAAA,IAAK,CAAA;AACP,QAAA,CAAA,MAAO,IAAIE,IAAAA,KAAS,GAAA,IAAOC,IAAAA,KAAS,GAAA,EAAK;YACvC,MAAOH,CAAAA,GAAIJ,MAAMK,MAAM,IAAIL,KAAK,CAACI,CAAAA,CAAE,KAAK,IAAA,CAAM;gBAC5CA,CAAAA,IAAK,CAAA;AACP,YAAA;AACF,QAAA,CAAA,MAAO,IAAIE,IAAAA,KAAS,GAAA,IAAOC,IAAAA,KAAS,GAAA,EAAK;YACvCH,CAAAA,IAAK,CAAA;AACL,YAAA,MAAOA,IAAIJ,KAAAA,CAAMK,MAAM,IAAI,EAAEL,KAAK,CAACI,CAAAA,CAAE,KAAK,OAAOJ,KAAK,CAACI,IAAI,CAAA,CAAE,KAAK,GAAE,CAAA,CAAI;gBACtEA,CAAAA,IAAK,CAAA;AACP,YAAA;YACAA,CAAAA,IAAK,CAAA;QACP,CAAA,MAAO;YACLH,MAAAA,IAAUK,IAAAA;YACVF,CAAAA,IAAK,CAAA;AACP,QAAA;AACF,IAAA;IAEA,OAAOH,MAAAA;AACT;AAEA;;;;IAKA,MAAMO,cAAAA,GAAiB,CAACC,MAAAA,EAAgBC,YAAAA,GAAAA;IACtC,IAAIC,GAAAA;IAEJ,IAAI;AACF,QAAA,MAAMC,QAAAA,GAAWC,mBAAAA,CAAGC,YAAY,CAACJ,YAAAA,EAAc,MAAA,CAAA;QAC/CC,GAAAA,GAAMI,IAAAA,CAAKC,KAAK,CAACjB,iBAAAA,CAAkBa,QAAAA,CAAAA,CAAAA;AACrC,IAAA,CAAA,CAAE,OAAM;QACN,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,IAAI,CAACD,GAAAA,IAAO,OAAOA,GAAAA,KAAQ,QAAA,EAAU;QACnC,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,MAAMM,MAAAA,GAASN,GAAAA;IACf,MAAMO,WAAAA,GAAcD,MAAAA,CAAOE,eAAe,EAAEC,MAAAA;AAE5C,IAAA,IAAIH,MAAAA,CAAOI,OAAO,IAAIH,WAAAA,KAAgBI,SAAAA,EAAW;QAC/C,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,OAAOC,qBAAAA,CAAKC,OAAO,CAACf,MAAAA,EAAQS,WAAAA,IAAepB,eAAAA,CAAAA;AAC7C;;;;;"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
|
|
4
|
+
const DEFAULT_OUT_DIR = 'dist';
|
|
5
|
+
/**
|
|
6
|
+
* Strip `//` and `/* *\/` comments from JSON-like text without loading `typescript`.
|
|
7
|
+
*/ const stripJsonComments = (input)=>{
|
|
8
|
+
let result = '';
|
|
9
|
+
let inString = false;
|
|
10
|
+
let stringChar = '';
|
|
11
|
+
let i = 0;
|
|
12
|
+
while(i < input.length){
|
|
13
|
+
const char = input[i];
|
|
14
|
+
const next = input[i + 1];
|
|
15
|
+
if (inString) {
|
|
16
|
+
result += char;
|
|
17
|
+
if (char === '\\') {
|
|
18
|
+
result += input[i + 1] ?? '';
|
|
19
|
+
i += 2;
|
|
20
|
+
} else if (char === stringChar) {
|
|
21
|
+
inString = false;
|
|
22
|
+
i += 1;
|
|
23
|
+
} else {
|
|
24
|
+
i += 1;
|
|
25
|
+
}
|
|
26
|
+
} else if (char === '"' || char === "'") {
|
|
27
|
+
inString = true;
|
|
28
|
+
stringChar = char;
|
|
29
|
+
result += char;
|
|
30
|
+
i += 1;
|
|
31
|
+
} else if (char === '/' && next === '/') {
|
|
32
|
+
while(i < input.length && input[i] !== '\n'){
|
|
33
|
+
i += 1;
|
|
34
|
+
}
|
|
35
|
+
} else if (char === '/' && next === '*') {
|
|
36
|
+
i += 2;
|
|
37
|
+
while(i < input.length && !(input[i] === '*' && input[i + 1] === '/')){
|
|
38
|
+
i += 1;
|
|
39
|
+
}
|
|
40
|
+
i += 2;
|
|
41
|
+
} else {
|
|
42
|
+
result += char;
|
|
43
|
+
i += 1;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Read `compilerOptions.outDir` from tsconfig.json without loading `typescript` or
|
|
50
|
+
* `@strapi/typescript-utils`. Returns null when the file cannot be parsed or when
|
|
51
|
+
* `extends` may define outDir (fall back to resolveOutDir).
|
|
52
|
+
*/ const tryQuickOutDir = (appDir, tsconfigPath)=>{
|
|
53
|
+
let raw;
|
|
54
|
+
try {
|
|
55
|
+
const contents = fs.readFileSync(tsconfigPath, 'utf8');
|
|
56
|
+
raw = JSON.parse(stripJsonComments(contents));
|
|
57
|
+
} catch {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
if (!raw || typeof raw !== 'object') {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
const config = raw;
|
|
64
|
+
const localOutDir = config.compilerOptions?.outDir;
|
|
65
|
+
if (config.extends && localOutDir === undefined) {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
return path.resolve(appDir, localOutDir ?? DEFAULT_OUT_DIR);
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
export { stripJsonComments, tryQuickOutDir };
|
|
72
|
+
//# sourceMappingURL=try-quick-outdir.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"try-quick-outdir.mjs","sources":["../../../../src/cli/utils/try-quick-outdir.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\n\nconst DEFAULT_OUT_DIR = 'dist';\n\n/**\n * Strip `//` and `/* *\\/` comments from JSON-like text without loading `typescript`.\n */\nconst stripJsonComments = (input: string): string => {\n let result = '';\n let inString = false;\n let stringChar = '';\n let i = 0;\n\n while (i < input.length) {\n const char = input[i];\n const next = input[i + 1];\n\n if (inString) {\n result += char;\n\n if (char === '\\\\') {\n result += input[i + 1] ?? '';\n i += 2;\n } else if (char === stringChar) {\n inString = false;\n i += 1;\n } else {\n i += 1;\n }\n } else if (char === '\"' || char === \"'\") {\n inString = true;\n stringChar = char;\n result += char;\n i += 1;\n } else if (char === '/' && next === '/') {\n while (i < input.length && input[i] !== '\\n') {\n i += 1;\n }\n } else if (char === '/' && next === '*') {\n i += 2;\n while (i < input.length && !(input[i] === '*' && input[i + 1] === '/')) {\n i += 1;\n }\n i += 2;\n } else {\n result += char;\n i += 1;\n }\n }\n\n return result;\n};\n\n/**\n * Read `compilerOptions.outDir` from tsconfig.json without loading `typescript` or\n * `@strapi/typescript-utils`. Returns null when the file cannot be parsed or when\n * `extends` may define outDir (fall back to resolveOutDir).\n */\nconst tryQuickOutDir = (appDir: string, tsconfigPath: string): string | null => {\n let raw: unknown;\n\n try {\n const contents = fs.readFileSync(tsconfigPath, 'utf8');\n raw = JSON.parse(stripJsonComments(contents));\n } catch {\n return null;\n }\n\n if (!raw || typeof raw !== 'object') {\n return null;\n }\n\n const config = raw as { extends?: string; compilerOptions?: { outDir?: string } };\n const localOutDir = config.compilerOptions?.outDir;\n\n if (config.extends && localOutDir === undefined) {\n return null;\n }\n\n return path.resolve(appDir, localOutDir ?? DEFAULT_OUT_DIR);\n};\n\nexport { tryQuickOutDir, stripJsonComments };\n"],"names":["DEFAULT_OUT_DIR","stripJsonComments","input","result","inString","stringChar","i","length","char","next","tryQuickOutDir","appDir","tsconfigPath","raw","contents","fs","readFileSync","JSON","parse","config","localOutDir","compilerOptions","outDir","extends","undefined","path","resolve"],"mappings":";;;AAGA,MAAMA,eAAAA,GAAkB,MAAA;AAExB;;IAGA,MAAMC,oBAAoB,CAACC,KAAAA,GAAAA;AACzB,IAAA,IAAIC,MAAAA,GAAS,EAAA;AACb,IAAA,IAAIC,QAAAA,GAAW,KAAA;AACf,IAAA,IAAIC,UAAAA,GAAa,EAAA;AACjB,IAAA,IAAIC,CAAAA,GAAI,CAAA;IAER,MAAOA,CAAAA,GAAIJ,KAAAA,CAAMK,MAAM,CAAE;QACvB,MAAMC,IAAAA,GAAON,KAAK,CAACI,CAAAA,CAAE;AACrB,QAAA,MAAMG,IAAAA,GAAOP,KAAK,CAACI,CAAAA,GAAI,CAAA,CAAE;AAEzB,QAAA,IAAIF,QAAAA,EAAU;YACZD,MAAAA,IAAUK,IAAAA;AAEV,YAAA,IAAIA,SAAS,IAAA,EAAM;AACjBL,gBAAAA,MAAAA,IAAUD,KAAK,CAACI,CAAAA,GAAI,CAAA,CAAE,IAAI,EAAA;gBAC1BA,CAAAA,IAAK,CAAA;YACP,CAAA,MAAO,IAAIE,SAASH,UAAAA,EAAY;gBAC9BD,QAAAA,GAAW,KAAA;gBACXE,CAAAA,IAAK,CAAA;YACP,CAAA,MAAO;gBACLA,CAAAA,IAAK,CAAA;AACP,YAAA;AACF,QAAA,CAAA,MAAO,IAAIE,IAAAA,KAAS,GAAA,IAAOA,IAAAA,KAAS,GAAA,EAAK;YACvCJ,QAAAA,GAAW,IAAA;YACXC,UAAAA,GAAaG,IAAAA;YACbL,MAAAA,IAAUK,IAAAA;YACVF,CAAAA,IAAK,CAAA;AACP,QAAA,CAAA,MAAO,IAAIE,IAAAA,KAAS,GAAA,IAAOC,IAAAA,KAAS,GAAA,EAAK;YACvC,MAAOH,CAAAA,GAAIJ,MAAMK,MAAM,IAAIL,KAAK,CAACI,CAAAA,CAAE,KAAK,IAAA,CAAM;gBAC5CA,CAAAA,IAAK,CAAA;AACP,YAAA;AACF,QAAA,CAAA,MAAO,IAAIE,IAAAA,KAAS,GAAA,IAAOC,IAAAA,KAAS,GAAA,EAAK;YACvCH,CAAAA,IAAK,CAAA;AACL,YAAA,MAAOA,IAAIJ,KAAAA,CAAMK,MAAM,IAAI,EAAEL,KAAK,CAACI,CAAAA,CAAE,KAAK,OAAOJ,KAAK,CAACI,IAAI,CAAA,CAAE,KAAK,GAAE,CAAA,CAAI;gBACtEA,CAAAA,IAAK,CAAA;AACP,YAAA;YACAA,CAAAA,IAAK,CAAA;QACP,CAAA,MAAO;YACLH,MAAAA,IAAUK,IAAAA;YACVF,CAAAA,IAAK,CAAA;AACP,QAAA;AACF,IAAA;IAEA,OAAOH,MAAAA;AACT;AAEA;;;;IAKA,MAAMO,cAAAA,GAAiB,CAACC,MAAAA,EAAgBC,YAAAA,GAAAA;IACtC,IAAIC,GAAAA;IAEJ,IAAI;AACF,QAAA,MAAMC,QAAAA,GAAWC,EAAAA,CAAGC,YAAY,CAACJ,YAAAA,EAAc,MAAA,CAAA;QAC/CC,GAAAA,GAAMI,IAAAA,CAAKC,KAAK,CAACjB,iBAAAA,CAAkBa,QAAAA,CAAAA,CAAAA;AACrC,IAAA,CAAA,CAAE,OAAM;QACN,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,IAAI,CAACD,GAAAA,IAAO,OAAOA,GAAAA,KAAQ,QAAA,EAAU;QACnC,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,MAAMM,MAAAA,GAASN,GAAAA;IACf,MAAMO,WAAAA,GAAcD,MAAAA,CAAOE,eAAe,EAAEC,MAAAA;AAE5C,IAAA,IAAIH,MAAAA,CAAOI,OAAO,IAAIH,WAAAA,KAAgBI,SAAAA,EAAW;QAC/C,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,OAAOC,IAAAA,CAAKC,OAAO,CAACf,MAAAA,EAAQS,WAAAA,IAAepB,eAAAA,CAAAA;AAC7C;;;;"}
|
|
@@ -1,24 +1,32 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var os = require('os');
|
|
4
|
-
var ts = require('typescript');
|
|
5
4
|
|
|
6
5
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
6
|
|
|
8
7
|
var os__default = /*#__PURE__*/_interopDefault(os);
|
|
9
|
-
var ts__default = /*#__PURE__*/_interopDefault(ts);
|
|
10
8
|
|
|
9
|
+
// Lazy: defer `typescript` (~115 ms) until a CLI command actually loads tsconfig
|
|
10
|
+
let lazyTs;
|
|
11
|
+
const tsLib = ()=>{
|
|
12
|
+
if (!lazyTs) {
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
14
|
+
lazyTs = require('typescript');
|
|
15
|
+
}
|
|
16
|
+
return lazyTs;
|
|
17
|
+
};
|
|
11
18
|
/**
|
|
12
19
|
* @description Load a tsconfig.json file and return the parsed config.
|
|
13
20
|
*
|
|
14
21
|
* @internal
|
|
15
22
|
*/ const loadTsConfig = ({ cwd, path, logger })=>{
|
|
16
|
-
const
|
|
23
|
+
const tsApi = tsLib();
|
|
24
|
+
const configPath = tsApi.findConfigFile(cwd, tsApi.sys.fileExists, path);
|
|
17
25
|
if (!configPath) {
|
|
18
26
|
return undefined;
|
|
19
27
|
}
|
|
20
|
-
const configFile =
|
|
21
|
-
const parsedConfig =
|
|
28
|
+
const configFile = tsApi.readConfigFile(configPath, tsApi.sys.readFile);
|
|
29
|
+
const parsedConfig = tsApi.parseJsonConfigFileContent(configFile.config, tsApi.sys, cwd);
|
|
22
30
|
logger.debug(`Loaded user TS config:`, os__default.default.EOL, parsedConfig);
|
|
23
31
|
return {
|
|
24
32
|
config: parsedConfig,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsconfig.js","sources":["../../../../src/cli/utils/tsconfig.ts"],"sourcesContent":["import os from 'os';\nimport ts from 'typescript';\nimport type { Logger } from './logger';\n\ninterface TsConfig {\n config: ts.ParsedCommandLine;\n path: string;\n}\n\n/**\n * @description Load a tsconfig.json file and return the parsed config.\n *\n * @internal\n */\nconst loadTsConfig = ({\n cwd,\n path,\n logger,\n}: {\n cwd: string;\n path: string;\n logger: Logger;\n}): TsConfig | undefined => {\n const configPath =
|
|
1
|
+
{"version":3,"file":"tsconfig.js","sources":["../../../../src/cli/utils/tsconfig.ts"],"sourcesContent":["import os from 'os';\nimport type ts from 'typescript';\nimport type { Logger } from './logger';\n\n// Lazy: defer `typescript` (~115 ms) until a CLI command actually loads tsconfig\nlet lazyTs: typeof ts | undefined;\nconst tsLib = (): typeof ts => {\n if (!lazyTs) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n lazyTs = require('typescript');\n }\n return lazyTs as typeof ts;\n};\n\ninterface TsConfig {\n config: ts.ParsedCommandLine;\n path: string;\n}\n\n/**\n * @description Load a tsconfig.json file and return the parsed config.\n *\n * @internal\n */\nconst loadTsConfig = ({\n cwd,\n path,\n logger,\n}: {\n cwd: string;\n path: string;\n logger: Logger;\n}): TsConfig | undefined => {\n const tsApi = tsLib();\n const configPath = tsApi.findConfigFile(cwd, tsApi.sys.fileExists, path);\n\n if (!configPath) {\n return undefined;\n }\n\n const configFile = tsApi.readConfigFile(configPath, tsApi.sys.readFile);\n\n const parsedConfig = tsApi.parseJsonConfigFileContent(configFile.config, tsApi.sys, cwd);\n\n logger.debug(`Loaded user TS config:`, os.EOL, parsedConfig);\n\n return {\n config: parsedConfig,\n path: configPath,\n };\n};\n\nexport { loadTsConfig };\nexport type { TsConfig };\n"],"names":["lazyTs","tsLib","require","loadTsConfig","cwd","path","logger","tsApi","configPath","findConfigFile","sys","fileExists","undefined","configFile","readConfigFile","readFile","parsedConfig","parseJsonConfigFileContent","config","debug","os","EOL"],"mappings":";;;;;;;;AAIA;AACA,IAAIA,MAAAA;AACJ,MAAMC,KAAAA,GAAQ,IAAA;AACZ,IAAA,IAAI,CAACD,MAAAA,EAAQ;;AAEXA,QAAAA,MAAAA,GAASE,OAAAA,CAAQ,YAAA,CAAA;AACnB,IAAA;IACA,OAAOF,MAAAA;AACT,CAAA;AAOA;;;;IAKA,MAAMG,eAAe,CAAC,EACpBC,GAAG,EACHC,IAAI,EACJC,MAAM,EAKP,GAAA;AACC,IAAA,MAAMC,KAAAA,GAAQN,KAAAA,EAAAA;IACd,MAAMO,UAAAA,GAAaD,MAAME,cAAc,CAACL,KAAKG,KAAAA,CAAMG,GAAG,CAACC,UAAU,EAAEN,IAAAA,CAAAA;AAEnE,IAAA,IAAI,CAACG,UAAAA,EAAY;QACf,OAAOI,SAAAA;AACT,IAAA;IAEA,MAAMC,UAAAA,GAAaN,MAAMO,cAAc,CAACN,YAAYD,KAAAA,CAAMG,GAAG,CAACK,QAAQ,CAAA;IAEtE,MAAMC,YAAAA,GAAeT,MAAMU,0BAA0B,CAACJ,WAAWK,MAAM,EAAEX,KAAAA,CAAMG,GAAG,EAAEN,GAAAA,CAAAA;IAEpFE,MAAAA,CAAOa,KAAK,CAAC,CAAC,sBAAsB,CAAC,EAAEC,mBAAAA,CAAGC,GAAG,EAAEL,YAAAA,CAAAA;IAE/C,OAAO;QACLE,MAAAA,EAAQF,YAAAA;QACRX,IAAAA,EAAMG;AACR,KAAA;AACF;;;;"}
|
|
@@ -1,17 +1,26 @@
|
|
|
1
1
|
import os from 'os';
|
|
2
|
-
import ts from 'typescript';
|
|
3
2
|
|
|
3
|
+
// Lazy: defer `typescript` (~115 ms) until a CLI command actually loads tsconfig
|
|
4
|
+
let lazyTs;
|
|
5
|
+
const tsLib = ()=>{
|
|
6
|
+
if (!lazyTs) {
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
8
|
+
lazyTs = require('typescript');
|
|
9
|
+
}
|
|
10
|
+
return lazyTs;
|
|
11
|
+
};
|
|
4
12
|
/**
|
|
5
13
|
* @description Load a tsconfig.json file and return the parsed config.
|
|
6
14
|
*
|
|
7
15
|
* @internal
|
|
8
16
|
*/ const loadTsConfig = ({ cwd, path, logger })=>{
|
|
9
|
-
const
|
|
17
|
+
const tsApi = tsLib();
|
|
18
|
+
const configPath = tsApi.findConfigFile(cwd, tsApi.sys.fileExists, path);
|
|
10
19
|
if (!configPath) {
|
|
11
20
|
return undefined;
|
|
12
21
|
}
|
|
13
|
-
const configFile =
|
|
14
|
-
const parsedConfig =
|
|
22
|
+
const configFile = tsApi.readConfigFile(configPath, tsApi.sys.readFile);
|
|
23
|
+
const parsedConfig = tsApi.parseJsonConfigFileContent(configFile.config, tsApi.sys, cwd);
|
|
15
24
|
logger.debug(`Loaded user TS config:`, os.EOL, parsedConfig);
|
|
16
25
|
return {
|
|
17
26
|
config: parsedConfig,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsconfig.mjs","sources":["../../../../src/cli/utils/tsconfig.ts"],"sourcesContent":["import os from 'os';\nimport ts from 'typescript';\nimport type { Logger } from './logger';\n\ninterface TsConfig {\n config: ts.ParsedCommandLine;\n path: string;\n}\n\n/**\n * @description Load a tsconfig.json file and return the parsed config.\n *\n * @internal\n */\nconst loadTsConfig = ({\n cwd,\n path,\n logger,\n}: {\n cwd: string;\n path: string;\n logger: Logger;\n}): TsConfig | undefined => {\n const configPath =
|
|
1
|
+
{"version":3,"file":"tsconfig.mjs","sources":["../../../../src/cli/utils/tsconfig.ts"],"sourcesContent":["import os from 'os';\nimport type ts from 'typescript';\nimport type { Logger } from './logger';\n\n// Lazy: defer `typescript` (~115 ms) until a CLI command actually loads tsconfig\nlet lazyTs: typeof ts | undefined;\nconst tsLib = (): typeof ts => {\n if (!lazyTs) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n lazyTs = require('typescript');\n }\n return lazyTs as typeof ts;\n};\n\ninterface TsConfig {\n config: ts.ParsedCommandLine;\n path: string;\n}\n\n/**\n * @description Load a tsconfig.json file and return the parsed config.\n *\n * @internal\n */\nconst loadTsConfig = ({\n cwd,\n path,\n logger,\n}: {\n cwd: string;\n path: string;\n logger: Logger;\n}): TsConfig | undefined => {\n const tsApi = tsLib();\n const configPath = tsApi.findConfigFile(cwd, tsApi.sys.fileExists, path);\n\n if (!configPath) {\n return undefined;\n }\n\n const configFile = tsApi.readConfigFile(configPath, tsApi.sys.readFile);\n\n const parsedConfig = tsApi.parseJsonConfigFileContent(configFile.config, tsApi.sys, cwd);\n\n logger.debug(`Loaded user TS config:`, os.EOL, parsedConfig);\n\n return {\n config: parsedConfig,\n path: configPath,\n };\n};\n\nexport { loadTsConfig };\nexport type { TsConfig };\n"],"names":["lazyTs","tsLib","require","loadTsConfig","cwd","path","logger","tsApi","configPath","findConfigFile","sys","fileExists","undefined","configFile","readConfigFile","readFile","parsedConfig","parseJsonConfigFileContent","config","debug","os","EOL"],"mappings":";;AAIA;AACA,IAAIA,MAAAA;AACJ,MAAMC,KAAAA,GAAQ,IAAA;AACZ,IAAA,IAAI,CAACD,MAAAA,EAAQ;;AAEXA,QAAAA,MAAAA,GAASE,OAAAA,CAAQ,YAAA,CAAA;AACnB,IAAA;IACA,OAAOF,MAAAA;AACT,CAAA;AAOA;;;;IAKA,MAAMG,eAAe,CAAC,EACpBC,GAAG,EACHC,IAAI,EACJC,MAAM,EAKP,GAAA;AACC,IAAA,MAAMC,KAAAA,GAAQN,KAAAA,EAAAA;IACd,MAAMO,UAAAA,GAAaD,MAAME,cAAc,CAACL,KAAKG,KAAAA,CAAMG,GAAG,CAACC,UAAU,EAAEN,IAAAA,CAAAA;AAEnE,IAAA,IAAI,CAACG,UAAAA,EAAY;QACf,OAAOI,SAAAA;AACT,IAAA;IAEA,MAAMC,UAAAA,GAAaN,MAAMO,cAAc,CAACN,YAAYD,KAAAA,CAAMG,GAAG,CAACK,QAAQ,CAAA;IAEtE,MAAMC,YAAAA,GAAeT,MAAMU,0BAA0B,CAACJ,WAAWK,MAAM,EAAEX,KAAAA,CAAMG,GAAG,EAAEN,GAAAA,CAAAA;IAEpFE,MAAAA,CAAOa,KAAK,CAAC,CAAC,sBAAsB,CAAC,EAAEC,EAAAA,CAAGC,GAAG,EAAEL,YAAAA,CAAAA;IAE/C,OAAO;QACLE,MAAAA,EAAQF,YAAAA;QACRX,IAAAA,EAAMG;AACR,KAAA;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inquirer.d.ts","sourceRoot":"","sources":["../../../src/test/mocks/inquirer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inquirer.d.ts","sourceRoot":"","sources":["../../../src/test/mocks/inquirer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,MAAM,0BAAkC,CAAC;;;;AAEtD,wBAEE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strapi/strapi",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.50.0",
|
|
4
4
|
"description": "An open source headless CMS solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier. Databases supported: MySQL, MariaDB, PostgreSQL, SQLite",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"strapi",
|
|
@@ -109,25 +109,25 @@
|
|
|
109
109
|
},
|
|
110
110
|
"dependencies": {
|
|
111
111
|
"@pmmmwh/react-refresh-webpack-plugin": "0.5.17",
|
|
112
|
-
"@strapi/admin": "5.
|
|
113
|
-
"@strapi/cloud-cli": "5.
|
|
114
|
-
"@strapi/content-manager": "5.
|
|
115
|
-
"@strapi/content-releases": "5.
|
|
116
|
-
"@strapi/content-type-builder": "5.
|
|
117
|
-
"@strapi/core": "5.
|
|
118
|
-
"@strapi/data-transfer": "5.
|
|
119
|
-
"@strapi/database": "5.
|
|
120
|
-
"@strapi/email": "5.
|
|
121
|
-
"@strapi/generators": "5.
|
|
122
|
-
"@strapi/i18n": "5.
|
|
123
|
-
"@strapi/logger": "5.
|
|
124
|
-
"@strapi/openapi": "5.
|
|
125
|
-
"@strapi/permissions": "5.
|
|
126
|
-
"@strapi/review-workflows": "5.
|
|
127
|
-
"@strapi/types": "5.
|
|
128
|
-
"@strapi/typescript-utils": "5.
|
|
129
|
-
"@strapi/upload": "5.
|
|
130
|
-
"@strapi/utils": "5.
|
|
112
|
+
"@strapi/admin": "5.50.0",
|
|
113
|
+
"@strapi/cloud-cli": "5.50.0",
|
|
114
|
+
"@strapi/content-manager": "5.50.0",
|
|
115
|
+
"@strapi/content-releases": "5.50.0",
|
|
116
|
+
"@strapi/content-type-builder": "5.50.0",
|
|
117
|
+
"@strapi/core": "5.50.0",
|
|
118
|
+
"@strapi/data-transfer": "5.50.0",
|
|
119
|
+
"@strapi/database": "5.50.0",
|
|
120
|
+
"@strapi/email": "5.50.0",
|
|
121
|
+
"@strapi/generators": "5.50.0",
|
|
122
|
+
"@strapi/i18n": "5.50.0",
|
|
123
|
+
"@strapi/logger": "5.50.0",
|
|
124
|
+
"@strapi/openapi": "5.50.0",
|
|
125
|
+
"@strapi/permissions": "5.50.0",
|
|
126
|
+
"@strapi/review-workflows": "5.50.0",
|
|
127
|
+
"@strapi/types": "5.50.0",
|
|
128
|
+
"@strapi/typescript-utils": "5.50.0",
|
|
129
|
+
"@strapi/upload": "5.50.0",
|
|
130
|
+
"@strapi/utils": "5.50.0",
|
|
131
131
|
"@types/nodemon": "1.19.6",
|
|
132
132
|
"@vitejs/plugin-react-swc": "3.11.0",
|
|
133
133
|
"boxen": "5.1.2",
|
|
@@ -163,7 +163,7 @@
|
|
|
163
163
|
"resolve-from": "5.0.0",
|
|
164
164
|
"semver": "7.7.4",
|
|
165
165
|
"style-loader": "3.3.4",
|
|
166
|
-
"typescript": "5.
|
|
166
|
+
"typescript": "5.9.3",
|
|
167
167
|
"vite": "5.4.21",
|
|
168
168
|
"webpack": "5.106.2",
|
|
169
169
|
"webpack-bundle-analyzer": "5.3.0",
|
|
@@ -172,19 +172,18 @@
|
|
|
172
172
|
"yup": "0.32.9"
|
|
173
173
|
},
|
|
174
174
|
"devDependencies": {
|
|
175
|
-
"@strapi/ts-zen": "^0.2.0",
|
|
176
175
|
"@types/fs-extra": "11.0.4",
|
|
177
176
|
"@types/inquirer": "9.0.9",
|
|
178
177
|
"@types/jest": "29.5.2",
|
|
179
178
|
"@types/lodash": "^4.14.191",
|
|
180
|
-
"@types/node": "
|
|
179
|
+
"@types/node": "20.19.41",
|
|
181
180
|
"@types/webpack-bundle-analyzer": "4.7.0",
|
|
182
181
|
"@types/webpack-hot-middleware": "2.25.12",
|
|
183
|
-
"eslint-config-custom": "5.
|
|
182
|
+
"eslint-config-custom": "5.50.0",
|
|
184
183
|
"jest": "29.6.0",
|
|
185
184
|
"react": "18.3.1",
|
|
186
185
|
"react-dom": "18.3.1",
|
|
187
|
-
"tsconfig": "5.
|
|
186
|
+
"tsconfig": "5.50.0",
|
|
188
187
|
"yalc": "1.0.0-pre.53"
|
|
189
188
|
},
|
|
190
189
|
"peerDependencies": {
|