@strapi/core 0.0.0-experimental.6dbac0c205b0f8495781db5706c18cac1a62e62b → 0.0.0-experimental.90ca9123352ed07e0a9cedaf4bcad1475e74137f

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.

Potentially problematic release.


This version of @strapi/core might be problematic. Click here for more details.

Files changed (872) hide show
  1. package/dist/Strapi.d.ts +4 -1
  2. package/dist/Strapi.d.ts.map +1 -1
  3. package/dist/Strapi.js +58 -47
  4. package/dist/Strapi.js.map +1 -1
  5. package/dist/Strapi.mjs +60 -48
  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/core-api/controller/collection-type.d.ts +1 -1
  19. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  20. package/dist/core-api/controller/collection-type.js +9 -20
  21. package/dist/core-api/controller/collection-type.js.map +1 -1
  22. package/dist/core-api/controller/collection-type.mjs +8 -20
  23. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  24. package/dist/core-api/controller/index.d.ts.map +1 -1
  25. package/dist/core-api/controller/index.js +2 -2
  26. package/dist/core-api/controller/index.js.map +1 -1
  27. package/dist/core-api/controller/index.mjs +2 -2
  28. package/dist/core-api/controller/index.mjs.map +1 -1
  29. package/dist/core-api/controller/single-type.d.ts +1 -1
  30. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  31. package/dist/core-api/controller/single-type.js +6 -11
  32. package/dist/core-api/controller/single-type.js.map +1 -1
  33. package/dist/core-api/controller/single-type.mjs +5 -11
  34. package/dist/core-api/controller/single-type.mjs.map +1 -1
  35. package/dist/core-api/controller/transform.d.ts +2 -11
  36. package/dist/core-api/controller/transform.d.ts.map +1 -1
  37. package/dist/core-api/controller/transform.js +2 -16
  38. package/dist/core-api/controller/transform.js.map +1 -1
  39. package/dist/core-api/controller/transform.mjs +2 -16
  40. package/dist/core-api/controller/transform.mjs.map +1 -1
  41. package/dist/core-api/service/collection-type.d.ts +28 -5
  42. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  43. package/dist/core-api/service/collection-type.js +47 -49
  44. package/dist/core-api/service/collection-type.js.map +1 -1
  45. package/dist/core-api/service/collection-type.mjs +47 -50
  46. package/dist/core-api/service/collection-type.mjs.map +1 -1
  47. package/dist/core-api/service/core-service.d.ts +4 -0
  48. package/dist/core-api/service/core-service.d.ts.map +1 -0
  49. package/dist/core-api/service/core-service.js +12 -0
  50. package/dist/core-api/service/core-service.js.map +1 -0
  51. package/dist/core-api/service/core-service.mjs +12 -0
  52. package/dist/core-api/service/core-service.mjs.map +1 -0
  53. package/dist/core-api/service/index.js +2 -2
  54. package/dist/core-api/service/index.js.map +1 -1
  55. package/dist/core-api/service/index.mjs +4 -4
  56. package/dist/core-api/service/index.mjs.map +1 -1
  57. package/dist/core-api/service/pagination.d.ts +1 -5
  58. package/dist/core-api/service/pagination.d.ts.map +1 -1
  59. package/dist/core-api/service/pagination.js +0 -11
  60. package/dist/core-api/service/pagination.js.map +1 -1
  61. package/dist/core-api/service/pagination.mjs +0 -11
  62. package/dist/core-api/service/pagination.mjs.map +1 -1
  63. package/dist/core-api/service/single-type.d.ts +13 -8
  64. package/dist/core-api/service/single-type.d.ts.map +1 -1
  65. package/dist/core-api/service/single-type.js +25 -51
  66. package/dist/core-api/service/single-type.js.map +1 -1
  67. package/dist/core-api/service/single-type.mjs +24 -51
  68. package/dist/core-api/service/single-type.mjs.map +1 -1
  69. package/dist/{core/domain → domain}/content-type/index.d.ts +2 -1
  70. package/dist/domain/content-type/index.d.ts.map +1 -0
  71. package/dist/{core/domain → domain}/content-type/index.js +20 -34
  72. package/dist/domain/content-type/index.js.map +1 -0
  73. package/dist/{core/domain → domain}/content-type/index.mjs +21 -35
  74. package/dist/domain/content-type/index.mjs.map +1 -0
  75. package/dist/domain/content-type/validator.d.ts.map +1 -0
  76. package/dist/domain/content-type/validator.js.map +1 -0
  77. package/dist/domain/content-type/validator.mjs.map +1 -0
  78. package/dist/domain/module/index.d.ts.map +1 -0
  79. package/dist/{core/domain → domain}/module/index.js +30 -30
  80. package/dist/domain/module/index.js.map +1 -0
  81. package/dist/{core/domain → domain}/module/index.mjs +1 -1
  82. package/dist/domain/module/index.mjs.map +1 -0
  83. package/dist/domain/module/validation.d.ts.map +1 -0
  84. package/dist/domain/module/validation.js.map +1 -0
  85. package/dist/domain/module/validation.mjs.map +1 -0
  86. package/dist/ee/index.js +2 -2
  87. package/dist/ee/index.js.map +1 -1
  88. package/dist/ee/index.mjs +2 -2
  89. package/dist/ee/index.mjs.map +1 -1
  90. package/dist/ee/license.d.ts.map +1 -1
  91. package/dist/ee/license.js +2 -1
  92. package/dist/ee/license.js.map +1 -1
  93. package/dist/ee/license.mjs +2 -1
  94. package/dist/ee/license.mjs.map +1 -1
  95. package/dist/factories.d.ts +2 -1
  96. package/dist/factories.d.ts.map +1 -1
  97. package/dist/factories.js +16 -11
  98. package/dist/factories.js.map +1 -1
  99. package/dist/factories.mjs +17 -12
  100. package/dist/factories.mjs.map +1 -1
  101. package/dist/index.d.ts +3 -2
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/index.js +3 -1
  104. package/dist/index.js.map +1 -1
  105. package/dist/index.mjs +3 -1
  106. package/dist/index.mjs.map +1 -1
  107. package/dist/loaders/admin.d.ts.map +1 -0
  108. package/dist/{core/loaders → loaders}/admin.js +12 -1
  109. package/dist/loaders/admin.js.map +1 -0
  110. package/dist/{core/loaders → loaders}/admin.mjs +12 -1
  111. package/dist/loaders/admin.mjs.map +1 -0
  112. package/dist/loaders/apis.d.ts.map +1 -0
  113. package/dist/{core/loaders → loaders}/apis.js +19 -12
  114. package/dist/loaders/apis.js.map +1 -0
  115. package/dist/{core/loaders → loaders}/apis.mjs +17 -10
  116. package/dist/loaders/apis.mjs.map +1 -0
  117. package/dist/loaders/components.d.ts.map +1 -0
  118. package/dist/{core/loaders → loaders}/components.js +2 -2
  119. package/dist/loaders/components.js.map +1 -0
  120. package/dist/{core/loaders → loaders}/components.mjs +1 -1
  121. package/dist/loaders/components.mjs.map +1 -0
  122. package/dist/loaders/index.d.ts.map +1 -0
  123. package/dist/loaders/index.js.map +1 -0
  124. package/dist/loaders/index.mjs.map +1 -0
  125. package/dist/loaders/middlewares.d.ts.map +1 -0
  126. package/dist/{core/loaders → loaders}/middlewares.js +1 -1
  127. package/dist/loaders/middlewares.js.map +1 -0
  128. package/dist/{core/loaders → loaders}/middlewares.mjs +1 -1
  129. package/dist/loaders/middlewares.mjs.map +1 -0
  130. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -0
  131. package/dist/{core/loaders → loaders}/plugins/get-enabled-plugins.js +2 -1
  132. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -0
  133. package/dist/{core/loaders → loaders}/plugins/get-enabled-plugins.mjs +2 -1
  134. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -0
  135. package/dist/loaders/plugins/get-user-plugins-config.d.ts.map +1 -0
  136. package/dist/{core/loaders → loaders}/plugins/get-user-plugins-config.js +3 -3
  137. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -0
  138. package/dist/{core/loaders → loaders}/plugins/get-user-plugins-config.mjs +3 -3
  139. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -0
  140. package/dist/loaders/plugins/index.d.ts.map +1 -0
  141. package/dist/{core/loaders → loaders}/plugins/index.js +18 -5
  142. package/dist/loaders/plugins/index.js.map +1 -0
  143. package/dist/{core/loaders → loaders}/plugins/index.mjs +16 -3
  144. package/dist/loaders/plugins/index.mjs.map +1 -0
  145. package/dist/loaders/policies.d.ts.map +1 -0
  146. package/dist/loaders/policies.js.map +1 -0
  147. package/dist/loaders/policies.mjs.map +1 -0
  148. package/dist/loaders/sanitizers.d.ts.map +1 -0
  149. package/dist/loaders/sanitizers.js.map +1 -0
  150. package/dist/loaders/sanitizers.mjs.map +1 -0
  151. package/dist/loaders/src-index.d.ts.map +1 -0
  152. package/dist/loaders/src-index.js.map +1 -0
  153. package/dist/loaders/src-index.mjs.map +1 -0
  154. package/dist/loaders/validators.d.ts.map +1 -0
  155. package/dist/loaders/validators.js.map +1 -0
  156. package/dist/loaders/validators.mjs.map +1 -0
  157. package/dist/middlewares/favicon.d.ts +1 -0
  158. package/dist/middlewares/favicon.d.ts.map +1 -1
  159. package/dist/middlewares/index.js +2 -2
  160. package/dist/middlewares/index.js.map +1 -1
  161. package/dist/middlewares/index.mjs +1 -1
  162. package/dist/middlewares/{public/index.d.ts → public.d.ts} +1 -1
  163. package/dist/middlewares/public.d.ts.map +1 -0
  164. package/dist/middlewares/public.js +34 -0
  165. package/dist/middlewares/public.js.map +1 -0
  166. package/dist/middlewares/public.mjs +32 -0
  167. package/dist/middlewares/public.mjs.map +1 -0
  168. package/dist/middlewares/security.d.ts.map +1 -1
  169. package/dist/middlewares/security.js +24 -3
  170. package/dist/middlewares/security.js.map +1 -1
  171. package/dist/middlewares/security.mjs +24 -3
  172. package/dist/middlewares/security.mjs.map +1 -1
  173. package/dist/registries/apis.d.ts.map +1 -0
  174. package/dist/registries/apis.js.map +1 -0
  175. package/dist/registries/apis.mjs.map +1 -0
  176. package/dist/registries/components.d.ts.map +1 -0
  177. package/dist/registries/components.js.map +1 -0
  178. package/dist/registries/components.mjs.map +1 -0
  179. package/dist/registries/config.d.ts.map +1 -0
  180. package/dist/registries/config.js.map +1 -0
  181. package/dist/registries/config.mjs.map +1 -0
  182. package/dist/registries/content-types.d.ts.map +1 -0
  183. package/dist/{core/registries → registries}/content-types.js +6 -7
  184. package/dist/registries/content-types.js.map +1 -0
  185. package/dist/{core/registries → registries}/content-types.mjs +2 -3
  186. package/dist/registries/content-types.mjs.map +1 -0
  187. package/dist/registries/controllers.d.ts.map +1 -0
  188. package/dist/{core/registries → registries}/controllers.js +5 -5
  189. package/dist/registries/controllers.js.map +1 -0
  190. package/dist/{core/registries → registries}/controllers.mjs +1 -1
  191. package/dist/registries/controllers.mjs.map +1 -0
  192. package/dist/registries/custom-fields.d.ts.map +1 -0
  193. package/dist/registries/custom-fields.js.map +1 -0
  194. package/dist/registries/custom-fields.mjs.map +1 -0
  195. package/dist/registries/hooks.d.ts.map +1 -0
  196. package/dist/{core/registries → registries}/hooks.js +5 -5
  197. package/dist/registries/hooks.js.map +1 -0
  198. package/dist/{core/registries → registries}/hooks.mjs +1 -1
  199. package/dist/registries/hooks.mjs.map +1 -0
  200. package/dist/{core/registries → registries}/index.d.ts +1 -0
  201. package/dist/registries/index.d.ts.map +1 -0
  202. package/dist/registries/middlewares.d.ts.map +1 -0
  203. package/dist/{core/registries → registries}/middlewares.js +5 -5
  204. package/dist/registries/middlewares.js.map +1 -0
  205. package/dist/{core/registries → registries}/middlewares.mjs +1 -1
  206. package/dist/registries/middlewares.mjs.map +1 -0
  207. package/dist/registries/models.d.ts +6 -0
  208. package/dist/registries/models.d.ts.map +1 -0
  209. package/dist/registries/models.js +16 -0
  210. package/dist/registries/models.js.map +1 -0
  211. package/dist/registries/models.mjs +16 -0
  212. package/dist/registries/models.mjs.map +1 -0
  213. package/dist/registries/modules.d.ts.map +1 -0
  214. package/dist/registries/modules.js.map +1 -0
  215. package/dist/registries/modules.mjs.map +1 -0
  216. package/dist/{core/utils.d.ts → registries/namespace.d.ts} +1 -1
  217. package/dist/registries/namespace.d.ts.map +1 -0
  218. package/dist/{core/utils.js → registries/namespace.js} +1 -1
  219. package/dist/registries/namespace.js.map +1 -0
  220. package/dist/{core/utils.mjs → registries/namespace.mjs} +1 -1
  221. package/dist/registries/namespace.mjs.map +1 -0
  222. package/dist/registries/plugins.d.ts.map +1 -0
  223. package/dist/registries/plugins.js.map +1 -0
  224. package/dist/registries/plugins.mjs.map +1 -0
  225. package/dist/registries/policies.d.ts.map +1 -0
  226. package/dist/{core/registries → registries}/policies.js +5 -5
  227. package/dist/registries/policies.js.map +1 -0
  228. package/dist/{core/registries → registries}/policies.mjs +1 -1
  229. package/dist/registries/policies.mjs.map +1 -0
  230. package/dist/registries/sanitizers.d.ts.map +1 -0
  231. package/dist/registries/sanitizers.js.map +1 -0
  232. package/dist/registries/sanitizers.mjs.map +1 -0
  233. package/dist/registries/services.d.ts.map +1 -0
  234. package/dist/{core/registries → registries}/services.js +5 -5
  235. package/dist/registries/services.js.map +1 -0
  236. package/dist/{core/registries → registries}/services.mjs +1 -1
  237. package/dist/registries/services.mjs.map +1 -0
  238. package/dist/registries/validators.d.ts.map +1 -0
  239. package/dist/registries/validators.js.map +1 -0
  240. package/dist/registries/validators.mjs.map +1 -0
  241. package/dist/services/core-store.d.ts +2 -22
  242. package/dist/services/core-store.d.ts.map +1 -1
  243. package/dist/services/core-store.js +5 -1
  244. package/dist/services/core-store.js.map +1 -1
  245. package/dist/services/core-store.mjs +5 -1
  246. package/dist/services/core-store.mjs.map +1 -1
  247. package/dist/services/document-service/collection-type.d.ts +4 -0
  248. package/dist/services/document-service/collection-type.d.ts.map +1 -0
  249. package/dist/services/document-service/collection-type.js +145 -0
  250. package/dist/services/document-service/collection-type.js.map +1 -0
  251. package/dist/services/document-service/collection-type.mjs +145 -0
  252. package/dist/services/document-service/collection-type.mjs.map +1 -0
  253. package/dist/services/document-service/common.d.ts +4 -0
  254. package/dist/services/document-service/common.d.ts.map +1 -0
  255. package/dist/services/document-service/common.js +7 -0
  256. package/dist/services/document-service/common.js.map +1 -0
  257. package/dist/services/document-service/common.mjs +7 -0
  258. package/dist/services/document-service/common.mjs.map +1 -0
  259. package/dist/services/document-service/document-engine.d.ts +8 -0
  260. package/dist/services/document-service/document-engine.d.ts.map +1 -0
  261. package/dist/services/document-service/document-engine.js +249 -0
  262. package/dist/services/document-service/document-engine.js.map +1 -0
  263. package/dist/services/document-service/document-engine.mjs +250 -0
  264. package/dist/services/document-service/document-engine.mjs.map +1 -0
  265. package/dist/services/document-service/draft-and-publish.d.ts +24 -0
  266. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -0
  267. package/dist/services/document-service/draft-and-publish.js +41 -0
  268. package/dist/services/document-service/draft-and-publish.js.map +1 -0
  269. package/dist/services/document-service/draft-and-publish.mjs +41 -0
  270. package/dist/services/document-service/draft-and-publish.mjs.map +1 -0
  271. package/dist/services/document-service/index.d.ts +18 -7
  272. package/dist/services/document-service/index.d.ts.map +1 -1
  273. package/dist/services/document-service/index.js +18 -190
  274. package/dist/services/document-service/index.js.map +1 -1
  275. package/dist/services/document-service/index.mjs +17 -190
  276. package/dist/services/document-service/index.mjs.map +1 -1
  277. package/dist/services/document-service/internationalization.d.ts +7 -0
  278. package/dist/services/document-service/internationalization.d.ts.map +1 -0
  279. package/dist/services/document-service/internationalization.js +40 -0
  280. package/dist/services/document-service/internationalization.js.map +1 -0
  281. package/dist/services/document-service/internationalization.mjs +40 -0
  282. package/dist/services/document-service/internationalization.mjs.map +1 -0
  283. package/dist/services/document-service/middlewares.d.ts +8 -0
  284. package/dist/services/document-service/middlewares.d.ts.map +1 -0
  285. package/dist/services/document-service/middlewares.js +46 -0
  286. package/dist/services/document-service/middlewares.js.map +1 -0
  287. package/dist/services/document-service/middlewares.mjs +46 -0
  288. package/dist/services/document-service/middlewares.mjs.map +1 -0
  289. package/dist/services/document-service/repository-factory.d.ts +3 -0
  290. package/dist/services/document-service/repository-factory.d.ts.map +1 -0
  291. package/dist/services/document-service/repository-factory.js +12 -0
  292. package/dist/services/document-service/repository-factory.js.map +1 -0
  293. package/dist/services/document-service/repository-factory.mjs +12 -0
  294. package/dist/services/document-service/repository-factory.mjs.map +1 -0
  295. package/dist/services/document-service/single-type.d.ts +4 -0
  296. package/dist/services/document-service/single-type.d.ts.map +1 -0
  297. package/dist/services/document-service/single-type.js +92 -0
  298. package/dist/services/document-service/single-type.js.map +1 -0
  299. package/dist/services/document-service/single-type.mjs +92 -0
  300. package/dist/services/document-service/single-type.mjs.map +1 -0
  301. package/dist/services/document-service/transform/data.d.ts +5 -0
  302. package/dist/services/document-service/transform/data.d.ts.map +1 -0
  303. package/dist/services/document-service/transform/data.js +13 -0
  304. package/dist/services/document-service/transform/data.js.map +1 -0
  305. package/dist/services/document-service/transform/data.mjs +13 -0
  306. package/dist/services/document-service/transform/data.mjs.map +1 -0
  307. package/dist/services/document-service/transform/fields.d.ts +5 -0
  308. package/dist/services/document-service/transform/fields.d.ts.map +1 -0
  309. package/dist/services/document-service/transform/fields.js +23 -0
  310. package/dist/services/document-service/transform/fields.js.map +1 -0
  311. package/dist/services/document-service/transform/fields.mjs +23 -0
  312. package/dist/services/document-service/transform/fields.mjs.map +1 -0
  313. package/dist/services/document-service/transform/filters.d.ts +3 -0
  314. package/dist/services/document-service/transform/filters.d.ts.map +1 -0
  315. package/dist/services/document-service/transform/filters.js +49 -0
  316. package/dist/services/document-service/transform/filters.js.map +1 -0
  317. package/dist/services/document-service/transform/filters.mjs +49 -0
  318. package/dist/services/document-service/transform/filters.mjs.map +1 -0
  319. package/dist/services/document-service/transform/id-map.d.ts +23 -0
  320. package/dist/services/document-service/transform/id-map.d.ts.map +1 -0
  321. package/dist/services/document-service/transform/id-map.js +72 -0
  322. package/dist/services/document-service/transform/id-map.js.map +1 -0
  323. package/dist/services/document-service/transform/id-map.mjs +72 -0
  324. package/dist/services/document-service/transform/id-map.mjs.map +1 -0
  325. package/dist/services/document-service/transform/id-transform.d.ts +26 -0
  326. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -0
  327. package/dist/services/document-service/transform/id-transform.js +57 -0
  328. package/dist/services/document-service/transform/id-transform.js.map +1 -0
  329. package/dist/services/document-service/transform/id-transform.mjs +57 -0
  330. package/dist/services/document-service/transform/id-transform.mjs.map +1 -0
  331. package/dist/services/document-service/transform/populate.d.ts +3 -0
  332. package/dist/services/document-service/transform/populate.d.ts.map +1 -0
  333. package/dist/services/document-service/transform/populate.js +31 -0
  334. package/dist/services/document-service/transform/populate.js.map +1 -0
  335. package/dist/services/document-service/transform/populate.mjs +31 -0
  336. package/dist/services/document-service/transform/populate.mjs.map +1 -0
  337. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +13 -0
  338. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -0
  339. package/dist/services/document-service/transform/relations/extract/data-ids.js +76 -0
  340. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -0
  341. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +76 -0
  342. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -0
  343. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +10 -0
  344. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -0
  345. package/dist/services/document-service/transform/relations/transform/data-ids.js +115 -0
  346. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -0
  347. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +115 -0
  348. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -0
  349. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +4 -0
  350. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +1 -0
  351. package/dist/services/document-service/transform/relations/transform/output-ids.js +26 -0
  352. package/dist/services/document-service/transform/relations/transform/output-ids.js.map +1 -0
  353. package/dist/services/document-service/transform/relations/transform/output-ids.mjs +26 -0
  354. package/dist/services/document-service/transform/relations/transform/output-ids.mjs.map +1 -0
  355. package/dist/services/document-service/transform/relations/utils/data.d.ts +6 -0
  356. package/dist/services/document-service/transform/relations/utils/data.d.ts.map +1 -0
  357. package/dist/services/document-service/transform/relations/utils/data.js +12 -0
  358. package/dist/services/document-service/transform/relations/utils/data.js.map +1 -0
  359. package/dist/services/document-service/transform/relations/utils/data.mjs +12 -0
  360. package/dist/services/document-service/transform/relations/utils/data.mjs.map +1 -0
  361. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +10 -0
  362. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -0
  363. package/dist/services/document-service/transform/relations/utils/i18n.js +31 -0
  364. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -0
  365. package/dist/services/document-service/transform/relations/utils/i18n.mjs +31 -0
  366. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -0
  367. package/dist/services/document-service/transform/relations/utils/types.d.ts +8 -0
  368. package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -0
  369. package/dist/services/document-service/transform/sort.d.ts +5 -0
  370. package/dist/services/document-service/transform/sort.d.ts.map +1 -0
  371. package/dist/services/document-service/transform/sort.js +44 -0
  372. package/dist/services/document-service/transform/sort.js.map +1 -0
  373. package/dist/services/document-service/transform/sort.mjs +44 -0
  374. package/dist/services/document-service/transform/sort.mjs.map +1 -0
  375. package/dist/services/document-service/transform/types.d.ts +13 -0
  376. package/dist/services/document-service/transform/types.d.ts.map +1 -0
  377. package/dist/services/document-service/transform/utils.d.ts +9 -0
  378. package/dist/services/document-service/transform/utils.d.ts.map +1 -0
  379. package/dist/services/document-service/transform/utils.js +23 -0
  380. package/dist/services/document-service/transform/utils.js.map +1 -0
  381. package/dist/services/document-service/transform/utils.mjs +23 -0
  382. package/dist/services/document-service/transform/utils.mjs.map +1 -0
  383. package/dist/services/document-service/utils/populate.d.ts +3 -0
  384. package/dist/services/document-service/utils/populate.d.ts.map +1 -0
  385. package/dist/services/document-service/utils/populate.js +41 -0
  386. package/dist/services/document-service/utils/populate.js.map +1 -0
  387. package/dist/services/document-service/utils/populate.mjs +41 -0
  388. package/dist/services/document-service/utils/populate.mjs.map +1 -0
  389. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  390. package/dist/services/entity-validator/blocks-validator.js +22 -2
  391. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  392. package/dist/services/entity-validator/blocks-validator.mjs +22 -2
  393. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  394. package/dist/services/entity-validator/index.d.ts.map +1 -1
  395. package/dist/services/entity-validator/index.js +4 -1
  396. package/dist/services/entity-validator/index.js.map +1 -1
  397. package/dist/services/entity-validator/index.mjs +4 -1
  398. package/dist/services/entity-validator/index.mjs.map +1 -1
  399. package/dist/services/entity-validator/validators.d.ts +14 -13
  400. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  401. package/dist/services/entity-validator/validators.js +20 -16
  402. package/dist/services/entity-validator/validators.js.map +1 -1
  403. package/dist/services/entity-validator/validators.mjs +20 -16
  404. package/dist/services/entity-validator/validators.mjs.map +1 -1
  405. package/dist/services/features.d.ts +10 -0
  406. package/dist/services/features.d.ts.map +1 -0
  407. package/dist/services/features.js +17 -0
  408. package/dist/services/features.js.map +1 -0
  409. package/dist/services/features.mjs +17 -0
  410. package/dist/services/features.mjs.map +1 -0
  411. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  412. package/dist/services/server/compose-endpoint.js +3 -0
  413. package/dist/services/server/compose-endpoint.js.map +1 -1
  414. package/dist/services/server/compose-endpoint.mjs +3 -0
  415. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  416. package/dist/services/server/middleware.d.ts +1 -5
  417. package/dist/services/server/middleware.d.ts.map +1 -1
  418. package/dist/services/server/middleware.js.map +1 -1
  419. package/dist/services/server/middleware.mjs.map +1 -1
  420. package/dist/services/server/register-middlewares.js +1 -1
  421. package/dist/services/server/register-middlewares.js.map +1 -1
  422. package/dist/services/server/register-middlewares.mjs +1 -1
  423. package/dist/services/server/register-middlewares.mjs.map +1 -1
  424. package/dist/services/webhook-runner.d.ts +10 -1
  425. package/dist/services/webhook-runner.d.ts.map +1 -1
  426. package/dist/services/webhook-store.d.ts +2 -22
  427. package/dist/services/webhook-store.d.ts.map +1 -1
  428. package/dist/services/webhook-store.js +7 -3
  429. package/dist/services/webhook-store.js.map +1 -1
  430. package/dist/services/webhook-store.mjs +7 -3
  431. package/dist/services/webhook-store.mjs.map +1 -1
  432. package/dist/utils/convert-custom-field-type.d.ts +1 -2
  433. package/dist/utils/convert-custom-field-type.d.ts.map +1 -1
  434. package/dist/utils/convert-custom-field-type.js +2 -1
  435. package/dist/utils/convert-custom-field-type.js.map +1 -1
  436. package/dist/utils/convert-custom-field-type.mjs +1 -1
  437. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  438. package/dist/utils/ee.d.ts +1 -2
  439. package/dist/utils/ee.d.ts.map +1 -1
  440. package/dist/utils/fetch.d.ts +2 -1
  441. package/dist/utils/fetch.d.ts.map +1 -1
  442. package/dist/utils/fetch.js +2 -2
  443. package/dist/utils/fetch.js.map +1 -1
  444. package/dist/utils/fetch.mjs +2 -2
  445. package/dist/utils/fetch.mjs.map +1 -1
  446. package/dist/utils/filepath-to-prop-path.d.ts +5 -0
  447. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -0
  448. package/dist/{load → utils}/filepath-to-prop-path.js +3 -2
  449. package/dist/utils/filepath-to-prop-path.js.map +1 -0
  450. package/dist/{load → utils}/filepath-to-prop-path.mjs +2 -2
  451. package/dist/utils/filepath-to-prop-path.mjs.map +1 -0
  452. package/dist/utils/get-dirs.d.ts +1 -2
  453. package/dist/utils/get-dirs.d.ts.map +1 -1
  454. package/dist/utils/get-dirs.js +2 -1
  455. package/dist/utils/get-dirs.js.map +1 -1
  456. package/dist/utils/get-dirs.mjs +1 -1
  457. package/dist/utils/get-dirs.mjs.map +1 -1
  458. package/dist/utils/index.d.ts +11 -4
  459. package/dist/utils/index.d.ts.map +1 -1
  460. package/dist/utils/is-initialized.d.ts +1 -1
  461. package/dist/utils/is-initialized.d.ts.map +1 -1
  462. package/dist/utils/is-initialized.js +4 -3
  463. package/dist/utils/is-initialized.js.map +1 -1
  464. package/dist/utils/is-initialized.mjs +3 -3
  465. package/dist/utils/is-initialized.mjs.map +1 -1
  466. package/dist/utils/load-config-file.d.ts +2 -0
  467. package/dist/utils/load-config-file.d.ts.map +1 -0
  468. package/dist/{core/app-configuration → utils}/load-config-file.js +2 -2
  469. package/dist/utils/load-config-file.js.map +1 -0
  470. package/dist/{core/app-configuration → utils}/load-config-file.mjs +2 -2
  471. package/dist/utils/load-config-file.mjs.map +1 -0
  472. package/dist/{load → utils}/load-files.d.ts +2 -2
  473. package/dist/utils/load-files.d.ts.map +1 -0
  474. package/dist/{load → utils}/load-files.js +7 -6
  475. package/dist/utils/load-files.js.map +1 -0
  476. package/dist/{load → utils}/load-files.mjs +7 -7
  477. package/dist/utils/load-files.mjs.map +1 -0
  478. package/dist/utils/open-browser.d.ts +1 -2
  479. package/dist/utils/open-browser.d.ts.map +1 -1
  480. package/dist/utils/open-browser.js +5 -5
  481. package/dist/utils/open-browser.js.map +1 -1
  482. package/dist/utils/open-browser.mjs +4 -5
  483. package/dist/utils/open-browser.mjs.map +1 -1
  484. package/dist/utils/startup-logger.d.ts +1 -2
  485. package/dist/utils/startup-logger.d.ts.map +1 -1
  486. package/dist/utils/startup-logger.js +19 -13
  487. package/dist/utils/startup-logger.js.map +1 -1
  488. package/dist/utils/startup-logger.mjs +18 -13
  489. package/dist/utils/startup-logger.mjs.map +1 -1
  490. package/dist/utils/transform-content-types-to-models.d.ts +2 -2
  491. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  492. package/dist/utils/transform-content-types-to-models.js +159 -11
  493. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  494. package/dist/utils/transform-content-types-to-models.mjs +157 -11
  495. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  496. package/dist/utils/update-notifier/index.d.ts +1 -2
  497. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  498. package/dist/utils/update-notifier/index.js +8 -2
  499. package/dist/utils/update-notifier/index.js.map +1 -1
  500. package/dist/utils/update-notifier/index.mjs +7 -2
  501. package/dist/utils/update-notifier/index.mjs.map +1 -1
  502. package/package.json +17 -25
  503. package/bin/strapi.js +0 -2
  504. package/dist/admin.d.ts +0 -5
  505. package/dist/admin.d.ts.map +0 -1
  506. package/dist/cli.d.ts +0 -2
  507. package/dist/cli.d.ts.map +0 -1
  508. package/dist/commands/actions/admin/create-user/action.d.ts +0 -12
  509. package/dist/commands/actions/admin/create-user/action.d.ts.map +0 -1
  510. package/dist/commands/actions/admin/create-user/command.d.ts +0 -7
  511. package/dist/commands/actions/admin/create-user/command.d.ts.map +0 -1
  512. package/dist/commands/actions/admin/reset-user-password/action.d.ts +0 -10
  513. package/dist/commands/actions/admin/reset-user-password/action.d.ts.map +0 -1
  514. package/dist/commands/actions/admin/reset-user-password/command.d.ts +0 -7
  515. package/dist/commands/actions/admin/reset-user-password/command.d.ts.map +0 -1
  516. package/dist/commands/actions/components/list/action.d.ts +0 -3
  517. package/dist/commands/actions/components/list/action.d.ts.map +0 -1
  518. package/dist/commands/actions/components/list/command.d.ts +0 -7
  519. package/dist/commands/actions/components/list/command.d.ts.map +0 -1
  520. package/dist/commands/actions/configuration/dump/action.d.ts +0 -11
  521. package/dist/commands/actions/configuration/dump/action.d.ts.map +0 -1
  522. package/dist/commands/actions/configuration/dump/command.d.ts +0 -7
  523. package/dist/commands/actions/configuration/dump/command.d.ts.map +0 -1
  524. package/dist/commands/actions/configuration/restore/action.d.ts +0 -11
  525. package/dist/commands/actions/configuration/restore/action.d.ts.map +0 -1
  526. package/dist/commands/actions/configuration/restore/command.d.ts +0 -7
  527. package/dist/commands/actions/configuration/restore/command.d.ts.map +0 -1
  528. package/dist/commands/actions/console/action.d.ts +0 -6
  529. package/dist/commands/actions/console/action.d.ts.map +0 -1
  530. package/dist/commands/actions/console/command.d.ts +0 -7
  531. package/dist/commands/actions/console/command.d.ts.map +0 -1
  532. package/dist/commands/actions/content-types/list/action.d.ts +0 -3
  533. package/dist/commands/actions/content-types/list/action.d.ts.map +0 -1
  534. package/dist/commands/actions/content-types/list/command.d.ts +0 -7
  535. package/dist/commands/actions/content-types/list/command.d.ts.map +0 -1
  536. package/dist/commands/actions/controllers/list/action.d.ts +0 -3
  537. package/dist/commands/actions/controllers/list/action.d.ts.map +0 -1
  538. package/dist/commands/actions/controllers/list/command.d.ts +0 -7
  539. package/dist/commands/actions/controllers/list/command.d.ts.map +0 -1
  540. package/dist/commands/actions/generate/command.d.ts +0 -7
  541. package/dist/commands/actions/generate/command.d.ts.map +0 -1
  542. package/dist/commands/actions/hooks/list/action.d.ts +0 -3
  543. package/dist/commands/actions/hooks/list/action.d.ts.map +0 -1
  544. package/dist/commands/actions/hooks/list/command.d.ts +0 -7
  545. package/dist/commands/actions/hooks/list/command.d.ts.map +0 -1
  546. package/dist/commands/actions/install/action.d.ts +0 -3
  547. package/dist/commands/actions/install/action.d.ts.map +0 -1
  548. package/dist/commands/actions/install/command.d.ts +0 -7
  549. package/dist/commands/actions/install/command.d.ts.map +0 -1
  550. package/dist/commands/actions/middlewares/list/action.d.ts +0 -3
  551. package/dist/commands/actions/middlewares/list/action.d.ts.map +0 -1
  552. package/dist/commands/actions/middlewares/list/command.d.ts +0 -7
  553. package/dist/commands/actions/middlewares/list/command.d.ts.map +0 -1
  554. package/dist/commands/actions/new/action.d.ts +0 -8
  555. package/dist/commands/actions/new/action.d.ts.map +0 -1
  556. package/dist/commands/actions/new/command.d.ts +0 -7
  557. package/dist/commands/actions/new/command.d.ts.map +0 -1
  558. package/dist/commands/actions/plugin/build-command/action.d.ts +0 -7
  559. package/dist/commands/actions/plugin/build-command/action.d.ts.map +0 -1
  560. package/dist/commands/actions/plugin/build-command/command.d.ts +0 -7
  561. package/dist/commands/actions/plugin/build-command/command.d.ts.map +0 -1
  562. package/dist/commands/actions/plugin/watch/action.d.ts +0 -7
  563. package/dist/commands/actions/plugin/watch/action.d.ts.map +0 -1
  564. package/dist/commands/actions/plugin/watch/command.d.ts +0 -7
  565. package/dist/commands/actions/plugin/watch/command.d.ts.map +0 -1
  566. package/dist/commands/actions/policies/list/action.d.ts +0 -3
  567. package/dist/commands/actions/policies/list/action.d.ts.map +0 -1
  568. package/dist/commands/actions/policies/list/command.d.ts +0 -7
  569. package/dist/commands/actions/policies/list/command.d.ts.map +0 -1
  570. package/dist/commands/actions/report/action.d.ts +0 -8
  571. package/dist/commands/actions/report/action.d.ts.map +0 -1
  572. package/dist/commands/actions/report/command.d.ts +0 -7
  573. package/dist/commands/actions/report/command.d.ts.map +0 -1
  574. package/dist/commands/actions/routes/list/action.d.ts +0 -3
  575. package/dist/commands/actions/routes/list/action.d.ts.map +0 -1
  576. package/dist/commands/actions/routes/list/command.d.ts +0 -7
  577. package/dist/commands/actions/routes/list/command.d.ts.map +0 -1
  578. package/dist/commands/actions/services/list/action.d.ts +0 -3
  579. package/dist/commands/actions/services/list/action.d.ts.map +0 -1
  580. package/dist/commands/actions/services/list/command.d.ts +0 -7
  581. package/dist/commands/actions/services/list/command.d.ts.map +0 -1
  582. package/dist/commands/actions/start/action.d.ts +0 -6
  583. package/dist/commands/actions/start/action.d.ts.map +0 -1
  584. package/dist/commands/actions/start/command.d.ts +0 -7
  585. package/dist/commands/actions/start/command.d.ts.map +0 -1
  586. package/dist/commands/actions/telemetry/disable/action.d.ts +0 -2
  587. package/dist/commands/actions/telemetry/disable/action.d.ts.map +0 -1
  588. package/dist/commands/actions/telemetry/disable/command.d.ts +0 -7
  589. package/dist/commands/actions/telemetry/disable/command.d.ts.map +0 -1
  590. package/dist/commands/actions/telemetry/enable/action.d.ts +0 -3
  591. package/dist/commands/actions/telemetry/enable/action.d.ts.map +0 -1
  592. package/dist/commands/actions/telemetry/enable/command.d.ts +0 -7
  593. package/dist/commands/actions/telemetry/enable/command.d.ts.map +0 -1
  594. package/dist/commands/actions/templates/generate/action.d.ts +0 -2
  595. package/dist/commands/actions/templates/generate/action.d.ts.map +0 -1
  596. package/dist/commands/actions/templates/generate/command.d.ts +0 -7
  597. package/dist/commands/actions/templates/generate/command.d.ts.map +0 -1
  598. package/dist/commands/actions/ts/generate-types/action.d.ts +0 -9
  599. package/dist/commands/actions/ts/generate-types/action.d.ts.map +0 -1
  600. package/dist/commands/actions/ts/generate-types/command.d.ts +0 -7
  601. package/dist/commands/actions/ts/generate-types/command.d.ts.map +0 -1
  602. package/dist/commands/actions/uninstall/action.d.ts +0 -6
  603. package/dist/commands/actions/uninstall/action.d.ts.map +0 -1
  604. package/dist/commands/actions/uninstall/command.d.ts +0 -7
  605. package/dist/commands/actions/uninstall/command.d.ts.map +0 -1
  606. package/dist/commands/actions/version/command.d.ts +0 -7
  607. package/dist/commands/actions/version/command.d.ts.map +0 -1
  608. package/dist/commands/actions/watch-admin/action.d.ts +0 -7
  609. package/dist/commands/actions/watch-admin/action.d.ts.map +0 -1
  610. package/dist/commands/actions/watch-admin/command.d.ts +0 -7
  611. package/dist/commands/actions/watch-admin/command.d.ts.map +0 -1
  612. package/dist/commands/index.d.ts +0 -37
  613. package/dist/commands/index.d.ts.map +0 -1
  614. package/dist/commands/types.d.ts +0 -14
  615. package/dist/commands/types.d.ts.map +0 -1
  616. package/dist/commands/utils/commander.d.ts +0 -36
  617. package/dist/commands/utils/commander.d.ts.map +0 -1
  618. package/dist/commands/utils/helpers.d.ts +0 -49
  619. package/dist/commands/utils/helpers.d.ts.map +0 -1
  620. package/dist/commands/utils/logger.d.ts +0 -19
  621. package/dist/commands/utils/logger.d.ts.map +0 -1
  622. package/dist/commands/utils/pkg.d.ts +0 -119
  623. package/dist/commands/utils/pkg.d.ts.map +0 -1
  624. package/dist/commands/utils/tsconfig.d.ts +0 -19
  625. package/dist/commands/utils/tsconfig.d.ts.map +0 -1
  626. package/dist/core/app-configuration/config-loader.d.ts.map +0 -1
  627. package/dist/core/app-configuration/config-loader.js +0 -19
  628. package/dist/core/app-configuration/config-loader.js.map +0 -1
  629. package/dist/core/app-configuration/config-loader.mjs +0 -17
  630. package/dist/core/app-configuration/config-loader.mjs.map +0 -1
  631. package/dist/core/app-configuration/index.d.ts.map +0 -1
  632. package/dist/core/app-configuration/index.js.map +0 -1
  633. package/dist/core/app-configuration/index.mjs.map +0 -1
  634. package/dist/core/app-configuration/load-config-file.d.ts +0 -2
  635. package/dist/core/app-configuration/load-config-file.d.ts.map +0 -1
  636. package/dist/core/app-configuration/load-config-file.js.map +0 -1
  637. package/dist/core/app-configuration/load-config-file.mjs.map +0 -1
  638. package/dist/core/bootstrap.d.ts +0 -5
  639. package/dist/core/bootstrap.d.ts.map +0 -1
  640. package/dist/core/bootstrap.js +0 -28
  641. package/dist/core/bootstrap.js.map +0 -1
  642. package/dist/core/bootstrap.mjs +0 -27
  643. package/dist/core/bootstrap.mjs.map +0 -1
  644. package/dist/core/domain/content-type/index.d.ts.map +0 -1
  645. package/dist/core/domain/content-type/index.js.map +0 -1
  646. package/dist/core/domain/content-type/index.mjs.map +0 -1
  647. package/dist/core/domain/content-type/validator.d.ts.map +0 -1
  648. package/dist/core/domain/content-type/validator.js.map +0 -1
  649. package/dist/core/domain/content-type/validator.mjs.map +0 -1
  650. package/dist/core/domain/module/index.d.ts.map +0 -1
  651. package/dist/core/domain/module/index.js.map +0 -1
  652. package/dist/core/domain/module/index.mjs.map +0 -1
  653. package/dist/core/domain/module/validation.d.ts.map +0 -1
  654. package/dist/core/domain/module/validation.js.map +0 -1
  655. package/dist/core/domain/module/validation.mjs.map +0 -1
  656. package/dist/core/loaders/admin.d.ts.map +0 -1
  657. package/dist/core/loaders/admin.js.map +0 -1
  658. package/dist/core/loaders/admin.mjs.map +0 -1
  659. package/dist/core/loaders/apis.d.ts.map +0 -1
  660. package/dist/core/loaders/apis.js.map +0 -1
  661. package/dist/core/loaders/apis.mjs.map +0 -1
  662. package/dist/core/loaders/components.d.ts.map +0 -1
  663. package/dist/core/loaders/components.js.map +0 -1
  664. package/dist/core/loaders/components.mjs.map +0 -1
  665. package/dist/core/loaders/index.d.ts.map +0 -1
  666. package/dist/core/loaders/index.js.map +0 -1
  667. package/dist/core/loaders/index.mjs.map +0 -1
  668. package/dist/core/loaders/middlewares.d.ts.map +0 -1
  669. package/dist/core/loaders/middlewares.js.map +0 -1
  670. package/dist/core/loaders/middlewares.mjs.map +0 -1
  671. package/dist/core/loaders/plugins/get-enabled-plugins.d.ts.map +0 -1
  672. package/dist/core/loaders/plugins/get-enabled-plugins.js.map +0 -1
  673. package/dist/core/loaders/plugins/get-enabled-plugins.mjs.map +0 -1
  674. package/dist/core/loaders/plugins/get-user-plugins-config.d.ts.map +0 -1
  675. package/dist/core/loaders/plugins/get-user-plugins-config.js.map +0 -1
  676. package/dist/core/loaders/plugins/get-user-plugins-config.mjs.map +0 -1
  677. package/dist/core/loaders/plugins/index.d.ts.map +0 -1
  678. package/dist/core/loaders/plugins/index.js.map +0 -1
  679. package/dist/core/loaders/plugins/index.mjs.map +0 -1
  680. package/dist/core/loaders/policies.d.ts.map +0 -1
  681. package/dist/core/loaders/policies.js.map +0 -1
  682. package/dist/core/loaders/policies.mjs.map +0 -1
  683. package/dist/core/loaders/sanitizers.d.ts.map +0 -1
  684. package/dist/core/loaders/sanitizers.js.map +0 -1
  685. package/dist/core/loaders/sanitizers.mjs.map +0 -1
  686. package/dist/core/loaders/src-index.d.ts.map +0 -1
  687. package/dist/core/loaders/src-index.js.map +0 -1
  688. package/dist/core/loaders/src-index.mjs.map +0 -1
  689. package/dist/core/loaders/validators.d.ts.map +0 -1
  690. package/dist/core/loaders/validators.js.map +0 -1
  691. package/dist/core/loaders/validators.mjs.map +0 -1
  692. package/dist/core/registries/apis.d.ts.map +0 -1
  693. package/dist/core/registries/apis.js.map +0 -1
  694. package/dist/core/registries/apis.mjs.map +0 -1
  695. package/dist/core/registries/components.d.ts.map +0 -1
  696. package/dist/core/registries/components.js.map +0 -1
  697. package/dist/core/registries/components.mjs.map +0 -1
  698. package/dist/core/registries/config.d.ts.map +0 -1
  699. package/dist/core/registries/config.js.map +0 -1
  700. package/dist/core/registries/config.mjs.map +0 -1
  701. package/dist/core/registries/content-types.d.ts.map +0 -1
  702. package/dist/core/registries/content-types.js.map +0 -1
  703. package/dist/core/registries/content-types.mjs.map +0 -1
  704. package/dist/core/registries/controllers.d.ts.map +0 -1
  705. package/dist/core/registries/controllers.js.map +0 -1
  706. package/dist/core/registries/controllers.mjs.map +0 -1
  707. package/dist/core/registries/custom-fields.d.ts.map +0 -1
  708. package/dist/core/registries/custom-fields.js.map +0 -1
  709. package/dist/core/registries/custom-fields.mjs.map +0 -1
  710. package/dist/core/registries/hooks.d.ts.map +0 -1
  711. package/dist/core/registries/hooks.js.map +0 -1
  712. package/dist/core/registries/hooks.mjs.map +0 -1
  713. package/dist/core/registries/index.d.ts.map +0 -1
  714. package/dist/core/registries/middlewares.d.ts.map +0 -1
  715. package/dist/core/registries/middlewares.js.map +0 -1
  716. package/dist/core/registries/middlewares.mjs.map +0 -1
  717. package/dist/core/registries/modules.d.ts.map +0 -1
  718. package/dist/core/registries/modules.js.map +0 -1
  719. package/dist/core/registries/modules.mjs.map +0 -1
  720. package/dist/core/registries/plugins.d.ts.map +0 -1
  721. package/dist/core/registries/plugins.js.map +0 -1
  722. package/dist/core/registries/plugins.mjs.map +0 -1
  723. package/dist/core/registries/policies.d.ts.map +0 -1
  724. package/dist/core/registries/policies.js.map +0 -1
  725. package/dist/core/registries/policies.mjs.map +0 -1
  726. package/dist/core/registries/sanitizers.d.ts.map +0 -1
  727. package/dist/core/registries/sanitizers.js.map +0 -1
  728. package/dist/core/registries/sanitizers.mjs.map +0 -1
  729. package/dist/core/registries/services.d.ts.map +0 -1
  730. package/dist/core/registries/services.js.map +0 -1
  731. package/dist/core/registries/services.mjs.map +0 -1
  732. package/dist/core/registries/validators.d.ts.map +0 -1
  733. package/dist/core/registries/validators.js.map +0 -1
  734. package/dist/core/registries/validators.mjs.map +0 -1
  735. package/dist/core/utils.d.ts.map +0 -1
  736. package/dist/core/utils.js.map +0 -1
  737. package/dist/core/utils.mjs.map +0 -1
  738. package/dist/core-api/service/get-fetch-params.d.ts +0 -7
  739. package/dist/core-api/service/get-fetch-params.d.ts.map +0 -1
  740. package/dist/core-api/service/get-fetch-params.js +0 -14
  741. package/dist/core-api/service/get-fetch-params.js.map +0 -1
  742. package/dist/core-api/service/get-fetch-params.mjs +0 -14
  743. package/dist/core-api/service/get-fetch-params.mjs.map +0 -1
  744. package/dist/load/filepath-to-prop-path.d.ts +0 -6
  745. package/dist/load/filepath-to-prop-path.d.ts.map +0 -1
  746. package/dist/load/filepath-to-prop-path.js.map +0 -1
  747. package/dist/load/filepath-to-prop-path.mjs.map +0 -1
  748. package/dist/load/glob.d.ts +0 -7
  749. package/dist/load/glob.d.ts.map +0 -1
  750. package/dist/load/glob.js +0 -15
  751. package/dist/load/glob.js.map +0 -1
  752. package/dist/load/glob.mjs +0 -14
  753. package/dist/load/glob.mjs.map +0 -1
  754. package/dist/load/index.d.ts +0 -3
  755. package/dist/load/index.d.ts.map +0 -1
  756. package/dist/load/load-files.d.ts.map +0 -1
  757. package/dist/load/load-files.js.map +0 -1
  758. package/dist/load/load-files.mjs.map +0 -1
  759. package/dist/load/package-path.d.ts +0 -6
  760. package/dist/load/package-path.d.ts.map +0 -1
  761. package/dist/middlewares/public/assets/images/group_people_1.png +0 -0
  762. package/dist/middlewares/public/assets/images/group_people_2.png +0 -0
  763. package/dist/middlewares/public/assets/images/group_people_3.png +0 -0
  764. package/dist/middlewares/public/assets/images/logo_login.png +0 -0
  765. package/dist/middlewares/public/index.d.ts.map +0 -1
  766. package/dist/middlewares/public/index.html +0 -66
  767. package/dist/middlewares/public/index.js +0 -91
  768. package/dist/middlewares/public/index.js.map +0 -1
  769. package/dist/middlewares/public/index.mjs +0 -85
  770. package/dist/middlewares/public/index.mjs.map +0 -1
  771. package/dist/middlewares/public/serve-static.d.ts +0 -4
  772. package/dist/middlewares/public/serve-static.d.ts.map +0 -1
  773. package/dist/middlewares/public/serve-static.js +0 -24
  774. package/dist/middlewares/public/serve-static.js.map +0 -1
  775. package/dist/middlewares/public/serve-static.mjs +0 -21
  776. package/dist/middlewares/public/serve-static.mjs.map +0 -1
  777. package/dist/services/document-service/document-repository.d.ts +0 -21
  778. package/dist/services/document-service/document-repository.d.ts.map +0 -1
  779. package/dist/services/document-service/document-repository.js +0 -132
  780. package/dist/services/document-service/document-repository.js.map +0 -1
  781. package/dist/services/document-service/document-repository.mjs +0 -132
  782. package/dist/services/document-service/document-repository.mjs.map +0 -1
  783. package/dist/services/document-service/middlewares/defaults/draft-and-publish.d.ts +0 -26
  784. package/dist/services/document-service/middlewares/defaults/draft-and-publish.d.ts.map +0 -1
  785. package/dist/services/document-service/middlewares/defaults/draft-and-publish.js +0 -58
  786. package/dist/services/document-service/middlewares/defaults/draft-and-publish.js.map +0 -1
  787. package/dist/services/document-service/middlewares/defaults/draft-and-publish.mjs +0 -58
  788. package/dist/services/document-service/middlewares/defaults/draft-and-publish.mjs.map +0 -1
  789. package/dist/services/document-service/middlewares/defaults/index.d.ts +0 -3
  790. package/dist/services/document-service/middlewares/defaults/index.d.ts.map +0 -1
  791. package/dist/services/document-service/middlewares/defaults/index.js +0 -82
  792. package/dist/services/document-service/middlewares/defaults/index.js.map +0 -1
  793. package/dist/services/document-service/middlewares/defaults/index.mjs +0 -82
  794. package/dist/services/document-service/middlewares/defaults/index.mjs.map +0 -1
  795. package/dist/services/document-service/middlewares/defaults/locales.d.ts +0 -18
  796. package/dist/services/document-service/middlewares/defaults/locales.d.ts.map +0 -1
  797. package/dist/services/document-service/middlewares/defaults/locales.js +0 -40
  798. package/dist/services/document-service/middlewares/defaults/locales.js.map +0 -1
  799. package/dist/services/document-service/middlewares/defaults/locales.mjs +0 -40
  800. package/dist/services/document-service/middlewares/defaults/locales.mjs.map +0 -1
  801. package/dist/services/document-service/middlewares/index.d.ts +0 -11
  802. package/dist/services/document-service/middlewares/index.d.ts.map +0 -1
  803. package/dist/services/document-service/middlewares/index.js +0 -59
  804. package/dist/services/document-service/middlewares/index.js.map +0 -1
  805. package/dist/services/document-service/middlewares/index.mjs +0 -59
  806. package/dist/services/document-service/middlewares/index.mjs.map +0 -1
  807. package/dist/utils/addSlash.d.ts +0 -3
  808. package/dist/utils/addSlash.d.ts.map +0 -1
  809. package/dist/utils/ee.js +0 -4
  810. package/dist/utils/ee.js.map +0 -1
  811. package/dist/utils/ee.mjs +0 -5
  812. package/dist/utils/ee.mjs.map +0 -1
  813. /package/dist/{core/app-configuration → configuration}/config-loader.d.ts +0 -0
  814. /package/dist/{core/domain → domain}/content-type/validator.d.ts +0 -0
  815. /package/dist/{core/domain → domain}/content-type/validator.js +0 -0
  816. /package/dist/{core/domain → domain}/content-type/validator.mjs +0 -0
  817. /package/dist/{core/domain → domain}/module/index.d.ts +0 -0
  818. /package/dist/{core/domain → domain}/module/validation.d.ts +0 -0
  819. /package/dist/{core/domain → domain}/module/validation.js +0 -0
  820. /package/dist/{core/domain → domain}/module/validation.mjs +0 -0
  821. /package/dist/{core/loaders → loaders}/admin.d.ts +0 -0
  822. /package/dist/{core/loaders → loaders}/apis.d.ts +0 -0
  823. /package/dist/{core/loaders → loaders}/components.d.ts +0 -0
  824. /package/dist/{core/loaders → loaders}/index.d.ts +0 -0
  825. /package/dist/{core/loaders → loaders}/index.js +0 -0
  826. /package/dist/{core/loaders → loaders}/index.mjs +0 -0
  827. /package/dist/{core/loaders → loaders}/middlewares.d.ts +0 -0
  828. /package/dist/{core/loaders → loaders}/plugins/get-enabled-plugins.d.ts +0 -0
  829. /package/dist/{core/loaders → loaders}/plugins/get-user-plugins-config.d.ts +0 -0
  830. /package/dist/{core/loaders → loaders}/plugins/index.d.ts +0 -0
  831. /package/dist/{core/loaders → loaders}/policies.d.ts +0 -0
  832. /package/dist/{core/loaders → loaders}/policies.js +0 -0
  833. /package/dist/{core/loaders → loaders}/policies.mjs +0 -0
  834. /package/dist/{core/loaders → loaders}/sanitizers.d.ts +0 -0
  835. /package/dist/{core/loaders → loaders}/sanitizers.js +0 -0
  836. /package/dist/{core/loaders → loaders}/sanitizers.mjs +0 -0
  837. /package/dist/{core/loaders → loaders}/src-index.d.ts +0 -0
  838. /package/dist/{core/loaders → loaders}/src-index.js +0 -0
  839. /package/dist/{core/loaders → loaders}/src-index.mjs +0 -0
  840. /package/dist/{core/loaders → loaders}/validators.d.ts +0 -0
  841. /package/dist/{core/loaders → loaders}/validators.js +0 -0
  842. /package/dist/{core/loaders → loaders}/validators.mjs +0 -0
  843. /package/dist/{core/registries → registries}/apis.d.ts +0 -0
  844. /package/dist/{core/registries → registries}/apis.js +0 -0
  845. /package/dist/{core/registries → registries}/apis.mjs +0 -0
  846. /package/dist/{core/registries → registries}/components.d.ts +0 -0
  847. /package/dist/{core/registries → registries}/components.js +0 -0
  848. /package/dist/{core/registries → registries}/components.mjs +0 -0
  849. /package/dist/{core/registries → registries}/config.d.ts +0 -0
  850. /package/dist/{core/registries → registries}/config.js +0 -0
  851. /package/dist/{core/registries → registries}/config.mjs +0 -0
  852. /package/dist/{core/registries → registries}/content-types.d.ts +0 -0
  853. /package/dist/{core/registries → registries}/controllers.d.ts +0 -0
  854. /package/dist/{core/registries → registries}/custom-fields.d.ts +0 -0
  855. /package/dist/{core/registries → registries}/custom-fields.js +0 -0
  856. /package/dist/{core/registries → registries}/custom-fields.mjs +0 -0
  857. /package/dist/{core/registries → registries}/hooks.d.ts +0 -0
  858. /package/dist/{core/registries → registries}/middlewares.d.ts +0 -0
  859. /package/dist/{core/registries → registries}/modules.d.ts +0 -0
  860. /package/dist/{core/registries → registries}/modules.js +0 -0
  861. /package/dist/{core/registries → registries}/modules.mjs +0 -0
  862. /package/dist/{core/registries → registries}/plugins.d.ts +0 -0
  863. /package/dist/{core/registries → registries}/plugins.js +0 -0
  864. /package/dist/{core/registries → registries}/plugins.mjs +0 -0
  865. /package/dist/{core/registries → registries}/policies.d.ts +0 -0
  866. /package/dist/{core/registries → registries}/sanitizers.d.ts +0 -0
  867. /package/dist/{core/registries → registries}/sanitizers.js +0 -0
  868. /package/dist/{core/registries → registries}/sanitizers.mjs +0 -0
  869. /package/dist/{core/registries → registries}/services.d.ts +0 -0
  870. /package/dist/{core/registries → registries}/validators.d.ts +0 -0
  871. /package/dist/{core/registries → registries}/validators.js +0 -0
  872. /package/dist/{core/registries → registries}/validators.mjs +0 -0
