@strapi/core 0.0.0 → 5.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (881) hide show
  1. package/dist/Strapi.d.ts +9 -4
  2. package/dist/Strapi.d.ts.map +1 -1
  3. package/dist/Strapi.js +78 -52
  4. package/dist/Strapi.js.map +1 -1
  5. package/dist/Strapi.mjs +80 -53
  6. package/dist/Strapi.mjs.map +1 -1
  7. package/dist/configuration/config-loader.d.ts.map +1 -0
  8. package/dist/configuration/config-loader.js +102 -0
  9. package/dist/configuration/config-loader.js.map +1 -0
  10. package/dist/configuration/config-loader.mjs +100 -0
  11. package/dist/configuration/config-loader.mjs.map +1 -0
  12. package/dist/{core/app-configuration → configuration}/index.d.ts +20 -5
  13. package/dist/configuration/index.d.ts.map +1 -0
  14. package/dist/{core/app-configuration → configuration}/index.js +28 -5
  15. package/dist/configuration/index.js.map +1 -0
  16. package/dist/{core/app-configuration → configuration}/index.mjs +28 -5
  17. package/dist/configuration/index.mjs.map +1 -0
  18. package/dist/configuration/urls.d.ts +8 -0
  19. package/dist/configuration/urls.d.ts.map +1 -0
  20. package/dist/configuration/urls.js +68 -0
  21. package/dist/configuration/urls.js.map +1 -0
  22. package/dist/configuration/urls.mjs +66 -0
  23. package/dist/configuration/urls.mjs.map +1 -0
  24. package/dist/core-api/controller/collection-type.d.ts +1 -1
  25. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  26. package/dist/core-api/controller/collection-type.js +9 -20
  27. package/dist/core-api/controller/collection-type.js.map +1 -1
  28. package/dist/core-api/controller/collection-type.mjs +8 -20
  29. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  30. package/dist/core-api/controller/index.d.ts.map +1 -1
  31. package/dist/core-api/controller/index.js +8 -3
  32. package/dist/core-api/controller/index.js.map +1 -1
  33. package/dist/core-api/controller/index.mjs +8 -3
  34. package/dist/core-api/controller/index.mjs.map +1 -1
  35. package/dist/core-api/controller/single-type.d.ts +1 -1
  36. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  37. package/dist/core-api/controller/single-type.js +6 -11
  38. package/dist/core-api/controller/single-type.js.map +1 -1
  39. package/dist/core-api/controller/single-type.mjs +5 -11
  40. package/dist/core-api/controller/single-type.mjs.map +1 -1
  41. package/dist/core-api/controller/transform.d.ts +9 -17
  42. package/dist/core-api/controller/transform.d.ts.map +1 -1
  43. package/dist/core-api/controller/transform.js +9 -14
  44. package/dist/core-api/controller/transform.js.map +1 -1
  45. package/dist/core-api/controller/transform.mjs +9 -14
  46. package/dist/core-api/controller/transform.mjs.map +1 -1
  47. package/dist/core-api/service/collection-type.d.ts +28 -5
  48. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  49. package/dist/core-api/service/collection-type.js +47 -49
  50. package/dist/core-api/service/collection-type.js.map +1 -1
  51. package/dist/core-api/service/collection-type.mjs +47 -50
  52. package/dist/core-api/service/collection-type.mjs.map +1 -1
  53. package/dist/core-api/service/core-service.d.ts +4 -0
  54. package/dist/core-api/service/core-service.d.ts.map +1 -0
  55. package/dist/core-api/service/core-service.js +12 -0
  56. package/dist/core-api/service/core-service.js.map +1 -0
  57. package/dist/core-api/service/core-service.mjs +12 -0
  58. package/dist/core-api/service/core-service.mjs.map +1 -0
  59. package/dist/core-api/service/index.js +2 -2
  60. package/dist/core-api/service/index.js.map +1 -1
  61. package/dist/core-api/service/index.mjs +4 -4
  62. package/dist/core-api/service/index.mjs.map +1 -1
  63. package/dist/core-api/service/pagination.d.ts +1 -5
  64. package/dist/core-api/service/pagination.d.ts.map +1 -1
  65. package/dist/core-api/service/pagination.js +0 -11
  66. package/dist/core-api/service/pagination.js.map +1 -1
  67. package/dist/core-api/service/pagination.mjs +0 -11
  68. package/dist/core-api/service/pagination.mjs.map +1 -1
  69. package/dist/core-api/service/single-type.d.ts +14 -8
  70. package/dist/core-api/service/single-type.d.ts.map +1 -1
  71. package/dist/core-api/service/single-type.js +35 -50
  72. package/dist/core-api/service/single-type.js.map +1 -1
  73. package/dist/core-api/service/single-type.mjs +34 -50
  74. package/dist/core-api/service/single-type.mjs.map +1 -1
  75. package/dist/{core/domain → domain}/content-type/index.d.ts +2 -1
  76. package/dist/domain/content-type/index.d.ts.map +1 -0
  77. package/dist/{core/domain → domain}/content-type/index.js +23 -34
  78. package/dist/domain/content-type/index.js.map +1 -0
  79. package/dist/{core/domain → domain}/content-type/index.mjs +24 -35
  80. package/dist/domain/content-type/index.mjs.map +1 -0
  81. package/dist/domain/content-type/validator.d.ts.map +1 -0
  82. package/dist/{core/domain → domain}/content-type/validator.js +1 -1
  83. package/dist/domain/content-type/validator.js.map +1 -0
  84. package/dist/{core/domain → domain}/content-type/validator.mjs +2 -2
  85. package/dist/domain/content-type/validator.mjs.map +1 -0
  86. package/dist/domain/module/index.d.ts.map +1 -0
  87. package/dist/{core/domain → domain}/module/index.js +30 -31
  88. package/dist/domain/module/index.js.map +1 -0
  89. package/dist/{core/domain → domain}/module/index.mjs +3 -4
  90. package/dist/domain/module/index.mjs.map +1 -0
  91. package/dist/domain/module/validation.d.ts.map +1 -0
  92. package/dist/domain/module/validation.js.map +1 -0
  93. package/dist/domain/module/validation.mjs.map +1 -0
  94. package/dist/ee/index.js +2 -2
  95. package/dist/ee/index.js.map +1 -1
  96. package/dist/ee/index.mjs +2 -2
  97. package/dist/ee/index.mjs.map +1 -1
  98. package/dist/ee/license.d.ts.map +1 -1
  99. package/dist/ee/license.js +2 -1
  100. package/dist/ee/license.js.map +1 -1
  101. package/dist/ee/license.mjs +2 -1
  102. package/dist/ee/license.mjs.map +1 -1
  103. package/dist/factories.d.ts +2 -1
  104. package/dist/factories.d.ts.map +1 -1
  105. package/dist/factories.js +16 -11
  106. package/dist/factories.js.map +1 -1
  107. package/dist/factories.mjs +17 -12
  108. package/dist/factories.mjs.map +1 -1
  109. package/dist/index.d.ts +3 -2
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +3 -1
  112. package/dist/index.js.map +1 -1
  113. package/dist/index.mjs +3 -1
  114. package/dist/index.mjs.map +1 -1
  115. package/dist/loaders/admin.d.ts.map +1 -0
  116. package/dist/{core/loaders → loaders}/admin.js +12 -1
  117. package/dist/loaders/admin.js.map +1 -0
  118. package/dist/{core/loaders → loaders}/admin.mjs +12 -1
  119. package/dist/loaders/admin.mjs.map +1 -0
  120. package/dist/loaders/apis.d.ts.map +1 -0
  121. package/dist/{core/loaders → loaders}/apis.js +20 -13
  122. package/dist/loaders/apis.js.map +1 -0
  123. package/dist/{core/loaders → loaders}/apis.mjs +19 -12
  124. package/dist/loaders/apis.mjs.map +1 -0
  125. package/dist/loaders/components.d.ts.map +1 -0
  126. package/dist/{core/loaders → loaders}/components.js +2 -2
  127. package/dist/loaders/components.js.map +1 -0
  128. package/dist/{core/loaders → loaders}/components.mjs +1 -1
  129. package/dist/loaders/components.mjs.map +1 -0
  130. package/dist/loaders/index.d.ts.map +1 -0
  131. package/dist/loaders/index.js.map +1 -0
  132. package/dist/loaders/index.mjs.map +1 -0
  133. package/dist/loaders/middlewares.d.ts.map +1 -0
  134. package/dist/{core/loaders → loaders}/middlewares.js +1 -1
  135. package/dist/loaders/middlewares.js.map +1 -0
  136. package/dist/{core/loaders → loaders}/middlewares.mjs +1 -1
  137. package/dist/loaders/middlewares.mjs.map +1 -0
  138. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -0
  139. package/dist/{core/loaders → loaders}/plugins/get-enabled-plugins.js +3 -2
  140. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -0
  141. package/dist/{core/loaders → loaders}/plugins/get-enabled-plugins.mjs +4 -3
  142. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -0
  143. package/dist/loaders/plugins/get-user-plugins-config.d.ts.map +1 -0
  144. package/dist/{core/loaders → loaders}/plugins/get-user-plugins-config.js +3 -3
  145. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -0
  146. package/dist/{core/loaders → loaders}/plugins/get-user-plugins-config.mjs +3 -3
  147. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -0
  148. package/dist/loaders/plugins/index.d.ts.map +1 -0
  149. package/dist/{core/loaders → loaders}/plugins/index.js +18 -5
  150. package/dist/loaders/plugins/index.js.map +1 -0
  151. package/dist/{core/loaders → loaders}/plugins/index.mjs +16 -3
  152. package/dist/loaders/plugins/index.mjs.map +1 -0
  153. package/dist/loaders/policies.d.ts.map +1 -0
  154. package/dist/loaders/policies.js.map +1 -0
  155. package/dist/loaders/policies.mjs.map +1 -0
  156. package/dist/loaders/sanitizers.d.ts.map +1 -0
  157. package/dist/loaders/sanitizers.js.map +1 -0
  158. package/dist/loaders/sanitizers.mjs.map +1 -0
  159. package/dist/loaders/src-index.d.ts.map +1 -0
  160. package/dist/loaders/src-index.js.map +1 -0
  161. package/dist/loaders/src-index.mjs.map +1 -0
  162. package/dist/loaders/validators.d.ts.map +1 -0
  163. package/dist/loaders/validators.js.map +1 -0
  164. package/dist/loaders/validators.mjs.map +1 -0
  165. package/dist/middlewares/favicon.d.ts +1 -0
  166. package/dist/middlewares/favicon.d.ts.map +1 -1
  167. package/dist/middlewares/index.js +2 -2
  168. package/dist/middlewares/index.js.map +1 -1
  169. package/dist/middlewares/index.mjs +1 -1
  170. package/dist/middlewares/{public/index.d.ts → public.d.ts} +1 -1
  171. package/dist/middlewares/public.d.ts.map +1 -0
  172. package/dist/middlewares/public.js +34 -0
  173. package/dist/middlewares/public.js.map +1 -0
  174. package/dist/middlewares/public.mjs +32 -0
  175. package/dist/middlewares/public.mjs.map +1 -0
  176. package/dist/middlewares/security.d.ts.map +1 -1
  177. package/dist/middlewares/security.js +24 -3
  178. package/dist/middlewares/security.js.map +1 -1
  179. package/dist/middlewares/security.mjs +24 -3
  180. package/dist/middlewares/security.mjs.map +1 -1
  181. package/dist/migrations/draft-publish.d.ts +17 -0
  182. package/dist/migrations/draft-publish.d.ts.map +1 -0
  183. package/dist/migrations/draft-publish.js +59 -0
  184. package/dist/migrations/draft-publish.js.map +1 -0
  185. package/dist/migrations/draft-publish.mjs +59 -0
  186. package/dist/migrations/draft-publish.mjs.map +1 -0
  187. package/dist/registries/apis.d.ts.map +1 -0
  188. package/dist/registries/apis.js.map +1 -0
  189. package/dist/registries/apis.mjs.map +1 -0
  190. package/dist/registries/components.d.ts.map +1 -0
  191. package/dist/registries/components.js.map +1 -0
  192. package/dist/registries/components.mjs.map +1 -0
  193. package/dist/registries/config.d.ts +4 -0
  194. package/dist/registries/config.d.ts.map +1 -0
  195. package/dist/registries/config.js +31 -0
  196. package/dist/registries/config.js.map +1 -0
  197. package/dist/registries/config.mjs +32 -0
  198. package/dist/registries/config.mjs.map +1 -0
  199. package/dist/registries/content-types.d.ts.map +1 -0
  200. package/dist/{core/registries → registries}/content-types.js +6 -7
  201. package/dist/registries/content-types.js.map +1 -0
  202. package/dist/{core/registries → registries}/content-types.mjs +2 -3
  203. package/dist/registries/content-types.mjs.map +1 -0
  204. package/dist/registries/controllers.d.ts.map +1 -0
  205. package/dist/{core/registries → registries}/controllers.js +5 -5
  206. package/dist/registries/controllers.js.map +1 -0
  207. package/dist/{core/registries → registries}/controllers.mjs +1 -1
  208. package/dist/registries/controllers.mjs.map +1 -0
  209. package/dist/registries/custom-fields.d.ts.map +1 -0
  210. package/dist/registries/custom-fields.js.map +1 -0
  211. package/dist/registries/custom-fields.mjs.map +1 -0
  212. package/dist/registries/hooks.d.ts.map +1 -0
  213. package/dist/{core/registries → registries}/hooks.js +5 -5
  214. package/dist/registries/hooks.js.map +1 -0
  215. package/dist/{core/registries → registries}/hooks.mjs +1 -1
  216. package/dist/registries/hooks.mjs.map +1 -0
  217. package/dist/{core/registries → registries}/index.d.ts +1 -0
  218. package/dist/registries/index.d.ts.map +1 -0
  219. package/dist/registries/middlewares.d.ts.map +1 -0
  220. package/dist/{core/registries → registries}/middlewares.js +5 -5
  221. package/dist/registries/middlewares.js.map +1 -0
  222. package/dist/{core/registries → registries}/middlewares.mjs +1 -1
  223. package/dist/registries/middlewares.mjs.map +1 -0
  224. package/dist/registries/models.d.ts +6 -0
  225. package/dist/registries/models.d.ts.map +1 -0
  226. package/dist/registries/models.js +16 -0
  227. package/dist/registries/models.js.map +1 -0
  228. package/dist/registries/models.mjs +16 -0
  229. package/dist/registries/models.mjs.map +1 -0
  230. package/dist/registries/modules.d.ts.map +1 -0
  231. package/dist/registries/modules.js.map +1 -0
  232. package/dist/registries/modules.mjs.map +1 -0
  233. package/dist/{core/utils.d.ts → registries/namespace.d.ts} +1 -1
  234. package/dist/registries/namespace.d.ts.map +1 -0
  235. package/dist/{core/utils.js → registries/namespace.js} +1 -1
  236. package/dist/registries/namespace.js.map +1 -0
  237. package/dist/{core/utils.mjs → registries/namespace.mjs} +1 -1
  238. package/dist/registries/namespace.mjs.map +1 -0
  239. package/dist/registries/plugins.d.ts.map +1 -0
  240. package/dist/registries/plugins.js.map +1 -0
  241. package/dist/registries/plugins.mjs.map +1 -0
  242. package/dist/registries/policies.d.ts.map +1 -0
  243. package/dist/{core/registries → registries}/policies.js +5 -5
  244. package/dist/registries/policies.js.map +1 -0
  245. package/dist/{core/registries → registries}/policies.mjs +1 -1
  246. package/dist/registries/policies.mjs.map +1 -0
  247. package/dist/registries/sanitizers.d.ts.map +1 -0
  248. package/dist/registries/sanitizers.js.map +1 -0
  249. package/dist/registries/sanitizers.mjs.map +1 -0
  250. package/dist/registries/services.d.ts.map +1 -0
  251. package/dist/{core/registries → registries}/services.js +5 -5
  252. package/dist/registries/services.js.map +1 -0
  253. package/dist/{core/registries → registries}/services.mjs +1 -1
  254. package/dist/registries/services.mjs.map +1 -0
  255. package/dist/registries/validators.d.ts.map +1 -0
  256. package/dist/registries/validators.js.map +1 -0
  257. package/dist/registries/validators.mjs.map +1 -0
  258. package/dist/services/core-store.d.ts +2 -22
  259. package/dist/services/core-store.d.ts.map +1 -1
  260. package/dist/services/core-store.js +5 -1
  261. package/dist/services/core-store.js.map +1 -1
  262. package/dist/services/core-store.mjs +5 -1
  263. package/dist/services/core-store.mjs.map +1 -1
  264. package/dist/services/document-service/common.d.ts +4 -0
  265. package/dist/services/document-service/common.d.ts.map +1 -0
  266. package/dist/services/document-service/common.js +7 -0
  267. package/dist/services/document-service/common.js.map +1 -0
  268. package/dist/services/document-service/common.mjs +7 -0
  269. package/dist/services/document-service/common.mjs.map +1 -0
  270. package/dist/services/document-service/draft-and-publish.d.ts +10 -0
  271. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -0
  272. package/dist/services/document-service/draft-and-publish.js +69 -0
  273. package/dist/services/document-service/draft-and-publish.js.map +1 -0
  274. package/dist/services/document-service/draft-and-publish.mjs +69 -0
  275. package/dist/services/document-service/draft-and-publish.mjs.map +1 -0
  276. package/dist/services/document-service/index.d.ts +18 -7
  277. package/dist/services/document-service/index.d.ts.map +1 -1
  278. package/dist/services/document-service/index.js +20 -190
  279. package/dist/services/document-service/index.js.map +1 -1
  280. package/dist/services/document-service/index.mjs +19 -190
  281. package/dist/services/document-service/index.mjs.map +1 -1
  282. package/dist/services/document-service/internationalization.d.ts +8 -0
  283. package/dist/services/document-service/internationalization.d.ts.map +1 -0
  284. package/dist/services/document-service/internationalization.js +54 -0
  285. package/dist/services/document-service/internationalization.js.map +1 -0
  286. package/dist/services/document-service/internationalization.mjs +54 -0
  287. package/dist/services/document-service/internationalization.mjs.map +1 -0
  288. package/dist/services/document-service/middlewares/errors.d.ts +6 -0
  289. package/dist/services/document-service/middlewares/errors.d.ts.map +1 -0
  290. package/dist/services/document-service/middlewares/errors.js +25 -0
  291. package/dist/services/document-service/middlewares/errors.js.map +1 -0
  292. package/dist/services/document-service/middlewares/errors.mjs +25 -0
  293. package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
  294. package/dist/services/document-service/middlewares/index.d.ts +2 -10
  295. package/dist/services/document-service/middlewares/index.d.ts.map +1 -1
  296. package/dist/services/document-service/middlewares/middleware-manager.d.ts +7 -0
  297. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -0
  298. package/dist/services/document-service/middlewares/middleware-manager.js +46 -0
  299. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
  300. package/dist/services/document-service/middlewares/middleware-manager.mjs +46 -0
  301. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
  302. package/dist/services/document-service/repository.d.ts +3 -0
  303. package/dist/services/document-service/repository.d.ts.map +1 -0
  304. package/dist/services/document-service/repository.js +295 -0
  305. package/dist/services/document-service/repository.js.map +1 -0
  306. package/dist/services/document-service/repository.mjs +295 -0
  307. package/dist/services/document-service/repository.mjs.map +1 -0
  308. package/dist/services/document-service/transform/data.d.ts +5 -0
  309. package/dist/services/document-service/transform/data.d.ts.map +1 -0
  310. package/dist/services/document-service/transform/data.js +13 -0
  311. package/dist/services/document-service/transform/data.js.map +1 -0
  312. package/dist/services/document-service/transform/data.mjs +13 -0
  313. package/dist/services/document-service/transform/data.mjs.map +1 -0
  314. package/dist/services/document-service/transform/fields.d.ts +5 -0
  315. package/dist/services/document-service/transform/fields.d.ts.map +1 -0
  316. package/dist/services/document-service/transform/fields.js +24 -0
  317. package/dist/services/document-service/transform/fields.js.map +1 -0
  318. package/dist/services/document-service/transform/fields.mjs +24 -0
  319. package/dist/services/document-service/transform/fields.mjs.map +1 -0
  320. package/dist/services/document-service/transform/id-map.d.ts +23 -0
  321. package/dist/services/document-service/transform/id-map.d.ts.map +1 -0
  322. package/dist/services/document-service/transform/id-map.js +78 -0
  323. package/dist/services/document-service/transform/id-map.js.map +1 -0
  324. package/dist/services/document-service/transform/id-map.mjs +78 -0
  325. package/dist/services/document-service/transform/id-map.mjs.map +1 -0
  326. package/dist/services/document-service/transform/id-transform.d.ts +5 -0
  327. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -0
  328. package/dist/services/document-service/transform/id-transform.js +33 -0
  329. package/dist/services/document-service/transform/id-transform.js.map +1 -0
  330. package/dist/services/document-service/transform/id-transform.mjs +33 -0
  331. package/dist/services/document-service/transform/id-transform.mjs.map +1 -0
  332. package/dist/services/document-service/transform/populate.d.ts +6 -0
  333. package/dist/services/document-service/transform/populate.d.ts.map +1 -0
  334. package/dist/services/document-service/transform/populate.js +21 -0
  335. package/dist/services/document-service/transform/populate.js.map +1 -0
  336. package/dist/services/document-service/transform/populate.mjs +21 -0
  337. package/dist/services/document-service/transform/populate.mjs.map +1 -0
  338. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +13 -0
  339. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -0
  340. package/dist/services/document-service/transform/relations/extract/data-ids.js +90 -0
  341. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -0
  342. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +90 -0
  343. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -0
  344. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +10 -0
  345. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -0
  346. package/dist/services/document-service/transform/relations/transform/data-ids.js +141 -0
  347. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -0
  348. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +141 -0
  349. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -0
  350. package/dist/services/document-service/transform/relations/utils/data.d.ts +4 -0
  351. package/dist/services/document-service/transform/relations/utils/data.d.ts.map +1 -0
  352. package/dist/services/document-service/transform/relations/utils/data.js +12 -0
  353. package/dist/services/document-service/transform/relations/utils/data.js.map +1 -0
  354. package/dist/services/document-service/transform/relations/utils/data.mjs +12 -0
  355. package/dist/services/document-service/transform/relations/utils/data.mjs.map +1 -0
  356. package/dist/services/document-service/transform/relations/utils/dp.d.ts +10 -0
  357. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -0
  358. package/dist/services/document-service/transform/relations/utils/dp.js +30 -0
  359. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -0
  360. package/dist/services/document-service/transform/relations/utils/dp.mjs +30 -0
  361. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -0
  362. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +10 -0
  363. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -0
  364. package/dist/services/document-service/transform/relations/utils/i18n.js +31 -0
  365. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -0
  366. package/dist/services/document-service/transform/relations/utils/i18n.mjs +31 -0
  367. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -0
  368. package/dist/services/document-service/transform/relations/utils/types.d.ts +15 -0
  369. package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -0
  370. package/dist/services/document-service/transform/types.d.ts +13 -0
  371. package/dist/services/document-service/transform/types.d.ts.map +1 -0
  372. package/dist/services/document-service/utils/populate.d.ts +10 -0
  373. package/dist/services/document-service/utils/populate.d.ts.map +1 -0
  374. package/dist/services/document-service/utils/populate.js +41 -0
  375. package/dist/services/document-service/utils/populate.js.map +1 -0
  376. package/dist/services/document-service/utils/populate.mjs +41 -0
  377. package/dist/services/document-service/utils/populate.mjs.map +1 -0
  378. package/dist/services/entity-service/components.d.ts +1 -4
  379. package/dist/services/entity-service/components.d.ts.map +1 -1
  380. package/dist/services/entity-service/components.js +13 -99
  381. package/dist/services/entity-service/components.js.map +1 -1
  382. package/dist/services/entity-service/components.mjs +14 -100
  383. package/dist/services/entity-service/components.mjs.map +1 -1
  384. package/dist/services/entity-service/index.d.ts +1 -3
  385. package/dist/services/entity-service/index.d.ts.map +1 -1
  386. package/dist/services/entity-service/index.js +34 -199
  387. package/dist/services/entity-service/index.js.map +1 -1
  388. package/dist/services/entity-service/index.mjs +27 -192
  389. package/dist/services/entity-service/index.mjs.map +1 -1
  390. package/dist/services/entity-service/params.d.ts +4 -4
  391. package/dist/services/entity-service/params.d.ts.map +1 -1
  392. package/dist/services/entity-service/params.js +1 -1
  393. package/dist/services/entity-service/params.js.map +1 -1
  394. package/dist/services/entity-service/params.mjs +1 -1
  395. package/dist/services/entity-service/params.mjs.map +1 -1
  396. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  397. package/dist/services/entity-validator/blocks-validator.js +22 -2
  398. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  399. package/dist/services/entity-validator/blocks-validator.mjs +22 -2
  400. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  401. package/dist/services/entity-validator/index.d.ts.map +1 -1
  402. package/dist/services/entity-validator/index.js +5 -2
  403. package/dist/services/entity-validator/index.js.map +1 -1
  404. package/dist/services/entity-validator/index.mjs +5 -2
  405. package/dist/services/entity-validator/index.mjs.map +1 -1
  406. package/dist/services/entity-validator/validators.d.ts +14 -13
  407. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  408. package/dist/services/entity-validator/validators.js +20 -16
  409. package/dist/services/entity-validator/validators.js.map +1 -1
  410. package/dist/services/entity-validator/validators.mjs +20 -16
  411. package/dist/services/entity-validator/validators.mjs.map +1 -1
  412. package/dist/services/features.d.ts +10 -0
  413. package/dist/services/features.d.ts.map +1 -0
  414. package/dist/services/features.js +17 -0
  415. package/dist/services/features.js.map +1 -0
  416. package/dist/services/features.mjs +17 -0
  417. package/dist/services/features.mjs.map +1 -0
  418. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  419. package/dist/services/server/compose-endpoint.js +3 -0
  420. package/dist/services/server/compose-endpoint.js.map +1 -1
  421. package/dist/services/server/compose-endpoint.mjs +3 -0
  422. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  423. package/dist/services/server/middleware.d.ts +1 -5
  424. package/dist/services/server/middleware.d.ts.map +1 -1
  425. package/dist/services/server/middleware.js.map +1 -1
  426. package/dist/services/server/middleware.mjs.map +1 -1
  427. package/dist/services/server/register-middlewares.js +1 -1
  428. package/dist/services/server/register-middlewares.js.map +1 -1
  429. package/dist/services/server/register-middlewares.mjs +1 -1
  430. package/dist/services/server/register-middlewares.mjs.map +1 -1
  431. package/dist/services/webhook-runner.d.ts +10 -1
  432. package/dist/services/webhook-runner.d.ts.map +1 -1
  433. package/dist/services/webhook-store.d.ts +2 -22
  434. package/dist/services/webhook-store.d.ts.map +1 -1
  435. package/dist/services/webhook-store.js +7 -3
  436. package/dist/services/webhook-store.js.map +1 -1
  437. package/dist/services/webhook-store.mjs +7 -3
  438. package/dist/services/webhook-store.mjs.map +1 -1
  439. package/dist/utils/convert-custom-field-type.d.ts +1 -2
  440. package/dist/utils/convert-custom-field-type.d.ts.map +1 -1
  441. package/dist/utils/convert-custom-field-type.js +2 -1
  442. package/dist/utils/convert-custom-field-type.js.map +1 -1
  443. package/dist/utils/convert-custom-field-type.mjs +1 -1
  444. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  445. package/dist/utils/ee.d.ts +1 -2
  446. package/dist/utils/ee.d.ts.map +1 -1
  447. package/dist/utils/fetch.d.ts +2 -1
  448. package/dist/utils/fetch.d.ts.map +1 -1
  449. package/dist/utils/fetch.js +2 -2
  450. package/dist/utils/fetch.js.map +1 -1
  451. package/dist/utils/fetch.mjs +2 -2
  452. package/dist/utils/fetch.mjs.map +1 -1
  453. package/dist/utils/filepath-to-prop-path.d.ts +5 -0
  454. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -0
  455. package/dist/{load → utils}/filepath-to-prop-path.js +3 -2
  456. package/dist/utils/filepath-to-prop-path.js.map +1 -0
  457. package/dist/{load → utils}/filepath-to-prop-path.mjs +2 -2
  458. package/dist/utils/filepath-to-prop-path.mjs.map +1 -0
  459. package/dist/utils/get-dirs.d.ts +1 -2
  460. package/dist/utils/get-dirs.d.ts.map +1 -1
  461. package/dist/utils/get-dirs.js +2 -1
  462. package/dist/utils/get-dirs.js.map +1 -1
  463. package/dist/utils/get-dirs.mjs +1 -1
  464. package/dist/utils/get-dirs.mjs.map +1 -1
  465. package/dist/utils/index.d.ts +11 -4
  466. package/dist/utils/index.d.ts.map +1 -1
  467. package/dist/utils/is-initialized.d.ts +1 -1
  468. package/dist/utils/is-initialized.d.ts.map +1 -1
  469. package/dist/utils/is-initialized.js +5 -4
  470. package/dist/utils/is-initialized.js.map +1 -1
  471. package/dist/utils/is-initialized.mjs +4 -4
  472. package/dist/utils/is-initialized.mjs.map +1 -1
  473. package/dist/utils/load-config-file.d.ts +2 -0
  474. package/dist/utils/load-config-file.d.ts.map +1 -0
  475. package/dist/{core/app-configuration → utils}/load-config-file.js +3 -3
  476. package/dist/utils/load-config-file.js.map +1 -0
  477. package/dist/{core/app-configuration → utils}/load-config-file.mjs +4 -4
  478. package/dist/utils/load-config-file.mjs.map +1 -0
  479. package/dist/{load → utils}/load-files.d.ts +2 -2
  480. package/dist/utils/load-files.d.ts.map +1 -0
  481. package/dist/{load → utils}/load-files.js +7 -6
  482. package/dist/utils/load-files.js.map +1 -0
  483. package/dist/{load → utils}/load-files.mjs +7 -7
  484. package/dist/utils/load-files.mjs.map +1 -0
  485. package/dist/utils/open-browser.d.ts +1 -2
  486. package/dist/utils/open-browser.d.ts.map +1 -1
  487. package/dist/utils/open-browser.js +5 -5
  488. package/dist/utils/open-browser.js.map +1 -1
  489. package/dist/utils/open-browser.mjs +4 -5
  490. package/dist/utils/open-browser.mjs.map +1 -1
  491. package/dist/utils/startup-logger.d.ts +1 -2
  492. package/dist/utils/startup-logger.d.ts.map +1 -1
  493. package/dist/utils/startup-logger.js +19 -13
  494. package/dist/utils/startup-logger.js.map +1 -1
  495. package/dist/utils/startup-logger.mjs +18 -13
  496. package/dist/utils/startup-logger.mjs.map +1 -1
  497. package/dist/utils/transform-content-types-to-models.d.ts +176 -4
  498. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  499. package/dist/utils/transform-content-types-to-models.js +202 -15
  500. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  501. package/dist/utils/transform-content-types-to-models.mjs +199 -15
  502. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  503. package/dist/utils/update-notifier/index.d.ts +1 -2
  504. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  505. package/dist/utils/update-notifier/index.js +8 -2
  506. package/dist/utils/update-notifier/index.js.map +1 -1
  507. package/dist/utils/update-notifier/index.mjs +7 -2
  508. package/dist/utils/update-notifier/index.mjs.map +1 -1
  509. package/package.json +19 -26
  510. package/bin/strapi.js +0 -2
  511. package/dist/admin.d.ts +0 -5
  512. package/dist/admin.d.ts.map +0 -1
  513. package/dist/cli.d.ts +0 -2
  514. package/dist/cli.d.ts.map +0 -1
  515. package/dist/commands/actions/admin/create-user/action.d.ts +0 -12
  516. package/dist/commands/actions/admin/create-user/action.d.ts.map +0 -1
  517. package/dist/commands/actions/admin/create-user/command.d.ts +0 -7
  518. package/dist/commands/actions/admin/create-user/command.d.ts.map +0 -1
  519. package/dist/commands/actions/admin/reset-user-password/action.d.ts +0 -10
  520. package/dist/commands/actions/admin/reset-user-password/action.d.ts.map +0 -1
  521. package/dist/commands/actions/admin/reset-user-password/command.d.ts +0 -7
  522. package/dist/commands/actions/admin/reset-user-password/command.d.ts.map +0 -1
  523. package/dist/commands/actions/components/list/action.d.ts +0 -3
  524. package/dist/commands/actions/components/list/action.d.ts.map +0 -1
  525. package/dist/commands/actions/components/list/command.d.ts +0 -7
  526. package/dist/commands/actions/components/list/command.d.ts.map +0 -1
  527. package/dist/commands/actions/configuration/dump/action.d.ts +0 -11
  528. package/dist/commands/actions/configuration/dump/action.d.ts.map +0 -1
  529. package/dist/commands/actions/configuration/dump/command.d.ts +0 -7
  530. package/dist/commands/actions/configuration/dump/command.d.ts.map +0 -1
  531. package/dist/commands/actions/configuration/restore/action.d.ts +0 -11
  532. package/dist/commands/actions/configuration/restore/action.d.ts.map +0 -1
  533. package/dist/commands/actions/configuration/restore/command.d.ts +0 -7
  534. package/dist/commands/actions/configuration/restore/command.d.ts.map +0 -1
  535. package/dist/commands/actions/console/action.d.ts +0 -6
  536. package/dist/commands/actions/console/action.d.ts.map +0 -1
  537. package/dist/commands/actions/console/command.d.ts +0 -7
  538. package/dist/commands/actions/console/command.d.ts.map +0 -1
  539. package/dist/commands/actions/content-types/list/action.d.ts +0 -3
  540. package/dist/commands/actions/content-types/list/action.d.ts.map +0 -1
  541. package/dist/commands/actions/content-types/list/command.d.ts +0 -7
  542. package/dist/commands/actions/content-types/list/command.d.ts.map +0 -1
  543. package/dist/commands/actions/controllers/list/action.d.ts +0 -3
  544. package/dist/commands/actions/controllers/list/action.d.ts.map +0 -1
  545. package/dist/commands/actions/controllers/list/command.d.ts +0 -7
  546. package/dist/commands/actions/controllers/list/command.d.ts.map +0 -1
  547. package/dist/commands/actions/generate/command.d.ts +0 -7
  548. package/dist/commands/actions/generate/command.d.ts.map +0 -1
  549. package/dist/commands/actions/hooks/list/action.d.ts +0 -3
  550. package/dist/commands/actions/hooks/list/action.d.ts.map +0 -1
  551. package/dist/commands/actions/hooks/list/command.d.ts +0 -7
  552. package/dist/commands/actions/hooks/list/command.d.ts.map +0 -1
  553. package/dist/commands/actions/install/action.d.ts +0 -3
  554. package/dist/commands/actions/install/action.d.ts.map +0 -1
  555. package/dist/commands/actions/install/command.d.ts +0 -7
  556. package/dist/commands/actions/install/command.d.ts.map +0 -1
  557. package/dist/commands/actions/middlewares/list/action.d.ts +0 -3
  558. package/dist/commands/actions/middlewares/list/action.d.ts.map +0 -1
  559. package/dist/commands/actions/middlewares/list/command.d.ts +0 -7
  560. package/dist/commands/actions/middlewares/list/command.d.ts.map +0 -1
  561. package/dist/commands/actions/new/action.d.ts +0 -8
  562. package/dist/commands/actions/new/action.d.ts.map +0 -1
  563. package/dist/commands/actions/new/command.d.ts +0 -7
  564. package/dist/commands/actions/new/command.d.ts.map +0 -1
  565. package/dist/commands/actions/plugin/build-command/action.d.ts +0 -7
  566. package/dist/commands/actions/plugin/build-command/action.d.ts.map +0 -1
  567. package/dist/commands/actions/plugin/build-command/command.d.ts +0 -7
  568. package/dist/commands/actions/plugin/build-command/command.d.ts.map +0 -1
  569. package/dist/commands/actions/plugin/watch/action.d.ts +0 -7
  570. package/dist/commands/actions/plugin/watch/action.d.ts.map +0 -1
  571. package/dist/commands/actions/plugin/watch/command.d.ts +0 -7
  572. package/dist/commands/actions/plugin/watch/command.d.ts.map +0 -1
  573. package/dist/commands/actions/policies/list/action.d.ts +0 -3
  574. package/dist/commands/actions/policies/list/action.d.ts.map +0 -1
  575. package/dist/commands/actions/policies/list/command.d.ts +0 -7
  576. package/dist/commands/actions/policies/list/command.d.ts.map +0 -1
  577. package/dist/commands/actions/report/action.d.ts +0 -8
  578. package/dist/commands/actions/report/action.d.ts.map +0 -1
  579. package/dist/commands/actions/report/command.d.ts +0 -7
  580. package/dist/commands/actions/report/command.d.ts.map +0 -1
  581. package/dist/commands/actions/routes/list/action.d.ts +0 -3
  582. package/dist/commands/actions/routes/list/action.d.ts.map +0 -1
  583. package/dist/commands/actions/routes/list/command.d.ts +0 -7
  584. package/dist/commands/actions/routes/list/command.d.ts.map +0 -1
  585. package/dist/commands/actions/services/list/action.d.ts +0 -3
  586. package/dist/commands/actions/services/list/action.d.ts.map +0 -1
  587. package/dist/commands/actions/services/list/command.d.ts +0 -7
  588. package/dist/commands/actions/services/list/command.d.ts.map +0 -1
  589. package/dist/commands/actions/start/action.d.ts +0 -6
  590. package/dist/commands/actions/start/action.d.ts.map +0 -1
  591. package/dist/commands/actions/start/command.d.ts +0 -7
  592. package/dist/commands/actions/start/command.d.ts.map +0 -1
  593. package/dist/commands/actions/telemetry/disable/action.d.ts +0 -2
  594. package/dist/commands/actions/telemetry/disable/action.d.ts.map +0 -1
  595. package/dist/commands/actions/telemetry/disable/command.d.ts +0 -7
  596. package/dist/commands/actions/telemetry/disable/command.d.ts.map +0 -1
  597. package/dist/commands/actions/telemetry/enable/action.d.ts +0 -3
  598. package/dist/commands/actions/telemetry/enable/action.d.ts.map +0 -1
  599. package/dist/commands/actions/telemetry/enable/command.d.ts +0 -7
  600. package/dist/commands/actions/telemetry/enable/command.d.ts.map +0 -1
  601. package/dist/commands/actions/templates/generate/action.d.ts +0 -2
  602. package/dist/commands/actions/templates/generate/action.d.ts.map +0 -1
  603. package/dist/commands/actions/templates/generate/command.d.ts +0 -7
  604. package/dist/commands/actions/templates/generate/command.d.ts.map +0 -1
  605. package/dist/commands/actions/ts/generate-types/action.d.ts +0 -9
  606. package/dist/commands/actions/ts/generate-types/action.d.ts.map +0 -1
  607. package/dist/commands/actions/ts/generate-types/command.d.ts +0 -7
  608. package/dist/commands/actions/ts/generate-types/command.d.ts.map +0 -1
  609. package/dist/commands/actions/uninstall/action.d.ts +0 -6
  610. package/dist/commands/actions/uninstall/action.d.ts.map +0 -1
  611. package/dist/commands/actions/uninstall/command.d.ts +0 -7
  612. package/dist/commands/actions/uninstall/command.d.ts.map +0 -1
  613. package/dist/commands/actions/version/command.d.ts +0 -7
  614. package/dist/commands/actions/version/command.d.ts.map +0 -1
  615. package/dist/commands/actions/watch-admin/action.d.ts +0 -7
  616. package/dist/commands/actions/watch-admin/action.d.ts.map +0 -1
  617. package/dist/commands/actions/watch-admin/command.d.ts +0 -7
  618. package/dist/commands/actions/watch-admin/command.d.ts.map +0 -1
  619. package/dist/commands/index.d.ts +0 -37
  620. package/dist/commands/index.d.ts.map +0 -1
  621. package/dist/commands/types.d.ts +0 -14
  622. package/dist/commands/types.d.ts.map +0 -1
  623. package/dist/commands/utils/commander.d.ts +0 -36
  624. package/dist/commands/utils/commander.d.ts.map +0 -1
  625. package/dist/commands/utils/helpers.d.ts +0 -49
  626. package/dist/commands/utils/helpers.d.ts.map +0 -1
  627. package/dist/commands/utils/logger.d.ts +0 -19
  628. package/dist/commands/utils/logger.d.ts.map +0 -1
  629. package/dist/commands/utils/pkg.d.ts +0 -119
  630. package/dist/commands/utils/pkg.d.ts.map +0 -1
  631. package/dist/commands/utils/tsconfig.d.ts +0 -19
  632. package/dist/commands/utils/tsconfig.d.ts.map +0 -1
  633. package/dist/core/app-configuration/config-loader.d.ts.map +0 -1
  634. package/dist/core/app-configuration/config-loader.js +0 -19
  635. package/dist/core/app-configuration/config-loader.js.map +0 -1
  636. package/dist/core/app-configuration/config-loader.mjs +0 -17
  637. package/dist/core/app-configuration/config-loader.mjs.map +0 -1
  638. package/dist/core/app-configuration/index.d.ts.map +0 -1
  639. package/dist/core/app-configuration/index.js.map +0 -1
  640. package/dist/core/app-configuration/index.mjs.map +0 -1
  641. package/dist/core/app-configuration/load-config-file.d.ts +0 -2
  642. package/dist/core/app-configuration/load-config-file.d.ts.map +0 -1
  643. package/dist/core/app-configuration/load-config-file.js.map +0 -1
  644. package/dist/core/app-configuration/load-config-file.mjs.map +0 -1
  645. package/dist/core/bootstrap.d.ts +0 -5
  646. package/dist/core/bootstrap.d.ts.map +0 -1
  647. package/dist/core/bootstrap.js +0 -28
  648. package/dist/core/bootstrap.js.map +0 -1
  649. package/dist/core/bootstrap.mjs +0 -27
  650. package/dist/core/bootstrap.mjs.map +0 -1
  651. package/dist/core/domain/content-type/index.d.ts.map +0 -1
  652. package/dist/core/domain/content-type/index.js.map +0 -1
  653. package/dist/core/domain/content-type/index.mjs.map +0 -1
  654. package/dist/core/domain/content-type/validator.d.ts.map +0 -1
  655. package/dist/core/domain/content-type/validator.js.map +0 -1
  656. package/dist/core/domain/content-type/validator.mjs.map +0 -1
  657. package/dist/core/domain/module/index.d.ts.map +0 -1
  658. package/dist/core/domain/module/index.js.map +0 -1
  659. package/dist/core/domain/module/index.mjs.map +0 -1
  660. package/dist/core/domain/module/validation.d.ts.map +0 -1
  661. package/dist/core/domain/module/validation.js.map +0 -1
  662. package/dist/core/domain/module/validation.mjs.map +0 -1
  663. package/dist/core/loaders/admin.d.ts.map +0 -1
  664. package/dist/core/loaders/admin.js.map +0 -1
  665. package/dist/core/loaders/admin.mjs.map +0 -1
  666. package/dist/core/loaders/apis.d.ts.map +0 -1
  667. package/dist/core/loaders/apis.js.map +0 -1
  668. package/dist/core/loaders/apis.mjs.map +0 -1
  669. package/dist/core/loaders/components.d.ts.map +0 -1
  670. package/dist/core/loaders/components.js.map +0 -1
  671. package/dist/core/loaders/components.mjs.map +0 -1
  672. package/dist/core/loaders/index.d.ts.map +0 -1
  673. package/dist/core/loaders/index.js.map +0 -1
  674. package/dist/core/loaders/index.mjs.map +0 -1
  675. package/dist/core/loaders/middlewares.d.ts.map +0 -1
  676. package/dist/core/loaders/middlewares.js.map +0 -1
  677. package/dist/core/loaders/middlewares.mjs.map +0 -1
  678. package/dist/core/loaders/plugins/get-enabled-plugins.d.ts.map +0 -1
  679. package/dist/core/loaders/plugins/get-enabled-plugins.js.map +0 -1
  680. package/dist/core/loaders/plugins/get-enabled-plugins.mjs.map +0 -1
  681. package/dist/core/loaders/plugins/get-user-plugins-config.d.ts.map +0 -1
  682. package/dist/core/loaders/plugins/get-user-plugins-config.js.map +0 -1
  683. package/dist/core/loaders/plugins/get-user-plugins-config.mjs.map +0 -1
  684. package/dist/core/loaders/plugins/index.d.ts.map +0 -1
  685. package/dist/core/loaders/plugins/index.js.map +0 -1
  686. package/dist/core/loaders/plugins/index.mjs.map +0 -1
  687. package/dist/core/loaders/policies.d.ts.map +0 -1
  688. package/dist/core/loaders/policies.js.map +0 -1
  689. package/dist/core/loaders/policies.mjs.map +0 -1
  690. package/dist/core/loaders/sanitizers.d.ts.map +0 -1
  691. package/dist/core/loaders/sanitizers.js.map +0 -1
  692. package/dist/core/loaders/sanitizers.mjs.map +0 -1
  693. package/dist/core/loaders/src-index.d.ts.map +0 -1
  694. package/dist/core/loaders/src-index.js.map +0 -1
  695. package/dist/core/loaders/src-index.mjs.map +0 -1
  696. package/dist/core/loaders/validators.d.ts.map +0 -1
  697. package/dist/core/loaders/validators.js.map +0 -1
  698. package/dist/core/loaders/validators.mjs.map +0 -1
  699. package/dist/core/registries/apis.d.ts.map +0 -1
  700. package/dist/core/registries/apis.js.map +0 -1
  701. package/dist/core/registries/apis.mjs.map +0 -1
  702. package/dist/core/registries/components.d.ts.map +0 -1
  703. package/dist/core/registries/components.js.map +0 -1
  704. package/dist/core/registries/components.mjs.map +0 -1
  705. package/dist/core/registries/config.d.ts +0 -4
  706. package/dist/core/registries/config.d.ts.map +0 -1
  707. package/dist/core/registries/config.js +0 -23
  708. package/dist/core/registries/config.js.map +0 -1
  709. package/dist/core/registries/config.mjs +0 -22
  710. package/dist/core/registries/config.mjs.map +0 -1
  711. package/dist/core/registries/content-types.d.ts.map +0 -1
  712. package/dist/core/registries/content-types.js.map +0 -1
  713. package/dist/core/registries/content-types.mjs.map +0 -1
  714. package/dist/core/registries/controllers.d.ts.map +0 -1
  715. package/dist/core/registries/controllers.js.map +0 -1
  716. package/dist/core/registries/controllers.mjs.map +0 -1
  717. package/dist/core/registries/custom-fields.d.ts.map +0 -1
  718. package/dist/core/registries/custom-fields.js.map +0 -1
  719. package/dist/core/registries/custom-fields.mjs.map +0 -1
  720. package/dist/core/registries/hooks.d.ts.map +0 -1
  721. package/dist/core/registries/hooks.js.map +0 -1
  722. package/dist/core/registries/hooks.mjs.map +0 -1
  723. package/dist/core/registries/index.d.ts.map +0 -1
  724. package/dist/core/registries/middlewares.d.ts.map +0 -1
  725. package/dist/core/registries/middlewares.js.map +0 -1
  726. package/dist/core/registries/middlewares.mjs.map +0 -1
  727. package/dist/core/registries/modules.d.ts.map +0 -1
  728. package/dist/core/registries/modules.js.map +0 -1
  729. package/dist/core/registries/modules.mjs.map +0 -1
  730. package/dist/core/registries/plugins.d.ts.map +0 -1
  731. package/dist/core/registries/plugins.js.map +0 -1
  732. package/dist/core/registries/plugins.mjs.map +0 -1
  733. package/dist/core/registries/policies.d.ts.map +0 -1
  734. package/dist/core/registries/policies.js.map +0 -1
  735. package/dist/core/registries/policies.mjs.map +0 -1
  736. package/dist/core/registries/sanitizers.d.ts.map +0 -1
  737. package/dist/core/registries/sanitizers.js.map +0 -1
  738. package/dist/core/registries/sanitizers.mjs.map +0 -1
  739. package/dist/core/registries/services.d.ts.map +0 -1
  740. package/dist/core/registries/services.js.map +0 -1
  741. package/dist/core/registries/services.mjs.map +0 -1
  742. package/dist/core/registries/validators.d.ts.map +0 -1
  743. package/dist/core/registries/validators.js.map +0 -1
  744. package/dist/core/registries/validators.mjs.map +0 -1
  745. package/dist/core/utils.d.ts.map +0 -1
  746. package/dist/core/utils.js.map +0 -1
  747. package/dist/core/utils.mjs.map +0 -1
  748. package/dist/core-api/service/get-fetch-params.d.ts +0 -7
  749. package/dist/core-api/service/get-fetch-params.d.ts.map +0 -1
  750. package/dist/core-api/service/get-fetch-params.js +0 -14
  751. package/dist/core-api/service/get-fetch-params.js.map +0 -1
  752. package/dist/core-api/service/get-fetch-params.mjs +0 -14
  753. package/dist/core-api/service/get-fetch-params.mjs.map +0 -1
  754. package/dist/load/filepath-to-prop-path.d.ts +0 -6
  755. package/dist/load/filepath-to-prop-path.d.ts.map +0 -1
  756. package/dist/load/filepath-to-prop-path.js.map +0 -1
  757. package/dist/load/filepath-to-prop-path.mjs.map +0 -1
  758. package/dist/load/glob.d.ts +0 -7
  759. package/dist/load/glob.d.ts.map +0 -1
  760. package/dist/load/glob.js +0 -15
  761. package/dist/load/glob.js.map +0 -1
  762. package/dist/load/glob.mjs +0 -14
  763. package/dist/load/glob.mjs.map +0 -1
  764. package/dist/load/index.d.ts +0 -3
  765. package/dist/load/index.d.ts.map +0 -1
  766. package/dist/load/load-files.d.ts.map +0 -1
  767. package/dist/load/load-files.js.map +0 -1
  768. package/dist/load/load-files.mjs.map +0 -1
  769. package/dist/load/package-path.d.ts +0 -6
  770. package/dist/load/package-path.d.ts.map +0 -1
  771. package/dist/middlewares/public/assets/images/group_people_1.png +0 -0
  772. package/dist/middlewares/public/assets/images/group_people_2.png +0 -0
  773. package/dist/middlewares/public/assets/images/group_people_3.png +0 -0
  774. package/dist/middlewares/public/assets/images/logo_login.png +0 -0
  775. package/dist/middlewares/public/index.d.ts.map +0 -1
  776. package/dist/middlewares/public/index.html +0 -66
  777. package/dist/middlewares/public/index.js +0 -91
  778. package/dist/middlewares/public/index.js.map +0 -1
  779. package/dist/middlewares/public/index.mjs +0 -85
  780. package/dist/middlewares/public/index.mjs.map +0 -1
  781. package/dist/middlewares/public/serve-static.d.ts +0 -4
  782. package/dist/middlewares/public/serve-static.d.ts.map +0 -1
  783. package/dist/middlewares/public/serve-static.js +0 -24
  784. package/dist/middlewares/public/serve-static.js.map +0 -1
  785. package/dist/middlewares/public/serve-static.mjs +0 -21
  786. package/dist/middlewares/public/serve-static.mjs.map +0 -1
  787. package/dist/services/document-service/document-repository.d.ts +0 -21
  788. package/dist/services/document-service/document-repository.d.ts.map +0 -1
  789. package/dist/services/document-service/document-repository.js +0 -132
  790. package/dist/services/document-service/document-repository.js.map +0 -1
  791. package/dist/services/document-service/document-repository.mjs +0 -132
  792. package/dist/services/document-service/document-repository.mjs.map +0 -1
  793. package/dist/services/document-service/middlewares/defaults/draft-and-publish.d.ts +0 -26
  794. package/dist/services/document-service/middlewares/defaults/draft-and-publish.d.ts.map +0 -1
  795. package/dist/services/document-service/middlewares/defaults/draft-and-publish.js +0 -58
  796. package/dist/services/document-service/middlewares/defaults/draft-and-publish.js.map +0 -1
  797. package/dist/services/document-service/middlewares/defaults/draft-and-publish.mjs +0 -58
  798. package/dist/services/document-service/middlewares/defaults/draft-and-publish.mjs.map +0 -1
  799. package/dist/services/document-service/middlewares/defaults/index.d.ts +0 -3
  800. package/dist/services/document-service/middlewares/defaults/index.d.ts.map +0 -1
  801. package/dist/services/document-service/middlewares/defaults/index.js +0 -82
  802. package/dist/services/document-service/middlewares/defaults/index.js.map +0 -1
  803. package/dist/services/document-service/middlewares/defaults/index.mjs +0 -82
  804. package/dist/services/document-service/middlewares/defaults/index.mjs.map +0 -1
  805. package/dist/services/document-service/middlewares/defaults/locales.d.ts +0 -18
  806. package/dist/services/document-service/middlewares/defaults/locales.d.ts.map +0 -1
  807. package/dist/services/document-service/middlewares/defaults/locales.js +0 -40
  808. package/dist/services/document-service/middlewares/defaults/locales.js.map +0 -1
  809. package/dist/services/document-service/middlewares/defaults/locales.mjs +0 -40
  810. package/dist/services/document-service/middlewares/defaults/locales.mjs.map +0 -1
  811. package/dist/services/document-service/middlewares/index.js +0 -59
  812. package/dist/services/document-service/middlewares/index.js.map +0 -1
  813. package/dist/services/document-service/middlewares/index.mjs +0 -59
  814. package/dist/services/document-service/middlewares/index.mjs.map +0 -1
  815. package/dist/services/utils/upload-files.d.ts +0 -8
  816. package/dist/services/utils/upload-files.d.ts.map +0 -1
  817. package/dist/services/utils/upload-files.js +0 -64
  818. package/dist/services/utils/upload-files.js.map +0 -1
  819. package/dist/services/utils/upload-files.mjs +0 -63
  820. package/dist/services/utils/upload-files.mjs.map +0 -1
  821. package/dist/utils/addSlash.d.ts +0 -3
  822. package/dist/utils/addSlash.d.ts.map +0 -1
  823. package/dist/utils/ee.js +0 -4
  824. package/dist/utils/ee.js.map +0 -1
  825. package/dist/utils/ee.mjs +0 -5
  826. package/dist/utils/ee.mjs.map +0 -1
  827. /package/dist/{core/app-configuration → configuration}/config-loader.d.ts +0 -0
  828. /package/dist/{core/domain → domain}/content-type/validator.d.ts +0 -0
  829. /package/dist/{core/domain → domain}/module/index.d.ts +0 -0
  830. /package/dist/{core/domain → domain}/module/validation.d.ts +0 -0
  831. /package/dist/{core/domain → domain}/module/validation.js +0 -0
  832. /package/dist/{core/domain → domain}/module/validation.mjs +0 -0
  833. /package/dist/{core/loaders → loaders}/admin.d.ts +0 -0
  834. /package/dist/{core/loaders → loaders}/apis.d.ts +0 -0
  835. /package/dist/{core/loaders → loaders}/components.d.ts +0 -0
  836. /package/dist/{core/loaders → loaders}/index.d.ts +0 -0
  837. /package/dist/{core/loaders → loaders}/index.js +0 -0
  838. /package/dist/{core/loaders → loaders}/index.mjs +0 -0
  839. /package/dist/{core/loaders → loaders}/middlewares.d.ts +0 -0
  840. /package/dist/{core/loaders → loaders}/plugins/get-enabled-plugins.d.ts +0 -0
  841. /package/dist/{core/loaders → loaders}/plugins/get-user-plugins-config.d.ts +0 -0
  842. /package/dist/{core/loaders → loaders}/plugins/index.d.ts +0 -0
  843. /package/dist/{core/loaders → loaders}/policies.d.ts +0 -0
  844. /package/dist/{core/loaders → loaders}/policies.js +0 -0
  845. /package/dist/{core/loaders → loaders}/policies.mjs +0 -0
  846. /package/dist/{core/loaders → loaders}/sanitizers.d.ts +0 -0
  847. /package/dist/{core/loaders → loaders}/sanitizers.js +0 -0
  848. /package/dist/{core/loaders → loaders}/sanitizers.mjs +0 -0
  849. /package/dist/{core/loaders → loaders}/src-index.d.ts +0 -0
  850. /package/dist/{core/loaders → loaders}/src-index.js +0 -0
  851. /package/dist/{core/loaders → loaders}/src-index.mjs +0 -0
  852. /package/dist/{core/loaders → loaders}/validators.d.ts +0 -0
  853. /package/dist/{core/loaders → loaders}/validators.js +0 -0
  854. /package/dist/{core/loaders → loaders}/validators.mjs +0 -0
  855. /package/dist/{core/registries → registries}/apis.d.ts +0 -0
  856. /package/dist/{core/registries → registries}/apis.js +0 -0
  857. /package/dist/{core/registries → registries}/apis.mjs +0 -0
  858. /package/dist/{core/registries → registries}/components.d.ts +0 -0
  859. /package/dist/{core/registries → registries}/components.js +0 -0
  860. /package/dist/{core/registries → registries}/components.mjs +0 -0
  861. /package/dist/{core/registries → registries}/content-types.d.ts +0 -0
  862. /package/dist/{core/registries → registries}/controllers.d.ts +0 -0
  863. /package/dist/{core/registries → registries}/custom-fields.d.ts +0 -0
  864. /package/dist/{core/registries → registries}/custom-fields.js +0 -0
  865. /package/dist/{core/registries → registries}/custom-fields.mjs +0 -0
  866. /package/dist/{core/registries → registries}/hooks.d.ts +0 -0
  867. /package/dist/{core/registries → registries}/middlewares.d.ts +0 -0
  868. /package/dist/{core/registries → registries}/modules.d.ts +0 -0
  869. /package/dist/{core/registries → registries}/modules.js +0 -0
  870. /package/dist/{core/registries → registries}/modules.mjs +0 -0
  871. /package/dist/{core/registries → registries}/plugins.d.ts +0 -0
  872. /package/dist/{core/registries → registries}/plugins.js +0 -0
  873. /package/dist/{core/registries → registries}/plugins.mjs +0 -0
  874. /package/dist/{core/registries → registries}/policies.d.ts +0 -0
  875. /package/dist/{core/registries → registries}/sanitizers.d.ts +0 -0
  876. /package/dist/{core/registries → registries}/sanitizers.js +0 -0
  877. /package/dist/{core/registries → registries}/sanitizers.mjs +0 -0
  878. /package/dist/{core/registries → registries}/services.d.ts +0 -0
  879. /package/dist/{core/registries → registries}/validators.d.ts +0 -0
  880. /package/dist/{core/registries → registries}/validators.js +0 -0
  881. /package/dist/{core/registries → registries}/validators.mjs +0 -0
