@strapi/core 0.0.0-experimental.e350eaa6073e65190102b4b798c32c287053cc02 → 0.0.0-experimental.e576af447d9f97e89e24c6daa32d8f714376cd5f

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 (687) hide show
  1. package/dist/Strapi.d.ts.map +1 -1
  2. package/dist/configuration/index.d.ts.map +1 -1
  3. package/dist/index.js +10101 -27
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +10079 -29
  6. package/dist/index.mjs.map +1 -1
  7. package/dist/middlewares/body.d.ts.map +1 -1
  8. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +2 -2
  9. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  10. package/dist/migrations/draft-publish.d.ts +1 -1
  11. package/dist/migrations/draft-publish.d.ts.map +1 -1
  12. package/dist/services/document-service/components.d.ts.map +1 -1
  13. package/dist/services/document-service/draft-and-publish.d.ts +1 -1
  14. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  15. package/dist/services/document-service/events.d.ts +1 -1
  16. package/dist/services/document-service/events.d.ts.map +1 -1
  17. package/dist/services/document-service/repository.d.ts.map +1 -1
  18. package/dist/services/document-service/transform/id-map.d.ts +1 -1
  19. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  20. package/dist/services/document-service/transform/id-transform.d.ts +1 -1
  21. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  22. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  23. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  24. package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
  25. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  26. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
  27. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  28. package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
  29. package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -0
  30. package/dist/services/document-service/utils/populate.d.ts +1 -1
  31. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  32. package/dist/services/document-service/utils/unidirectional-relations.d.ts +1 -1
  33. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -1
  34. package/dist/services/entity-validator/index.d.ts +1 -1
  35. package/dist/services/entity-validator/index.d.ts.map +1 -1
  36. package/dist/services/metrics/middleware.d.ts.map +1 -1
  37. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  38. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  39. package/package.json +25 -26
  40. package/dist/Strapi.js +0 -434
  41. package/dist/Strapi.js.map +0 -1
  42. package/dist/Strapi.mjs +0 -413
  43. package/dist/Strapi.mjs.map +0 -1
  44. package/dist/compile.js +0 -18
  45. package/dist/compile.js.map +0 -1
  46. package/dist/compile.mjs +0 -17
  47. package/dist/compile.mjs.map +0 -1
  48. package/dist/configuration/config-loader.js +0 -105
  49. package/dist/configuration/config-loader.js.map +0 -1
  50. package/dist/configuration/config-loader.mjs +0 -103
  51. package/dist/configuration/config-loader.mjs.map +0 -1
  52. package/dist/configuration/get-dirs.js +0 -31
  53. package/dist/configuration/get-dirs.js.map +0 -1
  54. package/dist/configuration/get-dirs.mjs +0 -31
  55. package/dist/configuration/get-dirs.mjs.map +0 -1
  56. package/dist/configuration/index.js +0 -85
  57. package/dist/configuration/index.js.map +0 -1
  58. package/dist/configuration/index.mjs +0 -80
  59. package/dist/configuration/index.mjs.map +0 -1
  60. package/dist/configuration/urls.js +0 -68
  61. package/dist/configuration/urls.js.map +0 -1
  62. package/dist/configuration/urls.mjs +0 -66
  63. package/dist/configuration/urls.mjs.map +0 -1
  64. package/dist/container.js +0 -30
  65. package/dist/container.js.map +0 -1
  66. package/dist/container.mjs +0 -30
  67. package/dist/container.mjs.map +0 -1
  68. package/dist/core-api/controller/collection-type.js +0 -84
  69. package/dist/core-api/controller/collection-type.js.map +0 -1
  70. package/dist/core-api/controller/collection-type.mjs +0 -84
  71. package/dist/core-api/controller/collection-type.mjs.map +0 -1
  72. package/dist/core-api/controller/index.js +0 -52
  73. package/dist/core-api/controller/index.js.map +0 -1
  74. package/dist/core-api/controller/index.mjs +0 -52
  75. package/dist/core-api/controller/index.mjs.map +0 -1
  76. package/dist/core-api/controller/single-type.js +0 -46
  77. package/dist/core-api/controller/single-type.js.map +0 -1
  78. package/dist/core-api/controller/single-type.mjs +0 -46
  79. package/dist/core-api/controller/single-type.mjs.map +0 -1
  80. package/dist/core-api/controller/transform.js +0 -76
  81. package/dist/core-api/controller/transform.js.map +0 -1
  82. package/dist/core-api/controller/transform.mjs +0 -76
  83. package/dist/core-api/controller/transform.mjs.map +0 -1
  84. package/dist/core-api/routes/index.js +0 -67
  85. package/dist/core-api/routes/index.js.map +0 -1
  86. package/dist/core-api/routes/index.mjs +0 -67
  87. package/dist/core-api/routes/index.mjs.map +0 -1
  88. package/dist/core-api/service/collection-type.js +0 -67
  89. package/dist/core-api/service/collection-type.js.map +0 -1
  90. package/dist/core-api/service/collection-type.mjs +0 -67
  91. package/dist/core-api/service/collection-type.mjs.map +0 -1
  92. package/dist/core-api/service/core-service.js +0 -12
  93. package/dist/core-api/service/core-service.js.map +0 -1
  94. package/dist/core-api/service/core-service.mjs +0 -12
  95. package/dist/core-api/service/core-service.mjs.map +0 -1
  96. package/dist/core-api/service/index.js +0 -16
  97. package/dist/core-api/service/index.js.map +0 -1
  98. package/dist/core-api/service/index.mjs +0 -16
  99. package/dist/core-api/service/index.mjs.map +0 -1
  100. package/dist/core-api/service/pagination.js +0 -52
  101. package/dist/core-api/service/pagination.js.map +0 -1
  102. package/dist/core-api/service/pagination.mjs +0 -52
  103. package/dist/core-api/service/pagination.mjs.map +0 -1
  104. package/dist/core-api/service/single-type.js +0 -45
  105. package/dist/core-api/service/single-type.js.map +0 -1
  106. package/dist/core-api/service/single-type.mjs +0 -45
  107. package/dist/core-api/service/single-type.mjs.map +0 -1
  108. package/dist/domain/content-type/index.js +0 -111
  109. package/dist/domain/content-type/index.js.map +0 -1
  110. package/dist/domain/content-type/index.mjs +0 -109
  111. package/dist/domain/content-type/index.mjs.map +0 -1
  112. package/dist/domain/content-type/validator.js +0 -77
  113. package/dist/domain/content-type/validator.js.map +0 -1
  114. package/dist/domain/content-type/validator.mjs +0 -75
  115. package/dist/domain/content-type/validator.mjs.map +0 -1
  116. package/dist/domain/module/index.js +0 -107
  117. package/dist/domain/module/index.js.map +0 -1
  118. package/dist/domain/module/index.mjs +0 -105
  119. package/dist/domain/module/index.mjs.map +0 -1
  120. package/dist/domain/module/validation.js +0 -25
  121. package/dist/domain/module/validation.js.map +0 -1
  122. package/dist/domain/module/validation.mjs +0 -25
  123. package/dist/domain/module/validation.mjs.map +0 -1
  124. package/dist/ee/index.js +0 -158
  125. package/dist/ee/index.js.map +0 -1
  126. package/dist/ee/index.mjs +0 -159
  127. package/dist/ee/index.mjs.map +0 -1
  128. package/dist/ee/license.js +0 -91
  129. package/dist/ee/license.js.map +0 -1
  130. package/dist/ee/license.mjs +0 -88
  131. package/dist/ee/license.mjs.map +0 -1
  132. package/dist/factories.js +0 -80
  133. package/dist/factories.js.map +0 -1
  134. package/dist/factories.mjs +0 -80
  135. package/dist/factories.mjs.map +0 -1
  136. package/dist/loaders/admin.js +0 -26
  137. package/dist/loaders/admin.js.map +0 -1
  138. package/dist/loaders/admin.mjs +0 -25
  139. package/dist/loaders/admin.mjs.map +0 -1
  140. package/dist/loaders/apis.js +0 -137
  141. package/dist/loaders/apis.js.map +0 -1
  142. package/dist/loaders/apis.mjs +0 -135
  143. package/dist/loaders/apis.mjs.map +0 -1
  144. package/dist/loaders/components.js +0 -38
  145. package/dist/loaders/components.js.map +0 -1
  146. package/dist/loaders/components.mjs +0 -37
  147. package/dist/loaders/components.mjs.map +0 -1
  148. package/dist/loaders/index.js +0 -24
  149. package/dist/loaders/index.js.map +0 -1
  150. package/dist/loaders/index.mjs +0 -24
  151. package/dist/loaders/index.mjs.map +0 -1
  152. package/dist/loaders/middlewares.js +0 -31
  153. package/dist/loaders/middlewares.js.map +0 -1
  154. package/dist/loaders/middlewares.mjs +0 -30
  155. package/dist/loaders/middlewares.mjs.map +0 -1
  156. package/dist/loaders/plugins/get-enabled-plugins.js +0 -141
  157. package/dist/loaders/plugins/get-enabled-plugins.js.map +0 -1
  158. package/dist/loaders/plugins/get-enabled-plugins.mjs +0 -117
  159. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +0 -1
  160. package/dist/loaders/plugins/get-user-plugins-config.js +0 -27
  161. package/dist/loaders/plugins/get-user-plugins-config.js.map +0 -1
  162. package/dist/loaders/plugins/get-user-plugins-config.mjs +0 -25
  163. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +0 -1
  164. package/dist/loaders/plugins/index.js +0 -144
  165. package/dist/loaders/plugins/index.js.map +0 -1
  166. package/dist/loaders/plugins/index.mjs +0 -125
  167. package/dist/loaders/plugins/index.mjs.map +0 -1
  168. package/dist/loaders/policies.js +0 -25
  169. package/dist/loaders/policies.js.map +0 -1
  170. package/dist/loaders/policies.mjs +0 -24
  171. package/dist/loaders/policies.mjs.map +0 -1
  172. package/dist/loaders/sanitizers.js +0 -6
  173. package/dist/loaders/sanitizers.js.map +0 -1
  174. package/dist/loaders/sanitizers.mjs +0 -7
  175. package/dist/loaders/sanitizers.mjs.map +0 -1
  176. package/dist/loaders/src-index.js +0 -33
  177. package/dist/loaders/src-index.js.map +0 -1
  178. package/dist/loaders/src-index.mjs +0 -34
  179. package/dist/loaders/src-index.mjs.map +0 -1
  180. package/dist/loaders/validators.js +0 -6
  181. package/dist/loaders/validators.js.map +0 -1
  182. package/dist/loaders/validators.mjs +0 -7
  183. package/dist/loaders/validators.mjs.map +0 -1
  184. package/dist/middlewares/body.js +0 -65
  185. package/dist/middlewares/body.js.map +0 -1
  186. package/dist/middlewares/body.mjs +0 -61
  187. package/dist/middlewares/body.mjs.map +0 -1
  188. package/dist/middlewares/compression.js +0 -8
  189. package/dist/middlewares/compression.js.map +0 -1
  190. package/dist/middlewares/compression.mjs +0 -6
  191. package/dist/middlewares/compression.mjs.map +0 -1
  192. package/dist/middlewares/cors.js +0 -53
  193. package/dist/middlewares/cors.js.map +0 -1
  194. package/dist/middlewares/cors.mjs +0 -51
  195. package/dist/middlewares/cors.mjs.map +0 -1
  196. package/dist/middlewares/errors.js +0 -33
  197. package/dist/middlewares/errors.js.map +0 -1
  198. package/dist/middlewares/errors.mjs +0 -33
  199. package/dist/middlewares/errors.mjs.map +0 -1
  200. package/dist/middlewares/favicon.js +0 -22
  201. package/dist/middlewares/favicon.js.map +0 -1
  202. package/dist/middlewares/favicon.mjs +0 -20
  203. package/dist/middlewares/favicon.mjs.map +0 -1
  204. package/dist/middlewares/index.js +0 -34
  205. package/dist/middlewares/index.js.map +0 -1
  206. package/dist/middlewares/index.mjs +0 -34
  207. package/dist/middlewares/index.mjs.map +0 -1
  208. package/dist/middlewares/ip.js +0 -8
  209. package/dist/middlewares/ip.js.map +0 -1
  210. package/dist/middlewares/ip.mjs +0 -6
  211. package/dist/middlewares/ip.mjs.map +0 -1
  212. package/dist/middlewares/logger.js +0 -12
  213. package/dist/middlewares/logger.js.map +0 -1
  214. package/dist/middlewares/logger.mjs +0 -12
  215. package/dist/middlewares/logger.mjs.map +0 -1
  216. package/dist/middlewares/powered-by.js +0 -14
  217. package/dist/middlewares/powered-by.js.map +0 -1
  218. package/dist/middlewares/powered-by.mjs +0 -14
  219. package/dist/middlewares/powered-by.mjs.map +0 -1
  220. package/dist/middlewares/public.js +0 -34
  221. package/dist/middlewares/public.js.map +0 -1
  222. package/dist/middlewares/public.mjs +0 -32
  223. package/dist/middlewares/public.mjs.map +0 -1
  224. package/dist/middlewares/query.js +0 -40
  225. package/dist/middlewares/query.js.map +0 -1
  226. package/dist/middlewares/query.mjs +0 -38
  227. package/dist/middlewares/query.mjs.map +0 -1
  228. package/dist/middlewares/response-time.js +0 -12
  229. package/dist/middlewares/response-time.js.map +0 -1
  230. package/dist/middlewares/response-time.mjs +0 -12
  231. package/dist/middlewares/response-time.mjs.map +0 -1
  232. package/dist/middlewares/responses.js +0 -15
  233. package/dist/middlewares/responses.js.map +0 -1
  234. package/dist/middlewares/responses.mjs +0 -15
  235. package/dist/middlewares/responses.mjs.map +0 -1
  236. package/dist/middlewares/security.js +0 -78
  237. package/dist/middlewares/security.js.map +0 -1
  238. package/dist/middlewares/security.mjs +0 -76
  239. package/dist/middlewares/security.mjs.map +0 -1
  240. package/dist/middlewares/session.js +0 -30
  241. package/dist/middlewares/session.js.map +0 -1
  242. package/dist/middlewares/session.mjs +0 -28
  243. package/dist/middlewares/session.mjs.map +0 -1
  244. package/dist/migrations/database/5.0.0-discard-drafts.js +0 -106
  245. package/dist/migrations/database/5.0.0-discard-drafts.js.map +0 -1
  246. package/dist/migrations/database/5.0.0-discard-drafts.mjs +0 -106
  247. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +0 -1
  248. package/dist/migrations/draft-publish.js +0 -42
  249. package/dist/migrations/draft-publish.js.map +0 -1
  250. package/dist/migrations/draft-publish.mjs +0 -42
  251. package/dist/migrations/draft-publish.mjs.map +0 -1
  252. package/dist/migrations/i18n.js +0 -54
  253. package/dist/migrations/i18n.js.map +0 -1
  254. package/dist/migrations/i18n.mjs +0 -54
  255. package/dist/migrations/i18n.mjs.map +0 -1
  256. package/dist/migrations/index.js +0 -15
  257. package/dist/migrations/index.js.map +0 -1
  258. package/dist/migrations/index.mjs +0 -15
  259. package/dist/migrations/index.mjs.map +0 -1
  260. package/dist/providers/admin.js +0 -20
  261. package/dist/providers/admin.js.map +0 -1
  262. package/dist/providers/admin.mjs +0 -21
  263. package/dist/providers/admin.mjs.map +0 -1
  264. package/dist/providers/coreStore.js +0 -11
  265. package/dist/providers/coreStore.js.map +0 -1
  266. package/dist/providers/coreStore.mjs +0 -12
  267. package/dist/providers/coreStore.mjs.map +0 -1
  268. package/dist/providers/cron.js +0 -20
  269. package/dist/providers/cron.js.map +0 -1
  270. package/dist/providers/cron.mjs +0 -21
  271. package/dist/providers/cron.mjs.map +0 -1
  272. package/dist/providers/index.js +0 -11
  273. package/dist/providers/index.js.map +0 -1
  274. package/dist/providers/index.mjs +0 -11
  275. package/dist/providers/index.mjs.map +0 -1
  276. package/dist/providers/provider.js +0 -5
  277. package/dist/providers/provider.js.map +0 -1
  278. package/dist/providers/provider.mjs +0 -5
  279. package/dist/providers/provider.mjs.map +0 -1
  280. package/dist/providers/registries.js +0 -35
  281. package/dist/providers/registries.js.map +0 -1
  282. package/dist/providers/registries.mjs +0 -36
  283. package/dist/providers/registries.mjs.map +0 -1
  284. package/dist/providers/telemetry.js +0 -19
  285. package/dist/providers/telemetry.js.map +0 -1
  286. package/dist/providers/telemetry.mjs +0 -20
  287. package/dist/providers/telemetry.mjs.map +0 -1
  288. package/dist/providers/webhooks.js +0 -30
  289. package/dist/providers/webhooks.js.map +0 -1
  290. package/dist/providers/webhooks.mjs +0 -31
  291. package/dist/providers/webhooks.mjs.map +0 -1
  292. package/dist/registries/apis.js +0 -23
  293. package/dist/registries/apis.js.map +0 -1
  294. package/dist/registries/apis.mjs +0 -24
  295. package/dist/registries/apis.mjs.map +0 -1
  296. package/dist/registries/components.js +0 -45
  297. package/dist/registries/components.js.map +0 -1
  298. package/dist/registries/components.mjs +0 -46
  299. package/dist/registries/components.mjs.map +0 -1
  300. package/dist/registries/content-types.js +0 -70
  301. package/dist/registries/content-types.js.map +0 -1
  302. package/dist/registries/content-types.mjs +0 -71
  303. package/dist/registries/content-types.mjs.map +0 -1
  304. package/dist/registries/controllers.js +0 -80
  305. package/dist/registries/controllers.js.map +0 -1
  306. package/dist/registries/controllers.mjs +0 -81
  307. package/dist/registries/controllers.mjs.map +0 -1
  308. package/dist/registries/custom-fields.js +0 -71
  309. package/dist/registries/custom-fields.js.map +0 -1
  310. package/dist/registries/custom-fields.mjs +0 -72
  311. package/dist/registries/custom-fields.mjs.map +0 -1
  312. package/dist/registries/hooks.js +0 -58
  313. package/dist/registries/hooks.js.map +0 -1
  314. package/dist/registries/hooks.mjs +0 -59
  315. package/dist/registries/hooks.mjs.map +0 -1
  316. package/dist/registries/middlewares.js +0 -60
  317. package/dist/registries/middlewares.js.map +0 -1
  318. package/dist/registries/middlewares.mjs +0 -61
  319. package/dist/registries/middlewares.mjs.map +0 -1
  320. package/dist/registries/models.js +0 -16
  321. package/dist/registries/models.js.map +0 -1
  322. package/dist/registries/models.mjs +0 -16
  323. package/dist/registries/models.mjs.map +0 -1
  324. package/dist/registries/modules.js +0 -39
  325. package/dist/registries/modules.js.map +0 -1
  326. package/dist/registries/modules.mjs +0 -40
  327. package/dist/registries/modules.mjs.map +0 -1
  328. package/dist/registries/namespace.js +0 -27
  329. package/dist/registries/namespace.js.map +0 -1
  330. package/dist/registries/namespace.mjs +0 -27
  331. package/dist/registries/namespace.mjs.map +0 -1
  332. package/dist/registries/plugins.js +0 -23
  333. package/dist/registries/plugins.js.map +0 -1
  334. package/dist/registries/plugins.mjs +0 -24
  335. package/dist/registries/plugins.mjs.map +0 -1
  336. package/dist/registries/policies.js +0 -108
  337. package/dist/registries/policies.js.map +0 -1
  338. package/dist/registries/policies.mjs +0 -109
  339. package/dist/registries/policies.mjs.map +0 -1
  340. package/dist/registries/sanitizers.js +0 -25
  341. package/dist/registries/sanitizers.js.map +0 -1
  342. package/dist/registries/sanitizers.mjs +0 -24
  343. package/dist/registries/sanitizers.mjs.map +0 -1
  344. package/dist/registries/services.js +0 -80
  345. package/dist/registries/services.js.map +0 -1
  346. package/dist/registries/services.mjs +0 -81
  347. package/dist/registries/services.mjs.map +0 -1
  348. package/dist/registries/validators.js +0 -25
  349. package/dist/registries/validators.js.map +0 -1
  350. package/dist/registries/validators.mjs +0 -24
  351. package/dist/registries/validators.mjs.map +0 -1
  352. package/dist/services/auth/index.js +0 -81
  353. package/dist/services/auth/index.js.map +0 -1
  354. package/dist/services/auth/index.mjs +0 -80
  355. package/dist/services/auth/index.mjs.map +0 -1
  356. package/dist/services/config.js +0 -47
  357. package/dist/services/config.js.map +0 -1
  358. package/dist/services/config.mjs +0 -47
  359. package/dist/services/config.mjs.map +0 -1
  360. package/dist/services/content-api/index.js +0 -85
  361. package/dist/services/content-api/index.js.map +0 -1
  362. package/dist/services/content-api/index.mjs +0 -84
  363. package/dist/services/content-api/index.mjs.map +0 -1
  364. package/dist/services/content-api/permissions/engine.js +0 -7
  365. package/dist/services/content-api/permissions/engine.js.map +0 -1
  366. package/dist/services/content-api/permissions/engine.mjs +0 -6
  367. package/dist/services/content-api/permissions/engine.mjs.map +0 -1
  368. package/dist/services/content-api/permissions/index.js +0 -87
  369. package/dist/services/content-api/permissions/index.js.map +0 -1
  370. package/dist/services/content-api/permissions/index.mjs +0 -86
  371. package/dist/services/content-api/permissions/index.mjs.map +0 -1
  372. package/dist/services/content-api/permissions/providers/action.js +0 -16
  373. package/dist/services/content-api/permissions/providers/action.js.map +0 -1
  374. package/dist/services/content-api/permissions/providers/action.mjs +0 -17
  375. package/dist/services/content-api/permissions/providers/action.mjs.map +0 -1
  376. package/dist/services/content-api/permissions/providers/condition.js +0 -16
  377. package/dist/services/content-api/permissions/providers/condition.js.map +0 -1
  378. package/dist/services/content-api/permissions/providers/condition.mjs +0 -17
  379. package/dist/services/content-api/permissions/providers/condition.mjs.map +0 -1
  380. package/dist/services/core-store.js +0 -107
  381. package/dist/services/core-store.js.map +0 -1
  382. package/dist/services/core-store.mjs +0 -107
  383. package/dist/services/core-store.mjs.map +0 -1
  384. package/dist/services/cron.js +0 -67
  385. package/dist/services/cron.js.map +0 -1
  386. package/dist/services/cron.mjs +0 -68
  387. package/dist/services/cron.mjs.map +0 -1
  388. package/dist/services/custom-fields.js +0 -10
  389. package/dist/services/custom-fields.js.map +0 -1
  390. package/dist/services/custom-fields.mjs +0 -11
  391. package/dist/services/custom-fields.mjs.map +0 -1
  392. package/dist/services/document-service/attributes/index.js +0 -22
  393. package/dist/services/document-service/attributes/index.js.map +0 -1
  394. package/dist/services/document-service/attributes/index.mjs +0 -22
  395. package/dist/services/document-service/attributes/index.mjs.map +0 -1
  396. package/dist/services/document-service/attributes/transforms.js +0 -20
  397. package/dist/services/document-service/attributes/transforms.js.map +0 -1
  398. package/dist/services/document-service/attributes/transforms.mjs +0 -19
  399. package/dist/services/document-service/attributes/transforms.mjs.map +0 -1
  400. package/dist/services/document-service/common.js +0 -7
  401. package/dist/services/document-service/common.js.map +0 -1
  402. package/dist/services/document-service/common.mjs +0 -7
  403. package/dist/services/document-service/common.mjs.map +0 -1
  404. package/dist/services/document-service/components.js +0 -288
  405. package/dist/services/document-service/components.js.map +0 -1
  406. package/dist/services/document-service/components.mjs +0 -286
  407. package/dist/services/document-service/components.mjs.map +0 -1
  408. package/dist/services/document-service/draft-and-publish.js +0 -69
  409. package/dist/services/document-service/draft-and-publish.js.map +0 -1
  410. package/dist/services/document-service/draft-and-publish.mjs +0 -69
  411. package/dist/services/document-service/draft-and-publish.mjs.map +0 -1
  412. package/dist/services/document-service/entries.js +0 -95
  413. package/dist/services/document-service/entries.js.map +0 -1
  414. package/dist/services/document-service/entries.mjs +0 -95
  415. package/dist/services/document-service/entries.mjs.map +0 -1
  416. package/dist/services/document-service/events.js +0 -47
  417. package/dist/services/document-service/events.js.map +0 -1
  418. package/dist/services/document-service/events.mjs +0 -47
  419. package/dist/services/document-service/events.mjs.map +0 -1
  420. package/dist/services/document-service/index.js +0 -36
  421. package/dist/services/document-service/index.js.map +0 -1
  422. package/dist/services/document-service/index.mjs +0 -36
  423. package/dist/services/document-service/index.mjs.map +0 -1
  424. package/dist/services/document-service/internationalization.js +0 -63
  425. package/dist/services/document-service/internationalization.js.map +0 -1
  426. package/dist/services/document-service/internationalization.mjs +0 -63
  427. package/dist/services/document-service/internationalization.mjs.map +0 -1
  428. package/dist/services/document-service/middlewares/errors.js +0 -25
  429. package/dist/services/document-service/middlewares/errors.js.map +0 -1
  430. package/dist/services/document-service/middlewares/errors.mjs +0 -25
  431. package/dist/services/document-service/middlewares/errors.mjs.map +0 -1
  432. package/dist/services/document-service/middlewares/middleware-manager.js +0 -49
  433. package/dist/services/document-service/middlewares/middleware-manager.js.map +0 -1
  434. package/dist/services/document-service/middlewares/middleware-manager.mjs +0 -49
  435. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +0 -1
  436. package/dist/services/document-service/params.js +0 -8
  437. package/dist/services/document-service/params.js.map +0 -1
  438. package/dist/services/document-service/params.mjs +0 -8
  439. package/dist/services/document-service/params.mjs.map +0 -1
  440. package/dist/services/document-service/repository.js +0 -329
  441. package/dist/services/document-service/repository.js.map +0 -1
  442. package/dist/services/document-service/repository.mjs +0 -329
  443. package/dist/services/document-service/repository.mjs.map +0 -1
  444. package/dist/services/document-service/transform/data.js +0 -15
  445. package/dist/services/document-service/transform/data.js.map +0 -1
  446. package/dist/services/document-service/transform/data.mjs +0 -15
  447. package/dist/services/document-service/transform/data.mjs.map +0 -1
  448. package/dist/services/document-service/transform/fields.js +0 -24
  449. package/dist/services/document-service/transform/fields.js.map +0 -1
  450. package/dist/services/document-service/transform/fields.mjs +0 -24
  451. package/dist/services/document-service/transform/fields.mjs.map +0 -1
  452. package/dist/services/document-service/transform/id-map.js +0 -85
  453. package/dist/services/document-service/transform/id-map.js.map +0 -1
  454. package/dist/services/document-service/transform/id-map.mjs +0 -85
  455. package/dist/services/document-service/transform/id-map.mjs.map +0 -1
  456. package/dist/services/document-service/transform/id-transform.js +0 -33
  457. package/dist/services/document-service/transform/id-transform.js.map +0 -1
  458. package/dist/services/document-service/transform/id-transform.mjs +0 -33
  459. package/dist/services/document-service/transform/id-transform.mjs.map +0 -1
  460. package/dist/services/document-service/transform/populate.js +0 -21
  461. package/dist/services/document-service/transform/populate.js.map +0 -1
  462. package/dist/services/document-service/transform/populate.mjs +0 -21
  463. package/dist/services/document-service/transform/populate.mjs.map +0 -1
  464. package/dist/services/document-service/transform/query.js +0 -9
  465. package/dist/services/document-service/transform/query.js.map +0 -1
  466. package/dist/services/document-service/transform/query.mjs +0 -9
  467. package/dist/services/document-service/transform/query.mjs.map +0 -1
  468. package/dist/services/document-service/transform/relations/extract/data-ids.js +0 -64
  469. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +0 -1
  470. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +0 -64
  471. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +0 -1
  472. package/dist/services/document-service/transform/relations/transform/data-ids.js +0 -85
  473. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +0 -1
  474. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +0 -85
  475. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +0 -1
  476. package/dist/services/document-service/transform/relations/transform/default-locale.js +0 -32
  477. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +0 -1
  478. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +0 -32
  479. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +0 -1
  480. package/dist/services/document-service/transform/relations/utils/dp.js +0 -30
  481. package/dist/services/document-service/transform/relations/utils/dp.js.map +0 -1
  482. package/dist/services/document-service/transform/relations/utils/dp.mjs +0 -30
  483. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +0 -1
  484. package/dist/services/document-service/transform/relations/utils/i18n.js +0 -25
  485. package/dist/services/document-service/transform/relations/utils/i18n.js.map +0 -1
  486. package/dist/services/document-service/transform/relations/utils/i18n.mjs +0 -25
  487. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +0 -1
  488. package/dist/services/document-service/transform/relations/utils/map-relation.js +0 -84
  489. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +0 -1
  490. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +0 -84
  491. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +0 -1
  492. package/dist/services/document-service/utils/populate.js +0 -47
  493. package/dist/services/document-service/utils/populate.js.map +0 -1
  494. package/dist/services/document-service/utils/populate.mjs +0 -47
  495. package/dist/services/document-service/utils/populate.mjs.map +0 -1
  496. package/dist/services/document-service/utils/unidirectional-relations.js +0 -68
  497. package/dist/services/document-service/utils/unidirectional-relations.js.map +0 -1
  498. package/dist/services/document-service/utils/unidirectional-relations.mjs +0 -68
  499. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +0 -1
  500. package/dist/services/entity-service/index.js +0 -169
  501. package/dist/services/entity-service/index.js.map +0 -1
  502. package/dist/services/entity-service/index.mjs +0 -167
  503. package/dist/services/entity-service/index.mjs.map +0 -1
  504. package/dist/services/entity-validator/blocks-validator.js +0 -128
  505. package/dist/services/entity-validator/blocks-validator.js.map +0 -1
  506. package/dist/services/entity-validator/blocks-validator.mjs +0 -128
  507. package/dist/services/entity-validator/blocks-validator.mjs.map +0 -1
  508. package/dist/services/entity-validator/index.js +0 -389
  509. package/dist/services/entity-validator/index.js.map +0 -1
  510. package/dist/services/entity-validator/index.mjs +0 -388
  511. package/dist/services/entity-validator/index.mjs.map +0 -1
  512. package/dist/services/entity-validator/validators.js +0 -241
  513. package/dist/services/entity-validator/validators.js.map +0 -1
  514. package/dist/services/entity-validator/validators.mjs +0 -239
  515. package/dist/services/entity-validator/validators.mjs.map +0 -1
  516. package/dist/services/errors.js +0 -76
  517. package/dist/services/errors.js.map +0 -1
  518. package/dist/services/errors.mjs +0 -74
  519. package/dist/services/errors.mjs.map +0 -1
  520. package/dist/services/event-hub.js +0 -72
  521. package/dist/services/event-hub.js.map +0 -1
  522. package/dist/services/event-hub.mjs +0 -73
  523. package/dist/services/event-hub.mjs.map +0 -1
  524. package/dist/services/features.js +0 -17
  525. package/dist/services/features.js.map +0 -1
  526. package/dist/services/features.mjs +0 -17
  527. package/dist/services/features.mjs.map +0 -1
  528. package/dist/services/fs.js +0 -51
  529. package/dist/services/fs.js.map +0 -1
  530. package/dist/services/fs.mjs +0 -49
  531. package/dist/services/fs.mjs.map +0 -1
  532. package/dist/services/metrics/admin-user-hash.js +0 -14
  533. package/dist/services/metrics/admin-user-hash.js.map +0 -1
  534. package/dist/services/metrics/admin-user-hash.mjs +0 -12
  535. package/dist/services/metrics/admin-user-hash.mjs.map +0 -1
  536. package/dist/services/metrics/index.js +0 -44
  537. package/dist/services/metrics/index.js.map +0 -1
  538. package/dist/services/metrics/index.mjs +0 -45
  539. package/dist/services/metrics/index.mjs.map +0 -1
  540. package/dist/services/metrics/is-truthy.js +0 -9
  541. package/dist/services/metrics/is-truthy.js.map +0 -1
  542. package/dist/services/metrics/is-truthy.mjs +0 -8
  543. package/dist/services/metrics/is-truthy.mjs.map +0 -1
  544. package/dist/services/metrics/middleware.js +0 -25
  545. package/dist/services/metrics/middleware.js.map +0 -1
  546. package/dist/services/metrics/middleware.mjs +0 -26
  547. package/dist/services/metrics/middleware.mjs.map +0 -1
  548. package/dist/services/metrics/rate-limiter.js +0 -21
  549. package/dist/services/metrics/rate-limiter.js.map +0 -1
  550. package/dist/services/metrics/rate-limiter.mjs +0 -22
  551. package/dist/services/metrics/rate-limiter.mjs.map +0 -1
  552. package/dist/services/metrics/sender.js +0 -76
  553. package/dist/services/metrics/sender.js.map +0 -1
  554. package/dist/services/metrics/sender.mjs +0 -70
  555. package/dist/services/metrics/sender.mjs.map +0 -1
  556. package/dist/services/query-params.js +0 -12
  557. package/dist/services/query-params.js.map +0 -1
  558. package/dist/services/query-params.mjs +0 -13
  559. package/dist/services/query-params.mjs.map +0 -1
  560. package/dist/services/reloader.js +0 -36
  561. package/dist/services/reloader.js.map +0 -1
  562. package/dist/services/reloader.mjs +0 -36
  563. package/dist/services/reloader.mjs.map +0 -1
  564. package/dist/services/request-context.js +0 -13
  565. package/dist/services/request-context.js.map +0 -1
  566. package/dist/services/request-context.mjs +0 -14
  567. package/dist/services/request-context.mjs.map +0 -1
  568. package/dist/services/server/admin-api.js +0 -13
  569. package/dist/services/server/admin-api.js.map +0 -1
  570. package/dist/services/server/admin-api.mjs +0 -13
  571. package/dist/services/server/admin-api.mjs.map +0 -1
  572. package/dist/services/server/api.js +0 -30
  573. package/dist/services/server/api.js.map +0 -1
  574. package/dist/services/server/api.mjs +0 -28
  575. package/dist/services/server/api.mjs.map +0 -1
  576. package/dist/services/server/compose-endpoint.js +0 -117
  577. package/dist/services/server/compose-endpoint.js.map +0 -1
  578. package/dist/services/server/compose-endpoint.mjs +0 -116
  579. package/dist/services/server/compose-endpoint.mjs.map +0 -1
  580. package/dist/services/server/content-api.js +0 -12
  581. package/dist/services/server/content-api.js.map +0 -1
  582. package/dist/services/server/content-api.mjs +0 -12
  583. package/dist/services/server/content-api.mjs.map +0 -1
  584. package/dist/services/server/http-server.js +0 -50
  585. package/dist/services/server/http-server.js.map +0 -1
  586. package/dist/services/server/http-server.mjs +0 -48
  587. package/dist/services/server/http-server.mjs.map +0 -1
  588. package/dist/services/server/index.js +0 -87
  589. package/dist/services/server/index.js.map +0 -1
  590. package/dist/services/server/index.mjs +0 -85
  591. package/dist/services/server/index.mjs.map +0 -1
  592. package/dist/services/server/koa.js +0 -52
  593. package/dist/services/server/koa.js.map +0 -1
  594. package/dist/services/server/koa.mjs +0 -48
  595. package/dist/services/server/koa.mjs.map +0 -1
  596. package/dist/services/server/middleware.js +0 -92
  597. package/dist/services/server/middleware.js.map +0 -1
  598. package/dist/services/server/middleware.mjs +0 -90
  599. package/dist/services/server/middleware.mjs.map +0 -1
  600. package/dist/services/server/policy.js +0 -20
  601. package/dist/services/server/policy.js.map +0 -1
  602. package/dist/services/server/policy.mjs +0 -20
  603. package/dist/services/server/policy.mjs.map +0 -1
  604. package/dist/services/server/register-middlewares.js +0 -72
  605. package/dist/services/server/register-middlewares.js.map +0 -1
  606. package/dist/services/server/register-middlewares.mjs +0 -73
  607. package/dist/services/server/register-middlewares.mjs.map +0 -1
  608. package/dist/services/server/register-routes.js +0 -76
  609. package/dist/services/server/register-routes.js.map +0 -1
  610. package/dist/services/server/register-routes.mjs +0 -75
  611. package/dist/services/server/register-routes.mjs.map +0 -1
  612. package/dist/services/server/routing.js +0 -91
  613. package/dist/services/server/routing.js.map +0 -1
  614. package/dist/services/server/routing.mjs +0 -89
  615. package/dist/services/server/routing.mjs.map +0 -1
  616. package/dist/services/utils/dynamic-zones.js +0 -17
  617. package/dist/services/utils/dynamic-zones.js.map +0 -1
  618. package/dist/services/utils/dynamic-zones.mjs +0 -18
  619. package/dist/services/utils/dynamic-zones.mjs.map +0 -1
  620. package/dist/services/webhook-runner.js +0 -133
  621. package/dist/services/webhook-runner.js.map +0 -1
  622. package/dist/services/webhook-runner.mjs +0 -131
  623. package/dist/services/webhook-runner.mjs.map +0 -1
  624. package/dist/services/webhook-store.js +0 -110
  625. package/dist/services/webhook-store.js.map +0 -1
  626. package/dist/services/webhook-store.mjs +0 -110
  627. package/dist/services/webhook-store.mjs.map +0 -1
  628. package/dist/services/worker-queue.js +0 -56
  629. package/dist/services/worker-queue.js.map +0 -1
  630. package/dist/services/worker-queue.mjs +0 -55
  631. package/dist/services/worker-queue.mjs.map +0 -1
  632. package/dist/utils/convert-custom-field-type.js +0 -24
  633. package/dist/utils/convert-custom-field-type.js.map +0 -1
  634. package/dist/utils/convert-custom-field-type.mjs +0 -24
  635. package/dist/utils/convert-custom-field-type.mjs.map +0 -1
  636. package/dist/utils/cron.js +0 -38
  637. package/dist/utils/cron.js.map +0 -1
  638. package/dist/utils/cron.mjs +0 -38
  639. package/dist/utils/cron.mjs.map +0 -1
  640. package/dist/utils/fetch.js +0 -21
  641. package/dist/utils/fetch.js.map +0 -1
  642. package/dist/utils/fetch.mjs +0 -21
  643. package/dist/utils/fetch.mjs.map +0 -1
  644. package/dist/utils/filepath-to-prop-path.js +0 -33
  645. package/dist/utils/filepath-to-prop-path.js.map +0 -1
  646. package/dist/utils/filepath-to-prop-path.mjs +0 -30
  647. package/dist/utils/filepath-to-prop-path.mjs.map +0 -1
  648. package/dist/utils/is-initialized.js +0 -16
  649. package/dist/utils/is-initialized.js.map +0 -1
  650. package/dist/utils/is-initialized.mjs +0 -16
  651. package/dist/utils/is-initialized.mjs.map +0 -1
  652. package/dist/utils/lifecycles.js +0 -9
  653. package/dist/utils/lifecycles.js.map +0 -1
  654. package/dist/utils/lifecycles.mjs +0 -9
  655. package/dist/utils/lifecycles.mjs.map +0 -1
  656. package/dist/utils/load-config-file.js +0 -45
  657. package/dist/utils/load-config-file.js.map +0 -1
  658. package/dist/utils/load-config-file.mjs +0 -42
  659. package/dist/utils/load-config-file.mjs.map +0 -1
  660. package/dist/utils/load-files.js +0 -38
  661. package/dist/utils/load-files.js.map +0 -1
  662. package/dist/utils/load-files.mjs +0 -34
  663. package/dist/utils/load-files.mjs.map +0 -1
  664. package/dist/utils/open-browser.js +0 -11
  665. package/dist/utils/open-browser.js.map +0 -1
  666. package/dist/utils/open-browser.mjs +0 -9
  667. package/dist/utils/open-browser.mjs.map +0 -1
  668. package/dist/utils/resolve-working-dirs.js +0 -13
  669. package/dist/utils/resolve-working-dirs.js.map +0 -1
  670. package/dist/utils/resolve-working-dirs.mjs +0 -11
  671. package/dist/utils/resolve-working-dirs.mjs.map +0 -1
  672. package/dist/utils/signals.js +0 -17
  673. package/dist/utils/signals.js.map +0 -1
  674. package/dist/utils/signals.mjs +0 -17
  675. package/dist/utils/signals.mjs.map +0 -1
  676. package/dist/utils/startup-logger.js +0 -86
  677. package/dist/utils/startup-logger.js.map +0 -1
  678. package/dist/utils/startup-logger.mjs +0 -82
  679. package/dist/utils/startup-logger.mjs.map +0 -1
  680. package/dist/utils/transform-content-types-to-models.js +0 -288
  681. package/dist/utils/transform-content-types-to-models.js.map +0 -1
  682. package/dist/utils/transform-content-types-to-models.mjs +0 -285
  683. package/dist/utils/transform-content-types-to-models.mjs.map +0 -1
  684. package/dist/utils/update-notifier/index.js +0 -85
  685. package/dist/utils/update-notifier/index.js.map +0 -1
  686. package/dist/utils/update-notifier/index.mjs +0 -78
  687. package/dist/utils/update-notifier/index.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"license.mjs","sources":["../../src/ee/license.ts"],"sourcesContent":["import fs from 'fs';\nimport { join, resolve } from 'path';\nimport crypto from 'crypto';\nimport type { Core } from '@strapi/types';\n\nimport { machineID } from '@strapi/utils';\n\ninterface LicenseInfo {\n type: 'bronze' | 'silver' | 'gold';\n expireAt?: string;\n seats?: number;\n features?: Array<{ name: string; options?: Record<string, unknown> }>;\n}\n\nconst DEFAULT_FEATURES = {\n bronze: [],\n silver: [],\n gold: [\n { name: 'sso' },\n // Set a null retention duration to allow the user to override it\n // The default of 90 days is set in the audit logs service\n { name: 'audit-logs', options: { retentionDays: null } },\n { name: 'review-workflows' },\n { name: 'cms-content-releases' },\n { name: 'cms-content-history', options: { retentionDays: 99999 } },\n ],\n};\n\nconst publicKey = fs.readFileSync(resolve(__dirname, '../../resources/key.pub'));\n\nclass LicenseCheckError extends Error {\n shouldFallback = false;\n\n constructor(message: string, shouldFallback = false) {\n super(message);\n\n this.shouldFallback = shouldFallback;\n }\n}\n\nconst readLicense = (directory: string) => {\n try {\n const path = join(directory, 'license.txt');\n return fs.readFileSync(path).toString();\n } catch (error) {\n if (typeof error === 'object' && error !== null && 'code' in error && error.code !== 'ENOENT') {\n throw Error('License file not readable, review its format and access rules.');\n }\n }\n};\n\nconst verifyLicense = (license: string) => {\n const [signature, base64Content] = Buffer.from(license, 'base64').toString().split('\\n');\n\n if (!signature || !base64Content) {\n throw new Error('Invalid license.');\n }\n\n const stringifiedContent = Buffer.from(base64Content, 'base64').toString();\n\n const verify = crypto.createVerify('RSA-SHA256');\n verify.update(stringifiedContent);\n verify.end();\n\n const verified = verify.verify(publicKey, signature, 'base64');\n\n if (!verified) {\n throw new Error('Invalid license.');\n }\n\n const licenseInfo: LicenseInfo = JSON.parse(stringifiedContent);\n\n if (!licenseInfo.features) {\n licenseInfo.features = DEFAULT_FEATURES[licenseInfo.type];\n }\n\n Object.freeze(licenseInfo.features);\n return licenseInfo;\n};\n\nconst throwError = () => {\n throw new LicenseCheckError('Could not proceed to the online validation of your license.', true);\n};\n\nconst fetchLicense = async (\n { strapi }: { strapi: Core.Strapi },\n key: string,\n projectId: string\n) => {\n const response = await strapi\n .fetch(`https://license.strapi.io/api/licenses/validate`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ key, projectId, deviceId: machineID() }),\n })\n .catch(throwError);\n\n const contentType = response.headers.get('Content-Type');\n\n if (contentType?.includes('application/json')) {\n const { data, error } = await response.json();\n\n switch (response.status) {\n case 200:\n return data.license;\n case 400:\n throw new LicenseCheckError(error.message);\n case 404:\n throw new LicenseCheckError('The license used does not exists.');\n default:\n throwError();\n }\n } else {\n throwError();\n }\n};\n\nexport { readLicense, verifyLicense, fetchLicense, LicenseCheckError };\n"],"names":[],"mappings":";;;;AAcA,MAAM,mBAAmB;AAAA,EACvB,QAAQ,CAAC;AAAA,EACT,QAAQ,CAAC;AAAA,EACT,MAAM;AAAA,IACJ,EAAE,MAAM,MAAM;AAAA;AAAA;AAAA,IAGd,EAAE,MAAM,cAAc,SAAS,EAAE,eAAe,OAAO;AAAA,IACvD,EAAE,MAAM,mBAAmB;AAAA,IAC3B,EAAE,MAAM,uBAAuB;AAAA,IAC/B,EAAE,MAAM,uBAAuB,SAAS,EAAE,eAAe,MAAQ,EAAA;AAAA,EAAA;AAErE;AAEA,MAAM,YAAY,GAAG,aAAa,QAAQ,WAAW,yBAAyB,CAAC;AAE/E,MAAM,0BAA0B,MAAM;AAAA,EACpC,iBAAiB;AAAA,EAEjB,YAAY,SAAiB,iBAAiB,OAAO;AACnD,UAAM,OAAO;AAEb,SAAK,iBAAiB;AAAA,EAAA;AAE1B;AAEM,MAAA,cAAc,CAAC,cAAsB;AACrC,MAAA;AACI,UAAA,OAAO,KAAK,WAAW,aAAa;AAC1C,WAAO,GAAG,aAAa,IAAI,EAAE,SAAS;AAAA,WAC/B,OAAO;AACV,QAAA,OAAO,UAAU,YAAY,UAAU,QAAQ,UAAU,SAAS,MAAM,SAAS,UAAU;AAC7F,YAAM,MAAM,gEAAgE;AAAA,IAAA;AAAA,EAC9E;AAEJ;AAEM,MAAA,gBAAgB,CAAC,YAAoB;AACzC,QAAM,CAAC,WAAW,aAAa,IAAI,OAAO,KAAK,SAAS,QAAQ,EAAE,WAAW,MAAM,IAAI;AAEnF,MAAA,CAAC,aAAa,CAAC,eAAe;AAC1B,UAAA,IAAI,MAAM,kBAAkB;AAAA,EAAA;AAGpC,QAAM,qBAAqB,OAAO,KAAK,eAAe,QAAQ,EAAE,SAAS;AAEnE,QAAA,SAAS,OAAO,aAAa,YAAY;AAC/C,SAAO,OAAO,kBAAkB;AAChC,SAAO,IAAI;AAEX,QAAM,WAAW,OAAO,OAAO,WAAW,WAAW,QAAQ;AAE7D,MAAI,CAAC,UAAU;AACP,UAAA,IAAI,MAAM,kBAAkB;AAAA,EAAA;AAG9B,QAAA,cAA2B,KAAK,MAAM,kBAAkB;AAE1D,MAAA,CAAC,YAAY,UAAU;AACb,gBAAA,WAAW,iBAAiB,YAAY,IAAI;AAAA,EAAA;AAGnD,SAAA,OAAO,YAAY,QAAQ;AAC3B,SAAA;AACT;AAEA,MAAM,aAAa,MAAM;AACjB,QAAA,IAAI,kBAAkB,+DAA+D,IAAI;AACjG;AAEA,MAAM,eAAe,OACnB,EAAE,UACF,KACA,cACG;AACH,QAAM,WAAW,MAAM,OACpB,MAAM,mDAAmD;AAAA,IACxD,QAAQ;AAAA,IACR,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAC9C,MAAM,KAAK,UAAU,EAAE,KAAK,WAAW,UAAU,YAAa,CAAA;AAAA,EAAA,CAC/D,EACA,MAAM,UAAU;AAEnB,QAAM,cAAc,SAAS,QAAQ,IAAI,cAAc;AAEnD,MAAA,aAAa,SAAS,kBAAkB,GAAG;AAC7C,UAAM,EAAE,MAAM,MAAU,IAAA,MAAM,SAAS,KAAK;AAE5C,YAAQ,SAAS,QAAQ;AAAA,MACvB,KAAK;AACH,eAAO,KAAK;AAAA,MACd,KAAK;AACG,cAAA,IAAI,kBAAkB,MAAM,OAAO;AAAA,MAC3C,KAAK;AACG,cAAA,IAAI,kBAAkB,mCAAmC;AAAA,MACjE;AACa,mBAAA;AAAA,IAAA;AAAA,EACf,OACK;AACM,eAAA;AAAA,EAAA;AAEf;"}