@@ -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":";;;;;;;;;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,MAAM,IAAI,WAAW,aAAa,GAAI;AAC1C;AAAA,EACF;AAEA,QAAM,kBAAkB,MAAM,UAAU,eAAe,iCAAiC;AACxF,QAAM,gBAAgB,MAAM,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,iBAAiB,IAAI,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,eAAe,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,MAAM;AAEhC,aAAW,cAAc,OAAO,KAAK,OAAO,GAAG;AACvC,UAAA,SAAS,QAAQ,UAAU;AACjC,UAAM,mBAAmB,MAAM,IAAI,GAAG,UAAU,WAAW,iBAAiB;AAC5E,UAAM,gBACJ,OAAO,OAAO,OAAO,YAAY,aAC7B,OAAO,OAAO,QAAQ,EAAE,IAAK,CAAA,IAC7B,OAAO,OAAO;AAEd,UAAA,SAAS,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,YAAYA,SAAgB;AACxD,QAAM,UAAmB,CAAA;AAEnB,QAAA,iBAAiB,MAAM,kBAAkBA,OAAM;AAErDA,UAAO,OAAO,IAAI,kBAAkB,cAAc;AAElD,aAAW,cAAc,OAAO,KAAK,cAAc,GAAG;AAC9C,UAAA,gBAAgB,eAAe,UAAU;AAE3C,QAAA;AAEA,QAAA;AACqB,6BAAA,KAAK,cAAc,cAAc,kBAAkB;AAAA,aACnE,GAAG;AACV,YAAM,IAAI;AAAA,QACR,4BAA4B,UAAU,YAAY,UAAU;AAAA,MAAA;AAAA,IAEhE;AAGA,QAAI,CAAE,MAAM,IAAI,WAAW,oBAAoB,GAAI;AACjD;AAAA,IACF;AAEM,UAAA,eAAe,eAAe,oBAAoB;AACxD,YAAQ,UAAU,IAAI;AAAA,MACpB,GAAG;AAAA,MACH,GAAG;AAAA,MACH,cAAc,mBAAmB,YAAY,aAAa,gBAAgB,CAAA,CAAE;AAAA,MAC5E,QAAQ,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;AAC7CA,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,UAAU,YAAY,QAAQ,UAAU;AAAA,IAAA,CACzC;AAAA,EAAA,CACF;AAEM,SAAA;AACT;"}
@@ -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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policies.js","sources":["../../src/loaders/policies.ts"],"sourcesContent":["import { join, extname, basename } from 'path';\nimport fse from 'fs-extra';\nimport { importDefault } from '@strapi/utils';\n\nimport type { Strapi, Common } from '@strapi/types';\n\n// TODO:: allow folders with index.js inside for bigger policies\nexport default async function loadPolicies(strapi: Strapi) {\n const dir = strapi.dirs.dist.policies;\n\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const policies: Record<string, Common.Policy> = {};\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 policies[key] = importDefault(fullPath);\n }\n }\n\n strapi.get('policies').add(`global::`, policies);\n}\n"],"names":["fse","join","extname","basename","importDefault"],"mappings":";;;;;;AAOA,eAA8B,aAAa,QAAgB;AACnD,QAAA,MAAM,OAAO,KAAK,KAAK;AAE7B,MAAI,CAAE,MAAMA,aAAAA,QAAI,WAAW,GAAG,GAAI;AAChC;AAAA,EACF;AAEA,QAAM,WAA0C,CAAA;AAC1C,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;AACvB,eAAA,GAAG,IAAIC,YAAA,cAAc,QAAQ;AAAA,IACxC;AAAA,EACF;AAEA,SAAO,IAAI,UAAU,EAAE,IAAI,YAAY,QAAQ;AACjD;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policies.mjs","sources":["../../src/loaders/policies.ts"],"sourcesContent":["import { join, extname, basename } from 'path';\nimport fse from 'fs-extra';\nimport { importDefault } from '@strapi/utils';\n\nimport type { Strapi, Common } from '@strapi/types';\n\n// TODO:: allow folders with index.js inside for bigger policies\nexport default async function loadPolicies(strapi: Strapi) {\n const dir = strapi.dirs.dist.policies;\n\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const policies: Record<string, Common.Policy> = {};\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 policies[key] = importDefault(fullPath);\n }\n }\n\n strapi.get('policies').add(`global::`, policies);\n}\n"],"names":[],"mappings":";;;AAOA,eAA8B,aAAa,QAAgB;AACnD,QAAA,MAAM,OAAO,KAAK,KAAK;AAE7B,MAAI,CAAE,MAAM,IAAI,WAAW,GAAG,GAAI;AAChC;AAAA,EACF;AAEA,QAAM,WAA0C,CAAA;AAC1C,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;AACvB,eAAA,GAAG,IAAI,cAAc,QAAQ;AAAA,IACxC;AAAA,EACF;AAEA,SAAO,IAAI,UAAU,EAAE,IAAI,YAAY,QAAQ;AACjD;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitizers.d.ts","sourceRoot":"","sources":["../../src/loaders/sanitizers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;iCAEpB,MAAM;AAA9B,wBAEE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitizers.js","sources":["../../src/loaders/sanitizers.ts"],"sourcesContent":["import type { Strapi } from '@strapi/types';\n\nexport default (strapi: Strapi) => {\n strapi.get('sanitizers').set('content-api', { input: [], output: [], query: [] });\n};\n"],"names":[],"mappings":";AAEA,MAAe,iBAAA,CAAC,WAAmB;AACjC,SAAO,IAAI,YAAY,EAAE,IAAI,eAAe,EAAE,OAAO,CAAA,GAAI,QAAQ,CAAA,GAAI,OAAO,CAAA,EAAI,CAAA;AAClF;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitizers.mjs","sources":["../../src/loaders/sanitizers.ts"],"sourcesContent":["import type { Strapi } from '@strapi/types';\n\nexport default (strapi: Strapi) => {\n strapi.get('sanitizers').set('content-api', { input: [], output: [], query: [] });\n};\n"],"names":[],"mappings":"AAEA,MAAe,iBAAA,CAAC,WAAmB;AACjC,SAAO,IAAI,YAAY,EAAE,IAAI,eAAe,EAAE,OAAO,CAAA,GAAI,QAAQ,CAAA,GAAI,OAAO,CAAA,EAAI,CAAA;AAClF;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src-index.d.ts","sourceRoot":"","sources":["../../src/loaders/src-index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;iCAepB,MAAM;AAA9B,wBAuBE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src-index.js","sources":["../../src/loaders/src-index.ts"],"sourcesContent":["import { resolve } from 'path';\nimport { statSync, existsSync } from 'fs';\nimport { yup, importDefault } from '@strapi/utils';\n\nimport type { Strapi } from '@strapi/types';\n\nconst srcSchema = yup\n .object()\n .shape({\n bootstrap: yup.mixed().isFunction(),\n register: yup.mixed().isFunction(),\n destroy: yup.mixed().isFunction(),\n })\n .noUnknown();\n\nconst validateSrcIndex = (srcIndex: unknown) => {\n return srcSchema.validateSync(srcIndex, { strict: true, abortEarly: false });\n};\n\nexport default (strapi: Strapi) => {\n if (!existsSync(strapi.dirs.dist.src)) {\n return;\n }\n\n const pathToSrcIndex = resolve(strapi.dirs.dist.src, 'index.js');\n if (!existsSync(pathToSrcIndex) || statSync(pathToSrcIndex).isDirectory()) {\n return {};\n }\n\n const srcIndex = importDefault(pathToSrcIndex);\n\n try {\n validateSrcIndex(srcIndex);\n } catch (e) {\n if (e instanceof yup.ValidationError) {\n strapi.stopWithError({ message: `Invalid file \\`./src/index.js\\`: ${e.message}` });\n }\n\n throw e;\n }\n\n strapi.app = srcIndex;\n};\n"],"names":["yup","existsSync","resolve","statSync","importDefault"],"mappings":";;;;AAMA,MAAM,YAAYA,YAAA,IACf,OAAO,EACP,MAAM;AAAA,EACL,WAAWA,YAAA,IAAI,MAAM,EAAE,WAAW;AAAA,EAClC,UAAUA,YAAA,IAAI,MAAM,EAAE,WAAW;AAAA,EACjC,SAASA,YAAA,IAAI,MAAM,EAAE,WAAW;AAClC,CAAC,EACA,UAAU;AAEb,MAAM,mBAAmB,CAAC,aAAsB;AACvC,SAAA,UAAU,aAAa,UAAU,EAAE,QAAQ,MAAM,YAAY,OAAO;AAC7E;AAEA,MAAe,eAAA,CAAC,WAAmB;AACjC,MAAI,CAACC,GAAW,WAAA,OAAO,KAAK,KAAK,GAAG,GAAG;AACrC;AAAA,EACF;AAEA,QAAM,iBAAiBC,KAAAA,QAAQ,OAAO,KAAK,KAAK,KAAK,UAAU;AAC3D,MAAA,CAACD,cAAW,cAAc,KAAKE,YAAS,cAAc,EAAE,eAAe;AACzE,WAAO;EACT;AAEM,QAAA,WAAWC,0BAAc,cAAc;AAEzC,MAAA;AACF,qBAAiB,QAAQ;AAAA,WAClB,GAAG;AACN,QAAA,aAAaJ,gBAAI,iBAAiB;AACpC,aAAO,cAAc,EAAE,SAAS,oCAAoC,EAAE,OAAO,IAAI;AAAA,IACnF;AAEM,UAAA;AAAA,EACR;AAEA,SAAO,MAAM;AACf;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src-index.mjs","sources":["../../src/loaders/src-index.ts"],"sourcesContent":["import { resolve } from 'path';\nimport { statSync, existsSync } from 'fs';\nimport { yup, importDefault } from '@strapi/utils';\n\nimport type { Strapi } from '@strapi/types';\n\nconst srcSchema = yup\n .object()\n .shape({\n bootstrap: yup.mixed().isFunction(),\n register: yup.mixed().isFunction(),\n destroy: yup.mixed().isFunction(),\n })\n .noUnknown();\n\nconst validateSrcIndex = (srcIndex: unknown) => {\n return srcSchema.validateSync(srcIndex, { strict: true, abortEarly: false });\n};\n\nexport default (strapi: Strapi) => {\n if (!existsSync(strapi.dirs.dist.src)) {\n return;\n }\n\n const pathToSrcIndex = resolve(strapi.dirs.dist.src, 'index.js');\n if (!existsSync(pathToSrcIndex) || statSync(pathToSrcIndex).isDirectory()) {\n return {};\n }\n\n const srcIndex = importDefault(pathToSrcIndex);\n\n try {\n validateSrcIndex(srcIndex);\n } catch (e) {\n if (e instanceof yup.ValidationError) {\n strapi.stopWithError({ message: `Invalid file \\`./src/index.js\\`: ${e.message}` });\n }\n\n throw e;\n }\n\n strapi.app = srcIndex;\n};\n"],"names":[],"mappings":";;;AAMA,MAAM,YAAY,IACf,OAAO,EACP,MAAM;AAAA,EACL,WAAW,IAAI,MAAM,EAAE,WAAW;AAAA,EAClC,UAAU,IAAI,MAAM,EAAE,WAAW;AAAA,EACjC,SAAS,IAAI,MAAM,EAAE,WAAW;AAClC,CAAC,EACA,UAAU;AAEb,MAAM,mBAAmB,CAAC,aAAsB;AACvC,SAAA,UAAU,aAAa,UAAU,EAAE,QAAQ,MAAM,YAAY,OAAO;AAC7E;AAEA,MAAe,eAAA,CAAC,WAAmB;AACjC,MAAI,CAAC,WAAW,OAAO,KAAK,KAAK,GAAG,GAAG;AACrC;AAAA,EACF;AAEA,QAAM,iBAAiB,QAAQ,OAAO,KAAK,KAAK,KAAK,UAAU;AAC3D,MAAA,CAAC,WAAW,cAAc,KAAK,SAAS,cAAc,EAAE,eAAe;AACzE,WAAO;EACT;AAEM,QAAA,WAAW,cAAc,cAAc;AAEzC,MAAA;AACF,qBAAiB,QAAQ;AAAA,WAClB,GAAG;AACN,QAAA,aAAa,IAAI,iBAAiB;AACpC,aAAO,cAAc,EAAE,SAAS,oCAAoC,EAAE,OAAO,IAAI;AAAA,IACnF;AAEM,UAAA;AAAA,EACR;AAEA,SAAO,MAAM;AACf;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/loaders/validators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;iCAEpB,MAAM;AAA9B,wBAEE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.js","sources":["../../src/loaders/validators.ts"],"sourcesContent":["import type { Strapi } from '@strapi/types';\n\nexport default (strapi: Strapi) => {\n strapi.get('validators').set('content-api', { input: [], query: [] });\n};\n"],"names":[],"mappings":";AAEA,MAAe,iBAAA,CAAC,WAAmB;AACjC,SAAO,IAAI,YAAY,EAAE,IAAI,eAAe,EAAE,OAAO,CAAI,GAAA,OAAO,CAAA,EAAI,CAAA;AACtE;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.mjs","sources":["../../src/loaders/validators.ts"],"sourcesContent":["import type { Strapi } from '@strapi/types';\n\nexport default (strapi: Strapi) => {\n strapi.get('validators').set('content-api', { input: [], query: [] });\n};\n"],"names":[],"mappings":"AAEA,MAAe,iBAAA,CAAC,WAAmB;AACjC,SAAO,IAAI,YAAY,EAAE,IAAI,eAAe,EAAE,OAAO,CAAI,GAAA,OAAO,CAAA,EAAI,CAAA;AACtE;"}
@@ -1,3 +1,4 @@
1
+ /// <reference path="../../src/modules.d.ts" />
1
2
  import koaFavicon from 'koa-favicon';