@@ -4,6 +4,7 @@ const fse = require("fs-extra");
4
4
  const _ = require("lodash");
5
5
  const strapiUtils = require("@strapi/utils");
6
6
  const _$1 = require("lodash/fp");
7
+ const index = require("../domain/content-type/index.js");
7
8
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
8
9
  const fse__default = /* @__PURE__ */ _interopDefault(fse);
9
10
  const ___default = /* @__PURE__ */ _interopDefault(_);
@@ -12,7 +13,7 @@ const DEFAULT_CONTENT_TYPE = {
12
13
  actions: {},
13
14
  lifecycles: {}
14
15
  };
15
- const normalizeName = (name) => strapiUtils.isKebabCase(name) ? name : ___default.default.kebabCase(name);
16
+ const normalizeName = (name) => strapiUtils.strings.isKebabCase(name) ? name : ___default.default.kebabCase(name);
16
17
  const isDirectory = (fd) => fd.isDirectory();
17
18
  const isDotFile = (fd) => fd.name.startsWith(".");
18
19
  async function loadAPIs(strapi) {
@@ -23,7 +24,7 @@ async function loadAPIs(strapi) {
23
24
  const apis = {};
24
25
  for (const apiFD of apisFDs) {
25
26
  const apiName = normalizeName(apiFD.name);
26
- const api = await loadAPI(path.join(strapi.dirs.dist.api, apiFD.name));
27
+ const api = await loadAPI(apiName, path.join(strapi.dirs.dist.api, apiFD.name));
27
28
  apis[apiName] = api;
28
29
  }
29
30
  validateContentTypesUnicity(apis);
@@ -51,8 +52,8 @@ const validateContentTypesUnicity = (apis) => {
51
52
  }
52
53
  });