package/dist/factories.js DELETED
@@ -1,80 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const fp = require("lodash/fp");
4
- const index = require("./core-api/controller/index.js");
5
- const index$1 = require("./core-api/service/index.js");
6
- const index$2 = require("./core-api/routes/index.js");
7
- const symbols = {
8
- CustomController: Symbol("StrapiCustomCoreController")
9
- };
10
- const createCoreController = (uid, cfg) => {
11
- return ({
12
- strapi: strapi2
13
- }) => {
14
- const baseController = index.createController({ contentType: strapi2.contentType(uid) });
15
- const userCtrl = typeof cfg === "function" ? cfg({ strapi: strapi2 }) : cfg ?? {};
16
- for (const methodName of Object.keys(baseController)) {
17
- if (userCtrl[methodName] === void 0) {
18
- userCtrl[methodName] = baseController[methodName];
19
- }
20
- }
21
- Object.setPrototypeOf(userCtrl, baseController);
22
- const isCustom = typeof cfg !== "undefined";
23
- if (isCustom) {
24
- Object.defineProperty(userCtrl, symbols.CustomController, {
25
- writable: false,
26
- configurable: false,
27
- enumerable: false
28
- });
29
- }
30
- return userCtrl;
31
- };
32
- };
33
- function createCoreService(uid, cfg) {
34
- return ({
35
- strapi: strapi2
36
- }) => {
37
- const baseService = index$1.createService({ contentType: strapi2.contentType(uid) });
38
- const userService = typeof cfg === "function" ? cfg({ strapi: strapi2 }) : cfg ?? {};
39
- for (const methodName of Object.keys(baseService)) {
40
- if (userService[methodName] === void 0) {
41
- userService[methodName] = baseService[methodName];
42
- }
43
- }
44
- Object.setPrototypeOf(userService, baseService);
45
- return userService;
46
- };
47
- }
48
- function createCoreRouter(uid, cfg) {
49
- const { prefix, config = {}, only, except, type = "content-api" } = cfg ?? {};
50
- let routes;
51
- return {
52
- type,
53
- prefix,
54
- get routes() {
55
- if (!routes) {
56
- const contentType = strapi.contentType(uid);
57
- const defaultRoutes = index$2.createRoutes({ contentType });
58
- const keys = Object.keys(defaultRoutes);
59
- keys.forEach((routeName) => {
60
- const defaultRoute = defaultRoutes[routeName];
61
- Object.assign(defaultRoute.config, config[routeName] || {});
62
- });
63
- const selectedRoutes = fp.pipe(
64
- (routes2) => except ? fp.omit(except, routes2) : routes2,
65
- (routes2) => only ? fp.pick(only, routes2) : routes2
66
- )(defaultRoutes);
67
- routes = Object.values(selectedRoutes);
68
- }
69
- return routes;
70
- }
71
- };
72
- }
73
- const isCustomController = (controller) => {
74
- return symbols.CustomController in controller;
75
- };
76
- exports.createCoreController = createCoreController;
77
- exports.createCoreRouter = createCoreRouter;
78
- exports.createCoreService = createCoreService;
79
- exports.isCustomController = isCustomController;
80
- //# sourceMappingURL=factories.js.map
@@ -1 +0,0 @@
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,MAAAA,iBAAiB,EAAE,aAAaD,QAAO,YAAY,GAAG,GAAG;AAE1E,UAAA,WAAW,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAO,CAAC,IAAK,OAAQ,CAAC;AAEzE,eAAW,cAAc,OAAO,KAAK,cAAc,GAAyC;AACtF,UAAA,SAAS,UAAU,MAAM,QAAW;AAC7B,iBAAA,UAAU,IAAI,eAAe,UAAU;AAAA,MAAA;AAAA,IAClD;AAGK,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,IAAA;AAGI,WAAA;AAAA,EACT;AACF;AAEA,SAAS,kBAIP,KACA,KACA;AACA,SAAO,CAAC;AAAA,IACN,QAAAA;AAAAA,EAAA,MAGuD;AACjD,UAAA,cAAcE,QAAAA,cAAc,EAAE,aAAaF,QAAO,YAAY,GAAG,GAAG;AAEpE,UAAA,cAAc,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAO,CAAC,IAAK,OAAQ,CAAC;AAE5E,eAAW,cAAc,OAAO,KAAK,WAAW,GAAsC;AAChF,UAAA,YAAY,UAAU,MAAM,QAAW;AAC7B,oBAAA,UAAU,IAAI,YAAY,UAAU;AAAA,MAAA;AAAA,IAClD;AAGK,WAAA,eAAe,aAAa,WAAW;AACvC,WAAA;AAAA,EACT;AACF;AAEA,SAAS,iBACP,KACA,KAC4B;AACtB,QAAA,EAAE,QAAQ,SAAS,IAAI,MAAM,QAAQ,OAAO,kBAAkB,OAAO,CAAC;AACxE,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,aAAa;AAC5C,cAAA,OAAO,OAAO,KAAK,aAAa;AAEjC,aAAA,QAAQ,CAAC,cAAc;AACpB,gBAAA,eAAe,cAAc,SAAS;AAE5C,iBAAO,OAAO,aAAa,QAAQ,OAAO,SAAS,KAAK,EAAE;AAAA,QAAA,CAC3D;AAED,cAAM,iBAAiBC,GAAA;AAAA,UACrB,CAACC,YAAY,SAASC,GAAAA,KAAK,QAAQD,OAAM,IAAIA;AAAAA,UAC7C,CAACA,YAAY,OAAOE,GAAK,KAAA,MAAMF,OAAM,IAAIA;AAAAA,UACzC,aAAa;AAEN,iBAAA,OAAO,OAAO,cAAc;AAAA,MAAA;AAGhC,aAAA;AAAA,IAAA;AAAA,EAEX;AACF;AAEM,MAAA,qBAAqB,CAA4B,eAA2B;AAChF,SAAO,QAAQ,oBAAoB;AACrC;;;;;"}
@@ -1,80 +0,0 @@
1
- import { pipe, omit, pick } from "lodash/fp";
2
- import { createController } from "./core-api/controller/index.mjs";
3
- import { createService } from "./core-api/service/index.mjs";
4
- import { createRoutes } from "./core-api/routes/index.mjs";
5
- const symbols = {
6
- CustomController: Symbol("StrapiCustomCoreController")
7
- };
8
- const createCoreController = (uid, cfg) => {
9
- return ({
10
- strapi: strapi2
11
- }) => {
12
- const baseController = createController({ contentType: strapi2.contentType(uid) });
13
- const userCtrl = typeof cfg === "function" ? cfg({ strapi: strapi2 }) : cfg ?? {};
14
- for (const methodName of Object.keys(baseController)) {
15
- if (userCtrl[methodName] === void 0) {
16
- userCtrl[methodName] = baseController[methodName];
17
- }
18
- }
19
- Object.setPrototypeOf(userCtrl, baseController);
20
- const isCustom = typeof cfg !== "undefined";
21
- if (isCustom) {
22
- Object.defineProperty(userCtrl, symbols.CustomController, {
23
- writable: false,
24
- configurable: false,
25
- enumerable: false
26
- });
27
- }
28
- return userCtrl;
29
- };
30
- };
31
- function createCoreService(uid, cfg) {
32
- return ({
33
- strapi: strapi2
34
- }) => {
35
- const baseService = createService({ contentType: strapi2.contentType(uid) });
36
- const userService = typeof cfg === "function" ? cfg({ strapi: strapi2 }) : cfg ?? {};
37
- for (const methodName of Object.keys(baseService)) {
38
- if (userService[methodName] === void 0) {
39
- userService[methodName] = baseService[methodName];
40
- }
41
- }
42
- Object.setPrototypeOf(userService, baseService);
43
- return userService;
44
- };
45
- }
46
- function createCoreRouter(uid, cfg) {
47
- const { prefix, config = {}, only, except, type = "content-api" } = cfg ?? {};
48
- let routes;
49
- return {
50
- type,
51
- prefix,
52
- get routes() {
53
- if (!routes) {
54
- const contentType = strapi.contentType(uid);
55
- const defaultRoutes = createRoutes({ contentType });
56
- const keys = Object.keys(defaultRoutes);
57
- keys.forEach((routeName) => {
58
- const defaultRoute = defaultRoutes[routeName];
59
- Object.assign(defaultRoute.config, config[routeName] || {});
60
- });
61
- const selectedRoutes = pipe(
62
- (routes2) => except ? omit(except, routes2) : routes2,
63
- (routes2) => only ? pick(only, routes2) : routes2
64
- )(defaultRoutes);
65
- routes = Object.values(selectedRoutes);
66
- }
67
- return routes;
68
- }
69
- };
70
- }
71
- const isCustomController = (controller) => {
72
- return symbols.CustomController in controller;
73
- };
74
- export {
75
- createCoreController,
76
- createCoreRouter,
77
- createCoreService,
78
- isCustomController
79
- };
80
- //# sourceMappingURL=factories.mjs.map
@@ -1 +0,0 @@
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,QAAO,CAAC,IAAK,OAAQ,CAAC;AAEzE,eAAW,cAAc,OAAO,KAAK,cAAc,GAAyC;AACtF,UAAA,SAAS,UAAU,MAAM,QAAW;AAC7B,iBAAA,UAAU,IAAI,eAAe,UAAU;AAAA,MAAA;AAAA,IAClD;AAGK,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,IAAA;AAGI,WAAA;AAAA,EACT;AACF;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,QAAO,CAAC,IAAK,OAAQ,CAAC;AAE5E,eAAW,cAAc,OAAO,KAAK,WAAW,GAAsC;AAChF,UAAA,YAAY,UAAU,MAAM,QAAW;AAC7B,oBAAA,UAAU,IAAI,YAAY,UAAU;AAAA,MAAA;AAAA,IAClD;AAGK,WAAA,eAAe,aAAa,WAAW;AACvC,WAAA;AAAA,EACT;AACF;AAEA,SAAS,iBACP,KACA,KAC4B;AACtB,QAAA,EAAE,QAAQ,SAAS,IAAI,MAAM,QAAQ,OAAO,kBAAkB,OAAO,CAAC;AACxE,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,aAAa;AAC5C,cAAA,OAAO,OAAO,KAAK,aAAa;AAEjC,aAAA,QAAQ,CAAC,cAAc;AACpB,gBAAA,eAAe,cAAc,SAAS;AAE5C,iBAAO,OAAO,aAAa,QAAQ,OAAO,SAAS,KAAK,EAAE;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,MAAA;AAGhC,aAAA;AAAA,IAAA;AAAA,EAEX;AACF;AAEM,MAAA,qBAAqB,CAA4B,eAA2B;AAChF,SAAO,QAAQ,oBAAoB;AACrC;"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
- const _ = require("lodash");
3
- const index = require("../domain/content-type/index.js");
4
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
5
- const ___default = /* @__PURE__ */ _interopDefault(_);
6
- async function loadAdmin(strapi) {
7
- strapi.get("services").add(`admin::`, strapi.admin?.services);
8
- strapi.get("controllers").add(`admin::`, strapi.admin?.controllers);
9
- strapi.get("content-types").add(`admin::`, formatContentTypes(strapi.admin?.contentTypes ?? {}));
10
- strapi.get("policies").add(`admin::`, strapi.admin?.policies);
11
- strapi.get("middlewares").add(`admin::`, strapi.admin?.middlewares);
12
- const userAdminConfig = strapi.config.get("admin");
13
- strapi.get("config").set("admin", ___default.default.merge(strapi.admin?.config, userAdminConfig));
14
- }
15
- const formatContentTypes = (contentTypes) => {
16
- Object.values(contentTypes).forEach((definition) => {
17
- const { schema } = definition;
18
- Object.assign(schema, {
19
- plugin: "admin",
20
- globalId: index.getGlobalId(schema, "admin")
21
- });
22
- });
23
- return contentTypes;
24
- };
25
- module.exports = loadAdmin;
26
- //# sourceMappingURL=admin.js.map
@@ -1 +0,0 @@
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,CAAE,CAAA,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,mBAAE,MAAM,OAAO,OAAO,QAAQ,eAAe,CAAC;AAClF;AAEA,MAAM,qBAAqB,CAAC,iBAAuE;AACjG,SAAO,OAAO,YAAY,EAAE,QAAQ,CAAC,eAAe;AAC5C,UAAA,EAAE,WAAW;AAEnB,WAAO,OAAO,QAAQ;AAAA,MACpB,QAAQ;AAAA,MACR,UAAUC,MAAAA,YAAY,QAAQ,OAAO;AAAA,IAAA,CACtC;AAAA,EAAA,CACF;AAEM,SAAA;AACT;;"}
@@ -1,25 +0,0 @@
1
- import _ from "lodash";
2
- import { getGlobalId } from "../domain/content-type/index.mjs";
3
- async function loadAdmin(strapi) {
4
- strapi.get("services").add(`admin::`, strapi.admin?.services);
5
- strapi.get("controllers").add(`admin::`, strapi.admin?.controllers);
6
- strapi.get("content-types").add(`admin::`, formatContentTypes(strapi.admin?.contentTypes ?? {}));
7
- strapi.get("policies").add(`admin::`, strapi.admin?.policies);
8
- strapi.get("middlewares").add(`admin::`, strapi.admin?.middlewares);
9
- const userAdminConfig = strapi.config.get("admin");
10
- strapi.get("config").set("admin", _.merge(strapi.admin?.config, userAdminConfig));
11
- }
12
- const formatContentTypes = (contentTypes) => {
13
- Object.values(contentTypes).forEach((definition) => {
14
- const { schema } = definition;
15
- Object.assign(schema, {
16
- plugin: "admin",
17
- globalId: getGlobalId(schema, "admin")
18
- });
19
- });
20
- return contentTypes;
21
- };
22
- export {
23
- loadAdmin as default
24
- };
25
- //# sourceMappingURL=admin.mjs.map
@@ -1 +0,0 @@
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,CAAE,CAAA,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,WAAW;AAEnB,WAAO,OAAO,QAAQ;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU,YAAY,QAAQ,OAAO;AAAA,IAAA,CACtC;AAAA,EAAA,CACF;AAEM,SAAA;AACT;"}
@@ -1,137 +0,0 @@
1
- "use strict";
2
- const path = require("path");
3
- const fse = require("fs-extra");
4
- const _ = require("lodash");
5
- const strapiUtils = require("@strapi/utils");
6
- const fp = require("lodash/fp");
7
- const index = require("../domain/content-type/index.js");
8
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
9
- const fse__default = /* @__PURE__ */ _interopDefault(fse);
10
- const ___default = /* @__PURE__ */ _interopDefault(_);
11
- const DEFAULT_CONTENT_TYPE = {
12
- schema: {},
13
- actions: {},
14
- lifecycles: {}
15
- };
16
- const normalizeName = (name) => strapiUtils.strings.isKebabCase(name) ? name : ___default.default.kebabCase(name);
17
- const isDirectory = (fd) => fd.isDirectory();
18
- const isDotFile = (fd) => fd.name.startsWith(".");
19
- async function loadAPIs(strapi) {
20
- if (!fse.existsSync(strapi.dirs.dist.api)) {
21
- return;
22
- }
23
- const apisFDs = await (await fse__default.default.readdir(strapi.dirs.dist.api, { withFileTypes: true })).filter(isDirectory).filter(___default.default.negate(isDotFile));
24
- const apis = {};
25
- for (const apiFD of apisFDs) {
26
- const apiName = normalizeName(apiFD.name);
27
- const api = await loadAPI(apiName, path.join(strapi.dirs.dist.api, apiFD.name));
28
- apis[apiName] = api;
29
- }
30
- validateContentTypesUnicity(apis);
31
- for (const apiName of Object.keys(apis)) {
32
- strapi.get("apis").add(apiName, apis[apiName]);
33
- }
34
- }
35
- const validateContentTypesUnicity = (apis) => {
36
- const allApisSchemas = Object.values(apis).flatMap((api) => Object.values(api.contentTypes));
37
- const names = [];
38
- allApisSchemas.forEach(({ schema }) => {
39
- if (schema.info.singularName) {
40
- const singularName = ___default.default.kebabCase(schema.info.singularName);
41
- if (names.includes(singularName)) {
42
- throw new Error(`The singular name "${schema.info.singularName}" should be unique`);
43
- }
44
- names.push(singularName);
45
- }
46
- if (schema.info.pluralName) {
47
- const pluralName = ___default.default.kebabCase(schema.info.pluralName);
48
- if (names.includes(pluralName)) {
49
- throw new Error(`The plural name "${schema.info.pluralName}" should be unique`);
50
- }
51
- names.push(pluralName);
52
- }
53
- });
54
- };
55
- const loadAPI = async (apiName, dir) => {
56
- const [index2, config, routes, controllers, services, policies, middlewares, contentTypes] = (await Promise.all([
57
- loadIndex(dir),
58
- loadDir(path.join(dir, "config")),
59
- loadDir(path.join(dir, "routes")),
60
- loadDir(path.join(dir, "controllers")),
61
- loadDir(path.join(dir, "services")),
62
- loadDir(path.join(dir, "policies")),
63
- loadDir(path.join(dir, "middlewares")),
64
- loadContentTypes(apiName, path.join(dir, "content-types"))
65
- ])).map((result) => result?.result);
66
- return {
67
- ...index2 || {},
68
- config: config || {},
69
- routes: routes || [],
70
- controllers: controllers || {},
71
- services: services || {},
72
- policies: policies || {},
73
- middlewares: middlewares || {},
74
- contentTypes: contentTypes || {}
75
- };
76
- };
77
- const loadIndex = async (dir) => {
78
- if (await fse__default.default.pathExists(path.join(dir, "index.js"))) {
79
- return loadFile(path.join(dir, "index.js"));
80
- }
81
- };
82
- const loadContentTypes = async (apiName, dir) => {
83
- if (!await fse__default.default.pathExists(dir)) {
84
- return;
85
- }
86
- const fds = await fse__default.default.readdir(dir, { withFileTypes: true });
87
- const contentTypes = {};
88
- for (const fd of fds) {
89
- if (fd.isFile()) {
90
- continue;
91
- }
92
- const contentTypeName = normalizeName(fd.name);
93
- const loadedContentType = (await loadDir(path.join(dir, fd.name)))?.result;
94
- if (fp.isEmpty(loadedContentType) || fp.isEmpty(loadedContentType.schema)) {
95
- throw new Error(`Could not load content type found at ${dir}`);
96
- }
97
- const contentType = {
98
- ...DEFAULT_CONTENT_TYPE,
99
- ...loadedContentType
100
- };
101
- Object.assign(contentType.schema, {
102
- apiName,
103
- collectionName: contentType.schema.collectionName || contentType.schema.info.singularName,
104
- globalId: index.getGlobalId(contentType.schema)
105
- });
106
- contentTypes[normalizeName(contentTypeName)] = contentType;
107
- }
108
- return { result: contentTypes };
109
- };
110
- const loadDir = async (dir) => {
111
- if (!await fse__default.default.pathExists(dir)) {
112
- return;
113
- }
114
- const fds = await fse__default.default.readdir(dir, { withFileTypes: true });
115
- const root = {};
116
- for (const fd of fds) {
117
- if (!fd.isFile() || path.extname(fd.name) === ".map") {
118
- continue;
119
- }
120
- const key = path.basename(fd.name, path.extname(fd.name));
121
- root[normalizeName(key)] = (await loadFile(path.join(dir, fd.name))).result;
122
- }
123
- return { result: root };
124
- };
125
- const loadFile = async (file) => {
126
- const ext = path.extname(file);
127
- switch (ext) {
128
- case ".js":
129
- return { result: strapiUtils.importDefault(file) };
130
- case ".json":
131
- return { result: await fse__default.default.readJSON(file) };
132
- default:
133
- return { result: {} };
134
- }
135
- };
136
- module.exports = loadAPIs;
137
- //# sourceMappingURL=apis.js.map
@@ -1 +0,0 @@
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,135 +0,0 @@
1
- import { join, extname, basename } from "path";
2
- import fse, { existsSync } from "fs-extra";
3
- import _ from "lodash";
4
- import { strings, importDefault } from "@strapi/utils";
5
- import { isEmpty } from "lodash/fp";
6
- import { getGlobalId } from "../domain/content-type/index.mjs";
7
- const DEFAULT_CONTENT_TYPE = {
8
- schema: {},
9
- actions: {},
10
- lifecycles: {}
11
- };
12
- const normalizeName = (name) => strings.isKebabCase(name) ? name : _.kebabCase(name);
13
- const isDirectory = (fd) => fd.isDirectory();
14
- const isDotFile = (fd) => fd.name.startsWith(".");
15
- async function loadAPIs(strapi) {
16
- if (!existsSync(strapi.dirs.dist.api)) {
17
- return;
18
- }
19
- const apisFDs = await (await fse.readdir(strapi.dirs.dist.api, { withFileTypes: true })).filter(isDirectory).filter(_.negate(isDotFile));
20
- const apis = {};
21
- for (const apiFD of apisFDs) {
22
- const apiName = normalizeName(apiFD.name);
23
- const api = await loadAPI(apiName, join(strapi.dirs.dist.api, apiFD.name));
24
- apis[apiName] = api;
25
- }
26
- validateContentTypesUnicity(apis);
27
- for (const apiName of Object.keys(apis)) {
28
- strapi.get("apis").add(apiName, apis[apiName]);
29
- }
30
- }
31
- const validateContentTypesUnicity = (apis) => {
32
- const allApisSchemas = Object.values(apis).flatMap((api) => Object.values(api.contentTypes));
33
- const names = [];
34
- allApisSchemas.forEach(({ schema }) => {
35
- if (schema.info.singularName) {
36
- const singularName = _.kebabCase(schema.info.singularName);
37
- if (names.includes(singularName)) {
38
- throw new Error(`The singular name "${schema.info.singularName}" should be unique`);
39
- }
40
- names.push(singularName);
41
- }
42
- if (schema.info.pluralName) {
43
- const pluralName = _.kebabCase(schema.info.pluralName);
44
- if (names.includes(pluralName)) {
45
- throw new Error(`The plural name "${schema.info.pluralName}" should be unique`);
46
- }
47
- names.push(pluralName);
48
- }
49
- });
50
- };
51
- const loadAPI = async (apiName, dir) => {
52
- const [index, config, routes, controllers, services, policies, middlewares, contentTypes] = (await Promise.all([
53
- loadIndex(dir),
54
- loadDir(join(dir, "config")),
55
- loadDir(join(dir, "routes")),
56
- loadDir(join(dir, "controllers")),
57
- loadDir(join(dir, "services")),
58
- loadDir(join(dir, "policies")),
59
- loadDir(join(dir, "middlewares")),
60
- loadContentTypes(apiName, join(dir, "content-types"))
61
- ])).map((result) => result?.result);
62
- return {
63
- ...index || {},
64
- config: config || {},
65
- routes: routes || [],
66
- controllers: controllers || {},
67
- services: services || {},
68
- policies: policies || {},
69
- middlewares: middlewares || {},
70
- contentTypes: contentTypes || {}
71
- };
72
- };
73
- const loadIndex = async (dir) => {
74
- if (await fse.pathExists(join(dir, "index.js"))) {
75
- return loadFile(join(dir, "index.js"));
76
- }
77
- };
78
- const loadContentTypes = async (apiName, dir) => {
79
- if (!await fse.pathExists(dir)) {
80
- return;
81
- }
82
- const fds = await fse.readdir(dir, { withFileTypes: true });
83
- const contentTypes = {};
84
- for (const fd of fds) {
85
- if (fd.isFile()) {
86
- continue;
87
- }
88
- const contentTypeName = normalizeName(fd.name);
89
- const loadedContentType = (await loadDir(join(dir, fd.name)))?.result;
90
- if (isEmpty(loadedContentType) || isEmpty(loadedContentType.schema)) {
91
- throw new Error(`Could not load content type found at ${dir}`);
92
- }
93
- const contentType = {
94
- ...DEFAULT_CONTENT_TYPE,
95
- ...loadedContentType
96
- };
97
- Object.assign(contentType.schema, {
98
- apiName,
99
- collectionName: contentType.schema.collectionName || contentType.schema.info.singularName,
100
- globalId: getGlobalId(contentType.schema)
101
- });
102
- contentTypes[normalizeName(contentTypeName)] = contentType;
103
- }
104
- return { result: contentTypes };
105
- };
106
- const loadDir = async (dir) => {
107
- if (!await fse.pathExists(dir)) {
108
- return;
109
- }
110
- const fds = await fse.readdir(dir, { withFileTypes: true });
111
- const root = {};
112
- for (const fd of fds) {
113
- if (!fd.isFile() || extname(fd.name) === ".map") {
114
- continue;
115
- }
116
- const key = basename(fd.name, extname(fd.name));
117
- root[normalizeName(key)] = (await loadFile(join(dir, fd.name))).result;
118
- }
119
- return { result: root };
120
- };
121
- const loadFile = async (file) => {
122
- const ext = extname(file);
123
- switch (ext) {
124
- case ".js":
125
- return { result: importDefault(file) };
126
- case ".json":
127
- return { result: await fse.readJSON(file) };
128
- default:
129
- return { result: {} };
130
- }
131
- };
132
- export {
133
- loadAPIs as default
134
- };
135
- //# sourceMappingURL=apis.mjs.map
@@ -1 +0,0 @@
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,38 +0,0 @@
1
- "use strict";
2
- const path = require("path");
3
- const _ = require("lodash");
4
- const fse = require("fs-extra");
5
- const loadFiles = require("../utils/load-files.js");
6
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
7
- const ___default = /* @__PURE__ */ _interopDefault(_);
8
- async function loadComponents(strapi) {
9
- if (!await fse.pathExists(strapi.dirs.dist.components)) {
10
- return {};
11
- }
12
- const map = await loadFiles.loadFiles(strapi.dirs.dist.components, "*/*.*(js|json)");
13
- const components = Object.keys(map).reduce((acc, category) => {
14
- Object.keys(map[category]).forEach((key) => {
15
- const schema = map[category][key];
16
- if (!schema.collectionName) {
17
- const filePath = path.join(strapi.dirs.app.components, category, schema.__filename__);
18
- return strapi.stopWithError(
19
- `Component ${key} is missing a "collectionName" property.
20
- Verify file ${filePath}.`
21
- );
22
- }
23
- const uid = `${category}.${key}`;
24
- acc[uid] = Object.assign(schema, {
25
- __schema__: ___default.default.cloneDeep(schema),
26
- uid,
27
- category,
28
- modelType: "component",
29
- modelName: key,
30
- globalId: schema.globalId || ___default.default.upperFirst(___default.default.camelCase(`component_${uid}`))
31
- });
32
- });
33
- return acc;
34
- }, {});
35
- strapi.get("components").add(components);
36
- }
37
- module.exports = loadComponents;
38
- //# sourceMappingURL=components.js.map
@@ -1 +0,0 @@
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,CAAC;AAAA,EAAA;AAGV,QAAM,MAAM,MAAMC,oBAA4B,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,QACnF;AAAA,MAAA;AAGF,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,EAAkB;AAErB,SAAO,IAAI,YAAY,EAAE,IAAI,UAAU;AACzC;;"}