@strapi/strapi 5.4.1 → 5.5.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-test.js +4 -5
- package/dist/admin-test.js.map +1 -1
- package/dist/admin.js +4 -5
- package/dist/admin.js.map +1 -1
- package/dist/admin.mjs.map +1 -1
- package/dist/cli/commands/admin/create-user.js.map +1 -1
- package/dist/cli/commands/admin/create-user.mjs.map +1 -1
- package/dist/cli/commands/admin/reset-user-password.js.map +1 -1
- package/dist/cli/commands/admin/reset-user-password.mjs.map +1 -1
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/build.mjs.map +1 -1
- package/dist/cli/commands/components/list.js.map +1 -1
- package/dist/cli/commands/components/list.mjs.map +1 -1
- package/dist/cli/commands/configuration/dump.js.map +1 -1
- package/dist/cli/commands/configuration/dump.mjs.map +1 -1
- package/dist/cli/commands/configuration/restore.js +1 -2
- package/dist/cli/commands/configuration/restore.js.map +1 -1
- package/dist/cli/commands/configuration/restore.mjs +1 -2
- package/dist/cli/commands/configuration/restore.mjs.map +1 -1
- package/dist/cli/commands/console.js.map +1 -1
- package/dist/cli/commands/console.mjs.map +1 -1
- package/dist/cli/commands/content-types/list.js.map +1 -1
- package/dist/cli/commands/content-types/list.mjs.map +1 -1
- package/dist/cli/commands/controllers/list.js.map +1 -1
- package/dist/cli/commands/controllers/list.mjs.map +1 -1
- package/dist/cli/commands/develop.js.map +1 -1
- package/dist/cli/commands/develop.mjs.map +1 -1
- package/dist/cli/commands/export/action.d.ts +1 -0
- package/dist/cli/commands/export/action.d.ts.map +1 -1
- package/dist/cli/commands/export/action.js +1 -1
- package/dist/cli/commands/export/action.js.map +1 -1
- package/dist/cli/commands/export/action.mjs +1 -1
- package/dist/cli/commands/export/action.mjs.map +1 -1
- package/dist/cli/commands/export/command.d.ts.map +1 -1
- package/dist/cli/commands/export/command.js +1 -1
- package/dist/cli/commands/export/command.js.map +1 -1
- package/dist/cli/commands/export/command.mjs +1 -1
- package/dist/cli/commands/export/command.mjs.map +1 -1
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/hooks/list.js.map +1 -1
- package/dist/cli/commands/hooks/list.mjs.map +1 -1
- package/dist/cli/commands/import/action.d.ts +1 -0
- package/dist/cli/commands/import/action.d.ts.map +1 -1
- package/dist/cli/commands/import/action.js +1 -1
- package/dist/cli/commands/import/action.js.map +1 -1
- package/dist/cli/commands/import/action.mjs +1 -1
- package/dist/cli/commands/import/action.mjs.map +1 -1
- package/dist/cli/commands/import/command.d.ts.map +1 -1
- package/dist/cli/commands/import/command.js +1 -1
- package/dist/cli/commands/import/command.js.map +1 -1
- package/dist/cli/commands/import/command.mjs +1 -1
- package/dist/cli/commands/import/command.mjs.map +1 -1
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/middlewares/list.js.map +1 -1
- package/dist/cli/commands/middlewares/list.mjs.map +1 -1
- package/dist/cli/commands/policies/list.js.map +1 -1
- package/dist/cli/commands/policies/list.mjs.map +1 -1
- package/dist/cli/commands/report.js.map +1 -1
- package/dist/cli/commands/report.mjs.map +1 -1
- package/dist/cli/commands/routes/list.js.map +1 -1
- package/dist/cli/commands/routes/list.mjs.map +1 -1
- package/dist/cli/commands/services/list.js.map +1 -1
- package/dist/cli/commands/services/list.mjs.map +1 -1
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/start.mjs.map +1 -1
- package/dist/cli/commands/telemetry/disable.js.map +1 -1
- package/dist/cli/commands/telemetry/disable.mjs.map +1 -1
- package/dist/cli/commands/telemetry/enable.js.map +1 -1
- package/dist/cli/commands/telemetry/enable.mjs.map +1 -1
- package/dist/cli/commands/transfer/action.d.ts +1 -0
- package/dist/cli/commands/transfer/action.d.ts.map +1 -1
- package/dist/cli/commands/transfer/action.js +1 -1
- package/dist/cli/commands/transfer/action.js.map +1 -1
- package/dist/cli/commands/transfer/action.mjs +1 -1
- package/dist/cli/commands/transfer/action.mjs.map +1 -1
- package/dist/cli/commands/transfer/command.d.ts.map +1 -1
- package/dist/cli/commands/transfer/command.js +1 -1
- package/dist/cli/commands/transfer/command.js.map +1 -1
- package/dist/cli/commands/transfer/command.mjs +1 -1
- package/dist/cli/commands/transfer/command.mjs.map +1 -1
- package/dist/cli/commands/ts/generate-types.js.map +1 -1
- package/dist/cli/commands/ts/generate-types.mjs.map +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/index.mjs.map +1 -1
- package/dist/cli/utils/commander.js +1 -2
- package/dist/cli/utils/commander.js.map +1 -1
- package/dist/cli/utils/commander.mjs +1 -2
- package/dist/cli/utils/commander.mjs.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/data-transfer.js +8 -5
- package/dist/cli/utils/data-transfer.js.map +1 -1
- package/dist/cli/utils/data-transfer.mjs +9 -6
- package/dist/cli/utils/data-transfer.mjs.map +1 -1
- package/dist/cli/utils/helpers.js.map +1 -1
- package/dist/cli/utils/helpers.mjs.map +1 -1
- package/dist/cli/utils/logger.js +1 -2
- package/dist/cli/utils/logger.js.map +1 -1
- package/dist/cli/utils/logger.mjs.map +1 -1
- package/dist/cli/utils/telemetry.js.map +1 -1
- package/dist/cli/utils/telemetry.mjs.map +1 -1
- package/dist/cli/utils/tsconfig.js.map +1 -1
- package/dist/cli/utils/tsconfig.mjs.map +1 -1
- package/dist/index.js +4 -5
- package/dist/index.js.map +1 -1
- package/dist/node/build.js +1 -2
- package/dist/node/build.js.map +1 -1
- package/dist/node/build.mjs.map +1 -1
- package/dist/node/core/admin-customisations.js.map +1 -1
- package/dist/node/core/admin-customisations.mjs.map +1 -1
- package/dist/node/core/aliases.js.map +1 -1
- package/dist/node/core/aliases.mjs.map +1 -1
- package/dist/node/core/config.js.map +1 -1
- package/dist/node/core/config.mjs.map +1 -1
- package/dist/node/core/dependencies.js.map +1 -1
- package/dist/node/core/dependencies.mjs.map +1 -1
- package/dist/node/core/env.js.map +1 -1
- package/dist/node/core/env.mjs.map +1 -1
- package/dist/node/core/errors.js.map +1 -1
- package/dist/node/core/errors.mjs.map +1 -1
- package/dist/node/core/files.js.map +1 -1
- package/dist/node/core/files.mjs.map +1 -1
- package/dist/node/core/managers.js.map +1 -1
- package/dist/node/core/managers.mjs.map +1 -1
- package/dist/node/core/monorepo.js.map +1 -1
- package/dist/node/core/monorepo.mjs.map +1 -1
- package/dist/node/core/plugins.js.map +1 -1
- package/dist/node/core/plugins.mjs.map +1 -1
- package/dist/node/core/timer.js.map +1 -1
- package/dist/node/core/timer.mjs.map +1 -1
- package/dist/node/create-build-context.js.map +1 -1
- package/dist/node/create-build-context.mjs.map +1 -1
- package/dist/node/develop.js +1 -2
- package/dist/node/develop.js.map +1 -1
- package/dist/node/develop.mjs.map +1 -1
- package/dist/node/staticFiles.js.map +1 -1
- package/dist/node/staticFiles.mjs.map +1 -1
- package/dist/node/vite/build.js.map +1 -1
- package/dist/node/vite/build.mjs.map +1 -1
- package/dist/node/vite/config.js.map +1 -1
- package/dist/node/vite/config.mjs.map +1 -1
- package/dist/node/vite/plugins.js.map +1 -1
- package/dist/node/vite/plugins.mjs.map +1 -1
- package/dist/node/vite/watch.js.map +1 -1
- package/dist/node/vite/watch.mjs.map +1 -1
- package/dist/node/webpack/build.js.map +1 -1
- package/dist/node/webpack/build.mjs.map +1 -1
- package/dist/node/webpack/config.js.map +1 -1
- package/dist/node/webpack/config.mjs.map +1 -1
- package/dist/node/webpack/watch.js +2 -4
- package/dist/node/webpack/watch.js.map +1 -1
- package/dist/node/webpack/watch.mjs +2 -4
- package/dist/node/webpack/watch.mjs.map +1 -1
- package/package.json +23 -23
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.mjs","sources":["../../../src/cli/commands/start.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport fs from 'fs';\nimport tsUtils from '@strapi/typescript-utils';\nimport { createStrapi } from '@strapi/core';\n\nimport type { StrapiCommand } from '../types';\nimport { runAction } from '../utils/helpers';\n\nconst action = async () => {\n const appDir = process.cwd();\n\n const isTSProject = await tsUtils.isUsingTypeScript(appDir);\n\n const outDir = await tsUtils.resolveOutDir(appDir);\n const distDir = isTSProject ? outDir : appDir;\n\n const buildDirExists = fs.existsSync(outDir);\n if (isTSProject && !buildDirExists)\n throw new Error(\n `${outDir} directory not found. Please run the build command before starting your application`\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":["tsUtils"],"mappings":";;;;;AAQA,MAAM,SAAS,YAAY;AACnB,QAAA,SAAS,QAAQ;
|
|
1
|
+
{"version":3,"file":"start.mjs","sources":["../../../src/cli/commands/start.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport fs from 'fs';\nimport tsUtils from '@strapi/typescript-utils';\nimport { createStrapi } from '@strapi/core';\n\nimport type { StrapiCommand } from '../types';\nimport { runAction } from '../utils/helpers';\n\nconst action = async () => {\n const appDir = process.cwd();\n\n const isTSProject = await tsUtils.isUsingTypeScript(appDir);\n\n const outDir = await tsUtils.resolveOutDir(appDir);\n const distDir = isTSProject ? outDir : appDir;\n\n const buildDirExists = fs.existsSync(outDir);\n if (isTSProject && !buildDirExists)\n throw new Error(\n `${outDir} directory not found. Please run the build command before starting your application`\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":["tsUtils"],"mappings":";;;;;AAQA,MAAM,SAAS,YAAY;AACnB,QAAA,SAAS,QAAQ,IAAI;AAE3B,QAAM,cAAc,MAAMA,iBAAQ,kBAAkB,MAAM;AAE1D,QAAM,SAAS,MAAMA,iBAAQ,cAAc,MAAM;AAC3C,QAAA,UAAU,cAAc,SAAS;AAEjC,QAAA,iBAAiB,GAAG,WAAW,MAAM;AAC3C,MAAI,eAAe,CAAC;AAClB,UAAM,IAAI;AAAA,MACR,GAAG,MAAM;AAAA,IACX;AAEF,eAAa,EAAE,QAAQ,QAAS,CAAA,EAAE,MAAM;AAC1C;AAKA,MAAM,UAAyB,MAAM;AAC5B,SAAA,cAAc,OAAO,EACzB,YAAY,+BAA+B,EAC3C,OAAO,UAAU,SAAS,MAAM,CAAC;AACtC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disable.js","sources":["../../../../src/cli/commands/telemetry/disable.ts"],"sourcesContent":["import { resolve } from 'path';\nimport fse from 'fs-extra';\nimport chalk from 'chalk';\nimport { createCommand } from 'commander';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport { sendEvent } from '../../utils/telemetry';\n\nconst readPackageJSON = async (path: string) => {\n try {\n const packageObj = await fse.readJson(path);\n const uuid = packageObj.strapi ? packageObj.strapi.uuid : null;\n\n return { uuid, packageObj };\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${chalk.red('Error')}: ${err.message}`);\n }\n }\n};\n\nconst writePackageJSON = async (path: string, file: object, spacing: number) => {\n try {\n await fse.writeJson(path, file, { spaces: spacing });\n return true;\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${chalk.red('Error')}: ${err.message}`);\n }\n }\n};\n\nconst action = async () => {\n const packageJSONPath = resolve(process.cwd(), 'package.json');\n const exists = await fse.pathExists(packageJSONPath);\n\n if (!exists) {\n console.log(`${chalk.yellow('Warning')}: could not find package.json`);\n process.exit(0);\n }\n\n const { uuid, packageObj } = (await readPackageJSON(packageJSONPath)) ?? {};\n\n if ((packageObj.strapi && packageObj.strapi.telemetryDisabled) || !uuid) {\n console.log(`${chalk.yellow('Warning:')} telemetry is already disabled`);\n process.exit(0);\n }\n\n const updatedPackageJSON = {\n ...packageObj,\n strapi: {\n ...packageObj.strapi,\n telemetryDisabled: true,\n },\n };\n\n const write = await writePackageJSON(packageJSONPath, updatedPackageJSON, 2);\n\n if (!write) {\n console.log(\n `${chalk.yellow(\n 'Warning'\n )}: There has been an error, please set \"telemetryDisabled\": true in the \"strapi\" object of your package.json manually.`\n );\n process.exit(0);\n }\n\n await sendEvent('didOptOutTelemetry', uuid);\n console.log(`${chalk.green('Successfully opted out of Strapi telemetry')}`);\n process.exit(0);\n};\n\n/**\n * `$ strapi telemetry:disable`\n */\nconst command: StrapiCommand = () => {\n return createCommand('telemetry:disable')\n .description('Disable anonymous telemetry and metadata sending to Strapi analytics')\n .action(runAction('telemetry:disable', action));\n};\n\nexport { action, command };\n"],"names":["path","fse","chalk","resolve","sendEvent","createCommand","runAction"],"mappings":";;;;;;;;;;;AASA,MAAM,kBAAkB,OAAOA,UAAiB;AAC1C,MAAA;AACF,UAAM,aAAa,MAAMC,
|
|
1
|
+
{"version":3,"file":"disable.js","sources":["../../../../src/cli/commands/telemetry/disable.ts"],"sourcesContent":["import { resolve } from 'path';\nimport fse from 'fs-extra';\nimport chalk from 'chalk';\nimport { createCommand } from 'commander';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport { sendEvent } from '../../utils/telemetry';\n\nconst readPackageJSON = async (path: string) => {\n try {\n const packageObj = await fse.readJson(path);\n const uuid = packageObj.strapi ? packageObj.strapi.uuid : null;\n\n return { uuid, packageObj };\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${chalk.red('Error')}: ${err.message}`);\n }\n }\n};\n\nconst writePackageJSON = async (path: string, file: object, spacing: number) => {\n try {\n await fse.writeJson(path, file, { spaces: spacing });\n return true;\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${chalk.red('Error')}: ${err.message}`);\n }\n }\n};\n\nconst action = async () => {\n const packageJSONPath = resolve(process.cwd(), 'package.json');\n const exists = await fse.pathExists(packageJSONPath);\n\n if (!exists) {\n console.log(`${chalk.yellow('Warning')}: could not find package.json`);\n process.exit(0);\n }\n\n const { uuid, packageObj } = (await readPackageJSON(packageJSONPath)) ?? {};\n\n if ((packageObj.strapi && packageObj.strapi.telemetryDisabled) || !uuid) {\n console.log(`${chalk.yellow('Warning:')} telemetry is already disabled`);\n process.exit(0);\n }\n\n const updatedPackageJSON = {\n ...packageObj,\n strapi: {\n ...packageObj.strapi,\n telemetryDisabled: true,\n },\n };\n\n const write = await writePackageJSON(packageJSONPath, updatedPackageJSON, 2);\n\n if (!write) {\n console.log(\n `${chalk.yellow(\n 'Warning'\n )}: There has been an error, please set \"telemetryDisabled\": true in the \"strapi\" object of your package.json manually.`\n );\n process.exit(0);\n }\n\n await sendEvent('didOptOutTelemetry', uuid);\n console.log(`${chalk.green('Successfully opted out of Strapi telemetry')}`);\n process.exit(0);\n};\n\n/**\n * `$ strapi telemetry:disable`\n */\nconst command: StrapiCommand = () => {\n return createCommand('telemetry:disable')\n .description('Disable anonymous telemetry and metadata sending to Strapi analytics')\n .action(runAction('telemetry:disable', action));\n};\n\nexport { action, command };\n"],"names":["path","fse","chalk","resolve","sendEvent","createCommand","runAction"],"mappings":";;;;;;;;;;;AASA,MAAM,kBAAkB,OAAOA,UAAiB;AAC1C,MAAA;AACF,UAAM,aAAa,MAAMC,qBAAI,SAASD,KAAI;AAC1C,UAAM,OAAO,WAAW,SAAS,WAAW,OAAO,OAAO;AAEnD,WAAA,EAAE,MAAM,WAAW;AAAA,WACnB,KAAK;AACZ,QAAI,eAAe,OAAO;AAChB,cAAA,MAAM,GAAGE,eAAAA,QAAM,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,EAAE;AAAA,IAAA;AAAA,EACvD;AAEJ;AAEA,MAAM,mBAAmB,OAAOF,OAAc,MAAc,YAAoB;AAC1E,MAAA;AACF,UAAMC,aAAAA,QAAI,UAAUD,OAAM,MAAM,EAAE,QAAQ,SAAS;AAC5C,WAAA;AAAA,WACA,KAAK;AACZ,QAAI,eAAe,OAAO;AAChB,cAAA,MAAM,GAAGE,eAAAA,QAAM,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,EAAE;AAAA,IAAA;AAAA,EACvD;AAEJ;AAEA,MAAM,SAAS,YAAY;AACzB,QAAM,kBAAkBC,KAAA,QAAQ,QAAQ,IAAA,GAAO,cAAc;AAC7D,QAAM,SAAS,MAAMF,qBAAI,WAAW,eAAe;AAEnD,MAAI,CAAC,QAAQ;AACX,YAAQ,IAAI,GAAGC,eAAAA,QAAM,OAAO,SAAS,CAAC,+BAA+B;AACrE,YAAQ,KAAK,CAAC;AAAA,EAAA;AAGV,QAAA,EAAE,MAAM,WAAW,IAAK,MAAM,gBAAgB,eAAe,KAAM,CAAC;AAE1E,MAAK,WAAW,UAAU,WAAW,OAAO,qBAAsB,CAAC,MAAM;AACvE,YAAQ,IAAI,GAAGA,eAAAA,QAAM,OAAO,UAAU,CAAC,gCAAgC;AACvE,YAAQ,KAAK,CAAC;AAAA,EAAA;AAGhB,QAAM,qBAAqB;AAAA,IACzB,GAAG;AAAA,IACH,QAAQ;AAAA,MACN,GAAG,WAAW;AAAA,MACd,mBAAmB;AAAA,IAAA;AAAA,EAEvB;AAEA,QAAM,QAAQ,MAAM,iBAAiB,iBAAiB,oBAAoB,CAAC;AAE3E,MAAI,CAAC,OAAO;AACF,YAAA;AAAA,MACN,GAAGA,eAAM,QAAA;AAAA,QACP;AAAA,MAAA,CACD;AAAA,IACH;AACA,YAAQ,KAAK,CAAC;AAAA,EAAA;AAGV,QAAAE,UAAA,UAAU,sBAAsB,IAAI;AAC1C,UAAQ,IAAI,GAAGF,eAAAA,QAAM,MAAM,4CAA4C,CAAC,EAAE;AAC1E,UAAQ,KAAK,CAAC;AAChB;AAKA,MAAM,UAAyB,MAAM;AAC5B,SAAAG,UAAA,cAAc,mBAAmB,EACrC,YAAY,sEAAsE,EAClF,OAAOC,QAAA,UAAU,qBAAqB,MAAM,CAAC;AAClD;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disable.mjs","sources":["../../../../src/cli/commands/telemetry/disable.ts"],"sourcesContent":["import { resolve } from 'path';\nimport fse from 'fs-extra';\nimport chalk from 'chalk';\nimport { createCommand } from 'commander';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport { sendEvent } from '../../utils/telemetry';\n\nconst readPackageJSON = async (path: string) => {\n try {\n const packageObj = await fse.readJson(path);\n const uuid = packageObj.strapi ? packageObj.strapi.uuid : null;\n\n return { uuid, packageObj };\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${chalk.red('Error')}: ${err.message}`);\n }\n }\n};\n\nconst writePackageJSON = async (path: string, file: object, spacing: number) => {\n try {\n await fse.writeJson(path, file, { spaces: spacing });\n return true;\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${chalk.red('Error')}: ${err.message}`);\n }\n }\n};\n\nconst action = async () => {\n const packageJSONPath = resolve(process.cwd(), 'package.json');\n const exists = await fse.pathExists(packageJSONPath);\n\n if (!exists) {\n console.log(`${chalk.yellow('Warning')}: could not find package.json`);\n process.exit(0);\n }\n\n const { uuid, packageObj } = (await readPackageJSON(packageJSONPath)) ?? {};\n\n if ((packageObj.strapi && packageObj.strapi.telemetryDisabled) || !uuid) {\n console.log(`${chalk.yellow('Warning:')} telemetry is already disabled`);\n process.exit(0);\n }\n\n const updatedPackageJSON = {\n ...packageObj,\n strapi: {\n ...packageObj.strapi,\n telemetryDisabled: true,\n },\n };\n\n const write = await writePackageJSON(packageJSONPath, updatedPackageJSON, 2);\n\n if (!write) {\n console.log(\n `${chalk.yellow(\n 'Warning'\n )}: There has been an error, please set \"telemetryDisabled\": true in the \"strapi\" object of your package.json manually.`\n );\n process.exit(0);\n }\n\n await sendEvent('didOptOutTelemetry', uuid);\n console.log(`${chalk.green('Successfully opted out of Strapi telemetry')}`);\n process.exit(0);\n};\n\n/**\n * `$ strapi telemetry:disable`\n */\nconst command: StrapiCommand = () => {\n return createCommand('telemetry:disable')\n .description('Disable anonymous telemetry and metadata sending to Strapi analytics')\n .action(runAction('telemetry:disable', action));\n};\n\nexport { action, command };\n"],"names":[],"mappings":";;;;;;AASA,MAAM,kBAAkB,OAAO,SAAiB;AAC1C,MAAA;AACF,UAAM,aAAa,MAAM,IAAI,SAAS,IAAI;AAC1C,UAAM,OAAO,WAAW,SAAS,WAAW,OAAO,OAAO;AAEnD,WAAA,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"disable.mjs","sources":["../../../../src/cli/commands/telemetry/disable.ts"],"sourcesContent":["import { resolve } from 'path';\nimport fse from 'fs-extra';\nimport chalk from 'chalk';\nimport { createCommand } from 'commander';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport { sendEvent } from '../../utils/telemetry';\n\nconst readPackageJSON = async (path: string) => {\n try {\n const packageObj = await fse.readJson(path);\n const uuid = packageObj.strapi ? packageObj.strapi.uuid : null;\n\n return { uuid, packageObj };\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${chalk.red('Error')}: ${err.message}`);\n }\n }\n};\n\nconst writePackageJSON = async (path: string, file: object, spacing: number) => {\n try {\n await fse.writeJson(path, file, { spaces: spacing });\n return true;\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${chalk.red('Error')}: ${err.message}`);\n }\n }\n};\n\nconst action = async () => {\n const packageJSONPath = resolve(process.cwd(), 'package.json');\n const exists = await fse.pathExists(packageJSONPath);\n\n if (!exists) {\n console.log(`${chalk.yellow('Warning')}: could not find package.json`);\n process.exit(0);\n }\n\n const { uuid, packageObj } = (await readPackageJSON(packageJSONPath)) ?? {};\n\n if ((packageObj.strapi && packageObj.strapi.telemetryDisabled) || !uuid) {\n console.log(`${chalk.yellow('Warning:')} telemetry is already disabled`);\n process.exit(0);\n }\n\n const updatedPackageJSON = {\n ...packageObj,\n strapi: {\n ...packageObj.strapi,\n telemetryDisabled: true,\n },\n };\n\n const write = await writePackageJSON(packageJSONPath, updatedPackageJSON, 2);\n\n if (!write) {\n console.log(\n `${chalk.yellow(\n 'Warning'\n )}: There has been an error, please set \"telemetryDisabled\": true in the \"strapi\" object of your package.json manually.`\n );\n process.exit(0);\n }\n\n await sendEvent('didOptOutTelemetry', uuid);\n console.log(`${chalk.green('Successfully opted out of Strapi telemetry')}`);\n process.exit(0);\n};\n\n/**\n * `$ strapi telemetry:disable`\n */\nconst command: StrapiCommand = () => {\n return createCommand('telemetry:disable')\n .description('Disable anonymous telemetry and metadata sending to Strapi analytics')\n .action(runAction('telemetry:disable', action));\n};\n\nexport { action, command };\n"],"names":[],"mappings":";;;;;;AASA,MAAM,kBAAkB,OAAO,SAAiB;AAC1C,MAAA;AACF,UAAM,aAAa,MAAM,IAAI,SAAS,IAAI;AAC1C,UAAM,OAAO,WAAW,SAAS,WAAW,OAAO,OAAO;AAEnD,WAAA,EAAE,MAAM,WAAW;AAAA,WACnB,KAAK;AACZ,QAAI,eAAe,OAAO;AAChB,cAAA,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,EAAE;AAAA,IAAA;AAAA,EACvD;AAEJ;AAEA,MAAM,mBAAmB,OAAO,MAAc,MAAc,YAAoB;AAC1E,MAAA;AACF,UAAM,IAAI,UAAU,MAAM,MAAM,EAAE,QAAQ,SAAS;AAC5C,WAAA;AAAA,WACA,KAAK;AACZ,QAAI,eAAe,OAAO;AAChB,cAAA,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,EAAE;AAAA,IAAA;AAAA,EACvD;AAEJ;AAEA,MAAM,SAAS,YAAY;AACzB,QAAM,kBAAkB,QAAQ,QAAQ,IAAA,GAAO,cAAc;AAC7D,QAAM,SAAS,MAAM,IAAI,WAAW,eAAe;AAEnD,MAAI,CAAC,QAAQ;AACX,YAAQ,IAAI,GAAG,MAAM,OAAO,SAAS,CAAC,+BAA+B;AACrE,YAAQ,KAAK,CAAC;AAAA,EAAA;AAGV,QAAA,EAAE,MAAM,WAAW,IAAK,MAAM,gBAAgB,eAAe,KAAM,CAAC;AAE1E,MAAK,WAAW,UAAU,WAAW,OAAO,qBAAsB,CAAC,MAAM;AACvE,YAAQ,IAAI,GAAG,MAAM,OAAO,UAAU,CAAC,gCAAgC;AACvE,YAAQ,KAAK,CAAC;AAAA,EAAA;AAGhB,QAAM,qBAAqB;AAAA,IACzB,GAAG;AAAA,IACH,QAAQ;AAAA,MACN,GAAG,WAAW;AAAA,MACd,mBAAmB;AAAA,IAAA;AAAA,EAEvB;AAEA,QAAM,QAAQ,MAAM,iBAAiB,iBAAiB,oBAAoB,CAAC;AAE3E,MAAI,CAAC,OAAO;AACF,YAAA;AAAA,MACN,GAAG,MAAM;AAAA,QACP;AAAA,MAAA,CACD;AAAA,IACH;AACA,YAAQ,KAAK,CAAC;AAAA,EAAA;AAGV,QAAA,UAAU,sBAAsB,IAAI;AAC1C,UAAQ,IAAI,GAAG,MAAM,MAAM,4CAA4C,CAAC,EAAE;AAC1E,UAAQ,KAAK,CAAC;AAChB;AAKA,MAAM,UAAyB,MAAM;AAC5B,SAAA,cAAc,mBAAmB,EACrC,YAAY,sEAAsE,EAClF,OAAO,UAAU,qBAAqB,MAAM,CAAC;AAClD;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enable.js","sources":["../../../../src/cli/commands/telemetry/enable.ts"],"sourcesContent":["import { resolve } from 'path';\nimport { randomUUID } from 'crypto';\nimport fse from 'fs-extra';\nimport chalk from 'chalk';\nimport { createCommand } from 'commander';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport { sendEvent } from '../../utils/telemetry';\n\ntype PackageJson = {\n strapi?: {\n uuid?: string;\n telemetryDisabled?: boolean;\n };\n};\n\nconst readPackageJSON = async (path: string) => {\n try {\n const packageObj = await fse.readJson(path);\n return packageObj;\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${chalk.red('Error')}: ${err.message}`);\n } else {\n throw err;\n }\n }\n};\n\nconst writePackageJSON = async (path: string, file: object, spacing: number) => {\n try {\n await fse.writeJson(path, file, { spaces: spacing });\n return true;\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${chalk.red('Error')}: ${err.message}`);\n console.log(\n `${chalk.yellow(\n 'Warning'\n )}: There has been an error, please set \"telemetryDisabled\": false in the \"strapi\" object of your package.json manually.`\n );\n\n return false;\n }\n\n throw err;\n }\n};\n\nconst generateNewPackageJSON = (packageObj: PackageJson) => {\n if (!packageObj.strapi) {\n return {\n ...packageObj,\n strapi: {\n uuid: randomUUID(),\n telemetryDisabled: false,\n },\n };\n }\n return {\n ...packageObj,\n strapi: {\n ...packageObj.strapi,\n uuid: packageObj.strapi.uuid ? packageObj.strapi.uuid : randomUUID(),\n telemetryDisabled: false,\n },\n };\n};\n\nconst action = async () => {\n const packageJSONPath = resolve(process.cwd(), 'package.json');\n const exists = await fse.pathExists(packageJSONPath);\n\n if (!exists) {\n console.log(`${chalk.yellow('Warning')}: could not find package.json`);\n process.exit(0);\n }\n\n const packageObj = await readPackageJSON(packageJSONPath);\n\n if (packageObj.strapi && packageObj.strapi.uuid) {\n if (packageObj.strapi.telemetryDisabled === false) {\n console.log(`${chalk.yellow('Warning:')} telemetry is already enabled`);\n process.exit(0);\n }\n }\n\n const updatedPackageJSON = generateNewPackageJSON(packageObj);\n\n const write = await writePackageJSON(packageJSONPath, updatedPackageJSON, 2);\n\n if (!write) {\n process.exit(0);\n }\n\n await sendEvent('didOptInTelemetry', updatedPackageJSON.strapi.uuid);\n console.log(`${chalk.green('Successfully opted into and enabled Strapi telemetry')}`);\n process.exit(0);\n};\n\n/**\n * `$ strapi telemetry:enable`\n */\nconst command: StrapiCommand = () => {\n return createCommand('telemetry:enable')\n .description('Enable anonymous telemetry and metadata sending to Strapi analytics')\n .action(runAction('telemetry:enable', action));\n};\n\nexport { action, command };\n"],"names":["path","fse","chalk","randomUUID","resolve","sendEvent","createCommand","runAction"],"mappings":";;;;;;;;;;;;AAiBA,MAAM,kBAAkB,OAAOA,UAAiB;AAC1C,MAAA;AACF,UAAM,aAAa,MAAMC,
|
|
1
|
+
{"version":3,"file":"enable.js","sources":["../../../../src/cli/commands/telemetry/enable.ts"],"sourcesContent":["import { resolve } from 'path';\nimport { randomUUID } from 'crypto';\nimport fse from 'fs-extra';\nimport chalk from 'chalk';\nimport { createCommand } from 'commander';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport { sendEvent } from '../../utils/telemetry';\n\ntype PackageJson = {\n strapi?: {\n uuid?: string;\n telemetryDisabled?: boolean;\n };\n};\n\nconst readPackageJSON = async (path: string) => {\n try {\n const packageObj = await fse.readJson(path);\n return packageObj;\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${chalk.red('Error')}: ${err.message}`);\n } else {\n throw err;\n }\n }\n};\n\nconst writePackageJSON = async (path: string, file: object, spacing: number) => {\n try {\n await fse.writeJson(path, file, { spaces: spacing });\n return true;\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${chalk.red('Error')}: ${err.message}`);\n console.log(\n `${chalk.yellow(\n 'Warning'\n )}: There has been an error, please set \"telemetryDisabled\": false in the \"strapi\" object of your package.json manually.`\n );\n\n return false;\n }\n\n throw err;\n }\n};\n\nconst generateNewPackageJSON = (packageObj: PackageJson) => {\n if (!packageObj.strapi) {\n return {\n ...packageObj,\n strapi: {\n uuid: randomUUID(),\n telemetryDisabled: false,\n },\n };\n }\n return {\n ...packageObj,\n strapi: {\n ...packageObj.strapi,\n uuid: packageObj.strapi.uuid ? packageObj.strapi.uuid : randomUUID(),\n telemetryDisabled: false,\n },\n };\n};\n\nconst action = async () => {\n const packageJSONPath = resolve(process.cwd(), 'package.json');\n const exists = await fse.pathExists(packageJSONPath);\n\n if (!exists) {\n console.log(`${chalk.yellow('Warning')}: could not find package.json`);\n process.exit(0);\n }\n\n const packageObj = await readPackageJSON(packageJSONPath);\n\n if (packageObj.strapi && packageObj.strapi.uuid) {\n if (packageObj.strapi.telemetryDisabled === false) {\n console.log(`${chalk.yellow('Warning:')} telemetry is already enabled`);\n process.exit(0);\n }\n }\n\n const updatedPackageJSON = generateNewPackageJSON(packageObj);\n\n const write = await writePackageJSON(packageJSONPath, updatedPackageJSON, 2);\n\n if (!write) {\n process.exit(0);\n }\n\n await sendEvent('didOptInTelemetry', updatedPackageJSON.strapi.uuid);\n console.log(`${chalk.green('Successfully opted into and enabled Strapi telemetry')}`);\n process.exit(0);\n};\n\n/**\n * `$ strapi telemetry:enable`\n */\nconst command: StrapiCommand = () => {\n return createCommand('telemetry:enable')\n .description('Enable anonymous telemetry and metadata sending to Strapi analytics')\n .action(runAction('telemetry:enable', action));\n};\n\nexport { action, command };\n"],"names":["path","fse","chalk","randomUUID","resolve","sendEvent","createCommand","runAction"],"mappings":";;;;;;;;;;;;AAiBA,MAAM,kBAAkB,OAAOA,UAAiB;AAC1C,MAAA;AACF,UAAM,aAAa,MAAMC,qBAAI,SAASD,KAAI;AACnC,WAAA;AAAA,WACA,KAAK;AACZ,QAAI,eAAe,OAAO;AAChB,cAAA,MAAM,GAAGE,eAAAA,QAAM,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,EAAE;AAAA,IAAA,OAChD;AACC,YAAA;AAAA,IAAA;AAAA,EACR;AAEJ;AAEA,MAAM,mBAAmB,OAAOF,OAAc,MAAc,YAAoB;AAC1E,MAAA;AACF,UAAMC,aAAAA,QAAI,UAAUD,OAAM,MAAM,EAAE,QAAQ,SAAS;AAC5C,WAAA;AAAA,WACA,KAAK;AACZ,QAAI,eAAe,OAAO;AAChB,cAAA,MAAM,GAAGE,eAAAA,QAAM,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,EAAE;AAC7C,cAAA;AAAA,QACN,GAAGA,eAAM,QAAA;AAAA,UACP;AAAA,QAAA,CACD;AAAA,MACH;AAEO,aAAA;AAAA,IAAA;AAGH,UAAA;AAAA,EAAA;AAEV;AAEA,MAAM,yBAAyB,CAAC,eAA4B;AACtD,MAAA,CAAC,WAAW,QAAQ;AACf,WAAA;AAAA,MACL,GAAG;AAAA,MACH,QAAQ;AAAA,QACN,MAAMC,OAAAA,WAAW;AAAA,QACjB,mBAAmB;AAAA,MAAA;AAAA,IAEvB;AAAA,EAAA;AAEK,SAAA;AAAA,IACL,GAAG;AAAA,IACH,QAAQ;AAAA,MACN,GAAG,WAAW;AAAA,MACd,MAAM,WAAW,OAAO,OAAO,WAAW,OAAO,OAAOA,kBAAW;AAAA,MACnE,mBAAmB;AAAA,IAAA;AAAA,EAEvB;AACF;AAEA,MAAM,SAAS,YAAY;AACzB,QAAM,kBAAkBC,KAAA,QAAQ,QAAQ,IAAA,GAAO,cAAc;AAC7D,QAAM,SAAS,MAAMH,qBAAI,WAAW,eAAe;AAEnD,MAAI,CAAC,QAAQ;AACX,YAAQ,IAAI,GAAGC,eAAAA,QAAM,OAAO,SAAS,CAAC,+BAA+B;AACrE,YAAQ,KAAK,CAAC;AAAA,EAAA;AAGV,QAAA,aAAa,MAAM,gBAAgB,eAAe;AAExD,MAAI,WAAW,UAAU,WAAW,OAAO,MAAM;AAC3C,QAAA,WAAW,OAAO,sBAAsB,OAAO;AACjD,cAAQ,IAAI,GAAGA,eAAAA,QAAM,OAAO,UAAU,CAAC,+BAA+B;AACtE,cAAQ,KAAK,CAAC;AAAA,IAAA;AAAA,EAChB;AAGI,QAAA,qBAAqB,uBAAuB,UAAU;AAE5D,QAAM,QAAQ,MAAM,iBAAiB,iBAAiB,oBAAoB,CAAC;AAE3E,MAAI,CAAC,OAAO;AACV,YAAQ,KAAK,CAAC;AAAA,EAAA;AAGhB,QAAMG,UAAU,UAAA,qBAAqB,mBAAmB,OAAO,IAAI;AACnE,UAAQ,IAAI,GAAGH,eAAAA,QAAM,MAAM,sDAAsD,CAAC,EAAE;AACpF,UAAQ,KAAK,CAAC;AAChB;AAKA,MAAM,UAAyB,MAAM;AAC5B,SAAAI,UAAA,cAAc,kBAAkB,EACpC,YAAY,qEAAqE,EACjF,OAAOC,QAAA,UAAU,oBAAoB,MAAM,CAAC;AACjD;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enable.mjs","sources":["../../../../src/cli/commands/telemetry/enable.ts"],"sourcesContent":["import { resolve } from 'path';\nimport { randomUUID } from 'crypto';\nimport fse from 'fs-extra';\nimport chalk from 'chalk';\nimport { createCommand } from 'commander';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport { sendEvent } from '../../utils/telemetry';\n\ntype PackageJson = {\n strapi?: {\n uuid?: string;\n telemetryDisabled?: boolean;\n };\n};\n\nconst readPackageJSON = async (path: string) => {\n try {\n const packageObj = await fse.readJson(path);\n return packageObj;\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${chalk.red('Error')}: ${err.message}`);\n } else {\n throw err;\n }\n }\n};\n\nconst writePackageJSON = async (path: string, file: object, spacing: number) => {\n try {\n await fse.writeJson(path, file, { spaces: spacing });\n return true;\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${chalk.red('Error')}: ${err.message}`);\n console.log(\n `${chalk.yellow(\n 'Warning'\n )}: There has been an error, please set \"telemetryDisabled\": false in the \"strapi\" object of your package.json manually.`\n );\n\n return false;\n }\n\n throw err;\n }\n};\n\nconst generateNewPackageJSON = (packageObj: PackageJson) => {\n if (!packageObj.strapi) {\n return {\n ...packageObj,\n strapi: {\n uuid: randomUUID(),\n telemetryDisabled: false,\n },\n };\n }\n return {\n ...packageObj,\n strapi: {\n ...packageObj.strapi,\n uuid: packageObj.strapi.uuid ? packageObj.strapi.uuid : randomUUID(),\n telemetryDisabled: false,\n },\n };\n};\n\nconst action = async () => {\n const packageJSONPath = resolve(process.cwd(), 'package.json');\n const exists = await fse.pathExists(packageJSONPath);\n\n if (!exists) {\n console.log(`${chalk.yellow('Warning')}: could not find package.json`);\n process.exit(0);\n }\n\n const packageObj = await readPackageJSON(packageJSONPath);\n\n if (packageObj.strapi && packageObj.strapi.uuid) {\n if (packageObj.strapi.telemetryDisabled === false) {\n console.log(`${chalk.yellow('Warning:')} telemetry is already enabled`);\n process.exit(0);\n }\n }\n\n const updatedPackageJSON = generateNewPackageJSON(packageObj);\n\n const write = await writePackageJSON(packageJSONPath, updatedPackageJSON, 2);\n\n if (!write) {\n process.exit(0);\n }\n\n await sendEvent('didOptInTelemetry', updatedPackageJSON.strapi.uuid);\n console.log(`${chalk.green('Successfully opted into and enabled Strapi telemetry')}`);\n process.exit(0);\n};\n\n/**\n * `$ strapi telemetry:enable`\n */\nconst command: StrapiCommand = () => {\n return createCommand('telemetry:enable')\n .description('Enable anonymous telemetry and metadata sending to Strapi analytics')\n .action(runAction('telemetry:enable', action));\n};\n\nexport { action, command };\n"],"names":[],"mappings":";;;;;;;AAiBA,MAAM,kBAAkB,OAAO,SAAiB;AAC1C,MAAA;AACF,UAAM,aAAa,MAAM,IAAI,SAAS,IAAI;AACnC,WAAA;AAAA,WACA,KAAK;AACZ,QAAI,eAAe,OAAO;AAChB,cAAA,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,EAAE;AAAA,IAAA,OAChD;AACC,YAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"enable.mjs","sources":["../../../../src/cli/commands/telemetry/enable.ts"],"sourcesContent":["import { resolve } from 'path';\nimport { randomUUID } from 'crypto';\nimport fse from 'fs-extra';\nimport chalk from 'chalk';\nimport { createCommand } from 'commander';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport { sendEvent } from '../../utils/telemetry';\n\ntype PackageJson = {\n strapi?: {\n uuid?: string;\n telemetryDisabled?: boolean;\n };\n};\n\nconst readPackageJSON = async (path: string) => {\n try {\n const packageObj = await fse.readJson(path);\n return packageObj;\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${chalk.red('Error')}: ${err.message}`);\n } else {\n throw err;\n }\n }\n};\n\nconst writePackageJSON = async (path: string, file: object, spacing: number) => {\n try {\n await fse.writeJson(path, file, { spaces: spacing });\n return true;\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${chalk.red('Error')}: ${err.message}`);\n console.log(\n `${chalk.yellow(\n 'Warning'\n )}: There has been an error, please set \"telemetryDisabled\": false in the \"strapi\" object of your package.json manually.`\n );\n\n return false;\n }\n\n throw err;\n }\n};\n\nconst generateNewPackageJSON = (packageObj: PackageJson) => {\n if (!packageObj.strapi) {\n return {\n ...packageObj,\n strapi: {\n uuid: randomUUID(),\n telemetryDisabled: false,\n },\n };\n }\n return {\n ...packageObj,\n strapi: {\n ...packageObj.strapi,\n uuid: packageObj.strapi.uuid ? packageObj.strapi.uuid : randomUUID(),\n telemetryDisabled: false,\n },\n };\n};\n\nconst action = async () => {\n const packageJSONPath = resolve(process.cwd(), 'package.json');\n const exists = await fse.pathExists(packageJSONPath);\n\n if (!exists) {\n console.log(`${chalk.yellow('Warning')}: could not find package.json`);\n process.exit(0);\n }\n\n const packageObj = await readPackageJSON(packageJSONPath);\n\n if (packageObj.strapi && packageObj.strapi.uuid) {\n if (packageObj.strapi.telemetryDisabled === false) {\n console.log(`${chalk.yellow('Warning:')} telemetry is already enabled`);\n process.exit(0);\n }\n }\n\n const updatedPackageJSON = generateNewPackageJSON(packageObj);\n\n const write = await writePackageJSON(packageJSONPath, updatedPackageJSON, 2);\n\n if (!write) {\n process.exit(0);\n }\n\n await sendEvent('didOptInTelemetry', updatedPackageJSON.strapi.uuid);\n console.log(`${chalk.green('Successfully opted into and enabled Strapi telemetry')}`);\n process.exit(0);\n};\n\n/**\n * `$ strapi telemetry:enable`\n */\nconst command: StrapiCommand = () => {\n return createCommand('telemetry:enable')\n .description('Enable anonymous telemetry and metadata sending to Strapi analytics')\n .action(runAction('telemetry:enable', action));\n};\n\nexport { action, command };\n"],"names":[],"mappings":";;;;;;;AAiBA,MAAM,kBAAkB,OAAO,SAAiB;AAC1C,MAAA;AACF,UAAM,aAAa,MAAM,IAAI,SAAS,IAAI;AACnC,WAAA;AAAA,WACA,KAAK;AACZ,QAAI,eAAe,OAAO;AAChB,cAAA,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,EAAE;AAAA,IAAA,OAChD;AACC,YAAA;AAAA,IAAA;AAAA,EACR;AAEJ;AAEA,MAAM,mBAAmB,OAAO,MAAc,MAAc,YAAoB;AAC1E,MAAA;AACF,UAAM,IAAI,UAAU,MAAM,MAAM,EAAE,QAAQ,SAAS;AAC5C,WAAA;AAAA,WACA,KAAK;AACZ,QAAI,eAAe,OAAO;AAChB,cAAA,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,EAAE;AAC7C,cAAA;AAAA,QACN,GAAG,MAAM;AAAA,UACP;AAAA,QAAA,CACD;AAAA,MACH;AAEO,aAAA;AAAA,IAAA;AAGH,UAAA;AAAA,EAAA;AAEV;AAEA,MAAM,yBAAyB,CAAC,eAA4B;AACtD,MAAA,CAAC,WAAW,QAAQ;AACf,WAAA;AAAA,MACL,GAAG;AAAA,MACH,QAAQ;AAAA,QACN,MAAM,WAAW;AAAA,QACjB,mBAAmB;AAAA,MAAA;AAAA,IAEvB;AAAA,EAAA;AAEK,SAAA;AAAA,IACL,GAAG;AAAA,IACH,QAAQ;AAAA,MACN,GAAG,WAAW;AAAA,MACd,MAAM,WAAW,OAAO,OAAO,WAAW,OAAO,OAAO,WAAW;AAAA,MACnE,mBAAmB;AAAA,IAAA;AAAA,EAEvB;AACF;AAEA,MAAM,SAAS,YAAY;AACzB,QAAM,kBAAkB,QAAQ,QAAQ,IAAA,GAAO,cAAc;AAC7D,QAAM,SAAS,MAAM,IAAI,WAAW,eAAe;AAEnD,MAAI,CAAC,QAAQ;AACX,YAAQ,IAAI,GAAG,MAAM,OAAO,SAAS,CAAC,+BAA+B;AACrE,YAAQ,KAAK,CAAC;AAAA,EAAA;AAGV,QAAA,aAAa,MAAM,gBAAgB,eAAe;AAExD,MAAI,WAAW,UAAU,WAAW,OAAO,MAAM;AAC3C,QAAA,WAAW,OAAO,sBAAsB,OAAO;AACjD,cAAQ,IAAI,GAAG,MAAM,OAAO,UAAU,CAAC,+BAA+B;AACtE,cAAQ,KAAK,CAAC;AAAA,IAAA;AAAA,EAChB;AAGI,QAAA,qBAAqB,uBAAuB,UAAU;AAE5D,QAAM,QAAQ,MAAM,iBAAiB,iBAAiB,oBAAoB,CAAC;AAE3E,MAAI,CAAC,OAAO;AACV,YAAQ,KAAK,CAAC;AAAA,EAAA;AAGhB,QAAM,UAAU,qBAAqB,mBAAmB,OAAO,IAAI;AACnE,UAAQ,IAAI,GAAG,MAAM,MAAM,sDAAsD,CAAC,EAAE;AACpF,UAAQ,KAAK,CAAC;AAChB;AAKA,MAAM,UAAyB,MAAM;AAC5B,SAAA,cAAc,kBAAkB,EACpC,YAAY,qEAAqE,EACjF,OAAO,UAAU,oBAAoB,MAAM,CAAC;AACjD;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/transfer/action.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,kBAAkB,EAAgC,MAAM,uBAAuB,CAAC;AA4BnG,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,GAAG,CAAC;IACR,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,CAAC,MAAM,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACxD,OAAO,CAAC,EAAE,CAAC,MAAM,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,CAAC;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AACD;;;;GAIG;+BACyB,UAAU;AAAtC,wBAqJE"}
|
|
1
|
+
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/transfer/action.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,kBAAkB,EAAgC,MAAM,uBAAuB,CAAC;AA4BnG,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,GAAG,CAAC;IACR,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,CAAC,MAAM,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACxD,OAAO,CAAC,EAAE,CAAC,MAAM,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,CAAC;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AACD;;;;GAIG;+BACyB,UAAU;AAAtC,wBAqJE"}
|
|
@@ -85,7 +85,7 @@ const action = async (opts) => {
|
|
|
85
85
|
]
|
|
86
86
|
}
|
|
87
87
|
});
|
|
88
|
-
engine.diagnostics.onDiagnostic(dataTransfer.formatDiagnostic("transfer"));
|
|
88
|
+
engine.diagnostics.onDiagnostic(dataTransfer.formatDiagnostic("transfer", opts.verbose));
|
|
89
89
|
const progress = engine.progress.stream;
|
|
90
90
|
const { updateLoader } = dataTransfer.loadersFactory();
|
|
91
91
|
engine.onSchemaDiff(dataTransfer.getDiffHandler(engine, { force: opts.force, action: "transfer" }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.js","sources":["../../../../src/cli/commands/transfer/action.ts"],"sourcesContent":["import { isObject } from 'lodash/fp';\nimport { engine as engineDataTransfer, strapi as strapiDataTransfer } from '@strapi/data-transfer';\n\nimport {\n buildTransferTable,\n createStrapiInstance,\n DEFAULT_IGNORED_CONTENT_TYPES,\n formatDiagnostic,\n loadersFactory,\n exitMessageText,\n abortTransfer,\n getTransferTelemetryPayload,\n setSignalHandler,\n getDiffHandler,\n getAssetsBackupHandler,\n parseRestoreFromOptions,\n} from '../../utils/data-transfer';\nimport { exitWith } from '../../utils/helpers';\n\nconst { createTransferEngine } = engineDataTransfer;\nconst {\n providers: {\n createRemoteStrapiDestinationProvider,\n createLocalStrapiSourceProvider,\n createLocalStrapiDestinationProvider,\n createRemoteStrapiSourceProvider,\n },\n} = strapiDataTransfer;\n\ninterface CmdOptions {\n from?: URL;\n fromToken: string;\n to: URL;\n toToken: string;\n only?: (keyof engineDataTransfer.TransferGroupFilter)[];\n exclude?: (keyof engineDataTransfer.TransferGroupFilter)[];\n throttle?: number;\n force?: boolean;\n}\n/**\n * Transfer command.\n *\n * Transfers data between local Strapi and remote Strapi instances\n */\nexport default async (opts: CmdOptions) => {\n // Validate inputs from Commander\n if (!isObject(opts)) {\n exitWith(1, 'Could not parse command arguments');\n }\n\n if (!(opts.from || opts.to) || (opts.from && opts.to)) {\n exitWith(1, 'Exactly one source (from) or destination (to) option must be provided');\n }\n\n const strapi = await createStrapiInstance();\n let source;\n let destination;\n\n // if no URL provided, use local Strapi\n if (!opts.from) {\n source = createLocalStrapiSourceProvider({\n getStrapi: () => strapi,\n });\n }\n // if URL provided, set up a remote source provider\n else {\n if (!opts.fromToken) {\n exitWith(1, 'Missing token for remote destination');\n }\n\n source = createRemoteStrapiSourceProvider({\n getStrapi: () => strapi,\n url: opts.from,\n auth: {\n type: 'token',\n token: opts.fromToken,\n },\n });\n }\n\n // if no URL provided, use local Strapi\n if (!opts.to) {\n destination = createLocalStrapiDestinationProvider({\n getStrapi: () => strapi,\n strategy: 'restore',\n restore: parseRestoreFromOptions(opts),\n });\n }\n // if URL provided, set up a remote destination provider\n else {\n if (!opts.toToken) {\n exitWith(1, 'Missing token for remote destination');\n }\n\n destination = createRemoteStrapiDestinationProvider({\n url: opts.to,\n auth: {\n type: 'token',\n token: opts.toToken,\n },\n strategy: 'restore',\n restore: parseRestoreFromOptions(opts),\n });\n }\n\n if (!source || !destination) {\n exitWith(1, 'Could not create providers');\n }\n\n const engine = createTransferEngine(source, destination, {\n versionStrategy: 'exact',\n schemaStrategy: 'strict',\n exclude: opts.exclude,\n only: opts.only,\n throttle: opts.throttle,\n transforms: {\n links: [\n {\n filter(link) {\n return (\n !DEFAULT_IGNORED_CONTENT_TYPES.includes(link.left.type) &&\n !DEFAULT_IGNORED_CONTENT_TYPES.includes(link.right.type)\n );\n },\n },\n ],\n entities: [\n {\n filter(entity) {\n return !DEFAULT_IGNORED_CONTENT_TYPES.includes(entity.type);\n },\n },\n ],\n },\n });\n\n engine.diagnostics.onDiagnostic(formatDiagnostic('transfer'));\n\n const progress = engine.progress.stream;\n\n const { updateLoader } = loadersFactory();\n\n engine.onSchemaDiff(getDiffHandler(engine, { force: opts.force, action: 'transfer' }));\n\n engine.addErrorHandler(\n 'ASSETS_DIRECTORY_ERR',\n getAssetsBackupHandler(engine, { force: opts.force, action: 'transfer' })\n );\n\n progress.on(`stage::start`, ({ stage, data }) => {\n updateLoader(stage, data).start();\n });\n\n progress.on('stage::finish', ({ stage, data }) => {\n updateLoader(stage, data).succeed();\n });\n\n progress.on('stage::progress', ({ stage, data }) => {\n updateLoader(stage, data);\n });\n\n progress.on('stage::error', ({ stage, data }) => {\n updateLoader(stage, data).fail();\n });\n\n progress.on('transfer::start', async () => {\n console.log(`Starting transfer...`);\n\n await strapi.telemetry.send('didDEITSProcessStart', getTransferTelemetryPayload(engine));\n });\n\n let results: Awaited<ReturnType<typeof engine.transfer>>;\n try {\n // Abort transfer if user interrupts process\n setSignalHandler(() => abortTransfer({ engine, strapi }));\n\n results = await engine.transfer();\n\n // Note: we need to await telemetry or else the process ends before it is sent\n await strapi.telemetry.send('didDEITSProcessFinish', getTransferTelemetryPayload(engine));\n\n try {\n const table = buildTransferTable(results.engine);\n console.log(table?.toString());\n } catch (e) {\n console.error('There was an error displaying the results of the transfer.');\n }\n\n exitWith(0, exitMessageText('transfer'));\n } catch (e) {\n await strapi.telemetry.send('didDEITSProcessFail', getTransferTelemetryPayload(engine));\n exitWith(1, exitMessageText('transfer', true));\n }\n};\n"],"names":["engineDataTransfer","strapiDataTransfer","isObject","exitWith","createStrapiInstance","parseRestoreFromOptions","DEFAULT_IGNORED_CONTENT_TYPES","formatDiagnostic","loadersFactory","getDiffHandler","getAssetsBackupHandler","getTransferTelemetryPayload","setSignalHandler","abortTransfer","buildTransferTable","exitMessageText"],"mappings":";;;;;AAmBA,MAAM,EAAE,qBAAyB,IAAAA;AACjC,MAAM;AAAA,EACJ,WAAW;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,
|
|
1
|
+
{"version":3,"file":"action.js","sources":["../../../../src/cli/commands/transfer/action.ts"],"sourcesContent":["import { isObject } from 'lodash/fp';\nimport { engine as engineDataTransfer, strapi as strapiDataTransfer } from '@strapi/data-transfer';\n\nimport {\n buildTransferTable,\n createStrapiInstance,\n DEFAULT_IGNORED_CONTENT_TYPES,\n formatDiagnostic,\n loadersFactory,\n exitMessageText,\n abortTransfer,\n getTransferTelemetryPayload,\n setSignalHandler,\n getDiffHandler,\n getAssetsBackupHandler,\n parseRestoreFromOptions,\n} from '../../utils/data-transfer';\nimport { exitWith } from '../../utils/helpers';\n\nconst { createTransferEngine } = engineDataTransfer;\nconst {\n providers: {\n createRemoteStrapiDestinationProvider,\n createLocalStrapiSourceProvider,\n createLocalStrapiDestinationProvider,\n createRemoteStrapiSourceProvider,\n },\n} = strapiDataTransfer;\n\ninterface CmdOptions {\n from?: URL;\n fromToken: string;\n to: URL;\n toToken: string;\n verbose?: boolean;\n only?: (keyof engineDataTransfer.TransferGroupFilter)[];\n exclude?: (keyof engineDataTransfer.TransferGroupFilter)[];\n throttle?: number;\n force?: boolean;\n}\n/**\n * Transfer command.\n *\n * Transfers data between local Strapi and remote Strapi instances\n */\nexport default async (opts: CmdOptions) => {\n // Validate inputs from Commander\n if (!isObject(opts)) {\n exitWith(1, 'Could not parse command arguments');\n }\n\n if (!(opts.from || opts.to) || (opts.from && opts.to)) {\n exitWith(1, 'Exactly one source (from) or destination (to) option must be provided');\n }\n\n const strapi = await createStrapiInstance();\n let source;\n let destination;\n\n // if no URL provided, use local Strapi\n if (!opts.from) {\n source = createLocalStrapiSourceProvider({\n getStrapi: () => strapi,\n });\n }\n // if URL provided, set up a remote source provider\n else {\n if (!opts.fromToken) {\n exitWith(1, 'Missing token for remote destination');\n }\n\n source = createRemoteStrapiSourceProvider({\n getStrapi: () => strapi,\n url: opts.from,\n auth: {\n type: 'token',\n token: opts.fromToken,\n },\n });\n }\n\n // if no URL provided, use local Strapi\n if (!opts.to) {\n destination = createLocalStrapiDestinationProvider({\n getStrapi: () => strapi,\n strategy: 'restore',\n restore: parseRestoreFromOptions(opts),\n });\n }\n // if URL provided, set up a remote destination provider\n else {\n if (!opts.toToken) {\n exitWith(1, 'Missing token for remote destination');\n }\n\n destination = createRemoteStrapiDestinationProvider({\n url: opts.to,\n auth: {\n type: 'token',\n token: opts.toToken,\n },\n strategy: 'restore',\n restore: parseRestoreFromOptions(opts),\n });\n }\n\n if (!source || !destination) {\n exitWith(1, 'Could not create providers');\n }\n\n const engine = createTransferEngine(source, destination, {\n versionStrategy: 'exact',\n schemaStrategy: 'strict',\n exclude: opts.exclude,\n only: opts.only,\n throttle: opts.throttle,\n transforms: {\n links: [\n {\n filter(link) {\n return (\n !DEFAULT_IGNORED_CONTENT_TYPES.includes(link.left.type) &&\n !DEFAULT_IGNORED_CONTENT_TYPES.includes(link.right.type)\n );\n },\n },\n ],\n entities: [\n {\n filter(entity) {\n return !DEFAULT_IGNORED_CONTENT_TYPES.includes(entity.type);\n },\n },\n ],\n },\n });\n\n engine.diagnostics.onDiagnostic(formatDiagnostic('transfer', opts.verbose));\n\n const progress = engine.progress.stream;\n\n const { updateLoader } = loadersFactory();\n\n engine.onSchemaDiff(getDiffHandler(engine, { force: opts.force, action: 'transfer' }));\n\n engine.addErrorHandler(\n 'ASSETS_DIRECTORY_ERR',\n getAssetsBackupHandler(engine, { force: opts.force, action: 'transfer' })\n );\n\n progress.on(`stage::start`, ({ stage, data }) => {\n updateLoader(stage, data).start();\n });\n\n progress.on('stage::finish', ({ stage, data }) => {\n updateLoader(stage, data).succeed();\n });\n\n progress.on('stage::progress', ({ stage, data }) => {\n updateLoader(stage, data);\n });\n\n progress.on('stage::error', ({ stage, data }) => {\n updateLoader(stage, data).fail();\n });\n\n progress.on('transfer::start', async () => {\n console.log(`Starting transfer...`);\n\n await strapi.telemetry.send('didDEITSProcessStart', getTransferTelemetryPayload(engine));\n });\n\n let results: Awaited<ReturnType<typeof engine.transfer>>;\n try {\n // Abort transfer if user interrupts process\n setSignalHandler(() => abortTransfer({ engine, strapi }));\n\n results = await engine.transfer();\n\n // Note: we need to await telemetry or else the process ends before it is sent\n await strapi.telemetry.send('didDEITSProcessFinish', getTransferTelemetryPayload(engine));\n\n try {\n const table = buildTransferTable(results.engine);\n console.log(table?.toString());\n } catch (e) {\n console.error('There was an error displaying the results of the transfer.');\n }\n\n exitWith(0, exitMessageText('transfer'));\n } catch (e) {\n await strapi.telemetry.send('didDEITSProcessFail', getTransferTelemetryPayload(engine));\n exitWith(1, exitMessageText('transfer', true));\n }\n};\n"],"names":["engineDataTransfer","strapiDataTransfer","isObject","exitWith","createStrapiInstance","parseRestoreFromOptions","DEFAULT_IGNORED_CONTENT_TYPES","formatDiagnostic","loadersFactory","getDiffHandler","getAssetsBackupHandler","getTransferTelemetryPayload","setSignalHandler","abortTransfer","buildTransferTable","exitMessageText"],"mappings":"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"}
|
|
@@ -84,7 +84,7 @@ const action = async (opts) => {
|
|
|
84
84
|
]
|
|
85
85
|
}
|
|
86
86
|
});
|
|
87
|
-
engine2.diagnostics.onDiagnostic(formatDiagnostic("transfer"));
|
|
87
|
+
engine2.diagnostics.onDiagnostic(formatDiagnostic("transfer", opts.verbose));
|
|
88
88
|
const progress = engine2.progress.stream;
|
|
89
89
|
const { updateLoader } = loadersFactory();
|
|
90
90
|
engine2.onSchemaDiff(getDiffHandler(engine2, { force: opts.force, action: "transfer" }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.mjs","sources":["../../../../src/cli/commands/transfer/action.ts"],"sourcesContent":["import { isObject } from 'lodash/fp';\nimport { engine as engineDataTransfer, strapi as strapiDataTransfer } from '@strapi/data-transfer';\n\nimport {\n buildTransferTable,\n createStrapiInstance,\n DEFAULT_IGNORED_CONTENT_TYPES,\n formatDiagnostic,\n loadersFactory,\n exitMessageText,\n abortTransfer,\n getTransferTelemetryPayload,\n setSignalHandler,\n getDiffHandler,\n getAssetsBackupHandler,\n parseRestoreFromOptions,\n} from '../../utils/data-transfer';\nimport { exitWith } from '../../utils/helpers';\n\nconst { createTransferEngine } = engineDataTransfer;\nconst {\n providers: {\n createRemoteStrapiDestinationProvider,\n createLocalStrapiSourceProvider,\n createLocalStrapiDestinationProvider,\n createRemoteStrapiSourceProvider,\n },\n} = strapiDataTransfer;\n\ninterface CmdOptions {\n from?: URL;\n fromToken: string;\n to: URL;\n toToken: string;\n only?: (keyof engineDataTransfer.TransferGroupFilter)[];\n exclude?: (keyof engineDataTransfer.TransferGroupFilter)[];\n throttle?: number;\n force?: boolean;\n}\n/**\n * Transfer command.\n *\n * Transfers data between local Strapi and remote Strapi instances\n */\nexport default async (opts: CmdOptions) => {\n // Validate inputs from Commander\n if (!isObject(opts)) {\n exitWith(1, 'Could not parse command arguments');\n }\n\n if (!(opts.from || opts.to) || (opts.from && opts.to)) {\n exitWith(1, 'Exactly one source (from) or destination (to) option must be provided');\n }\n\n const strapi = await createStrapiInstance();\n let source;\n let destination;\n\n // if no URL provided, use local Strapi\n if (!opts.from) {\n source = createLocalStrapiSourceProvider({\n getStrapi: () => strapi,\n });\n }\n // if URL provided, set up a remote source provider\n else {\n if (!opts.fromToken) {\n exitWith(1, 'Missing token for remote destination');\n }\n\n source = createRemoteStrapiSourceProvider({\n getStrapi: () => strapi,\n url: opts.from,\n auth: {\n type: 'token',\n token: opts.fromToken,\n },\n });\n }\n\n // if no URL provided, use local Strapi\n if (!opts.to) {\n destination = createLocalStrapiDestinationProvider({\n getStrapi: () => strapi,\n strategy: 'restore',\n restore: parseRestoreFromOptions(opts),\n });\n }\n // if URL provided, set up a remote destination provider\n else {\n if (!opts.toToken) {\n exitWith(1, 'Missing token for remote destination');\n }\n\n destination = createRemoteStrapiDestinationProvider({\n url: opts.to,\n auth: {\n type: 'token',\n token: opts.toToken,\n },\n strategy: 'restore',\n restore: parseRestoreFromOptions(opts),\n });\n }\n\n if (!source || !destination) {\n exitWith(1, 'Could not create providers');\n }\n\n const engine = createTransferEngine(source, destination, {\n versionStrategy: 'exact',\n schemaStrategy: 'strict',\n exclude: opts.exclude,\n only: opts.only,\n throttle: opts.throttle,\n transforms: {\n links: [\n {\n filter(link) {\n return (\n !DEFAULT_IGNORED_CONTENT_TYPES.includes(link.left.type) &&\n !DEFAULT_IGNORED_CONTENT_TYPES.includes(link.right.type)\n );\n },\n },\n ],\n entities: [\n {\n filter(entity) {\n return !DEFAULT_IGNORED_CONTENT_TYPES.includes(entity.type);\n },\n },\n ],\n },\n });\n\n engine.diagnostics.onDiagnostic(formatDiagnostic('transfer'));\n\n const progress = engine.progress.stream;\n\n const { updateLoader } = loadersFactory();\n\n engine.onSchemaDiff(getDiffHandler(engine, { force: opts.force, action: 'transfer' }));\n\n engine.addErrorHandler(\n 'ASSETS_DIRECTORY_ERR',\n getAssetsBackupHandler(engine, { force: opts.force, action: 'transfer' })\n );\n\n progress.on(`stage::start`, ({ stage, data }) => {\n updateLoader(stage, data).start();\n });\n\n progress.on('stage::finish', ({ stage, data }) => {\n updateLoader(stage, data).succeed();\n });\n\n progress.on('stage::progress', ({ stage, data }) => {\n updateLoader(stage, data);\n });\n\n progress.on('stage::error', ({ stage, data }) => {\n updateLoader(stage, data).fail();\n });\n\n progress.on('transfer::start', async () => {\n console.log(`Starting transfer...`);\n\n await strapi.telemetry.send('didDEITSProcessStart', getTransferTelemetryPayload(engine));\n });\n\n let results: Awaited<ReturnType<typeof engine.transfer>>;\n try {\n // Abort transfer if user interrupts process\n setSignalHandler(() => abortTransfer({ engine, strapi }));\n\n results = await engine.transfer();\n\n // Note: we need to await telemetry or else the process ends before it is sent\n await strapi.telemetry.send('didDEITSProcessFinish', getTransferTelemetryPayload(engine));\n\n try {\n const table = buildTransferTable(results.engine);\n console.log(table?.toString());\n } catch (e) {\n console.error('There was an error displaying the results of the transfer.');\n }\n\n exitWith(0, exitMessageText('transfer'));\n } catch (e) {\n await strapi.telemetry.send('didDEITSProcessFail', getTransferTelemetryPayload(engine));\n exitWith(1, exitMessageText('transfer', true));\n }\n};\n"],"names":["engineDataTransfer","strapiDataTransfer","strapi","engine"],"mappings":";;;;AAmBA,MAAM,EAAE,qBAAyB,IAAAA;AACjC,MAAM;AAAA,EACJ,WAAW;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,
|
|
1
|
+
{"version":3,"file":"action.mjs","sources":["../../../../src/cli/commands/transfer/action.ts"],"sourcesContent":["import { isObject } from 'lodash/fp';\nimport { engine as engineDataTransfer, strapi as strapiDataTransfer } from '@strapi/data-transfer';\n\nimport {\n buildTransferTable,\n createStrapiInstance,\n DEFAULT_IGNORED_CONTENT_TYPES,\n formatDiagnostic,\n loadersFactory,\n exitMessageText,\n abortTransfer,\n getTransferTelemetryPayload,\n setSignalHandler,\n getDiffHandler,\n getAssetsBackupHandler,\n parseRestoreFromOptions,\n} from '../../utils/data-transfer';\nimport { exitWith } from '../../utils/helpers';\n\nconst { createTransferEngine } = engineDataTransfer;\nconst {\n providers: {\n createRemoteStrapiDestinationProvider,\n createLocalStrapiSourceProvider,\n createLocalStrapiDestinationProvider,\n createRemoteStrapiSourceProvider,\n },\n} = strapiDataTransfer;\n\ninterface CmdOptions {\n from?: URL;\n fromToken: string;\n to: URL;\n toToken: string;\n verbose?: boolean;\n only?: (keyof engineDataTransfer.TransferGroupFilter)[];\n exclude?: (keyof engineDataTransfer.TransferGroupFilter)[];\n throttle?: number;\n force?: boolean;\n}\n/**\n * Transfer command.\n *\n * Transfers data between local Strapi and remote Strapi instances\n */\nexport default async (opts: CmdOptions) => {\n // Validate inputs from Commander\n if (!isObject(opts)) {\n exitWith(1, 'Could not parse command arguments');\n }\n\n if (!(opts.from || opts.to) || (opts.from && opts.to)) {\n exitWith(1, 'Exactly one source (from) or destination (to) option must be provided');\n }\n\n const strapi = await createStrapiInstance();\n let source;\n let destination;\n\n // if no URL provided, use local Strapi\n if (!opts.from) {\n source = createLocalStrapiSourceProvider({\n getStrapi: () => strapi,\n });\n }\n // if URL provided, set up a remote source provider\n else {\n if (!opts.fromToken) {\n exitWith(1, 'Missing token for remote destination');\n }\n\n source = createRemoteStrapiSourceProvider({\n getStrapi: () => strapi,\n url: opts.from,\n auth: {\n type: 'token',\n token: opts.fromToken,\n },\n });\n }\n\n // if no URL provided, use local Strapi\n if (!opts.to) {\n destination = createLocalStrapiDestinationProvider({\n getStrapi: () => strapi,\n strategy: 'restore',\n restore: parseRestoreFromOptions(opts),\n });\n }\n // if URL provided, set up a remote destination provider\n else {\n if (!opts.toToken) {\n exitWith(1, 'Missing token for remote destination');\n }\n\n destination = createRemoteStrapiDestinationProvider({\n url: opts.to,\n auth: {\n type: 'token',\n token: opts.toToken,\n },\n strategy: 'restore',\n restore: parseRestoreFromOptions(opts),\n });\n }\n\n if (!source || !destination) {\n exitWith(1, 'Could not create providers');\n }\n\n const engine = createTransferEngine(source, destination, {\n versionStrategy: 'exact',\n schemaStrategy: 'strict',\n exclude: opts.exclude,\n only: opts.only,\n throttle: opts.throttle,\n transforms: {\n links: [\n {\n filter(link) {\n return (\n !DEFAULT_IGNORED_CONTENT_TYPES.includes(link.left.type) &&\n !DEFAULT_IGNORED_CONTENT_TYPES.includes(link.right.type)\n );\n },\n },\n ],\n entities: [\n {\n filter(entity) {\n return !DEFAULT_IGNORED_CONTENT_TYPES.includes(entity.type);\n },\n },\n ],\n },\n });\n\n engine.diagnostics.onDiagnostic(formatDiagnostic('transfer', opts.verbose));\n\n const progress = engine.progress.stream;\n\n const { updateLoader } = loadersFactory();\n\n engine.onSchemaDiff(getDiffHandler(engine, { force: opts.force, action: 'transfer' }));\n\n engine.addErrorHandler(\n 'ASSETS_DIRECTORY_ERR',\n getAssetsBackupHandler(engine, { force: opts.force, action: 'transfer' })\n );\n\n progress.on(`stage::start`, ({ stage, data }) => {\n updateLoader(stage, data).start();\n });\n\n progress.on('stage::finish', ({ stage, data }) => {\n updateLoader(stage, data).succeed();\n });\n\n progress.on('stage::progress', ({ stage, data }) => {\n updateLoader(stage, data);\n });\n\n progress.on('stage::error', ({ stage, data }) => {\n updateLoader(stage, data).fail();\n });\n\n progress.on('transfer::start', async () => {\n console.log(`Starting transfer...`);\n\n await strapi.telemetry.send('didDEITSProcessStart', getTransferTelemetryPayload(engine));\n });\n\n let results: Awaited<ReturnType<typeof engine.transfer>>;\n try {\n // Abort transfer if user interrupts process\n setSignalHandler(() => abortTransfer({ engine, strapi }));\n\n results = await engine.transfer();\n\n // Note: we need to await telemetry or else the process ends before it is sent\n await strapi.telemetry.send('didDEITSProcessFinish', getTransferTelemetryPayload(engine));\n\n try {\n const table = buildTransferTable(results.engine);\n console.log(table?.toString());\n } catch (e) {\n console.error('There was an error displaying the results of the transfer.');\n }\n\n exitWith(0, exitMessageText('transfer'));\n } catch (e) {\n await strapi.telemetry.send('didDEITSProcessFail', getTransferTelemetryPayload(engine));\n exitWith(1, exitMessageText('transfer', true));\n }\n};\n"],"names":["engineDataTransfer","strapiDataTransfer","strapi","engine"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/transfer/command.ts"],"names":[],"mappings":"AAaA;;GAEG;AACH,QAAA,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/transfer/command.ts"],"names":[],"mappings":"AAaA;;GAEG;AACH,QAAA,MAAM,OAAO,mCAiGZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -20,7 +20,7 @@ const command = () => {
|
|
|
20
20
|
).argParser(commander$1.parseURL)
|
|
21
21
|
).addOption(
|
|
22
22
|
new commander.Option("--to-token <token>", `Transfer token for the remote Strapi destination`)
|
|
23
|
-
).addOption(commander$1.forceOption).addOption(dataTransfer.excludeOption).addOption(dataTransfer.onlyOption).addOption(dataTransfer.throttleOption).hook("preAction", dataTransfer.validateExcludeOnly).hook(
|
|
23
|
+
).addOption(new commander.Option("--verbose", "Enable verbose logs")).addOption(commander$1.forceOption).addOption(dataTransfer.excludeOption).addOption(dataTransfer.onlyOption).addOption(dataTransfer.throttleOption).hook("preAction", dataTransfer.validateExcludeOnly).hook(
|
|
24
24
|
"preAction",
|
|
25
25
|
helpers.ifOptions(
|
|
26
26
|
(opts) => !(opts.from || opts.to) || opts.from && opts.to,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sources":["../../../../src/cli/commands/transfer/command.ts"],"sourcesContent":["import inquirer from 'inquirer';\nimport { createCommand, Option } from 'commander';\nimport { getCommanderConfirmMessage, forceOption, parseURL } from '../../utils/commander';\nimport { exitWith, assertUrlHasProtocol, ifOptions } from '../../utils/helpers';\nimport {\n excludeOption,\n onlyOption,\n throttleOption,\n validateExcludeOnly,\n} from '../../utils/data-transfer';\n\nimport action from './action';\n\n/**\n * `$ strapi transfer`\n */\nconst command = () => {\n return (\n createCommand('transfer')\n .description('Transfer data from one source to another')\n .allowExcessArguments(false)\n .addOption(\n new Option(\n '--from <sourceURL>',\n `URL of the remote Strapi instance to get data from`\n ).argParser(parseURL)\n )\n .addOption(new Option('--from-token <token>', `Transfer token for the remote Strapi source`))\n .addOption(\n new Option(\n '--to <destinationURL>',\n `URL of the remote Strapi instance to send data to`\n ).argParser(parseURL)\n )\n .addOption(\n new Option('--to-token <token>', `Transfer token for the remote Strapi destination`)\n )\n .addOption(forceOption)\n .addOption(excludeOption)\n .addOption(onlyOption)\n .addOption(throttleOption)\n .hook('preAction', validateExcludeOnly)\n .hook(\n 'preAction',\n ifOptions(\n (opts) => !(opts.from || opts.to) || (opts.from && opts.to),\n async () =>\n exitWith(\n 1,\n 'Exactly one remote source (from) or destination (to) option must be provided'\n )\n )\n )\n // If --from is used, validate the URL and token\n .hook(\n 'preAction',\n ifOptions(\n (opts) => opts.from,\n async (thisCommand) => {\n assertUrlHasProtocol(thisCommand.opts().from, ['https:', 'http:']);\n if (!thisCommand.opts().fromToken) {\n const answers = await inquirer.prompt([\n {\n type: 'password',\n message: 'Please enter your transfer token for the remote Strapi source',\n name: 'fromToken',\n },\n ]);\n if (!answers.fromToken?.length) {\n exitWith(1, 'No token provided for remote source, aborting transfer.');\n }\n thisCommand.opts().fromToken = answers.fromToken;\n }\n\n await getCommanderConfirmMessage(\n 'The transfer will delete all the local Strapi assets and its database. Are you sure you want to proceed?',\n { failMessage: 'Transfer process aborted' }\n )(thisCommand);\n }\n )\n )\n // If --to is used, validate the URL, token, and confirm restore\n .hook(\n 'preAction',\n ifOptions(\n (opts) => opts.to,\n async (thisCommand) => {\n assertUrlHasProtocol(thisCommand.opts().to, ['https:', 'http:']);\n if (!thisCommand.opts().toToken) {\n const answers = await inquirer.prompt([\n {\n type: 'password',\n message: 'Please enter your transfer token for the remote Strapi destination',\n name: 'toToken',\n },\n ]);\n if (!answers.toToken?.length) {\n exitWith(1, 'No token provided for remote destination, aborting transfer.');\n }\n thisCommand.opts().toToken = answers.toToken;\n }\n\n await getCommanderConfirmMessage(\n 'The transfer will delete existing data from the remote Strapi! Are you sure you want to proceed?',\n { failMessage: 'Transfer process aborted' }\n )(thisCommand);\n }\n )\n )\n .action(action)\n );\n};\n\nexport default command;\n"],"names":["createCommand","Option","parseURL","forceOption","excludeOption","onlyOption","throttleOption","validateExcludeOnly","ifOptions","exitWith","assertUrlHasProtocol","inquirer","getCommanderConfirmMessage"],"mappings":";;;;;;;;;AAgBA,MAAM,UAAU,MAAM;AAElB,SAAAA,UAAA,cAAc,UAAU,EACrB,YAAY,0CAA0C,EACtD,qBAAqB,KAAK,EAC1B;AAAA,IACC,IAAIC,UAAA;AAAA,MACF;AAAA,MACA;AAAA,
|
|
1
|
+
{"version":3,"file":"command.js","sources":["../../../../src/cli/commands/transfer/command.ts"],"sourcesContent":["import inquirer from 'inquirer';\nimport { createCommand, Option } from 'commander';\nimport { getCommanderConfirmMessage, forceOption, parseURL } from '../../utils/commander';\nimport { exitWith, assertUrlHasProtocol, ifOptions } from '../../utils/helpers';\nimport {\n excludeOption,\n onlyOption,\n throttleOption,\n validateExcludeOnly,\n} from '../../utils/data-transfer';\n\nimport action from './action';\n\n/**\n * `$ strapi transfer`\n */\nconst command = () => {\n return (\n createCommand('transfer')\n .description('Transfer data from one source to another')\n .allowExcessArguments(false)\n .addOption(\n new Option(\n '--from <sourceURL>',\n `URL of the remote Strapi instance to get data from`\n ).argParser(parseURL)\n )\n .addOption(new Option('--from-token <token>', `Transfer token for the remote Strapi source`))\n .addOption(\n new Option(\n '--to <destinationURL>',\n `URL of the remote Strapi instance to send data to`\n ).argParser(parseURL)\n )\n\n .addOption(\n new Option('--to-token <token>', `Transfer token for the remote Strapi destination`)\n )\n .addOption(new Option('--verbose', 'Enable verbose logs'))\n .addOption(forceOption)\n .addOption(excludeOption)\n .addOption(onlyOption)\n .addOption(throttleOption)\n .hook('preAction', validateExcludeOnly)\n .hook(\n 'preAction',\n ifOptions(\n (opts) => !(opts.from || opts.to) || (opts.from && opts.to),\n async () =>\n exitWith(\n 1,\n 'Exactly one remote source (from) or destination (to) option must be provided'\n )\n )\n )\n // If --from is used, validate the URL and token\n .hook(\n 'preAction',\n ifOptions(\n (opts) => opts.from,\n async (thisCommand) => {\n assertUrlHasProtocol(thisCommand.opts().from, ['https:', 'http:']);\n if (!thisCommand.opts().fromToken) {\n const answers = await inquirer.prompt([\n {\n type: 'password',\n message: 'Please enter your transfer token for the remote Strapi source',\n name: 'fromToken',\n },\n ]);\n if (!answers.fromToken?.length) {\n exitWith(1, 'No token provided for remote source, aborting transfer.');\n }\n thisCommand.opts().fromToken = answers.fromToken;\n }\n\n await getCommanderConfirmMessage(\n 'The transfer will delete all the local Strapi assets and its database. Are you sure you want to proceed?',\n { failMessage: 'Transfer process aborted' }\n )(thisCommand);\n }\n )\n )\n // If --to is used, validate the URL, token, and confirm restore\n .hook(\n 'preAction',\n ifOptions(\n (opts) => opts.to,\n async (thisCommand) => {\n assertUrlHasProtocol(thisCommand.opts().to, ['https:', 'http:']);\n if (!thisCommand.opts().toToken) {\n const answers = await inquirer.prompt([\n {\n type: 'password',\n message: 'Please enter your transfer token for the remote Strapi destination',\n name: 'toToken',\n },\n ]);\n if (!answers.toToken?.length) {\n exitWith(1, 'No token provided for remote destination, aborting transfer.');\n }\n thisCommand.opts().toToken = answers.toToken;\n }\n\n await getCommanderConfirmMessage(\n 'The transfer will delete existing data from the remote Strapi! Are you sure you want to proceed?',\n { failMessage: 'Transfer process aborted' }\n )(thisCommand);\n }\n )\n )\n .action(action)\n );\n};\n\nexport default command;\n"],"names":["createCommand","Option","parseURL","forceOption","excludeOption","onlyOption","throttleOption","validateExcludeOnly","ifOptions","exitWith","assertUrlHasProtocol","inquirer","getCommanderConfirmMessage"],"mappings":";;;;;;;;;AAgBA,MAAM,UAAU,MAAM;AAElB,SAAAA,UAAA,cAAc,UAAU,EACrB,YAAY,0CAA0C,EACtD,qBAAqB,KAAK,EAC1B;AAAA,IACC,IAAIC,UAAA;AAAA,MACF;AAAA,MACA;AAAA,IACF,EAAE,UAAUC,YAAQ,QAAA;AAAA,EAAA,EAErB,UAAU,IAAID,iBAAO,wBAAwB,6CAA6C,CAAC,EAC3F;AAAA,IACC,IAAIA,UAAA;AAAA,MACF;AAAA,MACA;AAAA,IACF,EAAE,UAAUC,YAAQ,QAAA;AAAA,EAAA,EAGrB;AAAA,IACC,IAAID,UAAO,OAAA,sBAAsB,kDAAkD;AAAA,EAAA,EAEpF,UAAU,IAAIA,UAAAA,OAAO,aAAa,qBAAqB,CAAC,EACxD,UAAUE,YAAW,WAAA,EACrB,UAAUC,aAAa,aAAA,EACvB,UAAUC,uBAAU,EACpB,UAAUC,aAAAA,cAAc,EACxB,KAAK,aAAaC,aAAmB,mBAAA,EACrC;AAAA,IACC;AAAA,IACAC,QAAA;AAAA,MACE,CAAC,SAAS,EAAE,KAAK,QAAQ,KAAK,OAAQ,KAAK,QAAQ,KAAK;AAAA,MACxD,YACEC,QAAA;AAAA,QACE;AAAA,QACA;AAAA,MAAA;AAAA,IACF;AAAA,EACJ,EAGD;AAAA,IACC;AAAA,IACAD,QAAA;AAAA,MACE,CAAC,SAAS,KAAK;AAAA,MACf,OAAO,gBAAgB;AACrBE,gBAAA,qBAAqB,YAAY,KAAK,EAAE,MAAM,CAAC,UAAU,OAAO,CAAC;AACjE,YAAI,CAAC,YAAY,KAAK,EAAE,WAAW;AAC3B,gBAAA,UAAU,MAAMC,kBAAA,QAAS,OAAO;AAAA,YACpC;AAAA,cACE,MAAM;AAAA,cACN,SAAS;AAAA,cACT,MAAM;AAAA,YAAA;AAAA,UACR,CACD;AACG,cAAA,CAAC,QAAQ,WAAW,QAAQ;AAC9BF,oBAAA,SAAS,GAAG,yDAAyD;AAAA,UAAA;AAE3D,sBAAA,KAAA,EAAO,YAAY,QAAQ;AAAA,QAAA;AAGnC,cAAAG,YAAA;AAAA,UACJ;AAAA,UACA,EAAE,aAAa,2BAA2B;AAAA,UAC1C,WAAW;AAAA,MAAA;AAAA,IACf;AAAA,EACF,EAGD;AAAA,IACC;AAAA,IACAJ,QAAA;AAAA,MACE,CAAC,SAAS,KAAK;AAAA,MACf,OAAO,gBAAgB;AACrBE,gBAAA,qBAAqB,YAAY,KAAK,EAAE,IAAI,CAAC,UAAU,OAAO,CAAC;AAC/D,YAAI,CAAC,YAAY,KAAK,EAAE,SAAS;AACzB,gBAAA,UAAU,MAAMC,kBAAA,QAAS,OAAO;AAAA,YACpC;AAAA,cACE,MAAM;AAAA,cACN,SAAS;AAAA,cACT,MAAM;AAAA,YAAA;AAAA,UACR,CACD;AACG,cAAA,CAAC,QAAQ,SAAS,QAAQ;AAC5BF,oBAAA,SAAS,GAAG,8DAA8D;AAAA,UAAA;AAEhE,sBAAA,KAAA,EAAO,UAAU,QAAQ;AAAA,QAAA;AAGjC,cAAAG,YAAA;AAAA,UACJ;AAAA,UACA,EAAE,aAAa,2BAA2B;AAAA,UAC1C,WAAW;AAAA,MAAA;AAAA,IACf;AAAA,EACF,EAED,OAAO,MAAM;AAEpB;;"}
|
|
@@ -17,7 +17,7 @@ const command = () => {
|
|
|
17
17
|
).argParser(parseURL)
|
|
18
18
|
).addOption(
|
|
19
19
|
new Option("--to-token <token>", `Transfer token for the remote Strapi destination`)
|
|
20
|
-
).addOption(forceOption).addOption(excludeOption).addOption(onlyOption).addOption(throttleOption).hook("preAction", validateExcludeOnly).hook(
|
|
20
|
+
).addOption(new Option("--verbose", "Enable verbose logs")).addOption(forceOption).addOption(excludeOption).addOption(onlyOption).addOption(throttleOption).hook("preAction", validateExcludeOnly).hook(
|
|
21
21
|
"preAction",
|
|
22
22
|
ifOptions(
|
|
23
23
|
(opts) => !(opts.from || opts.to) || opts.from && opts.to,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.mjs","sources":["../../../../src/cli/commands/transfer/command.ts"],"sourcesContent":["import inquirer from 'inquirer';\nimport { createCommand, Option } from 'commander';\nimport { getCommanderConfirmMessage, forceOption, parseURL } from '../../utils/commander';\nimport { exitWith, assertUrlHasProtocol, ifOptions } from '../../utils/helpers';\nimport {\n excludeOption,\n onlyOption,\n throttleOption,\n validateExcludeOnly,\n} from '../../utils/data-transfer';\n\nimport action from './action';\n\n/**\n * `$ strapi transfer`\n */\nconst command = () => {\n return (\n createCommand('transfer')\n .description('Transfer data from one source to another')\n .allowExcessArguments(false)\n .addOption(\n new Option(\n '--from <sourceURL>',\n `URL of the remote Strapi instance to get data from`\n ).argParser(parseURL)\n )\n .addOption(new Option('--from-token <token>', `Transfer token for the remote Strapi source`))\n .addOption(\n new Option(\n '--to <destinationURL>',\n `URL of the remote Strapi instance to send data to`\n ).argParser(parseURL)\n )\n .addOption(\n new Option('--to-token <token>', `Transfer token for the remote Strapi destination`)\n )\n .addOption(forceOption)\n .addOption(excludeOption)\n .addOption(onlyOption)\n .addOption(throttleOption)\n .hook('preAction', validateExcludeOnly)\n .hook(\n 'preAction',\n ifOptions(\n (opts) => !(opts.from || opts.to) || (opts.from && opts.to),\n async () =>\n exitWith(\n 1,\n 'Exactly one remote source (from) or destination (to) option must be provided'\n )\n )\n )\n // If --from is used, validate the URL and token\n .hook(\n 'preAction',\n ifOptions(\n (opts) => opts.from,\n async (thisCommand) => {\n assertUrlHasProtocol(thisCommand.opts().from, ['https:', 'http:']);\n if (!thisCommand.opts().fromToken) {\n const answers = await inquirer.prompt([\n {\n type: 'password',\n message: 'Please enter your transfer token for the remote Strapi source',\n name: 'fromToken',\n },\n ]);\n if (!answers.fromToken?.length) {\n exitWith(1, 'No token provided for remote source, aborting transfer.');\n }\n thisCommand.opts().fromToken = answers.fromToken;\n }\n\n await getCommanderConfirmMessage(\n 'The transfer will delete all the local Strapi assets and its database. Are you sure you want to proceed?',\n { failMessage: 'Transfer process aborted' }\n )(thisCommand);\n }\n )\n )\n // If --to is used, validate the URL, token, and confirm restore\n .hook(\n 'preAction',\n ifOptions(\n (opts) => opts.to,\n async (thisCommand) => {\n assertUrlHasProtocol(thisCommand.opts().to, ['https:', 'http:']);\n if (!thisCommand.opts().toToken) {\n const answers = await inquirer.prompt([\n {\n type: 'password',\n message: 'Please enter your transfer token for the remote Strapi destination',\n name: 'toToken',\n },\n ]);\n if (!answers.toToken?.length) {\n exitWith(1, 'No token provided for remote destination, aborting transfer.');\n }\n thisCommand.opts().toToken = answers.toToken;\n }\n\n await getCommanderConfirmMessage(\n 'The transfer will delete existing data from the remote Strapi! Are you sure you want to proceed?',\n { failMessage: 'Transfer process aborted' }\n )(thisCommand);\n }\n )\n )\n .action(action)\n );\n};\n\nexport default command;\n"],"names":[],"mappings":";;;;;;AAgBA,MAAM,UAAU,MAAM;AAElB,SAAA,cAAc,UAAU,EACrB,YAAY,0CAA0C,EACtD,qBAAqB,KAAK,EAC1B;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,
|
|
1
|
+
{"version":3,"file":"command.mjs","sources":["../../../../src/cli/commands/transfer/command.ts"],"sourcesContent":["import inquirer from 'inquirer';\nimport { createCommand, Option } from 'commander';\nimport { getCommanderConfirmMessage, forceOption, parseURL } from '../../utils/commander';\nimport { exitWith, assertUrlHasProtocol, ifOptions } from '../../utils/helpers';\nimport {\n excludeOption,\n onlyOption,\n throttleOption,\n validateExcludeOnly,\n} from '../../utils/data-transfer';\n\nimport action from './action';\n\n/**\n * `$ strapi transfer`\n */\nconst command = () => {\n return (\n createCommand('transfer')\n .description('Transfer data from one source to another')\n .allowExcessArguments(false)\n .addOption(\n new Option(\n '--from <sourceURL>',\n `URL of the remote Strapi instance to get data from`\n ).argParser(parseURL)\n )\n .addOption(new Option('--from-token <token>', `Transfer token for the remote Strapi source`))\n .addOption(\n new Option(\n '--to <destinationURL>',\n `URL of the remote Strapi instance to send data to`\n ).argParser(parseURL)\n )\n\n .addOption(\n new Option('--to-token <token>', `Transfer token for the remote Strapi destination`)\n )\n .addOption(new Option('--verbose', 'Enable verbose logs'))\n .addOption(forceOption)\n .addOption(excludeOption)\n .addOption(onlyOption)\n .addOption(throttleOption)\n .hook('preAction', validateExcludeOnly)\n .hook(\n 'preAction',\n ifOptions(\n (opts) => !(opts.from || opts.to) || (opts.from && opts.to),\n async () =>\n exitWith(\n 1,\n 'Exactly one remote source (from) or destination (to) option must be provided'\n )\n )\n )\n // If --from is used, validate the URL and token\n .hook(\n 'preAction',\n ifOptions(\n (opts) => opts.from,\n async (thisCommand) => {\n assertUrlHasProtocol(thisCommand.opts().from, ['https:', 'http:']);\n if (!thisCommand.opts().fromToken) {\n const answers = await inquirer.prompt([\n {\n type: 'password',\n message: 'Please enter your transfer token for the remote Strapi source',\n name: 'fromToken',\n },\n ]);\n if (!answers.fromToken?.length) {\n exitWith(1, 'No token provided for remote source, aborting transfer.');\n }\n thisCommand.opts().fromToken = answers.fromToken;\n }\n\n await getCommanderConfirmMessage(\n 'The transfer will delete all the local Strapi assets and its database. Are you sure you want to proceed?',\n { failMessage: 'Transfer process aborted' }\n )(thisCommand);\n }\n )\n )\n // If --to is used, validate the URL, token, and confirm restore\n .hook(\n 'preAction',\n ifOptions(\n (opts) => opts.to,\n async (thisCommand) => {\n assertUrlHasProtocol(thisCommand.opts().to, ['https:', 'http:']);\n if (!thisCommand.opts().toToken) {\n const answers = await inquirer.prompt([\n {\n type: 'password',\n message: 'Please enter your transfer token for the remote Strapi destination',\n name: 'toToken',\n },\n ]);\n if (!answers.toToken?.length) {\n exitWith(1, 'No token provided for remote destination, aborting transfer.');\n }\n thisCommand.opts().toToken = answers.toToken;\n }\n\n await getCommanderConfirmMessage(\n 'The transfer will delete existing data from the remote Strapi! Are you sure you want to proceed?',\n { failMessage: 'Transfer process aborted' }\n )(thisCommand);\n }\n )\n )\n .action(action)\n );\n};\n\nexport default command;\n"],"names":[],"mappings":";;;;;;AAgBA,MAAM,UAAU,MAAM;AAElB,SAAA,cAAc,UAAU,EACrB,YAAY,0CAA0C,EACtD,qBAAqB,KAAK,EAC1B;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF,EAAE,UAAU,QAAQ;AAAA,EAAA,EAErB,UAAU,IAAI,OAAO,wBAAwB,6CAA6C,CAAC,EAC3F;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF,EAAE,UAAU,QAAQ;AAAA,EAAA,EAGrB;AAAA,IACC,IAAI,OAAO,sBAAsB,kDAAkD;AAAA,EAAA,EAEpF,UAAU,IAAI,OAAO,aAAa,qBAAqB,CAAC,EACxD,UAAU,WAAW,EACrB,UAAU,aAAa,EACvB,UAAU,UAAU,EACpB,UAAU,cAAc,EACxB,KAAK,aAAa,mBAAmB,EACrC;AAAA,IACC;AAAA,IACA;AAAA,MACE,CAAC,SAAS,EAAE,KAAK,QAAQ,KAAK,OAAQ,KAAK,QAAQ,KAAK;AAAA,MACxD,YACE;AAAA,QACE;AAAA,QACA;AAAA,MAAA;AAAA,IACF;AAAA,EACJ,EAGD;AAAA,IACC;AAAA,IACA;AAAA,MACE,CAAC,SAAS,KAAK;AAAA,MACf,OAAO,gBAAgB;AACrB,6BAAqB,YAAY,KAAK,EAAE,MAAM,CAAC,UAAU,OAAO,CAAC;AACjE,YAAI,CAAC,YAAY,KAAK,EAAE,WAAW;AAC3B,gBAAA,UAAU,MAAM,SAAS,OAAO;AAAA,YACpC;AAAA,cACE,MAAM;AAAA,cACN,SAAS;AAAA,cACT,MAAM;AAAA,YAAA;AAAA,UACR,CACD;AACG,cAAA,CAAC,QAAQ,WAAW,QAAQ;AAC9B,qBAAS,GAAG,yDAAyD;AAAA,UAAA;AAE3D,sBAAA,KAAA,EAAO,YAAY,QAAQ;AAAA,QAAA;AAGnC,cAAA;AAAA,UACJ;AAAA,UACA,EAAE,aAAa,2BAA2B;AAAA,UAC1C,WAAW;AAAA,MAAA;AAAA,IACf;AAAA,EACF,EAGD;AAAA,IACC;AAAA,IACA;AAAA,MACE,CAAC,SAAS,KAAK;AAAA,MACf,OAAO,gBAAgB;AACrB,6BAAqB,YAAY,KAAK,EAAE,IAAI,CAAC,UAAU,OAAO,CAAC;AAC/D,YAAI,CAAC,YAAY,KAAK,EAAE,SAAS;AACzB,gBAAA,UAAU,MAAM,SAAS,OAAO;AAAA,YACpC;AAAA,cACE,MAAM;AAAA,cACN,SAAS;AAAA,cACT,MAAM;AAAA,YAAA;AAAA,UACR,CACD;AACG,cAAA,CAAC,QAAQ,SAAS,QAAQ;AAC5B,qBAAS,GAAG,8DAA8D;AAAA,UAAA;AAEhE,sBAAA,KAAA,EAAO,UAAU,QAAQ;AAAA,QAAA;AAGjC,cAAA;AAAA,UACJ;AAAA,UACA,EAAE,aAAa,2BAA2B;AAAA,UAC1C,WAAW;AAAA,MAAA;AAAA,IACf;AAAA,EACF,EAED,OAAO,MAAM;AAEpB;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-types.js","sources":["../../../../src/cli/commands/ts/generate-types.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport tsUtils from '@strapi/typescript-utils';\nimport { createStrapi, compileStrapi } from '@strapi/core';\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 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":["compileStrapi","createStrapi","tsUtils","createCommand","runAction"],"mappings":";;;;;;;;AAcA,MAAM,SAAS,OAAO,EAAE,OAAO,QAAQ,SAAS,aAAyB;AAClE,OAAA,SAAS,YAAY,QAAQ;AAChC,YAAQ,MAAM,oEAAoE;AAClF,YAAQ,KAAK,CAAC;AAAA,
|
|
1
|
+
{"version":3,"file":"generate-types.js","sources":["../../../../src/cli/commands/ts/generate-types.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport tsUtils from '@strapi/typescript-utils';\nimport { createStrapi, compileStrapi } from '@strapi/core';\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 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":["compileStrapi","createStrapi","tsUtils","createCommand","runAction"],"mappings":";;;;;;;;AAcA,MAAM,SAAS,OAAO,EAAE,OAAO,QAAQ,SAAS,aAAyB;AAClE,OAAA,SAAS,YAAY,QAAQ;AAChC,YAAQ,MAAM,oEAAoE;AAClF,YAAQ,KAAK,CAAC;AAAA,EAAA;AAGhB,QAAM,aAAa,MAAMA,KAAAA,cAAc,EAAE,mBAAmB,MAAM;AAClE,QAAM,MAAM,MAAMC,KAAAA,aAAa,UAAU,EAAE,SAAS;AAE9C,QAAAC,iBAAA,QAAQ,WAAW,SAAS;AAAA,IAChC,QAAQ;AAAA,IACR,KAAK,WAAW;AAAA,IAChB,SAAS,UAAU;AAAA,IACnB,QAAQ;AAAA,MACN;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW,EAAE,cAAc,MAAM,YAAY,KAAK;AAAA,EAAA,CACnD;AAED,QAAM,IAAI,QAAQ;AACpB;AAKA,MAAM,UAAyB,MAAM;AACnC,SAAOC,UAAAA,cAAc,mBAAmB,EACrC,YAAY,8CAA8C,EAC1D,OAAO,eAAe,0CAA0C,KAAK,EACrE,OAAO,gBAAgB,mDAAmD,KAAK,EAC/E;AAAA,IACC;AAAA,IACA;AAAA,EAED,EAAA,OAAOC,QAAAA,UAAU,qBAAqB,MAAM,CAAC;AAClD;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-types.mjs","sources":["../../../../src/cli/commands/ts/generate-types.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport tsUtils from '@strapi/typescript-utils';\nimport { createStrapi, compileStrapi } from '@strapi/core';\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 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":["tsUtils"],"mappings":";;;;AAcA,MAAM,SAAS,OAAO,EAAE,OAAO,QAAQ,SAAS,aAAyB;AAClE,OAAA,SAAS,YAAY,QAAQ;AAChC,YAAQ,MAAM,oEAAoE;AAClF,YAAQ,KAAK,CAAC;AAAA,
|
|
1
|
+
{"version":3,"file":"generate-types.mjs","sources":["../../../../src/cli/commands/ts/generate-types.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport tsUtils from '@strapi/typescript-utils';\nimport { createStrapi, compileStrapi } from '@strapi/core';\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 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":["tsUtils"],"mappings":";;;;AAcA,MAAM,SAAS,OAAO,EAAE,OAAO,QAAQ,SAAS,aAAyB;AAClE,OAAA,SAAS,YAAY,QAAQ;AAChC,YAAQ,MAAM,oEAAoE;AAClF,YAAQ,KAAK,CAAC;AAAA,EAAA;AAGhB,QAAM,aAAa,MAAM,cAAc,EAAE,mBAAmB,MAAM;AAClE,QAAM,MAAM,MAAM,aAAa,UAAU,EAAE,SAAS;AAE9C,QAAAA,iBAAQ,WAAW,SAAS;AAAA,IAChC,QAAQ;AAAA,IACR,KAAK,WAAW;AAAA,IAChB,SAAS,UAAU;AAAA,IACnB,QAAQ;AAAA,MACN;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW,EAAE,cAAc,MAAM,YAAY,KAAK;AAAA,EAAA,CACnD;AAED,QAAM,IAAI,QAAQ;AACpB;AAKA,MAAM,UAAyB,MAAM;AACnC,SAAO,cAAc,mBAAmB,EACrC,YAAY,8CAA8C,EAC1D,OAAO,eAAe,0CAA0C,KAAK,EACrE,OAAO,gBAAgB,mDAAmD,KAAK,EAC/E;AAAA,IACC;AAAA,IACA;AAAA,EAED,EAAA,OAAO,UAAU,qBAAqB,MAAM,CAAC;AAClD;"}
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/cli/index.ts"],"sourcesContent":["import { Command } from 'commander';\n\nimport { commands as strapiCommands } from './commands';\n\nimport { createLogger } from './utils/logger';\nimport { loadTsConfig } from './utils/tsconfig';\nimport { CLIContext } from './types';\n\nconst createCLI = async (argv: string[], command = new Command()) => {\n // Initial program setup\n command.storeOptionsAsProperties(false).allowUnknownOption(true);\n\n // Help command\n command.helpOption('-h, --help', 'Display help for command');\n command.addHelpCommand('help [command]', 'Display help for command');\n\n command.version(\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require('../../package.json').version,\n '-v, --version',\n 'Output the version number'\n );\n\n const cwd = process.cwd();\n\n const hasDebug = argv.includes('--debug');\n const hasSilent = argv.includes('--silent');\n\n const logger = createLogger({ debug: hasDebug, silent: hasSilent, timestamp: false });\n\n const tsconfig = loadTsConfig({\n cwd,\n path: 'tsconfig.json',\n logger,\n });\n\n const ctx = {\n cwd,\n logger,\n tsconfig,\n } satisfies CLIContext;\n\n // Load all commands\n for (const commandFactory of strapiCommands) {\n try {\n const subCommand = await commandFactory({ command, argv, ctx });\n\n // Add this command to the Commander command object\n if (subCommand) {\n command.addCommand(subCommand);\n }\n } catch (e) {\n console.error(`Failed to load command`, e);\n }\n }\n\n // TODO v6: remove these deprecation notices\n const deprecatedCommands = [\n { name: 'plugin:init', message: 'Please use `npx @strapi/sdk-plugin init` instead.' },\n {\n name: 'plugin:verify',\n message: 'After migrating your plugin to v5, use `strapi-plugin verify`',\n },\n {\n name: 'plugin:watch',\n message: 'After migrating your plugin to v5, use `strapi-plugin watch`',\n },\n {\n name: 'plugin:watch:link',\n message: 'After migrating your plugin to v5, use `strapi-plugin watch:link`',\n },\n {\n name: 'plugin:build',\n message: 'After migrating your plugin to v5, use `strapi-plugin build`',\n },\n ];\n\n // Add hidden commands for deprecatedCommands that output a warning that the command has been removed.\n deprecatedCommands.forEach(({ name, message }) => {\n const deprecated = new Command(name)\n .command(name)\n .description('(deprecated)')\n .action(() => {\n console.warn(\n `The command ${name} has been deprecated. See the Strapi 5 migration guide for more information.`\n );\n if (message) {\n console.warn(message);\n }\n });\n command.addCommand(deprecated, { hidden: true });\n });\n return command;\n};\n\nconst runCLI = async (argv = process.argv, command = new Command()) => {\n const commands = await createCLI(argv, command);\n await commands.parseAsync(argv);\n};\n\nexport { runCLI, createCLI };\n"],"names":["Command","logger","createLogger","tsconfig","loadTsConfig","strapiCommands"],"mappings":";;;;;;AAQA,MAAM,YAAY,OAAO,MAAgB,UAAU,IAAIA,wBAAc;AAEnE,UAAQ,yBAAyB,KAAK,EAAE,mBAAmB,IAAI;AAGvD,UAAA,WAAW,cAAc,0BAA0B;AACnD,UAAA,eAAe,kBAAkB,0BAA0B;AAE3D,UAAA;AAAA;AAAA,IAEN,QAAQ,oBAAoB,EAAE;AAAA,IAC9B;AAAA,IACA;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/cli/index.ts"],"sourcesContent":["import { Command } from 'commander';\n\nimport { commands as strapiCommands } from './commands';\n\nimport { createLogger } from './utils/logger';\nimport { loadTsConfig } from './utils/tsconfig';\nimport { CLIContext } from './types';\n\nconst createCLI = async (argv: string[], command = new Command()) => {\n // Initial program setup\n command.storeOptionsAsProperties(false).allowUnknownOption(true);\n\n // Help command\n command.helpOption('-h, --help', 'Display help for command');\n command.addHelpCommand('help [command]', 'Display help for command');\n\n command.version(\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require('../../package.json').version,\n '-v, --version',\n 'Output the version number'\n );\n\n const cwd = process.cwd();\n\n const hasDebug = argv.includes('--debug');\n const hasSilent = argv.includes('--silent');\n\n const logger = createLogger({ debug: hasDebug, silent: hasSilent, timestamp: false });\n\n const tsconfig = loadTsConfig({\n cwd,\n path: 'tsconfig.json',\n logger,\n });\n\n const ctx = {\n cwd,\n logger,\n tsconfig,\n } satisfies CLIContext;\n\n // Load all commands\n for (const commandFactory of strapiCommands) {\n try {\n const subCommand = await commandFactory({ command, argv, ctx });\n\n // Add this command to the Commander command object\n if (subCommand) {\n command.addCommand(subCommand);\n }\n } catch (e) {\n console.error(`Failed to load command`, e);\n }\n }\n\n // TODO v6: remove these deprecation notices\n const deprecatedCommands = [\n { name: 'plugin:init', message: 'Please use `npx @strapi/sdk-plugin init` instead.' },\n {\n name: 'plugin:verify',\n message: 'After migrating your plugin to v5, use `strapi-plugin verify`',\n },\n {\n name: 'plugin:watch',\n message: 'After migrating your plugin to v5, use `strapi-plugin watch`',\n },\n {\n name: 'plugin:watch:link',\n message: 'After migrating your plugin to v5, use `strapi-plugin watch:link`',\n },\n {\n name: 'plugin:build',\n message: 'After migrating your plugin to v5, use `strapi-plugin build`',\n },\n ];\n\n // Add hidden commands for deprecatedCommands that output a warning that the command has been removed.\n deprecatedCommands.forEach(({ name, message }) => {\n const deprecated = new Command(name)\n .command(name)\n .description('(deprecated)')\n .action(() => {\n console.warn(\n `The command ${name} has been deprecated. See the Strapi 5 migration guide for more information.`\n );\n if (message) {\n console.warn(message);\n }\n });\n command.addCommand(deprecated, { hidden: true });\n });\n return command;\n};\n\nconst runCLI = async (argv = process.argv, command = new Command()) => {\n const commands = await createCLI(argv, command);\n await commands.parseAsync(argv);\n};\n\nexport { runCLI, createCLI };\n"],"names":["Command","logger","createLogger","tsconfig","loadTsConfig","strapiCommands"],"mappings":";;;;;;AAQA,MAAM,YAAY,OAAO,MAAgB,UAAU,IAAIA,wBAAc;AAEnE,UAAQ,yBAAyB,KAAK,EAAE,mBAAmB,IAAI;AAGvD,UAAA,WAAW,cAAc,0BAA0B;AACnD,UAAA,eAAe,kBAAkB,0BAA0B;AAE3D,UAAA;AAAA;AAAA,IAEN,QAAQ,oBAAoB,EAAE;AAAA,IAC9B;AAAA,IACA;AAAA,EACF;AAEM,QAAA,MAAM,QAAQ,IAAI;AAElB,QAAA,WAAW,KAAK,SAAS,SAAS;AAClC,QAAA,YAAY,KAAK,SAAS,UAAU;AAEpC,QAAAC,WAASC,oBAAa,EAAE,OAAO,UAAU,QAAQ,WAAW,WAAW,OAAO;AAEpF,QAAMC,aAAWC,SAAAA,aAAa;AAAA,IAC5B;AAAA,IACA,MAAM;AAAA,IACNH,QAAAA;AAAAA,EAAA,CACD;AAED,QAAM,MAAM;AAAA,IACV;AAAA,IAAA,QACAA;AAAAA,IACAE,UAAAA;AAAAA,EACF;AAGA,aAAW,kBAAkBE,gBAAgB;AACvC,QAAA;AACF,YAAM,aAAa,MAAM,eAAe,EAAE,SAAS,MAAM,KAAK;AAG9D,UAAI,YAAY;AACd,gBAAQ,WAAW,UAAU;AAAA,MAAA;AAAA,aAExB,GAAG;AACF,cAAA,MAAM,0BAA0B,CAAC;AAAA,IAAA;AAAA,EAC3C;AAIF,QAAM,qBAAqB;AAAA,IACzB,EAAE,MAAM,eAAe,SAAS,oDAAoD;AAAA,IACpF;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EAEb;AAGA,qBAAmB,QAAQ,CAAC,EAAE,MAAM,cAAc;AAChD,UAAM,aAAa,IAAIL,kBAAQ,IAAI,EAChC,QAAQ,IAAI,EACZ,YAAY,cAAc,EAC1B,OAAO,MAAM;AACJ,cAAA;AAAA,QACN,eAAe,IAAI;AAAA,MACrB;AACA,UAAI,SAAS;AACX,gBAAQ,KAAK,OAAO;AAAA,MAAA;AAAA,IACtB,CACD;AACH,YAAQ,WAAW,YAAY,EAAE,QAAQ,MAAM;AAAA,EAAA,CAChD;AACM,SAAA;AACT;AAEM,MAAA,SAAS,OAAO,OAAO,QAAQ,MAAM,UAAU,IAAIA,UAAAA,cAAc;AACrE,QAAM,WAAW,MAAM,UAAU,MAAM,OAAO;AACxC,QAAA,SAAS,WAAW,IAAI;AAChC;;;"}
|
package/dist/cli/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/cli/index.ts"],"sourcesContent":["import { Command } from 'commander';\n\nimport { commands as strapiCommands } from './commands';\n\nimport { createLogger } from './utils/logger';\nimport { loadTsConfig } from './utils/tsconfig';\nimport { CLIContext } from './types';\n\nconst createCLI = async (argv: string[], command = new Command()) => {\n // Initial program setup\n command.storeOptionsAsProperties(false).allowUnknownOption(true);\n\n // Help command\n command.helpOption('-h, --help', 'Display help for command');\n command.addHelpCommand('help [command]', 'Display help for command');\n\n command.version(\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require('../../package.json').version,\n '-v, --version',\n 'Output the version number'\n );\n\n const cwd = process.cwd();\n\n const hasDebug = argv.includes('--debug');\n const hasSilent = argv.includes('--silent');\n\n const logger = createLogger({ debug: hasDebug, silent: hasSilent, timestamp: false });\n\n const tsconfig = loadTsConfig({\n cwd,\n path: 'tsconfig.json',\n logger,\n });\n\n const ctx = {\n cwd,\n logger,\n tsconfig,\n } satisfies CLIContext;\n\n // Load all commands\n for (const commandFactory of strapiCommands) {\n try {\n const subCommand = await commandFactory({ command, argv, ctx });\n\n // Add this command to the Commander command object\n if (subCommand) {\n command.addCommand(subCommand);\n }\n } catch (e) {\n console.error(`Failed to load command`, e);\n }\n }\n\n // TODO v6: remove these deprecation notices\n const deprecatedCommands = [\n { name: 'plugin:init', message: 'Please use `npx @strapi/sdk-plugin init` instead.' },\n {\n name: 'plugin:verify',\n message: 'After migrating your plugin to v5, use `strapi-plugin verify`',\n },\n {\n name: 'plugin:watch',\n message: 'After migrating your plugin to v5, use `strapi-plugin watch`',\n },\n {\n name: 'plugin:watch:link',\n message: 'After migrating your plugin to v5, use `strapi-plugin watch:link`',\n },\n {\n name: 'plugin:build',\n message: 'After migrating your plugin to v5, use `strapi-plugin build`',\n },\n ];\n\n // Add hidden commands for deprecatedCommands that output a warning that the command has been removed.\n deprecatedCommands.forEach(({ name, message }) => {\n const deprecated = new Command(name)\n .command(name)\n .description('(deprecated)')\n .action(() => {\n console.warn(\n `The command ${name} has been deprecated. See the Strapi 5 migration guide for more information.`\n );\n if (message) {\n console.warn(message);\n }\n });\n command.addCommand(deprecated, { hidden: true });\n });\n return command;\n};\n\nconst runCLI = async (argv = process.argv, command = new Command()) => {\n const commands = await createCLI(argv, command);\n await commands.parseAsync(argv);\n};\n\nexport { runCLI, createCLI };\n"],"names":["strapiCommands","commands"],"mappings":";;;;AAQA,MAAM,YAAY,OAAO,MAAgB,UAAU,IAAI,cAAc;AAEnE,UAAQ,yBAAyB,KAAK,EAAE,mBAAmB,IAAI;AAGvD,UAAA,WAAW,cAAc,0BAA0B;AACnD,UAAA,eAAe,kBAAkB,0BAA0B;AAE3D,UAAA;AAAA;AAAA,IAEN,QAAQ,oBAAoB,EAAE;AAAA,IAC9B;AAAA,IACA;AAAA,
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/cli/index.ts"],"sourcesContent":["import { Command } from 'commander';\n\nimport { commands as strapiCommands } from './commands';\n\nimport { createLogger } from './utils/logger';\nimport { loadTsConfig } from './utils/tsconfig';\nimport { CLIContext } from './types';\n\nconst createCLI = async (argv: string[], command = new Command()) => {\n // Initial program setup\n command.storeOptionsAsProperties(false).allowUnknownOption(true);\n\n // Help command\n command.helpOption('-h, --help', 'Display help for command');\n command.addHelpCommand('help [command]', 'Display help for command');\n\n command.version(\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require('../../package.json').version,\n '-v, --version',\n 'Output the version number'\n );\n\n const cwd = process.cwd();\n\n const hasDebug = argv.includes('--debug');\n const hasSilent = argv.includes('--silent');\n\n const logger = createLogger({ debug: hasDebug, silent: hasSilent, timestamp: false });\n\n const tsconfig = loadTsConfig({\n cwd,\n path: 'tsconfig.json',\n logger,\n });\n\n const ctx = {\n cwd,\n logger,\n tsconfig,\n } satisfies CLIContext;\n\n // Load all commands\n for (const commandFactory of strapiCommands) {\n try {\n const subCommand = await commandFactory({ command, argv, ctx });\n\n // Add this command to the Commander command object\n if (subCommand) {\n command.addCommand(subCommand);\n }\n } catch (e) {\n console.error(`Failed to load command`, e);\n }\n }\n\n // TODO v6: remove these deprecation notices\n const deprecatedCommands = [\n { name: 'plugin:init', message: 'Please use `npx @strapi/sdk-plugin init` instead.' },\n {\n name: 'plugin:verify',\n message: 'After migrating your plugin to v5, use `strapi-plugin verify`',\n },\n {\n name: 'plugin:watch',\n message: 'After migrating your plugin to v5, use `strapi-plugin watch`',\n },\n {\n name: 'plugin:watch:link',\n message: 'After migrating your plugin to v5, use `strapi-plugin watch:link`',\n },\n {\n name: 'plugin:build',\n message: 'After migrating your plugin to v5, use `strapi-plugin build`',\n },\n ];\n\n // Add hidden commands for deprecatedCommands that output a warning that the command has been removed.\n deprecatedCommands.forEach(({ name, message }) => {\n const deprecated = new Command(name)\n .command(name)\n .description('(deprecated)')\n .action(() => {\n console.warn(\n `The command ${name} has been deprecated. See the Strapi 5 migration guide for more information.`\n );\n if (message) {\n console.warn(message);\n }\n });\n command.addCommand(deprecated, { hidden: true });\n });\n return command;\n};\n\nconst runCLI = async (argv = process.argv, command = new Command()) => {\n const commands = await createCLI(argv, command);\n await commands.parseAsync(argv);\n};\n\nexport { runCLI, createCLI };\n"],"names":["strapiCommands","commands"],"mappings":";;;;AAQA,MAAM,YAAY,OAAO,MAAgB,UAAU,IAAI,cAAc;AAEnE,UAAQ,yBAAyB,KAAK,EAAE,mBAAmB,IAAI;AAGvD,UAAA,WAAW,cAAc,0BAA0B;AACnD,UAAA,eAAe,kBAAkB,0BAA0B;AAE3D,UAAA;AAAA;AAAA,IAEN,QAAQ,oBAAoB,EAAE;AAAA,IAC9B;AAAA,IACA;AAAA,EACF;AAEM,QAAA,MAAM,QAAQ,IAAI;AAElB,QAAA,WAAW,KAAK,SAAS,SAAS;AAClC,QAAA,YAAY,KAAK,SAAS,UAAU;AAEpC,QAAA,SAAS,aAAa,EAAE,OAAO,UAAU,QAAQ,WAAW,WAAW,OAAO;AAEpF,QAAM,WAAW,aAAa;AAAA,IAC5B;AAAA,IACA,MAAM;AAAA,IACN;AAAA,EAAA,CACD;AAED,QAAM,MAAM;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAGA,aAAW,kBAAkBA,UAAgB;AACvC,QAAA;AACF,YAAM,aAAa,MAAM,eAAe,EAAE,SAAS,MAAM,KAAK;AAG9D,UAAI,YAAY;AACd,gBAAQ,WAAW,UAAU;AAAA,MAAA;AAAA,aAExB,GAAG;AACF,cAAA,MAAM,0BAA0B,CAAC;AAAA,IAAA;AAAA,EAC3C;AAIF,QAAM,qBAAqB;AAAA,IACzB,EAAE,MAAM,eAAe,SAAS,oDAAoD;AAAA,IACpF;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EAEb;AAGA,qBAAmB,QAAQ,CAAC,EAAE,MAAM,cAAc;AAChD,UAAM,aAAa,IAAI,QAAQ,IAAI,EAChC,QAAQ,IAAI,EACZ,YAAY,cAAc,EAC1B,OAAO,MAAM;AACJ,cAAA;AAAA,QACN,eAAe,IAAI;AAAA,MACrB;AACA,UAAI,SAAS;AACX,gBAAQ,KAAK,OAAO;AAAA,MAAA;AAAA,IACtB,CACD;AACH,YAAQ,WAAW,YAAY,EAAE,QAAQ,MAAM;AAAA,EAAA,CAChD;AACM,SAAA;AACT;AAEM,MAAA,SAAS,OAAO,OAAO,QAAQ,MAAM,UAAU,IAAI,cAAc;AACrE,QAAMC,YAAW,MAAM,UAAU,MAAM,OAAO;AACxC,QAAAA,UAAS,WAAW,IAAI;AAChC;"}
|
|
@@ -59,8 +59,7 @@ const promptEncryptionKey = async (thisCommand) => {
|
|
|
59
59
|
message: "Please enter an encryption key",
|
|
60
60
|
name: "key",
|
|
61
61
|
validate(key) {
|
|
62
|
-
if (key.length > 0)
|
|
63
|
-
return true;
|
|
62
|
+
if (key.length > 0) return true;
|
|
64
63
|
return "Key must be present when using the encrypt option";
|
|
65
64
|
}
|
|
66
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commander.js","sources":["../../../src/cli/utils/commander.ts"],"sourcesContent":["/**\n * This file includes hooks to use for commander.hook and argParsers for commander.argParser\n */\n\nimport inquirer from 'inquirer';\nimport { Command, InvalidOptionArgumentError, Option } from 'commander';\nimport chalk from 'chalk';\nimport { isNaN } from 'lodash/fp';\nimport { exitWith } from './helpers';\n\n/**\n * argParser: Parse a comma-delimited string as an array\n */\nconst parseList = (value: string) => {\n try {\n return value.split(',').map((item) => item.trim()); // trim shouldn't be necessary but might help catch unexpected whitespace characters\n } catch (e) {\n exitWith(1, `Unrecognized input: ${value}`);\n }\n\n return [];\n};\n\n/**\n * Returns an argParser that returns a list\n */\nconst getParseListWithChoices = (choices: string[], errorMessage = 'Invalid options:') => {\n return (value: string) => {\n const list = parseList(value);\n const invalid = list.filter((item) => {\n return !choices.includes(item);\n });\n\n if (invalid.length > 0) {\n exitWith(1, `${errorMessage}: ${invalid.join(',')}`);\n }\n\n return list;\n };\n};\n\n/**\n * argParser: Parse a string as an integer\n */\nconst parseInteger = (value: string) => {\n // parseInt takes a string and a radix\n const parsedValue = parseInt(value, 10);\n if (isNaN(parsedValue)) {\n throw new InvalidOptionArgumentError(`Not an integer: ${value}`);\n }\n return parsedValue;\n};\n\n/**\n * argParser: Parse a string as a URL object\n */\nconst parseURL = (value: string) => {\n try {\n const url = new URL(value);\n if (!url.host) {\n throw new InvalidOptionArgumentError(`Could not parse url ${value}`);\n }\n\n return url;\n } catch (e) {\n throw new InvalidOptionArgumentError(`Could not parse url ${value}`);\n }\n};\n\n/**\n * hook: if encrypt==true and key not provided, prompt for it\n */\nconst promptEncryptionKey = async (thisCommand: Command) => {\n const opts = thisCommand.opts();\n\n if (!opts.encrypt && opts.key) {\n return exitWith(1, 'Key may not be present unless encryption is used');\n }\n\n // if encrypt==true but we have no key, prompt for it\n if (opts.encrypt && !(opts.key && opts.key.length > 0)) {\n try {\n const answers = await inquirer.prompt([\n {\n type: 'password',\n message: 'Please enter an encryption key',\n name: 'key',\n validate(key) {\n if (key.length > 0) return true;\n\n return 'Key must be present when using the encrypt option';\n },\n },\n ]);\n opts.key = answers.key;\n } catch (e) {\n return exitWith(1, 'Failed to get encryption key');\n }\n if (!opts.key) {\n return exitWith(1, 'Failed to get encryption key');\n }\n }\n};\n\n/**\n * hook: require a confirmation message to be accepted unless forceOption (-f,--force) is used\n */\nconst getCommanderConfirmMessage = (\n message: string,\n { failMessage }: { failMessage?: string } = {}\n) => {\n return async (command: Command) => {\n const confirmed = await confirmMessage(message, { force: command.opts().force });\n if (!confirmed) {\n exitWith(1, failMessage);\n }\n };\n};\n\nconst confirmMessage = async (message: string, { force }: { force?: boolean } = {}) => {\n // if we have a force option, respond yes\n if (force === true) {\n // attempt to mimic the inquirer prompt exactly\n console.log(`${chalk.green('?')} ${chalk.bold(message)} ${chalk.cyan('Yes')}`);\n return true;\n }\n\n const answers = await inquirer.prompt([\n {\n type: 'confirm',\n message,\n name: `confirm`,\n default: false,\n },\n ]);\n\n return answers.confirm;\n};\n\nconst forceOption = new Option(\n '--force',\n `Automatically answer \"yes\" to all prompts, including potentially destructive requests, and run non-interactively.`\n);\n\nexport {\n getParseListWithChoices,\n parseList,\n parseURL,\n parseInteger,\n promptEncryptionKey,\n getCommanderConfirmMessage,\n confirmMessage,\n forceOption,\n};\n"],"names":["exitWith","isNaN","InvalidOptionArgumentError","inquirer","chalk","Option"],"mappings":";;;;;;;;;;AAaM,MAAA,YAAY,CAAC,UAAkB;AAC/B,MAAA;AACK,WAAA,MAAM,MAAM,GAAG,EAAE,IAAI,CAAC,SAAS,KAAK,
|
|
1
|
+
{"version":3,"file":"commander.js","sources":["../../../src/cli/utils/commander.ts"],"sourcesContent":["/**\n * This file includes hooks to use for commander.hook and argParsers for commander.argParser\n */\n\nimport inquirer from 'inquirer';\nimport { Command, InvalidOptionArgumentError, Option } from 'commander';\nimport chalk from 'chalk';\nimport { isNaN } from 'lodash/fp';\nimport { exitWith } from './helpers';\n\n/**\n * argParser: Parse a comma-delimited string as an array\n */\nconst parseList = (value: string) => {\n try {\n return value.split(',').map((item) => item.trim()); // trim shouldn't be necessary but might help catch unexpected whitespace characters\n } catch (e) {\n exitWith(1, `Unrecognized input: ${value}`);\n }\n\n return [];\n};\n\n/**\n * Returns an argParser that returns a list\n */\nconst getParseListWithChoices = (choices: string[], errorMessage = 'Invalid options:') => {\n return (value: string) => {\n const list = parseList(value);\n const invalid = list.filter((item) => {\n return !choices.includes(item);\n });\n\n if (invalid.length > 0) {\n exitWith(1, `${errorMessage}: ${invalid.join(',')}`);\n }\n\n return list;\n };\n};\n\n/**\n * argParser: Parse a string as an integer\n */\nconst parseInteger = (value: string) => {\n // parseInt takes a string and a radix\n const parsedValue = parseInt(value, 10);\n if (isNaN(parsedValue)) {\n throw new InvalidOptionArgumentError(`Not an integer: ${value}`);\n }\n return parsedValue;\n};\n\n/**\n * argParser: Parse a string as a URL object\n */\nconst parseURL = (value: string) => {\n try {\n const url = new URL(value);\n if (!url.host) {\n throw new InvalidOptionArgumentError(`Could not parse url ${value}`);\n }\n\n return url;\n } catch (e) {\n throw new InvalidOptionArgumentError(`Could not parse url ${value}`);\n }\n};\n\n/**\n * hook: if encrypt==true and key not provided, prompt for it\n */\nconst promptEncryptionKey = async (thisCommand: Command) => {\n const opts = thisCommand.opts();\n\n if (!opts.encrypt && opts.key) {\n return exitWith(1, 'Key may not be present unless encryption is used');\n }\n\n // if encrypt==true but we have no key, prompt for it\n if (opts.encrypt && !(opts.key && opts.key.length > 0)) {\n try {\n const answers = await inquirer.prompt([\n {\n type: 'password',\n message: 'Please enter an encryption key',\n name: 'key',\n validate(key) {\n if (key.length > 0) return true;\n\n return 'Key must be present when using the encrypt option';\n },\n },\n ]);\n opts.key = answers.key;\n } catch (e) {\n return exitWith(1, 'Failed to get encryption key');\n }\n if (!opts.key) {\n return exitWith(1, 'Failed to get encryption key');\n }\n }\n};\n\n/**\n * hook: require a confirmation message to be accepted unless forceOption (-f,--force) is used\n */\nconst getCommanderConfirmMessage = (\n message: string,\n { failMessage }: { failMessage?: string } = {}\n) => {\n return async (command: Command) => {\n const confirmed = await confirmMessage(message, { force: command.opts().force });\n if (!confirmed) {\n exitWith(1, failMessage);\n }\n };\n};\n\nconst confirmMessage = async (message: string, { force }: { force?: boolean } = {}) => {\n // if we have a force option, respond yes\n if (force === true) {\n // attempt to mimic the inquirer prompt exactly\n console.log(`${chalk.green('?')} ${chalk.bold(message)} ${chalk.cyan('Yes')}`);\n return true;\n }\n\n const answers = await inquirer.prompt([\n {\n type: 'confirm',\n message,\n name: `confirm`,\n default: false,\n },\n ]);\n\n return answers.confirm;\n};\n\nconst forceOption = new Option(\n '--force',\n `Automatically answer \"yes\" to all prompts, including potentially destructive requests, and run non-interactively.`\n);\n\nexport {\n getParseListWithChoices,\n parseList,\n parseURL,\n parseInteger,\n promptEncryptionKey,\n getCommanderConfirmMessage,\n confirmMessage,\n forceOption,\n};\n"],"names":["exitWith","isNaN","InvalidOptionArgumentError","inquirer","chalk","Option"],"mappings":"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"}
|
|
@@ -54,8 +54,7 @@ const promptEncryptionKey = async (thisCommand) => {
|
|
|
54
54
|
message: "Please enter an encryption key",
|
|
55
55
|
name: "key",
|
|
56
56
|
validate(key) {
|
|
57
|
-
if (key.length > 0)
|
|
58
|
-
return true;
|
|
57
|
+
if (key.length > 0) return true;
|
|
59
58
|
return "Key must be present when using the encrypt option";
|
|
60
59
|
}
|
|
61
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commander.mjs","sources":["../../../src/cli/utils/commander.ts"],"sourcesContent":["/**\n * This file includes hooks to use for commander.hook and argParsers for commander.argParser\n */\n\nimport inquirer from 'inquirer';\nimport { Command, InvalidOptionArgumentError, Option } from 'commander';\nimport chalk from 'chalk';\nimport { isNaN } from 'lodash/fp';\nimport { exitWith } from './helpers';\n\n/**\n * argParser: Parse a comma-delimited string as an array\n */\nconst parseList = (value: string) => {\n try {\n return value.split(',').map((item) => item.trim()); // trim shouldn't be necessary but might help catch unexpected whitespace characters\n } catch (e) {\n exitWith(1, `Unrecognized input: ${value}`);\n }\n\n return [];\n};\n\n/**\n * Returns an argParser that returns a list\n */\nconst getParseListWithChoices = (choices: string[], errorMessage = 'Invalid options:') => {\n return (value: string) => {\n const list = parseList(value);\n const invalid = list.filter((item) => {\n return !choices.includes(item);\n });\n\n if (invalid.length > 0) {\n exitWith(1, `${errorMessage}: ${invalid.join(',')}`);\n }\n\n return list;\n };\n};\n\n/**\n * argParser: Parse a string as an integer\n */\nconst parseInteger = (value: string) => {\n // parseInt takes a string and a radix\n const parsedValue = parseInt(value, 10);\n if (isNaN(parsedValue)) {\n throw new InvalidOptionArgumentError(`Not an integer: ${value}`);\n }\n return parsedValue;\n};\n\n/**\n * argParser: Parse a string as a URL object\n */\nconst parseURL = (value: string) => {\n try {\n const url = new URL(value);\n if (!url.host) {\n throw new InvalidOptionArgumentError(`Could not parse url ${value}`);\n }\n\n return url;\n } catch (e) {\n throw new InvalidOptionArgumentError(`Could not parse url ${value}`);\n }\n};\n\n/**\n * hook: if encrypt==true and key not provided, prompt for it\n */\nconst promptEncryptionKey = async (thisCommand: Command) => {\n const opts = thisCommand.opts();\n\n if (!opts.encrypt && opts.key) {\n return exitWith(1, 'Key may not be present unless encryption is used');\n }\n\n // if encrypt==true but we have no key, prompt for it\n if (opts.encrypt && !(opts.key && opts.key.length > 0)) {\n try {\n const answers = await inquirer.prompt([\n {\n type: 'password',\n message: 'Please enter an encryption key',\n name: 'key',\n validate(key) {\n if (key.length > 0) return true;\n\n return 'Key must be present when using the encrypt option';\n },\n },\n ]);\n opts.key = answers.key;\n } catch (e) {\n return exitWith(1, 'Failed to get encryption key');\n }\n if (!opts.key) {\n return exitWith(1, 'Failed to get encryption key');\n }\n }\n};\n\n/**\n * hook: require a confirmation message to be accepted unless forceOption (-f,--force) is used\n */\nconst getCommanderConfirmMessage = (\n message: string,\n { failMessage }: { failMessage?: string } = {}\n) => {\n return async (command: Command) => {\n const confirmed = await confirmMessage(message, { force: command.opts().force });\n if (!confirmed) {\n exitWith(1, failMessage);\n }\n };\n};\n\nconst confirmMessage = async (message: string, { force }: { force?: boolean } = {}) => {\n // if we have a force option, respond yes\n if (force === true) {\n // attempt to mimic the inquirer prompt exactly\n console.log(`${chalk.green('?')} ${chalk.bold(message)} ${chalk.cyan('Yes')}`);\n return true;\n }\n\n const answers = await inquirer.prompt([\n {\n type: 'confirm',\n message,\n name: `confirm`,\n default: false,\n },\n ]);\n\n return answers.confirm;\n};\n\nconst forceOption = new Option(\n '--force',\n `Automatically answer \"yes\" to all prompts, including potentially destructive requests, and run non-interactively.`\n);\n\nexport {\n getParseListWithChoices,\n parseList,\n parseURL,\n parseInteger,\n promptEncryptionKey,\n getCommanderConfirmMessage,\n confirmMessage,\n forceOption,\n};\n"],"names":[],"mappings":";;;;;AAaM,MAAA,YAAY,CAAC,UAAkB;AAC/B,MAAA;AACK,WAAA,MAAM,MAAM,GAAG,EAAE,IAAI,CAAC,SAAS,KAAK,
|
|
1
|
+
{"version":3,"file":"commander.mjs","sources":["../../../src/cli/utils/commander.ts"],"sourcesContent":["/**\n * This file includes hooks to use for commander.hook and argParsers for commander.argParser\n */\n\nimport inquirer from 'inquirer';\nimport { Command, InvalidOptionArgumentError, Option } from 'commander';\nimport chalk from 'chalk';\nimport { isNaN } from 'lodash/fp';\nimport { exitWith } from './helpers';\n\n/**\n * argParser: Parse a comma-delimited string as an array\n */\nconst parseList = (value: string) => {\n try {\n return value.split(',').map((item) => item.trim()); // trim shouldn't be necessary but might help catch unexpected whitespace characters\n } catch (e) {\n exitWith(1, `Unrecognized input: ${value}`);\n }\n\n return [];\n};\n\n/**\n * Returns an argParser that returns a list\n */\nconst getParseListWithChoices = (choices: string[], errorMessage = 'Invalid options:') => {\n return (value: string) => {\n const list = parseList(value);\n const invalid = list.filter((item) => {\n return !choices.includes(item);\n });\n\n if (invalid.length > 0) {\n exitWith(1, `${errorMessage}: ${invalid.join(',')}`);\n }\n\n return list;\n };\n};\n\n/**\n * argParser: Parse a string as an integer\n */\nconst parseInteger = (value: string) => {\n // parseInt takes a string and a radix\n const parsedValue = parseInt(value, 10);\n if (isNaN(parsedValue)) {\n throw new InvalidOptionArgumentError(`Not an integer: ${value}`);\n }\n return parsedValue;\n};\n\n/**\n * argParser: Parse a string as a URL object\n */\nconst parseURL = (value: string) => {\n try {\n const url = new URL(value);\n if (!url.host) {\n throw new InvalidOptionArgumentError(`Could not parse url ${value}`);\n }\n\n return url;\n } catch (e) {\n throw new InvalidOptionArgumentError(`Could not parse url ${value}`);\n }\n};\n\n/**\n * hook: if encrypt==true and key not provided, prompt for it\n */\nconst promptEncryptionKey = async (thisCommand: Command) => {\n const opts = thisCommand.opts();\n\n if (!opts.encrypt && opts.key) {\n return exitWith(1, 'Key may not be present unless encryption is used');\n }\n\n // if encrypt==true but we have no key, prompt for it\n if (opts.encrypt && !(opts.key && opts.key.length > 0)) {\n try {\n const answers = await inquirer.prompt([\n {\n type: 'password',\n message: 'Please enter an encryption key',\n name: 'key',\n validate(key) {\n if (key.length > 0) return true;\n\n return 'Key must be present when using the encrypt option';\n },\n },\n ]);\n opts.key = answers.key;\n } catch (e) {\n return exitWith(1, 'Failed to get encryption key');\n }\n if (!opts.key) {\n return exitWith(1, 'Failed to get encryption key');\n }\n }\n};\n\n/**\n * hook: require a confirmation message to be accepted unless forceOption (-f,--force) is used\n */\nconst getCommanderConfirmMessage = (\n message: string,\n { failMessage }: { failMessage?: string } = {}\n) => {\n return async (command: Command) => {\n const confirmed = await confirmMessage(message, { force: command.opts().force });\n if (!confirmed) {\n exitWith(1, failMessage);\n }\n };\n};\n\nconst confirmMessage = async (message: string, { force }: { force?: boolean } = {}) => {\n // if we have a force option, respond yes\n if (force === true) {\n // attempt to mimic the inquirer prompt exactly\n console.log(`${chalk.green('?')} ${chalk.bold(message)} ${chalk.cyan('Yes')}`);\n return true;\n }\n\n const answers = await inquirer.prompt([\n {\n type: 'confirm',\n message,\n name: `confirm`,\n default: false,\n },\n ]);\n\n return answers.confirm;\n};\n\nconst forceOption = new Option(\n '--force',\n `Automatically answer \"yes\" to all prompts, including potentially destructive requests, and run non-interactively.`\n);\n\nexport {\n getParseListWithChoices,\n parseList,\n parseURL,\n parseInteger,\n promptEncryptionKey,\n getCommanderConfirmMessage,\n confirmMessage,\n forceOption,\n};\n"],"names":[],"mappings":";;;;;AAaM,MAAA,YAAY,CAAC,UAAkB;AAC/B,MAAA;AACK,WAAA,MAAM,MAAM,GAAG,EAAE,IAAI,CAAC,SAAS,KAAK,MAAM;AAAA,WAC1C,GAAG;AACD,aAAA,GAAG,uBAAuB,KAAK,EAAE;AAAA,EAAA;AAG5C,SAAO,CAAC;AACV;AAKA,MAAM,0BAA0B,CAAC,SAAmB,eAAe,uBAAuB;AACxF,SAAO,CAAC,UAAkB;AAClB,UAAA,OAAO,UAAU,KAAK;AAC5B,UAAM,UAAU,KAAK,OAAO,CAAC,SAAS;AAC7B,aAAA,CAAC,QAAQ,SAAS,IAAI;AAAA,IAAA,CAC9B;AAEG,QAAA,QAAQ,SAAS,GAAG;AACb,eAAA,GAAG,GAAG,YAAY,KAAK,QAAQ,KAAK,GAAG,CAAC,EAAE;AAAA,IAAA;AAG9C,WAAA;AAAA,EACT;AACF;AAKM,MAAA,eAAe,CAAC,UAAkB;AAEhC,QAAA,cAAc,SAAS,OAAO,EAAE;AAClC,MAAA,MAAM,WAAW,GAAG;AACtB,UAAM,IAAI,2BAA2B,mBAAmB,KAAK,EAAE;AAAA,EAAA;AAE1D,SAAA;AACT;AAKM,MAAA,WAAW,CAAC,UAAkB;AAC9B,MAAA;AACI,UAAA,MAAM,IAAI,IAAI,KAAK;AACrB,QAAA,CAAC,IAAI,MAAM;AACb,YAAM,IAAI,2BAA2B,uBAAuB,KAAK,EAAE;AAAA,IAAA;AAG9D,WAAA;AAAA,WACA,GAAG;AACV,UAAM,IAAI,2BAA2B,uBAAuB,KAAK,EAAE;AAAA,EAAA;AAEvE;AAKM,MAAA,sBAAsB,OAAO,gBAAyB;AACpD,QAAA,OAAO,YAAY,KAAK;AAE9B,MAAI,CAAC,KAAK,WAAW,KAAK,KAAK;AACtB,WAAA,SAAS,GAAG,kDAAkD;AAAA,EAAA;AAInE,MAAA,KAAK,WAAW,EAAE,KAAK,OAAO,KAAK,IAAI,SAAS,IAAI;AAClD,QAAA;AACI,YAAA,UAAU,MAAM,SAAS,OAAO;AAAA,QACpC;AAAA,UACE,MAAM;AAAA,UACN,SAAS;AAAA,UACT,MAAM;AAAA,UACN,SAAS,KAAK;AACR,gBAAA,IAAI,SAAS,EAAU,QAAA;AAEpB,mBAAA;AAAA,UAAA;AAAA,QACT;AAAA,MACF,CACD;AACD,WAAK,MAAM,QAAQ;AAAA,aACZ,GAAG;AACH,aAAA,SAAS,GAAG,8BAA8B;AAAA,IAAA;AAE/C,QAAA,CAAC,KAAK,KAAK;AACN,aAAA,SAAS,GAAG,8BAA8B;AAAA,IAAA;AAAA,EACnD;AAEJ;AAKA,MAAM,6BAA6B,CACjC,SACA,EAAE,YAAY,IAA8B,CAAA,MACzC;AACH,SAAO,OAAO,YAAqB;AAC3B,UAAA,YAAY,MAAM,eAAe,SAAS,EAAE,OAAO,QAAQ,OAAO,OAAO;AAC/E,QAAI,CAAC,WAAW;AACd,eAAS,GAAG,WAAW;AAAA,IAAA;AAAA,EAE3B;AACF;AAEA,MAAM,iBAAiB,OAAO,SAAiB,EAAE,MAAM,IAAyB,CAAA,MAAO;AAErF,MAAI,UAAU,MAAM;AAElB,YAAQ,IAAI,GAAG,MAAM,MAAM,GAAG,CAAC,IAAI,MAAM,KAAK,OAAO,CAAC,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE;AACtE,WAAA;AAAA,EAAA;AAGH,QAAA,UAAU,MAAM,SAAS,OAAO;AAAA,IACpC;AAAA,MACE,MAAM;AAAA,MACN;AAAA,MACA,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EACX,CACD;AAED,SAAO,QAAQ;AACjB;AAEA,MAAM,cAAc,IAAI;AAAA,EACtB;AAAA,EACA;AACF;"}
|
|
@@ -20,7 +20,7 @@ declare const throttleOption: Option;
|
|
|
20
20
|
declare const excludeOption: Option;
|
|
21
21
|
declare const onlyOption: Option;
|
|
22
22
|
declare const validateExcludeOnly: (command: Command) => void;
|
|
23
|
-
declare const formatDiagnostic: (operation: string) => Parameters<engineDataTransfer.TransferEngine['diagnostics']['onDiagnostic']>[0];
|
|
23
|
+
declare const formatDiagnostic: (operation: string, info?: boolean) => Parameters<engineDataTransfer.TransferEngine['diagnostics']['onDiagnostic']>[0];
|
|
24
24
|
type Loaders = {
|
|
25
25
|
[key in engineDataTransfer.TransferStage]: ora.Ora;
|
|
26
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-transfer.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/data-transfer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,MAAM,IAAI,kBAAkB,EAAgC,MAAM,uBAAuB,CAAC;AASnG,QAAA,MAAM,eAAe,YAAa,MAAM,4BAUvC,CAAC;AAmBF,QAAA,MAAM,oBAAoB,cAEzB,CAAC;AAEF,KAAK,UAAU,GAAG,kBAAkB,CAAC,gBAAgB,CACnD,kBAAkB,CAAC,eAAe,EAClC,kBAAkB,CAAC,oBAAoB,CACxC,CAAC,QAAQ,CAAC,CAAC;AAEZ,QAAA,MAAM,kBAAkB,eAAgB,UAAU,4BAoDjD,CAAC;AAEF,QAAA,MAAM,6BAA6B,UAWlC,CAAC;AAEF,QAAA,MAAM,aAAa,wBAGhB;IACD,MAAM,EAAE,mBAAmB,cAAc,CAAC;IAC1C,MAAM,EAAE,KAAK,MAAM,CAAC;CACrB,qBASA,CAAC;AAEF,QAAA,MAAM,gBAAgB,YACX,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,sCAStC,CAAC;AAEF,QAAA,MAAM,oBAAoB,UAAgB;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,KAAQ,QAAQ,KAAK,MAAM,CAczF,CAAC;AAIF,QAAA,MAAM,cAAc,QAKP,CAAC;AAEd,QAAA,MAAM,aAAa,QAGqE,CAAC;AAEzF,QAAA,MAAM,UAAU,QAGqE,CAAC;AAEtF,QAAA,MAAM,mBAAmB,YAAa,OAAO,SAiB5C,CAAC;AAQF,QAAA,MAAM,gBAAgB,cACT,MAAM,
|
|
1
|
+
{"version":3,"file":"data-transfer.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/data-transfer.ts"],"names":[],"mappings":"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"}
|