53
54
  };
54
- const loadAPI = async (dir) => {
55
- const [index, config, routes, controllers, services, policies, middlewares, contentTypes] = await Promise.all([
55
+ const loadAPI = async (apiName, dir) => {
56
+ const [index2, config, routes, controllers, services, policies, middlewares, contentTypes] = await Promise.all([
56
57
  loadIndex(dir),
57
58
  loadDir(path.join(dir, "config")),
58
59
  loadDir(path.join(dir, "routes")),
@@ -60,10 +61,10 @@ const loadAPI = async (dir) => {
60
61
  loadDir(path.join(dir, "services")),
61
62
  loadDir(path.join(dir, "policies")),
62
63
  loadDir(path.join(dir, "middlewares")),
63
- loadContentTypes(path.join(dir, "content-types"))
64
+ loadContentTypes(apiName, path.join(dir, "content-types"))
64
65
  ]);
65
66
  return {
66
- ...index || {},
67
+ ...index2 || {},
67
68
  config: config || {},
68
69
  routes: routes || [],
69
70
  controllers: controllers || {},
@@ -78,7 +79,7 @@ const loadIndex = async (dir) => {
78
79
  return loadFile(path.join(dir, "index.js"));
79
80
  }
80
81
  };
81
- const loadContentTypes = async (dir) => {
82
+ const loadContentTypes = async (apiName, dir) => {
82
83
  if (!await fse__default.default.pathExists(dir)) {
83
84
  return;
84
85
  }
@@ -89,14 +90,20 @@ const loadContentTypes = async (dir) => {
89
90
  continue;
90
91
  }
91
92
  const contentTypeName = normalizeName(fd.name);
92
- const contentType = await loadDir(path.join(dir, fd.name));
93
- if (_$1.isEmpty(contentType) || _$1.isEmpty(contentType.schema)) {
93
+ const loadedContentType = await loadDir(path.join(dir, fd.name));
94
+ if (_$1.isEmpty(loadedContentType) || _$1.isEmpty(loadedContentType.schema)) {
94
95
  throw new Error(`Could not load content type found at ${dir}`);
95
96
  }
96
- contentTypes[normalizeName(contentTypeName)] = ___default.default.defaults(
97
- contentType,
98
- DEFAULT_CONTENT_TYPE
99
- );
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;
100
107
  }
101
108
  return contentTypes;
102
109
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apis.js","sources":["../../src/loaders/apis.ts"],"sourcesContent":["import { join, extname, basename } from 'path';\nimport fse, { existsSync } from 'fs-extra';\nimport _ from 'lodash';\nimport { strings, importDefault } from '@strapi/utils';\nimport { isEmpty } from 'lodash/fp';\nimport type { Strapi, Common, Schema } from '@strapi/types';\nimport { getGlobalId, type ContentTypeDefinition } from '../domain/content-type';\n\ninterface API {\n bootstrap: () => void | Promise<void>;\n destroy: () => void | Promise<void>;\n register: () => void | Promise<void>;\n config: Record<string, unknown>;\n routes: Record<string, Common.Router>;\n controllers: Record<string, Common.Controller>;\n services: Record<string, Common.Service>;\n policies: Record<string, Common.Policy>;\n middlewares: Record<string, Common.Middleware>;\n contentTypes: Record<string, { schema: Schema.ContentType }>;\n}\n\ninterface APIs {\n [key: string]: API;\n}\n\nconst DEFAULT_CONTENT_TYPE = {\n schema: {},\n actions: {},\n lifecycles: {},\n};\n\n// to handle names with numbers in it we first check if it is already in kebabCase\nconst normalizeName = (name: string) => (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: Strapi) {\n if (!existsSync(strapi.dirs.dist.api)) {\n return;\n }\n\n const apisFDs = await (await fse.readdir(strapi.dirs.dist.api, { withFileTypes: true }))\n .filter(isDirectory)\n .filter(_.negate(isDotFile));\n\n const apis: APIs = {};\n\n // only load folders\n for (const apiFD of apisFDs) {\n const apiName = normalizeName(apiFD.name);\n const api = await loadAPI(apiName, join(strapi.dirs.dist.api, apiFD.name));\n\n apis[apiName] = api;\n }\n\n validateContentTypesUnicity(apis);\n\n for (const apiName of Object.keys(apis)) {\n strapi.get('apis').add(apiName, apis[apiName]);\n }\n}\n\nconst validateContentTypesUnicity = (apis: APIs) => {\n const allApisSchemas = Object.values(apis).flatMap((api) => Object.values(api.contentTypes));\n\n const names: string[] = [];\n allApisSchemas.forEach(({ schema }) => {\n if (schema.info.singularName) {\n const singularName = _.kebabCase(schema.info.singularName);\n if (names.includes(singularName)) {\n throw new Error(`The singular name \"${schema.info.singularName}\" should be unique`);\n }\n names.push(singularName);\n }\n\n if (schema.info.pluralName) {\n const pluralName = _.kebabCase(schema.info.pluralName);\n if (names.includes(pluralName)) {\n throw new Error(`The plural name \"${schema.info.pluralName}\" should be unique`);\n }\n names.push(pluralName);\n }\n });\n};\n\nconst loadAPI = async (apiName: string, dir: string) => {\n const [index, config, routes, controllers, services, policies, middlewares, contentTypes] =\n await Promise.all([\n loadIndex(dir),\n loadDir(join(dir, 'config')),\n loadDir(join(dir, 'routes')),\n loadDir(join(dir, 'controllers')),\n loadDir(join(dir, 'services')),\n loadDir(join(dir, 'policies')),\n loadDir(join(dir, 'middlewares')),\n loadContentTypes(apiName, join(dir, 'content-types')),\n ]);\n\n return {\n ...(index || {}),\n config: config || {},\n routes: routes || [],\n controllers: controllers || {},\n services: services || {},\n policies: policies || {},\n middlewares: middlewares || {},\n contentTypes: contentTypes || {},\n };\n};\n\nconst loadIndex = async (dir: string) => {\n if (await fse.pathExists(join(dir, 'index.js'))) {\n return loadFile(join(dir, 'index.js'));\n }\n};\n\nconst loadContentTypes = async (apiName: string, dir: string) => {\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const fds = await fse.readdir(dir, { withFileTypes: true });\n const contentTypes: API['contentTypes'] = {};\n\n // only load folders\n for (const fd of fds) {\n if (fd.isFile()) {\n continue;\n }\n\n const contentTypeName = normalizeName(fd.name);\n const loadedContentType = await loadDir(join(dir, fd.name));\n\n if (isEmpty(loadedContentType) || isEmpty(loadedContentType.schema)) {\n throw new Error(`Could not load content type found at ${dir}`);\n }\n\n const contentType = {\n ...DEFAULT_CONTENT_TYPE,\n ...loadedContentType,\n } as ContentTypeDefinition;\n\n Object.assign(contentType.schema, {\n apiName,\n collectionName: contentType.schema.collectionName || contentType.schema.info.singularName,\n globalId: getGlobalId(contentType.schema),\n });\n\n contentTypes[normalizeName(contentTypeName)] = contentType;\n }\n\n return contentTypes;\n};\n\nconst loadDir = async (dir: string) => {\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const fds = await fse.readdir(dir, { withFileTypes: true });\n\n const root: Record<string, unknown> = {};\n for (const fd of fds) {\n if (!fd.isFile() || extname(fd.name) === '.map') {\n continue;\n }\n\n const key = basename(fd.name, extname(fd.name));\n\n root[normalizeName(key)] = await loadFile(join(dir, fd.name));\n }\n\n return root;\n};\n\nconst loadFile = (file: string) => {\n const ext = extname(file);\n\n switch (ext) {\n case '.js':\n return importDefault(file);\n case '.json':\n return fse.readJSON(file);\n default:\n return {};\n }\n};\n"],"names":["strings","_","existsSync","fse","join","index","isEmpty","getGlobalId","extname","basename","importDefault"],"mappings":"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"}
@@ -1,14 +1,15 @@
1
1
  import { join, extname, basename } from "path";
2
2
  import fse, { existsSync } from "fs-extra";
3
3
  import _ from "lodash";
4
- import { isKebabCase, importDefault } from "@strapi/utils";
4
+ import { strings, importDefault } from "@strapi/utils";
5
5
  import { isEmpty } from "lodash/fp";
6
+ import { getGlobalId } from "../domain/content-type/index.mjs";
6
7
  const DEFAULT_CONTENT_TYPE = {
7
8
  schema: {},
8
9
  actions: {},
9
10
  lifecycles: {}
10
11
  };
11
- const normalizeName = (name) => isKebabCase(name) ? name : _.kebabCase(name);
12
+ const normalizeName = (name) => strings.isKebabCase(name) ? name : _.kebabCase(name);
12
13
  const isDirectory = (fd) => fd.isDirectory();
13
14
  const isDotFile = (fd) => fd.name.startsWith(".");
14
15
  async function loadAPIs(strapi) {
@@ -19,7 +20,7 @@ async function loadAPIs(strapi) {
19
20
  const apis = {};
20
21
  for (const apiFD of apisFDs) {
21
22
  const apiName = normalizeName(apiFD.name);
22
- const api = await loadAPI(join(strapi.dirs.dist.api, apiFD.name));
23
+ const api = await loadAPI(apiName, join(strapi.dirs.dist.api, apiFD.name));
23
24
  apis[apiName] = api;
24
25
  }
25
26
  validateContentTypesUnicity(apis);
@@ -47,7 +48,7 @@ const validateContentTypesUnicity = (apis) => {
47
48
  }
48
49
  });
49
50
  };
50
- const loadAPI = async (dir) => {
51
+ const loadAPI = async (apiName, dir) => {
51
52
  const [index, config, routes, controllers, services, policies, middlewares, contentTypes] = await Promise.all([
52
53
  loadIndex(dir),
53
54
  loadDir(join(dir, "config")),
@@ -56,7 +57,7 @@ const loadAPI = async (dir) => {
56
57
  loadDir(join(dir, "services")),
57
58
  loadDir(join(dir, "policies")),
58
59
  loadDir(join(dir, "middlewares")),
59
- loadContentTypes(join(dir, "content-types"))
60
+ loadContentTypes(apiName, join(dir, "content-types"))
60
61
  ]);
61
62
  return {
62
63
  ...index || {},
@@ -74,7 +75,7 @@ const loadIndex = async (dir) => {
74
75
  return loadFile(join(dir, "index.js"));
75
76
  }
76
77
  };
77
- const loadContentTypes = async (dir) => {
78
+ const loadContentTypes = async (apiName, dir) => {
78
79
  if (!await fse.pathExists(dir)) {
79
80
  return;
80
81
  }
@@ -85,14 +86,20 @@ const loadContentTypes = async (dir) => {
85
86
  continue;
86
87
  }
87
88
  const contentTypeName = normalizeName(fd.name);
88
- const contentType = await loadDir(join(dir, fd.name));
89
- if (isEmpty(contentType) || isEmpty(contentType.schema)) {
89
+ const loadedContentType = await loadDir(join(dir, fd.name));
90
+ if (isEmpty(loadedContentType) || isEmpty(loadedContentType.schema)) {
90
91
  throw new Error(`Could not load content type found at ${dir}`);
91
92
  }
92
- contentTypes[normalizeName(contentTypeName)] = _.defaults(
93
- contentType,
94
- DEFAULT_CONTENT_TYPE
95
- );
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;
96
103
  }
97
104
  return contentTypes;
98
105
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apis.mjs","sources":["../../src/loaders/apis.ts"],"sourcesContent":["import { join, extname, basename } from 'path';\nimport fse, { existsSync } from 'fs-extra';\nimport _ from 'lodash';\nimport { strings, importDefault } from '@strapi/utils';\nimport { isEmpty } from 'lodash/fp';\nimport type { Strapi, Common, Schema } from '@strapi/types';\nimport { getGlobalId, type ContentTypeDefinition } from '../domain/content-type';\n\ninterface API {\n bootstrap: () => void | Promise<void>;\n destroy: () => void | Promise<void>;\n register: () => void | Promise<void>;\n config: Record<string, unknown>;\n routes: Record<string, Common.Router>;\n controllers: Record<string, Common.Controller>;\n services: Record<string, Common.Service>;\n policies: Record<string, Common.Policy>;\n middlewares: Record<string, Common.Middleware>;\n contentTypes: Record<string, { schema: Schema.ContentType }>;\n}\n\ninterface APIs {\n [key: string]: API;\n}\n\nconst DEFAULT_CONTENT_TYPE = {\n schema: {},\n actions: {},\n lifecycles: {},\n};\n\n// to handle names with numbers in it we first check if it is already in kebabCase\nconst normalizeName = (name: string) => (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: Strapi) {\n if (!existsSync(strapi.dirs.dist.api)) {\n return;\n }\n\n const apisFDs = await (await fse.readdir(strapi.dirs.dist.api, { withFileTypes: true }))\n .filter(isDirectory)\n .filter(_.negate(isDotFile));\n\n const apis: APIs = {};\n\n // only load folders\n for (const apiFD of apisFDs) {\n const apiName = normalizeName(apiFD.name);\n const api = await loadAPI(apiName, join(strapi.dirs.dist.api, apiFD.name));\n\n apis[apiName] = api;\n }\n\n validateContentTypesUnicity(apis);\n\n for (const apiName of Object.keys(apis)) {\n strapi.get('apis').add(apiName, apis[apiName]);\n }\n}\n\nconst validateContentTypesUnicity = (apis: APIs) => {\n const allApisSchemas = Object.values(apis).flatMap((api) => Object.values(api.contentTypes));\n\n const names: string[] = [];\n allApisSchemas.forEach(({ schema }) => {\n if (schema.info.singularName) {\n const singularName = _.kebabCase(schema.info.singularName);\n if (names.includes(singularName)) {\n throw new Error(`The singular name \"${schema.info.singularName}\" should be unique`);\n }\n names.push(singularName);\n }\n\n if (schema.info.pluralName) {\n const pluralName = _.kebabCase(schema.info.pluralName);\n if (names.includes(pluralName)) {\n throw new Error(`The plural name \"${schema.info.pluralName}\" should be unique`);\n }\n names.push(pluralName);\n }\n });\n};\n\nconst loadAPI = async (apiName: string, dir: string) => {\n const [index, config, routes, controllers, services, policies, middlewares, contentTypes] =\n await Promise.all([\n loadIndex(dir),\n loadDir(join(dir, 'config')),\n loadDir(join(dir, 'routes')),\n loadDir(join(dir, 'controllers')),\n loadDir(join(dir, 'services')),\n loadDir(join(dir, 'policies')),\n loadDir(join(dir, 'middlewares')),\n loadContentTypes(apiName, join(dir, 'content-types')),\n ]);\n\n return {\n ...(index || {}),\n config: config || {},\n routes: routes || [],\n controllers: controllers || {},\n services: services || {},\n policies: policies || {},\n middlewares: middlewares || {},\n contentTypes: contentTypes || {},\n };\n};\n\nconst loadIndex = async (dir: string) => {\n if (await fse.pathExists(join(dir, 'index.js'))) {\n return loadFile(join(dir, 'index.js'));\n }\n};\n\nconst loadContentTypes = async (apiName: string, dir: string) => {\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const fds = await fse.readdir(dir, { withFileTypes: true });\n const contentTypes: API['contentTypes'] = {};\n\n // only load folders\n for (const fd of fds) {\n if (fd.isFile()) {\n continue;\n }\n\n const contentTypeName = normalizeName(fd.name);\n const loadedContentType = await loadDir(join(dir, fd.name));\n\n if (isEmpty(loadedContentType) || isEmpty(loadedContentType.schema)) {\n throw new Error(`Could not load content type found at ${dir}`);\n }\n\n const contentType = {\n ...DEFAULT_CONTENT_TYPE,\n ...loadedContentType,\n } as ContentTypeDefinition;\n\n Object.assign(contentType.schema, {\n apiName,\n collectionName: contentType.schema.collectionName || contentType.schema.info.singularName,\n globalId: getGlobalId(contentType.schema),\n });\n\n contentTypes[normalizeName(contentTypeName)] = contentType;\n }\n\n return contentTypes;\n};\n\nconst loadDir = async (dir: string) => {\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const fds = await fse.readdir(dir, { withFileTypes: true });\n\n const root: Record<string, unknown> = {};\n for (const fd of fds) {\n if (!fd.isFile() || extname(fd.name) === '.map') {\n continue;\n }\n\n const key = basename(fd.name, extname(fd.name));\n\n root[normalizeName(key)] = await loadFile(join(dir, fd.name));\n }\n\n return root;\n};\n\nconst loadFile = (file: string) => {\n const ext = extname(file);\n\n switch (ext) {\n case '.js':\n return importDefault(file);\n case '.json':\n return fse.readJSON(file);\n default:\n return {};\n }\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/loaders/components.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,eAAe,CAAC;AAyB5D,wBAA8B,cAAc,CAAC,MAAM,EAAE,MAAM,2BAoC1D"}
@@ -2,14 +2,14 @@
2
2
  const path = require("path");
3
3
  const _ = require("lodash");
4
4
  const fse = require("fs-extra");
5
- const loadFiles = require("../../load/load-files.js");
5
+ const loadFiles = require("../utils/load-files.js");
6
6
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
7
7
  const ___default = /* @__PURE__ */ _interopDefault(_);
8
8
  async function loadComponents(strapi) {
9
9
  if (!await fse.pathExists(strapi.dirs.dist.components)) {
10
10
  return {};
11
11
  }
12
- const map = await loadFiles(strapi.dirs.dist.components, "*/*.*(js|json)");
12
+ const map = await loadFiles.loadFiles(strapi.dirs.dist.components, "*/*.*(js|json)");
13
13
  const components = Object.keys(map).reduce((acc, category) => {
14
14
  Object.keys(map[category]).forEach((key) => {
15
15
  const schema = map[category][key];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.js","sources":["../../src/loaders/components.ts"],"sourcesContent":["import { join } from 'path';\nimport _ from 'lodash';\nimport { pathExists } from 'fs-extra';\nimport type { Strapi, Common, Schema } from '@strapi/types';\nimport { loadFiles } from '../utils/load-files';\n\ntype LoadedComponent = {\n collectionName: string;\n __filename__: string;\n __schema__: LoadedComponent;\n uid: string;\n category: string;\n modelName: string;\n globalId: string;\n info: any;\n attributes: any;\n};\n\ntype LoadedComponents = {\n [category: string]: {\n [key: string]: LoadedComponent;\n };\n};\n\ntype ComponentMap = {\n [uid in Common.UID.Component]: Schema.Component;\n};\n\nexport default async function loadComponents(strapi: Strapi) {\n if (!(await pathExists(strapi.dirs.dist.components))) {\n return {};\n }\n\n const map = await loadFiles<LoadedComponents>(strapi.dirs.dist.components, '*/*.*(js|json)');\n\n const components = Object.keys(map).reduce((acc, category) => {\n Object.keys(map[category]).forEach((key) => {\n const schema = map[category][key];\n\n if (!schema.collectionName) {\n // NOTE: We're using the filepath from the app directory instead of the dist for information purpose\n const filePath = join(strapi.dirs.app.components, category, schema.__filename__);\n\n return strapi.stopWithError(\n `Component ${key} is missing a \"collectionName\" property.\\nVerify file ${filePath}.`\n );\n }\n\n const uid: Common.UID.Component = `${category}.${key}`;\n\n acc[uid] = Object.assign(schema, {\n __schema__: _.cloneDeep(schema),\n uid,\n category,\n modelType: 'component' as const,\n modelName: key,\n globalId: schema.globalId || _.upperFirst(_.camelCase(`component_${uid}`)),\n });\n });\n\n return acc;\n }, {} as ComponentMap);\n\n strapi.get('components').add(components);\n}\n"],"names":["pathExists","loadFiles","join","_"],"mappings":";;;;;;;AA4BA,eAA8B,eAAe,QAAgB;AAC3D,MAAI,CAAE,MAAMA,IAAAA,WAAW,OAAO,KAAK,KAAK,UAAU,GAAI;AACpD,WAAO;EACT;AAEA,QAAM,MAAM,MAAMC,UAAAA,UAA4B,OAAO,KAAK,KAAK,YAAY,gBAAgB;AAErF,QAAA,aAAa,OAAO,KAAK,GAAG,EAAE,OAAO,CAAC,KAAK,aAAa;AAC5D,WAAO,KAAK,IAAI,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ;AAC1C,YAAM,SAAS,IAAI,QAAQ,EAAE,GAAG;AAE5B,UAAA,CAAC,OAAO,gBAAgB;AAEpB,cAAA,WAAWC,UAAK,OAAO,KAAK,IAAI,YAAY,UAAU,OAAO,YAAY;AAE/E,eAAO,OAAO;AAAA,UACZ,aAAa,GAAG;AAAA,cAAyD,QAAQ;AAAA,QAAA;AAAA,MAErF;AAEA,YAAM,MAA4B,GAAG,QAAQ,IAAI,GAAG;AAEpD,UAAI,GAAG,IAAI,OAAO,OAAO,QAAQ;AAAA,QAC/B,YAAYC,WAAAA,QAAE,UAAU,MAAM;AAAA,QAC9B;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX,WAAW;AAAA,QACX,UAAU,OAAO,YAAYA,WAAAA,QAAE,WAAWA,mBAAE,UAAU,aAAa,GAAG,EAAE,CAAC;AAAA,MAAA,CAC1E;AAAA,IAAA,CACF;AAEM,WAAA;AAAA,EACT,GAAG,CAAkB,CAAA;AAErB,SAAO,IAAI,YAAY,EAAE,IAAI,UAAU;AACzC;;"}
@@ -1,7 +1,7 @@
1
1
  import { join } from "path";
2
2
  import _ from "lodash";
3
3
  import { pathExists } from "fs-extra";
4
- import loadFiles from "../../load/load-files.mjs";
4
+ import { loadFiles } from "../utils/load-files.mjs";
5
5
  async function loadComponents(strapi) {
6
6
  if (!await pathExists(strapi.dirs.dist.components)) {
7
7
  return {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.mjs","sources":["../../src/loaders/components.ts"],"sourcesContent":["import { join } from 'path';\nimport _ from 'lodash';\nimport { pathExists } from 'fs-extra';\nimport type { Strapi, Common, Schema } from '@strapi/types';\nimport { loadFiles } from '../utils/load-files';\n\ntype LoadedComponent = {\n collectionName: string;\n __filename__: string;\n __schema__: LoadedComponent;\n uid: string;\n category: string;\n modelName: string;\n globalId: string;\n info: any;\n attributes: any;\n};\n\ntype LoadedComponents = {\n [category: string]: {\n [key: string]: LoadedComponent;\n };\n};\n\ntype ComponentMap = {\n [uid in Common.UID.Component]: Schema.Component;\n};\n\nexport default async function loadComponents(strapi: Strapi) {\n if (!(await pathExists(strapi.dirs.dist.components))) {\n return {};\n }\n\n const map = await loadFiles<LoadedComponents>(strapi.dirs.dist.components, '*/*.*(js|json)');\n\n const components = Object.keys(map).reduce((acc, category) => {\n Object.keys(map[category]).forEach((key) => {\n const schema = map[category][key];\n\n if (!schema.collectionName) {\n // NOTE: We're using the filepath from the app directory instead of the dist for information purpose\n const filePath = join(strapi.dirs.app.components, category, schema.__filename__);\n\n return strapi.stopWithError(\n `Component ${key} is missing a \"collectionName\" property.\\nVerify file ${filePath}.`\n );\n }\n\n const uid: Common.UID.Component = `${category}.${key}`;\n\n acc[uid] = Object.assign(schema, {\n __schema__: _.cloneDeep(schema),\n uid,\n category,\n modelType: 'component' as const,\n modelName: key,\n globalId: schema.globalId || _.upperFirst(_.camelCase(`component_${uid}`)),\n });\n });\n\n return acc;\n }, {} as ComponentMap);\n\n strapi.get('components').add(components);\n}\n"],"names":[],"mappings":";;;;AA4BA,eAA8B,eAAe,QAAgB;AAC3D,MAAI,CAAE,MAAM,WAAW,OAAO,KAAK,KAAK,UAAU,GAAI;AACpD,WAAO;EACT;AAEA,QAAM,MAAM,MAAM,UAA4B,OAAO,KAAK,KAAK,YAAY,gBAAgB;AAErF,QAAA,aAAa,OAAO,KAAK,GAAG,EAAE,OAAO,CAAC,KAAK,aAAa;AAC5D,WAAO,KAAK,IAAI,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ;AAC1C,YAAM,SAAS,IAAI,QAAQ,EAAE,GAAG;AAE5B,UAAA,CAAC,OAAO,gBAAgB;AAEpB,cAAA,WAAW,KAAK,OAAO,KAAK,IAAI,YAAY,UAAU,OAAO,YAAY;AAE/E,eAAO,OAAO;AAAA,UACZ,aAAa,GAAG;AAAA,cAAyD,QAAQ;AAAA,QAAA;AAAA,MAErF;AAEA,YAAM,MAA4B,GAAG,QAAQ,IAAI,GAAG;AAEpD,UAAI,GAAG,IAAI,OAAO,OAAO,QAAQ;AAAA,QAC/B,YAAY,EAAE,UAAU,MAAM;AAAA,QAC9B;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX,WAAW;AAAA,QACX,UAAU,OAAO,YAAY,EAAE,WAAW,EAAE,UAAU,aAAa,GAAG,EAAE,CAAC;AAAA,MAAA,CAC1E;AAAA,IAAA,CACF;AAEM,WAAA;AAAA,EACT,GAAG,CAAkB,CAAA;AAErB,SAAO,IAAI,YAAY,EAAE,IAAI,UAAU;AACzC;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/loaders/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAY5C,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,MAAM,iBAY1D"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/loaders/index.ts"],"sourcesContent":["import type { Strapi } from '@strapi/types';\n\nimport loadSrcIndex from './src-index';\nimport loadAPIs from './apis';\nimport loadMiddlewares from './middlewares';\nimport loadComponents from './components';\nimport loadPolicies from './policies';\nimport loadPlugins from './plugins';\nimport loadAdmin from './admin';\nimport loadSanitizers from './sanitizers';\nimport loadValidators from './validators';\n\nexport async function loadApplicationContext(strapi: Strapi) {\n await Promise.all([\n loadSrcIndex(strapi),\n loadSanitizers(strapi),\n loadValidators(strapi),\n loadPlugins(strapi),\n loadAdmin(strapi),\n loadAPIs(strapi),\n loadComponents(strapi),\n loadMiddlewares(strapi),\n loadPolicies(strapi),\n ]);\n}\n"],"names":["loadSrcIndex","loadSanitizers","loadValidators","loadPlugins","loadAdmin","loadAPIs","loadComponents","loadMiddlewares","loadPolicies"],"mappings":";;;;;;;;;;;AAYA,eAAsB,uBAAuB,QAAgB;AAC3D,QAAM,QAAQ,IAAI;AAAA,IAChBA,SAAa,MAAM;AAAA,IACnBC,WAAe,MAAM;AAAA,IACrBC,WAAe,MAAM;AAAA,IACrBC,MAAY,MAAM;AAAA,IAClBC,MAAU,MAAM;AAAA,IAChBC,KAAS,MAAM;AAAA,IACfC,WAAe,MAAM;AAAA,IACrBC,YAAgB,MAAM;AAAA,IACtBC,SAAa,MAAM;AAAA,EAAA,CACpB;AACH;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../src/loaders/index.ts"],"sourcesContent":["import type { Strapi } from '@strapi/types';\n\nimport loadSrcIndex from './src-index';\nimport loadAPIs from './apis';\nimport loadMiddlewares from './middlewares';\nimport loadComponents from './components';\nimport loadPolicies from './policies';\nimport loadPlugins from './plugins';\nimport loadAdmin from './admin';\nimport loadSanitizers from './sanitizers';\nimport loadValidators from './validators';\n\nexport async function loadApplicationContext(strapi: Strapi) {\n await Promise.all([\n loadSrcIndex(strapi),\n loadSanitizers(strapi),\n loadValidators(strapi),\n loadPlugins(strapi),\n loadAdmin(strapi),\n loadAPIs(strapi),\n loadComponents(strapi),\n loadMiddlewares(strapi),\n loadPolicies(strapi),\n ]);\n}\n"],"names":[],"mappings":";;;;;;;;;AAYA,eAAsB,uBAAuB,QAAgB;AAC3D,QAAM,QAAQ,IAAI;AAAA,IAChB,aAAa,MAAM;AAAA,IACnB,eAAe,MAAM;AAAA,IACrB,eAAe,MAAM;AAAA,IACrB,YAAY,MAAM;AAAA,IAClB,UAAU,MAAM;AAAA,IAChB,SAAS,MAAM;AAAA,IACf,eAAe,MAAM;AAAA,IACrB,gBAAgB,MAAM;AAAA,IACtB,aAAa,MAAM;AAAA,EAAA,CACpB;AACH;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../src/loaders/middlewares.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAU,MAAM,eAAe,CAAC;AAIpD,wBAA8B,eAAe,CAAC,MAAM,EAAE,MAAM,iBAK3D"}
@@ -2,7 +2,7 @@
2
2
  const path = require("path");
3
3
  const fse = require("fs-extra");
4
4
  const strapiUtils = require("@strapi/utils");
5
- const index = require("../../middlewares/index.js");
5
+ const index = require("../middlewares/index.js");
6
6
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
7
7
  const fse__default = /* @__PURE__ */ _interopDefault(fse);
8
8
  async function loadMiddlewares(strapi) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middlewares.js","sources":["../../src/loaders/middlewares.ts"],"sourcesContent":["import { join, extname, basename } from 'path';\nimport fse from 'fs-extra';\nimport { importDefault } from '@strapi/utils';\nimport type { Strapi, Common } from '@strapi/types';\nimport { middlewares as internalMiddlewares } from '../middlewares';\n\n// TODO:: allow folders with index.js inside for bigger policies\nexport default async function loadMiddlewares(strapi: Strapi) {\n const localMiddlewares = await loadLocalMiddlewares(strapi);\n\n strapi.get('middlewares').add(`global::`, localMiddlewares);\n strapi.get('middlewares').add(`strapi::`, internalMiddlewares);\n}\n\nconst loadLocalMiddlewares = async (strapi: Strapi) => {\n const dir = strapi.dirs.dist.middlewares;\n\n if (!(await fse.pathExists(dir))) {\n return {};\n }\n\n const middlewares: Record<string, Common.MiddlewareFactory> = {};\n const paths = await fse.readdir(dir, { withFileTypes: true });\n\n for (const fd of paths) {\n const { name } = fd;\n const fullPath = join(dir, name);\n\n if (fd.isFile() && extname(name) === '.js') {\n const key = basename(name, '.js');\n middlewares[key] = importDefault(fullPath);\n }\n }\n\n return middlewares;\n};\n"],"names":["internalMiddlewares","fse","join","extname","basename","importDefault"],"mappings":";;;;;;;AAOA,eAA8B,gBAAgB,QAAgB;AACtD,QAAA,mBAAmB,MAAM,qBAAqB,MAAM;AAE1D,SAAO,IAAI,aAAa,EAAE,IAAI,YAAY,gBAAgB;AAC1D,SAAO,IAAI,aAAa,EAAE,IAAI,YAAYA,MAAAA,WAAmB;AAC/D;AAEA,MAAM,uBAAuB,OAAO,WAAmB;AAC/C,QAAA,MAAM,OAAO,KAAK,KAAK;AAE7B,MAAI,CAAE,MAAMC,aAAAA,QAAI,WAAW,GAAG,GAAI;AAChC,WAAO;EACT;AAEA,QAAM,cAAwD,CAAA;AACxD,QAAA,QAAQ,MAAMA,aAAAA,QAAI,QAAQ,KAAK,EAAE,eAAe,MAAM;AAE5D,aAAW,MAAM,OAAO;AAChB,UAAA,EAAE,KAAS,IAAA;AACX,UAAA,WAAWC,KAAAA,KAAK,KAAK,IAAI;AAE/B,QAAI,GAAG,OAAO,KAAKC,KAAQ,QAAA,IAAI,MAAM,OAAO;AACpC,YAAA,MAAMC,KAAAA,SAAS,MAAM,KAAK;AACpB,kBAAA,GAAG,IAAIC,YAAA,cAAc,QAAQ;AAAA,IAC3C;AAAA,EACF;AAEO,SAAA;AACT;;"}
@@ -1,7 +1,7 @@
1
1
  import { join, extname, basename } from "path";
2
2
  import fse from "fs-extra";
3
3
  import { importDefault } from "@strapi/utils";
4
- import { middlewares } from "../../middlewares/index.mjs";
4
+ import { middlewares } from "../middlewares/index.mjs";
5
5
  async function loadMiddlewares(strapi) {
6
6
  const localMiddlewares = await loadLocalMiddlewares(strapi);
7
7
  strapi.get("middlewares").add(`global::`, localMiddlewares);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middlewares.mjs","sources":["../../src/loaders/middlewares.ts"],"sourcesContent":["import { join, extname, basename } from 'path';\nimport fse from 'fs-extra';\nimport { importDefault } from '@strapi/utils';\nimport type { Strapi, Common } from '@strapi/types';\nimport { middlewares as internalMiddlewares } from '../middlewares';\n\n// TODO:: allow folders with index.js inside for bigger policies\nexport default async function loadMiddlewares(strapi: Strapi) {\n const localMiddlewares = await loadLocalMiddlewares(strapi);\n\n strapi.get('middlewares').add(`global::`, localMiddlewares);\n strapi.get('middlewares').add(`strapi::`, internalMiddlewares);\n}\n\nconst loadLocalMiddlewares = async (strapi: Strapi) => {\n const dir = strapi.dirs.dist.middlewares;\n\n if (!(await fse.pathExists(dir))) {\n return {};\n }\n\n const middlewares: Record<string, Common.MiddlewareFactory> = {};\n const paths = await fse.readdir(dir, { withFileTypes: true });\n\n for (const fd of paths) {\n const { name } = fd;\n const fullPath = join(dir, name);\n\n if (fd.isFile() && extname(name) === '.js') {\n const key = basename(name, '.js');\n middlewares[key] = importDefault(fullPath);\n }\n }\n\n return middlewares;\n};\n"],"names":["internalMiddlewares","middlewares"],"mappings":";;;;AAOA,eAA8B,gBAAgB,QAAgB;AACtD,QAAA,mBAAmB,MAAM,qBAAqB,MAAM;AAE1D,SAAO,IAAI,aAAa,EAAE,IAAI,YAAY,gBAAgB;AAC1D,SAAO,IAAI,aAAa,EAAE,IAAI,YAAYA,WAAmB;AAC/D;AAEA,MAAM,uBAAuB,OAAO,WAAmB;AAC/C,QAAA,MAAM,OAAO,KAAK,KAAK;AAE7B,MAAI,CAAE,MAAM,IAAI,WAAW,GAAG,GAAI;AAChC,WAAO;EACT;AAEA,QAAMC,eAAwD,CAAA;AACxD,QAAA,QAAQ,MAAM,IAAI,QAAQ,KAAK,EAAE,eAAe,MAAM;AAE5D,aAAW,MAAM,OAAO;AAChB,UAAA,EAAE,KAAS,IAAA;AACX,UAAA,WAAW,KAAK,KAAK,IAAI;AAE/B,QAAI,GAAG,OAAO,KAAK,QAAQ,IAAI,MAAM,OAAO;AACpC,YAAA,MAAM,SAAS,MAAM,KAAK;AACpB,MAAAA,aAAA,GAAG,IAAI,cAAc,QAAQ;AAAA,IAC3C;AAAA,EACF;AAEO,SAAAA;AACT;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-enabled-plugins.d.ts","sourceRoot":"","sources":["../../../src/loaders/plugins/get-enabled-plugins.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AA4E5C,eAAO,MAAM,iBAAiB,WAAkB,MAAM;;kBA2ErD,CAAC"}
@@ -12,11 +12,12 @@ const INTERNAL_PLUGINS = [
12
12
  "@strapi/plugin-content-manager",
13
13
  "@strapi/plugin-content-type-builder",
14
14
  "@strapi/plugin-email",
15
- "@strapi/plugin-upload"
15
+ "@strapi/plugin-upload",
16
+ "@strapi/content-releases"
16
17
  ];
17
18
  const isStrapiPlugin = (info) => _$1.get("strapi.kind", info) === "plugin";
18
19
  const validatePluginName = (pluginName) => {
19
- if (!strapiUtils.isKebabCase(pluginName)) {
20
+ if (!strapiUtils.strings.isKebabCase(pluginName)) {
20
21
  throw new Error(`Plugin name "${pluginName}" is not in kebab (an-example-of-kebab-case)`);
21
22
  }
22
23
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-enabled-plugins.js","sources":["../../../src/loaders/plugins/get-enabled-plugins.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport { dirname, join, resolve } from 'path';\nimport { statSync, existsSync } from 'fs';\nimport _ from 'lodash';\nimport { get, pickBy, defaultsDeep, map, prop, pipe } from 'lodash/fp';\nimport { strings } from '@strapi/utils';\nimport type { Strapi } from '@strapi/types';\nimport { getUserPluginsConfig } from './get-user-plugins-config';\n\ninterface PluginMeta {\n enabled: boolean;\n pathToPlugin?: string;\n info: Record<string, unknown>;\n}\n\ntype PluginMetas = Record<string, PluginMeta>;\n\ninterface PluginInfo {\n name: string;\n kind: string;\n}\n\ninterface PluginDeclaration {\n enabled: boolean;\n resolve: string;\n isModule: boolean;\n}\n\n/**\n * otherwise known as \"core features\"\n */\nconst INTERNAL_PLUGINS = [\n '@strapi/plugin-content-manager',\n '@strapi/plugin-content-type-builder',\n '@strapi/plugin-email',\n '@strapi/plugin-upload',\n '@strapi/content-releases',\n];\n\nconst isStrapiPlugin = (info: PluginInfo) => get('strapi.kind', info) === 'plugin';\n\nconst validatePluginName = (pluginName: string) => {\n if (!strings.isKebabCase(pluginName)) {\n throw new Error(`Plugin name \"${pluginName}\" is not in kebab (an-example-of-kebab-case)`);\n }\n};\n\nconst toDetailedDeclaration = (declaration: boolean | PluginDeclaration) => {\n if (typeof declaration === 'boolean') {\n return { enabled: declaration };\n }\n\n const detailedDeclaration: { enabled: boolean; pathToPlugin?: string } = {\n enabled: declaration.enabled,\n };\n\n if (declaration?.resolve) {\n let pathToPlugin = '';\n\n if (declaration.isModule) {\n /**\n * we only want the node_module here, not the package.json\n */\n pathToPlugin = join(declaration.resolve, '..');\n } else {\n try {\n pathToPlugin = dirname(require.resolve(declaration.resolve));\n } catch (e) {\n pathToPlugin = resolve(strapi.dirs.app.root, declaration.resolve);\n\n if (!existsSync(pathToPlugin) || !statSync(pathToPlugin).isDirectory()) {\n throw new Error(`${declaration.resolve} couldn't be resolved`);\n }\n }\n }\n\n detailedDeclaration.pathToPlugin = pathToPlugin;\n }\n\n return detailedDeclaration;\n};\n\nexport const getEnabledPlugins = async (strapi: Strapi, { client } = { client: false }) => {\n const internalPlugins: PluginMetas = {};\n\n for (const dep of INTERNAL_PLUGINS) {\n const packagePath = join(dep, 'package.json');\n const packageInfo = require(packagePath);\n\n validatePluginName(packageInfo.strapi.name);\n internalPlugins[packageInfo.strapi.name] = {\n ...toDetailedDeclaration({ enabled: true, resolve: packagePath, isModule: client }),\n info: packageInfo.strapi,\n };\n }\n\n const installedPlugins: PluginMetas = {};\n const dependencies = strapi.config.get('info.dependencies', {});\n\n for (const dep of Object.keys(dependencies)) {\n const packagePath = join(dep, 'package.json');\n let packageInfo;\n try {\n packageInfo = require(packagePath);\n } catch {\n continue;\n }\n\n if (isStrapiPlugin(packageInfo)) {\n validatePluginName(packageInfo.strapi.name);\n installedPlugins[packageInfo.strapi.name] = {\n ...toDetailedDeclaration({ enabled: true, resolve: packagePath, isModule: client }),\n info: {\n ...packageInfo.strapi,\n packageName: packageInfo.name,\n },\n };\n }\n }\n\n const declaredPlugins: PluginMetas = {};\n const userPluginsConfig = await getUserPluginsConfig();\n\n _.forEach(userPluginsConfig, (declaration, pluginName) => {\n validatePluginName(pluginName);\n\n declaredPlugins[pluginName] = {\n ...toDetailedDeclaration(declaration),\n info: {},\n };\n\n const { pathToPlugin } = declaredPlugins[pluginName];\n\n // for manually resolved plugins\n if (pathToPlugin) {\n const packagePath = join(pathToPlugin, 'package.json');\n const packageInfo = require(packagePath);\n\n if (isStrapiPlugin(packageInfo)) {\n declaredPlugins[pluginName].info = packageInfo.strapi || {};\n }\n }\n });\n\n const declaredPluginsResolves = map(prop('pathToPlugin'), declaredPlugins);\n const installedPluginsNotAlreadyUsed = pickBy(\n (p) => !declaredPluginsResolves.includes(p.pathToPlugin),\n installedPlugins\n );\n\n const enabledPlugins = pipe(\n defaultsDeep(declaredPlugins),\n defaultsDeep(installedPluginsNotAlreadyUsed),\n pickBy((p: PluginMeta) => p.enabled)\n )(internalPlugins);\n\n return enabledPlugins;\n};\n"],"names":["get","strings","join","dirname","resolve","existsSync","statSync","strapi","getUserPluginsConfig","_","map","prop","pickBy","pipe","defaultsDeep"],"mappings":"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"}
@@ -2,17 +2,18 @@ import { join, dirname, resolve } from "path";
2
2
  import { existsSync, statSync } from "fs";
3
3
  import _ from "lodash";
4
4
  import { map, prop, pickBy, pipe, defaultsDeep, get } from "lodash/fp";
5
- import { isKebabCase } from "@strapi/utils";
5
+ import { strings } from "@strapi/utils";
6
6
  import { getUserPluginsConfig } from "./get-user-plugins-config.mjs";
7
7
  const INTERNAL_PLUGINS = [
8
8
  "@strapi/plugin-content-manager",
9
9
  "@strapi/plugin-content-type-builder",
10
10
  "@strapi/plugin-email",
11
- "@strapi/plugin-upload"
11
+ "@strapi/plugin-upload",
12
+ "@strapi/content-releases"
12
13
  ];
13
14
  const isStrapiPlugin = (info) => get("strapi.kind", info) === "plugin";
14
15
  const validatePluginName = (pluginName) => {
15
- if (!isKebabCase(pluginName)) {
16
+ if (!strings.isKebabCase(pluginName)) {
16
17
  throw new Error(`Plugin name "${pluginName}" is not in kebab (an-example-of-kebab-case)`);
17
18
  }
18
19
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-enabled-plugins.mjs","sources":["../../../src/loaders/plugins/get-enabled-plugins.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport { dirname, join, resolve } from 'path';\nimport { statSync, existsSync } from 'fs';\nimport _ from 'lodash';\nimport { get, pickBy, defaultsDeep, map, prop, pipe } from 'lodash/fp';\nimport { strings } from '@strapi/utils';\nimport type { Strapi } from '@strapi/types';\nimport { getUserPluginsConfig } from './get-user-plugins-config';\n\ninterface PluginMeta {\n enabled: boolean;\n pathToPlugin?: string;\n info: Record<string, unknown>;\n}\n\ntype PluginMetas = Record<string, PluginMeta>;\n\ninterface PluginInfo {\n name: string;\n kind: string;\n}\n\ninterface PluginDeclaration {\n enabled: boolean;\n resolve: string;\n isModule: boolean;\n}\n\n/**\n * otherwise known as \"core features\"\n */\nconst INTERNAL_PLUGINS = [\n '@strapi/plugin-content-manager',\n '@strapi/plugin-content-type-builder',\n '@strapi/plugin-email',\n '@strapi/plugin-upload',\n '@strapi/content-releases',\n];\n\nconst isStrapiPlugin = (info: PluginInfo) => get('strapi.kind', info) === 'plugin';\n\nconst validatePluginName = (pluginName: string) => {\n if (!strings.isKebabCase(pluginName)) {\n throw new Error(`Plugin name \"${pluginName}\" is not in kebab (an-example-of-kebab-case)`);\n }\n};\n\nconst toDetailedDeclaration = (declaration: boolean | PluginDeclaration) => {\n if (typeof declaration === 'boolean') {\n return { enabled: declaration };\n }\n\n const detailedDeclaration: { enabled: boolean; pathToPlugin?: string } = {\n enabled: declaration.enabled,\n };\n\n if (declaration?.resolve) {\n let pathToPlugin = '';\n\n if (declaration.isModule) {\n /**\n * we only want the node_module here, not the package.json\n */\n pathToPlugin = join(declaration.resolve, '..');\n } else {\n try {\n pathToPlugin = dirname(require.resolve(declaration.resolve));\n } catch (e) {\n pathToPlugin = resolve(strapi.dirs.app.root, declaration.resolve);\n\n if (!existsSync(pathToPlugin) || !statSync(pathToPlugin).isDirectory()) {\n throw new Error(`${declaration.resolve} couldn't be resolved`);\n }\n }\n }\n\n detailedDeclaration.pathToPlugin = pathToPlugin;\n }\n\n return detailedDeclaration;\n};\n\nexport const getEnabledPlugins = async (strapi: Strapi, { client } = { client: false }) => {\n const internalPlugins: PluginMetas = {};\n\n for (const dep of INTERNAL_PLUGINS) {\n const packagePath = join(dep, 'package.json');\n const packageInfo = require(packagePath);\n\n validatePluginName(packageInfo.strapi.name);\n internalPlugins[packageInfo.strapi.name] = {\n ...toDetailedDeclaration({ enabled: true, resolve: packagePath, isModule: client }),\n info: packageInfo.strapi,\n };\n }\n\n const installedPlugins: PluginMetas = {};\n const dependencies = strapi.config.get('info.dependencies', {});\n\n for (const dep of Object.keys(dependencies)) {\n const packagePath = join(dep, 'package.json');\n let packageInfo;\n try {\n packageInfo = require(packagePath);\n } catch {\n continue;\n }\n\n if (isStrapiPlugin(packageInfo)) {\n validatePluginName(packageInfo.strapi.name);\n installedPlugins[packageInfo.strapi.name] = {\n ...toDetailedDeclaration({ enabled: true, resolve: packagePath, isModule: client }),\n info: {\n ...packageInfo.strapi,\n packageName: packageInfo.name,\n },\n };\n }\n }\n\n const declaredPlugins: PluginMetas = {};\n const userPluginsConfig = await getUserPluginsConfig();\n\n _.forEach(userPluginsConfig, (declaration, pluginName) => {\n validatePluginName(pluginName);\n\n declaredPlugins[pluginName] = {\n ...toDetailedDeclaration(declaration),\n info: {},\n };\n\n const { pathToPlugin } = declaredPlugins[pluginName];\n\n // for manually resolved plugins\n if (pathToPlugin) {\n const packagePath = join(pathToPlugin, 'package.json');\n const packageInfo = require(packagePath);\n\n if (isStrapiPlugin(packageInfo)) {\n declaredPlugins[pluginName].info = packageInfo.strapi || {};\n }\n }\n });\n\n const declaredPluginsResolves = map(prop('pathToPlugin'), declaredPlugins);\n const installedPluginsNotAlreadyUsed = pickBy(\n (p) => !declaredPluginsResolves.includes(p.pathToPlugin),\n installedPlugins\n );\n\n const enabledPlugins = pipe(\n defaultsDeep(declaredPlugins),\n defaultsDeep(installedPluginsNotAlreadyUsed),\n pickBy((p: PluginMeta) => p.enabled)\n )(internalPlugins);\n\n return enabledPlugins;\n};\n"],"names":["strapi"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-user-plugins-config.d.ts","sourceRoot":"","sources":["../../../src/loaders/plugins/get-user-plugins-config.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,mBAqBhC,CAAC"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const path = require("path");
4
4
  const fse = require("fs-extra");
5
5
  const _ = require("lodash/fp");
6
- const loadConfigFile = require("../../app-configuration/load-config-file.js");
6
+ const loadConfigFile = require("../../utils/load-config-file.js");
7
7
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
8
8
  const fse__default = /* @__PURE__ */ _interopDefault(fse);
9
9
  const getUserPluginsConfig = async () => {
@@ -16,10 +16,10 @@ const getUserPluginsConfig = async () => {
16
16
  );
17
17
  let config = {};
18
18
  if (await fse__default.default.pathExists(globalUserConfigPath)) {
19
- config = loadConfigFile.loadFile(globalUserConfigPath);
19
+ config = loadConfigFile.loadConfigFile(globalUserConfigPath);
20
20
  }
21
21
  if (await fse__default.default.pathExists(currentEnvUserConfigPath)) {
22
- config = _.merge(config, loadConfigFile.loadFile(currentEnvUserConfigPath));
22
+ config = _.merge(config, loadConfigFile.loadConfigFile(currentEnvUserConfigPath));
23
23
  }
24
24
  return config;
25
25
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-user-plugins-config.js","sources":["../../../src/loaders/plugins/get-user-plugins-config.ts"],"sourcesContent":["import { join } from 'path';\nimport fse from 'fs-extra';\nimport { merge } from 'lodash/fp';\nimport { loadConfigFile } from '../../utils/load-config-file';\n\n/**\n * Return user defined plugins' config\n * first load config from `config/plugins.js`\n * and then merge config from `config/env/{env}/plugins.js`\n */\nexport const getUserPluginsConfig = async () => {\n const globalUserConfigPath = join(strapi.dirs.dist.config, 'plugins.js');\n const currentEnvUserConfigPath = join(\n strapi.dirs.dist.config,\n 'env',\n process.env.NODE_ENV as string,\n 'plugins.js'\n );\n let config = {};\n\n // assign global user config if exists\n if (await fse.pathExists(globalUserConfigPath)) {\n config = loadConfigFile(globalUserConfigPath);\n }\n\n // and merge user config by environment if exists\n if (await fse.pathExists(currentEnvUserConfigPath)) {\n config = merge(config, loadConfigFile(currentEnvUserConfigPath));\n }\n\n return config;\n};\n"],"names":["join","fse","loadConfigFile","merge"],"mappings":";;;;;;;;AAUO,MAAM,uBAAuB,YAAY;AAC9C,QAAM,uBAAuBA,KAAAA,KAAK,OAAO,KAAK,KAAK,QAAQ,YAAY;AACvE,QAAM,2BAA2BA,KAAA;AAAA,IAC/B,OAAO,KAAK,KAAK;AAAA,IACjB;AAAA,IACA,QAAQ,IAAI;AAAA,IACZ;AAAA,EAAA;AAEF,MAAI,SAAS,CAAA;AAGb,MAAI,MAAMC,aAAA,QAAI,WAAW,oBAAoB,GAAG;AAC9C,aAASC,eAAAA,eAAe,oBAAoB;AAAA,EAC9C;AAGA,MAAI,MAAMD,aAAA,QAAI,WAAW,wBAAwB,GAAG;AAClD,aAASE,EAAAA,MAAM,QAAQD,eAAAA,eAAe,wBAAwB,CAAC;AAAA,EACjE;AAEO,SAAA;AACT;;"}
@@ -1,7 +1,7 @@
1
1
  import { join } from "path";
2
2
  import fse from "fs-extra";
3
3
  import { merge } from "lodash/fp";
4
- import { loadFile } from "../../app-configuration/load-config-file.mjs";
4
+ import { loadConfigFile } from "../../utils/load-config-file.mjs";
5
5
  const getUserPluginsConfig = async () => {
6
6
  const globalUserConfigPath = join(strapi.dirs.dist.config, "plugins.js");
7
7
  const currentEnvUserConfigPath = join(
@@ -12,10 +12,10 @@ const getUserPluginsConfig = async () => {
12
12
  );
13
13
  let config = {};
14
14
  if (await fse.pathExists(globalUserConfigPath)) {
15
- config = loadFile(globalUserConfigPath);
15
+ config = loadConfigFile(globalUserConfigPath);
16
16
  }
17
17
  if (await fse.pathExists(currentEnvUserConfigPath)) {
18
- config = merge(config, loadFile(currentEnvUserConfigPath));
18
+ config = merge(config, loadConfigFile(currentEnvUserConfigPath));
19
19
  }
20
20
  return config;
21
21
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-user-plugins-config.mjs","sources":["../../../src/loaders/plugins/get-user-plugins-config.ts"],"sourcesContent":["import { join } from 'path';\nimport fse from 'fs-extra';\nimport { merge } from 'lodash/fp';\nimport { loadConfigFile } from '../../utils/load-config-file';\n\n/**\n * Return user defined plugins' config\n * first load config from `config/plugins.js`\n * and then merge config from `config/env/{env}/plugins.js`\n */\nexport const getUserPluginsConfig = async () => {\n const globalUserConfigPath = join(strapi.dirs.dist.config, 'plugins.js');\n const currentEnvUserConfigPath = join(\n strapi.dirs.dist.config,\n 'env',\n process.env.NODE_ENV as string,\n 'plugins.js'\n );\n let config = {};\n\n // assign global user config if exists\n if (await fse.pathExists(globalUserConfigPath)) {\n config = loadConfigFile(globalUserConfigPath);\n }\n\n // and merge user config by environment if exists\n if (await fse.pathExists(currentEnvUserConfigPath)) {\n config = merge(config, loadConfigFile(currentEnvUserConfigPath));\n }\n\n return config;\n};\n"],"names":[],"mappings":";;;;AAUO,MAAM,uBAAuB,YAAY;AAC9C,QAAM,uBAAuB,KAAK,OAAO,KAAK,KAAK,QAAQ,YAAY;AACvE,QAAM,2BAA2B;AAAA,IAC/B,OAAO,KAAK,KAAK;AAAA,IACjB;AAAA,IACA,QAAQ,IAAI;AAAA,IACZ;AAAA,EAAA;AAEF,MAAI,SAAS,CAAA;AAGb,MAAI,MAAM,IAAI,WAAW,oBAAoB,GAAG;AAC9C,aAAS,eAAe,oBAAoB;AAAA,EAC9C;AAGA,MAAI,MAAM,IAAI,WAAW,wBAAwB,GAAG;AAClD,aAAS,MAAM,QAAQ,eAAe,wBAAwB,CAAC;AAAA,EACjE;AAEO,SAAA;AACT;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/loaders/plugins/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,eAAe,CAAC;AAiF5D,wBAA8B,WAAW,CAAC,MAAM,EAAE,MAAM,iBA0CvD"}
@@ -3,10 +3,11 @@ const path = require("path");
3
3
  const fse = require("fs-extra");
4
4
  const _ = require("lodash/fp");
5
5
  const strapiUtils = require("@strapi/utils");
6
- const loadConfigFile = require("../../app-configuration/load-config-file.js");
7
- const loadFiles = require("../../../load/load-files.js");
6
+ const loadConfigFile = require("../../utils/load-config-file.js");
7
+ const loadFiles = require("../../utils/load-files.js");
8
8
  const getEnabledPlugins = require("./get-enabled-plugins.js");
9
9
  const getUserPluginsConfig = require("./get-user-plugins-config.js");
10
+ const index = require("../../domain/content-type/index.js");
10
11
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
11
12
  const fse__default = /* @__PURE__ */ _interopDefault(fse);
12
13
  const defaultPlugin = {
@@ -33,8 +34,8 @@ const applyUserExtension = async (plugins) => {
33
34
  if (!await fse__default.default.pathExists(extensionsDir)) {
34
35
  return;
35
36
  }
36
- const extendedSchemas = await loadFiles(extensionsDir, "**/content-types/**/schema.json");
37
- const strapiServers = await loadFiles(extensionsDir, "**/strapi-server.js");
37
+ const extendedSchemas = await loadFiles.loadFiles(extensionsDir, "**/content-types/**/schema.json");
38
+ const strapiServers = await loadFiles.loadFiles(extensionsDir, "**/strapi-server.js");
38
39
  for (const pluginName of Object.keys(plugins)) {
39
40
  const plugin = plugins[pluginName];
40
41
  for (const ctName of Object.keys(plugin.contentTypes)) {
@@ -87,10 +88,11 @@ async function loadPlugins(strapi2) {
87
88
  if (!await fse__default.default.pathExists(serverEntrypointPath)) {
88
89
  continue;
89
90
  }
90
- const pluginServer = loadConfigFile.loadFile(serverEntrypointPath);
91
+ const pluginServer = loadConfigFile.loadConfigFile(serverEntrypointPath);
91
92
  plugins[pluginName] = {
92
93
  ...defaultPlugin,
93
94
  ...pluginServer,
95
+ contentTypes: formatContentTypes(pluginName, pluginServer.contentTypes ?? {}),
94
96
  config: _.defaults(defaultPlugin.config, pluginServer.config),
95
97
  routes: pluginServer.routes ?? defaultPlugin.routes
96
98
  };
@@ -101,5 +103,16 @@ async function loadPlugins(strapi2) {
101
103
  strapi2.get("plugins").add(pluginName, plugins[pluginName]);
102
104
  }
103
105
  }
106
+ const formatContentTypes = (pluginName, contentTypes) => {
107
+ Object.values(contentTypes).forEach((definition) => {
108
+ const { schema } = definition;
109
+ Object.assign(schema, {
110
+ plugin: pluginName,
111
+ collectionName: schema.collectionName || `${pluginName}_${schema.info.singularName}`.toLowerCase(),
112
+ globalId: index.getGlobalId(schema, pluginName)
113
+ });
114
+ });
115
+ return contentTypes;
116
+ };
104
117
  module.exports = loadPlugins;
105
118
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/loaders/plugins/index.ts"],"sourcesContent":["import { join } from 'path';\nimport fse from 'fs-extra';\nimport { defaultsDeep, defaults, getOr, get } from 'lodash/fp';\nimport { env } from '@strapi/utils';\nimport type { Strapi, Plugin, Schema } from '@strapi/types';\nimport { loadConfigFile } from '../../utils/load-config-file';\nimport { loadFiles } from '../../utils/load-files';\nimport { getEnabledPlugins } from './get-enabled-plugins';\nimport { getUserPluginsConfig } from './get-user-plugins-config';\nimport { getGlobalId } from '../../domain/content-type';\n\ninterface Plugins {\n [key: string]: Plugin.LoadedPlugin;\n}\n\nconst defaultPlugin = {\n bootstrap() {},\n destroy() {},\n register() {},\n config: {\n default: {},\n validator() {},\n },\n routes: [],\n controllers: {},\n services: {},\n policies: {},\n middlewares: {},\n contentTypes: {},\n};\n\nconst applyUserExtension = async (plugins: Plugins) => {\n const extensionsDir = strapi.dirs.dist.extensions;\n if (!(await fse.pathExists(extensionsDir))) {\n return;\n }\n\n const extendedSchemas = await loadFiles(extensionsDir, '**/content-types/**/schema.json');\n const strapiServers = await loadFiles(extensionsDir, '**/strapi-server.js');\n\n for (const pluginName of Object.keys(plugins)) {\n const plugin = plugins[pluginName];\n // first: load json schema\n for (const ctName of Object.keys(plugin.contentTypes)) {\n const extendedSchema = get([pluginName, 'content-types', ctName, 'schema'], extendedSchemas);\n if (extendedSchema) {\n plugin.contentTypes[ctName].schema = {\n ...plugin.contentTypes[ctName].schema,\n ...extendedSchema,\n };\n }\n }\n // second: execute strapi-server extension\n const strapiServer = get([pluginName, 'strapi-server'], strapiServers);\n if (strapiServer) {\n plugins[pluginName] = await strapiServer(plugin);\n }\n }\n};\n\nconst applyUserConfig = async (plugins: Plugins) => {\n const userPluginsConfig = await getUserPluginsConfig();\n\n for (const pluginName of Object.keys(plugins)) {\n const plugin = plugins[pluginName];\n const userPluginConfig = getOr({}, `${pluginName}.config`, userPluginsConfig);\n const defaultConfig =\n typeof plugin.config.default === 'function'\n ? plugin.config.default({ env })\n : plugin.config.default;\n\n const config = defaultsDeep(defaultConfig, userPluginConfig);\n try {\n plugin.config.validator(config);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`Error regarding ${pluginName} config: ${e.message}`);\n }\n\n throw e;\n }\n plugin.config = config;\n }\n};\n\nexport default async function loadPlugins(strapi: Strapi) {\n const plugins: Plugins = {};\n\n const enabledPlugins = await getEnabledPlugins(strapi);\n\n strapi.config.set('enabledPlugins', enabledPlugins);\n\n for (const pluginName of Object.keys(enabledPlugins)) {\n const enabledPlugin = enabledPlugins[pluginName];\n\n let serverEntrypointPath;\n\n try {\n serverEntrypointPath = join(enabledPlugin.pathToPlugin, 'strapi-server.js');\n } catch (e) {\n throw new Error(\n `Error loading the plugin ${pluginName} because ${pluginName} is not installed. Please either install the plugin or remove it's configuration.`\n );\n }\n\n // only load plugins with a server entrypoint\n if (!(await fse.pathExists(serverEntrypointPath))) {\n continue;\n }\n\n const pluginServer = loadConfigFile(serverEntrypointPath);\n plugins[pluginName] = {\n ...defaultPlugin,\n ...pluginServer,\n contentTypes: formatContentTypes(pluginName, pluginServer.contentTypes ?? {}),\n config: defaults(defaultPlugin.config, pluginServer.config),\n routes: pluginServer.routes ?? defaultPlugin.routes,\n };\n }\n\n // TODO: validate plugin format\n await applyUserConfig(plugins);\n await applyUserExtension(plugins);\n\n for (const pluginName of Object.keys(plugins)) {\n strapi.get('plugins').add(pluginName, plugins[pluginName]);\n }\n}\n\nconst formatContentTypes = (\n pluginName: string,\n contentTypes: Record<string, { schema: Schema.ContentType }>\n) => {\n Object.values(contentTypes).forEach((definition) => {\n const { schema } = definition;\n\n Object.assign(schema, {\n plugin: pluginName,\n collectionName:\n schema.collectionName || `${pluginName}_${schema.info.singularName}`.toLowerCase(),\n globalId: getGlobalId(schema, pluginName),\n });\n });\n\n return contentTypes;\n};\n"],"names":["fse","loadFiles","get","getUserPluginsConfig","getOr","env","defaultsDeep","strapi","getEnabledPlugins","join","loadConfigFile","defaults","getGlobalId"],"mappings":";;;;;;;;;;;;AAeA,MAAM,gBAAgB;AAAA,EACpB,YAAY;AAAA,EAAC;AAAA,EACb,UAAU;AAAA,EAAC;AAAA,EACX,WAAW;AAAA,EAAC;AAAA,EACZ,QAAQ;AAAA,IACN,SAAS,CAAC;AAAA,IACV,YAAY;AAAA,IAAC;AAAA,EACf;AAAA,EACA,QAAQ,CAAC;AAAA,EACT,aAAa,CAAC;AAAA,EACd,UAAU,CAAC;AAAA,EACX,UAAU,CAAC;AAAA,EACX,aAAa,CAAC;AAAA,EACd,cAAc,CAAC;AACjB;AAEA,MAAM,qBAAqB,OAAO,YAAqB;AAC/C,QAAA,gBAAgB,OAAO,KAAK,KAAK;AACvC,MAAI,CAAE,MAAMA,aAAAA,QAAI,WAAW,aAAa,GAAI;AAC1C;AAAA,EACF;AAEA,QAAM,kBAAkB,MAAMC,UAAAA,UAAU,eAAe,iCAAiC;AACxF,QAAM,gBAAgB,MAAMA,UAAAA,UAAU,eAAe,qBAAqB;AAE1E,aAAW,cAAc,OAAO,KAAK,OAAO,GAAG;AACvC,UAAA,SAAS,QAAQ,UAAU;AAEjC,eAAW,UAAU,OAAO,KAAK,OAAO,YAAY,GAAG;AAC/C,YAAA,iBAAiBC,MAAI,CAAC,YAAY,iBAAiB,QAAQ,QAAQ,GAAG,eAAe;AAC3F,UAAI,gBAAgB;AACX,eAAA,aAAa,MAAM,EAAE,SAAS;AAAA,UACnC,GAAG,OAAO,aAAa,MAAM,EAAE;AAAA,UAC/B,GAAG;AAAA,QAAA;AAAA,MAEP;AAAA,IACF;AAEA,UAAM,eAAeA,EAAAA,IAAI,CAAC,YAAY,eAAe,GAAG,aAAa;AACrE,QAAI,cAAc;AAChB,cAAQ,UAAU,IAAI,MAAM,aAAa,MAAM;AAAA,IACjD;AAAA,EACF;AACF;AAEA,MAAM,kBAAkB,OAAO,YAAqB;AAC5C,QAAA,oBAAoB,MAAMC,qBAAAA;AAEhC,aAAW,cAAc,OAAO,KAAK,OAAO,GAAG;AACvC,UAAA,SAAS,QAAQ,UAAU;AACjC,UAAM,mBAAmBC,EAAM,MAAA,IAAI,GAAG,UAAU,WAAW,iBAAiB;AAC5E,UAAM,gBACJ,OAAO,OAAO,OAAO,YAAY,aAC7B,OAAO,OAAO,QAAQ,EAAEC,KAAAA,YAAAA,IAAK,CAAA,IAC7B,OAAO,OAAO;AAEd,UAAA,SAASC,EAAAA,aAAa,eAAe,gBAAgB;AACvD,QAAA;AACK,aAAA,OAAO,UAAU,MAAM;AAAA,aACvB,GAAG;AACV,UAAI,aAAa,OAAO;AACtB,cAAM,IAAI,MAAM,mBAAmB,UAAU,YAAY,EAAE,OAAO,EAAE;AAAA,MACtE;AAEM,YAAA;AAAA,IACR;AACA,WAAO,SAAS;AAAA,EAClB;AACF;AAEA,eAA8B,YAAYC,SAAgB;AACxD,QAAM,UAAmB,CAAA;AAEnB,QAAA,iBAAiB,MAAMC,oCAAkBD,OAAM;AAErDA,UAAO,OAAO,IAAI,kBAAkB,cAAc;AAElD,aAAW,cAAc,OAAO,KAAK,cAAc,GAAG;AAC9C,UAAA,gBAAgB,eAAe,UAAU;AAE3C,QAAA;AAEA,QAAA;AACqB,6BAAAE,KAAAA,KAAK,cAAc,cAAc,kBAAkB;AAAA,aACnE,GAAG;AACV,YAAM,IAAI;AAAA,QACR,4BAA4B,UAAU,YAAY,UAAU;AAAA,MAAA;AAAA,IAEhE;AAGA,QAAI,CAAE,MAAMT,aAAAA,QAAI,WAAW,oBAAoB,GAAI;AACjD;AAAA,IACF;AAEM,UAAA,eAAeU,8BAAe,oBAAoB;AACxD,YAAQ,UAAU,IAAI;AAAA,MACpB,GAAG;AAAA,MACH,GAAG;AAAA,MACH,cAAc,mBAAmB,YAAY,aAAa,gBAAgB,CAAA,CAAE;AAAA,MAC5E,QAAQC,EAAAA,SAAS,cAAc,QAAQ,aAAa,MAAM;AAAA,MAC1D,QAAQ,aAAa,UAAU,cAAc;AAAA,IAAA;AAAA,EAEjD;AAGA,QAAM,gBAAgB,OAAO;AAC7B,QAAM,mBAAmB,OAAO;AAEhC,aAAW,cAAc,OAAO,KAAK,OAAO,GAAG;AAC7CJ,YAAO,IAAI,SAAS,EAAE,IAAI,YAAY,QAAQ,UAAU,CAAC;AAAA,EAC3D;AACF;AAEA,MAAM,qBAAqB,CACzB,YACA,iBACG;AACH,SAAO,OAAO,YAAY,EAAE,QAAQ,CAAC,eAAe;AAC5C,UAAA,EAAE,OAAW,IAAA;AAEnB,WAAO,OAAO,QAAQ;AAAA,MACpB,QAAQ;AAAA,MACR,gBACE,OAAO,kBAAkB,GAAG,UAAU,IAAI,OAAO,KAAK,YAAY,GAAG,YAAY;AAAA,MACnF,UAAUK,MAAAA,YAAY,QAAQ,UAAU;AAAA,IAAA,CACzC;AAAA,EAAA,CACF;AAEM,SAAA;AACT;;"}
@@ -2,10 +2,11 @@ import { join } from "path";
2
2
  import fse from "fs-extra";
3
3
  import { defaults, get, getOr, defaultsDeep } from "lodash/fp";
4
4
  import { env } from "@strapi/utils";
5
- import { loadFile } from "../../app-configuration/load-config-file.mjs";
6
- import loadFiles from "../../../load/load-files.mjs";
5
+ import { loadConfigFile } from "../../utils/load-config-file.mjs";
6
+ import { loadFiles } from "../../utils/load-files.mjs";
7
7
  import { getEnabledPlugins } from "./get-enabled-plugins.mjs";
8
8
  import { getUserPluginsConfig } from "./get-user-plugins-config.mjs";
9
+ import { getGlobalId } from "../../domain/content-type/index.mjs";
9
10
  const defaultPlugin = {
10
11
  bootstrap() {
11
12
  },
@@ -84,10 +85,11 @@ async function loadPlugins(strapi2) {
84
85
  if (!await fse.pathExists(serverEntrypointPath)) {
85
86
  continue;
86
87
  }
87
- const pluginServer = loadFile(serverEntrypointPath);
88
+ const pluginServer = loadConfigFile(serverEntrypointPath);
88
89
  plugins[pluginName] = {
89
90
  ...defaultPlugin,
90
91
  ...pluginServer,
92
+ contentTypes: formatContentTypes(pluginName, pluginServer.contentTypes ?? {}),
91
93
  config: defaults(defaultPlugin.config, pluginServer.config),
92
94
  routes: pluginServer.routes ?? defaultPlugin.routes
93
95
  };
@@ -98,6 +100,17 @@ async function loadPlugins(strapi2) {
98
100
  strapi2.get("plugins").add(pluginName, plugins[pluginName]);
99
101
  }
100
102
  }
103
+ const formatContentTypes = (pluginName, contentTypes) => {
104
+ Object.values(contentTypes).forEach((definition) => {
105
+ const { schema } = definition;
106
+ Object.assign(schema, {
107
+ plugin: pluginName,
108
+ collectionName: schema.collectionName || `${pluginName}_${schema.info.singularName}`.toLowerCase(),
109
+ globalId: getGlobalId(schema, pluginName)
110
+ });
111
+ });
112
+ return contentTypes;
113
+ };
101
114
  export {
102
115
  loadPlugins as default
103
116
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/loaders/plugins/index.ts"],"sourcesContent":["import { join } from 'path';\nimport fse from 'fs-extra';\nimport { defaultsDeep, defaults, getOr, get } from 'lodash/fp';\nimport { env } from '@strapi/utils';\nimport type { Strapi, Plugin, Schema } from '@strapi/types';\nimport { loadConfigFile } from '../../utils/load-config-file';\nimport { loadFiles } from '../../utils/load-files';\nimport { getEnabledPlugins } from './get-enabled-plugins';\nimport { getUserPluginsConfig } from './get-user-plugins-config';\nimport { getGlobalId } from '../../domain/content-type';\n\ninterface Plugins {\n [key: string]: Plugin.LoadedPlugin;\n}\n\nconst defaultPlugin = {\n bootstrap() {},\n destroy() {},\n register() {},\n config: {\n default: {},\n validator() {},\n },\n routes: [],\n controllers: {},\n services: {},\n policies: {},\n middlewares: {},\n contentTypes: {},\n};\n\nconst applyUserExtension = async (plugins: Plugins) => {\n const extensionsDir = strapi.dirs.dist.extensions;\n if (!(await fse.pathExists(extensionsDir))) {\n return;\n }\n\n const extendedSchemas = await loadFiles(extensionsDir, '**/content-types/**/schema.json');\n const strapiServers = await loadFiles(extensionsDir, '**/strapi-server.js');\n\n for (const pluginName of Object.keys(plugins)) {\n const plugin = plugins[pluginName];\n // first: load json schema\n for (const ctName of Object.keys(plugin.contentTypes)) {\n const extendedSchema = get([pluginName, 'content-types', ctName, 'schema'], extendedSchemas);\n if (extendedSchema) {\n plugin.contentTypes[ctName].schema = {\n ...plugin.contentTypes[ctName].schema,\n ...extendedSchema,\n };\n }\n }\n // second: execute strapi-server extension\n const strapiServer = get([pluginName, 'strapi-server'], strapiServers);\n if (strapiServer) {\n plugins[pluginName] = await strapiServer(plugin);\n }\n }\n};\n\nconst applyUserConfig = async (plugins: Plugins) => {\n const userPluginsConfig = await getUserPluginsConfig();\n\n for (const pluginName of Object.keys(plugins)) {\n const plugin = plugins[pluginName];\n const userPluginConfig = getOr({}, `${pluginName}.config`, userPluginsConfig);\n const defaultConfig =\n typeof plugin.config.default === 'function'\n ? plugin.config.default({ env })\n : plugin.config.default;\n\n const config = defaultsDeep(defaultConfig, userPluginConfig);\n try {\n plugin.config.validator(config);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`Error regarding ${pluginName} config: ${e.message}`);\n }\n\n throw e;\n }\n plugin.config = config;\n }\n};\n\nexport default async function loadPlugins(strapi: Strapi) {\n const plugins: Plugins = {};\n\n const enabledPlugins = await getEnabledPlugins(strapi);\n\n strapi.config.set('enabledPlugins', enabledPlugins);\n\n for (const pluginName of Object.keys(enabledPlugins)) {\n const enabledPlugin = enabledPlugins[pluginName];\n\n let serverEntrypointPath;\n\n try {\n serverEntrypointPath = join(enabledPlugin.pathToPlugin, 'strapi-server.js');\n } catch (e) {\n throw new Error(\n `Error loading the plugin ${pluginName} because ${pluginName} is not installed. Please either install the plugin or remove it's configuration.`\n );\n }\n\n // only load plugins with a server entrypoint\n if (!(await fse.pathExists(serverEntrypointPath))) {\n continue;\n }\n\n const pluginServer = loadConfigFile(serverEntrypointPath);\n plugins[pluginName] = {\n ...defaultPlugin,\n ...pluginServer,\n contentTypes: formatContentTypes(pluginName, pluginServer.contentTypes ?? {}),\n config: defaults(defaultPlugin.config, pluginServer.config),\n routes: pluginServer.routes ?? defaultPlugin.routes,\n };\n }\n\n // TODO: validate plugin format\n await applyUserConfig(plugins);\n await applyUserExtension(plugins);\n\n for (const pluginName of Object.keys(plugins)) {\n strapi.get('plugins').add(pluginName, plugins[pluginName]);\n }\n}\n\nconst formatContentTypes = (\n pluginName: string,\n contentTypes: Record<string, { schema: Schema.ContentType }>\n) => {\n Object.values(contentTypes).forEach((definition) => {\n const { schema } = definition;\n\n Object.assign(schema, {\n plugin: pluginName,\n collectionName:\n schema.collectionName || `${pluginName}_${schema.info.singularName}`.toLowerCase(),\n globalId: getGlobalId(schema, pluginName),\n });\n });\n\n return contentTypes;\n};\n"],"names":["strapi"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../../src/loaders/policies.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAU,MAAM,eAAe,CAAC;AAGpD,wBAA8B,YAAY,CAAC,MAAM,EAAE,MAAM,iBAqBxD"}