@strapi/strapi 5.48.1 → 5.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/dist/admin.d.ts +0 -1
  2. package/dist/admin.d.ts.map +1 -1
  3. package/dist/admin.js +17 -7
  4. package/dist/admin.js.map +1 -1
  5. package/dist/cli/commands/admin/active-user.d.ts.map +1 -1
  6. package/dist/cli/commands/admin/block-user.d.ts.map +1 -1
  7. package/dist/cli/commands/admin/create-user.d.ts.map +1 -1
  8. package/dist/cli/commands/admin/delete-user.d.ts.map +1 -1
  9. package/dist/cli/commands/admin/reset-user-password.d.ts.map +1 -1
  10. package/dist/cli/commands/configuration/dump.d.ts.map +1 -1
  11. package/dist/cli/commands/configuration/restore.d.ts.map +1 -1
  12. package/dist/cli/commands/export/action.d.ts.map +1 -1
  13. package/dist/cli/commands/import/action.d.ts.map +1 -1
  14. package/dist/cli/commands/openapi/generate.d.ts.map +1 -1
  15. package/dist/cli/commands/start.d.ts.map +1 -1
  16. package/dist/cli/commands/transfer/action.d.ts.map +1 -1
  17. package/dist/cli/commands/ts/generate-types.d.ts.map +1 -1
  18. package/dist/cli/index.d.ts.map +1 -1
  19. package/dist/cli/utils/commander.d.ts.map +1 -1
  20. package/dist/cli/utils/data-transfer.d.ts +1 -1
  21. package/dist/cli/utils/data-transfer.d.ts.map +1 -1
  22. package/dist/cli/utils/helpers.d.ts +0 -1
  23. package/dist/cli/utils/helpers.d.ts.map +1 -1
  24. package/dist/cli/utils/logger.d.ts.map +1 -1
  25. package/dist/cli/utils/pkg.d.ts.map +1 -1
  26. package/dist/cli/utils/telemetry.d.ts.map +1 -1
  27. package/dist/cli/utils/try-quick-outdir.d.ts +12 -0
  28. package/dist/cli/utils/try-quick-outdir.d.ts.map +1 -0
  29. package/dist/cli/utils/tsconfig.d.ts +1 -1
  30. package/dist/cli/utils/tsconfig.d.ts.map +1 -1
  31. package/dist/cli.js +18 -7
  32. package/dist/cli.js.map +1 -1
  33. package/dist/cli.mjs +18 -7
  34. package/dist/cli.mjs.map +1 -1
  35. package/dist/load/package-path.d.ts.map +1 -1
  36. package/dist/node/build.d.ts.map +1 -1
  37. package/dist/node/core/admin-customisations.d.ts +1 -1
  38. package/dist/node/core/admin-customisations.d.ts.map +1 -1
  39. package/dist/node/core/aliases.d.ts.map +1 -1
  40. package/dist/node/core/config.d.ts.map +1 -1
  41. package/dist/node/core/dependencies.d.ts.map +1 -1
  42. package/dist/node/core/ensure-admin-dependencies.d.ts.map +1 -1
  43. package/dist/node/core/env.d.ts.map +1 -1
  44. package/dist/node/core/errors.d.ts.map +1 -1
  45. package/dist/node/core/files.d.ts.map +1 -1
  46. package/dist/node/core/linked-packages.d.ts.map +1 -1
  47. package/dist/node/core/plugins.d.ts +4 -4
  48. package/dist/node/core/plugins.d.ts.map +1 -1
  49. package/dist/node/core/resolve-module.d.ts.map +1 -1
  50. package/dist/node/core/timer.d.ts.map +1 -1
  51. package/dist/node/create-build-context.d.ts +0 -4
  52. package/dist/node/create-build-context.d.ts.map +1 -1
  53. package/dist/node/develop.d.ts.map +1 -1
  54. package/dist/node/staticFiles.d.ts.map +1 -1
  55. package/dist/node/vite/build.d.ts.map +1 -1
  56. package/dist/node/vite/config.d.ts.map +1 -1
  57. package/dist/node/vite/plugins.d.ts.map +1 -1
  58. package/dist/node/vite/resolve-development-config.test.d.ts +2 -0
  59. package/dist/node/vite/resolve-development-config.test.d.ts.map +1 -0
  60. package/dist/node/vite/watch.d.ts.map +1 -1
  61. package/dist/node/webpack/build.d.ts.map +1 -1
  62. package/dist/node/webpack/config.d.ts.map +1 -1
  63. package/dist/node/webpack/watch.d.ts.map +1 -1
  64. package/dist/package.json.js +1 -1
  65. package/dist/package.json.mjs +1 -1
  66. package/dist/src/cli/commands/admin/active-user.js +6 -2
  67. package/dist/src/cli/commands/admin/active-user.js.map +1 -1
  68. package/dist/src/cli/commands/admin/block-user.js +6 -2
  69. package/dist/src/cli/commands/admin/block-user.js.map +1 -1
  70. package/dist/src/cli/commands/admin/create-user.js +5 -1
  71. package/dist/src/cli/commands/admin/create-user.js.map +1 -1
  72. package/dist/src/cli/commands/admin/delete-user.js +6 -2
  73. package/dist/src/cli/commands/admin/delete-user.js.map +1 -1
  74. package/dist/src/cli/commands/admin/list-users.js +16 -11
  75. package/dist/src/cli/commands/admin/list-users.js.map +1 -1
  76. package/dist/src/cli/commands/admin/reset-user-password.js +6 -2
  77. package/dist/src/cli/commands/admin/reset-user-password.js.map +1 -1
  78. package/dist/src/cli/commands/components/list.js +7 -2
  79. package/dist/src/cli/commands/components/list.js.map +1 -1
  80. package/dist/src/cli/commands/configuration/dump.js +5 -1
  81. package/dist/src/cli/commands/configuration/dump.js.map +1 -1
  82. package/dist/src/cli/commands/configuration/restore.js +8 -3
  83. package/dist/src/cli/commands/configuration/restore.js.map +1 -1
  84. package/dist/src/cli/commands/console.js +5 -1
  85. package/dist/src/cli/commands/console.js.map +1 -1
  86. package/dist/src/cli/commands/content-types/list.js +7 -2
  87. package/dist/src/cli/commands/content-types/list.js.map +1 -1
  88. package/dist/src/cli/commands/controllers/list.js +7 -2
  89. package/dist/src/cli/commands/controllers/list.js.map +1 -1
  90. package/dist/src/cli/commands/develop.js +5 -1
  91. package/dist/src/cli/commands/develop.js.map +1 -1
  92. package/dist/src/cli/commands/export/action.js +11 -5
  93. package/dist/src/cli/commands/export/action.js.map +1 -1
  94. package/dist/src/cli/commands/hooks/list.js +7 -2
  95. package/dist/src/cli/commands/hooks/list.js.map +1 -1
  96. package/dist/src/cli/commands/import/action.js +7 -2
  97. package/dist/src/cli/commands/import/action.js.map +1 -1
  98. package/dist/src/cli/commands/import/command.js +6 -2
  99. package/dist/src/cli/commands/import/command.js.map +1 -1
  100. package/dist/src/cli/commands/middlewares/list.js +7 -2
  101. package/dist/src/cli/commands/middlewares/list.js.map +1 -1
  102. package/dist/src/cli/commands/openapi/generate.js +17 -11
  103. package/dist/src/cli/commands/openapi/generate.js.map +1 -1
  104. package/dist/src/cli/commands/policies/list.js +7 -2
  105. package/dist/src/cli/commands/policies/list.js.map +1 -1
  106. package/dist/src/cli/commands/routes/list.js +8 -3
  107. package/dist/src/cli/commands/routes/list.js.map +1 -1
  108. package/dist/src/cli/commands/services/list.js +7 -2
  109. package/dist/src/cli/commands/services/list.js.map +1 -1
  110. package/dist/src/cli/commands/start.js +27 -6
  111. package/dist/src/cli/commands/start.js.map +1 -1
  112. package/dist/src/cli/commands/start.mjs +22 -6
  113. package/dist/src/cli/commands/start.mjs.map +1 -1
  114. package/dist/src/cli/commands/telemetry/disable.js +14 -9
  115. package/dist/src/cli/commands/telemetry/disable.js.map +1 -1
  116. package/dist/src/cli/commands/telemetry/enable.js +14 -9
  117. package/dist/src/cli/commands/telemetry/enable.js.map +1 -1
  118. package/dist/src/cli/commands/transfer/action.js +5 -1
  119. package/dist/src/cli/commands/transfer/action.js.map +1 -1
  120. package/dist/src/cli/commands/ts/generate-types.js +7 -4
  121. package/dist/src/cli/commands/ts/generate-types.js.map +1 -1
  122. package/dist/src/cli/commands/ts/generate-types.mjs +6 -3
  123. package/dist/src/cli/commands/ts/generate-types.mjs.map +1 -1
  124. package/dist/src/cli/utils/commander.js +5 -1
  125. package/dist/src/cli/utils/commander.js.map +1 -1
  126. package/dist/src/cli/utils/data-transfer.js +28 -21
  127. package/dist/src/cli/utils/data-transfer.js.map +1 -1
  128. package/dist/src/cli/utils/helpers.js +7 -3
  129. package/dist/src/cli/utils/helpers.js.map +1 -1
  130. package/dist/src/cli/utils/logger.js +15 -10
  131. package/dist/src/cli/utils/logger.js.map +1 -1
  132. package/dist/src/cli/utils/try-quick-outdir.js +80 -0
  133. package/dist/src/cli/utils/try-quick-outdir.js.map +1 -0
  134. package/dist/src/cli/utils/try-quick-outdir.mjs +72 -0
  135. package/dist/src/cli/utils/try-quick-outdir.mjs.map +1 -0
  136. package/dist/src/cli/utils/tsconfig.js +18 -5
  137. package/dist/src/cli/utils/tsconfig.js.map +1 -1
  138. package/dist/src/cli/utils/tsconfig.mjs +13 -4
  139. package/dist/src/cli/utils/tsconfig.mjs.map +1 -1
  140. package/dist/src/node/build.js +3 -2
  141. package/dist/src/node/build.js.map +1 -1
  142. package/dist/src/node/core/admin-customisations.js +6 -2
  143. package/dist/src/node/core/admin-customisations.js.map +1 -1
  144. package/dist/src/node/core/aliases.js +5 -1
  145. package/dist/src/node/core/aliases.js.map +1 -1
  146. package/dist/src/node/core/config.js +5 -1
  147. package/dist/src/node/core/config.js.map +1 -1
  148. package/dist/src/node/core/dependencies.js +33 -22
  149. package/dist/src/node/core/dependencies.js.map +1 -1
  150. package/dist/src/node/core/ensure-admin-dependencies.js +5 -1
  151. package/dist/src/node/core/ensure-admin-dependencies.js.map +1 -1
  152. package/dist/src/node/core/env.js +7 -2
  153. package/dist/src/node/core/env.js.map +1 -1
  154. package/dist/src/node/core/errors.js +9 -3
  155. package/dist/src/node/core/errors.js.map +1 -1
  156. package/dist/src/node/core/files.js +6 -2
  157. package/dist/src/node/core/files.js.map +1 -1
  158. package/dist/src/node/core/linked-packages.js +5 -1
  159. package/dist/src/node/core/linked-packages.js.map +1 -1
  160. package/dist/src/node/core/monorepo.js +8 -3
  161. package/dist/src/node/core/monorepo.js.map +1 -1
  162. package/dist/src/node/core/plugins.js +17 -10
  163. package/dist/src/node/core/plugins.js.map +1 -1
  164. package/dist/src/node/core/resolve-module.js +8 -3
  165. package/dist/src/node/core/resolve-module.js.map +1 -1
  166. package/dist/src/node/create-build-context.js +16 -9
  167. package/dist/src/node/create-build-context.js.map +1 -1
  168. package/dist/src/node/create-build-context.mjs.map +1 -1
  169. package/dist/src/node/develop.js +14 -8
  170. package/dist/src/node/develop.js.map +1 -1
  171. package/dist/src/node/staticFiles.js +11 -5
  172. package/dist/src/node/staticFiles.js.map +1 -1
  173. package/dist/src/node/vite/config.js +14 -3
  174. package/dist/src/node/vite/config.js.map +1 -1
  175. package/dist/src/node/vite/config.mjs +9 -2
  176. package/dist/src/node/vite/config.mjs.map +1 -1
  177. package/dist/src/node/vite/watch.js +7 -62
  178. package/dist/src/node/vite/watch.js.map +1 -1
  179. package/dist/src/node/vite/watch.mjs +2 -62
  180. package/dist/src/node/vite/watch.mjs.map +1 -1
  181. package/dist/src/node/webpack/build.js +5 -1
  182. package/dist/src/node/webpack/build.js.map +1 -1
  183. package/dist/src/node/webpack/config.js +17 -8
  184. package/dist/src/node/webpack/config.js.map +1 -1
  185. package/dist/src/node/webpack/watch.js +11 -4
  186. package/dist/src/node/webpack/watch.js.map +1 -1
  187. package/dist/test/mocks/inquirer.d.ts +0 -1
  188. package/dist/test/mocks/inquirer.d.ts.map +1 -1
  189. package/package.json +24 -25
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sources":["../../../../../src/cli/commands/openapi/generate.ts"],"sourcesContent":["import { compileStrapi, createStrapi } from '@strapi/core';\nimport * as openapi from '@strapi/openapi';\n\nimport type { Core } from '@strapi/types';\n\nimport chalk from 'chalk';\nimport fse from 'fs-extra';\nimport path from 'path';\n\nconst DEFAULT_OUTPUT = path.join(process.cwd(), 'specification.json');\n\ninterface CommandOptions {\n output?: string;\n}\n\ninterface StrapiInfoConfig {\n name: string;\n version: string;\n}\n\nconst EXPERIMENTAL_MSG = chalk.yellow(`\n⚠️ The OpenAPI generation feature is currently experimental.\n Its behavior and output might change in future releases without following semver.\n Please report any issues you encounter on https://github.com/strapi/strapi/issues/new?template=BUG_REPORT.yml.\n`);\n\n/**\n * @experimental\n */\nconst action = async (options: CommandOptions) => {\n console.warn(EXPERIMENTAL_MSG);\n\n const filePath = options.output ?? DEFAULT_OUTPUT;\n const app = await createStrapiApp();\n\n const { document, durationMs } = openapi.generate(app, { type: 'content-api' });\n\n writeDocumentToFile(document, filePath);\n summarize(app, durationMs, filePath);\n\n await teardownStrapiApp(app);\n};\n\nconst createStrapiApp = async (): Promise<Core.Strapi> => {\n const appContext = await compileStrapi();\n const app = createStrapi(appContext);\n\n // Make sure to not log Strapi debug info\n app.log.level = 'error';\n\n // Load internals\n await app.load();\n\n // Make sure the routes are mounted before generating the specification\n app.server.mount();\n\n return app;\n};\n\nconst writeDocumentToFile = (document: unknown, filePath: string): void => {\n fse.outputFileSync(filePath, JSON.stringify(document, null, 2));\n};\n\nconst teardownStrapiApp = async (app: Core.Strapi) => {\n await app.destroy();\n};\n\nconst summarize = (app: Core.Strapi, durationMs: number, filePath: string): void => {\n const cwd = process.cwd();\n const relativeFilePath = path.relative(cwd, filePath);\n const { name, version } = app.config.get<StrapiInfoConfig>('info');\n\n const fName = chalk.cyan(name);\n const fVersion = chalk.cyan(`v${version}`);\n const fFile = chalk.magenta(relativeFilePath);\n const fTime = chalk.green(`${durationMs}ms`);\n\n console.log(\n chalk.bold(\n `Generated an OpenAPI specification for \"${fName} ${fVersion}\" at ${fFile} in ${fTime}`\n )\n );\n};\n\nexport { action };\n"],"names":["DEFAULT_OUTPUT","path","join","process","cwd","EXPERIMENTAL_MSG","chalk","yellow","action","options","console","warn","filePath","output","app","createStrapiApp","document","durationMs","openapi","generate","type","writeDocumentToFile","summarize","teardownStrapiApp","appContext","compileStrapi","createStrapi","log","level","load","server","mount","fse","outputFileSync","JSON","stringify","destroy","relativeFilePath","relative","name","version","config","get","fName","cyan","fVersion","fFile","magenta","fTime","green","bold"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAMA,iBAAiBC,IAAAA,CAAKC,IAAI,CAACC,OAAAA,CAAQC,GAAG,EAAA,EAAI,oBAAA,CAAA;AAWhD,MAAMC,gBAAAA,GAAmBC,KAAAA,CAAMC,MAAM,CAAC;;;;AAItC,CAAC,CAAA;AAED;;IAGA,MAAMC,SAAS,OAAOC,OAAAA,GAAAA;AACpBC,IAAAA,OAAAA,CAAQC,IAAI,CAACN,gBAAAA,CAAAA;IAEb,MAAMO,QAAAA,GAAWH,OAAAA,CAAQI,MAAM,IAAIb,cAAAA;AACnC,IAAA,MAAMc,MAAM,MAAMC,eAAAA,EAAAA;IAElB,MAAM,EAAEC,QAAQ,EAAEC,UAAU,EAAE,GAAGC,kBAAAA,CAAQC,QAAQ,CAACL,GAAAA,EAAK;QAAEM,IAAAA,EAAM;AAAc,KAAA,CAAA;AAE7EC,IAAAA,mBAAAA,CAAoBL,QAAAA,EAAUJ,QAAAA,CAAAA;AAC9BU,IAAAA,SAAAA,CAAUR,KAAKG,UAAAA,EAAYL,QAAAA,CAAAA;AAE3B,IAAA,MAAMW,iBAAAA,CAAkBT,GAAAA,CAAAA;AAC1B;AAEA,MAAMC,eAAAA,GAAkB,UAAA;AACtB,IAAA,MAAMS,aAAa,MAAMC,kBAAAA,EAAAA;AACzB,IAAA,MAAMX,MAAMY,iBAAAA,CAAaF,UAAAA,CAAAA;;IAGzBV,GAAAA,CAAIa,GAAG,CAACC,KAAK,GAAG,OAAA;;AAGhB,IAAA,MAAMd,IAAIe,IAAI,EAAA;;IAGdf,GAAAA,CAAIgB,MAAM,CAACC,KAAK,EAAA;IAEhB,OAAOjB,GAAAA;AACT,CAAA;AAEA,MAAMO,mBAAAA,GAAsB,CAACL,QAAAA,EAAmBJ,QAAAA,GAAAA;AAC9CoB,IAAAA,GAAAA,CAAIC,cAAc,CAACrB,QAAAA,EAAUsB,KAAKC,SAAS,CAACnB,UAAU,IAAA,EAAM,CAAA,CAAA,CAAA;AAC9D,CAAA;AAEA,MAAMO,oBAAoB,OAAOT,GAAAA,GAAAA;AAC/B,IAAA,MAAMA,IAAIsB,OAAO,EAAA;AACnB,CAAA;AAEA,MAAMd,SAAAA,GAAY,CAACR,GAAAA,EAAkBG,UAAAA,EAAoBL,QAAAA,GAAAA;IACvD,MAAMR,GAAAA,GAAMD,QAAQC,GAAG,EAAA;AACvB,IAAA,MAAMiC,gBAAAA,GAAmBpC,IAAAA,CAAKqC,QAAQ,CAAClC,GAAAA,EAAKQ,QAAAA,CAAAA;IAC5C,MAAM,EAAE2B,IAAI,EAAEC,OAAO,EAAE,GAAG1B,GAAAA,CAAI2B,MAAM,CAACC,GAAG,CAAmB,MAAA,CAAA;IAE3D,MAAMC,KAAAA,GAAQrC,KAAAA,CAAMsC,IAAI,CAACL,IAAAA,CAAAA;AACzB,IAAA,MAAMM,WAAWvC,KAAAA,CAAMsC,IAAI,CAAC,CAAC,CAAC,EAAEJ,OAAAA,CAAAA,CAAS,CAAA;IACzC,MAAMM,KAAAA,GAAQxC,KAAAA,CAAMyC,OAAO,CAACV,gBAAAA,CAAAA;AAC5B,IAAA,MAAMW,QAAQ1C,KAAAA,CAAM2C,KAAK,CAAC,CAAA,EAAGhC,UAAAA,CAAW,EAAE,CAAC,CAAA;AAE3CP,IAAAA,OAAAA,CAAQiB,GAAG,CACTrB,KAAAA,CAAM4C,IAAI,CACR,CAAC,wCAAwC,EAAEP,KAAAA,CAAM,CAAC,EAAEE,QAAAA,CAAS,KAAK,EAAEC,KAAAA,CAAM,IAAI,EAAEE,KAAAA,CAAAA,CAAO,CAAA,CAAA;AAG7F,CAAA;;;;"}
1
+ {"version":3,"file":"generate.js","sources":["../../../../../src/cli/commands/openapi/generate.ts"],"sourcesContent":["import { compileStrapi, createStrapi } from '@strapi/core';\nimport * as openapi from '@strapi/openapi';\n\nimport type { Core } from '@strapi/types';\n\nimport chalk from 'chalk';\nimport fse from 'fs-extra';\nimport path from 'path';\n\nconst DEFAULT_OUTPUT = path.join(process.cwd(), 'specification.json');\n\ninterface CommandOptions {\n output?: string;\n}\n\ninterface StrapiInfoConfig {\n name: string;\n version: string;\n}\n\nconst EXPERIMENTAL_MSG = chalk.yellow(`\n⚠️ The OpenAPI generation feature is currently experimental.\n Its behavior and output might change in future releases without following semver.\n Please report any issues you encounter on https://github.com/strapi/strapi/issues/new?template=BUG_REPORT.yml.\n`);\n\n/**\n * @experimental\n */\nconst action = async (options: CommandOptions) => {\n console.warn(EXPERIMENTAL_MSG);\n\n const filePath = options.output ?? DEFAULT_OUTPUT;\n const app = await createStrapiApp();\n\n const { document, durationMs } = openapi.generate(app, { type: 'content-api' });\n\n writeDocumentToFile(document, filePath);\n summarize(app, durationMs, filePath);\n\n await teardownStrapiApp(app);\n};\n\nconst createStrapiApp = async (): Promise<Core.Strapi> => {\n const appContext = await compileStrapi();\n const app = createStrapi(appContext);\n\n // Make sure to not log Strapi debug info\n app.log.level = 'error';\n\n // Load internals\n await app.load();\n\n // Make sure the routes are mounted before generating the specification\n app.server.mount();\n\n return app;\n};\n\nconst writeDocumentToFile = (document: unknown, filePath: string): void => {\n fse.outputFileSync(filePath, JSON.stringify(document, null, 2));\n};\n\nconst teardownStrapiApp = async (app: Core.Strapi) => {\n await app.destroy();\n};\n\nconst summarize = (app: Core.Strapi, durationMs: number, filePath: string): void => {\n const cwd = process.cwd();\n const relativeFilePath = path.relative(cwd, filePath);\n const { name, version } = app.config.get<StrapiInfoConfig>('info');\n\n const fName = chalk.cyan(name);\n const fVersion = chalk.cyan(`v${version}`);\n const fFile = chalk.magenta(relativeFilePath);\n const fTime = chalk.green(`${durationMs}ms`);\n\n console.log(\n chalk.bold(\n `Generated an OpenAPI specification for \"${fName} ${fVersion}\" at ${fFile} in ${fTime}`\n )\n );\n};\n\nexport { action };\n"],"names":["DEFAULT_OUTPUT","path","join","process","cwd","EXPERIMENTAL_MSG","chalk","yellow","action","options","console","warn","filePath","output","app","createStrapiApp","document","durationMs","openapi","generate","type","writeDocumentToFile","summarize","teardownStrapiApp","appContext","compileStrapi","createStrapi","log","level","load","server","mount","fse","outputFileSync","JSON","stringify","destroy","relativeFilePath","relative","name","version","config","get","fName","cyan","fVersion","fFile","magenta","fTime","green","bold"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAMA,iBAAiBC,qBAAAA,CAAKC,IAAI,CAACC,OAAAA,CAAQC,GAAG,EAAA,EAAI,oBAAA,CAAA;AAWhD,MAAMC,gBAAAA,GAAmBC,sBAAAA,CAAMC,MAAM,CAAC;;;;AAItC,CAAC,CAAA;AAED;;IAGA,MAAMC,SAAS,OAAOC,OAAAA,GAAAA;AACpBC,IAAAA,OAAAA,CAAQC,IAAI,CAACN,gBAAAA,CAAAA;IAEb,MAAMO,QAAAA,GAAWH,OAAAA,CAAQI,MAAM,IAAIb,cAAAA;AACnC,IAAA,MAAMc,MAAM,MAAMC,eAAAA,EAAAA;IAElB,MAAM,EAAEC,QAAQ,EAAEC,UAAU,EAAE,GAAGC,kBAAAA,CAAQC,QAAQ,CAACL,GAAAA,EAAK;QAAEM,IAAAA,EAAM;AAAc,KAAA,CAAA;AAE7EC,IAAAA,mBAAAA,CAAoBL,QAAAA,EAAUJ,QAAAA,CAAAA;AAC9BU,IAAAA,SAAAA,CAAUR,KAAKG,UAAAA,EAAYL,QAAAA,CAAAA;AAE3B,IAAA,MAAMW,iBAAAA,CAAkBT,GAAAA,CAAAA;AAC1B;AAEA,MAAMC,eAAAA,GAAkB,UAAA;AACtB,IAAA,MAAMS,aAAa,MAAMC,kBAAAA,EAAAA;AACzB,IAAA,MAAMX,MAAMY,iBAAAA,CAAaF,UAAAA,CAAAA;;IAGzBV,GAAAA,CAAIa,GAAG,CAACC,KAAK,GAAG,OAAA;;AAGhB,IAAA,MAAMd,IAAIe,IAAI,EAAA;;IAGdf,GAAAA,CAAIgB,MAAM,CAACC,KAAK,EAAA;IAEhB,OAAOjB,GAAAA;AACT,CAAA;AAEA,MAAMO,mBAAAA,GAAsB,CAACL,QAAAA,EAAmBJ,QAAAA,GAAAA;AAC9CoB,IAAAA,oBAAAA,CAAIC,cAAc,CAACrB,QAAAA,EAAUsB,KAAKC,SAAS,CAACnB,UAAU,IAAA,EAAM,CAAA,CAAA,CAAA;AAC9D,CAAA;AAEA,MAAMO,oBAAoB,OAAOT,GAAAA,GAAAA;AAC/B,IAAA,MAAMA,IAAIsB,OAAO,EAAA;AACnB,CAAA;AAEA,MAAMd,SAAAA,GAAY,CAACR,GAAAA,EAAkBG,UAAAA,EAAoBL,QAAAA,GAAAA;IACvD,MAAMR,GAAAA,GAAMD,QAAQC,GAAG,EAAA;AACvB,IAAA,MAAMiC,gBAAAA,GAAmBpC,qBAAAA,CAAKqC,QAAQ,CAAClC,GAAAA,EAAKQ,QAAAA,CAAAA;IAC5C,MAAM,EAAE2B,IAAI,EAAEC,OAAO,EAAE,GAAG1B,GAAAA,CAAI2B,MAAM,CAACC,GAAG,CAAmB,MAAA,CAAA;IAE3D,MAAMC,KAAAA,GAAQrC,sBAAAA,CAAMsC,IAAI,CAACL,IAAAA,CAAAA;AACzB,IAAA,MAAMM,WAAWvC,sBAAAA,CAAMsC,IAAI,CAAC,CAAC,CAAC,EAAEJ,OAAAA,CAAAA,CAAS,CAAA;IACzC,MAAMM,KAAAA,GAAQxC,sBAAAA,CAAMyC,OAAO,CAACV,gBAAAA,CAAAA;AAC5B,IAAA,MAAMW,QAAQ1C,sBAAAA,CAAM2C,KAAK,CAAC,CAAA,EAAGhC,UAAAA,CAAW,EAAE,CAAC,CAAA;AAE3CP,IAAAA,OAAAA,CAAQiB,GAAG,CACTrB,sBAAAA,CAAM4C,IAAI,CACR,CAAC,wCAAwC,EAAEP,KAAAA,CAAM,CAAC,EAAEE,QAAAA,CAAS,KAAK,EAAEC,KAAAA,CAAM,IAAI,EAAEE,KAAAA,CAAAA,CAAO,CAAA,CAAA;AAG7F,CAAA;;;;"}
@@ -6,13 +6,18 @@ var chalk = require('chalk');
6
6
  var core = require('@strapi/core');
7
7
  var helpers = require('../../utils/helpers.js');
8
8
 
9
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
+
11
+ var CLITable__default = /*#__PURE__*/_interopDefault(CLITable);
12
+ var chalk__default = /*#__PURE__*/_interopDefault(chalk);
13
+
9
14
  const action = async ()=>{
10
15
  const appContext = await core.compileStrapi();
11
16
  const app = await core.createStrapi(appContext).register();
12
17
  const list = app.get('policies').keys();
13
- const infoTable = new CLITable({
18
+ const infoTable = new CLITable__default.default({
14
19
  head: [
15
- chalk.blue('Name')
20
+ chalk__default.default.blue('Name')
16
21
  ]
17
22
  });
18
23
  list.forEach((name)=>infoTable.push([
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sources":["../../../../../src/cli/commands/policies/list.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport CLITable from 'cli-table3';\nimport chalk from 'chalk';\nimport { createStrapi, compileStrapi } from '@strapi/core';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\n\nconst action = async () => {\n const appContext = await compileStrapi();\n const app = await createStrapi(appContext).register();\n\n const list = app.get('policies').keys();\n\n const infoTable = new CLITable({\n head: [chalk.blue('Name')],\n });\n\n list.forEach((name: string) => infoTable.push([name]));\n\n console.log(infoTable.toString());\n\n await app.destroy();\n};\n\n/**\n * `$ strapi policies:list`\n */\nconst command: StrapiCommand = () => {\n return createCommand('policies:list')\n .description('List all the application policies')\n .action(runAction('policies:list', action));\n};\n\nexport { action, command };\n"],"names":["action","appContext","compileStrapi","app","createStrapi","register","list","get","keys","infoTable","CLITable","head","chalk","blue","forEach","name","push","console","log","toString","destroy","command","createCommand","description","runAction"],"mappings":";;;;;;;;AAQA,MAAMA,MAAAA,GAAS,UAAA;AACb,IAAA,MAAMC,aAAa,MAAMC,kBAAAA,EAAAA;AACzB,IAAA,MAAMC,GAAAA,GAAM,MAAMC,iBAAAA,CAAaH,UAAAA,CAAAA,CAAYI,QAAQ,EAAA;AAEnD,IAAA,MAAMC,IAAAA,GAAOH,GAAAA,CAAII,GAAG,CAAC,YAAYC,IAAI,EAAA;IAErC,MAAMC,SAAAA,GAAY,IAAIC,QAAAA,CAAS;QAC7BC,IAAAA,EAAM;AAACC,YAAAA,KAAAA,CAAMC,IAAI,CAAC,MAAA;AAAQ;AAC5B,KAAA,CAAA;AAEAP,IAAAA,IAAAA,CAAKQ,OAAO,CAAC,CAACC,IAAAA,GAAiBN,SAAAA,CAAUO,IAAI,CAAC;AAACD,YAAAA;AAAK,SAAA,CAAA,CAAA;IAEpDE,OAAAA,CAAQC,GAAG,CAACT,SAAAA,CAAUU,QAAQ,EAAA,CAAA;AAE9B,IAAA,MAAMhB,IAAIiB,OAAO,EAAA;AACnB;AAEA;;AAEC,UACKC,OAAAA,GAAyB,IAAA;IAC7B,OAAOC,uBAAAA,CAAc,iBAClBC,WAAW,CAAC,qCACZvB,MAAM,CAACwB,kBAAU,eAAA,EAAiBxB,MAAAA,CAAAA,CAAAA;AACvC;;;;;"}
1
+ {"version":3,"file":"list.js","sources":["../../../../../src/cli/commands/policies/list.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport CLITable from 'cli-table3';\nimport chalk from 'chalk';\nimport { createStrapi, compileStrapi } from '@strapi/core';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\n\nconst action = async () => {\n const appContext = await compileStrapi();\n const app = await createStrapi(appContext).register();\n\n const list = app.get('policies').keys();\n\n const infoTable = new CLITable({\n head: [chalk.blue('Name')],\n });\n\n list.forEach((name: string) => infoTable.push([name]));\n\n console.log(infoTable.toString());\n\n await app.destroy();\n};\n\n/**\n * `$ strapi policies:list`\n */\nconst command: StrapiCommand = () => {\n return createCommand('policies:list')\n .description('List all the application policies')\n .action(runAction('policies:list', action));\n};\n\nexport { action, command };\n"],"names":["action","appContext","compileStrapi","app","createStrapi","register","list","get","keys","infoTable","CLITable","head","chalk","blue","forEach","name","push","console","log","toString","destroy","command","createCommand","description","runAction"],"mappings":";;;;;;;;;;;;;AAQA,MAAMA,MAAAA,GAAS,UAAA;AACb,IAAA,MAAMC,aAAa,MAAMC,kBAAAA,EAAAA;AACzB,IAAA,MAAMC,GAAAA,GAAM,MAAMC,iBAAAA,CAAaH,UAAAA,CAAAA,CAAYI,QAAQ,EAAA;AAEnD,IAAA,MAAMC,IAAAA,GAAOH,GAAAA,CAAII,GAAG,CAAC,YAAYC,IAAI,EAAA;IAErC,MAAMC,SAAAA,GAAY,IAAIC,yBAAAA,CAAS;QAC7BC,IAAAA,EAAM;AAACC,YAAAA,sBAAAA,CAAMC,IAAI,CAAC,MAAA;AAAQ;AAC5B,KAAA,CAAA;AAEAP,IAAAA,IAAAA,CAAKQ,OAAO,CAAC,CAACC,IAAAA,GAAiBN,SAAAA,CAAUO,IAAI,CAAC;AAACD,YAAAA;AAAK,SAAA,CAAA,CAAA;IAEpDE,OAAAA,CAAQC,GAAG,CAACT,SAAAA,CAAUU,QAAQ,EAAA,CAAA;AAE9B,IAAA,MAAMhB,IAAIiB,OAAO,EAAA;AACnB;AAEA;;AAEC,UACKC,OAAAA,GAAyB,IAAA;IAC7B,OAAOC,uBAAAA,CAAc,iBAClBC,WAAW,CAAC,qCACZvB,MAAM,CAACwB,kBAAU,eAAA,EAAiBxB,MAAAA,CAAAA,CAAAA;AACvC;;;;;"}
@@ -7,14 +7,19 @@ var fp = require('lodash/fp');
7
7
  var core = require('@strapi/core');
8
8
  var helpers = require('../../utils/helpers.js');
9
9
 
10
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
+
12
+ var CLITable__default = /*#__PURE__*/_interopDefault(CLITable);
13
+ var chalk__default = /*#__PURE__*/_interopDefault(chalk);
14
+
10
15
  const action = async ()=>{
11
16
  const appContext = await core.compileStrapi();
12
17
  const app = await core.createStrapi(appContext).load();
13
18
  const list = app.server.mount().listRoutes();
14
- const infoTable = new CLITable({
19
+ const infoTable = new CLITable__default.default({
15
20
  head: [
16
- chalk.blue('Method'),
17
- chalk.blue('Path')
21
+ chalk__default.default.blue('Method'),
22
+ chalk__default.default.blue('Path')
18
23
  ],
19
24
  colWidths: [
20
25
  20
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sources":["../../../../../src/cli/commands/routes/list.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport CLITable from 'cli-table3';\nimport chalk from 'chalk';\nimport { toUpper } from 'lodash/fp';\n\nimport { createStrapi, compileStrapi } from '@strapi/core';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\n\nconst action = async () => {\n const appContext = await compileStrapi();\n const app = await createStrapi(appContext).load();\n\n const list = app.server.mount().listRoutes();\n\n const infoTable = new CLITable({\n head: [chalk.blue('Method'), chalk.blue('Path')],\n colWidths: [20],\n });\n\n list\n .filter((route) => route.methods.length)\n .forEach((route) => {\n infoTable.push([route.methods.map(toUpper).join('|'), route.path]);\n });\n\n console.log(infoTable.toString());\n\n await app.destroy();\n};\n\n/**\n * `$ strapi routes:list``\n */\nconst command: StrapiCommand = () => {\n return createCommand('routes:list')\n .description('List all the application routes')\n .action(runAction('routes:list', action));\n};\n\nexport { action, command };\n"],"names":["action","appContext","compileStrapi","app","createStrapi","load","list","server","mount","listRoutes","infoTable","CLITable","head","chalk","blue","colWidths","filter","route","methods","length","forEach","push","map","toUpper","join","path","console","log","toString","destroy","command","createCommand","description","runAction"],"mappings":";;;;;;;;;AAUA,MAAMA,MAAAA,GAAS,UAAA;AACb,IAAA,MAAMC,aAAa,MAAMC,kBAAAA,EAAAA;AACzB,IAAA,MAAMC,GAAAA,GAAM,MAAMC,iBAAAA,CAAaH,UAAAA,CAAAA,CAAYI,IAAI,EAAA;AAE/C,IAAA,MAAMC,OAAOH,GAAAA,CAAII,MAAM,CAACC,KAAK,GAAGC,UAAU,EAAA;IAE1C,MAAMC,SAAAA,GAAY,IAAIC,QAAAA,CAAS;QAC7BC,IAAAA,EAAM;AAACC,YAAAA,KAAAA,CAAMC,IAAI,CAAC,QAAA,CAAA;AAAWD,YAAAA,KAAAA,CAAMC,IAAI,CAAC,MAAA;AAAQ,SAAA;QAChDC,SAAAA,EAAW;AAAC,YAAA;AAAG;AACjB,KAAA,CAAA;IAEAT,IAAAA,CACGU,MAAM,CAAC,CAACC,KAAAA,GAAUA,KAAAA,CAAMC,OAAO,CAACC,MAAM,CAAA,CACtCC,OAAO,CAAC,CAACH,KAAAA,GAAAA;AACRP,QAAAA,SAAAA,CAAUW,IAAI,CAAC;AAACJ,YAAAA,KAAAA,CAAMC,OAAO,CAACI,GAAG,CAACC,UAAAA,CAAAA,CAASC,IAAI,CAAC,GAAA,CAAA;AAAMP,YAAAA,KAAAA,CAAMQ;AAAK,SAAA,CAAA;AACnE,IAAA,CAAA,CAAA;IAEFC,OAAAA,CAAQC,GAAG,CAACjB,SAAAA,CAAUkB,QAAQ,EAAA,CAAA;AAE9B,IAAA,MAAMzB,IAAI0B,OAAO,EAAA;AACnB;AAEA;;AAEC,UACKC,OAAAA,GAAyB,IAAA;IAC7B,OAAOC,uBAAAA,CAAc,eAClBC,WAAW,CAAC,mCACZhC,MAAM,CAACiC,kBAAU,aAAA,EAAejC,MAAAA,CAAAA,CAAAA;AACrC;;;;;"}
1
+ {"version":3,"file":"list.js","sources":["../../../../../src/cli/commands/routes/list.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport CLITable from 'cli-table3';\nimport chalk from 'chalk';\nimport { toUpper } from 'lodash/fp';\n\nimport { createStrapi, compileStrapi } from '@strapi/core';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\n\nconst action = async () => {\n const appContext = await compileStrapi();\n const app = await createStrapi(appContext).load();\n\n const list = app.server.mount().listRoutes();\n\n const infoTable = new CLITable({\n head: [chalk.blue('Method'), chalk.blue('Path')],\n colWidths: [20],\n });\n\n list\n .filter((route) => route.methods.length)\n .forEach((route) => {\n infoTable.push([route.methods.map(toUpper).join('|'), route.path]);\n });\n\n console.log(infoTable.toString());\n\n await app.destroy();\n};\n\n/**\n * `$ strapi routes:list``\n */\nconst command: StrapiCommand = () => {\n return createCommand('routes:list')\n .description('List all the application routes')\n .action(runAction('routes:list', action));\n};\n\nexport { action, command };\n"],"names":["action","appContext","compileStrapi","app","createStrapi","load","list","server","mount","listRoutes","infoTable","CLITable","head","chalk","blue","colWidths","filter","route","methods","length","forEach","push","map","toUpper","join","path","console","log","toString","destroy","command","createCommand","description","runAction"],"mappings":";;;;;;;;;;;;;;AAUA,MAAMA,MAAAA,GAAS,UAAA;AACb,IAAA,MAAMC,aAAa,MAAMC,kBAAAA,EAAAA;AACzB,IAAA,MAAMC,GAAAA,GAAM,MAAMC,iBAAAA,CAAaH,UAAAA,CAAAA,CAAYI,IAAI,EAAA;AAE/C,IAAA,MAAMC,OAAOH,GAAAA,CAAII,MAAM,CAACC,KAAK,GAAGC,UAAU,EAAA;IAE1C,MAAMC,SAAAA,GAAY,IAAIC,yBAAAA,CAAS;QAC7BC,IAAAA,EAAM;AAACC,YAAAA,sBAAAA,CAAMC,IAAI,CAAC,QAAA,CAAA;AAAWD,YAAAA,sBAAAA,CAAMC,IAAI,CAAC,MAAA;AAAQ,SAAA;QAChDC,SAAAA,EAAW;AAAC,YAAA;AAAG;AACjB,KAAA,CAAA;IAEAT,IAAAA,CACGU,MAAM,CAAC,CAACC,KAAAA,GAAUA,KAAAA,CAAMC,OAAO,CAACC,MAAM,CAAA,CACtCC,OAAO,CAAC,CAACH,KAAAA,GAAAA;AACRP,QAAAA,SAAAA,CAAUW,IAAI,CAAC;AAACJ,YAAAA,KAAAA,CAAMC,OAAO,CAACI,GAAG,CAACC,UAAAA,CAAAA,CAASC,IAAI,CAAC,GAAA,CAAA;AAAMP,YAAAA,KAAAA,CAAMQ;AAAK,SAAA,CAAA;AACnE,IAAA,CAAA,CAAA;IAEFC,OAAAA,CAAQC,GAAG,CAACjB,SAAAA,CAAUkB,QAAQ,EAAA,CAAA;AAE9B,IAAA,MAAMzB,IAAI0B,OAAO,EAAA;AACnB;AAEA;;AAEC,UACKC,OAAAA,GAAyB,IAAA;IAC7B,OAAOC,uBAAAA,CAAc,eAClBC,WAAW,CAAC,mCACZhC,MAAM,CAACiC,kBAAU,aAAA,EAAejC,MAAAA,CAAAA,CAAAA;AACrC;;;;;"}
@@ -6,13 +6,18 @@ var chalk = require('chalk');
6
6
  var core = require('@strapi/core');
7
7
  var helpers = require('../../utils/helpers.js');
8
8
 
9
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
+
11
+ var CLITable__default = /*#__PURE__*/_interopDefault(CLITable);
12
+ var chalk__default = /*#__PURE__*/_interopDefault(chalk);
13
+
9
14
  const action = async ()=>{
10
15
  const appContext = await core.compileStrapi();
11
16
  const app = await core.createStrapi(appContext).register();
12
17
  const list = app.get('services').keys();
13
- const infoTable = new CLITable({
18
+ const infoTable = new CLITable__default.default({
14
19
  head: [
15
- chalk.blue('Name')
20
+ chalk__default.default.blue('Name')
16
21
  ]
17
22
  });
18
23
  list.forEach((name)=>infoTable.push([
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sources":["../../../../../src/cli/commands/services/list.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport CLITable from 'cli-table3';\nimport chalk from 'chalk';\nimport { createStrapi, compileStrapi } from '@strapi/core';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\n\nconst action = async () => {\n const appContext = await compileStrapi();\n const app = await createStrapi(appContext).register();\n\n const list = app.get('services').keys();\n\n const infoTable = new CLITable({\n head: [chalk.blue('Name')],\n });\n\n list.forEach((name: string) => infoTable.push([name]));\n\n console.log(infoTable.toString());\n\n await app.destroy();\n};\n\n/**\n * `$ strapi services:list`\n */\nconst command: StrapiCommand = () => {\n return createCommand('services:list')\n .description('List all the application services')\n .action(runAction('services:list', action));\n};\n\nexport { action, command };\n"],"names":["action","appContext","compileStrapi","app","createStrapi","register","list","get","keys","infoTable","CLITable","head","chalk","blue","forEach","name","push","console","log","toString","destroy","command","createCommand","description","runAction"],"mappings":";;;;;;;;AAQA,MAAMA,MAAAA,GAAS,UAAA;AACb,IAAA,MAAMC,aAAa,MAAMC,kBAAAA,EAAAA;AACzB,IAAA,MAAMC,GAAAA,GAAM,MAAMC,iBAAAA,CAAaH,UAAAA,CAAAA,CAAYI,QAAQ,EAAA;AAEnD,IAAA,MAAMC,IAAAA,GAAOH,GAAAA,CAAII,GAAG,CAAC,YAAYC,IAAI,EAAA;IAErC,MAAMC,SAAAA,GAAY,IAAIC,QAAAA,CAAS;QAC7BC,IAAAA,EAAM;AAACC,YAAAA,KAAAA,CAAMC,IAAI,CAAC,MAAA;AAAQ;AAC5B,KAAA,CAAA;AAEAP,IAAAA,IAAAA,CAAKQ,OAAO,CAAC,CAACC,IAAAA,GAAiBN,SAAAA,CAAUO,IAAI,CAAC;AAACD,YAAAA;AAAK,SAAA,CAAA,CAAA;IAEpDE,OAAAA,CAAQC,GAAG,CAACT,SAAAA,CAAUU,QAAQ,EAAA,CAAA;AAE9B,IAAA,MAAMhB,IAAIiB,OAAO,EAAA;AACnB;AAEA;;AAEC,UACKC,OAAAA,GAAyB,IAAA;IAC7B,OAAOC,uBAAAA,CAAc,iBAClBC,WAAW,CAAC,qCACZvB,MAAM,CAACwB,kBAAU,eAAA,EAAiBxB,MAAAA,CAAAA,CAAAA;AACvC;;;;;"}
1
+ {"version":3,"file":"list.js","sources":["../../../../../src/cli/commands/services/list.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport CLITable from 'cli-table3';\nimport chalk from 'chalk';\nimport { createStrapi, compileStrapi } from '@strapi/core';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\n\nconst action = async () => {\n const appContext = await compileStrapi();\n const app = await createStrapi(appContext).register();\n\n const list = app.get('services').keys();\n\n const infoTable = new CLITable({\n head: [chalk.blue('Name')],\n });\n\n list.forEach((name: string) => infoTable.push([name]));\n\n console.log(infoTable.toString());\n\n await app.destroy();\n};\n\n/**\n * `$ strapi services:list`\n */\nconst command: StrapiCommand = () => {\n return createCommand('services:list')\n .description('List all the application services')\n .action(runAction('services:list', action));\n};\n\nexport { action, command };\n"],"names":["action","appContext","compileStrapi","app","createStrapi","register","list","get","keys","infoTable","CLITable","head","chalk","blue","forEach","name","push","console","log","toString","destroy","command","createCommand","description","runAction"],"mappings":";;;;;;;;;;;;;AAQA,MAAMA,MAAAA,GAAS,UAAA;AACb,IAAA,MAAMC,aAAa,MAAMC,kBAAAA,EAAAA;AACzB,IAAA,MAAMC,GAAAA,GAAM,MAAMC,iBAAAA,CAAaH,UAAAA,CAAAA,CAAYI,QAAQ,EAAA;AAEnD,IAAA,MAAMC,IAAAA,GAAOH,GAAAA,CAAII,GAAG,CAAC,YAAYC,IAAI,EAAA;IAErC,MAAMC,SAAAA,GAAY,IAAIC,yBAAAA,CAAS;QAC7BC,IAAAA,EAAM;AAACC,YAAAA,sBAAAA,CAAMC,IAAI,CAAC,MAAA;AAAQ;AAC5B,KAAA,CAAA;AAEAP,IAAAA,IAAAA,CAAKQ,OAAO,CAAC,CAACC,IAAAA,GAAiBN,SAAAA,CAAUO,IAAI,CAAC;AAACD,YAAAA;AAAK,SAAA,CAAA,CAAA;IAEpDE,OAAAA,CAAQC,GAAG,CAACT,SAAAA,CAAUU,QAAQ,EAAA,CAAA;AAE9B,IAAA,MAAMhB,IAAIiB,OAAO,EAAA;AACnB;AAEA;;AAEC,UACKC,OAAAA,GAAyB,IAAA;IAC7B,OAAOC,uBAAAA,CAAc,iBAClBC,WAAW,CAAC,qCACZvB,MAAM,CAACwB,kBAAU,eAAA,EAAiBxB,MAAAA,CAAAA,CAAAA;AACvC;;;;;"}
@@ -2,17 +2,38 @@
2
2
 
3
3
  var commander = require('commander');
4
4
  var fs = require('fs');
5
- var tsUtils = require('@strapi/typescript-utils');
5
+ var path = require('path');
6
6
  var core = require('@strapi/core');
7
7
  var helpers = require('../utils/helpers.js');
8
+ var tryQuickOutdir = require('../utils/try-quick-outdir.js');
9
+
10
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
+
12
+ var fs__default = /*#__PURE__*/_interopDefault(fs);
13
+ var path__default = /*#__PURE__*/_interopDefault(path);
8
14
 
9
15
  const action = async ()=>{
10
16
  const appDir = process.cwd();
11
- const isTSProject = await tsUtils.isUsingTypeScript(appDir);
12
- const outDir = await tsUtils.resolveOutDir(appDir);
13
- const distDir = isTSProject ? outDir : appDir;
14
- const buildDirExists = fs.existsSync(outDir);
15
- if (isTSProject && !buildDirExists) throw new Error(`${outDir} directory not found. Please run the build command before starting your application`);
17
+ const tsconfigPath = path__default.default.join(appDir, 'tsconfig.json');
18
+ let distDir;
19
+ if (!fs__default.default.existsSync(tsconfigPath)) {
20
+ distDir = appDir;
21
+ } else {
22
+ const quickOutDir = tryQuickOutdir.tryQuickOutDir(appDir, tsconfigPath);
23
+ if (quickOutDir && fs__default.default.existsSync(path__default.default.join(quickOutDir, 'src', 'index.js'))) {
24
+ // Built output at configured outDir — skip loading `@strapi/typescript-utils`
25
+ distDir = quickOutDir;
26
+ } else {
27
+ // Custom/extended tsconfig or unbuilt project — fall back to the slow correct path
28
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
29
+ const tsUtils = require('@strapi/typescript-utils');
30
+ const outDir = await tsUtils.resolveOutDir(appDir);
31
+ if (!fs__default.default.existsSync(outDir)) {
32
+ throw new Error(`${outDir} directory not found. Please run the build command before starting your application`);
33
+ }
34
+ distDir = outDir;
35
+ }
36
+ }
16
37
  core.createStrapi({
17
38
  appDir,
18
39
  distDir
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sources":["../../../../src/cli/commands/start.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport fs from 'fs';\nimport 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":["action","appDir","process","cwd","isTSProject","tsUtils","isUsingTypeScript","outDir","resolveOutDir","distDir","buildDirExists","fs","existsSync","Error","createStrapi","start","command","createCommand","description","runAction"],"mappings":";;;;;;;;AAQA,MAAMA,MAAAA,GAAS,UAAA;IACb,MAAMC,MAAAA,GAASC,QAAQC,GAAG,EAAA;AAE1B,IAAA,MAAMC,WAAAA,GAAc,MAAMC,OAAAA,CAAQC,iBAAiB,CAACL,MAAAA,CAAAA;AAEpD,IAAA,MAAMM,MAAAA,GAAS,MAAMF,OAAAA,CAAQG,aAAa,CAACP,MAAAA,CAAAA;IAC3C,MAAMQ,OAAAA,GAAUL,cAAcG,MAAAA,GAASN,MAAAA;IAEvC,MAAMS,cAAAA,GAAiBC,EAAAA,CAAGC,UAAU,CAACL,MAAAA,CAAAA;IACrC,IAAIH,WAAAA,IAAe,CAACM,cAAAA,EAClB,MAAM,IAAIG,KAAAA,CACR,CAAA,EAAGN,MAAAA,CAAO,mFAAmF,CAAC,CAAA;IAGlGO,iBAAAA,CAAa;AAAEb,QAAAA,MAAAA;AAAQQ,QAAAA;AAAQ,KAAA,CAAA,CAAGM,KAAK,EAAA;AACzC,CAAA;AAEA;;AAEC,UACKC,OAAAA,GAAyB,IAAA;IAC7B,OAAOC,uBAAAA,CAAc,SAClBC,WAAW,CAAC,iCACZlB,MAAM,CAACmB,kBAAU,OAAA,EAASnB,MAAAA,CAAAA,CAAAA;AAC/B;;;;"}
1
+ {"version":3,"file":"start.js","sources":["../../../../src/cli/commands/start.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport fs from 'fs';\nimport path from 'path';\nimport { createStrapi } from '@strapi/core';\n\nimport type { StrapiCommand } from '../types';\nimport { runAction } from '../utils/helpers';\nimport { tryQuickOutDir } from '../utils/try-quick-outdir';\n\nconst action = async () => {\n const appDir = process.cwd();\n const tsconfigPath = path.join(appDir, 'tsconfig.json');\n\n let distDir: string;\n\n if (!fs.existsSync(tsconfigPath)) {\n distDir = appDir;\n } else {\n const quickOutDir = tryQuickOutDir(appDir, tsconfigPath);\n\n if (quickOutDir && fs.existsSync(path.join(quickOutDir, 'src', 'index.js'))) {\n // Built output at configured outDir skip loading `@strapi/typescript-utils`\n distDir = quickOutDir;\n } else {\n // Custom/extended tsconfig or unbuilt project — fall back to the slow correct path\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const tsUtils = require('@strapi/typescript-utils');\n const outDir = await tsUtils.resolveOutDir(appDir);\n\n if (!fs.existsSync(outDir)) {\n throw new Error(\n `${outDir} directory not found. Please run the build command before starting your application`\n );\n }\n\n distDir = outDir;\n }\n }\n\n createStrapi({ appDir, distDir }).start();\n};\n\n/**\n * `$ strapi start`\n */\nconst command: StrapiCommand = () => {\n return createCommand('start')\n .description('Start your Strapi application')\n .action(runAction('start', action));\n};\n\nexport { command };\n"],"names":["action","appDir","process","cwd","tsconfigPath","path","join","distDir","fs","existsSync","quickOutDir","tryQuickOutDir","tsUtils","require","outDir","resolveOutDir","Error","createStrapi","start","command","createCommand","description","runAction"],"mappings":";;;;;;;;;;;;;;AASA,MAAMA,MAAAA,GAAS,UAAA;IACb,MAAMC,MAAAA,GAASC,QAAQC,GAAG,EAAA;AAC1B,IAAA,MAAMC,YAAAA,GAAeC,qBAAAA,CAAKC,IAAI,CAACL,MAAAA,EAAQ,eAAA,CAAA;IAEvC,IAAIM,OAAAA;AAEJ,IAAA,IAAI,CAACC,mBAAAA,CAAGC,UAAU,CAACL,YAAAA,CAAAA,EAAe;QAChCG,OAAAA,GAAUN,MAAAA;IACZ,CAAA,MAAO;QACL,MAAMS,WAAAA,GAAcC,8BAAeV,MAAAA,EAAQG,YAAAA,CAAAA;QAE3C,IAAIM,WAAAA,IAAeF,oBAAGC,UAAU,CAACJ,sBAAKC,IAAI,CAACI,WAAAA,EAAa,KAAA,EAAO,UAAA,CAAA,CAAA,EAAc;;YAE3EH,OAAAA,GAAUG,WAAAA;QACZ,CAAA,MAAO;;;AAGL,YAAA,MAAME,UAAUC,OAAAA,CAAQ,0BAAA,CAAA;AACxB,YAAA,MAAMC,MAAAA,GAAS,MAAMF,OAAAA,CAAQG,aAAa,CAACd,MAAAA,CAAAA;AAE3C,YAAA,IAAI,CAACO,mBAAAA,CAAGC,UAAU,CAACK,MAAAA,CAAAA,EAAS;AAC1B,gBAAA,MAAM,IAAIE,KAAAA,CACR,CAAA,EAAGF,MAAAA,CAAO,mFAAmF,CAAC,CAAA;AAElG,YAAA;YAEAP,OAAAA,GAAUO,MAAAA;AACZ,QAAA;AACF,IAAA;IAEAG,iBAAAA,CAAa;AAAEhB,QAAAA,MAAAA;AAAQM,QAAAA;AAAQ,KAAA,CAAA,CAAGW,KAAK,EAAA;AACzC,CAAA;AAEA;;AAEC,UACKC,OAAAA,GAAyB,IAAA;IAC7B,OAAOC,uBAAAA,CAAc,SAClBC,WAAW,CAAC,iCACZrB,MAAM,CAACsB,kBAAU,OAAA,EAAStB,MAAAA,CAAAA,CAAAA;AAC/B;;;;"}
@@ -1,16 +1,32 @@
1
1
  import { createCommand } from 'commander';
2
2
  import fs from 'fs';
3
- import tsUtils__default from '@strapi/typescript-utils';
3
+ import path from 'path';
4
4
  import { createStrapi } from '@strapi/core';
5
5
  import { runAction } from '../utils/helpers.mjs';
6
+ import { tryQuickOutDir } from '../utils/try-quick-outdir.mjs';
6
7
 
7
8
  const action = async ()=>{
8
9
  const appDir = process.cwd();
9
- const isTSProject = await tsUtils__default.isUsingTypeScript(appDir);
10
- const outDir = await tsUtils__default.resolveOutDir(appDir);
11
- const distDir = isTSProject ? outDir : appDir;
12
- const buildDirExists = fs.existsSync(outDir);
13
- if (isTSProject && !buildDirExists) throw new Error(`${outDir} directory not found. Please run the build command before starting your application`);
10
+ const tsconfigPath = path.join(appDir, 'tsconfig.json');
11
+ let distDir;
12
+ if (!fs.existsSync(tsconfigPath)) {
13
+ distDir = appDir;
14
+ } else {
15
+ const quickOutDir = tryQuickOutDir(appDir, tsconfigPath);
16
+ if (quickOutDir && fs.existsSync(path.join(quickOutDir, 'src', 'index.js'))) {
17
+ // Built output at configured outDir — skip loading `@strapi/typescript-utils`
18
+ distDir = quickOutDir;
19
+ } else {
20
+ // Custom/extended tsconfig or unbuilt project — fall back to the slow correct path
21
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
22
+ const tsUtils = require('@strapi/typescript-utils');
23
+ const outDir = await tsUtils.resolveOutDir(appDir);
24
+ if (!fs.existsSync(outDir)) {
25
+ throw new Error(`${outDir} directory not found. Please run the build command before starting your application`);
26
+ }
27
+ distDir = outDir;
28
+ }
29
+ }
14
30
  createStrapi({
15
31
  appDir,
16
32
  distDir
@@ -1 +1 @@
1
- {"version":3,"file":"start.mjs","sources":["../../../../src/cli/commands/start.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport fs from 'fs';\nimport 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":["action","appDir","process","cwd","isTSProject","tsUtils","isUsingTypeScript","outDir","resolveOutDir","distDir","buildDirExists","fs","existsSync","Error","createStrapi","start","command","createCommand","description","runAction"],"mappings":";;;;;;AAQA,MAAMA,MAAAA,GAAS,UAAA;IACb,MAAMC,MAAAA,GAASC,QAAQC,GAAG,EAAA;AAE1B,IAAA,MAAMC,WAAAA,GAAc,MAAMC,gBAAAA,CAAQC,iBAAiB,CAACL,MAAAA,CAAAA;AAEpD,IAAA,MAAMM,MAAAA,GAAS,MAAMF,gBAAAA,CAAQG,aAAa,CAACP,MAAAA,CAAAA;IAC3C,MAAMQ,OAAAA,GAAUL,cAAcG,MAAAA,GAASN,MAAAA;IAEvC,MAAMS,cAAAA,GAAiBC,EAAAA,CAAGC,UAAU,CAACL,MAAAA,CAAAA;IACrC,IAAIH,WAAAA,IAAe,CAACM,cAAAA,EAClB,MAAM,IAAIG,KAAAA,CACR,CAAA,EAAGN,MAAAA,CAAO,mFAAmF,CAAC,CAAA;IAGlGO,YAAAA,CAAa;AAAEb,QAAAA,MAAAA;AAAQQ,QAAAA;AAAQ,KAAA,CAAA,CAAGM,KAAK,EAAA;AACzC,CAAA;AAEA;;AAEC,UACKC,OAAAA,GAAyB,IAAA;IAC7B,OAAOC,aAAAA,CAAc,SAClBC,WAAW,CAAC,iCACZlB,MAAM,CAACmB,UAAU,OAAA,EAASnB,MAAAA,CAAAA,CAAAA;AAC/B;;;;"}
1
+ {"version":3,"file":"start.mjs","sources":["../../../../src/cli/commands/start.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport fs from 'fs';\nimport path from 'path';\nimport { createStrapi } from '@strapi/core';\n\nimport type { StrapiCommand } from '../types';\nimport { runAction } from '../utils/helpers';\nimport { tryQuickOutDir } from '../utils/try-quick-outdir';\n\nconst action = async () => {\n const appDir = process.cwd();\n const tsconfigPath = path.join(appDir, 'tsconfig.json');\n\n let distDir: string;\n\n if (!fs.existsSync(tsconfigPath)) {\n distDir = appDir;\n } else {\n const quickOutDir = tryQuickOutDir(appDir, tsconfigPath);\n\n if (quickOutDir && fs.existsSync(path.join(quickOutDir, 'src', 'index.js'))) {\n // Built output at configured outDir skip loading `@strapi/typescript-utils`\n distDir = quickOutDir;\n } else {\n // Custom/extended tsconfig or unbuilt project — fall back to the slow correct path\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const tsUtils = require('@strapi/typescript-utils');\n const outDir = await tsUtils.resolveOutDir(appDir);\n\n if (!fs.existsSync(outDir)) {\n throw new Error(\n `${outDir} directory not found. Please run the build command before starting your application`\n );\n }\n\n distDir = outDir;\n }\n }\n\n createStrapi({ appDir, distDir }).start();\n};\n\n/**\n * `$ strapi start`\n */\nconst command: StrapiCommand = () => {\n return createCommand('start')\n .description('Start your Strapi application')\n .action(runAction('start', action));\n};\n\nexport { command };\n"],"names":["action","appDir","process","cwd","tsconfigPath","path","join","distDir","fs","existsSync","quickOutDir","tryQuickOutDir","tsUtils","require","outDir","resolveOutDir","Error","createStrapi","start","command","createCommand","description","runAction"],"mappings":";;;;;;;AASA,MAAMA,MAAAA,GAAS,UAAA;IACb,MAAMC,MAAAA,GAASC,QAAQC,GAAG,EAAA;AAC1B,IAAA,MAAMC,YAAAA,GAAeC,IAAAA,CAAKC,IAAI,CAACL,MAAAA,EAAQ,eAAA,CAAA;IAEvC,IAAIM,OAAAA;AAEJ,IAAA,IAAI,CAACC,EAAAA,CAAGC,UAAU,CAACL,YAAAA,CAAAA,EAAe;QAChCG,OAAAA,GAAUN,MAAAA;IACZ,CAAA,MAAO;QACL,MAAMS,WAAAA,GAAcC,eAAeV,MAAAA,EAAQG,YAAAA,CAAAA;QAE3C,IAAIM,WAAAA,IAAeF,GAAGC,UAAU,CAACJ,KAAKC,IAAI,CAACI,WAAAA,EAAa,KAAA,EAAO,UAAA,CAAA,CAAA,EAAc;;YAE3EH,OAAAA,GAAUG,WAAAA;QACZ,CAAA,MAAO;;;AAGL,YAAA,MAAME,UAAUC,OAAAA,CAAQ,0BAAA,CAAA;AACxB,YAAA,MAAMC,MAAAA,GAAS,MAAMF,OAAAA,CAAQG,aAAa,CAACd,MAAAA,CAAAA;AAE3C,YAAA,IAAI,CAACO,EAAAA,CAAGC,UAAU,CAACK,MAAAA,CAAAA,EAAS;AAC1B,gBAAA,MAAM,IAAIE,KAAAA,CACR,CAAA,EAAGF,MAAAA,CAAO,mFAAmF,CAAC,CAAA;AAElG,YAAA;YAEAP,OAAAA,GAAUO,MAAAA;AACZ,QAAA;AACF,IAAA;IAEAG,YAAAA,CAAa;AAAEhB,QAAAA,MAAAA;AAAQM,QAAAA;AAAQ,KAAA,CAAA,CAAGW,KAAK,EAAA;AACzC,CAAA;AAEA;;AAEC,UACKC,OAAAA,GAAyB,IAAA;IAC7B,OAAOC,aAAAA,CAAc,SAClBC,WAAW,CAAC,iCACZrB,MAAM,CAACsB,UAAU,OAAA,EAAStB,MAAAA,CAAAA,CAAAA;AAC/B;;;;"}
@@ -7,9 +7,14 @@ var commander = require('commander');
7
7
  var helpers = require('../../utils/helpers.js');
8
8
  var telemetry = require('../../utils/telemetry.js');
9
9
 
10
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
+
12
+ var fse__default = /*#__PURE__*/_interopDefault(fse);
13
+ var chalk__default = /*#__PURE__*/_interopDefault(chalk);
14
+
10
15
  const readPackageJSON = async (path)=>{
11
16
  try {
12
- const packageObj = await fse.readJson(path);
17
+ const packageObj = await fse__default.default.readJson(path);
13
18
  const uuid = packageObj.strapi ? packageObj.strapi.uuid : null;
14
19
  const installId = packageObj.strapi ? packageObj.strapi.installId : null;
15
20
  return {
@@ -19,32 +24,32 @@ const readPackageJSON = async (path)=>{
19
24
  };
20
25
  } catch (err) {
21
26
  if (err instanceof Error) {
22
- console.error(`${chalk.red('Error')}: ${err.message}`);
27
+ console.error(`${chalk__default.default.red('Error')}: ${err.message}`);
23
28
  }
24
29
  }
25
30
  };
26
31
  const writePackageJSON = async (path, file, spacing)=>{
27
32
  try {
28
- await fse.writeJson(path, file, {
33
+ await fse__default.default.writeJson(path, file, {
29
34
  spaces: spacing
30
35
  });
31
36
  return true;
32
37
  } catch (err) {
33
38
  if (err instanceof Error) {
34
- console.error(`${chalk.red('Error')}: ${err.message}`);
39
+ console.error(`${chalk__default.default.red('Error')}: ${err.message}`);
35
40
  }
36
41
  }
37
42
  };
38
43
  const action = async ()=>{
39
44
  const packageJSONPath = path.resolve(process.cwd(), 'package.json');
40
- const exists = await fse.pathExists(packageJSONPath);
45
+ const exists = await fse__default.default.pathExists(packageJSONPath);
41
46
  if (!exists) {
42
- console.log(`${chalk.yellow('Warning')}: could not find package.json`);
47
+ console.log(`${chalk__default.default.yellow('Warning')}: could not find package.json`);
43
48
  process.exit(0);
44
49
  }
45
50
  const { uuid, installId, packageObj } = await readPackageJSON(packageJSONPath) ?? {};
46
51
  if (packageObj.strapi && packageObj.strapi.telemetryDisabled || !uuid) {
47
- console.log(`${chalk.yellow('Warning:')} telemetry is already disabled`);
52
+ console.log(`${chalk__default.default.yellow('Warning:')} telemetry is already disabled`);
48
53
  process.exit(0);
49
54
  }
50
55
  const updatedPackageJSON = {
@@ -56,11 +61,11 @@ const action = async ()=>{
56
61
  };
57
62
  const write = await writePackageJSON(packageJSONPath, updatedPackageJSON, 2);
58
63
  if (!write) {
59
- console.log(`${chalk.yellow('Warning')}: There has been an error, please set "telemetryDisabled": true in the "strapi" object of your package.json manually.`);
64
+ console.log(`${chalk__default.default.yellow('Warning')}: There has been an error, please set "telemetryDisabled": true in the "strapi" object of your package.json manually.`);
60
65
  process.exit(0);
61
66
  }
62
67
  await telemetry.sendEvent('didOptOutTelemetry', uuid, installId);
63
- console.log(`${chalk.green('Successfully opted out of Strapi telemetry')}`);
68
+ console.log(`${chalk__default.default.green('Successfully opted out of Strapi telemetry')}`);
64
69
  process.exit(0);
65
70
  };
66
71
  /**
@@ -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 const installId = packageObj.strapi ? packageObj.strapi.installId : null;\n\n return { uuid, installId, 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, installId, 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, installId);\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":["readPackageJSON","path","packageObj","fse","readJson","uuid","strapi","installId","err","Error","console","error","chalk","red","message","writePackageJSON","file","spacing","writeJson","spaces","action","packageJSONPath","resolve","process","cwd","exists","pathExists","log","yellow","exit","telemetryDisabled","updatedPackageJSON","write","sendEvent","green","command","createCommand","description","runAction"],"mappings":"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"}
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 const installId = packageObj.strapi ? packageObj.strapi.installId : null;\n\n return { uuid, installId, 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, installId, 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, installId);\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":["readPackageJSON","path","packageObj","fse","readJson","uuid","strapi","installId","err","Error","console","error","chalk","red","message","writePackageJSON","file","spacing","writeJson","spaces","action","packageJSONPath","resolve","process","cwd","exists","pathExists","log","yellow","exit","telemetryDisabled","updatedPackageJSON","write","sendEvent","green","command","createCommand","description","runAction"],"mappings":"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"}
@@ -8,13 +8,18 @@ var commander = require('commander');
8
8
  var helpers = require('../../utils/helpers.js');
9
9
  var telemetry = require('../../utils/telemetry.js');
10
10
 
11
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
+
13
+ var fse__default = /*#__PURE__*/_interopDefault(fse);
14
+ var chalk__default = /*#__PURE__*/_interopDefault(chalk);
15
+
11
16
  const readPackageJSON = async (path)=>{
12
17
  try {
13
- const packageObj = await fse.readJson(path);
18
+ const packageObj = await fse__default.default.readJson(path);
14
19
  return packageObj;
15
20
  } catch (err) {
16
21
  if (err instanceof Error) {
17
- console.error(`${chalk.red('Error')}: ${err.message}`);
22
+ console.error(`${chalk__default.default.red('Error')}: ${err.message}`);
18
23
  } else {
19
24
  throw err;
20
25
  }
@@ -22,14 +27,14 @@ const readPackageJSON = async (path)=>{
22
27
  };
23
28
  const writePackageJSON = async (path, file, spacing)=>{
24
29
  try {
25
- await fse.writeJson(path, file, {
30
+ await fse__default.default.writeJson(path, file, {
26
31
  spaces: spacing
27
32
  });
28
33
  return true;
29
34
  } catch (err) {
30
35
  if (err instanceof Error) {
31
- console.error(`${chalk.red('Error')}: ${err.message}`);
32
- console.log(`${chalk.yellow('Warning')}: There has been an error, please set "telemetryDisabled": false in the "strapi" object of your package.json manually.`);
36
+ console.error(`${chalk__default.default.red('Error')}: ${err.message}`);
37
+ console.log(`${chalk__default.default.yellow('Warning')}: There has been an error, please set "telemetryDisabled": false in the "strapi" object of your package.json manually.`);
33
38
  return false;
34
39
  }
35
40
  throw err;
@@ -56,15 +61,15 @@ const generateNewPackageJSON = (packageObj)=>{
56
61
  };
57
62
  const action = async ()=>{
58
63
  const packageJSONPath = path.resolve(process.cwd(), 'package.json');
59
- const exists = await fse.pathExists(packageJSONPath);
64
+ const exists = await fse__default.default.pathExists(packageJSONPath);
60
65
  if (!exists) {
61
- console.log(`${chalk.yellow('Warning')}: could not find package.json`);
66
+ console.log(`${chalk__default.default.yellow('Warning')}: could not find package.json`);
62
67
  process.exit(0);
63
68
  }
64
69
  const packageObj = await readPackageJSON(packageJSONPath);
65
70
  if (packageObj.strapi && packageObj.strapi.uuid) {
66
71
  if (packageObj.strapi.telemetryDisabled === false) {
67
- console.log(`${chalk.yellow('Warning:')} telemetry is already enabled`);
72
+ console.log(`${chalk__default.default.yellow('Warning:')} telemetry is already enabled`);
68
73
  process.exit(0);
69
74
  }
70
75
  }
@@ -74,7 +79,7 @@ const action = async ()=>{
74
79
  process.exit(0);
75
80
  }
76
81
  await telemetry.sendEvent('didOptInTelemetry', updatedPackageJSON.strapi.uuid, updatedPackageJSON.strapi?.installId);
77
- console.log(`${chalk.green('Successfully opted into and enabled Strapi telemetry')}`);
82
+ console.log(`${chalk__default.default.green('Successfully opted into and enabled Strapi telemetry')}`);
78
83
  process.exit(0);
79
84
  };
80
85
  /**
@@ -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 installId?: 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(\n 'didOptInTelemetry',\n updatedPackageJSON.strapi.uuid,\n updatedPackageJSON.strapi?.installId\n );\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":["readPackageJSON","path","packageObj","fse","readJson","err","Error","console","error","chalk","red","message","writePackageJSON","file","spacing","writeJson","spaces","log","yellow","generateNewPackageJSON","strapi","uuid","randomUUID","telemetryDisabled","action","packageJSONPath","resolve","process","cwd","exists","pathExists","exit","updatedPackageJSON","write","sendEvent","installId","green","command","createCommand","description","runAction"],"mappings":"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"}
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 installId?: 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(\n 'didOptInTelemetry',\n updatedPackageJSON.strapi.uuid,\n updatedPackageJSON.strapi?.installId\n );\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":["readPackageJSON","path","packageObj","fse","readJson","err","Error","console","error","chalk","red","message","writePackageJSON","file","spacing","writeJson","spaces","log","yellow","generateNewPackageJSON","strapi","uuid","randomUUID","telemetryDisabled","action","packageJSONPath","resolve","process","cwd","exists","pathExists","exit","updatedPackageJSON","write","sendEvent","installId","green","command","createCommand","description","runAction"],"mappings":"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"}
@@ -6,6 +6,10 @@ var dataTransfer = require('@strapi/data-transfer');
6
6
  var dataTransfer$1 = require('../../utils/data-transfer.js');
7
7
  var helpers = require('../../utils/helpers.js');
8
8
 
9
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
+
11
+ var ora__default = /*#__PURE__*/_interopDefault(ora);
12
+
9
13
  const { createTransferEngine } = dataTransfer.engine;
10
14
  const { providers: { createRemoteStrapiDestinationProvider, createLocalStrapiSourceProvider, createLocalStrapiDestinationProvider, createRemoteStrapiSourceProvider } } = dataTransfer.strapi;
11
15
  const resolveRemotePullAssetIdleTimeoutMs = (value)=>{
@@ -204,7 +208,7 @@ const resolveRemotePullAssetIdleTimeoutMs = (value)=>{
204
208
  progress.on('transfer::start', async ()=>{
205
209
  transferPrepStartedAt = Date.now();
206
210
  prepStepDetail = null;
207
- startingSpinner = ora(formatPrepSpinnerLine()).start();
211
+ startingSpinner = ora__default.default(formatPrepSpinnerLine()).start();
208
212
  startingElapsedInterval = setInterval(()=>{
209
213
  if (startingSpinner && transferPrepStartedAt != null) {
210
214
  const elapsed = Date.now() - transferPrepStartedAt;
@@ -1 +1 @@
1
- {"version":3,"file":"action.js","sources":["../../../../../src/cli/commands/transfer/action.ts"],"sourcesContent":["import { isObject } from 'lodash/fp';\nimport ora from 'ora';\nimport type { Ora } from 'ora';\nimport { engine as engineDataTransfer, strapi as strapiDataTransfer } from '@strapi/data-transfer';\n\nimport {\n buildTransferTable,\n createStrapiInstance,\n isIgnoredContentType,\n formatDiagnostic,\n loadersFactory,\n exitMessageText,\n abortTransfer,\n getTransferTelemetryPayload,\n setSignalHandler,\n getDiffHandler,\n getAssetsBackupHandler,\n parseRestoreFromOptions,\n} from '../../utils/data-transfer';\nimport {\n exitWith,\n formatElapsedAndMaybeRemainingLabel,\n TRANSFER_PROGRESS_FIELD_SEP,\n} from '../../utils/helpers';\n\nconst { createTransferEngine } = engineDataTransfer;\nconst {\n providers: {\n createRemoteStrapiDestinationProvider,\n createLocalStrapiSourceProvider,\n createLocalStrapiDestinationProvider,\n createRemoteStrapiSourceProvider,\n },\n} = strapiDataTransfer;\n\nconst resolveRemotePullAssetIdleTimeoutMs = (value: unknown): number | undefined => {\n if (value == null || value === '') {\n return undefined;\n }\n const n = typeof value === 'number' ? value : Number(value);\n if (!Number.isFinite(n) || n <= 0) {\n return undefined;\n }\n return n;\n};\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 checksums?: boolean;\n}\n/**\n * Transfer command.\n *\n * Transfers data between local Strapi and remote Strapi instances\n */\nexport default async (opts: CmdOptions) => {\n // Avoid DeprecationWarning lines on stderr (e.g. pg `client.query()` while a query is in flight)\n // interleaving with ora spinners during transfer. (Runtime API; not on all @types/node Process typings.)\n (process as NodeJS.Process & { noDeprecation: boolean }).noDeprecation = true;\n\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 const checksumsEnabled = opts.checksums !== false;\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 const assetIdleTimeoutMs = resolveRemotePullAssetIdleTimeoutMs(\n strapi.config.get('server.transfer.remote.assetIdleTimeoutMs')\n );\n\n source = createRemoteStrapiSourceProvider({\n getStrapi: () => strapi,\n url: opts.from,\n auth: {\n type: 'token',\n token: opts.fromToken,\n },\n ...(assetIdleTimeoutMs !== undefined ? { streamTimeout: assetIdleTimeoutMs } : {}),\n ...(checksumsEnabled ? { verifyChecksums: true } : {}),\n });\n }\n\n /** Wired after `engine` exists so destination prep can update the CLI spinner. */\n const transferPhaseBridge: { emit: (message: string) => void } = {\n emit() {\n /* replaced below once `progress` exists */\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, strapi),\n onTransferPhase: (message: string) => transferPhaseBridge.emit(message),\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, strapi),\n onTransferPhase: (message: string) => transferPhaseBridge.emit(message),\n ...(checksumsEnabled ? { verifyChecksums: true } : {}),\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 !isIgnoredContentType(link.left.type) && !isIgnoredContentType(link.right.type);\n },\n },\n ],\n entities: [\n {\n filter(entity) {\n return !isIgnoredContentType(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 /** Shown until destination prep emits a step; then we keep this prefix and append the step after \" — \". */\n const STARTING_TRANSFER_PREFIX = 'Starting transfer…';\n let prepStepDetail: string | null = null;\n\n const formatPrepSpinnerLine = () =>\n prepStepDetail != null && prepStepDetail !== ''\n ? `${STARTING_TRANSFER_PREFIX} — ${prepStepDetail}`\n : STARTING_TRANSFER_PREFIX;\n\n transferPhaseBridge.emit = (message: string) => {\n prepStepDetail = message;\n progress.emit('transfer::phase', { message: formatPrepSpinnerLine() });\n };\n\n const { updateLoader } = loadersFactory();\n\n let startingSpinner: Ora | null = null;\n let startingElapsedInterval: ReturnType<typeof setInterval> | null = null;\n /** Set when `transfer::start` fires so we can print a final persisted line with elapsed time. */\n let transferPrepStartedAt: number | null = null;\n\n /**\n * Stops the \"starting transfer\" spinner and **leaves a finished line** in the console (like stage\n * `succeed`/`fail`), so the next stage spinner starts on a new line instead of replacing this one.\n */\n const finishStartingSpinner = (outcome: 'done' | 'fail' = 'done') => {\n if (startingElapsedInterval) {\n clearInterval(startingElapsedInterval);\n startingElapsedInterval = null;\n }\n if (startingSpinner) {\n const elapsed = transferPrepStartedAt != null ? Date.now() - transferPrepStartedAt : 0;\n const line = `${formatPrepSpinnerLine()}${TRANSFER_PROGRESS_FIELD_SEP}${formatElapsedAndMaybeRemainingLabel(\n elapsed,\n null\n )}`;\n if (outcome === 'fail') {\n startingSpinner.fail(line);\n } else {\n startingSpinner.succeed(line);\n }\n startingSpinner = null;\n transferPrepStartedAt = null;\n }\n };\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 // Update more frequently to ensure elapsed time is accurate even if the stage is not progressing\n const activeStages = new Set<string>();\n const lastStageData: Record<string, any> = {};\n const interval = setInterval(() => {\n for (const stage of activeStages) {\n if (lastStageData[stage]) {\n // Clone the lastStageData and ensure endTime is undefined so elapsed uses Date.now()\n const dataCopy = { ...lastStageData[stage], endTime: undefined };\n updateLoader(stage as any, { [stage]: dataCopy });\n }\n }\n }, 100);\n\n progress.on(`stage::start`, ({ stage, data }) => {\n finishStartingSpinner('done');\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 lastStageData[stage] = data[stage];\n activeStages.add(stage);\n updateLoader(stage, data);\n });\n\n progress.on('stage::error', ({ stage, data }) => {\n updateLoader(stage, data).fail();\n });\n\n progress.on('transfer::finish', () => {\n finishStartingSpinner('done');\n clearInterval(interval);\n });\n progress.on('transfer::error', () => {\n finishStartingSpinner('fail');\n clearInterval(interval);\n });\n\n progress.on('transfer::start', async () => {\n transferPrepStartedAt = Date.now();\n prepStepDetail = null;\n startingSpinner = ora(formatPrepSpinnerLine()).start();\n startingElapsedInterval = setInterval(() => {\n if (startingSpinner && transferPrepStartedAt != null) {\n const elapsed = Date.now() - transferPrepStartedAt;\n startingSpinner.text = `${formatPrepSpinnerLine()}${TRANSFER_PROGRESS_FIELD_SEP}${formatElapsedAndMaybeRemainingLabel(\n elapsed,\n null\n )}`;\n }\n }, 100);\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":["createTransferEngine","engineDataTransfer","providers","createRemoteStrapiDestinationProvider","createLocalStrapiSourceProvider","createLocalStrapiDestinationProvider","createRemoteStrapiSourceProvider","strapiDataTransfer","resolveRemotePullAssetIdleTimeoutMs","value","undefined","n","Number","isFinite","opts","process","noDeprecation","isObject","exitWith","from","to","strapi","createStrapiInstance","checksumsEnabled","checksums","source","destination","getStrapi","fromToken","assetIdleTimeoutMs","config","get","url","auth","type","token","streamTimeout","verifyChecksums","transferPhaseBridge","emit","strategy","restore","parseRestoreFromOptions","onTransferPhase","message","toToken","engine","versionStrategy","schemaStrategy","exclude","only","throttle","transforms","links","filter","link","isIgnoredContentType","left","right","entities","entity","diagnostics","onDiagnostic","formatDiagnostic","verbose","progress","stream","STARTING_TRANSFER_PREFIX","prepStepDetail","formatPrepSpinnerLine","updateLoader","loadersFactory","startingSpinner","startingElapsedInterval","transferPrepStartedAt","finishStartingSpinner","outcome","clearInterval","elapsed","Date","now","line","TRANSFER_PROGRESS_FIELD_SEP","formatElapsedAndMaybeRemainingLabel","fail","succeed","onSchemaDiff","getDiffHandler","force","action","addErrorHandler","getAssetsBackupHandler","activeStages","Set","lastStageData","interval","setInterval","stage","dataCopy","endTime","on","data","start","add","ora","text","telemetry","send","getTransferTelemetryPayload","results","setSignalHandler","abortTransfer","transfer","table","buildTransferTable","console","log","toString","e","error","exitMessageText"],"mappings":"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"}
1
+ {"version":3,"file":"action.js","sources":["../../../../../src/cli/commands/transfer/action.ts"],"sourcesContent":["import { isObject } from 'lodash/fp';\nimport ora from 'ora';\nimport type { Ora } from 'ora';\nimport { engine as engineDataTransfer, strapi as strapiDataTransfer } from '@strapi/data-transfer';\n\nimport {\n buildTransferTable,\n createStrapiInstance,\n isIgnoredContentType,\n formatDiagnostic,\n loadersFactory,\n exitMessageText,\n abortTransfer,\n getTransferTelemetryPayload,\n setSignalHandler,\n getDiffHandler,\n getAssetsBackupHandler,\n parseRestoreFromOptions,\n} from '../../utils/data-transfer';\nimport {\n exitWith,\n formatElapsedAndMaybeRemainingLabel,\n TRANSFER_PROGRESS_FIELD_SEP,\n} from '../../utils/helpers';\n\nconst { createTransferEngine } = engineDataTransfer;\nconst {\n providers: {\n createRemoteStrapiDestinationProvider,\n createLocalStrapiSourceProvider,\n createLocalStrapiDestinationProvider,\n createRemoteStrapiSourceProvider,\n },\n} = strapiDataTransfer;\n\nconst resolveRemotePullAssetIdleTimeoutMs = (value: unknown): number | undefined => {\n if (value == null || value === '') {\n return undefined;\n }\n const n = typeof value === 'number' ? value : Number(value);\n if (!Number.isFinite(n) || n <= 0) {\n return undefined;\n }\n return n;\n};\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 checksums?: boolean;\n}\n/**\n * Transfer command.\n *\n * Transfers data between local Strapi and remote Strapi instances\n */\nexport default async (opts: CmdOptions) => {\n // Avoid DeprecationWarning lines on stderr (e.g. pg `client.query()` while a query is in flight)\n // interleaving with ora spinners during transfer. (Runtime API; not on all @types/node Process typings.)\n (process as NodeJS.Process & { noDeprecation: boolean }).noDeprecation = true;\n\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 const checksumsEnabled = opts.checksums !== false;\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 const assetIdleTimeoutMs = resolveRemotePullAssetIdleTimeoutMs(\n strapi.config.get('server.transfer.remote.assetIdleTimeoutMs')\n );\n\n source = createRemoteStrapiSourceProvider({\n getStrapi: () => strapi,\n url: opts.from,\n auth: {\n type: 'token',\n token: opts.fromToken,\n },\n ...(assetIdleTimeoutMs !== undefined ? { streamTimeout: assetIdleTimeoutMs } : {}),\n ...(checksumsEnabled ? { verifyChecksums: true } : {}),\n });\n }\n\n /** Wired after `engine` exists so destination prep can update the CLI spinner. */\n const transferPhaseBridge: { emit: (message: string) => void } = {\n emit() {\n /* replaced below once `progress` exists */\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, strapi),\n onTransferPhase: (message: string) => transferPhaseBridge.emit(message),\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, strapi),\n onTransferPhase: (message: string) => transferPhaseBridge.emit(message),\n ...(checksumsEnabled ? { verifyChecksums: true } : {}),\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 !isIgnoredContentType(link.left.type) && !isIgnoredContentType(link.right.type);\n },\n },\n ],\n entities: [\n {\n filter(entity) {\n return !isIgnoredContentType(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 /** Shown until destination prep emits a step; then we keep this prefix and append the step after \" — \". */\n const STARTING_TRANSFER_PREFIX = 'Starting transfer…';\n let prepStepDetail: string | null = null;\n\n const formatPrepSpinnerLine = () =>\n prepStepDetail != null && prepStepDetail !== ''\n ? `${STARTING_TRANSFER_PREFIX} — ${prepStepDetail}`\n : STARTING_TRANSFER_PREFIX;\n\n transferPhaseBridge.emit = (message: string) => {\n prepStepDetail = message;\n progress.emit('transfer::phase', { message: formatPrepSpinnerLine() });\n };\n\n const { updateLoader } = loadersFactory();\n\n let startingSpinner: Ora | null = null;\n let startingElapsedInterval: ReturnType<typeof setInterval> | null = null;\n /** Set when `transfer::start` fires so we can print a final persisted line with elapsed time. */\n let transferPrepStartedAt: number | null = null;\n\n /**\n * Stops the \"starting transfer\" spinner and **leaves a finished line** in the console (like stage\n * `succeed`/`fail`), so the next stage spinner starts on a new line instead of replacing this one.\n */\n const finishStartingSpinner = (outcome: 'done' | 'fail' = 'done') => {\n if (startingElapsedInterval) {\n clearInterval(startingElapsedInterval);\n startingElapsedInterval = null;\n }\n if (startingSpinner) {\n const elapsed = transferPrepStartedAt != null ? Date.now() - transferPrepStartedAt : 0;\n const line = `${formatPrepSpinnerLine()}${TRANSFER_PROGRESS_FIELD_SEP}${formatElapsedAndMaybeRemainingLabel(\n elapsed,\n null\n )}`;\n if (outcome === 'fail') {\n startingSpinner.fail(line);\n } else {\n startingSpinner.succeed(line);\n }\n startingSpinner = null;\n transferPrepStartedAt = null;\n }\n };\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 // Update more frequently to ensure elapsed time is accurate even if the stage is not progressing\n const activeStages = new Set<string>();\n const lastStageData: Record<string, any> = {};\n const interval = setInterval(() => {\n for (const stage of activeStages) {\n if (lastStageData[stage]) {\n // Clone the lastStageData and ensure endTime is undefined so elapsed uses Date.now()\n const dataCopy = { ...lastStageData[stage], endTime: undefined };\n updateLoader(stage as any, { [stage]: dataCopy });\n }\n }\n }, 100);\n\n progress.on(`stage::start`, ({ stage, data }) => {\n finishStartingSpinner('done');\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 lastStageData[stage] = data[stage];\n activeStages.add(stage);\n updateLoader(stage, data);\n });\n\n progress.on('stage::error', ({ stage, data }) => {\n updateLoader(stage, data).fail();\n });\n\n progress.on('transfer::finish', () => {\n finishStartingSpinner('done');\n clearInterval(interval);\n });\n progress.on('transfer::error', () => {\n finishStartingSpinner('fail');\n clearInterval(interval);\n });\n\n progress.on('transfer::start', async () => {\n transferPrepStartedAt = Date.now();\n prepStepDetail = null;\n startingSpinner = ora(formatPrepSpinnerLine()).start();\n startingElapsedInterval = setInterval(() => {\n if (startingSpinner && transferPrepStartedAt != null) {\n const elapsed = Date.now() - transferPrepStartedAt;\n startingSpinner.text = `${formatPrepSpinnerLine()}${TRANSFER_PROGRESS_FIELD_SEP}${formatElapsedAndMaybeRemainingLabel(\n elapsed,\n null\n )}`;\n }\n }, 100);\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":["createTransferEngine","engineDataTransfer","providers","createRemoteStrapiDestinationProvider","createLocalStrapiSourceProvider","createLocalStrapiDestinationProvider","createRemoteStrapiSourceProvider","strapiDataTransfer","resolveRemotePullAssetIdleTimeoutMs","value","undefined","n","Number","isFinite","opts","process","noDeprecation","isObject","exitWith","from","to","strapi","createStrapiInstance","checksumsEnabled","checksums","source","destination","getStrapi","fromToken","assetIdleTimeoutMs","config","get","url","auth","type","token","streamTimeout","verifyChecksums","transferPhaseBridge","emit","strategy","restore","parseRestoreFromOptions","onTransferPhase","message","toToken","engine","versionStrategy","schemaStrategy","exclude","only","throttle","transforms","links","filter","link","isIgnoredContentType","left","right","entities","entity","diagnostics","onDiagnostic","formatDiagnostic","verbose","progress","stream","STARTING_TRANSFER_PREFIX","prepStepDetail","formatPrepSpinnerLine","updateLoader","loadersFactory","startingSpinner","startingElapsedInterval","transferPrepStartedAt","finishStartingSpinner","outcome","clearInterval","elapsed","Date","now","line","TRANSFER_PROGRESS_FIELD_SEP","formatElapsedAndMaybeRemainingLabel","fail","succeed","onSchemaDiff","getDiffHandler","force","action","addErrorHandler","getAssetsBackupHandler","activeStages","Set","lastStageData","interval","setInterval","stage","dataCopy","endTime","on","data","start","add","ora","text","telemetry","send","getTransferTelemetryPayload","results","setSignalHandler","abortTransfer","transfer","table","buildTransferTable","console","log","toString","e","error","exitMessageText"],"mappings":"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"}