2
3
  import type { Common } from '@strapi/types';
3
4
  export type Config = NonNullable<Parameters<typeof koaFavicon>[1]>;
@@ -1 +1 @@
1
- {"version":3,"file":"favicon.d.ts","sourceRoot":"","sources":["../../src/middlewares/favicon.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAOnE,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAgBpD,CAAC"}
1
+ {"version":3,"file":"favicon.d.ts","sourceRoot":"","sources":["../../src/middlewares/favicon.ts"],"names":[],"mappings":";AAEA,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAOnE,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAgBpD,CAAC"}
@@ -13,7 +13,7 @@ const responseTime = require("./response-time.js");
13
13
  const responses = require("./responses.js");
14
14
  const security = require("./security.js");
15
15
  const session = require("./session.js");
16
- const index = require("./public/index.js");
16
+ const _public = require("./public.js");
17
17
  const middlewares = {
18
18
  compression: compression.compression,
19
19
  cors: cors.cors,
@@ -28,7 +28,7 @@ const middlewares = {
28
28
  responses: responses.responses,
29
29
  security: security.security,
30
30
  session: session.session,
31
- public: index.publicStatic
31
+ public: _public.publicStatic
32
32
  };
33
33
  exports.middlewares = middlewares;
34
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/middlewares/index.ts"],"sourcesContent":["import type { Common } from '@strapi/types';\nimport { compression } from './compression';\nimport { cors } from './cors';\nimport { errors } from './errors';\nimport { favicon } from './favicon';\nimport { ip } from './ip';\nimport { logger } from './logger';\nimport { poweredBy } from './powered-by';\nimport { body } from './body';\nimport { query } from './query';\nimport { responseTime } from './response-time';\nimport { responses } from './responses';\nimport { security } from './security';\nimport { session } from './session';\nimport { publicStatic } from './public';\n\nexport const middlewares: Record<string, Common.MiddlewareFactory> = {\n compression,\n cors,\n errors,\n favicon,\n ip,\n logger,\n poweredBy,\n body,\n query,\n responseTime,\n responses,\n security,\n session,\n public: publicStatic,\n};\n"],"names":["compression","cors","errors","favicon","ip","logger","poweredBy","body","query","responseTime","responses","security","session","publicStatic"],"mappings":";;;;;;;;;;;;;;;;AAgBO,MAAM,cAAwD;AAAA,EAAA,aACnEA,YAAA;AAAA,EAAA,MACAC,KAAA;AAAA,EAAA,QACAC,OAAA;AAAA,EAAA,SACAC,QAAA;AAAA,EAAA,IACAC,GAAA;AAAA,EAAA,QACAC,OAAA;AAAA,EAAA,WACAC,UAAA;AAAA,EAAA,MACAC,KAAA;AAAA,EAAA,OACAC,MAAA;AAAA,EAAA,cACAC,aAAA;AAAA,EAAA,WACAC,UAAA;AAAA,EAAA,UACAC,SAAA;AAAA,EAAA,SACAC,QAAA;AAAA,EACA,QAAQC,MAAA;AACV;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/middlewares/index.ts"],"sourcesContent":["import type { Common } from '@strapi/types';\nimport { compression } from './compression';\nimport { cors } from './cors';\nimport { errors } from './errors';\nimport { favicon } from './favicon';\nimport { ip } from './ip';\nimport { logger } from './logger';\nimport { poweredBy } from './powered-by';\nimport { body } from './body';\nimport { query } from './query';\nimport { responseTime } from './response-time';\nimport { responses } from './responses';\nimport { security } from './security';\nimport { session } from './session';\nimport { publicStatic } from './public';\n\nexport const middlewares: Record<string, Common.MiddlewareFactory> = {\n compression,\n cors,\n errors,\n favicon,\n ip,\n logger,\n poweredBy,\n body,\n query,\n responseTime,\n responses,\n security,\n session,\n public: publicStatic,\n};\n"],"names":["compression","cors","errors","favicon","ip","logger","poweredBy","body","query","responseTime","responses","security","session","publicStatic"],"mappings":";;;;;;;;;;;;;;;;AAgBO,MAAM,cAAwD;AAAA,EAAA,aACnEA,YAAA;AAAA,EAAA,MACAC,KAAA;AAAA,EAAA,QACAC,OAAA;AAAA,EAAA,SACAC,QAAA;AAAA,EAAA,IACAC,GAAA;AAAA,EAAA,QACAC,OAAA;AAAA,EAAA,WACAC,UAAA;AAAA,EAAA,MACAC,KAAA;AAAA,EAAA,OACAC,MAAA;AAAA,EAAA,cACAC,aAAA;AAAA,EAAA,WACAC,UAAA;AAAA,EAAA,UACAC,SAAA;AAAA,EAAA,SACAC,QAAA;AAAA,EACA,QAAQC,QAAA;AACV;;"}
@@ -11,7 +11,7 @@ import { responseTime } from "./response-time.mjs";
11
11
  import { responses } from "./responses.mjs";
12
12
  import { security } from "./security.mjs";
13
13
  import { session } from "./session.mjs";
14
- import { publicStatic } from "./public/index.mjs";
14
+ import { publicStatic } from "./public.mjs";
15
15
  const middlewares = {
16
16
  compression,
17
17
  cors,
@@ -1,3 +1,3 @@
1
1
  import type { Common } from '@strapi/types';
2
2
  export declare const publicStatic: Common.MiddlewareFactory;
3
- //# sourceMappingURL=index.d.ts.map
3
+ //# sourceMappingURL=public.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/middlewares/public.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAU,MAAM,EAAE,MAAM,eAAe,CAAC;AAQpD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,iBA0BjC,CAAC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const _ = require("lodash/fp");
4
+ const koaStatic = require("koa-static");
5
+ const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
6
+ const koaStatic__default = /* @__PURE__ */ _interopDefault(koaStatic);
7
+ const defaults = {
8
+ maxAge: 6e4
9
+ };
10
+ const publicStatic = (config, { strapi }) => {
11
+ const { maxAge } = _.defaultsDeep(defaults, config);
12
+ strapi.server.routes([
13
+ {
14
+ method: "GET",
15
+ path: "/",
16
+ handler(ctx) {
17
+ ctx.redirect("/admin");
18
+ },
19
+ config: { auth: false }
20
+ },
21
+ // All other public GET-routes except /uploads/(.*) which is handled in upload middleware
22
+ {
23
+ method: "GET",
24
+ path: "/((?!uploads/).+)",
25
+ handler: koaStatic__default.default(strapi.dirs.static.public, {
26
+ maxage: maxAge,
27
+ defer: true
28
+ }),
29
+ config: { auth: false }
30
+ }
31
+ ]);
32
+ };
33
+ exports.publicStatic = publicStatic;
34
+ //# sourceMappingURL=public.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.js","sources":["../../src/middlewares/public.ts"],"sourcesContent":["import { defaultsDeep } from 'lodash/fp';\nimport koaStatic from 'koa-static';\nimport type { Strapi, Common } from '@strapi/types';\n\ntype Config = koaStatic.Options;\n\nconst defaults = {\n maxAge: 60000,\n};\n\nexport const publicStatic: Common.MiddlewareFactory = (\n config: Config,\n { strapi }: { strapi: Strapi }\n) => {\n const { maxAge } = defaultsDeep(defaults, config);\n\n strapi.server.routes([\n {\n method: 'GET',\n path: '/',\n handler(ctx) {\n ctx.redirect('/admin');\n },\n config: { auth: false },\n },\n // All other public GET-routes except /uploads/(.*) which is handled in upload middleware\n {\n method: 'GET',\n path: '/((?!uploads/).+)',\n handler: koaStatic(strapi.dirs.static.public, {\n maxage: maxAge,\n defer: true,\n }),\n config: { auth: false },\n },\n ]);\n};\n"],"names":["defaultsDeep","koaStatic"],"mappings":";;;;;;AAMA,MAAM,WAAW;AAAA,EACf,QAAQ;AACV;AAEO,MAAM,eAAyC,CACpD,QACA,EAAE,aACC;AACH,QAAM,EAAE,OAAW,IAAAA,EAAA,aAAa,UAAU,MAAM;AAEhD,SAAO,OAAO,OAAO;AAAA,IACnB;AAAA,MACE,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ,KAAK;AACX,YAAI,SAAS,QAAQ;AAAA,MACvB;AAAA,MACA,QAAQ,EAAE,MAAM,MAAM;AAAA,IACxB;AAAA;AAAA,IAEA;AAAA,MACE,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAASC,mBAAAA,QAAU,OAAO,KAAK,OAAO,QAAQ;AAAA,QAC5C,QAAQ;AAAA,QACR,OAAO;AAAA,MAAA,CACR;AAAA,MACD,QAAQ,EAAE,MAAM,MAAM;AAAA,IACxB;AAAA,EAAA,CACD;AACH;;"}
@@ -0,0 +1,32 @@
1
+ import { defaultsDeep } from "lodash/fp";
2
+ import koaStatic from "koa-static";
3
+ const defaults = {
4
+ maxAge: 6e4
5
+ };
6
+ const publicStatic = (config, { strapi }) => {
7
+ const { maxAge } = defaultsDeep(defaults, config);
8
+ strapi.server.routes([
9
+ {
10
+ method: "GET",
11
+ path: "/",
12
+ handler(ctx) {
13
+ ctx.redirect("/admin");
14
+ },
15
+ config: { auth: false }
16
+ },
17
+ // All other public GET-routes except /uploads/(.*) which is handled in upload middleware
18
+ {
19
+ method: "GET",
20
+ path: "/((?!uploads/).+)",
21
+ handler: koaStatic(strapi.dirs.static.public, {
22
+ maxage: maxAge,
23
+ defer: true
24
+ }),
25
+ config: { auth: false }
26
+ }
27
+ ]);
28
+ };
29
+ export {
30
+ publicStatic
31
+ };
32
+ //# sourceMappingURL=public.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.mjs","sources":["../../src/middlewares/public.ts"],"sourcesContent":["import { defaultsDeep } from 'lodash/fp';\nimport koaStatic from 'koa-static';\nimport type { Strapi, Common } from '@strapi/types';\n\ntype Config = koaStatic.Options;\n\nconst defaults = {\n maxAge: 60000,\n};\n\nexport const publicStatic: Common.MiddlewareFactory = (\n config: Config,\n { strapi }: { strapi: Strapi }\n) => {\n const { maxAge } = defaultsDeep(defaults, config);\n\n strapi.server.routes([\n {\n method: 'GET',\n path: '/',\n handler(ctx) {\n ctx.redirect('/admin');\n },\n config: { auth: false },\n },\n // All other public GET-routes except /uploads/(.*) which is handled in upload middleware\n {\n method: 'GET',\n path: '/((?!uploads/).+)',\n handler: koaStatic(strapi.dirs.static.public, {\n maxage: maxAge,\n defer: true,\n }),\n config: { auth: false },\n },\n ]);\n};\n"],"names":[],"mappings":";;AAMA,MAAM,WAAW;AAAA,EACf,QAAQ;AACV;AAEO,MAAM,eAAyC,CACpD,QACA,EAAE,aACC;AACH,QAAM,EAAE,OAAW,IAAA,aAAa,UAAU,MAAM;AAEhD,SAAO,OAAO,OAAO;AAAA,IACnB;AAAA,MACE,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ,KAAK;AACX,YAAI,SAAS,QAAQ;AAAA,MACvB;AAAA,MACA,QAAQ,EAAE,MAAM,MAAM;AAAA,IACxB;AAAA;AAAA,IAEA;AAAA,MACE,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS,UAAU,OAAO,KAAK,OAAO,QAAQ;AAAA,QAC5C,QAAQ;AAAA,QACR,OAAO;AAAA,MAAA,CACR;AAAA,MACD,QAAQ,EAAE,MAAM,MAAM;AAAA,IACxB;AAAA,EAAA,CACD;AACH;"}
@@ -1 +1 @@
1
- {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/middlewares/security.ts"],"names":[],"mappings":"AACA,OAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AA0B3D,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAwBnD,CAAC"}
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/middlewares/security.ts"],"names":[],"mappings":"AACA,OAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AA0B3D,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAsDnD,CAAC"}
@@ -30,16 +30,37 @@ const defaults = {
30
30
  const security = (config, { strapi }) => (ctx, next) => {
31
31
  let helmetConfig = _.defaultsDeep(defaults, config);
32
32
  const specialPaths = ["/documentation"];
33
- if (strapi.plugin("graphql")) {
33
+ const directives = {
34
+ "script-src": ["'self'", "'unsafe-inline'", "cdn.jsdelivr.net"],
35
+ "img-src": ["'self'", "data:", "cdn.jsdelivr.net", "strapi.io"],
36
+ "manifest-src": [],
37
+ "frame-src": []
38
+ };
39
+ if (strapi.plugin("graphql")?.service("utils").playground.isEnabled()) {
34
40
  const { config: gqlConfig } = strapi.plugin("graphql");
35
41
  specialPaths.push(gqlConfig("endpoint"));
42
+ directives["script-src"].push(`https: 'unsafe-inline'`);
43
+ directives["img-src"].push(`'apollo-server-landing-page.cdn.apollographql.com'`);
44
+ directives["manifest-src"].push(`'self'`);
45
+ directives["manifest-src"].push("apollo-server-landing-page.cdn.apollographql.com");
46
+ directives["frame-src"].push(`'self'`);
47
+ directives["frame-src"].push("sandbox.embed.apollographql.com");
36
48
  }
37
49
  if (ctx.method === "GET" && specialPaths.some((str) => ctx.path.startsWith(str))) {
50
+ helmetConfig = _.merge(helmetConfig, {
51
+ crossOriginEmbedderPolicy: false,
52
+ // TODO: only use this for graphql playground
53
+ contentSecurityPolicy: {
54
+ directives
55
+ }
56
+ });
57
+ }
58
+ if (ctx.method === "GET" && ["/admin"].some((str) => ctx.path.startsWith(str))) {
38
59
  helmetConfig = _.merge(helmetConfig, {
39
60
  contentSecurityPolicy: {
40
61
  directives: {
41
- "script-src": ["'self'", "'unsafe-inline'", "cdn.jsdelivr.net"],
42
- "img-src": ["'self'", "data:", "cdn.jsdelivr.net", "strapi.io"]
62
+ "script-src": ["'self'", "'unsafe-inline'"],
63
+ "connect-src": ["'self'", "https:", "ws:"]
43
64
  }
44
65
  }
45
66
  });
@@ -1 +1 @@
1
- {"version":3,"file":"security.js","sources":["../../src/middlewares/security.ts"],"sourcesContent":["import { defaultsDeep, merge } from 'lodash/fp';\nimport helmet, { KoaHelmet } from 'koa-helmet';\n\nimport type { Common } from '@strapi/types';\n\nexport type Config = NonNullable<Parameters<KoaHelmet>[0]>;\n\nconst defaults: Config = {\n crossOriginEmbedderPolicy: false,\n crossOriginOpenerPolicy: false,\n crossOriginResourcePolicy: false,\n originAgentCluster: false,\n contentSecurityPolicy: {\n useDefaults: true,\n directives: {\n 'connect-src': [\"'self'\", 'https:'],\n 'img-src': [\"'self'\", 'data:', 'blob:', 'https://market-assets.strapi.io'],\n 'media-src': [\"'self'\", 'data:', 'blob:'],\n upgradeInsecureRequests: null,\n },\n },\n xssFilter: false,\n hsts: {\n maxAge: 31536000,\n includeSubDomains: true,\n },\n frameguard: {\n action: 'sameorigin',\n },\n};\n\nexport const security: Common.MiddlewareFactory<Config> =\n (config, { strapi }) =>\n (ctx, next) => {\n let helmetConfig: Config = defaultsDeep(defaults, config);\n\n const specialPaths = ['/documentation'];\n\n if (strapi.plugin('graphql')) {\n const { config: gqlConfig } = strapi.plugin('graphql');\n specialPaths.push(gqlConfig('endpoint'));\n }\n\n if (ctx.method === 'GET' && specialPaths.some((str) => ctx.path.startsWith(str))) {\n helmetConfig = merge(helmetConfig, {\n contentSecurityPolicy: {\n directives: {\n 'script-src': [\"'self'\", \"'unsafe-inline'\", 'cdn.jsdelivr.net'],\n 'img-src': [\"'self'\", 'data:', 'cdn.jsdelivr.net', 'strapi.io'],\n },\n },\n });\n }\n\n return helmet(helmetConfig)(ctx, next);\n };\n"],"names":["defaultsDeep","merge","helmet"],"mappings":";;;;;;AAOA,MAAM,WAAmB;AAAA,EACvB,2BAA2B;AAAA,EAC3B,yBAAyB;AAAA,EACzB,2BAA2B;AAAA,EAC3B,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,IACrB,aAAa;AAAA,IACb,YAAY;AAAA,MACV,eAAe,CAAC,UAAU,QAAQ;AAAA,MAClC,WAAW,CAAC,UAAU,SAAS,SAAS,iCAAiC;AAAA,MACzE,aAAa,CAAC,UAAU,SAAS,OAAO;AAAA,MACxC,yBAAyB;AAAA,IAC3B;AAAA,EACF;AAAA,EACA,WAAW;AAAA,EACX,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,mBAAmB;AAAA,EACrB;AAAA,EACA,YAAY;AAAA,IACV,QAAQ;AAAA,EACV;AACF;AAEa,MAAA,WACX,CAAC,QAAQ,EAAE,aACX,CAAC,KAAK,SAAS;AACT,MAAA,eAAuBA,EAAAA,aAAa,UAAU,MAAM;AAElD,QAAA,eAAe,CAAC,gBAAgB;AAElC,MAAA,OAAO,OAAO,SAAS,GAAG;AAC5B,UAAM,EAAE,QAAQ,UAAA,IAAc,OAAO,OAAO,SAAS;AACxC,iBAAA,KAAK,UAAU,UAAU,CAAC;AAAA,EACzC;AAEA,MAAI,IAAI,WAAW,SAAS,aAAa,KAAK,CAAC,QAAQ,IAAI,KAAK,WAAW,GAAG,CAAC,GAAG;AAChF,mBAAeC,QAAM,cAAc;AAAA,MACjC,uBAAuB;AAAA,QACrB,YAAY;AAAA,UACV,cAAc,CAAC,UAAU,mBAAmB,kBAAkB;AAAA,UAC9D,WAAW,CAAC,UAAU,SAAS,oBAAoB,WAAW;AAAA,QAChE;AAAA,MACF;AAAA,IAAA,CACD;AAAA,EACH;AAEA,SAAOC,gBAAO,QAAA,YAAY,EAAE,KAAK,IAAI;AACvC;;"}
1
+ {"version":3,"file":"security.js","sources":["../../src/middlewares/security.ts"],"sourcesContent":["import { defaultsDeep, merge } from 'lodash/fp';\nimport helmet, { KoaHelmet } from 'koa-helmet';\n\nimport type { Common } from '@strapi/types';\n\nexport type Config = NonNullable<Parameters<KoaHelmet>[0]>;\n\nconst defaults: Config = {\n crossOriginEmbedderPolicy: false,\n crossOriginOpenerPolicy: false,\n crossOriginResourcePolicy: false,\n originAgentCluster: false,\n contentSecurityPolicy: {\n useDefaults: true,\n directives: {\n 'connect-src': [\"'self'\", 'https:'],\n 'img-src': [\"'self'\", 'data:', 'blob:', 'https://market-assets.strapi.io'],\n 'media-src': [\"'self'\", 'data:', 'blob:'],\n upgradeInsecureRequests: null,\n },\n },\n xssFilter: false,\n hsts: {\n maxAge: 31536000,\n includeSubDomains: true,\n },\n frameguard: {\n action: 'sameorigin',\n },\n};\n\nexport const security: Common.MiddlewareFactory<Config> =\n (config, { strapi }) =>\n (ctx, next) => {\n let helmetConfig: Config = defaultsDeep(defaults, config);\n\n const specialPaths = ['/documentation'];\n\n const directives: {\n 'script-src': string[];\n 'img-src': string[];\n 'manifest-src': string[];\n 'frame-src': string[];\n } = {\n 'script-src': [\"'self'\", \"'unsafe-inline'\", 'cdn.jsdelivr.net'],\n 'img-src': [\"'self'\", 'data:', 'cdn.jsdelivr.net', 'strapi.io'],\n 'manifest-src': [],\n 'frame-src': [],\n };\n\n // if apollo graphql playground is enabled, add exceptions for it\n if (strapi.plugin('graphql')?.service('utils').playground.isEnabled()) {\n const { config: gqlConfig } = strapi.plugin('graphql');\n specialPaths.push(gqlConfig('endpoint'));\n\n directives['script-src'].push(`https: 'unsafe-inline'`);\n directives['img-src'].push(`'apollo-server-landing-page.cdn.apollographql.com'`);\n directives['manifest-src'].push(`'self'`);\n directives['manifest-src'].push('apollo-server-landing-page.cdn.apollographql.com');\n directives['frame-src'].push(`'self'`);\n directives['frame-src'].push('sandbox.embed.apollographql.com');\n }\n\n // TODO: we shouldn't combine playground exceptions with documentation for all routes, we should first check the path and then return exceptions specific to that\n if (ctx.method === 'GET' && specialPaths.some((str) => ctx.path.startsWith(str))) {\n helmetConfig = merge(helmetConfig, {\n crossOriginEmbedderPolicy: false, // TODO: only use this for graphql playground\n contentSecurityPolicy: {\n directives,\n },\n });\n }\n\n if (ctx.method === 'GET' && ['/admin'].some((str) => ctx.path.startsWith(str))) {\n helmetConfig = merge(helmetConfig, {\n contentSecurityPolicy: {\n directives: {\n 'script-src': [\"'self'\", \"'unsafe-inline'\"],\n 'connect-src': [\"'self'\", 'https:', 'ws:'],\n },\n },\n });\n }\n\n return helmet(helmetConfig)(ctx, next);\n };\n"],"names":["defaultsDeep","merge","helmet"],"mappings":";;;;;;AAOA,MAAM,WAAmB;AAAA,EACvB,2BAA2B;AAAA,EAC3B,yBAAyB;AAAA,EACzB,2BAA2B;AAAA,EAC3B,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,IACrB,aAAa;AAAA,IACb,YAAY;AAAA,MACV,eAAe,CAAC,UAAU,QAAQ;AAAA,MAClC,WAAW,CAAC,UAAU,SAAS,SAAS,iCAAiC;AAAA,MACzE,aAAa,CAAC,UAAU,SAAS,OAAO;AAAA,MACxC,yBAAyB;AAAA,IAC3B;AAAA,EACF;AAAA,EACA,WAAW;AAAA,EACX,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,mBAAmB;AAAA,EACrB;AAAA,EACA,YAAY;AAAA,IACV,QAAQ;AAAA,EACV;AACF;AAEa,MAAA,WACX,CAAC,QAAQ,EAAE,aACX,CAAC,KAAK,SAAS;AACT,MAAA,eAAuBA,EAAAA,aAAa,UAAU,MAAM;AAElD,QAAA,eAAe,CAAC,gBAAgB;AAEtC,QAAM,aAKF;AAAA,IACF,cAAc,CAAC,UAAU,mBAAmB,kBAAkB;AAAA,IAC9D,WAAW,CAAC,UAAU,SAAS,oBAAoB,WAAW;AAAA,IAC9D,gBAAgB,CAAC;AAAA,IACjB,aAAa,CAAC;AAAA,EAAA;AAIZ,MAAA,OAAO,OAAO,SAAS,GAAG,QAAQ,OAAO,EAAE,WAAW,aAAa;AACrE,UAAM,EAAE,QAAQ,UAAA,IAAc,OAAO,OAAO,SAAS;AACxC,iBAAA,KAAK,UAAU,UAAU,CAAC;AAE5B,eAAA,YAAY,EAAE,KAAK,wBAAwB;AAC3C,eAAA,SAAS,EAAE,KAAK,oDAAoD;AACpE,eAAA,cAAc,EAAE,KAAK,QAAQ;AAC7B,eAAA,cAAc,EAAE,KAAK,kDAAkD;AACvE,eAAA,WAAW,EAAE,KAAK,QAAQ;AAC1B,eAAA,WAAW,EAAE,KAAK,iCAAiC;AAAA,EAChE;AAGA,MAAI,IAAI,WAAW,SAAS,aAAa,KAAK,CAAC,QAAQ,IAAI,KAAK,WAAW,GAAG,CAAC,GAAG;AAChF,mBAAeC,QAAM,cAAc;AAAA,MACjC,2BAA2B;AAAA;AAAA,MAC3B,uBAAuB;AAAA,QACrB;AAAA,MACF;AAAA,IAAA,CACD;AAAA,EACH;AAEA,MAAI,IAAI,WAAW,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK,WAAW,GAAG,CAAC,GAAG;AAC9E,mBAAeA,QAAM,cAAc;AAAA,MACjC,uBAAuB;AAAA,QACrB,YAAY;AAAA,UACV,cAAc,CAAC,UAAU,iBAAiB;AAAA,UAC1C,eAAe,CAAC,UAAU,UAAU,KAAK;AAAA,QAC3C;AAAA,MACF;AAAA,IAAA,CACD;AAAA,EACH;AAEA,SAAOC,gBAAO,QAAA,YAAY,EAAE,KAAK,IAAI;AACvC;;"}
@@ -26,16 +26,37 @@ const defaults = {
26
26
  const security = (config, { strapi }) => (ctx, next) => {
27
27
  let helmetConfig = defaultsDeep(defaults, config);
28
28
  const specialPaths = ["/documentation"];
29
- if (strapi.plugin("graphql")) {
29
+ const directives = {
30
+ "script-src": ["'self'", "'unsafe-inline'", "cdn.jsdelivr.net"],
31
+ "img-src": ["'self'", "data:", "cdn.jsdelivr.net", "strapi.io"],
32
+ "manifest-src": [],
33
+ "frame-src": []
34
+ };
35
+ if (strapi.plugin("graphql")?.service("utils").playground.isEnabled()) {
30
36
  const { config: gqlConfig } = strapi.plugin("graphql");
31
37
  specialPaths.push(gqlConfig("endpoint"));
38
+ directives["script-src"].push(`https: 'unsafe-inline'`);
39
+ directives["img-src"].push(`'apollo-server-landing-page.cdn.apollographql.com'`);
40
+ directives["manifest-src"].push(`'self'`);
41
+ directives["manifest-src"].push("apollo-server-landing-page.cdn.apollographql.com");
42
+ directives["frame-src"].push(`'self'`);
43
+ directives["frame-src"].push("sandbox.embed.apollographql.com");
32
44
  }
33
45
  if (ctx.method === "GET" && specialPaths.some((str) => ctx.path.startsWith(str))) {
46
+ helmetConfig = merge(helmetConfig, {
47
+ crossOriginEmbedderPolicy: false,
48
+ // TODO: only use this for graphql playground
49
+ contentSecurityPolicy: {
50
+ directives
51
+ }
52
+ });
53
+ }
54
+ if (ctx.method === "GET" && ["/admin"].some((str) => ctx.path.startsWith(str))) {
34
55
  helmetConfig = merge(helmetConfig, {
35
56
  contentSecurityPolicy: {
36
57
  directives: {
37
- "script-src": ["'self'", "'unsafe-inline'", "cdn.jsdelivr.net"],
38
- "img-src": ["'self'", "data:", "cdn.jsdelivr.net", "strapi.io"]
58
+ "script-src": ["'self'", "'unsafe-inline'"],
59
+ "connect-src": ["'self'", "https:", "ws:"]
39
60
  }
40
61
  }
41
62
  });
@@ -1 +1 @@
1
- {"version":3,"file":"security.mjs","sources":["../../src/middlewares/security.ts"],"sourcesContent":["import { defaultsDeep, merge } from 'lodash/fp';\nimport helmet, { KoaHelmet } from 'koa-helmet';\n\nimport type { Common } from '@strapi/types';\n\nexport type Config = NonNullable<Parameters<KoaHelmet>[0]>;\n\nconst defaults: Config = {\n crossOriginEmbedderPolicy: false,\n crossOriginOpenerPolicy: false,\n crossOriginResourcePolicy: false,\n originAgentCluster: false,\n contentSecurityPolicy: {\n useDefaults: true,\n directives: {\n 'connect-src': [\"'self'\", 'https:'],\n 'img-src': [\"'self'\", 'data:', 'blob:', 'https://market-assets.strapi.io'],\n 'media-src': [\"'self'\", 'data:', 'blob:'],\n upgradeInsecureRequests: null,\n },\n },\n xssFilter: false,\n hsts: {\n maxAge: 31536000,\n includeSubDomains: true,\n },\n frameguard: {\n action: 'sameorigin',\n },\n};\n\nexport const security: Common.MiddlewareFactory<Config> =\n (config, { strapi }) =>\n (ctx, next) => {\n let helmetConfig: Config = defaultsDeep(defaults, config);\n\n const specialPaths = ['/documentation'];\n\n if (strapi.plugin('graphql')) {\n const { config: gqlConfig } = strapi.plugin('graphql');\n specialPaths.push(gqlConfig('endpoint'));\n }\n\n if (ctx.method === 'GET' && specialPaths.some((str) => ctx.path.startsWith(str))) {\n helmetConfig = merge(helmetConfig, {\n contentSecurityPolicy: {\n directives: {\n 'script-src': [\"'self'\", \"'unsafe-inline'\", 'cdn.jsdelivr.net'],\n 'img-src': [\"'self'\", 'data:', 'cdn.jsdelivr.net', 'strapi.io'],\n },\n },\n });\n }\n\n return helmet(helmetConfig)(ctx, next);\n };\n"],"names":[],"mappings":";;AAOA,MAAM,WAAmB;AAAA,EACvB,2BAA2B;AAAA,EAC3B,yBAAyB;AAAA,EACzB,2BAA2B;AAAA,EAC3B,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,IACrB,aAAa;AAAA,IACb,YAAY;AAAA,MACV,eAAe,CAAC,UAAU,QAAQ;AAAA,MAClC,WAAW,CAAC,UAAU,SAAS,SAAS,iCAAiC;AAAA,MACzE,aAAa,CAAC,UAAU,SAAS,OAAO;AAAA,MACxC,yBAAyB;AAAA,IAC3B;AAAA,EACF;AAAA,EACA,WAAW;AAAA,EACX,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,mBAAmB;AAAA,EACrB;AAAA,EACA,YAAY;AAAA,IACV,QAAQ;AAAA,EACV;AACF;AAEa,MAAA,WACX,CAAC,QAAQ,EAAE,aACX,CAAC,KAAK,SAAS;AACT,MAAA,eAAuB,aAAa,UAAU,MAAM;AAElD,QAAA,eAAe,CAAC,gBAAgB;AAElC,MAAA,OAAO,OAAO,SAAS,GAAG;AAC5B,UAAM,EAAE,QAAQ,UAAA,IAAc,OAAO,OAAO,SAAS;AACxC,iBAAA,KAAK,UAAU,UAAU,CAAC;AAAA,EACzC;AAEA,MAAI,IAAI,WAAW,SAAS,aAAa,KAAK,CAAC,QAAQ,IAAI,KAAK,WAAW,GAAG,CAAC,GAAG;AAChF,mBAAe,MAAM,cAAc;AAAA,MACjC,uBAAuB;AAAA,QACrB,YAAY;AAAA,UACV,cAAc,CAAC,UAAU,mBAAmB,kBAAkB;AAAA,UAC9D,WAAW,CAAC,UAAU,SAAS,oBAAoB,WAAW;AAAA,QAChE;AAAA,MACF;AAAA,IAAA,CACD;AAAA,EACH;AAEA,SAAO,OAAO,YAAY,EAAE,KAAK,IAAI;AACvC;"}
1
+ {"version":3,"file":"security.mjs","sources":["../../src/middlewares/security.ts"],"sourcesContent":["import { defaultsDeep, merge } from 'lodash/fp';\nimport helmet, { KoaHelmet } from 'koa-helmet';\n\nimport type { Common } from '@strapi/types';\n\nexport type Config = NonNullable<Parameters<KoaHelmet>[0]>;\n\nconst defaults: Config = {\n crossOriginEmbedderPolicy: false,\n crossOriginOpenerPolicy: false,\n crossOriginResourcePolicy: false,\n originAgentCluster: false,\n contentSecurityPolicy: {\n useDefaults: true,\n directives: {\n 'connect-src': [\"'self'\", 'https:'],\n 'img-src': [\"'self'\", 'data:', 'blob:', 'https://market-assets.strapi.io'],\n 'media-src': [\"'self'\", 'data:', 'blob:'],\n upgradeInsecureRequests: null,\n },\n },\n xssFilter: false,\n hsts: {\n maxAge: 31536000,\n includeSubDomains: true,\n },\n frameguard: {\n action: 'sameorigin',\n },\n};\n\nexport const security: Common.MiddlewareFactory<Config> =\n (config, { strapi }) =>\n (ctx, next) => {\n let helmetConfig: Config = defaultsDeep(defaults, config);\n\n const specialPaths = ['/documentation'];\n\n const directives: {\n 'script-src': string[];\n 'img-src': string[];\n 'manifest-src': string[];\n 'frame-src': string[];\n } = {\n 'script-src': [\"'self'\", \"'unsafe-inline'\", 'cdn.jsdelivr.net'],\n 'img-src': [\"'self'\", 'data:', 'cdn.jsdelivr.net', 'strapi.io'],\n 'manifest-src': [],\n 'frame-src': [],\n };\n\n // if apollo graphql playground is enabled, add exceptions for it\n if (strapi.plugin('graphql')?.service('utils').playground.isEnabled()) {\n const { config: gqlConfig } = strapi.plugin('graphql');\n specialPaths.push(gqlConfig('endpoint'));\n\n directives['script-src'].push(`https: 'unsafe-inline'`);\n directives['img-src'].push(`'apollo-server-landing-page.cdn.apollographql.com'`);\n directives['manifest-src'].push(`'self'`);\n directives['manifest-src'].push('apollo-server-landing-page.cdn.apollographql.com');\n directives['frame-src'].push(`'self'`);\n directives['frame-src'].push('sandbox.embed.apollographql.com');\n }\n\n // TODO: we shouldn't combine playground exceptions with documentation for all routes, we should first check the path and then return exceptions specific to that\n if (ctx.method === 'GET' && specialPaths.some((str) => ctx.path.startsWith(str))) {\n helmetConfig = merge(helmetConfig, {\n crossOriginEmbedderPolicy: false, // TODO: only use this for graphql playground\n contentSecurityPolicy: {\n directives,\n },\n });\n }\n\n if (ctx.method === 'GET' && ['/admin'].some((str) => ctx.path.startsWith(str))) {\n helmetConfig = merge(helmetConfig, {\n contentSecurityPolicy: {\n directives: {\n 'script-src': [\"'self'\", \"'unsafe-inline'\"],\n 'connect-src': [\"'self'\", 'https:', 'ws:'],\n },\n },\n });\n }\n\n return helmet(helmetConfig)(ctx, next);\n };\n"],"names":[],"mappings":";;AAOA,MAAM,WAAmB;AAAA,EACvB,2BAA2B;AAAA,EAC3B,yBAAyB;AAAA,EACzB,2BAA2B;AAAA,EAC3B,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,IACrB,aAAa;AAAA,IACb,YAAY;AAAA,MACV,eAAe,CAAC,UAAU,QAAQ;AAAA,MAClC,WAAW,CAAC,UAAU,SAAS,SAAS,iCAAiC;AAAA,MACzE,aAAa,CAAC,UAAU,SAAS,OAAO;AAAA,MACxC,yBAAyB;AAAA,IAC3B;AAAA,EACF;AAAA,EACA,WAAW;AAAA,EACX,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,mBAAmB;AAAA,EACrB;AAAA,EACA,YAAY;AAAA,IACV,QAAQ;AAAA,EACV;AACF;AAEa,MAAA,WACX,CAAC,QAAQ,EAAE,aACX,CAAC,KAAK,SAAS;AACT,MAAA,eAAuB,aAAa,UAAU,MAAM;AAElD,QAAA,eAAe,CAAC,gBAAgB;AAEtC,QAAM,aAKF;AAAA,IACF,cAAc,CAAC,UAAU,mBAAmB,kBAAkB;AAAA,IAC9D,WAAW,CAAC,UAAU,SAAS,oBAAoB,WAAW;AAAA,IAC9D,gBAAgB,CAAC;AAAA,IACjB,aAAa,CAAC;AAAA,EAAA;AAIZ,MAAA,OAAO,OAAO,SAAS,GAAG,QAAQ,OAAO,EAAE,WAAW,aAAa;AACrE,UAAM,EAAE,QAAQ,UAAA,IAAc,OAAO,OAAO,SAAS;AACxC,iBAAA,KAAK,UAAU,UAAU,CAAC;AAE5B,eAAA,YAAY,EAAE,KAAK,wBAAwB;AAC3C,eAAA,SAAS,EAAE,KAAK,oDAAoD;AACpE,eAAA,cAAc,EAAE,KAAK,QAAQ;AAC7B,eAAA,cAAc,EAAE,KAAK,kDAAkD;AACvE,eAAA,WAAW,EAAE,KAAK,QAAQ;AAC1B,eAAA,WAAW,EAAE,KAAK,iCAAiC;AAAA,EAChE;AAGA,MAAI,IAAI,WAAW,SAAS,aAAa,KAAK,CAAC,QAAQ,IAAI,KAAK,WAAW,GAAG,CAAC,GAAG;AAChF,mBAAe,MAAM,cAAc;AAAA,MACjC,2BAA2B;AAAA;AAAA,MAC3B,uBAAuB;AAAA,QACrB;AAAA,MACF;AAAA,IAAA,CACD;AAAA,EACH;AAEA,MAAI,IAAI,WAAW,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK,WAAW,GAAG,CAAC,GAAG;AAC9E,mBAAe,MAAM,cAAc;AAAA,MACjC,uBAAuB;AAAA,QACrB,YAAY;AAAA,UACV,cAAc,CAAC,UAAU,iBAAiB;AAAA,UAC1C,eAAe,CAAC,UAAU,UAAU,KAAK;AAAA,QAC3C;AAAA,MACF;AAAA,IAAA,CACD;AAAA,EACH;AAEA,SAAO,OAAO,YAAY,EAAE,KAAK,IAAI;AACvC;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apis.d.ts","sourceRoot":"","sources":["../../src/registries/apis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,QAAA,MAAM,YAAY,WAAY,MAAM;cAItB,MAAM;;iBAMH,MAAM,aAAa,OAAO;CAY1C,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apis.js","sources":["../../src/registries/apis.ts"],"sourcesContent":["import { has } from 'lodash/fp';\nimport type { Strapi } from '@strapi/types';\n\nconst apisRegistry = (strapi: Strapi) => {\n const apis: Record<string, unknown> = {};\n\n return {\n get(name: string) {\n return apis[name];\n },\n getAll() {\n return apis;\n },\n add(apiName: string, apiConfig: unknown) {\n if (has(apiName, apis)) {\n throw new Error(`API ${apiName} has already been registered.`);\n }\n\n const api = strapi.get('modules').add(`api::${apiName}`, apiConfig);\n\n apis[apiName] = api;\n\n return apis[apiName];\n },\n };\n};\n\nexport default apisRegistry;\n"],"names":["has"],"mappings":";;AAGM,MAAA,eAAe,CAAC,WAAmB;AACvC,QAAM,OAAgC,CAAA;AAE/B,SAAA;AAAA,IACL,IAAI,MAAc;AAChB,aAAO,KAAK,IAAI;AAAA,IAClB;AAAA,IACA,SAAS;AACA,aAAA;AAAA,IACT;AAAA,IACA,IAAI,SAAiB,WAAoB;AACnC,UAAAA,EAAA,IAAI,SAAS,IAAI,GAAG;AACtB,cAAM,IAAI,MAAM,OAAO,OAAO,+BAA+B;AAAA,MAC/D;AAEM,YAAA,MAAM,OAAO,IAAI,SAAS,EAAE,IAAI,QAAQ,OAAO,IAAI,SAAS;AAElE,WAAK,OAAO,IAAI;AAEhB,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,EAAA;AAEJ;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apis.mjs","sources":["../../src/registries/apis.ts"],"sourcesContent":["import { has } from 'lodash/fp';\nimport type { Strapi } from '@strapi/types';\n\nconst apisRegistry = (strapi: Strapi) => {\n const apis: Record<string, unknown> = {};\n\n return {\n get(name: string) {\n return apis[name];\n },\n getAll() {\n return apis;\n },\n add(apiName: string, apiConfig: unknown) {\n if (has(apiName, apis)) {\n throw new Error(`API ${apiName} has already been registered.`);\n }\n\n const api = strapi.get('modules').add(`api::${apiName}`, apiConfig);\n\n apis[apiName] = api;\n\n return apis[apiName];\n },\n };\n};\n\nexport default apisRegistry;\n"],"names":[],"mappings":";AAGM,MAAA,eAAe,CAAC,WAAmB;AACvC,QAAM,OAAgC,CAAA;AAE/B,SAAA;AAAA,IACL,IAAI,MAAc;AAChB,aAAO,KAAK,IAAI;AAAA,IAClB;AAAA,IACA,SAAS;AACA,aAAA;AAAA,IACT;AAAA,IACA,IAAI,SAAiB,WAAoB;AACnC,UAAA,IAAI,SAAS,IAAI,GAAG;AACtB,cAAM,IAAI,MAAM,OAAO,OAAO,+BAA+B;AAAA,MAC/D;AAEM,YAAA,MAAM,OAAO,IAAI,SAAS,EAAE,IAAI,QAAQ,OAAO,IAAI,SAAS;AAElE,WAAK,OAAO,IAAI;AAEhB,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,EAAA;AAEJ;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/registries/components.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEpD,QAAA,MAAM,kBAAkB;IAIpB;;OAEG;YACK,OAAO,GAAG,CAAC,SAAS,EAAE;IAI9B;;OAEG;aACM,OAAO,GAAG,CAAC,SAAS;IAI7B;;OAEG;;IAKH;;OAEG;aACM,OAAO,GAAG,CAAC,SAAS,aAAa,OAAO,SAAS;IAU1D;;OAEG;uBACgB,OAAO,OAAO,GAAG,CAAC,SAAS,EAAE,OAAO,SAAS,CAAC;CAMpE,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.js","sources":["../../src/registries/components.ts"],"sourcesContent":["import { has } from 'lodash/fp';\nimport type { Common, Schema } from '@strapi/types';\n\nconst componentsRegistry = () => {\n const components: Record<Common.UID.Component, Schema.Component> = {};\n\n return {\n /**\n * Returns this list of registered components uids\n */\n keys(): Common.UID.Component[] {\n return Object.keys(components) as Common.UID.Component[];\n },\n\n /**\n * Returns the instance of a component. Instantiate the component if not already done\n */\n get(uid: Common.UID.Component) {\n return components[uid];\n },\n\n /**\n * Returns a map with all the components in a namespace\n */\n getAll() {\n return components;\n },\n\n /**\n * Registers a component\n */\n set(uid: Common.UID.Component, component: Schema.Component) {\n if (has(uid, components)) {\n throw new Error(`Component ${uid} has already been registered.`);\n }\n\n components[uid] = component;\n\n return this;\n },\n\n /**\n * Registers a map of components for a specific namespace\n */\n add(newComponents: Record<Common.UID.Component, Schema.Component>) {\n for (const uid of Object.keys(newComponents) as Common.UID.Component[]) {\n this.set(uid, newComponents[uid]);\n }\n },\n };\n};\n\nexport default componentsRegistry;\n"],"names":["has"],"mappings":";;AAGA,MAAM,qBAAqB,MAAM;AAC/B,QAAM,aAA6D,CAAA;AAE5D,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAA+B;AACtB,aAAA,OAAO,KAAK,UAAU;AAAA,IAC/B;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAA2B;AAC7B,aAAO,WAAW,GAAG;AAAA,IACvB;AAAA;AAAA;AAAA;AAAA,IAKA,SAAS;AACA,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAA2B,WAA6B;AACtD,UAAAA,EAAA,IAAI,KAAK,UAAU,GAAG;AACxB,cAAM,IAAI,MAAM,aAAa,GAAG,+BAA+B;AAAA,MACjE;AAEA,iBAAW,GAAG,IAAI;AAEX,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,eAA+D;AACjE,iBAAW,OAAO,OAAO,KAAK,aAAa,GAA6B;AACtE,aAAK,IAAI,KAAK,cAAc,GAAG,CAAC;AAAA,MAClC;AAAA,IACF;AAAA,EAAA;AAEJ;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.mjs","sources":["../../src/registries/components.ts"],"sourcesContent":["import { has } from 'lodash/fp';\nimport type { Common, Schema } from '@strapi/types';\n\nconst componentsRegistry = () => {\n const components: Record<Common.UID.Component, Schema.Component> = {};\n\n return {\n /**\n * Returns this list of registered components uids\n */\n keys(): Common.UID.Component[] {\n return Object.keys(components) as Common.UID.Component[];\n },\n\n /**\n * Returns the instance of a component. Instantiate the component if not already done\n */\n get(uid: Common.UID.Component) {\n return components[uid];\n },\n\n /**\n * Returns a map with all the components in a namespace\n */\n getAll() {\n return components;\n },\n\n /**\n * Registers a component\n */\n set(uid: Common.UID.Component, component: Schema.Component) {\n if (has(uid, components)) {\n throw new Error(`Component ${uid} has already been registered.`);\n }\n\n components[uid] = component;\n\n return this;\n },\n\n /**\n * Registers a map of components for a specific namespace\n */\n add(newComponents: Record<Common.UID.Component, Schema.Component>) {\n for (const uid of Object.keys(newComponents) as Common.UID.Component[]) {\n this.set(uid, newComponents[uid]);\n }\n },\n };\n};\n\nexport default componentsRegistry;\n"],"names":[],"mappings":";AAGA,MAAM,qBAAqB,MAAM;AAC/B,QAAM,aAA6D,CAAA;AAE5D,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAA+B;AACtB,aAAA,OAAO,KAAK,UAAU;AAAA,IAC/B;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAA2B;AAC7B,aAAO,WAAW,GAAG;AAAA,IACvB;AAAA;AAAA;AAAA;AAAA,IAKA,SAAS;AACA,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAA2B,WAA6B;AACtD,UAAA,IAAI,KAAK,UAAU,GAAG;AACxB,cAAM,IAAI,MAAM,aAAa,GAAG,+BAA+B;AAAA,MACjE;AAEA,iBAAW,GAAG,IAAI;AAEX,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,eAA+D;AACjE,iBAAW,OAAO,OAAO,KAAK,aAAa,GAA6B;AACtE,aAAK,IAAI,KAAK,cAAc,GAAG,CAAC;AAAA,MAClC;AAAA,IACF;AAAA,EAAA;AAEJ;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/registries/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;gDAKf,cAAc;AAAnD,wBAgBE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sources":["../../src/registries/config.ts"],"sourcesContent":["import type { ConfigProvider } from '@strapi/types';\nimport _, { PropertyName } from 'lodash';\n\ntype Config = Record<string, unknown>;\n\nexport default (initialConfig = {}): ConfigProvider => {\n const _config: Config = { ...initialConfig }; // not deep clone because it would break some config\n\n return {\n ..._config, // TODO: to remove\n get(path: PropertyName, defaultValue?: unknown) {\n return _.get(_config, path, defaultValue);\n },\n set(path: PropertyName, val: unknown) {\n _.set(_config, path, val);\n return this;\n },\n has(path: PropertyName) {\n return _.has(_config, path);\n },\n };\n};\n"],"names":["_"],"mappings":";;;;AAKA,MAAA,SAAe,CAAC,gBAAgB,CAAA,MAAuB;AAC/C,QAAA,UAAkB,EAAE,GAAG;AAEtB,SAAA;AAAA,IACL,GAAG;AAAA;AAAA,IACH,IAAI,MAAoB,cAAwB;AAC9C,aAAOA,WAAE,QAAA,IAAI,SAAS,MAAM,YAAY;AAAA,IAC1C;AAAA,IACA,IAAI,MAAoB,KAAc;AAClCA,iBAAAA,QAAA,IAAI,SAAS,MAAM,GAAG;AACjB,aAAA;AAAA,IACT;AAAA,IACA,IAAI,MAAoB;AACf,aAAAA,mBAAE,IAAI,SAAS,IAAI;AAAA,IAC5B;AAAA,EAAA;AAEJ;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.mjs","sources":["../../src/registries/config.ts"],"sourcesContent":["import type { ConfigProvider } from '@strapi/types';\nimport _, { PropertyName } from 'lodash';\n\ntype Config = Record<string, unknown>;\n\nexport default (initialConfig = {}): ConfigProvider => {\n const _config: Config = { ...initialConfig }; // not deep clone because it would break some config\n\n return {\n ..._config, // TODO: to remove\n get(path: PropertyName, defaultValue?: unknown) {\n return _.get(_config, path, defaultValue);\n },\n set(path: PropertyName, val: unknown) {\n _.set(_config, path, val);\n return this;\n },\n has(path: PropertyName) {\n return _.has(_config, path);\n },\n };\n};\n"],"names":[],"mappings":";AAKA,MAAA,SAAe,CAAC,gBAAgB,CAAA,MAAuB;AAC/C,QAAA,UAAkB,EAAE,GAAG;AAEtB,SAAA;AAAA,IACL,GAAG;AAAA;AAAA,IACH,IAAI,MAAoB,cAAwB;AAC9C,aAAO,EAAE,IAAI,SAAS,MAAM,YAAY;AAAA,IAC1C;AAAA,IACA,IAAI,MAAoB,KAAc;AAClC,QAAA,IAAI,SAAS,MAAM,GAAG;AACjB,aAAA;AAAA,IACT;AAAA,IACA,IAAI,MAAoB;AACf,aAAA,EAAE,IAAI,SAAS,IAAI;AAAA,IAC5B;AAAA,EAAA;AAEJ;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-types.d.ts","sourceRoot":"","sources":["../../src/registries/content-types.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAqB,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAGlF,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAC/D,KAAK,mBAAmB,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW,CAAC;AAcnF,QAAA,MAAM,oBAAoB;IAItB;;OAEG;;IAKH;;OAEG;aACM,OAAO,GAAG,CAAC,WAAW;IAI/B;;OAEG;sBACe,MAAM;IAIxB;;OAEG;aACM,OAAO,GAAG,CAAC,WAAW,eAAe,OAAO,WAAW;IAKhE;;OAEG;mBACY,MAAM,mBAAmB,iBAAiB;IAczD;;OAEG;kBACW,OAAO,GAAG,CAAC,WAAW,YAAY,mBAAmB;CAYtE,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const _ = require("lodash/fp");
3
3
  const index = require("../domain/content-type/index.js");
4
- const utils = require("../utils.js");
4
+ const namespace = require("./namespace.js");
5
5
  const validateKeySameToSingularName = (contentTypes) => {
6
6
  for (const ctName of Object.keys(contentTypes)) {
7
7
  const contentType = contentTypes[ctName];
@@ -30,8 +30,8 @@ const contentTypesRegistry = () => {
30
30
  /**
31
31
  * Returns a map with all the contentTypes in a namespace
32
32
  */
33
- getAll(namespace) {
34
- return _.pickBy((_2, uid) => utils.hasNamespace(uid, namespace))(contentTypes);
33
+ getAll(namespace$1) {
34
+ return _.pickBy((_2, uid) => namespace.hasNamespace(uid, namespace$1))(contentTypes);
35
35
  },
36
36
  /**
37
37
  * Registers a contentType
@@ -43,10 +43,10 @@ const contentTypesRegistry = () => {
43
43
  /**
44
44
  * Registers a map of contentTypes for a specific namespace
45
45
  */
46
- add(namespace, newContentTypes) {
46
+ add(namespace$1, newContentTypes) {
47
47
  validateKeySameToSingularName(newContentTypes);
48
48
  for (const rawCtName of Object.keys(newContentTypes)) {
49
- const uid = utils.addNamespace(rawCtName, namespace);
49
+ const uid = namespace.addNamespace(rawCtName, namespace$1);
50
50
  if (_.has(uid, contentTypes)) {
51
51
  throw new Error(`Content-type ${uid} has already been registered.`);
52
52
  }
@@ -61,8 +61,7 @@ const contentTypesRegistry = () => {
61
61
  if (!currentContentType) {
62
62
  throw new Error(`Content-Type ${ctUID} doesn't exist`);
63
63
  }
64
- const newContentType = extendFn(currentContentType);
65
- contentTypes[ctUID] = newContentType;
64
+ extendFn(currentContentType);
66
65
  return this;
67
66
  }
68
67
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-types.js","sources":["../../src/registries/content-types.ts"],"sourcesContent":["import { pickBy, has } from 'lodash/fp';\nimport type { Common, Schema } from '@strapi/types';\nimport { createContentType, ContentTypeDefinition } from '../domain/content-type';\nimport { addNamespace, hasNamespace } from './namespace';\n\ntype ContentTypesInput = Record<string, ContentTypeDefinition>;\ntype ContentTypeExtendFn = (contentType: Schema.ContentType) => Schema.ContentType;\n\nconst validateKeySameToSingularName = (contentTypes: ContentTypesInput) => {\n for (const ctName of Object.keys(contentTypes)) {\n const contentType = contentTypes[ctName];\n\n if (ctName !== contentType.schema.info.singularName) {\n throw new Error(\n `The key of the content-type should be the same as its singularName. Found ${ctName} and ${contentType.schema.info.singularName}.`\n );\n }\n }\n};\n\nconst contentTypesRegistry = () => {\n const contentTypes: Record<string, Schema.ContentType> = {};\n\n return {\n /**\n * Returns this list of registered contentTypes uids\n */\n keys() {\n return Object.keys(contentTypes);\n },\n\n /**\n * Returns the instance of a contentType. Instantiate the contentType if not already done\n */\n get(uid: Common.UID.ContentType) {\n return contentTypes[uid];\n },\n\n /**\n * Returns a map with all the contentTypes in a namespace\n */\n getAll(namespace: string) {\n return pickBy((_, uid) => hasNamespace(uid, namespace))(contentTypes);\n },\n\n /**\n * Registers a contentType\n */\n set(uid: Common.UID.ContentType, contentType: Schema.ContentType) {\n contentTypes[uid] = contentType;\n return this;\n },\n\n /**\n * Registers a map of contentTypes for a specific namespace\n */\n add(namespace: string, newContentTypes: ContentTypesInput) {\n validateKeySameToSingularName(newContentTypes);\n\n for (const rawCtName of Object.keys(newContentTypes)) {\n const uid = addNamespace(rawCtName, namespace);\n\n if (has(uid, contentTypes)) {\n throw new Error(`Content-type ${uid} has already been registered.`);\n }\n\n contentTypes[uid] = createContentType(uid, newContentTypes[rawCtName]);\n }\n },\n\n /**\n * Wraps a contentType to extend it\n */\n extend(ctUID: Common.UID.ContentType, extendFn: ContentTypeExtendFn) {\n const currentContentType = this.get(ctUID);\n\n if (!currentContentType) {\n throw new Error(`Content-Type ${ctUID} doesn't exist`);\n }\n\n extendFn(currentContentType);\n\n return this;\n },\n };\n};\n\nexport default contentTypesRegistry;\n"],"names":["namespace","pickBy","_","hasNamespace","addNamespace","has","createContentType"],"mappings":";;;;AAQA,MAAM,gCAAgC,CAAC,iBAAoC;AACzE,aAAW,UAAU,OAAO,KAAK,YAAY,GAAG;AACxC,UAAA,cAAc,aAAa,MAAM;AAEvC,QAAI,WAAW,YAAY,OAAO,KAAK,cAAc;AACnD,YAAM,IAAI;AAAA,QACR,6EAA6E,MAAM,QAAQ,YAAY,OAAO,KAAK,YAAY;AAAA,MAAA;AAAA,IAEnI;AAAA,EACF;AACF;AAEA,MAAM,uBAAuB,MAAM;AACjC,QAAM,eAAmD,CAAA;AAElD,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AACE,aAAA,OAAO,KAAK,YAAY;AAAA,IACjC;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAA6B;AAC/B,aAAO,aAAa,GAAG;AAAA,IACzB;AAAA;AAAA;AAAA;AAAA,IAKA,OAAOA,aAAmB;AACjB,aAAAC,EAAA,OAAO,CAACC,IAAG,QAAQC,UAAAA,aAAa,KAAKH,WAAS,CAAC,EAAE,YAAY;AAAA,IACtE;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAA6B,aAAiC;AAChE,mBAAa,GAAG,IAAI;AACb,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAIA,aAAmB,iBAAoC;AACzD,oCAA8B,eAAe;AAE7C,iBAAW,aAAa,OAAO,KAAK,eAAe,GAAG;AAC9C,cAAA,MAAMI,UAAAA,aAAa,WAAWJ,WAAS;AAEzC,YAAAK,EAAA,IAAI,KAAK,YAAY,GAAG;AAC1B,gBAAM,IAAI,MAAM,gBAAgB,GAAG,+BAA+B;AAAA,QACpE;AAEA,qBAAa,GAAG,IAAIC,MAAA,kBAAkB,KAAK,gBAAgB,SAAS,CAAC;AAAA,MACvE;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,OAA+B,UAA+B;AAC7D,YAAA,qBAAqB,KAAK,IAAI,KAAK;AAEzC,UAAI,CAAC,oBAAoB;AACvB,cAAM,IAAI,MAAM,gBAAgB,KAAK,gBAAgB;AAAA,MACvD;AAEA,eAAS,kBAAkB;AAEpB,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;;"}