@strapi/core 0.0.0-experimental.a407f3bc8fb79a53cf7975140864526b6ddbac4b → 0.0.0-experimental.a65a85fdea97faae8679d3ffc5f9d79af61abd26

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 (751) hide show
  1. package/dist/Strapi.d.ts +49 -58
  2. package/dist/Strapi.d.ts.map +1 -1
  3. package/dist/Strapi.js +148 -208
  4. package/dist/Strapi.js.map +1 -1
  5. package/dist/Strapi.mjs +139 -200
  6. package/dist/Strapi.mjs.map +1 -1
  7. package/dist/configuration/config-loader.d.ts.map +1 -1
  8. package/dist/configuration/config-loader.js +9 -5
  9. package/dist/configuration/config-loader.js.map +1 -1
  10. package/dist/configuration/config-loader.mjs +9 -5
  11. package/dist/configuration/config-loader.mjs.map +1 -1
  12. package/dist/configuration/get-dirs.d.ts +10 -0
  13. package/dist/configuration/get-dirs.d.ts.map +1 -0
  14. package/dist/{utils → configuration}/get-dirs.js +3 -2
  15. package/dist/configuration/get-dirs.js.map +1 -0
  16. package/dist/{utils → configuration}/get-dirs.mjs +3 -2
  17. package/dist/configuration/get-dirs.mjs.map +1 -0
  18. package/dist/configuration/index.d.ts +4 -7
  19. package/dist/configuration/index.d.ts.map +1 -1
  20. package/dist/configuration/index.js +10 -8
  21. package/dist/configuration/index.js.map +1 -1
  22. package/dist/configuration/index.mjs +6 -5
  23. package/dist/configuration/index.mjs.map +1 -1
  24. package/dist/configuration/urls.d.ts +8 -0
  25. package/dist/configuration/urls.d.ts.map +1 -0
  26. package/dist/configuration/urls.js +68 -0
  27. package/dist/configuration/urls.js.map +1 -0
  28. package/dist/configuration/urls.mjs +66 -0
  29. package/dist/configuration/urls.mjs.map +1 -0
  30. package/dist/container.d.ts +2 -2
  31. package/dist/container.d.ts.map +1 -1
  32. package/dist/container.js.map +1 -1
  33. package/dist/container.mjs.map +1 -1
  34. package/dist/core-api/controller/collection-type.d.ts +3 -3
  35. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  36. package/dist/core-api/controller/collection-type.js +1 -0
  37. package/dist/core-api/controller/collection-type.js.map +1 -1
  38. package/dist/core-api/controller/collection-type.mjs +1 -0
  39. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  40. package/dist/core-api/controller/index.d.ts +3 -3
  41. package/dist/core-api/controller/index.d.ts.map +1 -1
  42. package/dist/core-api/controller/index.js +11 -6
  43. package/dist/core-api/controller/index.js.map +1 -1
  44. package/dist/core-api/controller/index.mjs +12 -7
  45. package/dist/core-api/controller/index.mjs.map +1 -1
  46. package/dist/core-api/controller/single-type.d.ts +3 -3
  47. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  48. package/dist/core-api/controller/single-type.js.map +1 -1
  49. package/dist/core-api/controller/single-type.mjs.map +1 -1
  50. package/dist/core-api/controller/transform.d.ts +10 -9
  51. package/dist/core-api/controller/transform.d.ts.map +1 -1
  52. package/dist/core-api/controller/transform.js +19 -13
  53. package/dist/core-api/controller/transform.js.map +1 -1
  54. package/dist/core-api/controller/transform.mjs +19 -13
  55. package/dist/core-api/controller/transform.mjs.map +1 -1
  56. package/dist/core-api/routes/index.d.ts.map +1 -1
  57. package/dist/core-api/service/collection-type.d.ts +10 -10
  58. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  59. package/dist/core-api/service/collection-type.js +15 -5
  60. package/dist/core-api/service/collection-type.js.map +1 -1
  61. package/dist/core-api/service/collection-type.mjs +15 -5
  62. package/dist/core-api/service/collection-type.mjs.map +1 -1
  63. package/dist/core-api/service/index.d.ts +3 -3
  64. package/dist/core-api/service/index.d.ts.map +1 -1
  65. package/dist/core-api/service/index.js.map +1 -1
  66. package/dist/core-api/service/index.mjs.map +1 -1
  67. package/dist/core-api/service/single-type.d.ts +5 -5
  68. package/dist/core-api/service/single-type.d.ts.map +1 -1
  69. package/dist/core-api/service/single-type.js +12 -6
  70. package/dist/core-api/service/single-type.js.map +1 -1
  71. package/dist/core-api/service/single-type.mjs +12 -6
  72. package/dist/core-api/service/single-type.mjs.map +1 -1
  73. package/dist/domain/content-type/index.d.ts +1 -1
  74. package/dist/domain/content-type/index.d.ts.map +1 -1
  75. package/dist/domain/content-type/index.js +3 -0
  76. package/dist/domain/content-type/index.js.map +1 -1
  77. package/dist/domain/content-type/index.mjs +3 -0
  78. package/dist/domain/content-type/index.mjs.map +1 -1
  79. package/dist/domain/content-type/validator.d.ts.map +1 -1
  80. package/dist/domain/content-type/validator.js +1 -1
  81. package/dist/domain/content-type/validator.js.map +1 -1
  82. package/dist/domain/content-type/validator.mjs +2 -2
  83. package/dist/domain/content-type/validator.mjs.map +1 -1
  84. package/dist/domain/module/index.d.ts +24 -23
  85. package/dist/domain/module/index.d.ts.map +1 -1
  86. package/dist/domain/module/index.js +3 -3
  87. package/dist/domain/module/index.js.map +1 -1
  88. package/dist/domain/module/index.mjs +4 -4
  89. package/dist/domain/module/index.mjs.map +1 -1
  90. package/dist/ee/index.d.ts +4 -2
  91. package/dist/ee/index.d.ts.map +1 -1
  92. package/dist/ee/index.js.map +1 -1
  93. package/dist/ee/index.mjs.map +1 -1
  94. package/dist/ee/license.d.ts +2 -2
  95. package/dist/ee/license.d.ts.map +1 -1
  96. package/dist/ee/license.js +2 -1
  97. package/dist/ee/license.js.map +1 -1
  98. package/dist/ee/license.mjs +2 -1
  99. package/dist/ee/license.mjs.map +1 -1
  100. package/dist/factories.d.ts +10 -10
  101. package/dist/factories.d.ts.map +1 -1
  102. package/dist/factories.js +6 -2
  103. package/dist/factories.js.map +1 -1
  104. package/dist/factories.mjs +6 -2
  105. package/dist/factories.mjs.map +1 -1
  106. package/dist/index.d.ts +4 -2
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +25 -1
  109. package/dist/index.js.map +1 -1
  110. package/dist/index.mjs +27 -3
  111. package/dist/index.mjs.map +1 -1
  112. package/dist/loaders/admin.d.ts +2 -2
  113. package/dist/loaders/admin.d.ts.map +1 -1
  114. package/dist/loaders/admin.js +0 -1
  115. package/dist/loaders/admin.js.map +1 -1
  116. package/dist/loaders/admin.mjs +0 -1
  117. package/dist/loaders/admin.mjs.map +1 -1
  118. package/dist/loaders/apis.d.ts +2 -2
  119. package/dist/loaders/apis.d.ts.map +1 -1
  120. package/dist/loaders/apis.js +11 -11
  121. package/dist/loaders/apis.js.map +1 -1
  122. package/dist/loaders/apis.mjs +12 -12
  123. package/dist/loaders/apis.mjs.map +1 -1
  124. package/dist/loaders/components.d.ts +2 -2
  125. package/dist/loaders/components.d.ts.map +1 -1
  126. package/dist/loaders/components.js.map +1 -1
  127. package/dist/loaders/components.mjs.map +1 -1
  128. package/dist/loaders/index.d.ts +2 -2
  129. package/dist/loaders/index.d.ts.map +1 -1
  130. package/dist/loaders/index.js +0 -2
  131. package/dist/loaders/index.js.map +1 -1
  132. package/dist/loaders/index.mjs +0 -2
  133. package/dist/loaders/index.mjs.map +1 -1
  134. package/dist/loaders/middlewares.d.ts +2 -2
  135. package/dist/loaders/middlewares.d.ts.map +1 -1
  136. package/dist/loaders/middlewares.js.map +1 -1
  137. package/dist/loaders/middlewares.mjs.map +1 -1
  138. package/dist/loaders/plugins/get-enabled-plugins.d.ts +2 -2
  139. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  140. package/dist/loaders/plugins/get-enabled-plugins.js +8 -6
  141. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  142. package/dist/loaders/plugins/get-enabled-plugins.mjs +9 -7
  143. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  144. package/dist/loaders/plugins/index.d.ts +2 -2
  145. package/dist/loaders/plugins/index.d.ts.map +1 -1
  146. package/dist/loaders/plugins/index.js.map +1 -1
  147. package/dist/loaders/plugins/index.mjs.map +1 -1
  148. package/dist/loaders/policies.d.ts +2 -2
  149. package/dist/loaders/policies.d.ts.map +1 -1
  150. package/dist/loaders/policies.js.map +1 -1
  151. package/dist/loaders/policies.mjs.map +1 -1
  152. package/dist/loaders/sanitizers.d.ts +2 -2
  153. package/dist/loaders/sanitizers.d.ts.map +1 -1
  154. package/dist/loaders/sanitizers.js.map +1 -1
  155. package/dist/loaders/sanitizers.mjs.map +1 -1
  156. package/dist/loaders/src-index.d.ts +2 -2
  157. package/dist/loaders/src-index.d.ts.map +1 -1
  158. package/dist/loaders/src-index.js.map +1 -1
  159. package/dist/loaders/src-index.mjs.map +1 -1
  160. package/dist/loaders/validators.d.ts +2 -2
  161. package/dist/loaders/validators.d.ts.map +1 -1
  162. package/dist/loaders/validators.js.map +1 -1
  163. package/dist/loaders/validators.mjs.map +1 -1
  164. package/dist/middlewares/body.d.ts +4 -4
  165. package/dist/middlewares/body.d.ts.map +1 -1
  166. package/dist/middlewares/body.js +4 -4
  167. package/dist/middlewares/body.js.map +1 -1
  168. package/dist/middlewares/body.mjs +4 -4
  169. package/dist/middlewares/body.mjs.map +1 -1
  170. package/dist/middlewares/compression.d.ts +2 -2
  171. package/dist/middlewares/compression.d.ts.map +1 -1
  172. package/dist/middlewares/compression.js.map +1 -1
  173. package/dist/middlewares/compression.mjs.map +1 -1
  174. package/dist/middlewares/cors.d.ts +2 -2
  175. package/dist/middlewares/cors.d.ts.map +1 -1
  176. package/dist/middlewares/cors.js.map +1 -1
  177. package/dist/middlewares/cors.mjs.map +1 -1
  178. package/dist/middlewares/errors.d.ts +2 -2
  179. package/dist/middlewares/errors.d.ts.map +1 -1
  180. package/dist/middlewares/errors.js.map +1 -1
  181. package/dist/middlewares/errors.mjs.map +1 -1
  182. package/dist/middlewares/favicon.d.ts +2 -2
  183. package/dist/middlewares/favicon.d.ts.map +1 -1
  184. package/dist/middlewares/favicon.js.map +1 -1
  185. package/dist/middlewares/favicon.mjs.map +1 -1
  186. package/dist/middlewares/index.d.ts +2 -2
  187. package/dist/middlewares/index.d.ts.map +1 -1
  188. package/dist/middlewares/index.js.map +1 -1
  189. package/dist/middlewares/index.mjs.map +1 -1
  190. package/dist/middlewares/ip.d.ts +2 -2
  191. package/dist/middlewares/ip.d.ts.map +1 -1
  192. package/dist/middlewares/ip.js.map +1 -1
  193. package/dist/middlewares/ip.mjs.map +1 -1
  194. package/dist/middlewares/logger.d.ts +2 -2
  195. package/dist/middlewares/logger.d.ts.map +1 -1
  196. package/dist/middlewares/logger.js.map +1 -1
  197. package/dist/middlewares/logger.mjs.map +1 -1
  198. package/dist/middlewares/powered-by.d.ts +2 -2
  199. package/dist/middlewares/powered-by.d.ts.map +1 -1
  200. package/dist/middlewares/powered-by.js.map +1 -1
  201. package/dist/middlewares/powered-by.mjs.map +1 -1
  202. package/dist/middlewares/public.d.ts +2 -2
  203. package/dist/middlewares/public.d.ts.map +1 -1
  204. package/dist/middlewares/public.js +1 -1
  205. package/dist/middlewares/public.js.map +1 -1
  206. package/dist/middlewares/public.mjs +1 -1
  207. package/dist/middlewares/public.mjs.map +1 -1
  208. package/dist/middlewares/query.d.ts +2 -2
  209. package/dist/middlewares/query.d.ts.map +1 -1
  210. package/dist/middlewares/query.js.map +1 -1
  211. package/dist/middlewares/query.mjs.map +1 -1
  212. package/dist/middlewares/response-time.d.ts +2 -2
  213. package/dist/middlewares/response-time.d.ts.map +1 -1
  214. package/dist/middlewares/response-time.js.map +1 -1
  215. package/dist/middlewares/response-time.mjs.map +1 -1
  216. package/dist/middlewares/responses.d.ts +3 -3
  217. package/dist/middlewares/responses.d.ts.map +1 -1
  218. package/dist/middlewares/responses.js.map +1 -1
  219. package/dist/middlewares/responses.mjs.map +1 -1
  220. package/dist/middlewares/security.d.ts +2 -2
  221. package/dist/middlewares/security.d.ts.map +1 -1
  222. package/dist/middlewares/security.js +2 -2
  223. package/dist/middlewares/security.js.map +1 -1
  224. package/dist/middlewares/security.mjs +2 -2
  225. package/dist/middlewares/security.mjs.map +1 -1
  226. package/dist/middlewares/session.d.ts +2 -2
  227. package/dist/middlewares/session.d.ts.map +1 -1
  228. package/dist/middlewares/session.js.map +1 -1
  229. package/dist/middlewares/session.mjs.map +1 -1
  230. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +12 -0
  231. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -0
  232. package/dist/migrations/database/5.0.0-discard-drafts.js +49 -0
  233. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
  234. package/dist/migrations/database/5.0.0-discard-drafts.mjs +49 -0
  235. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
  236. package/dist/migrations/draft-publish.d.ts +17 -0
  237. package/dist/migrations/draft-publish.d.ts.map +1 -0
  238. package/dist/migrations/draft-publish.js +59 -0
  239. package/dist/migrations/draft-publish.js.map +1 -0
  240. package/dist/migrations/draft-publish.mjs +59 -0
  241. package/dist/migrations/draft-publish.mjs.map +1 -0
  242. package/dist/providers/admin.d.ts +3 -0
  243. package/dist/providers/admin.d.ts.map +1 -0
  244. package/dist/providers/admin.js +20 -0
  245. package/dist/providers/admin.js.map +1 -0
  246. package/dist/providers/admin.mjs +21 -0
  247. package/dist/providers/admin.mjs.map +1 -0
  248. package/dist/providers/coreStore.d.ts +3 -0
  249. package/dist/providers/coreStore.d.ts.map +1 -0
  250. package/dist/providers/coreStore.js +11 -0
  251. package/dist/providers/coreStore.js.map +1 -0
  252. package/dist/providers/coreStore.mjs +12 -0
  253. package/dist/providers/coreStore.mjs.map +1 -0
  254. package/dist/providers/cron.d.ts +3 -0
  255. package/dist/providers/cron.d.ts.map +1 -0
  256. package/dist/providers/cron.js +20 -0
  257. package/dist/providers/cron.js.map +1 -0
  258. package/dist/providers/cron.mjs +21 -0
  259. package/dist/providers/cron.mjs.map +1 -0
  260. package/dist/providers/index.d.ts +3 -0
  261. package/dist/providers/index.d.ts.map +1 -0
  262. package/dist/providers/index.js +11 -0
  263. package/dist/providers/index.js.map +1 -0
  264. package/dist/providers/index.mjs +11 -0
  265. package/dist/providers/index.mjs.map +1 -0
  266. package/dist/providers/provider.d.ts +9 -0
  267. package/dist/providers/provider.d.ts.map +1 -0
  268. package/dist/providers/provider.js +5 -0
  269. package/dist/providers/provider.js.map +1 -0
  270. package/dist/providers/provider.mjs +5 -0
  271. package/dist/providers/provider.mjs.map +1 -0
  272. package/dist/providers/registries.d.ts +3 -0
  273. package/dist/providers/registries.d.ts.map +1 -0
  274. package/dist/providers/registries.js +35 -0
  275. package/dist/providers/registries.js.map +1 -0
  276. package/dist/providers/registries.mjs +36 -0
  277. package/dist/providers/registries.mjs.map +1 -0
  278. package/dist/providers/telemetry.d.ts +3 -0
  279. package/dist/providers/telemetry.d.ts.map +1 -0
  280. package/dist/providers/telemetry.js +19 -0
  281. package/dist/providers/telemetry.js.map +1 -0
  282. package/dist/providers/telemetry.mjs +20 -0
  283. package/dist/providers/telemetry.mjs.map +1 -0
  284. package/dist/providers/webhooks.d.ts +3 -0
  285. package/dist/providers/webhooks.d.ts.map +1 -0
  286. package/dist/providers/webhooks.js +30 -0
  287. package/dist/providers/webhooks.js.map +1 -0
  288. package/dist/providers/webhooks.mjs +31 -0
  289. package/dist/providers/webhooks.mjs.map +1 -0
  290. package/dist/registries/apis.d.ts +2 -2
  291. package/dist/registries/apis.d.ts.map +1 -1
  292. package/dist/registries/apis.js.map +1 -1
  293. package/dist/registries/apis.mjs.map +1 -1
  294. package/dist/registries/components.d.ts +6 -6
  295. package/dist/registries/components.d.ts.map +1 -1
  296. package/dist/registries/components.js.map +1 -1
  297. package/dist/registries/components.mjs.map +1 -1
  298. package/dist/registries/content-types.d.ts +5 -5
  299. package/dist/registries/content-types.d.ts.map +1 -1
  300. package/dist/registries/content-types.js.map +1 -1
  301. package/dist/registries/content-types.mjs.map +1 -1
  302. package/dist/registries/controllers.d.ts +10 -10
  303. package/dist/registries/controllers.d.ts.map +1 -1
  304. package/dist/registries/controllers.js.map +1 -1
  305. package/dist/registries/controllers.mjs.map +1 -1
  306. package/dist/registries/custom-fields.d.ts +3 -3
  307. package/dist/registries/custom-fields.d.ts.map +1 -1
  308. package/dist/registries/custom-fields.js.map +1 -1
  309. package/dist/registries/custom-fields.mjs.map +1 -1
  310. package/dist/registries/index.d.ts +0 -1
  311. package/dist/registries/index.d.ts.map +1 -1
  312. package/dist/registries/middlewares.d.ts +6 -6
  313. package/dist/registries/middlewares.d.ts.map +1 -1
  314. package/dist/registries/middlewares.js.map +1 -1
  315. package/dist/registries/middlewares.mjs.map +1 -1
  316. package/dist/registries/modules.d.ts +2 -2
  317. package/dist/registries/modules.d.ts.map +1 -1
  318. package/dist/registries/modules.js.map +1 -1
  319. package/dist/registries/modules.mjs.map +1 -1
  320. package/dist/registries/plugins.d.ts +5 -5
  321. package/dist/registries/plugins.d.ts.map +1 -1
  322. package/dist/registries/plugins.js.map +1 -1
  323. package/dist/registries/plugins.mjs.map +1 -1
  324. package/dist/registries/policies.d.ts +23 -11
  325. package/dist/registries/policies.d.ts.map +1 -1
  326. package/dist/registries/policies.js +64 -18
  327. package/dist/registries/policies.js.map +1 -1
  328. package/dist/registries/policies.mjs +65 -19
  329. package/dist/registries/policies.mjs.map +1 -1
  330. package/dist/registries/services.d.ts +8 -8
  331. package/dist/registries/services.d.ts.map +1 -1
  332. package/dist/registries/services.js.map +1 -1
  333. package/dist/registries/services.mjs.map +1 -1
  334. package/dist/services/auth/index.d.ts +4 -4
  335. package/dist/services/auth/index.d.ts.map +1 -1
  336. package/dist/services/auth/index.js.map +1 -1
  337. package/dist/services/auth/index.mjs.map +1 -1
  338. package/dist/services/config.d.ts +3 -0
  339. package/dist/services/config.d.ts.map +1 -0
  340. package/dist/services/config.js +47 -0
  341. package/dist/services/config.js.map +1 -0
  342. package/dist/services/config.mjs +47 -0
  343. package/dist/services/config.mjs.map +1 -0
  344. package/dist/services/content-api/index.d.ts +21 -3
  345. package/dist/services/content-api/index.d.ts.map +1 -1
  346. package/dist/services/content-api/index.js +28 -2
  347. package/dist/services/content-api/index.js.map +1 -1
  348. package/dist/services/content-api/index.mjs +28 -2
  349. package/dist/services/content-api/index.mjs.map +1 -1
  350. package/dist/services/content-api/permissions/index.d.ts +3 -3
  351. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  352. package/dist/services/content-api/permissions/index.js +1 -1
  353. package/dist/services/content-api/permissions/index.js.map +1 -1
  354. package/dist/services/content-api/permissions/index.mjs +1 -1
  355. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  356. package/dist/services/core-store.d.ts.map +1 -1
  357. package/dist/services/cron.d.ts +2 -2
  358. package/dist/services/cron.d.ts.map +1 -1
  359. package/dist/services/cron.js.map +1 -1
  360. package/dist/services/cron.mjs.map +1 -1
  361. package/dist/services/custom-fields.d.ts +2 -2
  362. package/dist/services/custom-fields.d.ts.map +1 -1
  363. package/dist/services/custom-fields.js.map +1 -1
  364. package/dist/services/custom-fields.mjs.map +1 -1
  365. package/dist/services/document-service/attributes/index.d.ts +6 -0
  366. package/dist/services/document-service/attributes/index.d.ts.map +1 -0
  367. package/dist/services/{entity-service → document-service}/attributes/index.js +5 -5
  368. package/dist/services/document-service/attributes/index.js.map +1 -0
  369. package/dist/services/{entity-service → document-service}/attributes/index.mjs +5 -5
  370. package/dist/services/document-service/attributes/index.mjs.map +1 -0
  371. package/dist/services/document-service/attributes/transforms.d.ts +10 -0
  372. package/dist/services/document-service/attributes/transforms.d.ts.map +1 -0
  373. package/dist/services/document-service/attributes/transforms.js.map +1 -0
  374. package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
  375. package/dist/services/document-service/common.d.ts +2 -2
  376. package/dist/services/document-service/common.d.ts.map +1 -1
  377. package/dist/services/document-service/common.js.map +1 -1
  378. package/dist/services/document-service/common.mjs.map +1 -1
  379. package/dist/services/document-service/components.d.ts +25 -1
  380. package/dist/services/document-service/components.d.ts.map +1 -1
  381. package/dist/services/{entity-service → document-service}/components.js +46 -142
  382. package/dist/services/document-service/components.js.map +1 -0
  383. package/dist/services/{entity-service → document-service}/components.mjs +48 -144
  384. package/dist/services/document-service/components.mjs.map +1 -0
  385. package/dist/services/document-service/draft-and-publish.d.ts +9 -23
  386. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  387. package/dist/services/document-service/draft-and-publish.js +37 -9
  388. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  389. package/dist/services/document-service/draft-and-publish.mjs +38 -10
  390. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  391. package/dist/services/document-service/entries.d.ts +10 -0
  392. package/dist/services/document-service/entries.d.ts.map +1 -0
  393. package/dist/services/document-service/entries.js +95 -0
  394. package/dist/services/document-service/entries.js.map +1 -0
  395. package/dist/services/document-service/entries.mjs +95 -0
  396. package/dist/services/document-service/entries.mjs.map +1 -0
  397. package/dist/services/document-service/index.d.ts +2 -4
  398. package/dist/services/document-service/index.d.ts.map +1 -1
  399. package/dist/services/document-service/index.js +21 -8
  400. package/dist/services/document-service/index.js.map +1 -1
  401. package/dist/services/document-service/index.mjs +17 -4
  402. package/dist/services/document-service/index.mjs.map +1 -1
  403. package/dist/services/document-service/internationalization.d.ts +5 -5
  404. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  405. package/dist/services/document-service/internationalization.js.map +1 -1
  406. package/dist/services/document-service/internationalization.mjs.map +1 -1
  407. package/dist/services/document-service/middlewares/errors.d.ts +6 -0
  408. package/dist/services/document-service/middlewares/errors.d.ts.map +1 -0
  409. package/dist/services/document-service/middlewares/errors.js +25 -0
  410. package/dist/services/document-service/middlewares/errors.js.map +1 -0
  411. package/dist/services/document-service/middlewares/errors.mjs +25 -0
  412. package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
  413. package/dist/services/document-service/middlewares/index.d.ts +3 -0
  414. package/dist/services/document-service/middlewares/index.d.ts.map +1 -0
  415. package/dist/services/document-service/middlewares/middleware-manager.d.ts +10 -0
  416. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -0
  417. package/dist/services/document-service/{middlewares.js → middlewares/middleware-manager.js} +9 -6
  418. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
  419. package/dist/services/document-service/{middlewares.mjs → middlewares/middleware-manager.mjs} +9 -6
  420. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
  421. package/dist/services/document-service/params.d.ts +3 -1
  422. package/dist/services/document-service/params.d.ts.map +1 -1
  423. package/dist/services/{entity-service → document-service}/params.js +1 -1
  424. package/dist/services/document-service/params.js.map +1 -0
  425. package/dist/services/{entity-service → document-service}/params.mjs +1 -1
  426. package/dist/services/document-service/params.mjs.map +1 -0
  427. package/dist/services/document-service/repository.d.ts +3 -0
  428. package/dist/services/document-service/repository.d.ts.map +1 -0
  429. package/dist/services/document-service/repository.js +250 -0
  430. package/dist/services/document-service/repository.js.map +1 -0
  431. package/dist/services/document-service/repository.mjs +250 -0
  432. package/dist/services/document-service/repository.mjs.map +1 -0
  433. package/dist/services/document-service/transform/data.d.ts.map +1 -1
  434. package/dist/services/document-service/transform/data.js +4 -2
  435. package/dist/services/document-service/transform/data.js.map +1 -1
  436. package/dist/services/document-service/transform/data.mjs +4 -2
  437. package/dist/services/document-service/transform/data.mjs.map +1 -1
  438. package/dist/services/document-service/transform/fields.d.ts +2 -2
  439. package/dist/services/document-service/transform/fields.d.ts.map +1 -1
  440. package/dist/services/document-service/transform/fields.js.map +1 -1
  441. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  442. package/dist/services/document-service/transform/id-map.d.ts +4 -4
  443. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  444. package/dist/services/document-service/transform/id-map.js +15 -9
  445. package/dist/services/document-service/transform/id-map.js.map +1 -1
  446. package/dist/services/document-service/transform/id-map.mjs +16 -10
  447. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  448. package/dist/services/document-service/transform/id-transform.d.ts +4 -18
  449. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  450. package/dist/services/document-service/transform/id-transform.js +18 -12
  451. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  452. package/dist/services/document-service/transform/id-transform.mjs +18 -12
  453. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  454. package/dist/services/document-service/transform/populate.d.ts +5 -2
  455. package/dist/services/document-service/transform/populate.d.ts.map +1 -1
  456. package/dist/services/document-service/transform/populate.js +1 -1
  457. package/dist/services/document-service/transform/populate.js.map +1 -1
  458. package/dist/services/document-service/transform/populate.mjs +1 -1
  459. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  460. package/dist/services/document-service/transform/query.d.ts +5 -0
  461. package/dist/services/document-service/transform/query.d.ts.map +1 -0
  462. package/dist/services/document-service/transform/query.js +9 -0
  463. package/dist/services/document-service/transform/query.js.map +1 -0
  464. package/dist/services/document-service/transform/query.mjs +9 -0
  465. package/dist/services/document-service/transform/query.mjs.map +1 -0
  466. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +8 -7
  467. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  468. package/dist/services/document-service/transform/relations/extract/data-ids.js +43 -68
  469. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  470. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +43 -68
  471. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  472. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +9 -5
  473. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  474. package/dist/services/document-service/transform/relations/transform/data-ids.js +61 -105
  475. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  476. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +62 -106
  477. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  478. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts +9 -0
  479. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts.map +1 -0
  480. package/dist/services/document-service/transform/relations/transform/default-locale.js +32 -0
  481. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
  482. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +32 -0
  483. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
  484. package/dist/services/document-service/transform/relations/utils/dp.d.ts +10 -0
  485. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -0
  486. package/dist/services/document-service/transform/relations/utils/dp.js +30 -0
  487. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -0
  488. package/dist/services/document-service/transform/relations/utils/dp.mjs +30 -0
  489. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -0
  490. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +6 -6
  491. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  492. package/dist/services/document-service/transform/relations/utils/i18n.js +3 -9
  493. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  494. package/dist/services/document-service/transform/relations/utils/i18n.mjs +3 -9
  495. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  496. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts +6 -0
  497. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -0
  498. package/dist/services/document-service/transform/relations/utils/map-relation.js +87 -0
  499. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
  500. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +87 -0
  501. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
  502. package/dist/services/document-service/transform/relations/utils/types.d.ts +10 -1
  503. package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -1
  504. package/dist/services/document-service/transform/types.d.ts +4 -4
  505. package/dist/services/document-service/transform/types.d.ts.map +1 -1
  506. package/dist/services/document-service/utils/populate.d.ts +9 -2
  507. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  508. package/dist/services/document-service/utils/populate.js +5 -5
  509. package/dist/services/document-service/utils/populate.js.map +1 -1
  510. package/dist/services/document-service/utils/populate.mjs +5 -5
  511. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  512. package/dist/services/entity-service/index.d.ts +4 -6
  513. package/dist/services/entity-service/index.d.ts.map +1 -1
  514. package/dist/services/entity-service/index.js +44 -203
  515. package/dist/services/entity-service/index.js.map +1 -1
  516. package/dist/services/entity-service/index.mjs +38 -197
  517. package/dist/services/entity-service/index.mjs.map +1 -1
  518. package/dist/services/entity-validator/index.d.ts +2 -2
  519. package/dist/services/entity-validator/index.d.ts.map +1 -1
  520. package/dist/services/entity-validator/index.js +101 -90
  521. package/dist/services/entity-validator/index.js.map +1 -1
  522. package/dist/services/entity-validator/index.mjs +101 -90
  523. package/dist/services/entity-validator/index.mjs.map +1 -1
  524. package/dist/services/entity-validator/validators.d.ts +18 -18
  525. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  526. package/dist/services/entity-validator/validators.js +6 -1
  527. package/dist/services/entity-validator/validators.js.map +1 -1
  528. package/dist/services/entity-validator/validators.mjs +6 -1
  529. package/dist/services/entity-validator/validators.mjs.map +1 -1
  530. package/dist/services/features.d.ts +3 -3
  531. package/dist/services/features.d.ts.map +1 -1
  532. package/dist/services/features.js.map +1 -1
  533. package/dist/services/features.mjs.map +1 -1
  534. package/dist/services/fs.d.ts +2 -2
  535. package/dist/services/fs.d.ts.map +1 -1
  536. package/dist/services/fs.js.map +1 -1
  537. package/dist/services/fs.mjs.map +1 -1
  538. package/dist/services/metrics/admin-user-hash.d.ts +2 -2
  539. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  540. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  541. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  542. package/dist/services/metrics/index.d.ts +2 -2
  543. package/dist/services/metrics/index.d.ts.map +1 -1
  544. package/dist/services/metrics/index.js.map +1 -1
  545. package/dist/services/metrics/index.mjs.map +1 -1
  546. package/dist/services/metrics/middleware.d.ts +2 -2
  547. package/dist/services/metrics/middleware.d.ts.map +1 -1
  548. package/dist/services/metrics/middleware.js.map +1 -1
  549. package/dist/services/metrics/middleware.mjs.map +1 -1
  550. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  551. package/dist/services/metrics/rate-limiter.js.map +1 -1
  552. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  553. package/dist/services/metrics/sender.d.ts +3 -3
  554. package/dist/services/metrics/sender.d.ts.map +1 -1
  555. package/dist/services/metrics/sender.js.map +1 -1
  556. package/dist/services/metrics/sender.mjs.map +1 -1
  557. package/dist/services/query-params.d.ts +7 -0
  558. package/dist/services/query-params.d.ts.map +1 -0
  559. package/dist/services/query-params.js +12 -0
  560. package/dist/services/query-params.js.map +1 -0
  561. package/dist/services/query-params.mjs +13 -0
  562. package/dist/services/query-params.mjs.map +1 -0
  563. package/dist/services/reloader.d.ts +7 -0
  564. package/dist/services/reloader.d.ts.map +1 -0
  565. package/dist/services/reloader.js +36 -0
  566. package/dist/services/reloader.js.map +1 -0
  567. package/dist/services/reloader.mjs +36 -0
  568. package/dist/services/reloader.mjs.map +1 -0
  569. package/dist/services/server/admin-api.d.ts +3 -3
  570. package/dist/services/server/admin-api.d.ts.map +1 -1
  571. package/dist/services/server/admin-api.js.map +1 -1
  572. package/dist/services/server/admin-api.mjs.map +1 -1
  573. package/dist/services/server/api.d.ts +3 -3
  574. package/dist/services/server/api.d.ts.map +1 -1
  575. package/dist/services/server/api.js.map +1 -1
  576. package/dist/services/server/api.mjs.map +1 -1
  577. package/dist/services/server/compose-endpoint.d.ts +2 -2
  578. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  579. package/dist/services/server/compose-endpoint.js +1 -2
  580. package/dist/services/server/compose-endpoint.js.map +1 -1
  581. package/dist/services/server/compose-endpoint.mjs +2 -3
  582. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  583. package/dist/services/server/content-api.d.ts +3 -3
  584. package/dist/services/server/content-api.d.ts.map +1 -1
  585. package/dist/services/server/content-api.js.map +1 -1
  586. package/dist/services/server/content-api.mjs.map +1 -1
  587. package/dist/services/server/http-server.d.ts +2 -2
  588. package/dist/services/server/http-server.d.ts.map +1 -1
  589. package/dist/services/server/http-server.js.map +1 -1
  590. package/dist/services/server/http-server.mjs.map +1 -1
  591. package/dist/services/server/index.d.ts +2 -2
  592. package/dist/services/server/index.d.ts.map +1 -1
  593. package/dist/services/server/index.js +1 -2
  594. package/dist/services/server/index.js.map +1 -1
  595. package/dist/services/server/index.mjs +1 -2
  596. package/dist/services/server/index.mjs.map +1 -1
  597. package/dist/services/server/koa.d.ts.map +1 -1
  598. package/dist/services/server/koa.js +1 -1
  599. package/dist/services/server/koa.js.map +1 -1
  600. package/dist/services/server/koa.mjs +1 -1
  601. package/dist/services/server/koa.mjs.map +1 -1
  602. package/dist/services/server/middleware.d.ts +4 -4
  603. package/dist/services/server/middleware.d.ts.map +1 -1
  604. package/dist/services/server/middleware.js.map +1 -1
  605. package/dist/services/server/middleware.mjs.map +1 -1
  606. package/dist/services/server/policy.d.ts +3 -3
  607. package/dist/services/server/policy.d.ts.map +1 -1
  608. package/dist/services/server/policy.js +4 -4
  609. package/dist/services/server/policy.js.map +1 -1
  610. package/dist/services/server/policy.mjs +4 -4
  611. package/dist/services/server/policy.mjs.map +1 -1
  612. package/dist/services/server/register-middlewares.d.ts +2 -2
  613. package/dist/services/server/register-middlewares.d.ts.map +1 -1
  614. package/dist/services/server/register-middlewares.js.map +1 -1
  615. package/dist/services/server/register-middlewares.mjs.map +1 -1
  616. package/dist/services/server/register-routes.d.ts +2 -2
  617. package/dist/services/server/register-routes.d.ts.map +1 -1
  618. package/dist/services/server/register-routes.js +3 -3
  619. package/dist/services/server/register-routes.js.map +1 -1
  620. package/dist/services/server/register-routes.mjs +3 -3
  621. package/dist/services/server/register-routes.mjs.map +1 -1
  622. package/dist/services/server/routing.d.ts +5 -5
  623. package/dist/services/server/routing.d.ts.map +1 -1
  624. package/dist/services/server/routing.js.map +1 -1
  625. package/dist/services/server/routing.mjs.map +1 -1
  626. package/dist/services/utils/dynamic-zones.d.ts.map +1 -1
  627. package/dist/services/utils/dynamic-zones.js +2 -1
  628. package/dist/services/utils/dynamic-zones.js.map +1 -1
  629. package/dist/services/utils/dynamic-zones.mjs +2 -1
  630. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  631. package/dist/services/webhook-runner.js.map +1 -1
  632. package/dist/services/webhook-runner.mjs.map +1 -1
  633. package/dist/services/webhook-store.d.ts.map +1 -1
  634. package/dist/services/webhook-store.js +5 -6
  635. package/dist/services/webhook-store.js.map +1 -1
  636. package/dist/services/webhook-store.mjs +5 -6
  637. package/dist/services/webhook-store.mjs.map +1 -1
  638. package/dist/utils/convert-custom-field-type.d.ts +2 -2
  639. package/dist/utils/convert-custom-field-type.d.ts.map +1 -1
  640. package/dist/utils/convert-custom-field-type.js.map +1 -1
  641. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  642. package/dist/utils/fetch.d.ts +3 -3
  643. package/dist/utils/fetch.d.ts.map +1 -1
  644. package/dist/utils/fetch.js.map +1 -1
  645. package/dist/utils/fetch.mjs.map +1 -1
  646. package/dist/utils/index.d.ts +2 -1
  647. package/dist/utils/index.d.ts.map +1 -1
  648. package/dist/utils/is-initialized.d.ts +2 -2
  649. package/dist/utils/is-initialized.d.ts.map +1 -1
  650. package/dist/utils/is-initialized.js +1 -1
  651. package/dist/utils/is-initialized.js.map +1 -1
  652. package/dist/utils/is-initialized.mjs +1 -1
  653. package/dist/utils/is-initialized.mjs.map +1 -1
  654. package/dist/utils/load-config-file.js +1 -1
  655. package/dist/utils/load-config-file.js.map +1 -1
  656. package/dist/utils/load-config-file.mjs +2 -2
  657. package/dist/utils/load-config-file.mjs.map +1 -1
  658. package/dist/utils/load-files.d.ts.map +1 -1
  659. package/dist/utils/open-browser.d.ts +2 -2
  660. package/dist/utils/open-browser.d.ts.map +1 -1
  661. package/dist/utils/open-browser.js.map +1 -1
  662. package/dist/utils/open-browser.mjs.map +1 -1
  663. package/dist/utils/resolve-working-dirs.d.ts +19 -0
  664. package/dist/utils/resolve-working-dirs.d.ts.map +1 -0
  665. package/dist/utils/resolve-working-dirs.js +13 -0
  666. package/dist/utils/resolve-working-dirs.js.map +1 -0
  667. package/dist/utils/resolve-working-dirs.mjs +11 -0
  668. package/dist/utils/resolve-working-dirs.mjs.map +1 -0
  669. package/dist/utils/signals.d.ts +2 -2
  670. package/dist/utils/signals.d.ts.map +1 -1
  671. package/dist/utils/signals.js.map +1 -1
  672. package/dist/utils/signals.mjs.map +1 -1
  673. package/dist/utils/startup-logger.d.ts +2 -2
  674. package/dist/utils/startup-logger.d.ts.map +1 -1
  675. package/dist/utils/startup-logger.js.map +1 -1
  676. package/dist/utils/startup-logger.mjs.map +1 -1
  677. package/dist/utils/transform-content-types-to-models.d.ts +54 -99
  678. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  679. package/dist/utils/transform-content-types-to-models.js +95 -57
  680. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  681. package/dist/utils/transform-content-types-to-models.mjs +95 -57
  682. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  683. package/dist/utils/update-notifier/index.d.ts +2 -7
  684. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  685. package/dist/utils/update-notifier/index.js +11 -14
  686. package/dist/utils/update-notifier/index.js.map +1 -1
  687. package/dist/utils/update-notifier/index.mjs +11 -14
  688. package/dist/utils/update-notifier/index.mjs.map +1 -1
  689. package/package.json +29 -27
  690. package/dist/registries/config.d.ts +0 -4
  691. package/dist/registries/config.d.ts.map +0 -1
  692. package/dist/registries/config.js +0 -23
  693. package/dist/registries/config.js.map +0 -1
  694. package/dist/registries/config.mjs +0 -22
  695. package/dist/registries/config.mjs.map +0 -1
  696. package/dist/services/document-service/document-engine.d.ts +0 -8
  697. package/dist/services/document-service/document-engine.d.ts.map +0 -1
  698. package/dist/services/document-service/document-engine.js +0 -241
  699. package/dist/services/document-service/document-engine.js.map +0 -1
  700. package/dist/services/document-service/document-engine.mjs +0 -242
  701. package/dist/services/document-service/document-engine.mjs.map +0 -1
  702. package/dist/services/document-service/middlewares.d.ts +0 -8
  703. package/dist/services/document-service/middlewares.d.ts.map +0 -1
  704. package/dist/services/document-service/middlewares.js.map +0 -1
  705. package/dist/services/document-service/middlewares.mjs.map +0 -1
  706. package/dist/services/document-service/repositories/content-type.d.ts +0 -3
  707. package/dist/services/document-service/repositories/content-type.d.ts.map +0 -1
  708. package/dist/services/document-service/repositories/content-type.js +0 -139
  709. package/dist/services/document-service/repositories/content-type.js.map +0 -1
  710. package/dist/services/document-service/repositories/content-type.mjs +0 -139
  711. package/dist/services/document-service/repositories/content-type.mjs.map +0 -1
  712. package/dist/services/document-service/transform/filters.d.ts +0 -3
  713. package/dist/services/document-service/transform/filters.d.ts.map +0 -1
  714. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +0 -4
  715. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +0 -1
  716. package/dist/services/document-service/transform/relations/utils/data.js +0 -12
  717. package/dist/services/document-service/transform/relations/utils/data.js.map +0 -1
  718. package/dist/services/document-service/transform/relations/utils/data.mjs +0 -12
  719. package/dist/services/document-service/transform/relations/utils/data.mjs.map +0 -1
  720. package/dist/services/document-service/transform/sort.d.ts +0 -5
  721. package/dist/services/document-service/transform/sort.d.ts.map +0 -1
  722. package/dist/services/document-service/transform/utils.d.ts +0 -9
  723. package/dist/services/document-service/transform/utils.d.ts.map +0 -1
  724. package/dist/services/entity-service/attributes/index.d.ts +0 -6
  725. package/dist/services/entity-service/attributes/index.d.ts.map +0 -1
  726. package/dist/services/entity-service/attributes/index.js.map +0 -1
  727. package/dist/services/entity-service/attributes/index.mjs.map +0 -1
  728. package/dist/services/entity-service/attributes/transforms.d.ts +0 -10
  729. package/dist/services/entity-service/attributes/transforms.d.ts.map +0 -1
  730. package/dist/services/entity-service/attributes/transforms.js.map +0 -1
  731. package/dist/services/entity-service/attributes/transforms.mjs.map +0 -1
  732. package/dist/services/entity-service/components.d.ts +0 -23
  733. package/dist/services/entity-service/components.d.ts.map +0 -1
  734. package/dist/services/entity-service/components.js.map +0 -1
  735. package/dist/services/entity-service/components.mjs.map +0 -1
  736. package/dist/services/entity-service/params.d.ts +0 -8
  737. package/dist/services/entity-service/params.d.ts.map +0 -1
  738. package/dist/services/entity-service/params.js.map +0 -1
  739. package/dist/services/entity-service/params.mjs.map +0 -1
  740. package/dist/services/utils/upload-files.d.ts +0 -8
  741. package/dist/services/utils/upload-files.d.ts.map +0 -1
  742. package/dist/services/utils/upload-files.js +0 -64
  743. package/dist/services/utils/upload-files.js.map +0 -1
  744. package/dist/services/utils/upload-files.mjs +0 -63
  745. package/dist/services/utils/upload-files.mjs.map +0 -1
  746. package/dist/utils/get-dirs.d.ts +0 -9
  747. package/dist/utils/get-dirs.d.ts.map +0 -1
  748. package/dist/utils/get-dirs.js.map +0 -1
  749. package/dist/utils/get-dirs.mjs.map +0 -1
  750. /package/dist/services/{entity-service → document-service}/attributes/transforms.js +0 -0
  751. /package/dist/services/{entity-service → document-service}/attributes/transforms.mjs +0 -0
