@strapi/strapi 4.26.0 → 4.26.2

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 (345) hide show
  1. package/dist/Strapi.js.map +1 -1
  2. package/dist/Strapi.mjs.map +1 -1
  3. package/dist/admin.js.map +1 -1
  4. package/dist/admin.mjs.map +1 -1
  5. package/dist/commands/actions/admin/create-user/action.js.map +1 -1
  6. package/dist/commands/actions/admin/reset-user-password/action.js.map +1 -1
  7. package/dist/commands/actions/admin/reset-user-password/command.js.map +1 -1
  8. package/dist/commands/actions/components/list/action.js.map +1 -1
  9. package/dist/commands/actions/components/list/command.js.map +1 -1
  10. package/dist/commands/actions/configuration/dump/action.js.map +1 -1
  11. package/dist/commands/actions/configuration/dump/command.js.map +1 -1
  12. package/dist/commands/actions/configuration/restore/action.js +1 -2
  13. package/dist/commands/actions/configuration/restore/action.js.map +1 -1
  14. package/dist/commands/actions/configuration/restore/command.js.map +1 -1
  15. package/dist/commands/actions/console/action.js.map +1 -1
  16. package/dist/commands/actions/console/command.js.map +1 -1
  17. package/dist/commands/actions/content-types/list/action.js.map +1 -1
  18. package/dist/commands/actions/content-types/list/command.js.map +1 -1
  19. package/dist/commands/actions/controllers/list/action.js.map +1 -1
  20. package/dist/commands/actions/controllers/list/command.js.map +1 -1
  21. package/dist/commands/actions/generate/command.js.map +1 -1
  22. package/dist/commands/actions/hooks/list/action.js.map +1 -1
  23. package/dist/commands/actions/hooks/list/command.js.map +1 -1
  24. package/dist/commands/actions/install/action.js.map +1 -1
  25. package/dist/commands/actions/install/command.js.map +1 -1
  26. package/dist/commands/actions/middlewares/list/action.js.map +1 -1
  27. package/dist/commands/actions/middlewares/list/command.js.map +1 -1
  28. package/dist/commands/actions/new/action.js.map +1 -1
  29. package/dist/commands/actions/new/command.js.map +1 -1
  30. package/dist/commands/actions/plugin/build-command/action.js.map +1 -1
  31. package/dist/commands/actions/plugin/build-command/command.js.map +1 -1
  32. package/dist/commands/actions/plugin/init/action.js.map +1 -1
  33. package/dist/commands/actions/plugin/init/command.js.map +1 -1
  34. package/dist/commands/actions/plugin/init/files/admin.js.map +1 -1
  35. package/dist/commands/actions/plugin/init/files/server.js.map +1 -1
  36. package/dist/commands/actions/plugin/init/files/typescript.js.map +1 -1
  37. package/dist/commands/actions/plugin/link-watch/action.js.map +1 -1
  38. package/dist/commands/actions/plugin/verify/action.js.map +1 -1
  39. package/dist/commands/actions/plugin/watch/action.js.map +1 -1
  40. package/dist/commands/actions/policies/list/action.js.map +1 -1
  41. package/dist/commands/actions/policies/list/command.js.map +1 -1
  42. package/dist/commands/actions/report/action.js.map +1 -1
  43. package/dist/commands/actions/report/command.js.map +1 -1
  44. package/dist/commands/actions/routes/list/action.js.map +1 -1
  45. package/dist/commands/actions/routes/list/command.js.map +1 -1
  46. package/dist/commands/actions/services/list/action.js.map +1 -1
  47. package/dist/commands/actions/services/list/command.js.map +1 -1
  48. package/dist/commands/actions/start/action.js.map +1 -1
  49. package/dist/commands/actions/start/command.js.map +1 -1
  50. package/dist/commands/actions/telemetry/disable/action.js.map +1 -1
  51. package/dist/commands/actions/telemetry/disable/command.js.map +1 -1
  52. package/dist/commands/actions/telemetry/enable/action.js.map +1 -1
  53. package/dist/commands/actions/telemetry/enable/command.js.map +1 -1
  54. package/dist/commands/actions/templates/generate/action.js.map +1 -1
  55. package/dist/commands/actions/templates/generate/command.js.map +1 -1
  56. package/dist/commands/actions/ts/generate-types/action.js.map +1 -1
  57. package/dist/commands/actions/ts/generate-types/command.js.map +1 -1
  58. package/dist/commands/actions/uninstall/action.js.map +1 -1
  59. package/dist/commands/actions/uninstall/command.js.map +1 -1
  60. package/dist/commands/actions/version/command.js.map +1 -1
  61. package/dist/commands/actions/watch-admin/action.js.map +1 -1
  62. package/dist/commands/actions/watch-admin/command.js.map +1 -1
  63. package/dist/commands/index.js +60 -60
  64. package/dist/commands/index.js.map +1 -1
  65. package/dist/commands/utils/commander.js.map +1 -1
  66. package/dist/commands/utils/helpers.js.map +1 -1
  67. package/dist/commands/utils/logger.js +1 -2
  68. package/dist/commands/utils/logger.js.map +1 -1
  69. package/dist/commands/utils/pkg.js +1 -2
  70. package/dist/commands/utils/pkg.js.map +1 -1
  71. package/dist/commands/utils/tsconfig.js.map +1 -1
  72. package/dist/compile.js.map +1 -1
  73. package/dist/compile.mjs.map +1 -1
  74. package/dist/container.js.map +1 -1
  75. package/dist/container.mjs.map +1 -1
  76. package/dist/core/app-configuration/config-loader.js +1 -2
  77. package/dist/core/app-configuration/config-loader.js.map +1 -1
  78. package/dist/core/app-configuration/config-loader.mjs +1 -2
  79. package/dist/core/app-configuration/config-loader.mjs.map +1 -1
  80. package/dist/core/app-configuration/index.js.map +1 -1
  81. package/dist/core/app-configuration/index.mjs.map +1 -1
  82. package/dist/core/app-configuration/load-config-file.js.map +1 -1
  83. package/dist/core/app-configuration/load-config-file.mjs +1 -1
  84. package/dist/core/app-configuration/load-config-file.mjs.map +1 -1
  85. package/dist/core/bootstrap.js.map +1 -1
  86. package/dist/core/bootstrap.mjs.map +1 -1
  87. package/dist/core/domain/content-type/index.js.map +1 -1
  88. package/dist/core/domain/content-type/index.mjs.map +1 -1
  89. package/dist/core/domain/content-type/validator.js.map +1 -1
  90. package/dist/core/domain/content-type/validator.mjs.map +1 -1
  91. package/dist/core/domain/module/index.js.map +1 -1
  92. package/dist/core/domain/module/index.mjs.map +1 -1
  93. package/dist/core/domain/module/validation.js.map +1 -1
  94. package/dist/core/domain/module/validation.mjs.map +1 -1
  95. package/dist/core/loaders/admin.js.map +1 -1
  96. package/dist/core/loaders/admin.mjs.map +1 -1
  97. package/dist/core/loaders/apis.js.map +1 -1
  98. package/dist/core/loaders/apis.mjs.map +1 -1
  99. package/dist/core/loaders/components.js.map +1 -1
  100. package/dist/core/loaders/components.mjs.map +1 -1
  101. package/dist/core/loaders/index.js.map +1 -1
  102. package/dist/core/loaders/index.mjs.map +1 -1
  103. package/dist/core/loaders/middlewares.js.map +1 -1
  104. package/dist/core/loaders/middlewares.mjs.map +1 -1
  105. package/dist/core/loaders/plugins/get-enabled-plugins.js.map +1 -1
  106. package/dist/core/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  107. package/dist/core/loaders/plugins/get-user-plugins-config.js.map +1 -1
  108. package/dist/core/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  109. package/dist/core/loaders/plugins/index.js.map +1 -1
  110. package/dist/core/loaders/plugins/index.mjs +1 -1
  111. package/dist/core/loaders/plugins/index.mjs.map +1 -1
  112. package/dist/core/loaders/policies.js.map +1 -1
  113. package/dist/core/loaders/policies.mjs.map +1 -1
  114. package/dist/core/loaders/sanitizers.js.map +1 -1
  115. package/dist/core/loaders/sanitizers.mjs.map +1 -1
  116. package/dist/core/loaders/src-index.js.map +1 -1
  117. package/dist/core/loaders/src-index.mjs.map +1 -1
  118. package/dist/core/loaders/validators.js.map +1 -1
  119. package/dist/core/loaders/validators.mjs.map +1 -1
  120. package/dist/core/registries/apis.js.map +1 -1
  121. package/dist/core/registries/apis.mjs.map +1 -1
  122. package/dist/core/registries/config.js.map +1 -1
  123. package/dist/core/registries/config.mjs.map +1 -1
  124. package/dist/core/registries/content-types.js.map +1 -1
  125. package/dist/core/registries/content-types.mjs +2 -2
  126. package/dist/core/registries/content-types.mjs.map +1 -1
  127. package/dist/core/registries/controllers.js.map +1 -1
  128. package/dist/core/registries/controllers.mjs +2 -2
  129. package/dist/core/registries/controllers.mjs.map +1 -1
  130. package/dist/core/registries/custom-fields.js.map +1 -1
  131. package/dist/core/registries/custom-fields.mjs.map +1 -1
  132. package/dist/core/registries/hooks.js.map +1 -1
  133. package/dist/core/registries/hooks.mjs +1 -1
  134. package/dist/core/registries/hooks.mjs.map +1 -1
  135. package/dist/core/registries/middlewares.js.map +1 -1
  136. package/dist/core/registries/middlewares.mjs +2 -2
  137. package/dist/core/registries/middlewares.mjs.map +1 -1
  138. package/dist/core/registries/modules.js.map +1 -1
  139. package/dist/core/registries/modules.mjs +1 -1
  140. package/dist/core/registries/modules.mjs.map +1 -1
  141. package/dist/core/registries/plugins.js.map +1 -1
  142. package/dist/core/registries/plugins.mjs.map +1 -1
  143. package/dist/core/registries/policies.js.map +1 -1
  144. package/dist/core/registries/policies.mjs +2 -2
  145. package/dist/core/registries/policies.mjs.map +1 -1
  146. package/dist/core/registries/sanitizers.js.map +1 -1
  147. package/dist/core/registries/sanitizers.mjs.map +1 -1
  148. package/dist/core/registries/services.js.map +1 -1
  149. package/dist/core/registries/services.mjs +2 -2
  150. package/dist/core/registries/services.mjs.map +1 -1
  151. package/dist/core/registries/validators.js.map +1 -1
  152. package/dist/core/registries/validators.mjs.map +1 -1
  153. package/dist/core/utils.js.map +1 -1
  154. package/dist/core/utils.mjs.map +1 -1
  155. package/dist/core-api/controller/collection-type.js.map +1 -1
  156. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  157. package/dist/core-api/controller/index.js.map +1 -1
  158. package/dist/core-api/controller/index.mjs +1 -1
  159. package/dist/core-api/controller/index.mjs.map +1 -1
  160. package/dist/core-api/controller/single-type.js.map +1 -1
  161. package/dist/core-api/controller/single-type.mjs.map +1 -1
  162. package/dist/core-api/controller/transform.js.map +1 -1
  163. package/dist/core-api/controller/transform.mjs.map +1 -1
  164. package/dist/core-api/routes/index.js.map +1 -1
  165. package/dist/core-api/routes/index.mjs.map +1 -1
  166. package/dist/core-api/service/collection-type.js.map +1 -1
  167. package/dist/core-api/service/collection-type.mjs.map +1 -1
  168. package/dist/core-api/service/get-fetch-params.js.map +1 -1
  169. package/dist/core-api/service/get-fetch-params.mjs.map +1 -1
  170. package/dist/core-api/service/index.js.map +1 -1
  171. package/dist/core-api/service/index.mjs.map +1 -1
  172. package/dist/core-api/service/pagination.js.map +1 -1
  173. package/dist/core-api/service/pagination.mjs +1 -1
  174. package/dist/core-api/service/pagination.mjs.map +1 -1
  175. package/dist/core-api/service/single-type.js +1 -2
  176. package/dist/core-api/service/single-type.js.map +1 -1
  177. package/dist/core-api/service/single-type.mjs +2 -3
  178. package/dist/core-api/service/single-type.mjs.map +1 -1
  179. package/dist/ee/index.js.map +1 -1
  180. package/dist/ee/index.mjs +1 -1
  181. package/dist/ee/index.mjs.map +1 -1
  182. package/dist/ee/license.js.map +1 -1
  183. package/dist/ee/license.mjs.map +1 -1
  184. package/dist/factories.js +4 -4
  185. package/dist/factories.js.map +1 -1
  186. package/dist/factories.mjs.map +1 -1
  187. package/dist/load/filepath-to-prop-path.js.map +1 -1
  188. package/dist/load/load-files.js +1 -2
  189. package/dist/load/load-files.js.map +1 -1
  190. package/dist/load/load-files.mjs +1 -2
  191. package/dist/load/load-files.mjs.map +1 -1
  192. package/dist/middlewares/body.js.map +1 -1
  193. package/dist/middlewares/body.mjs.map +1 -1
  194. package/dist/middlewares/cors.js.map +1 -1
  195. package/dist/middlewares/cors.mjs.map +1 -1
  196. package/dist/middlewares/errors.js.map +1 -1
  197. package/dist/middlewares/errors.mjs.map +1 -1
  198. package/dist/middlewares/favicon.js.map +1 -1
  199. package/dist/middlewares/favicon.mjs.map +1 -1
  200. package/dist/middlewares/index.js.map +1 -1
  201. package/dist/middlewares/logger.js.map +1 -1
  202. package/dist/middlewares/logger.mjs.map +1 -1
  203. package/dist/middlewares/powered-by.js.map +1 -1
  204. package/dist/middlewares/powered-by.mjs.map +1 -1
  205. package/dist/middlewares/public/index.js +1 -2
  206. package/dist/middlewares/public/index.js.map +1 -1
  207. package/dist/middlewares/public/index.mjs +1 -2
  208. package/dist/middlewares/public/index.mjs.map +1 -1
  209. package/dist/middlewares/public/serve-static.js.map +1 -1
  210. package/dist/middlewares/public/serve-static.mjs.map +1 -1
  211. package/dist/middlewares/query.js.map +1 -1
  212. package/dist/middlewares/query.mjs.map +1 -1
  213. package/dist/middlewares/response-time.js.map +1 -1
  214. package/dist/middlewares/response-time.mjs.map +1 -1
  215. package/dist/middlewares/responses.js.map +1 -1
  216. package/dist/middlewares/responses.mjs.map +1 -1
  217. package/dist/middlewares/security.js.map +1 -1
  218. package/dist/middlewares/security.mjs.map +1 -1
  219. package/dist/middlewares/session.js.map +1 -1
  220. package/dist/middlewares/session.mjs.map +1 -1
  221. package/dist/migrations/draft-publish.js.map +1 -1
  222. package/dist/migrations/draft-publish.mjs.map +1 -1
  223. package/dist/services/auth/index.js.map +1 -1
  224. package/dist/services/auth/index.mjs.map +1 -1
  225. package/dist/services/content-api/index.js.map +1 -1
  226. package/dist/services/content-api/index.mjs.map +1 -1
  227. package/dist/services/content-api/permissions/engine.js.map +1 -1
  228. package/dist/services/content-api/permissions/engine.mjs.map +1 -1
  229. package/dist/services/content-api/permissions/index.js.map +1 -1
  230. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  231. package/dist/services/content-api/permissions/providers/action.js.map +1 -1
  232. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
  233. package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
  234. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
  235. package/dist/services/core-store.js.map +1 -1
  236. package/dist/services/core-store.mjs.map +1 -1
  237. package/dist/services/cron.js +1 -2
  238. package/dist/services/cron.js.map +1 -1
  239. package/dist/services/cron.mjs +1 -2
  240. package/dist/services/cron.mjs.map +1 -1
  241. package/dist/services/custom-fields.js.map +1 -1
  242. package/dist/services/custom-fields.mjs.map +1 -1
  243. package/dist/services/entity-service/attributes/index.js.map +1 -1
  244. package/dist/services/entity-service/attributes/index.mjs.map +1 -1
  245. package/dist/services/entity-service/attributes/transforms.js.map +1 -1
  246. package/dist/services/entity-service/attributes/transforms.mjs.map +1 -1
  247. package/dist/services/entity-service/components.js.map +1 -1
  248. package/dist/services/entity-service/components.mjs +1 -1
  249. package/dist/services/entity-service/components.mjs.map +1 -1
  250. package/dist/services/entity-service/index.js.map +1 -1
  251. package/dist/services/entity-service/index.mjs +2 -2
  252. package/dist/services/entity-service/index.mjs.map +1 -1
  253. package/dist/services/entity-service/params.js.map +1 -1
  254. package/dist/services/entity-service/params.mjs.map +1 -1
  255. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  256. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  257. package/dist/services/entity-validator/index.js.map +1 -1
  258. package/dist/services/entity-validator/index.mjs +1 -1
  259. package/dist/services/entity-validator/index.mjs.map +1 -1
  260. package/dist/services/entity-validator/validators.js.map +1 -1
  261. package/dist/services/entity-validator/validators.mjs.map +1 -1
  262. package/dist/services/errors.js.map +1 -1
  263. package/dist/services/errors.mjs.map +1 -1
  264. package/dist/services/event-hub.js.map +1 -1
  265. package/dist/services/event-hub.mjs.map +1 -1
  266. package/dist/services/features.js.map +1 -1
  267. package/dist/services/features.mjs.map +1 -1
  268. package/dist/services/fs.js.map +1 -1
  269. package/dist/services/fs.mjs.map +1 -1
  270. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  271. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  272. package/dist/services/metrics/index.js +1 -2
  273. package/dist/services/metrics/index.js.map +1 -1
  274. package/dist/services/metrics/index.mjs +1 -2
  275. package/dist/services/metrics/index.mjs.map +1 -1
  276. package/dist/services/metrics/is-truthy.js.map +1 -1
  277. package/dist/services/metrics/is-truthy.mjs.map +1 -1
  278. package/dist/services/metrics/middleware.js.map +1 -1
  279. package/dist/services/metrics/middleware.mjs.map +1 -1
  280. package/dist/services/metrics/rate-limiter.js.map +1 -1
  281. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  282. package/dist/services/metrics/sender.js.map +1 -1
  283. package/dist/services/metrics/sender.mjs.map +1 -1
  284. package/dist/services/request-context.js.map +1 -1
  285. package/dist/services/request-context.mjs.map +1 -1
  286. package/dist/services/server/admin-api.js.map +1 -1
  287. package/dist/services/server/admin-api.mjs.map +1 -1
  288. package/dist/services/server/api.js.map +1 -1
  289. package/dist/services/server/api.mjs.map +1 -1
  290. package/dist/services/server/compose-endpoint.js +1 -1
  291. package/dist/services/server/compose-endpoint.js.map +1 -1
  292. package/dist/services/server/compose-endpoint.mjs +1 -1
  293. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  294. package/dist/services/server/content-api.js.map +1 -1
  295. package/dist/services/server/content-api.mjs.map +1 -1
  296. package/dist/services/server/http-server.js.map +1 -1
  297. package/dist/services/server/http-server.mjs.map +1 -1
  298. package/dist/services/server/index.js.map +1 -1
  299. package/dist/services/server/index.mjs.map +1 -1
  300. package/dist/services/server/koa.js.map +1 -1
  301. package/dist/services/server/koa.mjs.map +1 -1
  302. package/dist/services/server/middleware.js.map +1 -1
  303. package/dist/services/server/middleware.mjs.map +1 -1
  304. package/dist/services/server/policy.js.map +1 -1
  305. package/dist/services/server/policy.mjs.map +1 -1
  306. package/dist/services/server/register-middlewares.js.map +1 -1
  307. package/dist/services/server/register-middlewares.mjs.map +1 -1
  308. package/dist/services/server/register-routes.js.map +1 -1
  309. package/dist/services/server/register-routes.mjs.map +1 -1
  310. package/dist/services/server/routing.js.map +1 -1
  311. package/dist/services/server/routing.mjs.map +1 -1
  312. package/dist/services/utils/dynamic-zones.js.map +1 -1
  313. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  314. package/dist/services/utils/upload-files.js +2 -4
  315. package/dist/services/utils/upload-files.js.map +1 -1
  316. package/dist/services/utils/upload-files.mjs +2 -4
  317. package/dist/services/utils/upload-files.mjs.map +1 -1
  318. package/dist/services/webhook-runner.js.map +1 -1
  319. package/dist/services/webhook-runner.mjs.map +1 -1
  320. package/dist/services/webhook-store.js.map +1 -1
  321. package/dist/services/webhook-store.mjs.map +1 -1
  322. package/dist/services/worker-queue.js.map +1 -1
  323. package/dist/services/worker-queue.mjs.map +1 -1
  324. package/dist/utils/convert-custom-field-type.js.map +1 -1
  325. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  326. package/dist/utils/cron.js.map +1 -1
  327. package/dist/utils/cron.mjs.map +1 -1
  328. package/dist/utils/fetch.js.map +1 -1
  329. package/dist/utils/fetch.mjs.map +1 -1
  330. package/dist/utils/get-dirs.js.map +1 -1
  331. package/dist/utils/get-dirs.mjs +1 -1
  332. package/dist/utils/get-dirs.mjs.map +1 -1
  333. package/dist/utils/is-initialized.js.map +1 -1
  334. package/dist/utils/is-initialized.mjs.map +1 -1
  335. package/dist/utils/machine-id.js.map +1 -1
  336. package/dist/utils/machine-id.mjs.map +1 -1
  337. package/dist/utils/open-browser.js.map +1 -1
  338. package/dist/utils/open-browser.mjs.map +1 -1
  339. package/dist/utils/signals.js.map +1 -1
  340. package/dist/utils/signals.mjs.map +1 -1
  341. package/dist/utils/startup-logger.js.map +1 -1
  342. package/dist/utils/startup-logger.mjs.map +1 -1
  343. package/dist/utils/update-notifier/index.js.map +1 -1
  344. package/dist/utils/update-notifier/index.mjs.map +1 -1
  345. package/package.json +26 -26
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sources":["../../../../../src/commands/actions/telemetry/disable/command.ts"],"sourcesContent":["import type { StrapiCommand } from '../../../types';\nimport { runAction } from '../../../utils/helpers';\nimport action from './action';\n\n/**\n * `$ strapi telemetry:disable`\n */\nconst command: StrapiCommand = ({ command }) => {\n command\n .command('telemetry:disable')\n .description('Disable anonymous telemetry and metadata sending to Strapi analytics')\n .action(runAction('telemetry:disable', action));\n};\n\nexport default command;\n"],"names":["command","runAction"],"mappings":";;;AAOA,MAAM,UAAyB,CAAC,EAAE,SAAAA,eAAc;AAC9CA,WACG,QAAQ,mBAAmB,EAC3B,YAAY,sEAAsE,EAClF,OAAOC,QAAA,UAAU,qBAAqB,MAAM,CAAC;AAClD;;"}
1
+ {"version":3,"file":"command.js","sources":["../../../../../src/commands/actions/telemetry/disable/command.ts"],"sourcesContent":["import type { StrapiCommand } from '../../../types';\nimport { runAction } from '../../../utils/helpers';\nimport action from './action';\n\n/**\n * `$ strapi telemetry:disable`\n */\nconst command: StrapiCommand = ({ command }) => {\n command\n .command('telemetry:disable')\n .description('Disable anonymous telemetry and metadata sending to Strapi analytics')\n .action(runAction('telemetry:disable', action));\n};\n\nexport default command;\n"],"names":["command","runAction"],"mappings":";;;AAOA,MAAM,UAAyB,CAAC,EAAE,SAAAA,eAAc;AAC9CA,WACG,QAAQ,mBAAmB,EAC3B,YAAY,sEAAsE,EAClF,OAAOC,QAAAA,UAAU,qBAAqB,MAAM,CAAC;AAClD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"action.js","sources":["../../../../../src/commands/actions/telemetry/enable/action.ts"],"sourcesContent":["import { resolve } from 'path';\nimport { randomUUID } from 'crypto';\nimport fse from 'fs-extra';\nimport chalk from 'chalk';\nimport fetch from 'node-fetch';\nimport machineID from '../../../../utils/machine-id';\n\ntype PackageJson = {\n strapi?: {\n uuid?: string;\n telemetryDisabled?: boolean;\n };\n};\n\nconst readPackageJSON = async (path: string) => {\n try {\n const packageObj = await fse.readJson(path);\n return packageObj;\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${chalk.red('Error')}: ${err.message}`);\n } else {\n throw err;\n }\n }\n};\n\nconst writePackageJSON = async (path: string, file: object, spacing: number) => {\n try {\n await fse.writeJson(path, file, { spaces: spacing });\n return true;\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${chalk.red('Error')}: ${err.message}`);\n console.log(\n `${chalk.yellow(\n 'Warning'\n )}: There has been an error, please set \"telemetryDisabled\": false in the \"strapi\" object of your package.json manually.`\n );\n\n return false;\n }\n\n throw err;\n }\n};\n\nconst generateNewPackageJSON = (packageObj: PackageJson) => {\n if (!packageObj.strapi) {\n return {\n ...packageObj,\n strapi: {\n uuid: randomUUID(),\n telemetryDisabled: false,\n },\n };\n }\n return {\n ...packageObj,\n strapi: {\n ...packageObj.strapi,\n uuid: packageObj.strapi.uuid ? packageObj.strapi.uuid : randomUUID(),\n telemetryDisabled: false,\n },\n };\n};\n\nconst sendEvent = async (uuid: string) => {\n try {\n const event = 'didOptInTelemetry';\n\n await fetch('https://analytics.strapi.io/api/v2/track', {\n method: 'POST',\n body: JSON.stringify({\n event,\n deviceId: machineID(),\n groupProperties: { projectId: uuid },\n }),\n headers: {\n 'Content-Type': 'application/json',\n 'X-Strapi-Event': event,\n },\n });\n } catch (e) {\n // ...\n }\n};\n\nasync function optInTelemetry() {\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(updatedPackageJSON.strapi.uuid);\n console.log(`${chalk.green('Successfully opted into and enabled Strapi telemetry')}`);\n process.exit(0);\n}\n\nexport default optInTelemetry;\n"],"names":["path","fse","chalk","randomUUID","fetch","machineID","resolve"],"mappings":";;;;;;;;;;;AAcA,MAAM,kBAAkB,OAAOA,UAAiB;AAC1C,MAAA;AACF,UAAM,aAAa,MAAMC,aAAAA,QAAI,SAASD,KAAI;AACnC,WAAA;AAAA,WACA,KAAK;AACZ,QAAI,eAAe,OAAO;AAChB,cAAA,MAAM,GAAGE,eAAAA,QAAM,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,EAAE;AAAA,IAAA,OAChD;AACC,YAAA;AAAA,IACR;AAAA,EACF;AACF;AAEA,MAAM,mBAAmB,OAAOF,OAAc,MAAc,YAAoB;AAC1E,MAAA;AACF,UAAMC,aAAAA,QAAI,UAAUD,OAAM,MAAM,EAAE,QAAQ,SAAS;AAC5C,WAAA;AAAA,WACA,KAAK;AACZ,QAAI,eAAe,OAAO;AAChB,cAAA,MAAM,GAAGE,eAAAA,QAAM,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,EAAE;AAC7C,cAAA;AAAA,QACN,GAAGA,eAAM,QAAA;AAAA,UACP;AAAA,QACD,CAAA;AAAA,MAAA;AAGI,aAAA;AAAA,IACT;AAEM,UAAA;AAAA,EACR;AACF;AAEA,MAAM,yBAAyB,CAAC,eAA4B;AACtD,MAAA,CAAC,WAAW,QAAQ;AACf,WAAA;AAAA,MACL,GAAG;AAAA,MACH,QAAQ;AAAA,QACN,MAAMC,OAAAA,WAAW;AAAA,QACjB,mBAAmB;AAAA,MACrB;AAAA,IAAA;AAAA,EAEJ;AACO,SAAA;AAAA,IACL,GAAG;AAAA,IACH,QAAQ;AAAA,MACN,GAAG,WAAW;AAAA,MACd,MAAM,WAAW,OAAO,OAAO,WAAW,OAAO,OAAOA,kBAAW;AAAA,MACnE,mBAAmB;AAAA,IACrB;AAAA,EAAA;AAEJ;AAEA,MAAM,YAAY,OAAO,SAAiB;AACpC,MAAA;AACF,UAAM,QAAQ;AAEd,UAAMC,eAAAA,QAAM,4CAA4C;AAAA,MACtD,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU;AAAA,QACnB;AAAA,QACA,UAAUC,UAAU;AAAA,QACpB,iBAAiB,EAAE,WAAW,KAAK;AAAA,MAAA,CACpC;AAAA,MACD,SAAS;AAAA,QACP,gBAAgB;AAAA,QAChB,kBAAkB;AAAA,MACpB;AAAA,IAAA,CACD;AAAA,WACM,GAAG;AAAA,EAEZ;AACF;AAEA,eAAe,iBAAiB;AAC9B,QAAM,kBAAkBC,KAAAA,QAAQ,QAAQ,OAAO,cAAc;AAC7D,QAAM,SAAS,MAAML,aAAAA,QAAI,WAAW,eAAe;AAEnD,MAAI,CAAC,QAAQ;AACX,YAAQ,IAAI,GAAGC,eAAA,QAAM,OAAO,SAAS,CAAC,+BAA+B;AACrE,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEM,QAAA,aAAa,MAAM,gBAAgB,eAAe;AAExD,MAAI,WAAW,UAAU,WAAW,OAAO,MAAM;AAC3C,QAAA,WAAW,OAAO,sBAAsB,OAAO;AACjD,cAAQ,IAAI,GAAGA,eAAA,QAAM,OAAO,UAAU,CAAC,+BAA+B;AACtE,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AAEM,QAAA,qBAAqB,uBAAuB,UAAU;AAE5D,QAAM,QAAQ,MAAM,iBAAiB,iBAAiB,oBAAoB,CAAC;AAE3E,MAAI,CAAC,OAAO;AACV,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEM,QAAA,UAAU,mBAAmB,OAAO,IAAI;AAC9C,UAAQ,IAAI,GAAGA,eAAAA,QAAM,MAAM,sDAAsD,CAAC,EAAE;AACpF,UAAQ,KAAK,CAAC;AAChB;;"}
1
+ {"version":3,"file":"action.js","sources":["../../../../../src/commands/actions/telemetry/enable/action.ts"],"sourcesContent":["import { resolve } from 'path';\nimport { randomUUID } from 'crypto';\nimport fse from 'fs-extra';\nimport chalk from 'chalk';\nimport fetch from 'node-fetch';\nimport machineID from '../../../../utils/machine-id';\n\ntype PackageJson = {\n strapi?: {\n uuid?: string;\n telemetryDisabled?: boolean;\n };\n};\n\nconst readPackageJSON = async (path: string) => {\n try {\n const packageObj = await fse.readJson(path);\n return packageObj;\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${chalk.red('Error')}: ${err.message}`);\n } else {\n throw err;\n }\n }\n};\n\nconst writePackageJSON = async (path: string, file: object, spacing: number) => {\n try {\n await fse.writeJson(path, file, { spaces: spacing });\n return true;\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${chalk.red('Error')}: ${err.message}`);\n console.log(\n `${chalk.yellow(\n 'Warning'\n )}: There has been an error, please set \"telemetryDisabled\": false in the \"strapi\" object of your package.json manually.`\n );\n\n return false;\n }\n\n throw err;\n }\n};\n\nconst generateNewPackageJSON = (packageObj: PackageJson) => {\n if (!packageObj.strapi) {\n return {\n ...packageObj,\n strapi: {\n uuid: randomUUID(),\n telemetryDisabled: false,\n },\n };\n }\n return {\n ...packageObj,\n strapi: {\n ...packageObj.strapi,\n uuid: packageObj.strapi.uuid ? packageObj.strapi.uuid : randomUUID(),\n telemetryDisabled: false,\n },\n };\n};\n\nconst sendEvent = async (uuid: string) => {\n try {\n const event = 'didOptInTelemetry';\n\n await fetch('https://analytics.strapi.io/api/v2/track', {\n method: 'POST',\n body: JSON.stringify({\n event,\n deviceId: machineID(),\n groupProperties: { projectId: uuid },\n }),\n headers: {\n 'Content-Type': 'application/json',\n 'X-Strapi-Event': event,\n },\n });\n } catch (e) {\n // ...\n }\n};\n\nasync function optInTelemetry() {\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(updatedPackageJSON.strapi.uuid);\n console.log(`${chalk.green('Successfully opted into and enabled Strapi telemetry')}`);\n process.exit(0);\n}\n\nexport default optInTelemetry;\n"],"names":["path","fse","chalk","randomUUID","fetch","machineID","resolve"],"mappings":";;;;;;;;;;;AAcA,MAAM,kBAAkB,OAAOA,UAAiB;AAC9C,MAAI;AACF,UAAM,aAAa,MAAMC,qBAAI,SAASD,KAAI;AAC1C,WAAO;AAAA,EACT,SAAS,KAAK;AACZ,QAAI,eAAe,OAAO;AACxB,cAAQ,MAAM,GAAGE,eAAAA,QAAM,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,EAAE;AAAA,IACvD,OAAO;AACL,YAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,MAAM,mBAAmB,OAAOF,OAAc,MAAc,YAAoB;AAC9E,MAAI;AACF,UAAMC,aAAAA,QAAI,UAAUD,OAAM,MAAM,EAAE,QAAQ,SAAS;AACnD,WAAO;AAAA,EACT,SAAS,KAAK;AACZ,QAAI,eAAe,OAAO;AACxB,cAAQ,MAAM,GAAGE,eAAAA,QAAM,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,EAAE;AACrD,cAAQ;AAAA,QACN,GAAGA,eAAAA,QAAM;AAAA,UACP;AAAA,QAAA,CACD;AAAA,MAAA;AAGH,aAAO;AAAA,IACT;AAEA,UAAM;AAAA,EACR;AACF;AAEA,MAAM,yBAAyB,CAAC,eAA4B;AAC1D,MAAI,CAAC,WAAW,QAAQ;AACtB,WAAO;AAAA,MACL,GAAG;AAAA,MACH,QAAQ;AAAA,QACN,MAAMC,OAAAA,WAAA;AAAA,QACN,mBAAmB;AAAA,MAAA;AAAA,IACrB;AAAA,EAEJ;AACA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,QAAQ;AAAA,MACN,GAAG,WAAW;AAAA,MACd,MAAM,WAAW,OAAO,OAAO,WAAW,OAAO,OAAOA,kBAAA;AAAA,MACxD,mBAAmB;AAAA,IAAA;AAAA,EACrB;AAEJ;AAEA,MAAM,YAAY,OAAO,SAAiB;AACxC,MAAI;AACF,UAAM,QAAQ;AAEd,UAAMC,eAAAA,QAAM,4CAA4C;AAAA,MACtD,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU;AAAA,QACnB;AAAA,QACA,UAAUC,UAAA;AAAA,QACV,iBAAiB,EAAE,WAAW,KAAA;AAAA,MAAK,CACpC;AAAA,MACD,SAAS;AAAA,QACP,gBAAgB;AAAA,QAChB,kBAAkB;AAAA,MAAA;AAAA,IACpB,CACD;AAAA,EACH,SAAS,GAAG;AAAA,EAEZ;AACF;AAEA,eAAe,iBAAiB;AAC9B,QAAM,kBAAkBC,KAAAA,QAAQ,QAAQ,IAAA,GAAO,cAAc;AAC7D,QAAM,SAAS,MAAML,qBAAI,WAAW,eAAe;AAEnD,MAAI,CAAC,QAAQ;AACX,YAAQ,IAAI,GAAGC,eAAAA,QAAM,OAAO,SAAS,CAAC,+BAA+B;AACrE,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,aAAa,MAAM,gBAAgB,eAAe;AAExD,MAAI,WAAW,UAAU,WAAW,OAAO,MAAM;AAC/C,QAAI,WAAW,OAAO,sBAAsB,OAAO;AACjD,cAAQ,IAAI,GAAGA,eAAAA,QAAM,OAAO,UAAU,CAAC,+BAA+B;AACtE,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AAEA,QAAM,qBAAqB,uBAAuB,UAAU;AAE5D,QAAM,QAAQ,MAAM,iBAAiB,iBAAiB,oBAAoB,CAAC;AAE3E,MAAI,CAAC,OAAO;AACV,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,UAAU,mBAAmB,OAAO,IAAI;AAC9C,UAAQ,IAAI,GAAGA,eAAAA,QAAM,MAAM,sDAAsD,CAAC,EAAE;AACpF,UAAQ,KAAK,CAAC;AAChB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sources":["../../../../../src/commands/actions/telemetry/enable/command.ts"],"sourcesContent":["import type { StrapiCommand } from '../../../types';\nimport { runAction } from '../../../utils/helpers';\nimport action from './action';\n\n/**\n * `$ strapi telemetry:enable`\n */\nconst command: StrapiCommand = ({ command }) => {\n command\n .command('telemetry:enable')\n .description('Enable anonymous telemetry and metadata sending to Strapi analytics')\n .action(runAction('telemetry:enable', action));\n};\n\nexport default command;\n"],"names":["command","runAction"],"mappings":";;;AAOA,MAAM,UAAyB,CAAC,EAAE,SAAAA,eAAc;AAC9CA,WACG,QAAQ,kBAAkB,EAC1B,YAAY,qEAAqE,EACjF,OAAOC,QAAA,UAAU,oBAAoB,MAAM,CAAC;AACjD;;"}
1
+ {"version":3,"file":"command.js","sources":["../../../../../src/commands/actions/telemetry/enable/command.ts"],"sourcesContent":["import type { StrapiCommand } from '../../../types';\nimport { runAction } from '../../../utils/helpers';\nimport action from './action';\n\n/**\n * `$ strapi telemetry:enable`\n */\nconst command: StrapiCommand = ({ command }) => {\n command\n .command('telemetry:enable')\n .description('Enable anonymous telemetry and metadata sending to Strapi analytics')\n .action(runAction('telemetry:enable', action));\n};\n\nexport default command;\n"],"names":["command","runAction"],"mappings":";;;AAOA,MAAM,UAAyB,CAAC,EAAE,SAAAA,eAAc;AAC9CA,WACG,QAAQ,kBAAkB,EAC1B,YAAY,qEAAqE,EACjF,OAAOC,QAAAA,UAAU,oBAAoB,MAAM,CAAC;AACjD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"action.js","sources":["../../../../../src/commands/actions/templates/generate/action.ts"],"sourcesContent":["import { resolve, join, basename } from 'path';\nimport fse from 'fs-extra';\nimport chalk from 'chalk';\nimport inquirer from 'inquirer';\n\n// All directories that a template could need\nconst TEMPLATE_CONTENT = ['src', 'data'];\n\nasync function copyContent(templatePath: string, rootBase: string) {\n for (const item of TEMPLATE_CONTENT) {\n try {\n const pathToCopy = join(process.cwd(), item);\n\n if (!(await fse.pathExists(pathToCopy))) {\n continue;\n }\n\n await fse.copy(pathToCopy, join(templatePath, item));\n const currentProjectBase = basename(process.cwd());\n console.log(\n `${chalk.green(\n 'success'\n )}: copy ${currentProjectBase}/${item} => ${rootBase}/template/${item}`\n );\n } catch (error) {\n if (error instanceof Error) {\n console.error(`${chalk.red('error')}: ${error.message}`);\n }\n }\n }\n}\n\n/**\n *\n * @param {string} rootPath Absolute path to the root directory\n */\nasync function writeTemplateJson(rootPath: string) {\n try {\n await fse.writeJSON(join(rootPath, 'template.json'), {});\n console.log(`${chalk.green('success')}: create JSON config file`);\n } catch (error) {\n if (error instanceof Error) {\n console.error(`${chalk.red('error')}: ${error.message}`);\n }\n }\n}\n\n/**\n *\n * @param {string} rootPath Absolute path to the root directory\n * @returns boolean\n */\nasync function templateConfigExists(rootPath: string) {\n const configExists = await fse.pathExists(join(rootPath, 'template.json'));\n console.log(`checking: ${join(rootPath, 'template.json')}. result ${configExists}`);\n return configExists;\n}\n\nexport default async function generateTemplate(directory: string) {\n const rootPath = resolve(directory);\n\n // Get path to template directory: <rootPath>/template\n const templatePath = join(rootPath, 'template');\n\n // Check if the template directory exists\n const exists = await fse.pathExists(templatePath);\n const rootBase = basename(rootPath);\n\n if (exists) {\n // Confirm the user wants to replace the existing template\n const inquiry = await inquirer.prompt({\n type: 'confirm',\n name: 'confirm',\n message: `${chalk.yellow(rootBase)} already exists. Do you want to replace it?`,\n });\n\n if (!inquiry.confirm) {\n process.exit(0);\n }\n }\n\n // Create or replace root directory with <roothPath>/template\n await fse.ensureDir(templatePath);\n // Copy content to /template\n await copyContent(templatePath, rootBase);\n // Create config file if it doesn't exist\n const configExists = await templateConfigExists(rootPath);\n if (!configExists) {\n await writeTemplateJson(rootPath);\n }\n\n console.log(`${chalk.green('success')}: generated template at ${chalk.yellow(rootPath)}`);\n}\n"],"names":["join","fse","basename","chalk","resolve","inquirer"],"mappings":";;;;;;;;;AAMA,MAAM,mBAAmB,CAAC,OAAO,MAAM;AAEvC,eAAe,YAAY,cAAsB,UAAkB;AACjE,aAAW,QAAQ,kBAAkB;AAC/B,QAAA;AACF,YAAM,aAAaA,KAAAA,KAAK,QAAQ,OAAO,IAAI;AAE3C,UAAI,CAAE,MAAMC,aAAAA,QAAI,WAAW,UAAU,GAAI;AACvC;AAAA,MACF;AAEA,YAAMA,aAAAA,QAAI,KAAK,YAAYD,KAAK,KAAA,cAAc,IAAI,CAAC;AACnD,YAAM,qBAAqBE,KAAA,SAAS,QAAQ,IAAK,CAAA;AACzC,cAAA;AAAA,QACN,GAAGC,eAAM,QAAA;AAAA,UACP;AAAA,QAAA,CACD,UAAU,kBAAkB,IAAI,IAAI,OAAO,QAAQ,aAAa,IAAI;AAAA,MAAA;AAAA,aAEhE,OAAO;AACd,UAAI,iBAAiB,OAAO;AAClB,gBAAA,MAAM,GAAGA,eAAAA,QAAM,IAAI,OAAO,CAAC,KAAK,MAAM,OAAO,EAAE;AAAA,MACzD;AAAA,IACF;AAAA,EACF;AACF;AAMA,eAAe,kBAAkB,UAAkB;AAC7C,MAAA;AACF,UAAMF,aAAAA,QAAI,UAAUD,KAAA,KAAK,UAAU,eAAe,GAAG,CAAA,CAAE;AACvD,YAAQ,IAAI,GAAGG,eAAA,QAAM,MAAM,SAAS,CAAC,2BAA2B;AAAA,WACzD,OAAO;AACd,QAAI,iBAAiB,OAAO;AAClB,cAAA,MAAM,GAAGA,eAAAA,QAAM,IAAI,OAAO,CAAC,KAAK,MAAM,OAAO,EAAE;AAAA,IACzD;AAAA,EACF;AACF;AAOA,eAAe,qBAAqB,UAAkB;AACpD,QAAM,eAAe,MAAMF,qBAAI,WAAWD,KAAAA,KAAK,UAAU,eAAe,CAAC;AACjE,UAAA,IAAI,aAAaA,UAAK,UAAU,eAAe,CAAC,YAAY,YAAY,EAAE;AAC3E,SAAA;AACT;AAEA,eAA8B,iBAAiB,WAAmB;AAC1D,QAAA,WAAWI,aAAQ,SAAS;AAG5B,QAAA,eAAeJ,KAAAA,KAAK,UAAU,UAAU;AAG9C,QAAM,SAAS,MAAMC,aAAAA,QAAI,WAAW,YAAY;AAC1C,QAAA,WAAWC,cAAS,QAAQ;AAElC,MAAI,QAAQ;AAEJ,UAAA,UAAU,MAAMG,kBAAA,QAAS,OAAO;AAAA,MACpC,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS,GAAGF,eAAM,QAAA,OAAO,QAAQ,CAAC;AAAA,IAAA,CACnC;AAEG,QAAA,CAAC,QAAQ,SAAS;AACpB,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AAGM,QAAAF,aAAA,QAAI,UAAU,YAAY;AAE1B,QAAA,YAAY,cAAc,QAAQ;AAElC,QAAA,eAAe,MAAM,qBAAqB,QAAQ;AACxD,MAAI,CAAC,cAAc;AACjB,UAAM,kBAAkB,QAAQ;AAAA,EAClC;AAEQ,UAAA,IAAI,GAAGE,eAAA,QAAM,MAAM,SAAS,CAAC,2BAA2BA,eAAM,QAAA,OAAO,QAAQ,CAAC,EAAE;AAC1F;;"}
1
+ {"version":3,"file":"action.js","sources":["../../../../../src/commands/actions/templates/generate/action.ts"],"sourcesContent":["import { resolve, join, basename } from 'path';\nimport fse from 'fs-extra';\nimport chalk from 'chalk';\nimport inquirer from 'inquirer';\n\n// All directories that a template could need\nconst TEMPLATE_CONTENT = ['src', 'data'];\n\nasync function copyContent(templatePath: string, rootBase: string) {\n for (const item of TEMPLATE_CONTENT) {\n try {\n const pathToCopy = join(process.cwd(), item);\n\n if (!(await fse.pathExists(pathToCopy))) {\n continue;\n }\n\n await fse.copy(pathToCopy, join(templatePath, item));\n const currentProjectBase = basename(process.cwd());\n console.log(\n `${chalk.green(\n 'success'\n )}: copy ${currentProjectBase}/${item} => ${rootBase}/template/${item}`\n );\n } catch (error) {\n if (error instanceof Error) {\n console.error(`${chalk.red('error')}: ${error.message}`);\n }\n }\n }\n}\n\n/**\n *\n * @param {string} rootPath Absolute path to the root directory\n */\nasync function writeTemplateJson(rootPath: string) {\n try {\n await fse.writeJSON(join(rootPath, 'template.json'), {});\n console.log(`${chalk.green('success')}: create JSON config file`);\n } catch (error) {\n if (error instanceof Error) {\n console.error(`${chalk.red('error')}: ${error.message}`);\n }\n }\n}\n\n/**\n *\n * @param {string} rootPath Absolute path to the root directory\n * @returns boolean\n */\nasync function templateConfigExists(rootPath: string) {\n const configExists = await fse.pathExists(join(rootPath, 'template.json'));\n console.log(`checking: ${join(rootPath, 'template.json')}. result ${configExists}`);\n return configExists;\n}\n\nexport default async function generateTemplate(directory: string) {\n const rootPath = resolve(directory);\n\n // Get path to template directory: <rootPath>/template\n const templatePath = join(rootPath, 'template');\n\n // Check if the template directory exists\n const exists = await fse.pathExists(templatePath);\n const rootBase = basename(rootPath);\n\n if (exists) {\n // Confirm the user wants to replace the existing template\n const inquiry = await inquirer.prompt({\n type: 'confirm',\n name: 'confirm',\n message: `${chalk.yellow(rootBase)} already exists. Do you want to replace it?`,\n });\n\n if (!inquiry.confirm) {\n process.exit(0);\n }\n }\n\n // Create or replace root directory with <roothPath>/template\n await fse.ensureDir(templatePath);\n // Copy content to /template\n await copyContent(templatePath, rootBase);\n // Create config file if it doesn't exist\n const configExists = await templateConfigExists(rootPath);\n if (!configExists) {\n await writeTemplateJson(rootPath);\n }\n\n console.log(`${chalk.green('success')}: generated template at ${chalk.yellow(rootPath)}`);\n}\n"],"names":["join","fse","basename","chalk","resolve","inquirer"],"mappings":";;;;;;;;;AAMA,MAAM,mBAAmB,CAAC,OAAO,MAAM;AAEvC,eAAe,YAAY,cAAsB,UAAkB;AACjE,aAAW,QAAQ,kBAAkB;AACnC,QAAI;AACF,YAAM,aAAaA,KAAAA,KAAK,QAAQ,IAAA,GAAO,IAAI;AAE3C,UAAI,CAAE,MAAMC,aAAAA,QAAI,WAAW,UAAU,GAAI;AACvC;AAAA,MACF;AAEA,YAAMA,aAAAA,QAAI,KAAK,YAAYD,KAAAA,KAAK,cAAc,IAAI,CAAC;AACnD,YAAM,qBAAqBE,KAAAA,SAAS,QAAQ,IAAA,CAAK;AACjD,cAAQ;AAAA,QACN,GAAGC,eAAAA,QAAM;AAAA,UACP;AAAA,QAAA,CACD,UAAU,kBAAkB,IAAI,IAAI,OAAO,QAAQ,aAAa,IAAI;AAAA,MAAA;AAAA,IAEzE,SAAS,OAAO;AACd,UAAI,iBAAiB,OAAO;AAC1B,gBAAQ,MAAM,GAAGA,eAAAA,QAAM,IAAI,OAAO,CAAC,KAAK,MAAM,OAAO,EAAE;AAAA,MACzD;AAAA,IACF;AAAA,EACF;AACF;AAMA,eAAe,kBAAkB,UAAkB;AACjD,MAAI;AACF,UAAMF,aAAAA,QAAI,UAAUD,KAAAA,KAAK,UAAU,eAAe,GAAG,EAAE;AACvD,YAAQ,IAAI,GAAGG,eAAAA,QAAM,MAAM,SAAS,CAAC,2BAA2B;AAAA,EAClE,SAAS,OAAO;AACd,QAAI,iBAAiB,OAAO;AAC1B,cAAQ,MAAM,GAAGA,eAAAA,QAAM,IAAI,OAAO,CAAC,KAAK,MAAM,OAAO,EAAE;AAAA,IACzD;AAAA,EACF;AACF;AAOA,eAAe,qBAAqB,UAAkB;AACpD,QAAM,eAAe,MAAMF,qBAAI,WAAWD,KAAAA,KAAK,UAAU,eAAe,CAAC;AACzE,UAAQ,IAAI,aAAaA,KAAAA,KAAK,UAAU,eAAe,CAAC,YAAY,YAAY,EAAE;AAClF,SAAO;AACT;AAEA,eAA8B,iBAAiB,WAAmB;AAChE,QAAM,WAAWI,KAAAA,QAAQ,SAAS;AAGlC,QAAM,eAAeJ,KAAAA,KAAK,UAAU,UAAU;AAG9C,QAAM,SAAS,MAAMC,qBAAI,WAAW,YAAY;AAChD,QAAM,WAAWC,KAAAA,SAAS,QAAQ;AAElC,MAAI,QAAQ;AAEV,UAAM,UAAU,MAAMG,kBAAAA,QAAS,OAAO;AAAA,MACpC,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS,GAAGF,eAAAA,QAAM,OAAO,QAAQ,CAAC;AAAA,IAAA,CACnC;AAED,QAAI,CAAC,QAAQ,SAAS;AACpB,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AAGA,QAAMF,aAAAA,QAAI,UAAU,YAAY;AAEhC,QAAM,YAAY,cAAc,QAAQ;AAExC,QAAM,eAAe,MAAM,qBAAqB,QAAQ;AACxD,MAAI,CAAC,cAAc;AACjB,UAAM,kBAAkB,QAAQ;AAAA,EAClC;AAEA,UAAQ,IAAI,GAAGE,eAAAA,QAAM,MAAM,SAAS,CAAC,2BAA2BA,eAAAA,QAAM,OAAO,QAAQ,CAAC,EAAE;AAC1F;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sources":["../../../../../src/commands/actions/templates/generate/command.ts"],"sourcesContent":["import type { StrapiCommand } from '../../../types';\nimport { runAction } from '../../../utils/helpers';\nimport action from './action';\n\n/**\n *`$ strapi templates:generate <directory>`\n */\nconst command: StrapiCommand = ({ command }) => {\n command\n .command('templates:generate <directory>')\n .description('Generate template from Strapi project')\n .action(runAction('templates:generate', action));\n};\n\nexport default command;\n"],"names":["command","runAction"],"mappings":";;;AAOA,MAAM,UAAyB,CAAC,EAAE,SAAAA,eAAc;AAC9CA,WACG,QAAQ,gCAAgC,EACxC,YAAY,uCAAuC,EACnD,OAAOC,QAAA,UAAU,sBAAsB,MAAM,CAAC;AACnD;;"}
1
+ {"version":3,"file":"command.js","sources":["../../../../../src/commands/actions/templates/generate/command.ts"],"sourcesContent":["import type { StrapiCommand } from '../../../types';\nimport { runAction } from '../../../utils/helpers';\nimport action from './action';\n\n/**\n *`$ strapi templates:generate <directory>`\n */\nconst command: StrapiCommand = ({ command }) => {\n command\n .command('templates:generate <directory>')\n .description('Generate template from Strapi project')\n .action(runAction('templates:generate', action));\n};\n\nexport default command;\n"],"names":["command","runAction"],"mappings":";;;AAOA,MAAM,UAAyB,CAAC,EAAE,SAAAA,eAAc;AAC9CA,WACG,QAAQ,gCAAgC,EACxC,YAAY,uCAAuC,EACnD,OAAOC,QAAAA,UAAU,sBAAsB,MAAM,CAAC;AACnD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"action.js","sources":["../../../../../src/commands/actions/ts/generate-types/action.ts"],"sourcesContent":["import tsUtils from '@strapi/typescript-utils';\nimport strapi from '../../../../Strapi';\n\ninterface CmdOptions {\n debug?: boolean;\n silent?: boolean;\n verbose?: boolean;\n outDir?: string;\n}\n\nexport default async ({ debug, silent, verbose, outDir }: CmdOptions) => {\n if ((debug || verbose) && silent) {\n console.error('Flags conflict: both silent and debug mode are enabled, exiting...');\n process.exit(1);\n }\n\n const appContext = await strapi.compile({ ignoreDiagnostics: true });\n const app = await strapi(appContext).register();\n\n await tsUtils.generators.generate({\n strapi: app,\n pwd: appContext.appDir,\n rootDir: outDir ?? undefined,\n logger: {\n silent,\n // TODO V5: verbose is deprecated and should be removed\n debug: debug || verbose,\n },\n artifacts: { contentTypes: true, components: true },\n });\n\n await app.destroy();\n};\n"],"names":["strapi","tsUtils"],"mappings":";;;;;AAUA,MAAe,SAAA,OAAO,EAAE,OAAO,QAAQ,SAAS,aAAyB;AAClE,OAAA,SAAS,YAAY,QAAQ;AAChC,YAAQ,MAAM,oEAAoE;AAClF,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,aAAa,MAAMA,OAAO,QAAQ,EAAE,mBAAmB,MAAM;AACnE,QAAM,MAAM,MAAMA,OAAO,UAAU,EAAE,SAAS;AAExC,QAAAC,iBAAA,QAAQ,WAAW,SAAS;AAAA,IAChC,QAAQ;AAAA,IACR,KAAK,WAAW;AAAA,IAChB,SAAS,UAAU;AAAA,IACnB,QAAQ;AAAA,MACN;AAAA;AAAA,MAEA,OAAO,SAAS;AAAA,IAClB;AAAA,IACA,WAAW,EAAE,cAAc,MAAM,YAAY,KAAK;AAAA,EAAA,CACnD;AAED,QAAM,IAAI;AACZ;;"}
1
+ {"version":3,"file":"action.js","sources":["../../../../../src/commands/actions/ts/generate-types/action.ts"],"sourcesContent":["import tsUtils from '@strapi/typescript-utils';\nimport strapi from '../../../../Strapi';\n\ninterface CmdOptions {\n debug?: boolean;\n silent?: boolean;\n verbose?: boolean;\n outDir?: string;\n}\n\nexport default async ({ debug, silent, verbose, outDir }: CmdOptions) => {\n if ((debug || verbose) && silent) {\n console.error('Flags conflict: both silent and debug mode are enabled, exiting...');\n process.exit(1);\n }\n\n const appContext = await strapi.compile({ ignoreDiagnostics: true });\n const app = await strapi(appContext).register();\n\n await tsUtils.generators.generate({\n strapi: app,\n pwd: appContext.appDir,\n rootDir: outDir ?? undefined,\n logger: {\n silent,\n // TODO V5: verbose is deprecated and should be removed\n debug: debug || verbose,\n },\n artifacts: { contentTypes: true, components: true },\n });\n\n await app.destroy();\n};\n"],"names":["strapi","tsUtils"],"mappings":";;;;;AAUA,MAAA,SAAe,OAAO,EAAE,OAAO,QAAQ,SAAS,aAAyB;AACvE,OAAK,SAAS,YAAY,QAAQ;AAChC,YAAQ,MAAM,oEAAoE;AAClF,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,aAAa,MAAMA,OAAO,QAAQ,EAAE,mBAAmB,MAAM;AACnE,QAAM,MAAM,MAAMA,OAAO,UAAU,EAAE,SAAA;AAErC,QAAMC,iBAAAA,QAAQ,WAAW,SAAS;AAAA,IAChC,QAAQ;AAAA,IACR,KAAK,WAAW;AAAA,IAChB,SAAS,UAAU;AAAA,IACnB,QAAQ;AAAA,MACN;AAAA;AAAA,MAEA,OAAO,SAAS;AAAA,IAAA;AAAA,IAElB,WAAW,EAAE,cAAc,MAAM,YAAY,KAAA;AAAA,EAAK,CACnD;AAED,QAAM,IAAI,QAAA;AACZ;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sources":["../../../../../src/commands/actions/ts/generate-types/command.ts"],"sourcesContent":["import type { StrapiCommand } from '../../../types';\nimport { runAction } from '../../../utils/helpers';\nimport action from './action';\n\n/**\n * `$ strapi ts:generate-types`\n */\nconst command: StrapiCommand = ({ command }) => {\n command\n .command('ts:generate-types')\n .description(`Generate TypeScript typings for your schemas`)\n .option('--verbose', `[DEPRECATED] The verbose option has been replaced by debug`, false)\n .option('-d, --debug', `Run the generation with debug messages`, false)\n .option('-s, --silent', `Run the generation silently, without any output`, false)\n .option(\n '-o, --out-dir <outDir>',\n 'Specify a relative root directory in which the definitions will be generated. Changing this value might break types exposed by Strapi that relies on generated types.'\n )\n .action(runAction('ts:generate-types', action));\n};\n\nexport default command;\n"],"names":["command","runAction"],"mappings":";;;AAOA,MAAM,UAAyB,CAAC,EAAE,SAAAA,eAAc;AAC9CA,WACG,QAAQ,mBAAmB,EAC3B,YAAY,8CAA8C,EAC1D,OAAO,aAAa,8DAA8D,KAAK,EACvF,OAAO,eAAe,0CAA0C,KAAK,EACrE,OAAO,gBAAgB,mDAAmD,KAAK,EAC/E;AAAA,IACC;AAAA,IACA;AAAA,EAED,EAAA,OAAOC,QAAU,UAAA,qBAAqB,MAAM,CAAC;AAClD;;"}
1
+ {"version":3,"file":"command.js","sources":["../../../../../src/commands/actions/ts/generate-types/command.ts"],"sourcesContent":["import type { StrapiCommand } from '../../../types';\nimport { runAction } from '../../../utils/helpers';\nimport action from './action';\n\n/**\n * `$ strapi ts:generate-types`\n */\nconst command: StrapiCommand = ({ command }) => {\n command\n .command('ts:generate-types')\n .description(`Generate TypeScript typings for your schemas`)\n .option('--verbose', `[DEPRECATED] The verbose option has been replaced by debug`, false)\n .option('-d, --debug', `Run the generation with debug messages`, false)\n .option('-s, --silent', `Run the generation silently, without any output`, false)\n .option(\n '-o, --out-dir <outDir>',\n 'Specify a relative root directory in which the definitions will be generated. Changing this value might break types exposed by Strapi that relies on generated types.'\n )\n .action(runAction('ts:generate-types', action));\n};\n\nexport default command;\n"],"names":["command","runAction"],"mappings":";;;AAOA,MAAM,UAAyB,CAAC,EAAE,SAAAA,eAAc;AAC9CA,WACG,QAAQ,mBAAmB,EAC3B,YAAY,8CAA8C,EAC1D,OAAO,aAAa,8DAA8D,KAAK,EACvF,OAAO,eAAe,0CAA0C,KAAK,EACrE,OAAO,gBAAgB,mDAAmD,KAAK,EAC/E;AAAA,IACC;AAAA,IACA;AAAA,EAAA,EAED,OAAOC,QAAAA,UAAU,qBAAqB,MAAM,CAAC;AAClD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"action.js","sources":["../../../../src/commands/actions/uninstall/action.ts"],"sourcesContent":["import { join } from 'path';\nimport { existsSync, removeSync } from 'fs-extra';\nimport ora from 'ora';\nimport execa from 'execa';\nimport inquirer from 'inquirer';\nimport findPackagePath from '../../../load/package-path';\n\ninterface CmdOptions {\n deleteFiles?: boolean;\n}\n\nexport default async (plugins: string[], { deleteFiles }: CmdOptions) => {\n const answers = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'deleteFiles',\n message: `Do you want to delete the plugin generated files in the extensions folder ?`,\n default: true,\n when: !deleteFiles,\n },\n ]);\n\n const loader = ora();\n const dir = process.cwd();\n\n const pluginArgs = plugins.map((name) => `@strapi/plugin-${name}`);\n\n try {\n // verify should rebuild before removing the pacakge\n let shouldRebuild = false;\n for (const name of plugins) {\n const pkgPath = findPackagePath(`@strapi/plugin-${name}`);\n if (existsSync(join(pkgPath, 'admin', 'src', 'index.js'))) {\n shouldRebuild = true;\n }\n }\n\n loader.start(`Uninstalling dependencies`);\n\n const useYarn = existsSync(join(dir, 'yarn.lock'));\n if (useYarn) {\n await execa('yarn', ['remove', ...pluginArgs]);\n } else {\n await execa('npm', ['remove', ...pluginArgs]);\n }\n\n loader.succeed();\n\n if (deleteFiles === true || answers.deleteFiles === true) {\n loader.start('Deleting old files');\n for (const name of plugins) {\n const pluginDir = join(dir, 'extensions', name);\n if (existsSync(pluginDir)) {\n removeSync(pluginDir);\n }\n }\n loader.succeed();\n }\n\n if (shouldRebuild) {\n loader.start(`Rebuilding admin UI`);\n await execa('npm', ['run', 'build']);\n loader.succeed();\n }\n } catch (err) {\n loader.clear();\n\n if (err instanceof Error) {\n console.error(err.message);\n }\n\n process.exit(1);\n }\n};\n"],"names":["inquirer","ora","findPackagePath","existsSync","join","execa","removeSync"],"mappings":";;;;;;;;;;;AAWA,MAAA,SAAe,OAAO,SAAmB,EAAE,kBAA8B;AACjE,QAAA,UAAU,MAAMA,kBAAA,QAAS,OAAO;AAAA,IACpC;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS;AAAA,MACT,MAAM,CAAC;AAAA,IACT;AAAA,EAAA,CACD;AAED,QAAM,SAASC,aAAAA;AACT,QAAA,MAAM,QAAQ;AAEpB,QAAM,aAAa,QAAQ,IAAI,CAAC,SAAS,kBAAkB,IAAI,EAAE;AAE7D,MAAA;AAEF,QAAI,gBAAgB;AACpB,eAAW,QAAQ,SAAS;AAC1B,YAAM,UAAUC,YAAgB,kBAAkB,IAAI,EAAE;AACxD,UAAIC,IAAAA,WAAWC,KAAAA,KAAK,SAAS,SAAS,OAAO,UAAU,CAAC,GAAG;AACzC,wBAAA;AAAA,MAClB;AAAA,IACF;AAEA,WAAO,MAAM,2BAA2B;AAExC,UAAM,UAAUD,IAAAA,WAAWC,KAAAA,KAAK,KAAK,WAAW,CAAC;AACjD,QAAI,SAAS;AACX,YAAMC,eAAAA,QAAM,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;AAAA,IAAA,OACxC;AACL,YAAMA,eAAAA,QAAM,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;AAAA,IAC9C;AAEA,WAAO,QAAQ;AAEf,QAAI,gBAAgB,QAAQ,QAAQ,gBAAgB,MAAM;AACxD,aAAO,MAAM,oBAAoB;AACjC,iBAAW,QAAQ,SAAS;AAC1B,cAAM,YAAYD,KAAA,KAAK,KAAK,cAAc,IAAI;AAC1C,YAAAD,IAAAA,WAAW,SAAS,GAAG;AACzBG,cAAA,WAAW,SAAS;AAAA,QACtB;AAAA,MACF;AACA,aAAO,QAAQ;AAAA,IACjB;AAEA,QAAI,eAAe;AACjB,aAAO,MAAM,qBAAqB;AAClC,YAAMD,eAAM,QAAA,OAAO,CAAC,OAAO,OAAO,CAAC;AACnC,aAAO,QAAQ;AAAA,IACjB;AAAA,WACO,KAAK;AACZ,WAAO,MAAM;AAEb,QAAI,eAAe,OAAO;AAChB,cAAA,MAAM,IAAI,OAAO;AAAA,IAC3B;AAEA,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;;"}
1
+ {"version":3,"file":"action.js","sources":["../../../../src/commands/actions/uninstall/action.ts"],"sourcesContent":["import { join } from 'path';\nimport { existsSync, removeSync } from 'fs-extra';\nimport ora from 'ora';\nimport execa from 'execa';\nimport inquirer from 'inquirer';\nimport findPackagePath from '../../../load/package-path';\n\ninterface CmdOptions {\n deleteFiles?: boolean;\n}\n\nexport default async (plugins: string[], { deleteFiles }: CmdOptions) => {\n const answers = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'deleteFiles',\n message: `Do you want to delete the plugin generated files in the extensions folder ?`,\n default: true,\n when: !deleteFiles,\n },\n ]);\n\n const loader = ora();\n const dir = process.cwd();\n\n const pluginArgs = plugins.map((name) => `@strapi/plugin-${name}`);\n\n try {\n // verify should rebuild before removing the pacakge\n let shouldRebuild = false;\n for (const name of plugins) {\n const pkgPath = findPackagePath(`@strapi/plugin-${name}`);\n if (existsSync(join(pkgPath, 'admin', 'src', 'index.js'))) {\n shouldRebuild = true;\n }\n }\n\n loader.start(`Uninstalling dependencies`);\n\n const useYarn = existsSync(join(dir, 'yarn.lock'));\n if (useYarn) {\n await execa('yarn', ['remove', ...pluginArgs]);\n } else {\n await execa('npm', ['remove', ...pluginArgs]);\n }\n\n loader.succeed();\n\n if (deleteFiles === true || answers.deleteFiles === true) {\n loader.start('Deleting old files');\n for (const name of plugins) {\n const pluginDir = join(dir, 'extensions', name);\n if (existsSync(pluginDir)) {\n removeSync(pluginDir);\n }\n }\n loader.succeed();\n }\n\n if (shouldRebuild) {\n loader.start(`Rebuilding admin UI`);\n await execa('npm', ['run', 'build']);\n loader.succeed();\n }\n } catch (err) {\n loader.clear();\n\n if (err instanceof Error) {\n console.error(err.message);\n }\n\n process.exit(1);\n }\n};\n"],"names":["inquirer","ora","findPackagePath","existsSync","join","execa","removeSync"],"mappings":";;;;;;;;;;;AAWA,MAAA,SAAe,OAAO,SAAmB,EAAE,kBAA8B;AACvE,QAAM,UAAU,MAAMA,kBAAAA,QAAS,OAAO;AAAA,IACpC;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS;AAAA,MACT,MAAM,CAAC;AAAA,IAAA;AAAA,EACT,CACD;AAED,QAAM,SAASC,aAAAA,QAAA;AACf,QAAM,MAAM,QAAQ,IAAA;AAEpB,QAAM,aAAa,QAAQ,IAAI,CAAC,SAAS,kBAAkB,IAAI,EAAE;AAEjE,MAAI;AAEF,QAAI,gBAAgB;AACpB,eAAW,QAAQ,SAAS;AAC1B,YAAM,UAAUC,YAAgB,kBAAkB,IAAI,EAAE;AACxD,UAAIC,IAAAA,WAAWC,KAAAA,KAAK,SAAS,SAAS,OAAO,UAAU,CAAC,GAAG;AACzD,wBAAgB;AAAA,MAClB;AAAA,IACF;AAEA,WAAO,MAAM,2BAA2B;AAExC,UAAM,UAAUD,IAAAA,WAAWC,KAAAA,KAAK,KAAK,WAAW,CAAC;AACjD,QAAI,SAAS;AACX,YAAMC,eAAAA,QAAM,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;AAAA,IAC/C,OAAO;AACL,YAAMA,eAAAA,QAAM,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;AAAA,IAC9C;AAEA,WAAO,QAAA;AAEP,QAAI,gBAAgB,QAAQ,QAAQ,gBAAgB,MAAM;AACxD,aAAO,MAAM,oBAAoB;AACjC,iBAAW,QAAQ,SAAS;AAC1B,cAAM,YAAYD,KAAAA,KAAK,KAAK,cAAc,IAAI;AAC9C,YAAID,IAAAA,WAAW,SAAS,GAAG;AACzBG,cAAAA,WAAW,SAAS;AAAA,QACtB;AAAA,MACF;AACA,aAAO,QAAA;AAAA,IACT;AAEA,QAAI,eAAe;AACjB,aAAO,MAAM,qBAAqB;AAClC,YAAMD,eAAAA,QAAM,OAAO,CAAC,OAAO,OAAO,CAAC;AACnC,aAAO,QAAA;AAAA,IACT;AAAA,EACF,SAAS,KAAK;AACZ,WAAO,MAAA;AAEP,QAAI,eAAe,OAAO;AACxB,cAAQ,MAAM,IAAI,OAAO;AAAA,IAC3B;AAEA,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sources":["../../../../src/commands/actions/uninstall/command.ts"],"sourcesContent":["import type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport action from './action';\n\n/**\n * `$ strapi uninstall`\n */\nconst command: StrapiCommand = ({ command }) => {\n command\n .command('uninstall [plugins...]')\n .description('Uninstall a Strapi plugin')\n .option('-d, --delete-files', 'Delete files', false)\n .action(runAction('uninstall', action));\n};\n\nexport default command;\n"],"names":["command","runAction"],"mappings":";;;AAOA,MAAM,UAAyB,CAAC,EAAE,SAAAA,eAAc;AAC9CA,WACG,QAAQ,wBAAwB,EAChC,YAAY,2BAA2B,EACvC,OAAO,sBAAsB,gBAAgB,KAAK,EAClD,OAAOC,QAAU,UAAA,aAAa,MAAM,CAAC;AAC1C;;"}
1
+ {"version":3,"file":"command.js","sources":["../../../../src/commands/actions/uninstall/command.ts"],"sourcesContent":["import type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport action from './action';\n\n/**\n * `$ strapi uninstall`\n */\nconst command: StrapiCommand = ({ command }) => {\n command\n .command('uninstall [plugins...]')\n .description('Uninstall a Strapi plugin')\n .option('-d, --delete-files', 'Delete files', false)\n .action(runAction('uninstall', action));\n};\n\nexport default command;\n"],"names":["command","runAction"],"mappings":";;;AAOA,MAAM,UAAyB,CAAC,EAAE,SAAAA,eAAc;AAC9CA,WACG,QAAQ,wBAAwB,EAChC,YAAY,2BAA2B,EACvC,OAAO,sBAAsB,gBAAgB,KAAK,EAClD,OAAOC,QAAAA,UAAU,aAAa,MAAM,CAAC;AAC1C;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sources":["../../../../src/commands/actions/version/command.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport type { StrapiCommand } from '../../types';\n\n/**\n * `$ strapi version`\n */\nconst command: StrapiCommand = ({ command }) => {\n // load the Strapi package.json to get version and other information\n const packageJSON = require('../../../../package.json');\n\n command.version(packageJSON.version, '-v, --version', 'Output the version number');\n command\n .command('version')\n .description('Output the version of Strapi')\n .action(() => {\n process.stdout.write(`${packageJSON.version}\\n`);\n process.exit(0);\n });\n};\n\nexport default command;\n"],"names":["command"],"mappings":";AAMA,MAAM,UAAyB,CAAC,EAAE,SAAAA,eAAc;AAExC,QAAA,cAAc,QAAQ,0BAA0B;AAEtDA,WAAQ,QAAQ,YAAY,SAAS,iBAAiB,2BAA2B;AACjFA,WACG,QAAQ,SAAS,EACjB,YAAY,8BAA8B,EAC1C,OAAO,MAAM;AACZ,YAAQ,OAAO,MAAM,GAAG,YAAY,OAAO;AAAA,CAAI;AAC/C,YAAQ,KAAK,CAAC;AAAA,EAAA,CACf;AACL;;"}
1
+ {"version":3,"file":"command.js","sources":["../../../../src/commands/actions/version/command.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport type { StrapiCommand } from '../../types';\n\n/**\n * `$ strapi version`\n */\nconst command: StrapiCommand = ({ command }) => {\n // load the Strapi package.json to get version and other information\n const packageJSON = require('../../../../package.json');\n\n command.version(packageJSON.version, '-v, --version', 'Output the version number');\n command\n .command('version')\n .description('Output the version of Strapi')\n .action(() => {\n process.stdout.write(`${packageJSON.version}\\n`);\n process.exit(0);\n });\n};\n\nexport default command;\n"],"names":["command"],"mappings":";AAMA,MAAM,UAAyB,CAAC,EAAE,SAAAA,eAAc;AAE9C,QAAM,cAAc,QAAQ,0BAA0B;AAEtDA,WAAQ,QAAQ,YAAY,SAAS,iBAAiB,2BAA2B;AACjFA,WACG,QAAQ,SAAS,EACjB,YAAY,8BAA8B,EAC1C,OAAO,MAAM;AACZ,YAAQ,OAAO,MAAM,GAAG,YAAY,OAAO;AAAA,CAAI;AAC/C,YAAQ,KAAK,CAAC;AAAA,EAChB,CAAC;AACL;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"action.js","sources":["../../../../src/commands/actions/watch-admin/action.ts"],"sourcesContent":["import { watchAdmin } from '@strapi/admin';\nimport { CLIContext } from '../../types';\n\ninterface WatchAdminOptions {\n browser: boolean;\n}\n\nexport default async ({ browser }: WatchAdminOptions, _cmd: unknown, { logger }: CLIContext) => {\n logger.warn('[@strapi/strapi]: watch-admin is deprecated, please use strapi develop instead');\n\n await watchAdmin({\n browser,\n });\n};\n"],"names":["watchAdmin"],"mappings":";;AAOA,MAAe,SAAA,OAAO,EAAE,WAA8B,MAAe,EAAE,aAAyB;AAC9F,SAAO,KAAK,gFAAgF;AAE5F,QAAMA,iBAAW;AAAA,IACf;AAAA,EAAA,CACD;AACH;;"}
1
+ {"version":3,"file":"action.js","sources":["../../../../src/commands/actions/watch-admin/action.ts"],"sourcesContent":["import { watchAdmin } from '@strapi/admin';\nimport { CLIContext } from '../../types';\n\ninterface WatchAdminOptions {\n browser: boolean;\n}\n\nexport default async ({ browser }: WatchAdminOptions, _cmd: unknown, { logger }: CLIContext) => {\n logger.warn('[@strapi/strapi]: watch-admin is deprecated, please use strapi develop instead');\n\n await watchAdmin({\n browser,\n });\n};\n"],"names":["watchAdmin"],"mappings":";;AAOA,MAAA,SAAe,OAAO,EAAE,QAAA,GAA8B,MAAe,EAAE,aAAyB;AAC9F,SAAO,KAAK,gFAAgF;AAE5F,QAAMA,iBAAW;AAAA,IACf;AAAA,EAAA,CACD;AACH;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sources":["../../../../src/commands/actions/watch-admin/command.ts"],"sourcesContent":["import type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport action from './action';\n/**\n * `$ strapi watch-admin`\n */\nconst command: StrapiCommand = ({ command, ctx }) => {\n command\n .command('watch-admin')\n .option('--browser <name>', 'Open the browser', true)\n .description('Start the admin development server')\n .action((...args) => runAction('watch-admin', action)(...args, ctx));\n};\nexport default command;\n"],"names":["command","runAction"],"mappings":";;;AAMA,MAAM,UAAyB,CAAC,EAAE,SAAAA,UAAS,UAAU;AACnDA,WACG,QAAQ,aAAa,EACrB,OAAO,oBAAoB,oBAAoB,IAAI,EACnD,YAAY,oCAAoC,EAChD,OAAO,IAAI,SAASC,QAAAA,UAAU,eAAe,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC;AACvE;;"}
1
+ {"version":3,"file":"command.js","sources":["../../../../src/commands/actions/watch-admin/command.ts"],"sourcesContent":["import type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport action from './action';\n/**\n * `$ strapi watch-admin`\n */\nconst command: StrapiCommand = ({ command, ctx }) => {\n command\n .command('watch-admin')\n .option('--browser <name>', 'Open the browser', true)\n .description('Start the admin development server')\n .action((...args) => runAction('watch-admin', action)(...args, ctx));\n};\nexport default command;\n"],"names":["command","runAction"],"mappings":";;;AAMA,MAAM,UAAyB,CAAC,EAAE,SAAAA,UAAS,UAAU;AACnDA,WACG,QAAQ,aAAa,EACrB,OAAO,oBAAoB,oBAAoB,IAAI,EACnD,YAAY,oCAAoC,EAChD,OAAO,IAAI,SAASC,kBAAU,eAAe,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC;AACvE;;"}
@@ -24,64 +24,64 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
24
24
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
25
25
  const commander = require("commander");
26
26
  const cloudCli = require("@strapi/cloud-cli");
27
- const command = require("./actions/admin/create-user/command.js");
28
- const command$1 = require("./actions/admin/reset-user-password/command.js");
29
- const command$2 = require("./actions/components/list/command.js");
30
- const command$3 = require("./actions/configuration/dump/command.js");
31
- const command$4 = require("./actions/configuration/restore/command.js");
32
- const command$5 = require("./actions/console/command.js");
33
- const command$6 = require("./actions/content-types/list/command.js");
34
- const command$7 = require("./actions/controllers/list/command.js");
35
- const command$8 = require("./actions/generate/command.js");
36
- const command$9 = require("./actions/hooks/list/command.js");
37
- const command$a = require("./actions/install/command.js");
38
- const command$b = require("./actions/middlewares/list/command.js");
39
- const command$c = require("./actions/new/command.js");
40
- const command$d = require("./actions/policies/list/command.js");
41
- const command$e = require("./actions/report/command.js");
42
- const command$f = require("./actions/routes/list/command.js");
43
- const command$g = require("./actions/services/list/command.js");
44
- const command$h = require("./actions/start/command.js");
45
- const command$i = require("./actions/telemetry/disable/command.js");
46
- const command$j = require("./actions/telemetry/enable/command.js");
47
- const command$k = require("./actions/templates/generate/command.js");
48
- const command$l = require("./actions/ts/generate-types/command.js");
49
- const command$m = require("./actions/uninstall/command.js");
50
- const command$n = require("./actions/version/command.js");
51
- const command$o = require("./actions/watch-admin/command.js");
52
- const command$p = require("./actions/plugin/build-command/command.js");
53
- const command$q = require("./actions/plugin/init/command.js");
54
- const command$r = require("./actions/plugin/link-watch/command.js");
55
- const command$s = require("./actions/plugin/watch/command.js");
56
- const command$t = require("./actions/plugin/verify/command.js");
27
+ const command$t = require("./actions/admin/create-user/command.js");
28
+ const command$s = require("./actions/admin/reset-user-password/command.js");
29
+ const command$r = require("./actions/components/list/command.js");
30
+ const command$q = require("./actions/configuration/dump/command.js");
31
+ const command$p = require("./actions/configuration/restore/command.js");
32
+ const command$o = require("./actions/console/command.js");
33
+ const command$n = require("./actions/content-types/list/command.js");
34
+ const command$m = require("./actions/controllers/list/command.js");
35
+ const command$l = require("./actions/generate/command.js");
36
+ const command$k = require("./actions/hooks/list/command.js");
37
+ const command$j = require("./actions/install/command.js");
38
+ const command$i = require("./actions/middlewares/list/command.js");
39
+ const command$h = require("./actions/new/command.js");
40
+ const command$g = require("./actions/policies/list/command.js");
41
+ const command$f = require("./actions/report/command.js");
42
+ const command$e = require("./actions/routes/list/command.js");
43
+ const command$d = require("./actions/services/list/command.js");
44
+ const command$c = require("./actions/start/command.js");
45
+ const command$b = require("./actions/telemetry/disable/command.js");
46
+ const command$a = require("./actions/telemetry/enable/command.js");
47
+ const command$9 = require("./actions/templates/generate/command.js");
48
+ const command$8 = require("./actions/ts/generate-types/command.js");
49
+ const command$7 = require("./actions/uninstall/command.js");
50
+ const command$6 = require("./actions/version/command.js");
51
+ const command$5 = require("./actions/watch-admin/command.js");
52
+ const command$4 = require("./actions/plugin/build-command/command.js");
53
+ const command$3 = require("./actions/plugin/init/command.js");
54
+ const command$2 = require("./actions/plugin/link-watch/command.js");
55
+ const command$1 = require("./actions/plugin/watch/command.js");
56
+ const command = require("./actions/plugin/verify/command.js");
57
57
  const logger = require("./utils/logger.js");
58
58
  const tsconfig = require("./utils/tsconfig.js");
59
59
  const strapiCommands = {
60
- createAdminUser: command,
61
- resetAdminUserPassword: command$1,
62
- listComponents: command$2,
63
- configurationDump: command$3,
64
- configurationRestore: command$4,
65
- consoleCommand: command$5,
66
- listContentTypes: command$6,
67
- listControllers: command$7,
68
- generateCommand: command$8,
69
- listHooks: command$9,
70
- installCommand: command$a,
71
- listMiddlewares: command$b,
72
- newCommand: command$c,
73
- listPolicies: command$d,
74
- reportCommand: command$e,
75
- listRoutes: command$f,
76
- listServices: command$g,
77
- startCommand: command$h,
78
- disableTelemetry: command$i,
79
- enableTelemetry: command$j,
80
- generateTemplates: command$k,
81
- generateTsTypes: command$l,
82
- uninstallCommand: command$m,
83
- versionCommand: command$n,
84
- watchAdminCommand: command$o,
60
+ createAdminUser: command$t,
61
+ resetAdminUserPassword: command$s,
62
+ listComponents: command$r,
63
+ configurationDump: command$q,
64
+ configurationRestore: command$p,
65
+ consoleCommand: command$o,
66
+ listContentTypes: command$n,
67
+ listControllers: command$m,
68
+ generateCommand: command$l,
69
+ listHooks: command$k,
70
+ installCommand: command$j,
71
+ listMiddlewares: command$i,
72
+ newCommand: command$h,
73
+ listPolicies: command$g,
74
+ reportCommand: command$f,
75
+ listRoutes: command$e,
76
+ listServices: command$d,
77
+ startCommand: command$c,
78
+ disableTelemetry: command$b,
79
+ enableTelemetry: command$a,
80
+ generateTemplates: command$9,
81
+ generateTsTypes: command$8,
82
+ uninstallCommand: command$7,
83
+ versionCommand: command$6,
84
+ watchAdminCommand: command$5,
85
85
  /**
86
86
  * Cloud
87
87
  */
@@ -89,11 +89,11 @@ const strapiCommands = {
89
89
  /**
90
90
  * Plugins
91
91
  */
92
- buildPluginCommand: command$p,
93
- initPluginCommand: command$q,
94
- linkWatchPluginCommand: command$r,
95
- watchPluginCommand: command$s,
96
- verifyPluginCommand: command$t
92
+ buildPluginCommand: command$4,
93
+ initPluginCommand: command$3,
94
+ linkWatchPluginCommand: command$2,
95
+ watchPluginCommand: command$1,
96
+ verifyPluginCommand: command
97
97
  };
98
98
  const buildStrapiCommand = async (argv, command2 = new commander.Command()) => {
99
99
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/commands/index.ts"],"sourcesContent":["import { Command } from 'commander';\nimport { buildStrapiCloudCommands } from '@strapi/cloud-cli';\n\nimport createAdminUser from './actions/admin/create-user/command';\nimport resetAdminUserPassword from './actions/admin/reset-user-password/command';\nimport listComponents from './actions/components/list/command';\nimport configurationDump from './actions/configuration/dump/command';\nimport configurationRestore from './actions/configuration/restore/command';\nimport consoleCommand from './actions/console/command';\nimport listContentTypes from './actions/content-types/list/command';\nimport listControllers from './actions/controllers/list/command';\nimport generateCommand from './actions/generate/command';\nimport listHooks from './actions/hooks/list/command';\nimport installCommand from './actions/install/command';\nimport listMiddlewares from './actions/middlewares/list/command';\nimport newCommand from './actions/new/command';\nimport listPolicies from './actions/policies/list/command';\nimport reportCommand from './actions/report/command';\nimport listRoutes from './actions/routes/list/command';\nimport listServices from './actions/services/list/command';\nimport startCommand from './actions/start/command';\nimport disableTelemetry from './actions/telemetry/disable/command';\nimport enableTelemetry from './actions/telemetry/enable/command';\nimport generateTemplates from './actions/templates/generate/command';\nimport generateTsTypes from './actions/ts/generate-types/command';\nimport uninstallCommand from './actions/uninstall/command';\nimport versionCommand from './actions/version/command';\nimport watchAdminCommand from './actions/watch-admin/command';\n\nimport buildPluginCommand from './actions/plugin/build-command/command';\nimport initPluginCommand from './actions/plugin/init/command';\nimport linkWatchPluginCommand from './actions/plugin/link-watch/command';\nimport watchPluginCommand from './actions/plugin/watch/command';\nimport verifyPluginCommand from './actions/plugin/verify/command';\n\nimport { createLogger } from './utils/logger';\nimport { loadTsConfig } from './utils/tsconfig';\nimport { CLIContext } from './types';\n\nconst strapiCommands = {\n createAdminUser,\n resetAdminUserPassword,\n listComponents,\n configurationDump,\n configurationRestore,\n consoleCommand,\n listContentTypes,\n listControllers,\n generateCommand,\n listHooks,\n installCommand,\n listMiddlewares,\n newCommand,\n listPolicies,\n reportCommand,\n listRoutes,\n listServices,\n startCommand,\n disableTelemetry,\n enableTelemetry,\n generateTemplates,\n generateTsTypes,\n uninstallCommand,\n versionCommand,\n watchAdminCommand,\n /**\n * Cloud\n */\n buildStrapiCloudCommands,\n /**\n * Plugins\n */\n buildPluginCommand,\n initPluginCommand,\n linkWatchPluginCommand,\n watchPluginCommand,\n verifyPluginCommand,\n} as const;\n\nconst buildStrapiCommand = async (argv: string[], command = new Command()) => {\n try {\n // NOTE: this is a hack to allow loading dts commands without make dts a dependency of strapi and thus avoiding circular dependencies\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const dtsCommands = require(require.resolve('@strapi/data-transfer')).commands;\n Object.assign(strapiCommands, dtsCommands);\n // eslint-disable-next-line @typescript-eslint/no-var-requires, node/no-missing-require\n const adminCommands = require(require.resolve('@strapi/admin/cli')).commands;\n Object.assign(strapiCommands, adminCommands);\n } catch (e) {\n // noop\n }\n\n // Initial program setup\n command.storeOptionsAsProperties(false).allowUnknownOption(true);\n\n // Help command\n command.helpOption('-h, --help', 'Display help for command');\n command.addHelpCommand('help [command]', 'Display help for command');\n\n const keys = Object.keys(strapiCommands) as (keyof typeof strapiCommands)[];\n\n const cwd = process.cwd();\n\n const hasDebug = argv.includes('--debug');\n const hasSilent = argv.includes('--silent');\n\n const logger = createLogger({ debug: hasDebug, silent: hasSilent, timestamp: false });\n\n const tsconfig = loadTsConfig({\n cwd,\n path: 'tsconfig.json',\n logger,\n });\n\n const ctx = {\n cwd,\n logger,\n tsconfig,\n } satisfies CLIContext;\n\n // Load all commands\n for (const name of keys) {\n try {\n // Add this command to the Commander command object\n await strapiCommands[name]({ command, argv, ctx });\n } catch (e) {\n console.error(`Failed to load command ${name}`, e);\n }\n }\n\n return command;\n};\n\nconst runStrapiCommand = async (argv = process.argv, command = new Command()) => {\n const commands = await buildStrapiCommand(argv, command);\n await commands.parseAsync(argv);\n};\n\nexport { runStrapiCommand, buildStrapiCommand, strapiCommands };\n"],"names":["createAdminUser","resetAdminUserPassword","listComponents","configurationDump","configurationRestore","consoleCommand","listContentTypes","listControllers","generateCommand","listHooks","installCommand","listMiddlewares","newCommand","listPolicies","reportCommand","listRoutes","listServices","startCommand","disableTelemetry","enableTelemetry","generateTemplates","generateTsTypes","uninstallCommand","versionCommand","watchAdminCommand","buildStrapiCloudCommands","buildPluginCommand","initPluginCommand","linkWatchPluginCommand","watchPluginCommand","verifyPluginCommand","command","Command","logger","createLogger","tsconfig","loadTsConfig"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,MAAM,iBAAiB;AAAA,EAAA,iBACrBA;AAAAA,EAAA,wBACAC;AAAAA,EAAA,gBACAC;AAAAA,EAAA,mBACAC;AAAAA,EAAA,sBACAC;AAAAA,EAAA,gBACAC;AAAAA,EAAA,kBACAC;AAAAA,EAAA,iBACAC;AAAAA,EAAA,iBACAC;AAAAA,EAAA,WACAC;AAAAA,EAAA,gBACAC;AAAAA,EAAA,iBACAC;AAAAA,EAAA,YACAC;AAAAA,EAAA,cACAC;AAAAA,EAAA,eACAC;AAAAA,EAAA,YACAC;AAAAA,EAAA,cACAC;AAAAA,EAAA,cACAC;AAAAA,EAAA,kBACAC;AAAAA,EAAA,iBACAC;AAAAA,EAAA,mBACAC;AAAAA,EAAA,iBACAC;AAAAA,EAAA,kBACAC;AAAAA,EAAA,gBACAC;AAAAA,EAAA,mBACAC;AAAAA;AAAAA;AAAAA;AAAAA,EAAA,0BAIAC,SAAA;AAAA;AAAA;AAAA;AAAA,EAAA,oBAIAC;AAAAA,EAAA,mBACAC;AAAAA,EAAA,wBACAC;AAAAA,EAAA,oBACAC;AAAAA,EAAA,qBACAC;AACF;AAEA,MAAM,qBAAqB,OAAO,MAAgBC,WAAU,IAAIC,wBAAc;AACxE,MAAA;AAGF,UAAM,cAAc,QAAQ,gBAAgB,uBAAuB,CAAC,EAAE;AAC/D,WAAA,OAAO,gBAAgB,WAAW;AAEzC,UAAM,gBAAgB,QAAQ,gBAAgB,mBAAmB,CAAC,EAAE;AAC7D,WAAA,OAAO,gBAAgB,aAAa;AAAA,WACpC,GAAG;AAAA,EAEZ;AAGA,EAAAD,SAAQ,yBAAyB,KAAK,EAAE,mBAAmB,IAAI;AAGvD,EAAAA,SAAA,WAAW,cAAc,0BAA0B;AACnD,EAAAA,SAAA,eAAe,kBAAkB,0BAA0B;AAE7D,QAAA,OAAO,OAAO,KAAK,cAAc;AAEjC,QAAA,MAAM,QAAQ;AAEd,QAAA,WAAW,KAAK,SAAS,SAAS;AAClC,QAAA,YAAY,KAAK,SAAS,UAAU;AAEpC,QAAAE,WAASC,oBAAa,EAAE,OAAO,UAAU,QAAQ,WAAW,WAAW,MAAA,CAAO;AAEpF,QAAMC,aAAWC,SAAAA,aAAa;AAAA,IAC5B;AAAA,IACA,MAAM;AAAA,IAAA,QACNH;AAAAA,EAAA,CACD;AAED,QAAM,MAAM;AAAA,IACV;AAAA,IAAA,QACAA;AAAAA,IAAA,UACAE;AAAAA,EAAA;AAIF,aAAW,QAAQ,MAAM;AACnB,QAAA;AAEF,YAAM,eAAe,IAAI,EAAE,EAAE,SAAAJ,UAAS,MAAM,KAAK;AAAA,aAC1C,GAAG;AACV,cAAQ,MAAM,0BAA0B,IAAI,IAAI,CAAC;AAAA,IACnD;AAAA,EACF;AAEO,SAAAA;AACT;AAEM,MAAA,mBAAmB,OAAO,OAAO,QAAQ,MAAMA,WAAU,IAAIC,UAAAA,cAAc;AAC/E,QAAM,WAAW,MAAM,mBAAmB,MAAMD,QAAO;AACjD,QAAA,SAAS,WAAW,IAAI;AAChC;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/commands/index.ts"],"sourcesContent":["import { Command } from 'commander';\nimport { buildStrapiCloudCommands } from '@strapi/cloud-cli';\n\nimport createAdminUser from './actions/admin/create-user/command';\nimport resetAdminUserPassword from './actions/admin/reset-user-password/command';\nimport listComponents from './actions/components/list/command';\nimport configurationDump from './actions/configuration/dump/command';\nimport configurationRestore from './actions/configuration/restore/command';\nimport consoleCommand from './actions/console/command';\nimport listContentTypes from './actions/content-types/list/command';\nimport listControllers from './actions/controllers/list/command';\nimport generateCommand from './actions/generate/command';\nimport listHooks from './actions/hooks/list/command';\nimport installCommand from './actions/install/command';\nimport listMiddlewares from './actions/middlewares/list/command';\nimport newCommand from './actions/new/command';\nimport listPolicies from './actions/policies/list/command';\nimport reportCommand from './actions/report/command';\nimport listRoutes from './actions/routes/list/command';\nimport listServices from './actions/services/list/command';\nimport startCommand from './actions/start/command';\nimport disableTelemetry from './actions/telemetry/disable/command';\nimport enableTelemetry from './actions/telemetry/enable/command';\nimport generateTemplates from './actions/templates/generate/command';\nimport generateTsTypes from './actions/ts/generate-types/command';\nimport uninstallCommand from './actions/uninstall/command';\nimport versionCommand from './actions/version/command';\nimport watchAdminCommand from './actions/watch-admin/command';\n\nimport buildPluginCommand from './actions/plugin/build-command/command';\nimport initPluginCommand from './actions/plugin/init/command';\nimport linkWatchPluginCommand from './actions/plugin/link-watch/command';\nimport watchPluginCommand from './actions/plugin/watch/command';\nimport verifyPluginCommand from './actions/plugin/verify/command';\n\nimport { createLogger } from './utils/logger';\nimport { loadTsConfig } from './utils/tsconfig';\nimport { CLIContext } from './types';\n\nconst strapiCommands = {\n createAdminUser,\n resetAdminUserPassword,\n listComponents,\n configurationDump,\n configurationRestore,\n consoleCommand,\n listContentTypes,\n listControllers,\n generateCommand,\n listHooks,\n installCommand,\n listMiddlewares,\n newCommand,\n listPolicies,\n reportCommand,\n listRoutes,\n listServices,\n startCommand,\n disableTelemetry,\n enableTelemetry,\n generateTemplates,\n generateTsTypes,\n uninstallCommand,\n versionCommand,\n watchAdminCommand,\n /**\n * Cloud\n */\n buildStrapiCloudCommands,\n /**\n * Plugins\n */\n buildPluginCommand,\n initPluginCommand,\n linkWatchPluginCommand,\n watchPluginCommand,\n verifyPluginCommand,\n} as const;\n\nconst buildStrapiCommand = async (argv: string[], command = new Command()) => {\n try {\n // NOTE: this is a hack to allow loading dts commands without make dts a dependency of strapi and thus avoiding circular dependencies\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const dtsCommands = require(require.resolve('@strapi/data-transfer')).commands;\n Object.assign(strapiCommands, dtsCommands);\n // eslint-disable-next-line @typescript-eslint/no-var-requires, node/no-missing-require\n const adminCommands = require(require.resolve('@strapi/admin/cli')).commands;\n Object.assign(strapiCommands, adminCommands);\n } catch (e) {\n // noop\n }\n\n // Initial program setup\n command.storeOptionsAsProperties(false).allowUnknownOption(true);\n\n // Help command\n command.helpOption('-h, --help', 'Display help for command');\n command.addHelpCommand('help [command]', 'Display help for command');\n\n const keys = Object.keys(strapiCommands) as (keyof typeof strapiCommands)[];\n\n const cwd = process.cwd();\n\n const hasDebug = argv.includes('--debug');\n const hasSilent = argv.includes('--silent');\n\n const logger = createLogger({ debug: hasDebug, silent: hasSilent, timestamp: false });\n\n const tsconfig = loadTsConfig({\n cwd,\n path: 'tsconfig.json',\n logger,\n });\n\n const ctx = {\n cwd,\n logger,\n tsconfig,\n } satisfies CLIContext;\n\n // Load all commands\n for (const name of keys) {\n try {\n // Add this command to the Commander command object\n await strapiCommands[name]({ command, argv, ctx });\n } catch (e) {\n console.error(`Failed to load command ${name}`, e);\n }\n }\n\n return command;\n};\n\nconst runStrapiCommand = async (argv = process.argv, command = new Command()) => {\n const commands = await buildStrapiCommand(argv, command);\n await commands.parseAsync(argv);\n};\n\nexport { runStrapiCommand, buildStrapiCommand, strapiCommands };\n"],"names":["createAdminUser","resetAdminUserPassword","listComponents","configurationDump","configurationRestore","consoleCommand","listContentTypes","listControllers","generateCommand","listHooks","installCommand","listMiddlewares","newCommand","listPolicies","reportCommand","listRoutes","listServices","startCommand","disableTelemetry","enableTelemetry","generateTemplates","generateTsTypes","uninstallCommand","versionCommand","watchAdminCommand","buildStrapiCloudCommands","buildPluginCommand","initPluginCommand","linkWatchPluginCommand","watchPluginCommand","verifyPluginCommand","command","Command","logger","createLogger","tsconfig","loadTsConfig"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,MAAM,iBAAiB;AAAA,EAAA,iBACrBA;AAAAA,EAAA,wBACAC;AAAAA,EAAA,gBACAC;AAAAA,EAAA,mBACAC;AAAAA,EAAA,sBACAC;AAAAA,EAAA,gBACAC;AAAAA,EAAA,kBACAC;AAAAA,EAAA,iBACAC;AAAAA,EAAA,iBACAC;AAAAA,EAAA,WACAC;AAAAA,EAAA,gBACAC;AAAAA,EAAA,iBACAC;AAAAA,EAAA,YACAC;AAAAA,EAAA,cACAC;AAAAA,EAAA,eACAC;AAAAA,EAAA,YACAC;AAAAA,EAAA,cACAC;AAAAA,EAAA,cACAC;AAAAA,EAAA,kBACAC;AAAAA,EAAA,iBACAC;AAAAA,EAAA,mBACAC;AAAAA,EAAA,iBACAC;AAAAA,EAAA,kBACAC;AAAAA,EAAA,gBACAC;AAAAA,EAAA,mBACAC;AAAAA;AAAAA;AAAAA;AAAAA,EAAA,0BAIAC,SAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAAA,oBAIAC;AAAAA,EAAA,mBACAC;AAAAA,EAAA,wBACAC;AAAAA,EAAA,oBACAC;AAAAA,EAAA,qBACAC;AACF;AAEA,MAAM,qBAAqB,OAAO,MAAgBC,WAAU,IAAIC,UAAAA,cAAc;AAC5E,MAAI;AAGF,UAAM,cAAc,QAAQ,gBAAgB,uBAAuB,CAAC,EAAE;AACtE,WAAO,OAAO,gBAAgB,WAAW;AAEzC,UAAM,gBAAgB,QAAQ,gBAAgB,mBAAmB,CAAC,EAAE;AACpE,WAAO,OAAO,gBAAgB,aAAa;AAAA,EAC7C,SAAS,GAAG;AAAA,EAEZ;AAGA,EAAAD,SAAQ,yBAAyB,KAAK,EAAE,mBAAmB,IAAI;AAG/D,EAAAA,SAAQ,WAAW,cAAc,0BAA0B;AAC3D,EAAAA,SAAQ,eAAe,kBAAkB,0BAA0B;AAEnE,QAAM,OAAO,OAAO,KAAK,cAAc;AAEvC,QAAM,MAAM,QAAQ,IAAA;AAEpB,QAAM,WAAW,KAAK,SAAS,SAAS;AACxC,QAAM,YAAY,KAAK,SAAS,UAAU;AAE1C,QAAME,WAASC,oBAAa,EAAE,OAAO,UAAU,QAAQ,WAAW,WAAW,OAAO;AAEpF,QAAMC,aAAWC,SAAAA,aAAa;AAAA,IAC5B;AAAA,IACA,MAAM;AAAA,IAAA,QACNH;AAAAA,EAAA,CACD;AAED,QAAM,MAAM;AAAA,IACV;AAAA,IAAA,QACAA;AAAAA,IAAA,UACAE;AAAAA,EAAA;AAIF,aAAW,QAAQ,MAAM;AACvB,QAAI;AAEF,YAAM,eAAe,IAAI,EAAE,EAAE,SAAAJ,UAAS,MAAM,KAAK;AAAA,IACnD,SAAS,GAAG;AACV,cAAQ,MAAM,0BAA0B,IAAI,IAAI,CAAC;AAAA,IACnD;AAAA,EACF;AAEA,SAAOA;AACT;AAEA,MAAM,mBAAmB,OAAO,OAAO,QAAQ,MAAMA,WAAU,IAAIC,UAAAA,cAAc;AAC/E,QAAM,WAAW,MAAM,mBAAmB,MAAMD,QAAO;AACvD,QAAM,SAAS,WAAW,IAAI;AAChC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"commander.js","sources":["../../../src/commands/utils/commander.ts"],"sourcesContent":["/**\n * This file includes hooks to use for commander.hook and argParsers for commander.argParser\n */\n\nimport inquirer from 'inquirer';\nimport { Command, InvalidOptionArgumentError, Option } from 'commander';\nimport chalk from 'chalk';\nimport { isNaN } from 'lodash/fp';\nimport { exitWith } from './helpers';\n\n/**\n * argParser: Parse a comma-delimited string as an array\n */\nconst parseList = (value: string) => {\n try {\n return value.split(',').map((item) => item.trim()); // trim shouldn't be necessary but might help catch unexpected whitespace characters\n } catch (e) {\n exitWith(1, `Unrecognized input: ${value}`);\n }\n\n return [];\n};\n\n/**\n * Returns an argParser that returns a list\n */\nconst getParseListWithChoices = (choices: string[], errorMessage = 'Invalid options:') => {\n return (value: string) => {\n const list = parseList(value);\n const invalid = list.filter((item) => {\n return !choices.includes(item);\n });\n\n if (invalid.length > 0) {\n exitWith(1, `${errorMessage}: ${invalid.join(',')}`);\n }\n\n return list;\n };\n};\n\n/**\n * argParser: Parse a string as an integer\n */\nconst parseInteger = (value: string) => {\n // parseInt takes a string and a radix\n const parsedValue = parseInt(value, 10);\n if (isNaN(parsedValue)) {\n throw new InvalidOptionArgumentError(`Not an integer: ${value}`);\n }\n return parsedValue;\n};\n\n/**\n * argParser: Parse a string as a URL object\n */\nconst parseURL = (value: string) => {\n try {\n const url = new URL(value);\n if (!url.host) {\n throw new InvalidOptionArgumentError(`Could not parse url ${value}`);\n }\n\n return url;\n } catch (e) {\n throw new InvalidOptionArgumentError(`Could not parse url ${value}`);\n }\n};\n\n/**\n * hook: if encrypt==true and key not provided, prompt for it\n */\nconst promptEncryptionKey = async (thisCommand: Command) => {\n const opts = thisCommand.opts();\n\n if (!opts.encrypt && opts.key) {\n return exitWith(1, 'Key may not be present unless encryption is used');\n }\n\n // if encrypt==true but we have no key, prompt for it\n if (opts.encrypt && !(opts.key && opts.key.length > 0)) {\n try {\n const answers = await inquirer.prompt([\n {\n type: 'password',\n message: 'Please enter an encryption key',\n name: 'key',\n validate(key) {\n if (key.length > 0) return true;\n\n return 'Key must be present when using the encrypt option';\n },\n },\n ]);\n opts.key = answers.key;\n } catch (e) {\n return exitWith(1, 'Failed to get encryption key');\n }\n if (!opts.key) {\n return exitWith(1, 'Failed to get encryption key');\n }\n }\n};\n\n/**\n * hook: require a confirmation message to be accepted unless forceOption (-f,--force) is used\n */\nconst getCommanderConfirmMessage = (\n message: string,\n { failMessage }: { failMessage?: string } = {}\n) => {\n return async (command: Command) => {\n const confirmed = await confirmMessage(message, { force: command.opts().force });\n if (!confirmed) {\n exitWith(1, failMessage);\n }\n };\n};\n\nconst confirmMessage = async (message: string, { force }: { force?: boolean } = {}) => {\n // if we have a force option, respond yes\n if (force === true) {\n // attempt to mimic the inquirer prompt exactly\n console.log(`${chalk.green('?')} ${chalk.bold(message)} ${chalk.cyan('Yes')}`);\n return true;\n }\n\n const answers = await inquirer.prompt([\n {\n type: 'confirm',\n message,\n name: `confirm`,\n default: false,\n },\n ]);\n\n return answers.confirm;\n};\n\nconst forceOption = new Option(\n '--force',\n `Automatically answer \"yes\" to all prompts, including potentially destructive requests, and run non-interactively.`\n);\n\nexport {\n getParseListWithChoices,\n parseList,\n parseURL,\n parseInteger,\n promptEncryptionKey,\n getCommanderConfirmMessage,\n confirmMessage,\n forceOption,\n};\n"],"names":["Option"],"mappings":";;;;;;;AA2IA,MAAM,cAAc,IAAIA,UAAA;AAAA,EACtB;AAAA,EACA;AACF;;"}
1
+ {"version":3,"file":"commander.js","sources":["../../../src/commands/utils/commander.ts"],"sourcesContent":["/**\n * This file includes hooks to use for commander.hook and argParsers for commander.argParser\n */\n\nimport inquirer from 'inquirer';\nimport { Command, InvalidOptionArgumentError, Option } from 'commander';\nimport chalk from 'chalk';\nimport { isNaN } from 'lodash/fp';\nimport { exitWith } from './helpers';\n\n/**\n * argParser: Parse a comma-delimited string as an array\n */\nconst parseList = (value: string) => {\n try {\n return value.split(',').map((item) => item.trim()); // trim shouldn't be necessary but might help catch unexpected whitespace characters\n } catch (e) {\n exitWith(1, `Unrecognized input: ${value}`);\n }\n\n return [];\n};\n\n/**\n * Returns an argParser that returns a list\n */\nconst getParseListWithChoices = (choices: string[], errorMessage = 'Invalid options:') => {\n return (value: string) => {\n const list = parseList(value);\n const invalid = list.filter((item) => {\n return !choices.includes(item);\n });\n\n if (invalid.length > 0) {\n exitWith(1, `${errorMessage}: ${invalid.join(',')}`);\n }\n\n return list;\n };\n};\n\n/**\n * argParser: Parse a string as an integer\n */\nconst parseInteger = (value: string) => {\n // parseInt takes a string and a radix\n const parsedValue = parseInt(value, 10);\n if (isNaN(parsedValue)) {\n throw new InvalidOptionArgumentError(`Not an integer: ${value}`);\n }\n return parsedValue;\n};\n\n/**\n * argParser: Parse a string as a URL object\n */\nconst parseURL = (value: string) => {\n try {\n const url = new URL(value);\n if (!url.host) {\n throw new InvalidOptionArgumentError(`Could not parse url ${value}`);\n }\n\n return url;\n } catch (e) {\n throw new InvalidOptionArgumentError(`Could not parse url ${value}`);\n }\n};\n\n/**\n * hook: if encrypt==true and key not provided, prompt for it\n */\nconst promptEncryptionKey = async (thisCommand: Command) => {\n const opts = thisCommand.opts();\n\n if (!opts.encrypt && opts.key) {\n return exitWith(1, 'Key may not be present unless encryption is used');\n }\n\n // if encrypt==true but we have no key, prompt for it\n if (opts.encrypt && !(opts.key && opts.key.length > 0)) {\n try {\n const answers = await inquirer.prompt([\n {\n type: 'password',\n message: 'Please enter an encryption key',\n name: 'key',\n validate(key) {\n if (key.length > 0) return true;\n\n return 'Key must be present when using the encrypt option';\n },\n },\n ]);\n opts.key = answers.key;\n } catch (e) {\n return exitWith(1, 'Failed to get encryption key');\n }\n if (!opts.key) {\n return exitWith(1, 'Failed to get encryption key');\n }\n }\n};\n\n/**\n * hook: require a confirmation message to be accepted unless forceOption (-f,--force) is used\n */\nconst getCommanderConfirmMessage = (\n message: string,\n { failMessage }: { failMessage?: string } = {}\n) => {\n return async (command: Command) => {\n const confirmed = await confirmMessage(message, { force: command.opts().force });\n if (!confirmed) {\n exitWith(1, failMessage);\n }\n };\n};\n\nconst confirmMessage = async (message: string, { force }: { force?: boolean } = {}) => {\n // if we have a force option, respond yes\n if (force === true) {\n // attempt to mimic the inquirer prompt exactly\n console.log(`${chalk.green('?')} ${chalk.bold(message)} ${chalk.cyan('Yes')}`);\n return true;\n }\n\n const answers = await inquirer.prompt([\n {\n type: 'confirm',\n message,\n name: `confirm`,\n default: false,\n },\n ]);\n\n return answers.confirm;\n};\n\nconst forceOption = new Option(\n '--force',\n `Automatically answer \"yes\" to all prompts, including potentially destructive requests, and run non-interactively.`\n);\n\nexport {\n getParseListWithChoices,\n parseList,\n parseURL,\n parseInteger,\n promptEncryptionKey,\n getCommanderConfirmMessage,\n confirmMessage,\n forceOption,\n};\n"],"names":["Option"],"mappings":";;;;;;;AA2IA,MAAM,cAAc,IAAIA,UAAAA;AAAAA,EACtB;AAAA,EACA;AACF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../src/commands/utils/helpers.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport chalk from 'chalk';\nimport { has, isString, isArray } from 'lodash/fp';\nimport { prompt } from 'inquirer';\nimport boxen from 'boxen';\nimport type { Command } from 'commander';\n\n/**\n * Helper functions for the Strapi CLI\n */\nconst bytesPerKb = 1024;\nconst sizes = ['B ', 'KB', 'MB', 'GB', 'TB', 'PB'];\n\n/**\n * Convert bytes to a human readable formatted string, for example \"1024\" becomes \"1KB\"\n */\nconst readableBytes = (bytes: number, decimals = 1, padStart = 0) => {\n if (!bytes) {\n return '0';\n }\n const i = Math.floor(Math.log(bytes) / Math.log(bytesPerKb));\n const result = `${parseFloat((bytes / bytesPerKb ** i).toFixed(decimals))} ${sizes[i].padStart(\n 2\n )}`;\n\n return result.padStart(padStart);\n};\n\ninterface ExitWithOptions {\n logger?: Console;\n prc?: NodeJS.Process;\n}\n\n/**\n *\n * Display message(s) to console and then call process.exit with code.\n * If code is zero, console.log and green text is used for messages, otherwise console.error and red text.\n *\n */\nconst exitWith = (code: number, message?: string | string[], options: ExitWithOptions = {}) => {\n const { logger = console, prc = process } = options;\n\n const log = (message: string) => {\n if (code === 0) {\n logger.log(chalk.green(message));\n } else {\n logger.error(chalk.red(message));\n }\n };\n\n if (isString(message)) {\n log(message);\n } else if (isArray(message)) {\n message.forEach((msg) => log(msg));\n }\n\n prc.exit(code);\n};\n\n/**\n * assert that a URL object has a protocol value\n *\n */\nconst assertUrlHasProtocol = (url: URL, protocol?: string | string[]) => {\n if (!url.protocol) {\n exitWith(1, `${url.toString()} does not have a protocol`);\n }\n\n // if just checking for the existence of a protocol, return\n if (!protocol) {\n return;\n }\n\n if (isString(protocol)) {\n if (protocol !== url.protocol) {\n exitWith(1, `${url.toString()} must have the protocol ${protocol}`);\n }\n return;\n }\n\n // assume an array\n if (!protocol.some((protocol) => url.protocol === protocol)) {\n return exitWith(\n 1,\n `${url.toString()} must have one of the following protocols: ${protocol.join(',')}`\n );\n }\n};\n\ntype ConditionCallback = (opts: Record<string, any>) => Promise<boolean>;\ntype IsMetCallback = (command: Command) => Promise<void>;\ntype IsNotMetCallback = (command: Command) => Promise<void>;\n\n/**\n * Passes commander options to conditionCallback(). If it returns true, call isMetCallback otherwise call isNotMetCallback\n */\nconst ifOptions = (\n conditionCallback: ConditionCallback,\n isMetCallback: IsMetCallback = async () => {},\n isNotMetCallback: IsNotMetCallback = async () => {}\n) => {\n return async (command: Command) => {\n const opts = command.opts();\n if (await conditionCallback(opts)) {\n await isMetCallback(command);\n } else {\n await isNotMetCallback(command);\n }\n };\n};\n\nconst assertCwdContainsStrapiProject = (name: string) => {\n const logErrorAndExit = () => {\n console.log(\n `You need to run ${chalk.yellow(\n `strapi ${name}`\n )} in a Strapi project. Make sure you are in the right directory.`\n );\n process.exit(1);\n };\n\n try {\n const pkgJSON = require(`${process.cwd()}/package.json`);\n if (\n !has('dependencies.@strapi/strapi', pkgJSON) &&\n !has('devDependencies.@strapi/strapi', pkgJSON)\n ) {\n logErrorAndExit();\n }\n } catch (err) {\n logErrorAndExit();\n }\n};\n\nconst runAction =\n (name: string, action: (...args: any[]) => Promise<void>) =>\n (...args: unknown[]) => {\n assertCwdContainsStrapiProject(name);\n\n Promise.resolve()\n .then(() => {\n return action(...args);\n })\n .catch((error) => {\n console.error(error);\n process.exit(1);\n });\n };\n\n/**\n * @description Notify users this is an experimental command and get them to approve first\n * this can be opted out by passing `yes` as a property of the args object.\n *\n * @example\n * ```ts\n * const { notifyExperimentalCommand } = require('../utils/helpers');\n *\n * const myCommand = async ({ force }) => {\n * await notifyExperimentalCommand('plugin:build', { force });\n * }\n * ```\n */\nconst notifyExperimentalCommand = async (name: string, { force }: { force?: boolean } = {}) => {\n console.log(\n boxen(\n `The ${chalk.bold(\n chalk.underline(name)\n )} command is considered experimental, use at your own risk.`,\n {\n title: 'Warning',\n padding: 1,\n margin: 1,\n align: 'center',\n borderColor: 'yellow',\n borderStyle: 'bold',\n }\n )\n );\n\n if (!force) {\n const { confirmed } = await prompt({\n type: 'confirm',\n name: 'confirmed',\n message: 'Do you want to continue?',\n });\n\n if (!confirmed) {\n process.exit(0);\n }\n }\n};\n\nexport {\n exitWith,\n assertUrlHasProtocol,\n ifOptions,\n readableBytes,\n runAction,\n assertCwdContainsStrapiProject,\n notifyExperimentalCommand,\n};\n"],"names":["chalk","has","boxen","prompt"],"mappings":";;;;;;;;;AA+GM,MAAA,iCAAiC,CAAC,SAAiB;AACvD,QAAM,kBAAkB,MAAM;AACpB,YAAA;AAAA,MACN,mBAAmBA,eAAAA,QAAM;AAAA,QACvB,UAAU,IAAI;AAAA,MACf,CAAA;AAAA,IAAA;AAEH,YAAQ,KAAK,CAAC;AAAA,EAAA;AAGZ,MAAA;AACF,UAAM,UAAU,QAAQ,GAAG,QAAQ,IAAK,CAAA,eAAe;AAErD,QAAA,CAACC,GAAAA,IAAI,+BAA+B,OAAO,KAC3C,CAACA,OAAI,kCAAkC,OAAO,GAC9C;AACgB;IAClB;AAAA,WACO,KAAK;AACI;EAClB;AACF;AAEA,MAAM,YACJ,CAAC,MAAc,WACf,IAAI,SAAoB;AACtB,iCAA+B,IAAI;AAE3B,UAAA,UACL,KAAK,MAAM;AACH,WAAA,OAAO,GAAG,IAAI;AAAA,EAAA,CACtB,EACA,MAAM,CAAC,UAAU;AAChB,YAAQ,MAAM,KAAK;AACnB,YAAQ,KAAK,CAAC;AAAA,EAAA,CACf;AACL;AAeF,MAAM,4BAA4B,OAAO,MAAc,EAAE,MAAM,IAAyB,CAAA,MAAO;AACrF,UAAA;AAAA,IACNC,eAAA;AAAA,MACE,OAAOF,eAAAA,QAAM;AAAA,QACXA,eAAA,QAAM,UAAU,IAAI;AAAA,MACrB,CAAA;AAAA,MACD;AAAA,QACE,OAAO;AAAA,QACP,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,aAAa;AAAA,QACb,aAAa;AAAA,MACf;AAAA,IACF;AAAA,EAAA;AAGF,MAAI,CAAC,OAAO;AACV,UAAM,EAAE,cAAc,MAAMG,gBAAO;AAAA,MACjC,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IAAA,CACV;AAED,QAAI,CAAC,WAAW;AACd,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AACF;;;;"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../src/commands/utils/helpers.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport chalk from 'chalk';\nimport { has, isString, isArray } from 'lodash/fp';\nimport { prompt } from 'inquirer';\nimport boxen from 'boxen';\nimport type { Command } from 'commander';\n\n/**\n * Helper functions for the Strapi CLI\n */\nconst bytesPerKb = 1024;\nconst sizes = ['B ', 'KB', 'MB', 'GB', 'TB', 'PB'];\n\n/**\n * Convert bytes to a human readable formatted string, for example \"1024\" becomes \"1KB\"\n */\nconst readableBytes = (bytes: number, decimals = 1, padStart = 0) => {\n if (!bytes) {\n return '0';\n }\n const i = Math.floor(Math.log(bytes) / Math.log(bytesPerKb));\n const result = `${parseFloat((bytes / bytesPerKb ** i).toFixed(decimals))} ${sizes[i].padStart(\n 2\n )}`;\n\n return result.padStart(padStart);\n};\n\ninterface ExitWithOptions {\n logger?: Console;\n prc?: NodeJS.Process;\n}\n\n/**\n *\n * Display message(s) to console and then call process.exit with code.\n * If code is zero, console.log and green text is used for messages, otherwise console.error and red text.\n *\n */\nconst exitWith = (code: number, message?: string | string[], options: ExitWithOptions = {}) => {\n const { logger = console, prc = process } = options;\n\n const log = (message: string) => {\n if (code === 0) {\n logger.log(chalk.green(message));\n } else {\n logger.error(chalk.red(message));\n }\n };\n\n if (isString(message)) {\n log(message);\n } else if (isArray(message)) {\n message.forEach((msg) => log(msg));\n }\n\n prc.exit(code);\n};\n\n/**\n * assert that a URL object has a protocol value\n *\n */\nconst assertUrlHasProtocol = (url: URL, protocol?: string | string[]) => {\n if (!url.protocol) {\n exitWith(1, `${url.toString()} does not have a protocol`);\n }\n\n // if just checking for the existence of a protocol, return\n if (!protocol) {\n return;\n }\n\n if (isString(protocol)) {\n if (protocol !== url.protocol) {\n exitWith(1, `${url.toString()} must have the protocol ${protocol}`);\n }\n return;\n }\n\n // assume an array\n if (!protocol.some((protocol) => url.protocol === protocol)) {\n return exitWith(\n 1,\n `${url.toString()} must have one of the following protocols: ${protocol.join(',')}`\n );\n }\n};\n\ntype ConditionCallback = (opts: Record<string, any>) => Promise<boolean>;\ntype IsMetCallback = (command: Command) => Promise<void>;\ntype IsNotMetCallback = (command: Command) => Promise<void>;\n\n/**\n * Passes commander options to conditionCallback(). If it returns true, call isMetCallback otherwise call isNotMetCallback\n */\nconst ifOptions = (\n conditionCallback: ConditionCallback,\n isMetCallback: IsMetCallback = async () => {},\n isNotMetCallback: IsNotMetCallback = async () => {}\n) => {\n return async (command: Command) => {\n const opts = command.opts();\n if (await conditionCallback(opts)) {\n await isMetCallback(command);\n } else {\n await isNotMetCallback(command);\n }\n };\n};\n\nconst assertCwdContainsStrapiProject = (name: string) => {\n const logErrorAndExit = () => {\n console.log(\n `You need to run ${chalk.yellow(\n `strapi ${name}`\n )} in a Strapi project. Make sure you are in the right directory.`\n );\n process.exit(1);\n };\n\n try {\n const pkgJSON = require(`${process.cwd()}/package.json`);\n if (\n !has('dependencies.@strapi/strapi', pkgJSON) &&\n !has('devDependencies.@strapi/strapi', pkgJSON)\n ) {\n logErrorAndExit();\n }\n } catch (err) {\n logErrorAndExit();\n }\n};\n\nconst runAction =\n (name: string, action: (...args: any[]) => Promise<void>) =>\n (...args: unknown[]) => {\n assertCwdContainsStrapiProject(name);\n\n Promise.resolve()\n .then(() => {\n return action(...args);\n })\n .catch((error) => {\n console.error(error);\n process.exit(1);\n });\n };\n\n/**\n * @description Notify users this is an experimental command and get them to approve first\n * this can be opted out by passing `yes` as a property of the args object.\n *\n * @example\n * ```ts\n * const { notifyExperimentalCommand } = require('../utils/helpers');\n *\n * const myCommand = async ({ force }) => {\n * await notifyExperimentalCommand('plugin:build', { force });\n * }\n * ```\n */\nconst notifyExperimentalCommand = async (name: string, { force }: { force?: boolean } = {}) => {\n console.log(\n boxen(\n `The ${chalk.bold(\n chalk.underline(name)\n )} command is considered experimental, use at your own risk.`,\n {\n title: 'Warning',\n padding: 1,\n margin: 1,\n align: 'center',\n borderColor: 'yellow',\n borderStyle: 'bold',\n }\n )\n );\n\n if (!force) {\n const { confirmed } = await prompt({\n type: 'confirm',\n name: 'confirmed',\n message: 'Do you want to continue?',\n });\n\n if (!confirmed) {\n process.exit(0);\n }\n }\n};\n\nexport {\n exitWith,\n assertUrlHasProtocol,\n ifOptions,\n readableBytes,\n runAction,\n assertCwdContainsStrapiProject,\n notifyExperimentalCommand,\n};\n"],"names":["chalk","has","boxen","prompt"],"mappings":";;;;;;;;;AA+GA,MAAM,iCAAiC,CAAC,SAAiB;AACvD,QAAM,kBAAkB,MAAM;AAC5B,YAAQ;AAAA,MACN,mBAAmBA,eAAAA,QAAM;AAAA,QACvB,UAAU,IAAI;AAAA,MAAA,CACf;AAAA,IAAA;AAEH,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,MAAI;AACF,UAAM,UAAU,QAAQ,GAAG,QAAQ,IAAA,CAAK,eAAe;AACvD,QACE,CAACC,GAAAA,IAAI,+BAA+B,OAAO,KAC3C,CAACA,OAAI,kCAAkC,OAAO,GAC9C;AACA,sBAAA;AAAA,IACF;AAAA,EACF,SAAS,KAAK;AACZ,oBAAA;AAAA,EACF;AACF;AAEA,MAAM,YACJ,CAAC,MAAc,WACf,IAAI,SAAoB;AACtB,iCAA+B,IAAI;AAEnC,UAAQ,UACL,KAAK,MAAM;AACV,WAAO,OAAO,GAAG,IAAI;AAAA,EACvB,CAAC,EACA,MAAM,CAAC,UAAU;AAChB,YAAQ,MAAM,KAAK;AACnB,YAAQ,KAAK,CAAC;AAAA,EAChB,CAAC;AACL;AAeF,MAAM,4BAA4B,OAAO,MAAc,EAAE,MAAA,IAA+B,CAAA,MAAO;AAC7F,UAAQ;AAAA,IACNC,eAAAA;AAAAA,MACE,OAAOF,eAAAA,QAAM;AAAA,QACXA,eAAAA,QAAM,UAAU,IAAI;AAAA,MAAA,CACrB;AAAA,MACD;AAAA,QACE,OAAO;AAAA,QACP,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,aAAa;AAAA,QACb,aAAa;AAAA,MAAA;AAAA,IACf;AAAA,EACF;AAGF,MAAI,CAAC,OAAO;AACV,UAAM,EAAE,cAAc,MAAMG,gBAAO;AAAA,MACjC,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IAAA,CACV;AAED,QAAI,CAAC,WAAW;AACd,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AACF;;;;"}
@@ -5,8 +5,7 @@ const ora = require("ora");
5
5
  const cliProgress = require("cli-progress");
6
6
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
7
7
  function _interopNamespace(e) {
8
- if (e && e.__esModule)
9
- return e;
8
+ if (e && e.__esModule) return e;
10
9
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
11
10
  if (e) {
12
11
  for (const k in e) {
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sources":["../../../src/commands/utils/logger.ts"],"sourcesContent":["import chalk from 'chalk';\nimport ora, { Ora } from 'ora';\nimport * as cliProgress from 'cli-progress';\n\nexport interface LoggerOptions {\n silent?: boolean;\n debug?: boolean;\n timestamp?: boolean;\n}\n\nexport interface Logger {\n warnings: number;\n errors: number;\n debug: (...args: unknown[]) => void;\n info: (...args: unknown[]) => void;\n success: (...args: unknown[]) => void;\n warn: (...args: unknown[]) => void;\n error: (...args: unknown[]) => void;\n log: (...args: unknown[]) => void;\n spinner: (text: string) => Pick<ora.Ora, 'succeed' | 'fail' | 'start' | 'text' | 'isSpinning'>;\n progressBar: (\n totalSize: number,\n text: string\n ) => Pick<cliProgress.SingleBar, 'start' | 'stop' | 'update'>;\n}\n\nconst silentSpinner = {\n succeed() {\n return this;\n },\n fail() {\n return this;\n },\n start() {\n return this;\n },\n text: '',\n isSpinning: false,\n} as Ora;\n\nconst silentProgressBar = {\n start() {\n return this;\n },\n stop() {\n return this;\n },\n update() {\n return this;\n },\n} as unknown as cliProgress.SingleBar;\n\nconst createLogger = (options: LoggerOptions = {}): Logger => {\n const { silent = false, debug = false, timestamp = true } = options;\n\n const state = { errors: 0, warning: 0 };\n\n return {\n get warnings() {\n return state.warning;\n },\n\n get errors() {\n return state.errors;\n },\n\n debug(...args) {\n if (silent || !debug) {\n return;\n }\n\n console.log(\n chalk.cyan(`[DEBUG]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args\n );\n },\n\n info(...args) {\n if (silent) {\n return;\n }\n\n console.info(\n chalk.blue(`[INFO]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args\n );\n },\n\n log(...args) {\n if (silent) {\n return;\n }\n\n console.info(chalk.blue(`${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`), ...args);\n },\n\n success(...args) {\n if (silent) {\n return;\n }\n\n console.info(\n chalk.green(`[SUCCESS]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args\n );\n },\n\n warn(...args) {\n state.warning += 1;\n\n if (silent) {\n return;\n }\n\n console.warn(\n chalk.yellow(`[WARN]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args\n );\n },\n\n error(...args) {\n state.errors += 1;\n\n if (silent) {\n return;\n }\n\n console.error(\n chalk.red(`[ERROR]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args\n );\n },\n\n spinner(text: string) {\n if (silent) {\n return silentSpinner;\n }\n\n return ora(text);\n },\n\n progressBar(totalSize: number, text: string) {\n if (silent) {\n return silentProgressBar;\n }\n\n const progressBar = new cliProgress.SingleBar({\n format: `${text ? `${text} |` : ''}${chalk.green('{bar}')}| {percentage}%`,\n barCompleteChar: '\\u2588',\n barIncompleteChar: '\\u2591',\n hideCursor: true,\n forceRedraw: true,\n });\n\n progressBar.start(totalSize, 0);\n\n return progressBar;\n },\n };\n};\n\nexport { createLogger };\n"],"names":["chalk","ora","cliProgress"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,MAAM,gBAAgB;AAAA,EACpB,UAAU;AACD,WAAA;AAAA,EACT;AAAA,EACA,OAAO;AACE,WAAA;AAAA,EACT;AAAA,EACA,QAAQ;AACC,WAAA;AAAA,EACT;AAAA,EACA,MAAM;AAAA,EACN,YAAY;AACd;AAEA,MAAM,oBAAoB;AAAA,EACxB,QAAQ;AACC,WAAA;AAAA,EACT;AAAA,EACA,OAAO;AACE,WAAA;AAAA,EACT;AAAA,EACA,SAAS;AACA,WAAA;AAAA,EACT;AACF;AAEA,MAAM,eAAe,CAAC,UAAyB,OAAe;AAC5D,QAAM,EAAE,SAAS,OAAO,QAAQ,OAAO,YAAY,KAAS,IAAA;AAE5D,QAAM,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAAE;AAE/B,SAAA;AAAA,IACL,IAAI,WAAW;AACb,aAAO,MAAM;AAAA,IACf;AAAA,IAEA,IAAI,SAAS;AACX,aAAO,MAAM;AAAA,IACf;AAAA,IAEA,SAAS,MAAM;AACT,UAAA,UAAU,CAAC,OAAO;AACpB;AAAA,MACF;AAEQ,cAAA;AAAA,QACNA,eAAAA,QAAM,KAAK,UAAU,YAAY,MAAM,oBAAI,KAAK,GAAE,YAAa,CAAA,MAAM,EAAE,EAAE;AAAA,QACzE,GAAG;AAAA,MAAA;AAAA,IAEP;AAAA,IAEA,QAAQ,MAAM;AACZ,UAAI,QAAQ;AACV;AAAA,MACF;AAEQ,cAAA;AAAA,QACNA,eAAAA,QAAM,KAAK,SAAS,YAAY,MAAM,oBAAI,KAAK,GAAE,YAAa,CAAA,MAAM,EAAE,EAAE;AAAA,QACxE,GAAG;AAAA,MAAA;AAAA,IAEP;AAAA,IAEA,OAAO,MAAM;AACX,UAAI,QAAQ;AACV;AAAA,MACF;AAEA,cAAQ,KAAKA,uBAAM,KAAK,GAAG,YAAY,MAAU,oBAAA,KAAA,GAAO,YAAa,CAAA,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI;AAAA,IAC3F;AAAA,IAEA,WAAW,MAAM;AACf,UAAI,QAAQ;AACV;AAAA,MACF;AAEQ,cAAA;AAAA,QACNA,eAAAA,QAAM,MAAM,YAAY,YAAY,MAAM,oBAAI,KAAK,GAAE,YAAa,CAAA,MAAM,EAAE,EAAE;AAAA,QAC5E,GAAG;AAAA,MAAA;AAAA,IAEP;AAAA,IAEA,QAAQ,MAAM;AACZ,YAAM,WAAW;AAEjB,UAAI,QAAQ;AACV;AAAA,MACF;AAEQ,cAAA;AAAA,QACNA,eAAAA,QAAM,OAAO,SAAS,YAAY,MAAM,oBAAI,KAAK,GAAE,YAAa,CAAA,MAAM,EAAE,EAAE;AAAA,QAC1E,GAAG;AAAA,MAAA;AAAA,IAEP;AAAA,IAEA,SAAS,MAAM;AACb,YAAM,UAAU;AAEhB,UAAI,QAAQ;AACV;AAAA,MACF;AAEQ,cAAA;AAAA,QACNA,eAAAA,QAAM,IAAI,UAAU,YAAY,MAAM,oBAAI,KAAK,GAAE,YAAa,CAAA,MAAM,EAAE,EAAE;AAAA,QACxE,GAAG;AAAA,MAAA;AAAA,IAEP;AAAA,IAEA,QAAQ,MAAc;AACpB,UAAI,QAAQ;AACH,eAAA;AAAA,MACT;AAEA,aAAOC,aAAAA,QAAI,IAAI;AAAA,IACjB;AAAA,IAEA,YAAY,WAAmB,MAAc;AAC3C,UAAI,QAAQ;AACH,eAAA;AAAA,MACT;AAEM,YAAA,cAAc,IAAIC,uBAAY,UAAU;AAAA,QAC5C,QAAQ,GAAG,OAAO,GAAG,IAAI,OAAO,EAAE,GAAGF,eAAAA,QAAM,MAAM,OAAO,CAAC;AAAA,QACzD,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,YAAY;AAAA,QACZ,aAAa;AAAA,MAAA,CACd;AAEW,kBAAA,MAAM,WAAW,CAAC;AAEvB,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;;"}
1
+ {"version":3,"file":"logger.js","sources":["../../../src/commands/utils/logger.ts"],"sourcesContent":["import chalk from 'chalk';\nimport ora, { Ora } from 'ora';\nimport * as cliProgress from 'cli-progress';\n\nexport interface LoggerOptions {\n silent?: boolean;\n debug?: boolean;\n timestamp?: boolean;\n}\n\nexport interface Logger {\n warnings: number;\n errors: number;\n debug: (...args: unknown[]) => void;\n info: (...args: unknown[]) => void;\n success: (...args: unknown[]) => void;\n warn: (...args: unknown[]) => void;\n error: (...args: unknown[]) => void;\n log: (...args: unknown[]) => void;\n spinner: (text: string) => Pick<ora.Ora, 'succeed' | 'fail' | 'start' | 'text' | 'isSpinning'>;\n progressBar: (\n totalSize: number,\n text: string\n ) => Pick<cliProgress.SingleBar, 'start' | 'stop' | 'update'>;\n}\n\nconst silentSpinner = {\n succeed() {\n return this;\n },\n fail() {\n return this;\n },\n start() {\n return this;\n },\n text: '',\n isSpinning: false,\n} as Ora;\n\nconst silentProgressBar = {\n start() {\n return this;\n },\n stop() {\n return this;\n },\n update() {\n return this;\n },\n} as unknown as cliProgress.SingleBar;\n\nconst createLogger = (options: LoggerOptions = {}): Logger => {\n const { silent = false, debug = false, timestamp = true } = options;\n\n const state = { errors: 0, warning: 0 };\n\n return {\n get warnings() {\n return state.warning;\n },\n\n get errors() {\n return state.errors;\n },\n\n debug(...args) {\n if (silent || !debug) {\n return;\n }\n\n console.log(\n chalk.cyan(`[DEBUG]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args\n );\n },\n\n info(...args) {\n if (silent) {\n return;\n }\n\n console.info(\n chalk.blue(`[INFO]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args\n );\n },\n\n log(...args) {\n if (silent) {\n return;\n }\n\n console.info(chalk.blue(`${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`), ...args);\n },\n\n success(...args) {\n if (silent) {\n return;\n }\n\n console.info(\n chalk.green(`[SUCCESS]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args\n );\n },\n\n warn(...args) {\n state.warning += 1;\n\n if (silent) {\n return;\n }\n\n console.warn(\n chalk.yellow(`[WARN]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args\n );\n },\n\n error(...args) {\n state.errors += 1;\n\n if (silent) {\n return;\n }\n\n console.error(\n chalk.red(`[ERROR]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args\n );\n },\n\n spinner(text: string) {\n if (silent) {\n return silentSpinner;\n }\n\n return ora(text);\n },\n\n progressBar(totalSize: number, text: string) {\n if (silent) {\n return silentProgressBar;\n }\n\n const progressBar = new cliProgress.SingleBar({\n format: `${text ? `${text} |` : ''}${chalk.green('{bar}')}| {percentage}%`,\n barCompleteChar: '\\u2588',\n barIncompleteChar: '\\u2591',\n hideCursor: true,\n forceRedraw: true,\n });\n\n progressBar.start(totalSize, 0);\n\n return progressBar;\n },\n };\n};\n\nexport { createLogger };\n"],"names":["chalk","ora","cliProgress"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,MAAM,gBAAgB;AAAA,EACpB,UAAU;AACR,WAAO;AAAA,EACT;AAAA,EACA,OAAO;AACL,WAAO;AAAA,EACT;AAAA,EACA,QAAQ;AACN,WAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,EACN,YAAY;AACd;AAEA,MAAM,oBAAoB;AAAA,EACxB,QAAQ;AACN,WAAO;AAAA,EACT;AAAA,EACA,OAAO;AACL,WAAO;AAAA,EACT;AAAA,EACA,SAAS;AACP,WAAO;AAAA,EACT;AACF;AAEA,MAAM,eAAe,CAAC,UAAyB,OAAe;AAC5D,QAAM,EAAE,SAAS,OAAO,QAAQ,OAAO,YAAY,SAAS;AAE5D,QAAM,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAAA;AAEpC,SAAO;AAAA,IACL,IAAI,WAAW;AACb,aAAO,MAAM;AAAA,IACf;AAAA,IAEA,IAAI,SAAS;AACX,aAAO,MAAM;AAAA,IACf;AAAA,IAEA,SAAS,MAAM;AACb,UAAI,UAAU,CAAC,OAAO;AACpB;AAAA,MACF;AAEA,cAAQ;AAAA,QACNA,eAAAA,QAAM,KAAK,UAAU,YAAY,MAAM,oBAAI,KAAA,GAAO,YAAA,CAAa,MAAM,EAAE,EAAE;AAAA,QACzE,GAAG;AAAA,MAAA;AAAA,IAEP;AAAA,IAEA,QAAQ,MAAM;AACZ,UAAI,QAAQ;AACV;AAAA,MACF;AAEA,cAAQ;AAAA,QACNA,eAAAA,QAAM,KAAK,SAAS,YAAY,MAAM,oBAAI,KAAA,GAAO,YAAA,CAAa,MAAM,EAAE,EAAE;AAAA,QACxE,GAAG;AAAA,MAAA;AAAA,IAEP;AAAA,IAEA,OAAO,MAAM;AACX,UAAI,QAAQ;AACV;AAAA,MACF;AAEA,cAAQ,KAAKA,uBAAM,KAAK,GAAG,YAAY,MAAM,oBAAI,KAAA,GAAO,YAAA,CAAa,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI;AAAA,IAC3F;AAAA,IAEA,WAAW,MAAM;AACf,UAAI,QAAQ;AACV;AAAA,MACF;AAEA,cAAQ;AAAA,QACNA,eAAAA,QAAM,MAAM,YAAY,YAAY,MAAM,oBAAI,KAAA,GAAO,YAAA,CAAa,MAAM,EAAE,EAAE;AAAA,QAC5E,GAAG;AAAA,MAAA;AAAA,IAEP;AAAA,IAEA,QAAQ,MAAM;AACZ,YAAM,WAAW;AAEjB,UAAI,QAAQ;AACV;AAAA,MACF;AAEA,cAAQ;AAAA,QACNA,eAAAA,QAAM,OAAO,SAAS,YAAY,MAAM,oBAAI,KAAA,GAAO,YAAA,CAAa,MAAM,EAAE,EAAE;AAAA,QAC1E,GAAG;AAAA,MAAA;AAAA,IAEP;AAAA,IAEA,SAAS,MAAM;AACb,YAAM,UAAU;AAEhB,UAAI,QAAQ;AACV;AAAA,MACF;AAEA,cAAQ;AAAA,QACNA,eAAAA,QAAM,IAAI,UAAU,YAAY,MAAM,oBAAI,KAAA,GAAO,YAAA,CAAa,MAAM,EAAE,EAAE;AAAA,QACxE,GAAG;AAAA,MAAA;AAAA,IAEP;AAAA,IAEA,QAAQ,MAAc;AACpB,UAAI,QAAQ;AACV,eAAO;AAAA,MACT;AAEA,aAAOC,aAAAA,QAAI,IAAI;AAAA,IACjB;AAAA,IAEA,YAAY,WAAmB,MAAc;AAC3C,UAAI,QAAQ;AACV,eAAO;AAAA,MACT;AAEA,YAAM,cAAc,IAAIC,uBAAY,UAAU;AAAA,QAC5C,QAAQ,GAAG,OAAO,GAAG,IAAI,OAAO,EAAE,GAAGF,eAAAA,QAAM,MAAM,OAAO,CAAC;AAAA,QACzD,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,YAAY;AAAA,QACZ,aAAa;AAAA,MAAA,CACd;AAED,kBAAY,MAAM,WAAW,CAAC;AAE9B,aAAO;AAAA,IACT;AAAA,EAAA;AAEJ;;"}
@@ -7,8 +7,7 @@ const yup = require("yup");
7
7
  const chalk = require("chalk");
8
8
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
9
9
  function _interopNamespace(e) {
10
- if (e && e.__esModule)
11
- return e;
10
+ if (e && e.__esModule) return e;
12
11
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
13
12
  if (e) {
14
13
  for (const k in e) {
@@ -1 +1 @@
1
- {"version":3,"file":"pkg.js","sources":["../../../src/commands/utils/pkg.ts"],"sourcesContent":["import fs from 'fs/promises';\nimport os from 'os';\nimport pkgUp from 'pkg-up';\nimport * as yup from 'yup';\nimport chalk from 'chalk';\nimport { Logger } from './logger';\n\ninterface Export {\n types?: string;\n source: string;\n module?: string;\n import?: string;\n require?: string;\n default: string;\n}\n\nconst packageJsonSchema = yup.object({\n name: yup.string().required(),\n exports: yup.lazy((value) =>\n yup\n .object(\n typeof value === 'object'\n ? Object.entries(value).reduce((acc, [key, value]) => {\n if (typeof value === 'object') {\n acc[key] = yup\n .object({\n types: yup.string().optional(),\n source: yup.string().required(),\n module: yup.string().optional(),\n import: yup.string().required(),\n require: yup.string().required(),\n default: yup.string().required(),\n })\n .noUnknown(true);\n } else {\n acc[key] = yup\n .string()\n .matches(/^\\.\\/.*\\.json$/)\n .required();\n }\n\n return acc;\n }, {} as Record<string, yup.SchemaOf<string> | yup.SchemaOf<Export>>)\n : undefined\n )\n .optional()\n ),\n});\n\n/**\n * @description being a task to load the package.json starting from the current working directory\n * using a shallow find for the package.json and `fs` to read the file. If no package.json is found,\n * the process will throw with an appropriate error message.\n */\nconst loadPkg = async ({ cwd, logger }: { cwd: string; logger: Logger }): Promise<object> => {\n const pkgPath = await pkgUp({ cwd });\n\n if (!pkgPath) {\n throw new Error('Could not find a package.json in the current directory');\n }\n\n const buffer = await fs.readFile(pkgPath);\n\n const pkg = JSON.parse(buffer.toString());\n\n logger.debug('Loaded package.json:', os.EOL, pkg);\n\n return pkg;\n};\n\ntype PackageJson = yup.Asserts<typeof packageJsonSchema>;\n\n/**\n * @description validate the package.json against a standardised schema using `yup`.\n * If the validation fails, the process will throw with an appropriate error message.\n */\nconst validatePkg = async ({ pkg }: { pkg: object }): Promise<PackageJson> => {\n try {\n const validatedPkg = await packageJsonSchema.validate(pkg, {\n strict: true,\n });\n\n return validatedPkg;\n } catch (err) {\n if (err instanceof yup.ValidationError) {\n switch (err.type) {\n case 'required':\n if (err.path) {\n throw new Error(\n `'${err.path}' in 'package.json' is required as type '${chalk.magenta(\n yup.reach(packageJsonSchema, err.path).type\n )}'`\n );\n }\n break;\n /**\n * This will only be thrown if there are keys in the export map\n * that we don't expect so we can therefore make some assumptions\n */\n case 'noUnknown':\n if (err.path && err.params && 'unknown' in err.params) {\n throw new Error(\n `'${err.path}' in 'package.json' contains the unknown key ${chalk.magenta(\n err.params.unknown\n )}, for compatability only the following keys are allowed: ${chalk.magenta(\n \"['types', 'source', 'import', 'require', 'default']\"\n )}`\n );\n }\n break;\n default:\n if (err.path && err.params && 'type' in err.params && 'value' in err.params) {\n throw new Error(\n `'${err.path}' in 'package.json' must be of type '${chalk.magenta(\n err.params.type\n )}' (recieved '${chalk.magenta(typeof err.params.value)}')`\n );\n }\n }\n }\n\n throw err;\n }\n};\n\nexport type { PackageJson, Export };\nexport { loadPkg, validatePkg };\n"],"names":["yup","value","pkgUp","fs","os","chalk"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,MAAM,oBAAoBA,eAAI,OAAO;AAAA,EACnC,MAAMA,eAAI,OAAO,EAAE,SAAS;AAAA,EAC5B,SAASA,eAAI;AAAA,IAAK,CAAC,UACjBA,eACG;AAAA,MACC,OAAO,UAAU,WACb,OAAO,QAAQ,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAKC,MAAK,MAAM;AAC9C,YAAA,OAAOA,WAAU,UAAU;AACzB,cAAA,GAAG,IAAID,eACR,OAAO;AAAA,YACN,OAAOA,eAAI,OAAO,EAAE,SAAS;AAAA,YAC7B,QAAQA,eAAI,OAAO,EAAE,SAAS;AAAA,YAC9B,QAAQA,eAAI,OAAO,EAAE,SAAS;AAAA,YAC9B,QAAQA,eAAI,OAAO,EAAE,SAAS;AAAA,YAC9B,SAASA,eAAI,OAAO,EAAE,SAAS;AAAA,YAC/B,SAASA,eAAI,OAAO,EAAE,SAAS;AAAA,UAAA,CAChC,EACA,UAAU,IAAI;AAAA,QAAA,OACZ;AACD,cAAA,GAAG,IAAIA,eACR,SACA,QAAQ,gBAAgB,EACxB;QACL;AAEO,eAAA;AAAA,MAAA,GACN,CAAA,CAAiE,IACpE;AAAA,MAEL,SAAS;AAAA,EACd;AACF,CAAC;AAOD,MAAM,UAAU,OAAO,EAAE,KAAK,aAA+D;AAC3F,QAAM,UAAU,MAAME,eAAAA,QAAM,EAAE,IAAK,CAAA;AAEnC,MAAI,CAAC,SAAS;AACN,UAAA,IAAI,MAAM,wDAAwD;AAAA,EAC1E;AAEA,QAAM,SAAS,MAAMC,YAAAA,QAAG,SAAS,OAAO;AAExC,QAAM,MAAM,KAAK,MAAM,OAAO,SAAU,CAAA;AAExC,SAAO,MAAM,wBAAwBC,YAAG,QAAA,KAAK,GAAG;AAEzC,SAAA;AACT;AAQA,MAAM,cAAc,OAAO,EAAE,UAAiD;AACxE,MAAA;AACF,UAAM,eAAe,MAAM,kBAAkB,SAAS,KAAK;AAAA,MACzD,QAAQ;AAAA,IAAA,CACT;AAEM,WAAA;AAAA,WACA,KAAK;AACR,QAAA,eAAeJ,eAAI,iBAAiB;AACtC,cAAQ,IAAI,MAAM;AAAA,QAChB,KAAK;AACH,cAAI,IAAI,MAAM;AACZ,kBAAM,IAAI;AAAA,cACR,IAAI,IAAI,IAAI,4CAA4CK,eAAM,QAAA;AAAA,gBAC5DL,eAAI,MAAM,mBAAmB,IAAI,IAAI,EAAE;AAAA,cACxC,CAAA;AAAA,YAAA;AAAA,UAEL;AACA;AAAA,QAKF,KAAK;AACH,cAAI,IAAI,QAAQ,IAAI,UAAU,aAAa,IAAI,QAAQ;AACrD,kBAAM,IAAI;AAAA,cACR,IAAI,IAAI,IAAI,gDAAgDK,eAAM,QAAA;AAAA,gBAChE,IAAI,OAAO;AAAA,cAAA,CACZ,4DAA4DA,eAAAA,QAAM;AAAA,gBACjE;AAAA,cAAA,CACD;AAAA,YAAA;AAAA,UAEL;AACA;AAAA,QACF;AACM,cAAA,IAAI,QAAQ,IAAI,UAAU,UAAU,IAAI,UAAU,WAAW,IAAI,QAAQ;AAC3E,kBAAM,IAAI;AAAA,cACR,IAAI,IAAI,IAAI,wCAAwCA,eAAM,QAAA;AAAA,gBACxD,IAAI,OAAO;AAAA,cAAA,CACZ,gBAAgBA,eAAM,QAAA,QAAQ,OAAO,IAAI,OAAO,KAAK,CAAC;AAAA,YAAA;AAAA,UAE3D;AAAA,MACJ;AAAA,IACF;AAEM,UAAA;AAAA,EACR;AACF;;;"}
1
+ {"version":3,"file":"pkg.js","sources":["../../../src/commands/utils/pkg.ts"],"sourcesContent":["import fs from 'fs/promises';\nimport os from 'os';\nimport pkgUp from 'pkg-up';\nimport * as yup from 'yup';\nimport chalk from 'chalk';\nimport { Logger } from './logger';\n\ninterface Export {\n types?: string;\n source: string;\n module?: string;\n import?: string;\n require?: string;\n default: string;\n}\n\nconst packageJsonSchema = yup.object({\n name: yup.string().required(),\n exports: yup.lazy((value) =>\n yup\n .object(\n typeof value === 'object'\n ? Object.entries(value).reduce((acc, [key, value]) => {\n if (typeof value === 'object') {\n acc[key] = yup\n .object({\n types: yup.string().optional(),\n source: yup.string().required(),\n module: yup.string().optional(),\n import: yup.string().required(),\n require: yup.string().required(),\n default: yup.string().required(),\n })\n .noUnknown(true);\n } else {\n acc[key] = yup\n .string()\n .matches(/^\\.\\/.*\\.json$/)\n .required();\n }\n\n return acc;\n }, {} as Record<string, yup.SchemaOf<string> | yup.SchemaOf<Export>>)\n : undefined\n )\n .optional()\n ),\n});\n\n/**\n * @description being a task to load the package.json starting from the current working directory\n * using a shallow find for the package.json and `fs` to read the file. If no package.json is found,\n * the process will throw with an appropriate error message.\n */\nconst loadPkg = async ({ cwd, logger }: { cwd: string; logger: Logger }): Promise<object> => {\n const pkgPath = await pkgUp({ cwd });\n\n if (!pkgPath) {\n throw new Error('Could not find a package.json in the current directory');\n }\n\n const buffer = await fs.readFile(pkgPath);\n\n const pkg = JSON.parse(buffer.toString());\n\n logger.debug('Loaded package.json:', os.EOL, pkg);\n\n return pkg;\n};\n\ntype PackageJson = yup.Asserts<typeof packageJsonSchema>;\n\n/**\n * @description validate the package.json against a standardised schema using `yup`.\n * If the validation fails, the process will throw with an appropriate error message.\n */\nconst validatePkg = async ({ pkg }: { pkg: object }): Promise<PackageJson> => {\n try {\n const validatedPkg = await packageJsonSchema.validate(pkg, {\n strict: true,\n });\n\n return validatedPkg;\n } catch (err) {\n if (err instanceof yup.ValidationError) {\n switch (err.type) {\n case 'required':\n if (err.path) {\n throw new Error(\n `'${err.path}' in 'package.json' is required as type '${chalk.magenta(\n yup.reach(packageJsonSchema, err.path).type\n )}'`\n );\n }\n break;\n /**\n * This will only be thrown if there are keys in the export map\n * that we don't expect so we can therefore make some assumptions\n */\n case 'noUnknown':\n if (err.path && err.params && 'unknown' in err.params) {\n throw new Error(\n `'${err.path}' in 'package.json' contains the unknown key ${chalk.magenta(\n err.params.unknown\n )}, for compatability only the following keys are allowed: ${chalk.magenta(\n \"['types', 'source', 'import', 'require', 'default']\"\n )}`\n );\n }\n break;\n default:\n if (err.path && err.params && 'type' in err.params && 'value' in err.params) {\n throw new Error(\n `'${err.path}' in 'package.json' must be of type '${chalk.magenta(\n err.params.type\n )}' (recieved '${chalk.magenta(typeof err.params.value)}')`\n );\n }\n }\n }\n\n throw err;\n }\n};\n\nexport type { PackageJson, Export };\nexport { loadPkg, validatePkg };\n"],"names":["yup","value","pkgUp","fs","os","chalk"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,MAAM,oBAAoBA,eAAI,OAAO;AAAA,EACnC,MAAMA,eAAI,OAAA,EAAS,SAAA;AAAA,EACnB,SAASA,eAAI;AAAA,IAAK,CAAC,UACjBA,eACG;AAAA,MACC,OAAO,UAAU,WACb,OAAO,QAAQ,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAKC,MAAK,MAAM;AAClD,YAAI,OAAOA,WAAU,UAAU;AAC7B,cAAI,GAAG,IAAID,eACR,OAAO;AAAA,YACN,OAAOA,eAAI,OAAA,EAAS,SAAA;AAAA,YACpB,QAAQA,eAAI,OAAA,EAAS,SAAA;AAAA,YACrB,QAAQA,eAAI,OAAA,EAAS,SAAA;AAAA,YACrB,QAAQA,eAAI,OAAA,EAAS,SAAA;AAAA,YACrB,SAASA,eAAI,OAAA,EAAS,SAAA;AAAA,YACtB,SAASA,eAAI,OAAA,EAAS,SAAA;AAAA,UAAS,CAChC,EACA,UAAU,IAAI;AAAA,QACnB,OAAO;AACL,cAAI,GAAG,IAAIA,eACR,OAAA,EACA,QAAQ,gBAAgB,EACxB,SAAA;AAAA,QACL;AAEA,eAAO;AAAA,MACT,GAAG,CAAA,CAAiE,IACpE;AAAA,IAAA,EAEL,SAAA;AAAA,EAAS;AAEhB,CAAC;AAOD,MAAM,UAAU,OAAO,EAAE,KAAK,aAA+D;AAC3F,QAAM,UAAU,MAAME,uBAAM,EAAE,KAAK;AAEnC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,wDAAwD;AAAA,EAC1E;AAEA,QAAM,SAAS,MAAMC,oBAAG,SAAS,OAAO;AAExC,QAAM,MAAM,KAAK,MAAM,OAAO,UAAU;AAExC,SAAO,MAAM,wBAAwBC,YAAAA,QAAG,KAAK,GAAG;AAEhD,SAAO;AACT;AAQA,MAAM,cAAc,OAAO,EAAE,UAAiD;AAC5E,MAAI;AACF,UAAM,eAAe,MAAM,kBAAkB,SAAS,KAAK;AAAA,MACzD,QAAQ;AAAA,IAAA,CACT;AAED,WAAO;AAAA,EACT,SAAS,KAAK;AACZ,QAAI,eAAeJ,eAAI,iBAAiB;AACtC,cAAQ,IAAI,MAAA;AAAA,QACV,KAAK;AACH,cAAI,IAAI,MAAM;AACZ,kBAAM,IAAI;AAAA,cACR,IAAI,IAAI,IAAI,4CAA4CK,eAAAA,QAAM;AAAA,gBAC5DL,eAAI,MAAM,mBAAmB,IAAI,IAAI,EAAE;AAAA,cAAA,CACxC;AAAA,YAAA;AAAA,UAEL;AACA;AAAA,QAKF,KAAK;AACH,cAAI,IAAI,QAAQ,IAAI,UAAU,aAAa,IAAI,QAAQ;AACrD,kBAAM,IAAI;AAAA,cACR,IAAI,IAAI,IAAI,gDAAgDK,eAAAA,QAAM;AAAA,gBAChE,IAAI,OAAO;AAAA,cAAA,CACZ,4DAA4DA,eAAAA,QAAM;AAAA,gBACjE;AAAA,cAAA,CACD;AAAA,YAAA;AAAA,UAEL;AACA;AAAA,QACF;AACE,cAAI,IAAI,QAAQ,IAAI,UAAU,UAAU,IAAI,UAAU,WAAW,IAAI,QAAQ;AAC3E,kBAAM,IAAI;AAAA,cACR,IAAI,IAAI,IAAI,wCAAwCA,eAAAA,QAAM;AAAA,gBACxD,IAAI,OAAO;AAAA,cAAA,CACZ,gBAAgBA,eAAAA,QAAM,QAAQ,OAAO,IAAI,OAAO,KAAK,CAAC;AAAA,YAAA;AAAA,UAE3D;AAAA,MAAA;AAAA,IAEN;AAEA,UAAM;AAAA,EACR;AACF;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"tsconfig.js","sources":["../../../src/commands/utils/tsconfig.ts"],"sourcesContent":["import os from 'os';\nimport ts from 'typescript';\nimport type { Logger } from './logger';\n\ninterface TsConfig {\n config: ts.ParsedCommandLine;\n path: string;\n}\n\n/**\n * @description Load a tsconfig.json file and return the parsed config.\n *\n * @internal\n */\nconst loadTsConfig = ({\n cwd,\n path,\n logger,\n}: {\n cwd: string;\n path: string;\n logger: Logger;\n}): TsConfig | undefined => {\n const configPath = ts.findConfigFile(cwd, ts.sys.fileExists, path);\n\n if (!configPath) {\n return undefined;\n }\n\n const configFile = ts.readConfigFile(configPath, ts.sys.readFile);\n\n const parsedConfig = ts.parseJsonConfigFileContent(configFile.config, ts.sys, cwd);\n\n logger.debug(`Loaded user TS config:`, os.EOL, parsedConfig);\n\n return {\n config: parsedConfig,\n path: configPath,\n };\n};\n\nexport { loadTsConfig };\nexport type { TsConfig };\n"],"names":["ts","os"],"mappings":";;;;;;;AAcA,MAAM,eAAe,CAAC;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AACF,MAI4B;AAC1B,QAAM,aAAaA,YAAG,QAAA,eAAe,KAAKA,YAAAA,QAAG,IAAI,YAAY,IAAI;AAEjE,MAAI,CAAC,YAAY;AACR,WAAA;AAAA,EACT;AAEA,QAAM,aAAaA,YAAAA,QAAG,eAAe,YAAYA,oBAAG,IAAI,QAAQ;AAEhE,QAAM,eAAeA,YAAG,QAAA,2BAA2B,WAAW,QAAQA,YAAA,QAAG,KAAK,GAAG;AAEjF,SAAO,MAAM,0BAA0BC,YAAAA,QAAG,KAAK,YAAY;AAEpD,SAAA;AAAA,IACL,QAAQ;AAAA,IACR,MAAM;AAAA,EAAA;AAEV;;"}
1
+ {"version":3,"file":"tsconfig.js","sources":["../../../src/commands/utils/tsconfig.ts"],"sourcesContent":["import os from 'os';\nimport ts from 'typescript';\nimport type { Logger } from './logger';\n\ninterface TsConfig {\n config: ts.ParsedCommandLine;\n path: string;\n}\n\n/**\n * @description Load a tsconfig.json file and return the parsed config.\n *\n * @internal\n */\nconst loadTsConfig = ({\n cwd,\n path,\n logger,\n}: {\n cwd: string;\n path: string;\n logger: Logger;\n}): TsConfig | undefined => {\n const configPath = ts.findConfigFile(cwd, ts.sys.fileExists, path);\n\n if (!configPath) {\n return undefined;\n }\n\n const configFile = ts.readConfigFile(configPath, ts.sys.readFile);\n\n const parsedConfig = ts.parseJsonConfigFileContent(configFile.config, ts.sys, cwd);\n\n logger.debug(`Loaded user TS config:`, os.EOL, parsedConfig);\n\n return {\n config: parsedConfig,\n path: configPath,\n };\n};\n\nexport { loadTsConfig };\nexport type { TsConfig };\n"],"names":["ts","os"],"mappings":";;;;;;;AAcA,MAAM,eAAe,CAAC;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AACF,MAI4B;AAC1B,QAAM,aAAaA,YAAAA,QAAG,eAAe,KAAKA,YAAAA,QAAG,IAAI,YAAY,IAAI;AAEjE,MAAI,CAAC,YAAY;AACf,WAAO;AAAA,EACT;AAEA,QAAM,aAAaA,YAAAA,QAAG,eAAe,YAAYA,YAAAA,QAAG,IAAI,QAAQ;AAEhE,QAAM,eAAeA,YAAAA,QAAG,2BAA2B,WAAW,QAAQA,YAAAA,QAAG,KAAK,GAAG;AAEjF,SAAO,MAAM,0BAA0BC,YAAAA,QAAG,KAAK,YAAY;AAE3D,SAAO;AAAA,IACL,QAAQ;AAAA,IACR,MAAM;AAAA,EAAA;AAEV;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sources":["../src/compile.ts"],"sourcesContent":["import tsUtils from '@strapi/typescript-utils';\n\ninterface Options {\n appDir?: string;\n ignoreDiagnostics?: boolean;\n}\n\nexport default async function compile(options?: Options) {\n const { appDir = process.cwd(), ignoreDiagnostics = false } = options ?? {};\n const isTSProject = await tsUtils.isUsingTypeScript(appDir);\n const outDir = await tsUtils.resolveOutDir(appDir);\n\n if (isTSProject) {\n await tsUtils.compile(appDir, {\n configOptions: { options: { incremental: true }, ignoreDiagnostics },\n });\n }\n\n const distDir = isTSProject ? outDir : appDir;\n\n return { appDir, distDir };\n}\n"],"names":["tsUtils"],"mappings":";;;;AAOA,eAA8B,QAAQ,SAAmB;AACjD,QAAA,EAAE,SAAS,QAAQ,IAAA,GAAO,oBAAoB,MAAA,IAAU,WAAW;AACzE,QAAM,cAAc,MAAMA,iBAAAA,QAAQ,kBAAkB,MAAM;AAC1D,QAAM,SAAS,MAAMA,iBAAAA,QAAQ,cAAc,MAAM;AAEjD,MAAI,aAAa;AACT,UAAAA,iBAAA,QAAQ,QAAQ,QAAQ;AAAA,MAC5B,eAAe,EAAE,SAAS,EAAE,aAAa,KAAA,GAAQ,kBAAkB;AAAA,IAAA,CACpE;AAAA,EACH;AAEM,QAAA,UAAU,cAAc,SAAS;AAEhC,SAAA,EAAE,QAAQ;AACnB;;"}
1
+ {"version":3,"file":"compile.js","sources":["../src/compile.ts"],"sourcesContent":["import tsUtils from '@strapi/typescript-utils';\n\ninterface Options {\n appDir?: string;\n ignoreDiagnostics?: boolean;\n}\n\nexport default async function compile(options?: Options) {\n const { appDir = process.cwd(), ignoreDiagnostics = false } = options ?? {};\n const isTSProject = await tsUtils.isUsingTypeScript(appDir);\n const outDir = await tsUtils.resolveOutDir(appDir);\n\n if (isTSProject) {\n await tsUtils.compile(appDir, {\n configOptions: { options: { incremental: true }, ignoreDiagnostics },\n });\n }\n\n const distDir = isTSProject ? outDir : appDir;\n\n return { appDir, distDir };\n}\n"],"names":["tsUtils"],"mappings":";;;;AAOA,eAA8B,QAAQ,SAAmB;AACvD,QAAM,EAAE,SAAS,QAAQ,IAAA,GAAO,oBAAoB,MAAA,IAAU,WAAW,CAAA;AACzE,QAAM,cAAc,MAAMA,yBAAQ,kBAAkB,MAAM;AAC1D,QAAM,SAAS,MAAMA,yBAAQ,cAAc,MAAM;AAEjD,MAAI,aAAa;AACf,UAAMA,iBAAAA,QAAQ,QAAQ,QAAQ;AAAA,MAC5B,eAAe,EAAE,SAAS,EAAE,aAAa,KAAA,GAAQ,kBAAA;AAAA,IAAkB,CACpE;AAAA,EACH;AAEA,QAAM,UAAU,cAAc,SAAS;AAEvC,SAAO,EAAE,QAAQ,QAAA;AACnB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"compile.mjs","sources":["../src/compile.ts"],"sourcesContent":["import tsUtils from '@strapi/typescript-utils';\n\ninterface Options {\n appDir?: string;\n ignoreDiagnostics?: boolean;\n}\n\nexport default async function compile(options?: Options) {\n const { appDir = process.cwd(), ignoreDiagnostics = false } = options ?? {};\n const isTSProject = await tsUtils.isUsingTypeScript(appDir);\n const outDir = await tsUtils.resolveOutDir(appDir);\n\n if (isTSProject) {\n await tsUtils.compile(appDir, {\n configOptions: { options: { incremental: true }, ignoreDiagnostics },\n });\n }\n\n const distDir = isTSProject ? outDir : appDir;\n\n return { appDir, distDir };\n}\n"],"names":[],"mappings":";AAOA,eAA8B,QAAQ,SAAmB;AACjD,QAAA,EAAE,SAAS,QAAQ,IAAA,GAAO,oBAAoB,MAAA,IAAU,WAAW;AACzE,QAAM,cAAc,MAAM,QAAQ,kBAAkB,MAAM;AAC1D,QAAM,SAAS,MAAM,QAAQ,cAAc,MAAM;AAEjD,MAAI,aAAa;AACT,UAAA,QAAQ,QAAQ,QAAQ;AAAA,MAC5B,eAAe,EAAE,SAAS,EAAE,aAAa,KAAA,GAAQ,kBAAkB;AAAA,IAAA,CACpE;AAAA,EACH;AAEM,QAAA,UAAU,cAAc,SAAS;AAEhC,SAAA,EAAE,QAAQ;AACnB;"}
1
+ {"version":3,"file":"compile.mjs","sources":["../src/compile.ts"],"sourcesContent":["import tsUtils from '@strapi/typescript-utils';\n\ninterface Options {\n appDir?: string;\n ignoreDiagnostics?: boolean;\n}\n\nexport default async function compile(options?: Options) {\n const { appDir = process.cwd(), ignoreDiagnostics = false } = options ?? {};\n const isTSProject = await tsUtils.isUsingTypeScript(appDir);\n const outDir = await tsUtils.resolveOutDir(appDir);\n\n if (isTSProject) {\n await tsUtils.compile(appDir, {\n configOptions: { options: { incremental: true }, ignoreDiagnostics },\n });\n }\n\n const distDir = isTSProject ? outDir : appDir;\n\n return { appDir, distDir };\n}\n"],"names":[],"mappings":";AAOA,eAA8B,QAAQ,SAAmB;AACvD,QAAM,EAAE,SAAS,QAAQ,IAAA,GAAO,oBAAoB,MAAA,IAAU,WAAW,CAAA;AACzE,QAAM,cAAc,MAAM,QAAQ,kBAAkB,MAAM;AAC1D,QAAM,SAAS,MAAM,QAAQ,cAAc,MAAM;AAEjD,MAAI,aAAa;AACf,UAAM,QAAQ,QAAQ,QAAQ;AAAA,MAC5B,eAAe,EAAE,SAAS,EAAE,aAAa,KAAA,GAAQ,kBAAA;AAAA,IAAkB,CACpE;AAAA,EACH;AAEA,QAAM,UAAU,cAAc,SAAS;AAEvC,SAAO,EAAE,QAAQ,QAAA;AACnB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sources":["../src/container.ts"],"sourcesContent":["import type { Strapi, Container } from '@strapi/types';\n\nexport const createContainer = (strapi: Strapi): Container => {\n const registered = new Map<string, unknown>();\n const resolved = new Map();\n\n return {\n register<T, U extends string>(name: U, resolver: T) {\n if (registered.has(name)) {\n throw new Error(`Cannot register already registered service ${name}`);\n }\n\n registered.set(name, resolver);\n return this;\n },\n\n get(name: string, args?: unknown) {\n // TODO: handle singleton vs reinstanciation everytime\n if (resolved.has(name)) {\n return resolved.get(name);\n }\n\n if (registered.has(name)) {\n const resolver = registered.get(name);\n\n if (typeof resolver === 'function') {\n resolved.set(name, resolver({ strapi }, args));\n } else {\n resolved.set(name, resolver);\n }\n\n return resolved.get(name);\n }\n\n throw new Error(`Could not resolve service ${name}`);\n },\n\n // TODO: implement\n extend() {\n return this;\n },\n };\n};\n"],"names":[],"mappings":";;AAEa,MAAA,kBAAkB,CAAC,WAA8B;AACtD,QAAA,iCAAiB;AACjB,QAAA,+BAAe;AAEd,SAAA;AAAA,IACL,SAA8B,MAAS,UAAa;AAC9C,UAAA,WAAW,IAAI,IAAI,GAAG;AACxB,cAAM,IAAI,MAAM,8CAA8C,IAAI,EAAE;AAAA,MACtE;AAEW,iBAAA,IAAI,MAAM,QAAQ;AACtB,aAAA;AAAA,IACT;AAAA,IAEA,IAAI,MAAc,MAAgB;AAE5B,UAAA,SAAS,IAAI,IAAI,GAAG;AACf,eAAA,SAAS,IAAI,IAAI;AAAA,MAC1B;AAEI,UAAA,WAAW,IAAI,IAAI,GAAG;AAClB,cAAA,WAAW,WAAW,IAAI,IAAI;AAEhC,YAAA,OAAO,aAAa,YAAY;AAClC,mBAAS,IAAI,MAAM,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;AAAA,QAAA,OACxC;AACI,mBAAA,IAAI,MAAM,QAAQ;AAAA,QAC7B;AAEO,eAAA,SAAS,IAAI,IAAI;AAAA,MAC1B;AAEA,YAAM,IAAI,MAAM,6BAA6B,IAAI,EAAE;AAAA,IACrD;AAAA;AAAA,IAGA,SAAS;AACA,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;;"}
1
+ {"version":3,"file":"container.js","sources":["../src/container.ts"],"sourcesContent":["import type { Strapi, Container } from '@strapi/types';\n\nexport const createContainer = (strapi: Strapi): Container => {\n const registered = new Map<string, unknown>();\n const resolved = new Map();\n\n return {\n register<T, U extends string>(name: U, resolver: T) {\n if (registered.has(name)) {\n throw new Error(`Cannot register already registered service ${name}`);\n }\n\n registered.set(name, resolver);\n return this;\n },\n\n get(name: string, args?: unknown) {\n // TODO: handle singleton vs reinstanciation everytime\n if (resolved.has(name)) {\n return resolved.get(name);\n }\n\n if (registered.has(name)) {\n const resolver = registered.get(name);\n\n if (typeof resolver === 'function') {\n resolved.set(name, resolver({ strapi }, args));\n } else {\n resolved.set(name, resolver);\n }\n\n return resolved.get(name);\n }\n\n throw new Error(`Could not resolve service ${name}`);\n },\n\n // TODO: implement\n extend() {\n return this;\n },\n };\n};\n"],"names":[],"mappings":";;AAEO,MAAM,kBAAkB,CAAC,WAA8B;AAC5D,QAAM,iCAAiB,IAAA;AACvB,QAAM,+BAAe,IAAA;AAErB,SAAO;AAAA,IACL,SAA8B,MAAS,UAAa;AAClD,UAAI,WAAW,IAAI,IAAI,GAAG;AACxB,cAAM,IAAI,MAAM,8CAA8C,IAAI,EAAE;AAAA,MACtE;AAEA,iBAAW,IAAI,MAAM,QAAQ;AAC7B,aAAO;AAAA,IACT;AAAA,IAEA,IAAI,MAAc,MAAgB;AAEhC,UAAI,SAAS,IAAI,IAAI,GAAG;AACtB,eAAO,SAAS,IAAI,IAAI;AAAA,MAC1B;AAEA,UAAI,WAAW,IAAI,IAAI,GAAG;AACxB,cAAM,WAAW,WAAW,IAAI,IAAI;AAEpC,YAAI,OAAO,aAAa,YAAY;AAClC,mBAAS,IAAI,MAAM,SAAS,EAAE,OAAA,GAAU,IAAI,CAAC;AAAA,QAC/C,OAAO;AACL,mBAAS,IAAI,MAAM,QAAQ;AAAA,QAC7B;AAEA,eAAO,SAAS,IAAI,IAAI;AAAA,MAC1B;AAEA,YAAM,IAAI,MAAM,6BAA6B,IAAI,EAAE;AAAA,IACrD;AAAA;AAAA,IAGA,SAAS;AACP,aAAO;AAAA,IACT;AAAA,EAAA;AAEJ;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"container.mjs","sources":["../src/container.ts"],"sourcesContent":["import type { Strapi, Container } from '@strapi/types';\n\nexport const createContainer = (strapi: Strapi): Container => {\n const registered = new Map<string, unknown>();\n const resolved = new Map();\n\n return {\n register<T, U extends string>(name: U, resolver: T) {\n if (registered.has(name)) {\n throw new Error(`Cannot register already registered service ${name}`);\n }\n\n registered.set(name, resolver);\n return this;\n },\n\n get(name: string, args?: unknown) {\n // TODO: handle singleton vs reinstanciation everytime\n if (resolved.has(name)) {\n return resolved.get(name);\n }\n\n if (registered.has(name)) {\n const resolver = registered.get(name);\n\n if (typeof resolver === 'function') {\n resolved.set(name, resolver({ strapi }, args));\n } else {\n resolved.set(name, resolver);\n }\n\n return resolved.get(name);\n }\n\n throw new Error(`Could not resolve service ${name}`);\n },\n\n // TODO: implement\n extend() {\n return this;\n },\n };\n};\n"],"names":[],"mappings":"AAEa,MAAA,kBAAkB,CAAC,WAA8B;AACtD,QAAA,iCAAiB;AACjB,QAAA,+BAAe;AAEd,SAAA;AAAA,IACL,SAA8B,MAAS,UAAa;AAC9C,UAAA,WAAW,IAAI,IAAI,GAAG;AACxB,cAAM,IAAI,MAAM,8CAA8C,IAAI,EAAE;AAAA,MACtE;AAEW,iBAAA,IAAI,MAAM,QAAQ;AACtB,aAAA;AAAA,IACT;AAAA,IAEA,IAAI,MAAc,MAAgB;AAE5B,UAAA,SAAS,IAAI,IAAI,GAAG;AACf,eAAA,SAAS,IAAI,IAAI;AAAA,MAC1B;AAEI,UAAA,WAAW,IAAI,IAAI,GAAG;AAClB,cAAA,WAAW,WAAW,IAAI,IAAI;AAEhC,YAAA,OAAO,aAAa,YAAY;AAClC,mBAAS,IAAI,MAAM,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;AAAA,QAAA,OACxC;AACI,mBAAA,IAAI,MAAM,QAAQ;AAAA,QAC7B;AAEO,eAAA,SAAS,IAAI,IAAI;AAAA,MAC1B;AAEA,YAAM,IAAI,MAAM,6BAA6B,IAAI,EAAE;AAAA,IACrD;AAAA;AAAA,IAGA,SAAS;AACA,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"container.mjs","sources":["../src/container.ts"],"sourcesContent":["import type { Strapi, Container } from '@strapi/types';\n\nexport const createContainer = (strapi: Strapi): Container => {\n const registered = new Map<string, unknown>();\n const resolved = new Map();\n\n return {\n register<T, U extends string>(name: U, resolver: T) {\n if (registered.has(name)) {\n throw new Error(`Cannot register already registered service ${name}`);\n }\n\n registered.set(name, resolver);\n return this;\n },\n\n get(name: string, args?: unknown) {\n // TODO: handle singleton vs reinstanciation everytime\n if (resolved.has(name)) {\n return resolved.get(name);\n }\n\n if (registered.has(name)) {\n const resolver = registered.get(name);\n\n if (typeof resolver === 'function') {\n resolved.set(name, resolver({ strapi }, args));\n } else {\n resolved.set(name, resolver);\n }\n\n return resolved.get(name);\n }\n\n throw new Error(`Could not resolve service ${name}`);\n },\n\n // TODO: implement\n extend() {\n return this;\n },\n };\n};\n"],"names":[],"mappings":"AAEO,MAAM,kBAAkB,CAAC,WAA8B;AAC5D,QAAM,iCAAiB,IAAA;AACvB,QAAM,+BAAe,IAAA;AAErB,SAAO;AAAA,IACL,SAA8B,MAAS,UAAa;AAClD,UAAI,WAAW,IAAI,IAAI,GAAG;AACxB,cAAM,IAAI,MAAM,8CAA8C,IAAI,EAAE;AAAA,MACtE;AAEA,iBAAW,IAAI,MAAM,QAAQ;AAC7B,aAAO;AAAA,IACT;AAAA,IAEA,IAAI,MAAc,MAAgB;AAEhC,UAAI,SAAS,IAAI,IAAI,GAAG;AACtB,eAAO,SAAS,IAAI,IAAI;AAAA,MAC1B;AAEA,UAAI,WAAW,IAAI,IAAI,GAAG;AACxB,cAAM,WAAW,WAAW,IAAI,IAAI;AAEpC,YAAI,OAAO,aAAa,YAAY;AAClC,mBAAS,IAAI,MAAM,SAAS,EAAE,OAAA,GAAU,IAAI,CAAC;AAAA,QAC/C,OAAO;AACL,mBAAS,IAAI,MAAM,QAAQ;AAAA,QAC7B;AAEA,eAAO,SAAS,IAAI,IAAI;AAAA,MAC1B;AAEA,YAAM,IAAI,MAAM,6BAA6B,IAAI,EAAE;AAAA,IACrD;AAAA;AAAA,IAGA,SAAS;AACP,aAAO;AAAA,IACT;AAAA,EAAA;AAEJ;"}
@@ -7,8 +7,7 @@ const path__default = /* @__PURE__ */ _interopDefault(path);
7
7
  const fs__default = /* @__PURE__ */ _interopDefault(fs);
8
8
  const VALID_EXTENSIONS = [".js", ".json"];
9
9
  const loadConfigDir = (dir) => {
10
- if (!fs__default.default.existsSync(dir))
11
- return {};
10
+ if (!fs__default.default.existsSync(dir)) return {};
12
11
  return fs__default.default.readdirSync(dir, { withFileTypes: true }).filter((file) => file.isFile() && VALID_EXTENSIONS.includes(path__default.default.extname(file.name))).reduce((acc, file) => {
13
12
  const key = path__default.default.basename(file.name, path__default.default.extname(file.name));
14
13
  acc[key] = loadConfigFile.loadFile(path__default.default.resolve(dir, file.name));