package/dist/factories.js CHANGED
@@ -8,7 +8,9 @@ const symbols = {
8
8
  CustomController: Symbol("StrapiCustomCoreController")
9
9
  };
10
10
  const createCoreController = (uid, cfg) => {
11
- return ({ strapi: strapi2 }) => {
11
+ return ({
12
+ strapi: strapi2
13
+ }) => {
12
14
  const baseController = index.createController({ contentType: strapi2.contentType(uid) });
13
15
  const userCtrl = typeof cfg === "function" ? cfg({ strapi: strapi2 }) : cfg ?? {};
14
16
  for (const methodName of Object.keys(baseController)) {
@@ -29,7 +31,9 @@ const createCoreController = (uid, cfg) => {
29
31
  };
30
32
  };
31
33
  function createCoreService(uid, cfg) {
32
- return ({ strapi: strapi2 }) => {
34
+ return ({
35
+ strapi: strapi2
36
+ }) => {
33
37
  const baseService = index$1.createService({ contentType: strapi2.contentType(uid) });
34
38
  const userService = typeof cfg === "function" ? cfg({ strapi: strapi2 }) : cfg ?? {};
35
39
  for (const methodName of Object.keys(baseService)) {
@@ -1 +1 @@
1
- {"version":3,"file":"factories.js","sources":["../src/factories.ts"],"sourcesContent":["import { pipe, omit, pick } from 'lodash/fp';\nimport type { Strapi, Common, CoreApi, Utils } from '@strapi/types';\n\nimport { createController } from './core-api/controller';\nimport { createService } from './core-api/service';\nimport { createRoutes } from './core-api/routes';\n\nconst symbols = {\n CustomController: Symbol('StrapiCustomCoreController'),\n} as const;\n\ntype WithStrapiCallback<T> = T | (<S extends { strapi: Strapi }>(params: S) => T);\n\nconst createCoreController = <\n TUID extends Common.UID.ContentType,\n TController extends CoreApi.Controller.Extendable<TUID>\n>(\n uid: TUID,\n cfg?: WithStrapiCallback<Utils.PartialWithThis<CoreApi.Controller.Extendable<TUID> & TController>>\n) => {\n return ({ strapi }: { strapi: Strapi }): TController & CoreApi.Controller.ContentType<TUID> => {\n const baseController = createController({ contentType: strapi.contentType(uid) });\n\n const userCtrl = typeof cfg === 'function' ? cfg({ strapi }) : cfg ?? ({} as any);\n\n for (const methodName of Object.keys(baseController) as Array<keyof typeof baseController>) {\n if (userCtrl[methodName] === undefined) {\n userCtrl[methodName] = baseController[methodName];\n }\n }\n\n Object.setPrototypeOf(userCtrl, baseController);\n\n const isCustom = typeof cfg !== 'undefined';\n if (isCustom) {\n Object.defineProperty(userCtrl, symbols.CustomController, {\n writable: false,\n configurable: false,\n enumerable: false,\n });\n }\n\n return userCtrl;\n };\n};\n\nfunction createCoreService<\n TUID extends Common.UID.ContentType,\n TService extends CoreApi.Service.Extendable<TUID>\n>(\n uid: TUID,\n cfg?: WithStrapiCallback<Utils.PartialWithThis<CoreApi.Service.Extendable<TUID> & TService>>\n) {\n return ({ strapi }: { strapi: Strapi }): TService & CoreApi.Service.ContentType<TUID> => {\n const baseService = createService({ contentType: strapi.contentType(uid) });\n\n const userService = typeof cfg === 'function' ? cfg({ strapi }) : cfg ?? ({} as any);\n\n for (const methodName of Object.keys(baseService) as Array<keyof typeof baseService>) {\n if (userService[methodName] === undefined) {\n userService[methodName] = baseService[methodName];\n }\n }\n\n Object.setPrototypeOf(userService, baseService);\n return userService;\n };\n}\n\nfunction createCoreRouter<T extends Common.UID.ContentType>(\n uid: T,\n cfg?: CoreApi.Router.RouterConfig<T>\n): CoreApi.Router.Router {\n const { prefix, config = {}, only, except, type = 'content-api' } = cfg ?? {};\n let routes: CoreApi.Router.Route[];\n\n return {\n type,\n prefix,\n get routes() {\n if (!routes) {\n const contentType = strapi.contentType(uid);\n\n const defaultRoutes = createRoutes({ contentType });\n const keys = Object.keys(defaultRoutes) as Array<keyof typeof defaultRoutes>;\n\n keys.forEach((routeName) => {\n const defaultRoute = defaultRoutes[routeName];\n\n Object.assign(defaultRoute.config, config[routeName] || {});\n });\n\n const selectedRoutes = pipe(\n (routes) => (except ? omit(except, routes) : routes),\n (routes) => (only ? pick(only, routes) : routes)\n )(defaultRoutes);\n\n routes = Object.values(selectedRoutes);\n }\n\n return routes;\n },\n };\n}\n\nconst isCustomController = <T extends Common.Controller>(controller: T): boolean => {\n return symbols.CustomController in controller;\n};\n\nexport { createCoreController, createCoreService, createCoreRouter, isCustomController };\n"],"names":["strapi","createController","createService","createRoutes","pipe","routes","omit","pick"],"mappings":";;;;;;AAOA,MAAM,UAAU;AAAA,EACd,kBAAkB,OAAO,4BAA4B;AACvD;AAIM,MAAA,uBAAuB,CAI3B,KACA,QACG;AACH,SAAO,CAAC,EAAE,QAAAA,cAAqF;AACvF,UAAA,iBAAiBC,uBAAiB,EAAE,aAAaD,QAAO,YAAY,GAAG,GAAG;AAE1E,UAAA,WAAW,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAQ,CAAA,IAAI,OAAQ;AAEvE,eAAW,cAAc,OAAO,KAAK,cAAc,GAAyC;AACtF,UAAA,SAAS,UAAU,MAAM,QAAW;AAC7B,iBAAA,UAAU,IAAI,eAAe,UAAU;AAAA,MAClD;AAAA,IACF;AAEO,WAAA,eAAe,UAAU,cAAc;AAExC,UAAA,WAAW,OAAO,QAAQ;AAChC,QAAI,UAAU;AACL,aAAA,eAAe,UAAU,QAAQ,kBAAkB;AAAA,QACxD,UAAU;AAAA,QACV,cAAc;AAAA,QACd,YAAY;AAAA,MAAA,CACb;AAAA,IACH;AAEO,WAAA;AAAA,EAAA;AAEX;AAEA,SAAS,kBAIP,KACA,KACA;AACA,SAAO,CAAC,EAAE,QAAAA,cAA+E;AACjF,UAAA,cAAcE,sBAAc,EAAE,aAAaF,QAAO,YAAY,GAAG,GAAG;AAEpE,UAAA,cAAc,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAQ,CAAA,IAAI,OAAQ;AAE1E,eAAW,cAAc,OAAO,KAAK,WAAW,GAAsC;AAChF,UAAA,YAAY,UAAU,MAAM,QAAW;AAC7B,oBAAA,UAAU,IAAI,YAAY,UAAU;AAAA,MAClD;AAAA,IACF;AAEO,WAAA,eAAe,aAAa,WAAW;AACvC,WAAA;AAAA,EAAA;AAEX;AAEA,SAAS,iBACP,KACA,KACuB;AACjB,QAAA,EAAE,QAAQ,SAAS,CAAA,GAAI,MAAM,QAAQ,OAAO,cAAA,IAAkB,OAAO;AACvE,MAAA;AAEG,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA,IAAI,SAAS;AACX,UAAI,CAAC,QAAQ;AACL,cAAA,cAAc,OAAO,YAAY,GAAG;AAE1C,cAAM,gBAAgBG,QAAAA,aAAa,EAAE,YAAa,CAAA;AAC5C,cAAA,OAAO,OAAO,KAAK,aAAa;AAEjC,aAAA,QAAQ,CAAC,cAAc;AACpB,gBAAA,eAAe,cAAc,SAAS;AAE5C,iBAAO,OAAO,aAAa,QAAQ,OAAO,SAAS,KAAK,CAAA,CAAE;AAAA,QAAA,CAC3D;AAED,cAAM,iBAAiBC,EAAA;AAAA,UACrB,CAACC,YAAY,SAASC,EAAAA,KAAK,QAAQD,OAAM,IAAIA;AAAAA,UAC7C,CAACA,YAAY,OAAOE,EAAAA,KAAK,MAAMF,OAAM,IAAIA;AAAAA,UACzC,aAAa;AAEN,iBAAA,OAAO,OAAO,cAAc;AAAA,MACvC;AAEO,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;AAEM,MAAA,qBAAqB,CAA8B,eAA2B;AAClF,SAAO,QAAQ,oBAAoB;AACrC;;;;;"}
1
+ {"version":3,"file":"factories.js","sources":["../src/factories.ts"],"sourcesContent":["import { pipe, omit, pick } from 'lodash/fp';\nimport type { Core, UID, Utils } from '@strapi/types';\n\nimport { createController } from './core-api/controller';\nimport { createService } from './core-api/service';\nimport { createRoutes } from './core-api/routes';\n\nconst symbols = {\n CustomController: Symbol('StrapiCustomCoreController'),\n} as const;\n\ntype WithStrapiCallback<T> = T | (<S extends { strapi: Core.Strapi }>(params: S) => T);\n\nconst createCoreController = <\n TUID extends UID.ContentType,\n TController extends Core.CoreAPI.Controller.Extendable<TUID>,\n>(\n uid: TUID,\n cfg?: WithStrapiCallback<\n Utils.PartialWithThis<Core.CoreAPI.Controller.Extendable<TUID> & TController>\n >\n) => {\n return ({\n strapi,\n }: {\n strapi: Core.Strapi;\n }): TController & Core.CoreAPI.Controller.ContentType<TUID> => {\n const baseController = createController({ contentType: strapi.contentType(uid) });\n\n const userCtrl = typeof cfg === 'function' ? cfg({ strapi }) : cfg ?? ({} as any);\n\n for (const methodName of Object.keys(baseController) as Array<keyof typeof baseController>) {\n if (userCtrl[methodName] === undefined) {\n userCtrl[methodName] = baseController[methodName];\n }\n }\n\n Object.setPrototypeOf(userCtrl, baseController);\n\n const isCustom = typeof cfg !== 'undefined';\n if (isCustom) {\n Object.defineProperty(userCtrl, symbols.CustomController, {\n writable: false,\n configurable: false,\n enumerable: false,\n });\n }\n\n return userCtrl;\n };\n};\n\nfunction createCoreService<\n TUID extends UID.ContentType,\n TService extends Core.CoreAPI.Service.Extendable<TUID>,\n>(\n uid: TUID,\n cfg?: WithStrapiCallback<Utils.PartialWithThis<Core.CoreAPI.Service.Extendable<TUID> & TService>>\n) {\n return ({\n strapi,\n }: {\n strapi: Core.Strapi;\n }): TService & Core.CoreAPI.Service.ContentType<TUID> => {\n const baseService = createService({ contentType: strapi.contentType(uid) });\n\n const userService = typeof cfg === 'function' ? cfg({ strapi }) : cfg ?? ({} as any);\n\n for (const methodName of Object.keys(baseService) as Array<keyof typeof baseService>) {\n if (userService[methodName] === undefined) {\n userService[methodName] = baseService[methodName];\n }\n }\n\n Object.setPrototypeOf(userService, baseService);\n return userService;\n };\n}\n\nfunction createCoreRouter<T extends UID.ContentType>(\n uid: T,\n cfg?: Core.CoreAPI.Router.RouterConfig<T>\n): Core.CoreAPI.Router.Router {\n const { prefix, config = {}, only, except, type = 'content-api' } = cfg ?? {};\n let routes: Core.CoreAPI.Router.Route[];\n\n return {\n type,\n prefix,\n get routes() {\n if (!routes) {\n const contentType = strapi.contentType(uid);\n\n const defaultRoutes = createRoutes({ contentType });\n const keys = Object.keys(defaultRoutes) as Array<keyof typeof defaultRoutes>;\n\n keys.forEach((routeName) => {\n const defaultRoute = defaultRoutes[routeName];\n\n Object.assign(defaultRoute.config, config[routeName] || {});\n });\n\n const selectedRoutes = pipe(\n (routes) => (except ? omit(except, routes) : routes),\n (routes) => (only ? pick(only, routes) : routes)\n )(defaultRoutes);\n\n routes = Object.values(selectedRoutes);\n }\n\n return routes;\n },\n };\n}\n\nconst isCustomController = <T extends Core.Controller>(controller: T): boolean => {\n return symbols.CustomController in controller;\n};\n\nexport { createCoreController, createCoreService, createCoreRouter, isCustomController };\n"],"names":["strapi","createController","createService","createRoutes","pipe","routes","omit","pick"],"mappings":";;;;;;AAOA,MAAM,UAAU;AAAA,EACd,kBAAkB,OAAO,4BAA4B;AACvD;AAIM,MAAA,uBAAuB,CAI3B,KACA,QAGG;AACH,SAAO,CAAC;AAAA,IACN,QAAAA;AAAAA,EAAA,MAG6D;AACvD,UAAA,iBAAiBC,uBAAiB,EAAE,aAAaD,QAAO,YAAY,GAAG,GAAG;AAE1E,UAAA,WAAW,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAQ,CAAA,IAAI,OAAQ;AAEvE,eAAW,cAAc,OAAO,KAAK,cAAc,GAAyC;AACtF,UAAA,SAAS,UAAU,MAAM,QAAW;AAC7B,iBAAA,UAAU,IAAI,eAAe,UAAU;AAAA,MAClD;AAAA,IACF;AAEO,WAAA,eAAe,UAAU,cAAc;AAExC,UAAA,WAAW,OAAO,QAAQ;AAChC,QAAI,UAAU;AACL,aAAA,eAAe,UAAU,QAAQ,kBAAkB;AAAA,QACxD,UAAU;AAAA,QACV,cAAc;AAAA,QACd,YAAY;AAAA,MAAA,CACb;AAAA,IACH;AAEO,WAAA;AAAA,EAAA;AAEX;AAEA,SAAS,kBAIP,KACA,KACA;AACA,SAAO,CAAC;AAAA,IACN,QAAAA;AAAAA,EAAA,MAGuD;AACjD,UAAA,cAAcE,sBAAc,EAAE,aAAaF,QAAO,YAAY,GAAG,GAAG;AAEpE,UAAA,cAAc,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAQ,CAAA,IAAI,OAAQ;AAE1E,eAAW,cAAc,OAAO,KAAK,WAAW,GAAsC;AAChF,UAAA,YAAY,UAAU,MAAM,QAAW;AAC7B,oBAAA,UAAU,IAAI,YAAY,UAAU;AAAA,MAClD;AAAA,IACF;AAEO,WAAA,eAAe,aAAa,WAAW;AACvC,WAAA;AAAA,EAAA;AAEX;AAEA,SAAS,iBACP,KACA,KAC4B;AACtB,QAAA,EAAE,QAAQ,SAAS,CAAA,GAAI,MAAM,QAAQ,OAAO,cAAA,IAAkB,OAAO;AACvE,MAAA;AAEG,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA,IAAI,SAAS;AACX,UAAI,CAAC,QAAQ;AACL,cAAA,cAAc,OAAO,YAAY,GAAG;AAE1C,cAAM,gBAAgBG,QAAAA,aAAa,EAAE,YAAa,CAAA;AAC5C,cAAA,OAAO,OAAO,KAAK,aAAa;AAEjC,aAAA,QAAQ,CAAC,cAAc;AACpB,gBAAA,eAAe,cAAc,SAAS;AAE5C,iBAAO,OAAO,aAAa,QAAQ,OAAO,SAAS,KAAK,CAAA,CAAE;AAAA,QAAA,CAC3D;AAED,cAAM,iBAAiBC,EAAA;AAAA,UACrB,CAACC,YAAY,SAASC,EAAAA,KAAK,QAAQD,OAAM,IAAIA;AAAAA,UAC7C,CAACA,YAAY,OAAOE,EAAAA,KAAK,MAAMF,OAAM,IAAIA;AAAAA,UACzC,aAAa;AAEN,iBAAA,OAAO,OAAO,cAAc;AAAA,MACvC;AAEO,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;AAEM,MAAA,qBAAqB,CAA4B,eAA2B;AAChF,SAAO,QAAQ,oBAAoB;AACrC;;;;;"}
@@ -6,7 +6,9 @@ const symbols = {
6
6
  CustomController: Symbol("StrapiCustomCoreController")
7
7
  };
8
8
  const createCoreController = (uid, cfg) => {
9
- return ({ strapi: strapi2 }) => {
9
+ return ({
10
+ strapi: strapi2
11
+ }) => {
10
12
  const baseController = createController({ contentType: strapi2.contentType(uid) });
11
13
  const userCtrl = typeof cfg === "function" ? cfg({ strapi: strapi2 }) : cfg ?? {};
12
14
  for (const methodName of Object.keys(baseController)) {
@@ -27,7 +29,9 @@ const createCoreController = (uid, cfg) => {
27
29
  };
28
30
  };
29
31
  function createCoreService(uid, cfg) {
30
- return ({ strapi: strapi2 }) => {
32
+ return ({
33
+ strapi: strapi2
34
+ }) => {
31
35
  const baseService = createService({ contentType: strapi2.contentType(uid) });
32
36
  const userService = typeof cfg === "function" ? cfg({ strapi: strapi2 }) : cfg ?? {};
33
37
  for (const methodName of Object.keys(baseService)) {
@@ -1 +1 @@
1
- {"version":3,"file":"factories.mjs","sources":["../src/factories.ts"],"sourcesContent":["import { pipe, omit, pick } from 'lodash/fp';\nimport type { Strapi, Common, CoreApi, Utils } from '@strapi/types';\n\nimport { createController } from './core-api/controller';\nimport { createService } from './core-api/service';\nimport { createRoutes } from './core-api/routes';\n\nconst symbols = {\n CustomController: Symbol('StrapiCustomCoreController'),\n} as const;\n\ntype WithStrapiCallback<T> = T | (<S extends { strapi: Strapi }>(params: S) => T);\n\nconst createCoreController = <\n TUID extends Common.UID.ContentType,\n TController extends CoreApi.Controller.Extendable<TUID>\n>(\n uid: TUID,\n cfg?: WithStrapiCallback<Utils.PartialWithThis<CoreApi.Controller.Extendable<TUID> & TController>>\n) => {\n return ({ strapi }: { strapi: Strapi }): TController & CoreApi.Controller.ContentType<TUID> => {\n const baseController = createController({ contentType: strapi.contentType(uid) });\n\n const userCtrl = typeof cfg === 'function' ? cfg({ strapi }) : cfg ?? ({} as any);\n\n for (const methodName of Object.keys(baseController) as Array<keyof typeof baseController>) {\n if (userCtrl[methodName] === undefined) {\n userCtrl[methodName] = baseController[methodName];\n }\n }\n\n Object.setPrototypeOf(userCtrl, baseController);\n\n const isCustom = typeof cfg !== 'undefined';\n if (isCustom) {\n Object.defineProperty(userCtrl, symbols.CustomController, {\n writable: false,\n configurable: false,\n enumerable: false,\n });\n }\n\n return userCtrl;\n };\n};\n\nfunction createCoreService<\n TUID extends Common.UID.ContentType,\n TService extends CoreApi.Service.Extendable<TUID>\n>(\n uid: TUID,\n cfg?: WithStrapiCallback<Utils.PartialWithThis<CoreApi.Service.Extendable<TUID> & TService>>\n) {\n return ({ strapi }: { strapi: Strapi }): TService & CoreApi.Service.ContentType<TUID> => {\n const baseService = createService({ contentType: strapi.contentType(uid) });\n\n const userService = typeof cfg === 'function' ? cfg({ strapi }) : cfg ?? ({} as any);\n\n for (const methodName of Object.keys(baseService) as Array<keyof typeof baseService>) {\n if (userService[methodName] === undefined) {\n userService[methodName] = baseService[methodName];\n }\n }\n\n Object.setPrototypeOf(userService, baseService);\n return userService;\n };\n}\n\nfunction createCoreRouter<T extends Common.UID.ContentType>(\n uid: T,\n cfg?: CoreApi.Router.RouterConfig<T>\n): CoreApi.Router.Router {\n const { prefix, config = {}, only, except, type = 'content-api' } = cfg ?? {};\n let routes: CoreApi.Router.Route[];\n\n return {\n type,\n prefix,\n get routes() {\n if (!routes) {\n const contentType = strapi.contentType(uid);\n\n const defaultRoutes = createRoutes({ contentType });\n const keys = Object.keys(defaultRoutes) as Array<keyof typeof defaultRoutes>;\n\n keys.forEach((routeName) => {\n const defaultRoute = defaultRoutes[routeName];\n\n Object.assign(defaultRoute.config, config[routeName] || {});\n });\n\n const selectedRoutes = pipe(\n (routes) => (except ? omit(except, routes) : routes),\n (routes) => (only ? pick(only, routes) : routes)\n )(defaultRoutes);\n\n routes = Object.values(selectedRoutes);\n }\n\n return routes;\n },\n };\n}\n\nconst isCustomController = <T extends Common.Controller>(controller: T): boolean => {\n return symbols.CustomController in controller;\n};\n\nexport { createCoreController, createCoreService, createCoreRouter, isCustomController };\n"],"names":["strapi","routes"],"mappings":";;;;AAOA,MAAM,UAAU;AAAA,EACd,kBAAkB,OAAO,4BAA4B;AACvD;AAIM,MAAA,uBAAuB,CAI3B,KACA,QACG;AACH,SAAO,CAAC,EAAE,QAAAA,cAAqF;AACvF,UAAA,iBAAiB,iBAAiB,EAAE,aAAaA,QAAO,YAAY,GAAG,GAAG;AAE1E,UAAA,WAAW,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAQ,CAAA,IAAI,OAAQ;AAEvE,eAAW,cAAc,OAAO,KAAK,cAAc,GAAyC;AACtF,UAAA,SAAS,UAAU,MAAM,QAAW;AAC7B,iBAAA,UAAU,IAAI,eAAe,UAAU;AAAA,MAClD;AAAA,IACF;AAEO,WAAA,eAAe,UAAU,cAAc;AAExC,UAAA,WAAW,OAAO,QAAQ;AAChC,QAAI,UAAU;AACL,aAAA,eAAe,UAAU,QAAQ,kBAAkB;AAAA,QACxD,UAAU;AAAA,QACV,cAAc;AAAA,QACd,YAAY;AAAA,MAAA,CACb;AAAA,IACH;AAEO,WAAA;AAAA,EAAA;AAEX;AAEA,SAAS,kBAIP,KACA,KACA;AACA,SAAO,CAAC,EAAE,QAAAA,cAA+E;AACjF,UAAA,cAAc,cAAc,EAAE,aAAaA,QAAO,YAAY,GAAG,GAAG;AAEpE,UAAA,cAAc,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAQ,CAAA,IAAI,OAAQ;AAE1E,eAAW,cAAc,OAAO,KAAK,WAAW,GAAsC;AAChF,UAAA,YAAY,UAAU,MAAM,QAAW;AAC7B,oBAAA,UAAU,IAAI,YAAY,UAAU;AAAA,MAClD;AAAA,IACF;AAEO,WAAA,eAAe,aAAa,WAAW;AACvC,WAAA;AAAA,EAAA;AAEX;AAEA,SAAS,iBACP,KACA,KACuB;AACjB,QAAA,EAAE,QAAQ,SAAS,CAAA,GAAI,MAAM,QAAQ,OAAO,cAAA,IAAkB,OAAO;AACvE,MAAA;AAEG,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA,IAAI,SAAS;AACX,UAAI,CAAC,QAAQ;AACL,cAAA,cAAc,OAAO,YAAY,GAAG;AAE1C,cAAM,gBAAgB,aAAa,EAAE,YAAa,CAAA;AAC5C,cAAA,OAAO,OAAO,KAAK,aAAa;AAEjC,aAAA,QAAQ,CAAC,cAAc;AACpB,gBAAA,eAAe,cAAc,SAAS;AAE5C,iBAAO,OAAO,aAAa,QAAQ,OAAO,SAAS,KAAK,CAAA,CAAE;AAAA,QAAA,CAC3D;AAED,cAAM,iBAAiB;AAAA,UACrB,CAACC,YAAY,SAAS,KAAK,QAAQA,OAAM,IAAIA;AAAAA,UAC7C,CAACA,YAAY,OAAO,KAAK,MAAMA,OAAM,IAAIA;AAAAA,UACzC,aAAa;AAEN,iBAAA,OAAO,OAAO,cAAc;AAAA,MACvC;AAEO,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;AAEM,MAAA,qBAAqB,CAA8B,eAA2B;AAClF,SAAO,QAAQ,oBAAoB;AACrC;"}
1
+ {"version":3,"file":"factories.mjs","sources":["../src/factories.ts"],"sourcesContent":["import { pipe, omit, pick } from 'lodash/fp';\nimport type { Core, UID, Utils } from '@strapi/types';\n\nimport { createController } from './core-api/controller';\nimport { createService } from './core-api/service';\nimport { createRoutes } from './core-api/routes';\n\nconst symbols = {\n CustomController: Symbol('StrapiCustomCoreController'),\n} as const;\n\ntype WithStrapiCallback<T> = T | (<S extends { strapi: Core.Strapi }>(params: S) => T);\n\nconst createCoreController = <\n TUID extends UID.ContentType,\n TController extends Core.CoreAPI.Controller.Extendable<TUID>,\n>(\n uid: TUID,\n cfg?: WithStrapiCallback<\n Utils.PartialWithThis<Core.CoreAPI.Controller.Extendable<TUID> & TController>\n >\n) => {\n return ({\n strapi,\n }: {\n strapi: Core.Strapi;\n }): TController & Core.CoreAPI.Controller.ContentType<TUID> => {\n const baseController = createController({ contentType: strapi.contentType(uid) });\n\n const userCtrl = typeof cfg === 'function' ? cfg({ strapi }) : cfg ?? ({} as any);\n\n for (const methodName of Object.keys(baseController) as Array<keyof typeof baseController>) {\n if (userCtrl[methodName] === undefined) {\n userCtrl[methodName] = baseController[methodName];\n }\n }\n\n Object.setPrototypeOf(userCtrl, baseController);\n\n const isCustom = typeof cfg !== 'undefined';\n if (isCustom) {\n Object.defineProperty(userCtrl, symbols.CustomController, {\n writable: false,\n configurable: false,\n enumerable: false,\n });\n }\n\n return userCtrl;\n };\n};\n\nfunction createCoreService<\n TUID extends UID.ContentType,\n TService extends Core.CoreAPI.Service.Extendable<TUID>,\n>(\n uid: TUID,\n cfg?: WithStrapiCallback<Utils.PartialWithThis<Core.CoreAPI.Service.Extendable<TUID> & TService>>\n) {\n return ({\n strapi,\n }: {\n strapi: Core.Strapi;\n }): TService & Core.CoreAPI.Service.ContentType<TUID> => {\n const baseService = createService({ contentType: strapi.contentType(uid) });\n\n const userService = typeof cfg === 'function' ? cfg({ strapi }) : cfg ?? ({} as any);\n\n for (const methodName of Object.keys(baseService) as Array<keyof typeof baseService>) {\n if (userService[methodName] === undefined) {\n userService[methodName] = baseService[methodName];\n }\n }\n\n Object.setPrototypeOf(userService, baseService);\n return userService;\n };\n}\n\nfunction createCoreRouter<T extends UID.ContentType>(\n uid: T,\n cfg?: Core.CoreAPI.Router.RouterConfig<T>\n): Core.CoreAPI.Router.Router {\n const { prefix, config = {}, only, except, type = 'content-api' } = cfg ?? {};\n let routes: Core.CoreAPI.Router.Route[];\n\n return {\n type,\n prefix,\n get routes() {\n if (!routes) {\n const contentType = strapi.contentType(uid);\n\n const defaultRoutes = createRoutes({ contentType });\n const keys = Object.keys(defaultRoutes) as Array<keyof typeof defaultRoutes>;\n\n keys.forEach((routeName) => {\n const defaultRoute = defaultRoutes[routeName];\n\n Object.assign(defaultRoute.config, config[routeName] || {});\n });\n\n const selectedRoutes = pipe(\n (routes) => (except ? omit(except, routes) : routes),\n (routes) => (only ? pick(only, routes) : routes)\n )(defaultRoutes);\n\n routes = Object.values(selectedRoutes);\n }\n\n return routes;\n },\n };\n}\n\nconst isCustomController = <T extends Core.Controller>(controller: T): boolean => {\n return symbols.CustomController in controller;\n};\n\nexport { createCoreController, createCoreService, createCoreRouter, isCustomController };\n"],"names":["strapi","routes"],"mappings":";;;;AAOA,MAAM,UAAU;AAAA,EACd,kBAAkB,OAAO,4BAA4B;AACvD;AAIM,MAAA,uBAAuB,CAI3B,KACA,QAGG;AACH,SAAO,CAAC;AAAA,IACN,QAAAA;AAAAA,EAAA,MAG6D;AACvD,UAAA,iBAAiB,iBAAiB,EAAE,aAAaA,QAAO,YAAY,GAAG,GAAG;AAE1E,UAAA,WAAW,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAQ,CAAA,IAAI,OAAQ;AAEvE,eAAW,cAAc,OAAO,KAAK,cAAc,GAAyC;AACtF,UAAA,SAAS,UAAU,MAAM,QAAW;AAC7B,iBAAA,UAAU,IAAI,eAAe,UAAU;AAAA,MAClD;AAAA,IACF;AAEO,WAAA,eAAe,UAAU,cAAc;AAExC,UAAA,WAAW,OAAO,QAAQ;AAChC,QAAI,UAAU;AACL,aAAA,eAAe,UAAU,QAAQ,kBAAkB;AAAA,QACxD,UAAU;AAAA,QACV,cAAc;AAAA,QACd,YAAY;AAAA,MAAA,CACb;AAAA,IACH;AAEO,WAAA;AAAA,EAAA;AAEX;AAEA,SAAS,kBAIP,KACA,KACA;AACA,SAAO,CAAC;AAAA,IACN,QAAAA;AAAAA,EAAA,MAGuD;AACjD,UAAA,cAAc,cAAc,EAAE,aAAaA,QAAO,YAAY,GAAG,GAAG;AAEpE,UAAA,cAAc,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAQ,CAAA,IAAI,OAAQ;AAE1E,eAAW,cAAc,OAAO,KAAK,WAAW,GAAsC;AAChF,UAAA,YAAY,UAAU,MAAM,QAAW;AAC7B,oBAAA,UAAU,IAAI,YAAY,UAAU;AAAA,MAClD;AAAA,IACF;AAEO,WAAA,eAAe,aAAa,WAAW;AACvC,WAAA;AAAA,EAAA;AAEX;AAEA,SAAS,iBACP,KACA,KAC4B;AACtB,QAAA,EAAE,QAAQ,SAAS,CAAA,GAAI,MAAM,QAAQ,OAAO,cAAA,IAAkB,OAAO;AACvE,MAAA;AAEG,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA,IAAI,SAAS;AACX,UAAI,CAAC,QAAQ;AACL,cAAA,cAAc,OAAO,YAAY,GAAG;AAE1C,cAAM,gBAAgB,aAAa,EAAE,YAAa,CAAA;AAC5C,cAAA,OAAO,OAAO,KAAK,aAAa;AAEjC,aAAA,QAAQ,CAAC,cAAc;AACpB,gBAAA,eAAe,cAAc,SAAS;AAE5C,iBAAO,OAAO,aAAa,QAAQ,OAAO,SAAS,KAAK,CAAA,CAAE;AAAA,QAAA,CAC3D;AAED,cAAM,iBAAiB;AAAA,UACrB,CAACC,YAAY,SAAS,KAAK,QAAQA,OAAM,IAAIA;AAAAA,UAC7C,CAACA,YAAY,OAAO,KAAK,MAAMA,OAAM,IAAIA;AAAAA,UACzC,aAAa;AAEN,iBAAA,OAAO,OAAO,cAAc;AAAA,MACvC;AAEO,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;AAEM,MAAA,qBAAqB,CAA4B,eAA2B;AAChF,SAAO,QAAQ,oBAAoB;AACrC;"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
- import strapiFactory from './Strapi';
1
+ import type { Core } from '@strapi/types';
2
+ import Strapi, { type StrapiOptions } from './Strapi';
3
+ export { default as compileStrapi } from './compile';
2
4
  export * as factories from './factories';
3
- export { strapiFactory };
5
+ export declare const createStrapi: (options?: Partial<StrapiOptions>) => Core.Strapi;
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,UAAU,CAAC;AAErC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,MAAM,EAAE,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAGtD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAEzC,eAAO,MAAM,YAAY,aAAa,QAAQ,aAAa,CAAC,KAAQ,WAanE,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const Strapi = require("./Strapi.js");
4
+ require("open");
5
+ require("lodash/fp");
6
+ require("path");
7
+ require("./ee/license.js");
8
+ const index = require("./utils/update-notifier/index.js");
9
+ require("undici");
10
+ require("chalk");
11
+ require("cli-table3");
12
+ require("@paralleldrive/cuid2");
13
+ require("node:assert");
14
+ const signals = require("./utils/signals.js");
15
+ const resolveWorkingDirs = require("./utils/resolve-working-dirs.js");
16
+ const compile = require("./compile.js");
4
17
  const factories = require("./factories.js");
5
- exports.strapiFactory = Strapi;
18
+ const createStrapi = (options = {}) => {
19
+ const strapi = new Strapi({
20
+ ...options,
21
+ ...resolveWorkingDirs.resolveWorkingDirectories(options)
22
+ });
23
+ signals.destroyOnSignal(strapi);
24
+ index.createUpdateNotifier(strapi);
25
+ global.strapi = strapi;
26
+ return strapi;
27
+ };
28
+ exports.compileStrapi = compile;
6
29
  exports.factories = factories;
30
+ exports.createStrapi = createStrapi;
7
31
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport Strapi, { type StrapiOptions } from './Strapi';\nimport { destroyOnSignal, resolveWorkingDirectories, createUpdateNotifier } from './utils';\n\nexport { default as compileStrapi } from './compile';\nexport * as factories from './factories';\n\nexport const createStrapi = (options: Partial<StrapiOptions> = {}): Core.Strapi => {\n const strapi = new Strapi({\n ...options,\n ...resolveWorkingDirectories(options),\n });\n\n destroyOnSignal(strapi);\n createUpdateNotifier(strapi);\n\n // TODO: deprecate and remove in next major\n global.strapi = strapi;\n\n return strapi;\n};\n"],"names":["resolveWorkingDirectories","destroyOnSignal","createUpdateNotifier"],"mappings":";;;;;;;;;;;;;;;;;AAQO,MAAM,eAAe,CAAC,UAAkC,OAAoB;AAC3E,QAAA,SAAS,IAAI,OAAO;AAAA,IACxB,GAAG;AAAA,IACH,GAAGA,mBAAAA,0BAA0B,OAAO;AAAA,EAAA,CACrC;AAEDC,UAAA,gBAAgB,MAAM;AACtBC,QAAA,qBAAqB,MAAM;AAG3B,SAAO,SAAS;AAET,SAAA;AACT;;;;"}
package/dist/index.mjs CHANGED
@@ -1,7 +1,31 @@
1
- import { default as default2 } from "./Strapi.mjs";
1
+ import Strapi from "./Strapi.mjs";
2
+ import "open";
3
+ import "lodash/fp";
4
+ import "path";
5
+ import "./ee/license.mjs";
6
+ import { createUpdateNotifier } from "./utils/update-notifier/index.mjs";
7
+ import "undici";
8
+ import "chalk";
9
+ import "cli-table3";
10
+ import "@paralleldrive/cuid2";
11
+ import "node:assert";
12
+ import { destroyOnSignal } from "./utils/signals.mjs";
13
+ import { resolveWorkingDirectories } from "./utils/resolve-working-dirs.mjs";
14
+ import { default as default2 } from "./compile.mjs";
2
15
  import * as factories from "./factories.mjs";
16
+ const createStrapi = (options = {}) => {
17
+ const strapi = new Strapi({
18
+ ...options,
19
+ ...resolveWorkingDirectories(options)
20
+ });
21
+ destroyOnSignal(strapi);
22
+ createUpdateNotifier(strapi);
23
+ global.strapi = strapi;
24
+ return strapi;
25
+ };
3
26
  export {
4
- factories,
5
- default2 as strapiFactory
27
+ default2 as compileStrapi,
28
+ createStrapi,
29
+ factories
6
30
  };
7
31
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport Strapi, { type StrapiOptions } from './Strapi';\nimport { destroyOnSignal, resolveWorkingDirectories, createUpdateNotifier } from './utils';\n\nexport { default as compileStrapi } from './compile';\nexport * as factories from './factories';\n\nexport const createStrapi = (options: Partial<StrapiOptions> = {}): Core.Strapi => {\n const strapi = new Strapi({\n ...options,\n ...resolveWorkingDirectories(options),\n });\n\n destroyOnSignal(strapi);\n createUpdateNotifier(strapi);\n\n // TODO: deprecate and remove in next major\n global.strapi = strapi;\n\n return strapi;\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAQO,MAAM,eAAe,CAAC,UAAkC,OAAoB;AAC3E,QAAA,SAAS,IAAI,OAAO;AAAA,IACxB,GAAG;AAAA,IACH,GAAG,0BAA0B,OAAO;AAAA,EAAA,CACrC;AAED,kBAAgB,MAAM;AACtB,uBAAqB,MAAM;AAG3B,SAAO,SAAS;AAET,SAAA;AACT;"}
@@ -1,3 +1,3 @@
1
- import type { Strapi } from '@strapi/types';
2
- export default function loadAdmin(strapi: Strapi): Promise<void>;
1
+ import type { Core } from '@strapi/types';
2
+ export default function loadAdmin(strapi: Core.Strapi): Promise<void>;
3
3
  //# sourceMappingURL=admin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/loaders/admin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAU,MAAM,eAAe,CAAC;AAGpD,wBAA8B,SAAS,CAAC,MAAM,EAAE,MAAM,iBAWrD"}
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/loaders/admin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAU,MAAM,eAAe,CAAC;AAGlD,wBAA8B,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,iBAW1D"}
@@ -4,7 +4,6 @@ const index = require("../domain/content-type/index.js");
4
4
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
5
5
  const ___default = /* @__PURE__ */ _interopDefault(_);
6
6
  async function loadAdmin(strapi) {
7
- strapi.admin = require("@strapi/admin/strapi-server");
8
7
  strapi.get("services").add(`admin::`, strapi.admin?.services);
9
8
  strapi.get("controllers").add(`admin::`, strapi.admin?.controllers);
10
9
  strapi.get("content-types").add(`admin::`, formatContentTypes(strapi.admin?.contentTypes ?? {}));
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sources":["../../src/loaders/admin.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Strapi, Schema } from '@strapi/types';\nimport { getGlobalId } from '../domain/content-type';\n\nexport default async function loadAdmin(strapi: Strapi) {\n strapi.admin = require('@strapi/admin/strapi-server');\n\n strapi.get('services').add(`admin::`, strapi.admin?.services);\n strapi.get('controllers').add(`admin::`, strapi.admin?.controllers);\n strapi.get('content-types').add(`admin::`, formatContentTypes(strapi.admin?.contentTypes ?? {}));\n strapi.get('policies').add(`admin::`, strapi.admin?.policies);\n strapi.get('middlewares').add(`admin::`, strapi.admin?.middlewares);\n\n const userAdminConfig = strapi.config.get('admin');\n strapi.get('config').set('admin', _.merge(strapi.admin?.config, userAdminConfig));\n}\n\nconst formatContentTypes = (contentTypes: Record<string, { schema: Schema.ContentType }>) => {\n Object.values(contentTypes).forEach((definition) => {\n const { schema } = definition;\n\n Object.assign(schema, {\n plugin: 'admin',\n globalId: getGlobalId(schema, 'admin'),\n });\n });\n\n return contentTypes;\n};\n"],"names":["_","getGlobalId"],"mappings":";;;;;AAIA,eAA8B,UAAU,QAAgB;AAC/C,SAAA,QAAQ,QAAQ,6BAA6B;AAEpD,SAAO,IAAI,UAAU,EAAE,IAAI,WAAW,OAAO,OAAO,QAAQ;AAC5D,SAAO,IAAI,aAAa,EAAE,IAAI,WAAW,OAAO,OAAO,WAAW;AAC3D,SAAA,IAAI,eAAe,EAAE,IAAI,WAAW,mBAAmB,OAAO,OAAO,gBAAgB,CAAA,CAAE,CAAC;AAC/F,SAAO,IAAI,UAAU,EAAE,IAAI,WAAW,OAAO,OAAO,QAAQ;AAC5D,SAAO,IAAI,aAAa,EAAE,IAAI,WAAW,OAAO,OAAO,WAAW;AAElE,QAAM,kBAAkB,OAAO,OAAO,IAAI,OAAO;AAC1C,SAAA,IAAI,QAAQ,EAAE,IAAI,SAASA,WAAAA,QAAE,MAAM,OAAO,OAAO,QAAQ,eAAe,CAAC;AAClF;AAEA,MAAM,qBAAqB,CAAC,iBAAiE;AAC3F,SAAO,OAAO,YAAY,EAAE,QAAQ,CAAC,eAAe;AAC5C,UAAA,EAAE,OAAW,IAAA;AAEnB,WAAO,OAAO,QAAQ;AAAA,MACpB,QAAQ;AAAA,MACR,UAAUC,MAAAA,YAAY,QAAQ,OAAO;AAAA,IAAA,CACtC;AAAA,EAAA,CACF;AAEM,SAAA;AACT;;"}
1
+ {"version":3,"file":"admin.js","sources":["../../src/loaders/admin.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Core, Struct } from '@strapi/types';\nimport { getGlobalId } from '../domain/content-type';\n\nexport default async function loadAdmin(strapi: Core.Strapi) {\n // strapi.admin = require('@strapi/admin/strapi-server');\n\n strapi.get('services').add(`admin::`, strapi.admin?.services);\n strapi.get('controllers').add(`admin::`, strapi.admin?.controllers);\n strapi.get('content-types').add(`admin::`, formatContentTypes(strapi.admin?.contentTypes ?? {}));\n strapi.get('policies').add(`admin::`, strapi.admin?.policies);\n strapi.get('middlewares').add(`admin::`, strapi.admin?.middlewares);\n\n const userAdminConfig = strapi.config.get('admin');\n strapi.get('config').set('admin', _.merge(strapi.admin?.config, userAdminConfig));\n}\n\nconst formatContentTypes = (contentTypes: Record<string, { schema: Struct.ContentTypeSchema }>) => {\n Object.values(contentTypes).forEach((definition) => {\n const { schema } = definition;\n\n Object.assign(schema, {\n plugin: 'admin',\n globalId: getGlobalId(schema, 'admin'),\n });\n });\n\n return contentTypes;\n};\n"],"names":["_","getGlobalId"],"mappings":";;;;;AAIA,eAA8B,UAAU,QAAqB;AAG3D,SAAO,IAAI,UAAU,EAAE,IAAI,WAAW,OAAO,OAAO,QAAQ;AAC5D,SAAO,IAAI,aAAa,EAAE,IAAI,WAAW,OAAO,OAAO,WAAW;AAC3D,SAAA,IAAI,eAAe,EAAE,IAAI,WAAW,mBAAmB,OAAO,OAAO,gBAAgB,CAAA,CAAE,CAAC;AAC/F,SAAO,IAAI,UAAU,EAAE,IAAI,WAAW,OAAO,OAAO,QAAQ;AAC5D,SAAO,IAAI,aAAa,EAAE,IAAI,WAAW,OAAO,OAAO,WAAW;AAElE,QAAM,kBAAkB,OAAO,OAAO,IAAI,OAAO;AAC1C,SAAA,IAAI,QAAQ,EAAE,IAAI,SAASA,WAAAA,QAAE,MAAM,OAAO,OAAO,QAAQ,eAAe,CAAC;AAClF;AAEA,MAAM,qBAAqB,CAAC,iBAAuE;AACjG,SAAO,OAAO,YAAY,EAAE,QAAQ,CAAC,eAAe;AAC5C,UAAA,EAAE,OAAW,IAAA;AAEnB,WAAO,OAAO,QAAQ;AAAA,MACpB,QAAQ;AAAA,MACR,UAAUC,MAAAA,YAAY,QAAQ,OAAO;AAAA,IAAA,CACtC;AAAA,EAAA,CACF;AAEM,SAAA;AACT;;"}
@@ -1,7 +1,6 @@
1
1
  import _ from "lodash";
2
2
  import { getGlobalId } from "../domain/content-type/index.mjs";
3
3
  async function loadAdmin(strapi) {
4
- strapi.admin = require("@strapi/admin/strapi-server");
5
4
  strapi.get("services").add(`admin::`, strapi.admin?.services);
6
5
  strapi.get("controllers").add(`admin::`, strapi.admin?.controllers);
7
6
  strapi.get("content-types").add(`admin::`, formatContentTypes(strapi.admin?.contentTypes ?? {}));
@@ -1 +1 @@
1
- {"version":3,"file":"admin.mjs","sources":["../../src/loaders/admin.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Strapi, Schema } from '@strapi/types';\nimport { getGlobalId } from '../domain/content-type';\n\nexport default async function loadAdmin(strapi: Strapi) {\n strapi.admin = require('@strapi/admin/strapi-server');\n\n strapi.get('services').add(`admin::`, strapi.admin?.services);\n strapi.get('controllers').add(`admin::`, strapi.admin?.controllers);\n strapi.get('content-types').add(`admin::`, formatContentTypes(strapi.admin?.contentTypes ?? {}));\n strapi.get('policies').add(`admin::`, strapi.admin?.policies);\n strapi.get('middlewares').add(`admin::`, strapi.admin?.middlewares);\n\n const userAdminConfig = strapi.config.get('admin');\n strapi.get('config').set('admin', _.merge(strapi.admin?.config, userAdminConfig));\n}\n\nconst formatContentTypes = (contentTypes: Record<string, { schema: Schema.ContentType }>) => {\n Object.values(contentTypes).forEach((definition) => {\n const { schema } = definition;\n\n Object.assign(schema, {\n plugin: 'admin',\n globalId: getGlobalId(schema, 'admin'),\n });\n });\n\n return contentTypes;\n};\n"],"names":[],"mappings":";;AAIA,eAA8B,UAAU,QAAgB;AAC/C,SAAA,QAAQ,QAAQ,6BAA6B;AAEpD,SAAO,IAAI,UAAU,EAAE,IAAI,WAAW,OAAO,OAAO,QAAQ;AAC5D,SAAO,IAAI,aAAa,EAAE,IAAI,WAAW,OAAO,OAAO,WAAW;AAC3D,SAAA,IAAI,eAAe,EAAE,IAAI,WAAW,mBAAmB,OAAO,OAAO,gBAAgB,CAAA,CAAE,CAAC;AAC/F,SAAO,IAAI,UAAU,EAAE,IAAI,WAAW,OAAO,OAAO,QAAQ;AAC5D,SAAO,IAAI,aAAa,EAAE,IAAI,WAAW,OAAO,OAAO,WAAW;AAElE,QAAM,kBAAkB,OAAO,OAAO,IAAI,OAAO;AAC1C,SAAA,IAAI,QAAQ,EAAE,IAAI,SAAS,EAAE,MAAM,OAAO,OAAO,QAAQ,eAAe,CAAC;AAClF;AAEA,MAAM,qBAAqB,CAAC,iBAAiE;AAC3F,SAAO,OAAO,YAAY,EAAE,QAAQ,CAAC,eAAe;AAC5C,UAAA,EAAE,OAAW,IAAA;AAEnB,WAAO,OAAO,QAAQ;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU,YAAY,QAAQ,OAAO;AAAA,IAAA,CACtC;AAAA,EAAA,CACF;AAEM,SAAA;AACT;"}
1
+ {"version":3,"file":"admin.mjs","sources":["../../src/loaders/admin.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Core, Struct } from '@strapi/types';\nimport { getGlobalId } from '../domain/content-type';\n\nexport default async function loadAdmin(strapi: Core.Strapi) {\n // strapi.admin = require('@strapi/admin/strapi-server');\n\n strapi.get('services').add(`admin::`, strapi.admin?.services);\n strapi.get('controllers').add(`admin::`, strapi.admin?.controllers);\n strapi.get('content-types').add(`admin::`, formatContentTypes(strapi.admin?.contentTypes ?? {}));\n strapi.get('policies').add(`admin::`, strapi.admin?.policies);\n strapi.get('middlewares').add(`admin::`, strapi.admin?.middlewares);\n\n const userAdminConfig = strapi.config.get('admin');\n strapi.get('config').set('admin', _.merge(strapi.admin?.config, userAdminConfig));\n}\n\nconst formatContentTypes = (contentTypes: Record<string, { schema: Struct.ContentTypeSchema }>) => {\n Object.values(contentTypes).forEach((definition) => {\n const { schema } = definition;\n\n Object.assign(schema, {\n plugin: 'admin',\n globalId: getGlobalId(schema, 'admin'),\n });\n });\n\n return contentTypes;\n};\n"],"names":[],"mappings":";;AAIA,eAA8B,UAAU,QAAqB;AAG3D,SAAO,IAAI,UAAU,EAAE,IAAI,WAAW,OAAO,OAAO,QAAQ;AAC5D,SAAO,IAAI,aAAa,EAAE,IAAI,WAAW,OAAO,OAAO,WAAW;AAC3D,SAAA,IAAI,eAAe,EAAE,IAAI,WAAW,mBAAmB,OAAO,OAAO,gBAAgB,CAAA,CAAE,CAAC;AAC/F,SAAO,IAAI,UAAU,EAAE,IAAI,WAAW,OAAO,OAAO,QAAQ;AAC5D,SAAO,IAAI,aAAa,EAAE,IAAI,WAAW,OAAO,OAAO,WAAW;AAElE,QAAM,kBAAkB,OAAO,OAAO,IAAI,OAAO;AAC1C,SAAA,IAAI,QAAQ,EAAE,IAAI,SAAS,EAAE,MAAM,OAAO,OAAO,QAAQ,eAAe,CAAC;AAClF;AAEA,MAAM,qBAAqB,CAAC,iBAAuE;AACjG,SAAO,OAAO,YAAY,EAAE,QAAQ,CAAC,eAAe;AAC5C,UAAA,EAAE,OAAW,IAAA;AAEnB,WAAO,OAAO,QAAQ;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU,YAAY,QAAQ,OAAO;AAAA,IAAA,CACtC;AAAA,EAAA,CACF;AAEM,SAAA;AACT;"}
@@ -1,3 +1,3 @@
1
- import type { Strapi } from '@strapi/types';
2
- export default function loadAPIs(strapi: Strapi): Promise<void>;
1
+ import type { Core } from '@strapi/types';
2
+ export default function loadAPIs(strapi: Core.Strapi): Promise<void>;
3
3
  //# sourceMappingURL=apis.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apis.d.ts","sourceRoot":"","sources":["../../src/loaders/apis.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,eAAe,CAAC;AAgC5D,wBAA8B,QAAQ,CAAC,MAAM,EAAE,MAAM,iBAwBpD"}
1
+ {"version":3,"file":"apis.d.ts","sourceRoot":"","sources":["../../src/loaders/apis.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAU,MAAM,eAAe,CAAC;AAgClD,wBAA8B,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,iBAyBzD"}
@@ -13,7 +13,7 @@ const DEFAULT_CONTENT_TYPE = {
13
13
  actions: {},
14
14
  lifecycles: {}
15
15
  };
16
- const normalizeName = (name) => strapiUtils.isKebabCase(name) ? name : ___default.default.kebabCase(name);
16
+ const normalizeName = (name) => strapiUtils.strings.isKebabCase(name) ? name : ___default.default.kebabCase(name);
17
17
  const isDirectory = (fd) => fd.isDirectory();
18
18
  const isDotFile = (fd) => fd.name.startsWith(".");
19
19
  async function loadAPIs(strapi) {
@@ -53,7 +53,7 @@ const validateContentTypesUnicity = (apis) => {
53
53
  });
54
54
  };
55
55
  const loadAPI = async (apiName, dir) => {
56
- const [index2, config, routes, controllers, services, policies, middlewares, contentTypes] = await Promise.all([
56
+ const [index2, config, routes, controllers, services, policies, middlewares, contentTypes] = (await Promise.all([
57
57
  loadIndex(dir),
58
58
  loadDir(path.join(dir, "config")),
59
59
  loadDir(path.join(dir, "routes")),
@@ -62,7 +62,7 @@ const loadAPI = async (apiName, dir) => {
62
62
  loadDir(path.join(dir, "policies")),
63
63
  loadDir(path.join(dir, "middlewares")),
64
64
  loadContentTypes(apiName, path.join(dir, "content-types"))
65
- ]);
65
+ ])).map((result) => result?.result);
66
66
  return {
67
67
  ...index2 || {},
68
68
  config: config || {},
@@ -90,7 +90,7 @@ const loadContentTypes = async (apiName, dir) => {
90
90
  continue;
91
91
  }
92
92
  const contentTypeName = normalizeName(fd.name);
93
- const loadedContentType = await loadDir(path.join(dir, fd.name));
93
+ const loadedContentType = (await loadDir(path.join(dir, fd.name)))?.result;
94
94
  if (_$1.isEmpty(loadedContentType) || _$1.isEmpty(loadedContentType.schema)) {
95
95
  throw new Error(`Could not load content type found at ${dir}`);
96
96
  }
@@ -105,7 +105,7 @@ const loadContentTypes = async (apiName, dir) => {
105
105
  });
106
106
  contentTypes[normalizeName(contentTypeName)] = contentType;
107
107
  }
108
- return contentTypes;
108
+ return { result: contentTypes };
109
109
  };
110
110
  const loadDir = async (dir) => {
111
111
  if (!await fse__default.default.pathExists(dir)) {
@@ -118,19 +118,19 @@ const loadDir = async (dir) => {
118
118
  continue;
119
119
  }
120
120
  const key = path.basename(fd.name, path.extname(fd.name));
121
- root[normalizeName(key)] = await loadFile(path.join(dir, fd.name));
121
+ root[normalizeName(key)] = (await loadFile(path.join(dir, fd.name))).result;
122
122
  }
123
- return root;
123
+ return { result: root };
124
124
  };
125
- const loadFile = (file) => {
125
+ const loadFile = async (file) => {
126
126
  const ext = path.extname(file);
127
127
  switch (ext) {
128
128
  case ".js":
129
- return strapiUtils.importDefault(file);
129
+ return { result: strapiUtils.importDefault(file) };
130
130
  case ".json":
131
- return fse__default.default.readJSON(file);
131
+ return { result: await fse__default.default.readJSON(file) };
132
132
  default:
133
- return {};
133
+ return { result: {} };
134
134
  }
135
135
  };
136
136
  module.exports = loadAPIs;
@@ -1 +1 @@
1
- {"version":3,"file":"apis.js","sources":["../../src/loaders/apis.ts"],"sourcesContent":["import { join, extname, basename } from 'path';\nimport fse, { existsSync } from 'fs-extra';\nimport _ from 'lodash';\nimport { isKebabCase, importDefault } from '@strapi/utils';\nimport { isEmpty } from 'lodash/fp';\nimport type { Strapi, Common, Schema } from '@strapi/types';\nimport { getGlobalId, type ContentTypeDefinition } from '../domain/content-type';\n\ninterface API {\n bootstrap: () => void | Promise<void>;\n destroy: () => void | Promise<void>;\n register: () => void | Promise<void>;\n config: Record<string, unknown>;\n routes: Record<string, Common.Router>;\n controllers: Record<string, Common.Controller>;\n services: Record<string, Common.Service>;\n policies: Record<string, Common.Policy>;\n middlewares: Record<string, Common.Middleware>;\n contentTypes: Record<string, { schema: Schema.ContentType }>;\n}\n\ninterface APIs {\n [key: string]: API;\n}\n\nconst DEFAULT_CONTENT_TYPE = {\n schema: {},\n actions: {},\n lifecycles: {},\n};\n\n// to handle names with numbers in it we first check if it is already in kebabCase\nconst normalizeName = (name: string) => (isKebabCase(name) ? name : _.kebabCase(name));\n\nconst isDirectory = (fd: fse.Dirent) => fd.isDirectory();\nconst isDotFile = (fd: fse.Dirent) => fd.name.startsWith('.');\n\nexport default async function loadAPIs(strapi: Strapi) {\n if (!existsSync(strapi.dirs.dist.api)) {\n return;\n }\n\n const apisFDs = await (await fse.readdir(strapi.dirs.dist.api, { withFileTypes: true }))\n .filter(isDirectory)\n .filter(_.negate(isDotFile));\n\n const apis: APIs = {};\n\n // only load folders\n for (const apiFD of apisFDs) {\n const apiName = normalizeName(apiFD.name);\n const api = await loadAPI(apiName, join(strapi.dirs.dist.api, apiFD.name));\n\n apis[apiName] = api;\n }\n\n validateContentTypesUnicity(apis);\n\n for (const apiName of Object.keys(apis)) {\n strapi.get('apis').add(apiName, apis[apiName]);\n }\n}\n\nconst validateContentTypesUnicity = (apis: APIs) => {\n const allApisSchemas = Object.values(apis).flatMap((api) => Object.values(api.contentTypes));\n\n const names: string[] = [];\n allApisSchemas.forEach(({ schema }) => {\n if (schema.info.singularName) {\n const singularName = _.kebabCase(schema.info.singularName);\n if (names.includes(singularName)) {\n throw new Error(`The singular name \"${schema.info.singularName}\" should be unique`);\n }\n names.push(singularName);\n }\n\n if (schema.info.pluralName) {\n const pluralName = _.kebabCase(schema.info.pluralName);\n if (names.includes(pluralName)) {\n throw new Error(`The plural name \"${schema.info.pluralName}\" should be unique`);\n }\n names.push(pluralName);\n }\n });\n};\n\nconst loadAPI = async (apiName: string, dir: string) => {\n const [index, config, routes, controllers, services, policies, middlewares, contentTypes] =\n await Promise.all([\n loadIndex(dir),\n loadDir(join(dir, 'config')),\n loadDir(join(dir, 'routes')),\n loadDir(join(dir, 'controllers')),\n loadDir(join(dir, 'services')),\n loadDir(join(dir, 'policies')),\n loadDir(join(dir, 'middlewares')),\n loadContentTypes(apiName, join(dir, 'content-types')),\n ]);\n\n return {\n ...(index || {}),\n config: config || {},\n routes: routes || [],\n controllers: controllers || {},\n services: services || {},\n policies: policies || {},\n middlewares: middlewares || {},\n contentTypes: contentTypes || {},\n };\n};\n\nconst loadIndex = async (dir: string) => {\n if (await fse.pathExists(join(dir, 'index.js'))) {\n return loadFile(join(dir, 'index.js'));\n }\n};\n\nconst loadContentTypes = async (apiName: string, dir: string) => {\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const fds = await fse.readdir(dir, { withFileTypes: true });\n const contentTypes: API['contentTypes'] = {};\n\n // only load folders\n for (const fd of fds) {\n if (fd.isFile()) {\n continue;\n }\n\n const contentTypeName = normalizeName(fd.name);\n const loadedContentType = await loadDir(join(dir, fd.name));\n\n if (isEmpty(loadedContentType) || isEmpty(loadedContentType.schema)) {\n throw new Error(`Could not load content type found at ${dir}`);\n }\n\n const contentType = {\n ...DEFAULT_CONTENT_TYPE,\n ...loadedContentType,\n } as ContentTypeDefinition;\n\n Object.assign(contentType.schema, {\n apiName,\n collectionName: contentType.schema.collectionName || contentType.schema.info.singularName,\n globalId: getGlobalId(contentType.schema),\n });\n\n contentTypes[normalizeName(contentTypeName)] = contentType;\n }\n\n return contentTypes;\n};\n\nconst loadDir = async (dir: string) => {\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const fds = await fse.readdir(dir, { withFileTypes: true });\n\n const root: Record<string, unknown> = {};\n for (const fd of fds) {\n if (!fd.isFile() || extname(fd.name) === '.map') {\n continue;\n }\n\n const key = basename(fd.name, extname(fd.name));\n\n root[normalizeName(key)] = await loadFile(join(dir, fd.name));\n }\n\n return root;\n};\n\nconst loadFile = (file: string) => {\n const ext = extname(file);\n\n switch (ext) {\n case '.js':\n return importDefault(file);\n case '.json':\n return fse.readJSON(file);\n default:\n return {};\n }\n};\n"],"names":["isKebabCase","_","existsSync","fse","join","index","isEmpty","getGlobalId","extname","basename","importDefault"],"mappings":"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"}
1
+ {"version":3,"file":"apis.js","sources":["../../src/loaders/apis.ts"],"sourcesContent":["import { join, extname, basename } from 'path';\nimport fse, { existsSync } from 'fs-extra';\nimport _ from 'lodash';\nimport { strings, importDefault } from '@strapi/utils';\nimport { isEmpty } from 'lodash/fp';\nimport type { Core, Struct } from '@strapi/types';\nimport { getGlobalId, type ContentTypeDefinition } from '../domain/content-type';\n\ninterface API {\n bootstrap: () => void | Promise<void>;\n destroy: () => void | Promise<void>;\n register: () => void | Promise<void>;\n config: Record<string, unknown>;\n routes: Record<string, Core.Router>;\n controllers: Record<string, Core.Controller>;\n services: Record<string, Core.Service>;\n policies: Record<string, Core.Policy>;\n middlewares: Record<string, Core.Middleware>;\n contentTypes: Record<string, { schema: Struct.ContentTypeSchema }>;\n}\n\ninterface APIs {\n [key: string]: API;\n}\n\nconst DEFAULT_CONTENT_TYPE = {\n schema: {},\n actions: {},\n lifecycles: {},\n};\n\n// to handle names with numbers in it we first check if it is already in kebabCase\nconst normalizeName = (name: string) => (strings.isKebabCase(name) ? name : _.kebabCase(name));\n\nconst isDirectory = (fd: fse.Dirent) => fd.isDirectory();\nconst isDotFile = (fd: fse.Dirent) => fd.name.startsWith('.');\n\nexport default async function loadAPIs(strapi: Core.Strapi) {\n if (!existsSync(strapi.dirs.dist.api)) {\n return;\n }\n\n const apisFDs = await (await fse.readdir(strapi.dirs.dist.api, { withFileTypes: true }))\n .filter(isDirectory)\n .filter(_.negate(isDotFile));\n\n const apis: APIs = {};\n\n // only load folders\n for (const apiFD of apisFDs) {\n const apiName = normalizeName(apiFD.name);\n const api = await loadAPI(apiName, join(strapi.dirs.dist.api, apiFD.name));\n\n // @ts-expect-error TODO verify that it's a valid api, not missing bootstrap, register, and destroy\n apis[apiName] = api;\n }\n\n validateContentTypesUnicity(apis);\n\n for (const apiName of Object.keys(apis)) {\n strapi.get('apis').add(apiName, apis[apiName]);\n }\n}\n\nconst validateContentTypesUnicity = (apis: APIs) => {\n const allApisSchemas = Object.values(apis).flatMap((api) => Object.values(api.contentTypes));\n\n const names: string[] = [];\n allApisSchemas.forEach(({ schema }) => {\n if (schema.info.singularName) {\n const singularName = _.kebabCase(schema.info.singularName);\n if (names.includes(singularName)) {\n throw new Error(`The singular name \"${schema.info.singularName}\" should be unique`);\n }\n names.push(singularName);\n }\n\n if (schema.info.pluralName) {\n const pluralName = _.kebabCase(schema.info.pluralName);\n if (names.includes(pluralName)) {\n throw new Error(`The plural name \"${schema.info.pluralName}\" should be unique`);\n }\n names.push(pluralName);\n }\n });\n};\n\nconst loadAPI = async (apiName: string, dir: string) => {\n const [index, config, routes, controllers, services, policies, middlewares, contentTypes] = (\n await Promise.all([\n loadIndex(dir),\n loadDir(join(dir, 'config')),\n loadDir(join(dir, 'routes')),\n loadDir(join(dir, 'controllers')),\n loadDir(join(dir, 'services')),\n loadDir(join(dir, 'policies')),\n loadDir(join(dir, 'middlewares')),\n loadContentTypes(apiName, join(dir, 'content-types')),\n ])\n ).map((result) => result?.result);\n\n return {\n ...(index || {}),\n config: config || {},\n routes: routes || [],\n controllers: controllers || {},\n services: services || {},\n policies: policies || {},\n middlewares: middlewares || {},\n contentTypes: contentTypes || {},\n };\n};\n\nconst loadIndex = async (dir: string) => {\n if (await fse.pathExists(join(dir, 'index.js'))) {\n return loadFile(join(dir, 'index.js'));\n }\n};\n\n// because this is async and its contents are dynamic, we must return it within an object to avoid a property called `then` being interpreted as a Promise\nconst loadContentTypes = async (apiName: string, dir: string) => {\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const fds = await fse.readdir(dir, { withFileTypes: true });\n const contentTypes: API['contentTypes'] = {};\n\n // only load folders\n for (const fd of fds) {\n if (fd.isFile()) {\n continue;\n }\n\n const contentTypeName = normalizeName(fd.name);\n const loadedContentType = (await loadDir(join(dir, fd.name)))?.result;\n\n if (isEmpty(loadedContentType) || isEmpty(loadedContentType.schema)) {\n throw new Error(`Could not load content type found at ${dir}`);\n }\n\n const contentType = {\n ...DEFAULT_CONTENT_TYPE,\n ...loadedContentType,\n } as ContentTypeDefinition;\n\n Object.assign(contentType.schema, {\n apiName,\n collectionName: contentType.schema.collectionName || contentType.schema.info.singularName,\n globalId: getGlobalId(contentType.schema),\n });\n\n contentTypes[normalizeName(contentTypeName)] = contentType;\n }\n\n return { result: contentTypes };\n};\n\n// because this is async and its contents are dynamic, we must return it within an object to avoid a property called `then` being interpreted as a Promise\nconst loadDir = async (dir: string) => {\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const fds = await fse.readdir(dir, { withFileTypes: true });\n\n const root: Record<string, unknown> = {};\n for (const fd of fds) {\n if (!fd.isFile() || extname(fd.name) === '.map') {\n continue;\n }\n\n const key = basename(fd.name, extname(fd.name));\n\n root[normalizeName(key)] = (await loadFile(join(dir, fd.name))).result;\n }\n\n return { result: root };\n};\n\n// because this is async and its contents are dynamic, we must return it as an array to avoid a property called `then` being interpreted as a Promise\nconst loadFile = async (file: string): Promise<{ result: unknown }> => {\n const ext = extname(file);\n\n switch (ext) {\n case '.js':\n return { result: importDefault(file) };\n case '.json':\n return { result: await fse.readJSON(file) };\n default:\n return { result: {} };\n }\n};\n"],"names":["strings","_","existsSync","fse","join","index","isEmpty","getGlobalId","extname","basename","importDefault"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { join, extname, basename } from "path";
2
2
  import fse, { existsSync } from "fs-extra";
3
3
  import _ from "lodash";
4
- import { isKebabCase, importDefault } from "@strapi/utils";
4
+ import { strings, importDefault } from "@strapi/utils";
5
5
  import { isEmpty } from "lodash/fp";
6
6
  import { getGlobalId } from "../domain/content-type/index.mjs";
7
7
  const DEFAULT_CONTENT_TYPE = {
@@ -9,7 +9,7 @@ const DEFAULT_CONTENT_TYPE = {
9
9
  actions: {},
10
10
  lifecycles: {}
11
11
  };
12
- const normalizeName = (name) => isKebabCase(name) ? name : _.kebabCase(name);
12
+ const normalizeName = (name) => strings.isKebabCase(name) ? name : _.kebabCase(name);
13
13
  const isDirectory = (fd) => fd.isDirectory();
14
14
  const isDotFile = (fd) => fd.name.startsWith(".");
15
15
  async function loadAPIs(strapi) {
@@ -49,7 +49,7 @@ const validateContentTypesUnicity = (apis) => {
49
49
  });
50
50
  };
51
51
  const loadAPI = async (apiName, dir) => {
52
- const [index, config, routes, controllers, services, policies, middlewares, contentTypes] = await Promise.all([
52
+ const [index, config, routes, controllers, services, policies, middlewares, contentTypes] = (await Promise.all([
53
53
  loadIndex(dir),
54
54
  loadDir(join(dir, "config")),
55
55
  loadDir(join(dir, "routes")),
@@ -58,7 +58,7 @@ const loadAPI = async (apiName, dir) => {
58
58
  loadDir(join(dir, "policies")),
59
59
  loadDir(join(dir, "middlewares")),
60
60
  loadContentTypes(apiName, join(dir, "content-types"))
61
- ]);
61
+ ])).map((result) => result?.result);
62
62
  return {
63
63
  ...index || {},
64
64
  config: config || {},
@@ -86,7 +86,7 @@ const loadContentTypes = async (apiName, dir) => {
86
86
  continue;
87
87
  }
88
88
  const contentTypeName = normalizeName(fd.name);
89
- const loadedContentType = await loadDir(join(dir, fd.name));
89
+ const loadedContentType = (await loadDir(join(dir, fd.name)))?.result;
90
90
  if (isEmpty(loadedContentType) || isEmpty(loadedContentType.schema)) {
91
91
  throw new Error(`Could not load content type found at ${dir}`);
92
92
  }
@@ -101,7 +101,7 @@ const loadContentTypes = async (apiName, dir) => {
101
101
  });
102
102
  contentTypes[normalizeName(contentTypeName)] = contentType;
103
103
  }
104
- return contentTypes;
104
+ return { result: contentTypes };
105
105
  };
106
106
  const loadDir = async (dir) => {
107
107
  if (!await fse.pathExists(dir)) {
@@ -114,19 +114,19 @@ const loadDir = async (dir) => {
114
114
  continue;
115
115
  }
116
116
  const key = basename(fd.name, extname(fd.name));
117
- root[normalizeName(key)] = await loadFile(join(dir, fd.name));
117
+ root[normalizeName(key)] = (await loadFile(join(dir, fd.name))).result;
118
118
  }
119
- return root;
119
+ return { result: root };
120
120
  };
121
- const loadFile = (file) => {
121
+ const loadFile = async (file) => {
122
122
  const ext = extname(file);
123
123
  switch (ext) {
124
124
  case ".js":
125
- return importDefault(file);
125
+ return { result: importDefault(file) };
126
126
  case ".json":
127
- return fse.readJSON(file);
127
+ return { result: await fse.readJSON(file) };
128
128
  default:
129
- return {};
129
+ return { result: {} };
130
130
  }
131
131
  };
132
132
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"apis.mjs","sources":["../../src/loaders/apis.ts"],"sourcesContent":["import { join, extname, basename } from 'path';\nimport fse, { existsSync } from 'fs-extra';\nimport _ from 'lodash';\nimport { isKebabCase, importDefault } from '@strapi/utils';\nimport { isEmpty } from 'lodash/fp';\nimport type { Strapi, Common, Schema } from '@strapi/types';\nimport { getGlobalId, type ContentTypeDefinition } from '../domain/content-type';\n\ninterface API {\n bootstrap: () => void | Promise<void>;\n destroy: () => void | Promise<void>;\n register: () => void | Promise<void>;\n config: Record<string, unknown>;\n routes: Record<string, Common.Router>;\n controllers: Record<string, Common.Controller>;\n services: Record<string, Common.Service>;\n policies: Record<string, Common.Policy>;\n middlewares: Record<string, Common.Middleware>;\n contentTypes: Record<string, { schema: Schema.ContentType }>;\n}\n\ninterface APIs {\n [key: string]: API;\n}\n\nconst DEFAULT_CONTENT_TYPE = {\n schema: {},\n actions: {},\n lifecycles: {},\n};\n\n// to handle names with numbers in it we first check if it is already in kebabCase\nconst normalizeName = (name: string) => (isKebabCase(name) ? name : _.kebabCase(name));\n\nconst isDirectory = (fd: fse.Dirent) => fd.isDirectory();\nconst isDotFile = (fd: fse.Dirent) => fd.name.startsWith('.');\n\nexport default async function loadAPIs(strapi: Strapi) {\n if (!existsSync(strapi.dirs.dist.api)) {\n return;\n }\n\n const apisFDs = await (await fse.readdir(strapi.dirs.dist.api, { withFileTypes: true }))\n .filter(isDirectory)\n .filter(_.negate(isDotFile));\n\n const apis: APIs = {};\n\n // only load folders\n for (const apiFD of apisFDs) {\n const apiName = normalizeName(apiFD.name);\n const api = await loadAPI(apiName, join(strapi.dirs.dist.api, apiFD.name));\n\n apis[apiName] = api;\n }\n\n validateContentTypesUnicity(apis);\n\n for (const apiName of Object.keys(apis)) {\n strapi.get('apis').add(apiName, apis[apiName]);\n }\n}\n\nconst validateContentTypesUnicity = (apis: APIs) => {\n const allApisSchemas = Object.values(apis).flatMap((api) => Object.values(api.contentTypes));\n\n const names: string[] = [];\n allApisSchemas.forEach(({ schema }) => {\n if (schema.info.singularName) {\n const singularName = _.kebabCase(schema.info.singularName);\n if (names.includes(singularName)) {\n throw new Error(`The singular name \"${schema.info.singularName}\" should be unique`);\n }\n names.push(singularName);\n }\n\n if (schema.info.pluralName) {\n const pluralName = _.kebabCase(schema.info.pluralName);\n if (names.includes(pluralName)) {\n throw new Error(`The plural name \"${schema.info.pluralName}\" should be unique`);\n }\n names.push(pluralName);\n }\n });\n};\n\nconst loadAPI = async (apiName: string, dir: string) => {\n const [index, config, routes, controllers, services, policies, middlewares, contentTypes] =\n await Promise.all([\n loadIndex(dir),\n loadDir(join(dir, 'config')),\n loadDir(join(dir, 'routes')),\n loadDir(join(dir, 'controllers')),\n loadDir(join(dir, 'services')),\n loadDir(join(dir, 'policies')),\n loadDir(join(dir, 'middlewares')),\n loadContentTypes(apiName, join(dir, 'content-types')),\n ]);\n\n return {\n ...(index || {}),\n config: config || {},\n routes: routes || [],\n controllers: controllers || {},\n services: services || {},\n policies: policies || {},\n middlewares: middlewares || {},\n contentTypes: contentTypes || {},\n };\n};\n\nconst loadIndex = async (dir: string) => {\n if (await fse.pathExists(join(dir, 'index.js'))) {\n return loadFile(join(dir, 'index.js'));\n }\n};\n\nconst loadContentTypes = async (apiName: string, dir: string) => {\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const fds = await fse.readdir(dir, { withFileTypes: true });\n const contentTypes: API['contentTypes'] = {};\n\n // only load folders\n for (const fd of fds) {\n if (fd.isFile()) {\n continue;\n }\n\n const contentTypeName = normalizeName(fd.name);\n const loadedContentType = await loadDir(join(dir, fd.name));\n\n if (isEmpty(loadedContentType) || isEmpty(loadedContentType.schema)) {\n throw new Error(`Could not load content type found at ${dir}`);\n }\n\n const contentType = {\n ...DEFAULT_CONTENT_TYPE,\n ...loadedContentType,\n } as ContentTypeDefinition;\n\n Object.assign(contentType.schema, {\n apiName,\n collectionName: contentType.schema.collectionName || contentType.schema.info.singularName,\n globalId: getGlobalId(contentType.schema),\n });\n\n contentTypes[normalizeName(contentTypeName)] = contentType;\n }\n\n return contentTypes;\n};\n\nconst loadDir = async (dir: string) => {\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const fds = await fse.readdir(dir, { withFileTypes: true });\n\n const root: Record<string, unknown> = {};\n for (const fd of fds) {\n if (!fd.isFile() || extname(fd.name) === '.map') {\n continue;\n }\n\n const key = basename(fd.name, extname(fd.name));\n\n root[normalizeName(key)] = await loadFile(join(dir, fd.name));\n }\n\n return root;\n};\n\nconst loadFile = (file: string) => {\n const ext = extname(file);\n\n switch (ext) {\n case '.js':\n return importDefault(file);\n case '.json':\n return fse.readJSON(file);\n default:\n return {};\n }\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apis.mjs","sources":["../../src/loaders/apis.ts"],"sourcesContent":["import { join, extname, basename } from 'path';\nimport fse, { existsSync } from 'fs-extra';\nimport _ from 'lodash';\nimport { strings, importDefault } from '@strapi/utils';\nimport { isEmpty } from 'lodash/fp';\nimport type { Core, Struct } from '@strapi/types';\nimport { getGlobalId, type ContentTypeDefinition } from '../domain/content-type';\n\ninterface API {\n bootstrap: () => void | Promise<void>;\n destroy: () => void | Promise<void>;\n register: () => void | Promise<void>;\n config: Record<string, unknown>;\n routes: Record<string, Core.Router>;\n controllers: Record<string, Core.Controller>;\n services: Record<string, Core.Service>;\n policies: Record<string, Core.Policy>;\n middlewares: Record<string, Core.Middleware>;\n contentTypes: Record<string, { schema: Struct.ContentTypeSchema }>;\n}\n\ninterface APIs {\n [key: string]: API;\n}\n\nconst DEFAULT_CONTENT_TYPE = {\n schema: {},\n actions: {},\n lifecycles: {},\n};\n\n// to handle names with numbers in it we first check if it is already in kebabCase\nconst normalizeName = (name: string) => (strings.isKebabCase(name) ? name : _.kebabCase(name));\n\nconst isDirectory = (fd: fse.Dirent) => fd.isDirectory();\nconst isDotFile = (fd: fse.Dirent) => fd.name.startsWith('.');\n\nexport default async function loadAPIs(strapi: Core.Strapi) {\n if (!existsSync(strapi.dirs.dist.api)) {\n return;\n }\n\n const apisFDs = await (await fse.readdir(strapi.dirs.dist.api, { withFileTypes: true }))\n .filter(isDirectory)\n .filter(_.negate(isDotFile));\n\n const apis: APIs = {};\n\n // only load folders\n for (const apiFD of apisFDs) {\n const apiName = normalizeName(apiFD.name);\n const api = await loadAPI(apiName, join(strapi.dirs.dist.api, apiFD.name));\n\n // @ts-expect-error TODO verify that it's a valid api, not missing bootstrap, register, and destroy\n apis[apiName] = api;\n }\n\n validateContentTypesUnicity(apis);\n\n for (const apiName of Object.keys(apis)) {\n strapi.get('apis').add(apiName, apis[apiName]);\n }\n}\n\nconst validateContentTypesUnicity = (apis: APIs) => {\n const allApisSchemas = Object.values(apis).flatMap((api) => Object.values(api.contentTypes));\n\n const names: string[] = [];\n allApisSchemas.forEach(({ schema }) => {\n if (schema.info.singularName) {\n const singularName = _.kebabCase(schema.info.singularName);\n if (names.includes(singularName)) {\n throw new Error(`The singular name \"${schema.info.singularName}\" should be unique`);\n }\n names.push(singularName);\n }\n\n if (schema.info.pluralName) {\n const pluralName = _.kebabCase(schema.info.pluralName);\n if (names.includes(pluralName)) {\n throw new Error(`The plural name \"${schema.info.pluralName}\" should be unique`);\n }\n names.push(pluralName);\n }\n });\n};\n\nconst loadAPI = async (apiName: string, dir: string) => {\n const [index, config, routes, controllers, services, policies, middlewares, contentTypes] = (\n await Promise.all([\n loadIndex(dir),\n loadDir(join(dir, 'config')),\n loadDir(join(dir, 'routes')),\n loadDir(join(dir, 'controllers')),\n loadDir(join(dir, 'services')),\n loadDir(join(dir, 'policies')),\n loadDir(join(dir, 'middlewares')),\n loadContentTypes(apiName, join(dir, 'content-types')),\n ])\n ).map((result) => result?.result);\n\n return {\n ...(index || {}),\n config: config || {},\n routes: routes || [],\n controllers: controllers || {},\n services: services || {},\n policies: policies || {},\n middlewares: middlewares || {},\n contentTypes: contentTypes || {},\n };\n};\n\nconst loadIndex = async (dir: string) => {\n if (await fse.pathExists(join(dir, 'index.js'))) {\n return loadFile(join(dir, 'index.js'));\n }\n};\n\n// because this is async and its contents are dynamic, we must return it within an object to avoid a property called `then` being interpreted as a Promise\nconst loadContentTypes = async (apiName: string, dir: string) => {\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const fds = await fse.readdir(dir, { withFileTypes: true });\n const contentTypes: API['contentTypes'] = {};\n\n // only load folders\n for (const fd of fds) {\n if (fd.isFile()) {\n continue;\n }\n\n const contentTypeName = normalizeName(fd.name);\n const loadedContentType = (await loadDir(join(dir, fd.name)))?.result;\n\n if (isEmpty(loadedContentType) || isEmpty(loadedContentType.schema)) {\n throw new Error(`Could not load content type found at ${dir}`);\n }\n\n const contentType = {\n ...DEFAULT_CONTENT_TYPE,\n ...loadedContentType,\n } as ContentTypeDefinition;\n\n Object.assign(contentType.schema, {\n apiName,\n collectionName: contentType.schema.collectionName || contentType.schema.info.singularName,\n globalId: getGlobalId(contentType.schema),\n });\n\n contentTypes[normalizeName(contentTypeName)] = contentType;\n }\n\n return { result: contentTypes };\n};\n\n// because this is async and its contents are dynamic, we must return it within an object to avoid a property called `then` being interpreted as a Promise\nconst loadDir = async (dir: string) => {\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const fds = await fse.readdir(dir, { withFileTypes: true });\n\n const root: Record<string, unknown> = {};\n for (const fd of fds) {\n if (!fd.isFile() || extname(fd.name) === '.map') {\n continue;\n }\n\n const key = basename(fd.name, extname(fd.name));\n\n root[normalizeName(key)] = (await loadFile(join(dir, fd.name))).result;\n }\n\n return { result: root };\n};\n\n// because this is async and its contents are dynamic, we must return it as an array to avoid a property called `then` being interpreted as a Promise\nconst loadFile = async (file: string): Promise<{ result: unknown }> => {\n const ext = extname(file);\n\n switch (ext) {\n case '.js':\n return { result: importDefault(file) };\n case '.json':\n return { result: await fse.readJSON(file) };\n default:\n return { result: {} };\n }\n};\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import type { Strapi } from '@strapi/types';
2
- export default function loadComponents(strapi: Strapi): Promise<{} | undefined>;
1
+ import type { Core } from '@strapi/types';
2
+ export default function loadComponents(strapi: Core.Strapi): Promise<{} | undefined>;
3
3
  //# sourceMappingURL=components.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/loaders/components.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,eAAe,CAAC;AAyB5D,wBAA8B,cAAc,CAAC,MAAM,EAAE,MAAM,2BAoC1D"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/loaders/components.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAe,MAAM,eAAe,CAAC;AAyBvD,wBAA8B,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,2BAoC/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sources":["../../src/loaders/components.ts"],"sourcesContent":["import { join } from 'path';\nimport _ from 'lodash';\nimport { pathExists } from 'fs-extra';\nimport type { Strapi, Common, Schema } from '@strapi/types';\nimport { loadFiles } from '../utils/load-files';\n\ntype LoadedComponent = {\n collectionName: string;\n __filename__: string;\n __schema__: LoadedComponent;\n uid: string;\n category: string;\n modelName: string;\n globalId: string;\n info: any;\n attributes: any;\n};\n\ntype LoadedComponents = {\n [category: string]: {\n [key: string]: LoadedComponent;\n };\n};\n\ntype ComponentMap = {\n [uid in Common.UID.Component]: Schema.Component;\n};\n\nexport default async function loadComponents(strapi: Strapi) {\n if (!(await pathExists(strapi.dirs.dist.components))) {\n return {};\n }\n\n const map = await loadFiles<LoadedComponents>(strapi.dirs.dist.components, '*/*.*(js|json)');\n\n const components = Object.keys(map).reduce((acc, category) => {\n Object.keys(map[category]).forEach((key) => {\n const schema = map[category][key];\n\n if (!schema.collectionName) {\n // NOTE: We're using the filepath from the app directory instead of the dist for information purpose\n const filePath = join(strapi.dirs.app.components, category, schema.__filename__);\n\n return strapi.stopWithError(\n `Component ${key} is missing a \"collectionName\" property.\\nVerify file ${filePath}.`\n );\n }\n\n const uid: Common.UID.Component = `${category}.${key}`;\n\n acc[uid] = Object.assign(schema, {\n __schema__: _.cloneDeep(schema),\n uid,\n category,\n modelType: 'component' as const,\n modelName: key,\n globalId: schema.globalId || _.upperFirst(_.camelCase(`component_${uid}`)),\n });\n });\n\n return acc;\n }, {} as ComponentMap);\n\n strapi.get('components').add(components);\n}\n"],"names":["pathExists","loadFiles","join","_"],"mappings":";;;;;;;AA4BA,eAA8B,eAAe,QAAgB;AAC3D,MAAI,CAAE,MAAMA,IAAAA,WAAW,OAAO,KAAK,KAAK,UAAU,GAAI;AACpD,WAAO;EACT;AAEA,QAAM,MAAM,MAAMC,UAAAA,UAA4B,OAAO,KAAK,KAAK,YAAY,gBAAgB;AAErF,QAAA,aAAa,OAAO,KAAK,GAAG,EAAE,OAAO,CAAC,KAAK,aAAa;AAC5D,WAAO,KAAK,IAAI,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ;AAC1C,YAAM,SAAS,IAAI,QAAQ,EAAE,GAAG;AAE5B,UAAA,CAAC,OAAO,gBAAgB;AAEpB,cAAA,WAAWC,UAAK,OAAO,KAAK,IAAI,YAAY,UAAU,OAAO,YAAY;AAE/E,eAAO,OAAO;AAAA,UACZ,aAAa,GAAG;AAAA,cAAyD,QAAQ;AAAA,QAAA;AAAA,MAErF;AAEA,YAAM,MAA4B,GAAG,QAAQ,IAAI,GAAG;AAEpD,UAAI,GAAG,IAAI,OAAO,OAAO,QAAQ;AAAA,QAC/B,YAAYC,WAAAA,QAAE,UAAU,MAAM;AAAA,QAC9B;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX,WAAW;AAAA,QACX,UAAU,OAAO,YAAYA,WAAAA,QAAE,WAAWA,mBAAE,UAAU,aAAa,GAAG,EAAE,CAAC;AAAA,MAAA,CAC1E;AAAA,IAAA,CACF;AAEM,WAAA;AAAA,EACT,GAAG,CAAkB,CAAA;AAErB,SAAO,IAAI,YAAY,EAAE,IAAI,UAAU;AACzC;;"}
1
+ {"version":3,"file":"components.js","sources":["../../src/loaders/components.ts"],"sourcesContent":["import { join } from 'path';\nimport _ from 'lodash';\nimport { pathExists } from 'fs-extra';\nimport type { Core, Struct, UID } from '@strapi/types';\nimport { loadFiles } from '../utils/load-files';\n\ntype LoadedComponent = {\n collectionName: string;\n __filename__: string;\n __schema__: LoadedComponent;\n uid: string;\n category: string;\n modelName: string;\n globalId: string;\n info: any;\n attributes: any;\n};\n\ntype LoadedComponents = {\n [category: string]: {\n [key: string]: LoadedComponent;\n };\n};\n\ntype ComponentMap = {\n [uid in UID.Component]: Struct.ComponentSchema;\n};\n\nexport default async function loadComponents(strapi: Core.Strapi) {\n if (!(await pathExists(strapi.dirs.dist.components))) {\n return {};\n }\n\n const map = await loadFiles<LoadedComponents>(strapi.dirs.dist.components, '*/*.*(js|json)');\n\n const components = Object.keys(map).reduce((acc, category) => {\n Object.keys(map[category]).forEach((key) => {\n const schema = map[category][key];\n\n if (!schema.collectionName) {\n // NOTE: We're using the filepath from the app directory instead of the dist for information purpose\n const filePath = join(strapi.dirs.app.components, category, schema.__filename__);\n\n return strapi.stopWithError(\n `Component ${key} is missing a \"collectionName\" property.\\nVerify file ${filePath}.`\n );\n }\n\n const uid: UID.Component = `${category}.${key}`;\n\n acc[uid] = Object.assign(schema, {\n __schema__: _.cloneDeep(schema),\n uid,\n category,\n modelType: 'component' as const,\n modelName: key,\n globalId: schema.globalId || _.upperFirst(_.camelCase(`component_${uid}`)),\n });\n });\n\n return acc;\n }, {} as ComponentMap);\n\n strapi.get('components').add(components);\n}\n"],"names":["pathExists","loadFiles","join","_"],"mappings":";;;;;;;AA4BA,eAA8B,eAAe,QAAqB;AAChE,MAAI,CAAE,MAAMA,IAAAA,WAAW,OAAO,KAAK,KAAK,UAAU,GAAI;AACpD,WAAO;EACT;AAEA,QAAM,MAAM,MAAMC,UAAAA,UAA4B,OAAO,KAAK,KAAK,YAAY,gBAAgB;AAErF,QAAA,aAAa,OAAO,KAAK,GAAG,EAAE,OAAO,CAAC,KAAK,aAAa;AAC5D,WAAO,KAAK,IAAI,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ;AAC1C,YAAM,SAAS,IAAI,QAAQ,EAAE,GAAG;AAE5B,UAAA,CAAC,OAAO,gBAAgB;AAEpB,cAAA,WAAWC,UAAK,OAAO,KAAK,IAAI,YAAY,UAAU,OAAO,YAAY;AAE/E,eAAO,OAAO;AAAA,UACZ,aAAa,GAAG;AAAA,cAAyD,QAAQ;AAAA,QAAA;AAAA,MAErF;AAEA,YAAM,MAAqB,GAAG,QAAQ,IAAI,GAAG;AAE7C,UAAI,GAAG,IAAI,OAAO,OAAO,QAAQ;AAAA,QAC/B,YAAYC,WAAAA,QAAE,UAAU,MAAM;AAAA,QAC9B;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX,WAAW;AAAA,QACX,UAAU,OAAO,YAAYA,WAAAA,QAAE,WAAWA,mBAAE,UAAU,aAAa,GAAG,EAAE,CAAC;AAAA,MAAA,CAC1E;AAAA,IAAA,CACF;AAEM,WAAA;AAAA,EACT,GAAG,CAAkB,CAAA;AAErB,SAAO,IAAI,YAAY,EAAE,IAAI,UAAU;AACzC;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"components.mjs","sources":["../../src/loaders/components.ts"],"sourcesContent":["import { join } from 'path';\nimport _ from 'lodash';\nimport { pathExists } from 'fs-extra';\nimport type { Strapi, Common, Schema } from '@strapi/types';\nimport { loadFiles } from '../utils/load-files';\n\ntype LoadedComponent = {\n collectionName: string;\n __filename__: string;\n __schema__: LoadedComponent;\n uid: string;\n category: string;\n modelName: string;\n globalId: string;\n info: any;\n attributes: any;\n};\n\ntype LoadedComponents = {\n [category: string]: {\n [key: string]: LoadedComponent;\n };\n};\n\ntype ComponentMap = {\n [uid in Common.UID.Component]: Schema.Component;\n};\n\nexport default async function loadComponents(strapi: Strapi) {\n if (!(await pathExists(strapi.dirs.dist.components))) {\n return {};\n }\n\n const map = await loadFiles<LoadedComponents>(strapi.dirs.dist.components, '*/*.*(js|json)');\n\n const components = Object.keys(map).reduce((acc, category) => {\n Object.keys(map[category]).forEach((key) => {\n const schema = map[category][key];\n\n if (!schema.collectionName) {\n // NOTE: We're using the filepath from the app directory instead of the dist for information purpose\n const filePath = join(strapi.dirs.app.components, category, schema.__filename__);\n\n return strapi.stopWithError(\n `Component ${key} is missing a \"collectionName\" property.\\nVerify file ${filePath}.`\n );\n }\n\n const uid: Common.UID.Component = `${category}.${key}`;\n\n acc[uid] = Object.assign(schema, {\n __schema__: _.cloneDeep(schema),\n uid,\n category,\n modelType: 'component' as const,\n modelName: key,\n globalId: schema.globalId || _.upperFirst(_.camelCase(`component_${uid}`)),\n });\n });\n\n return acc;\n }, {} as ComponentMap);\n\n strapi.get('components').add(components);\n}\n"],"names":[],"mappings":";;;;AA4BA,eAA8B,eAAe,QAAgB;AAC3D,MAAI,CAAE,MAAM,WAAW,OAAO,KAAK,KAAK,UAAU,GAAI;AACpD,WAAO;EACT;AAEA,QAAM,MAAM,MAAM,UAA4B,OAAO,KAAK,KAAK,YAAY,gBAAgB;AAErF,QAAA,aAAa,OAAO,KAAK,GAAG,EAAE,OAAO,CAAC,KAAK,aAAa;AAC5D,WAAO,KAAK,IAAI,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ;AAC1C,YAAM,SAAS,IAAI,QAAQ,EAAE,GAAG;AAE5B,UAAA,CAAC,OAAO,gBAAgB;AAEpB,cAAA,WAAW,KAAK,OAAO,KAAK,IAAI,YAAY,UAAU,OAAO,YAAY;AAE/E,eAAO,OAAO;AAAA,UACZ,aAAa,GAAG;AAAA,cAAyD,QAAQ;AAAA,QAAA;AAAA,MAErF;AAEA,YAAM,MAA4B,GAAG,QAAQ,IAAI,GAAG;AAEpD,UAAI,GAAG,IAAI,OAAO,OAAO,QAAQ;AAAA,QAC/B,YAAY,EAAE,UAAU,MAAM;AAAA,QAC9B;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX,WAAW;AAAA,QACX,UAAU,OAAO,YAAY,EAAE,WAAW,EAAE,UAAU,aAAa,GAAG,EAAE,CAAC;AAAA,MAAA,CAC1E;AAAA,IAAA,CACF;AAEM,WAAA;AAAA,EACT,GAAG,CAAkB,CAAA;AAErB,SAAO,IAAI,YAAY,EAAE,IAAI,UAAU;AACzC;"}
1
+ {"version":3,"file":"components.mjs","sources":["../../src/loaders/components.ts"],"sourcesContent":["import { join } from 'path';\nimport _ from 'lodash';\nimport { pathExists } from 'fs-extra';\nimport type { Core, Struct, UID } from '@strapi/types';\nimport { loadFiles } from '../utils/load-files';\n\ntype LoadedComponent = {\n collectionName: string;\n __filename__: string;\n __schema__: LoadedComponent;\n uid: string;\n category: string;\n modelName: string;\n globalId: string;\n info: any;\n attributes: any;\n};\n\ntype LoadedComponents = {\n [category: string]: {\n [key: string]: LoadedComponent;\n };\n};\n\ntype ComponentMap = {\n [uid in UID.Component]: Struct.ComponentSchema;\n};\n\nexport default async function loadComponents(strapi: Core.Strapi) {\n if (!(await pathExists(strapi.dirs.dist.components))) {\n return {};\n }\n\n const map = await loadFiles<LoadedComponents>(strapi.dirs.dist.components, '*/*.*(js|json)');\n\n const components = Object.keys(map).reduce((acc, category) => {\n Object.keys(map[category]).forEach((key) => {\n const schema = map[category][key];\n\n if (!schema.collectionName) {\n // NOTE: We're using the filepath from the app directory instead of the dist for information purpose\n const filePath = join(strapi.dirs.app.components, category, schema.__filename__);\n\n return strapi.stopWithError(\n `Component ${key} is missing a \"collectionName\" property.\\nVerify file ${filePath}.`\n );\n }\n\n const uid: UID.Component = `${category}.${key}`;\n\n acc[uid] = Object.assign(schema, {\n __schema__: _.cloneDeep(schema),\n uid,\n category,\n modelType: 'component' as const,\n modelName: key,\n globalId: schema.globalId || _.upperFirst(_.camelCase(`component_${uid}`)),\n });\n });\n\n return acc;\n }, {} as ComponentMap);\n\n strapi.get('components').add(components);\n}\n"],"names":[],"mappings":";;;;AA4BA,eAA8B,eAAe,QAAqB;AAChE,MAAI,CAAE,MAAM,WAAW,OAAO,KAAK,KAAK,UAAU,GAAI;AACpD,WAAO;EACT;AAEA,QAAM,MAAM,MAAM,UAA4B,OAAO,KAAK,KAAK,YAAY,gBAAgB;AAErF,QAAA,aAAa,OAAO,KAAK,GAAG,EAAE,OAAO,CAAC,KAAK,aAAa;AAC5D,WAAO,KAAK,IAAI,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ;AAC1C,YAAM,SAAS,IAAI,QAAQ,EAAE,GAAG;AAE5B,UAAA,CAAC,OAAO,gBAAgB;AAEpB,cAAA,WAAW,KAAK,OAAO,KAAK,IAAI,YAAY,UAAU,OAAO,YAAY;AAE/E,eAAO,OAAO;AAAA,UACZ,aAAa,GAAG;AAAA,cAAyD,QAAQ;AAAA,QAAA;AAAA,MAErF;AAEA,YAAM,MAAqB,GAAG,QAAQ,IAAI,GAAG;AAE7C,UAAI,GAAG,IAAI,OAAO,OAAO,QAAQ;AAAA,QAC/B,YAAY,EAAE,UAAU,MAAM;AAAA,QAC9B;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX,WAAW;AAAA,QACX,UAAU,OAAO,YAAY,EAAE,WAAW,EAAE,UAAU,aAAa,GAAG,EAAE,CAAC;AAAA,MAAA,CAC1E;AAAA,IAAA,CACF;AAEM,WAAA;AAAA,EACT,GAAG,CAAkB,CAAA;AAErB,SAAO,IAAI,YAAY,EAAE,IAAI,UAAU;AACzC;"}
@@ -1,3 +1,3 @@
1
- import type { Strapi } from '@strapi/types';
2
- export declare function loadApplicationContext(strapi: Strapi): Promise<void>;
1
+ import type { Core } from '@strapi/types';
2
+ export declare function loadApplicationContext(strapi: Core.Strapi): Promise<void>;
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/loaders/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAY5C,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,MAAM,iBAY1D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/loaders/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAW1C,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,iBAW/D"}
@@ -6,7 +6,6 @@ const middlewares = require("./middlewares.js");
6
6
  const components = require("./components.js");
7
7
  const policies = require("./policies.js");
8
8
  const index = require("./plugins/index.js");
9
- const admin = require("./admin.js");
10
9
  const sanitizers = require("./sanitizers.js");
11
10
  const validators = require("./validators.js");
12
11
  async function loadApplicationContext(strapi) {
@@ -15,7 +14,6 @@ async function loadApplicationContext(strapi) {
15
14
  sanitizers(strapi),
16
15
  validators(strapi),
17
16
  index(strapi),
18
- admin(strapi),
19
17
  apis(strapi),
20
18
  components(strapi),
21
19
  middlewares(strapi),