@strapi/core 0.0.0-experimental.d834c9e658d1fb037e6da1105150593521c667cc → 0.0.0-experimental.d8805ae8d0468d71054f34c9f56aff66698f1922

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (733) hide show
  1. package/dist/Strapi.d.ts.map +1 -1
  2. package/dist/Strapi.js +427 -403
  3. package/dist/Strapi.js.map +1 -1
  4. package/dist/Strapi.mjs +426 -402
  5. package/dist/Strapi.mjs.map +1 -1
  6. package/dist/compile.js +23 -14
  7. package/dist/compile.js.map +1 -1
  8. package/dist/compile.mjs +22 -14
  9. package/dist/compile.mjs.map +1 -1
  10. package/dist/configuration/config-loader.js +110 -97
  11. package/dist/configuration/config-loader.js.map +1 -1
  12. package/dist/configuration/config-loader.mjs +109 -96
  13. package/dist/configuration/config-loader.mjs.map +1 -1
  14. package/dist/configuration/get-dirs.js +31 -29
  15. package/dist/configuration/get-dirs.js.map +1 -1
  16. package/dist/configuration/get-dirs.mjs +30 -30
  17. package/dist/configuration/get-dirs.mjs.map +1 -1
  18. package/dist/configuration/index.d.ts +1 -0
  19. package/dist/configuration/index.d.ts.map +1 -1
  20. package/dist/configuration/index.js +85 -73
  21. package/dist/configuration/index.js.map +1 -1
  22. package/dist/configuration/index.mjs +84 -69
  23. package/dist/configuration/index.mjs.map +1 -1
  24. package/dist/configuration/urls.d.ts.map +1 -1
  25. package/dist/configuration/urls.js +74 -61
  26. package/dist/configuration/urls.js.map +1 -1
  27. package/dist/configuration/urls.mjs +73 -62
  28. package/dist/configuration/urls.mjs.map +1 -1
  29. package/dist/container.js +27 -23
  30. package/dist/container.js.map +1 -1
  31. package/dist/container.mjs +26 -24
  32. package/dist/container.mjs.map +1 -1
  33. package/dist/core-api/controller/collection-type.js +77 -76
  34. package/dist/core-api/controller/collection-type.js.map +1 -1
  35. package/dist/core-api/controller/collection-type.mjs +76 -77
  36. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  37. package/dist/core-api/controller/index.js +63 -48
  38. package/dist/core-api/controller/index.js.map +1 -1
  39. package/dist/core-api/controller/index.mjs +62 -49
  40. package/dist/core-api/controller/index.mjs.map +1 -1
  41. package/dist/core-api/controller/single-type.js +41 -40
  42. package/dist/core-api/controller/single-type.js.map +1 -1
  43. package/dist/core-api/controller/single-type.mjs +40 -41
  44. package/dist/core-api/controller/single-type.mjs.map +1 -1
  45. package/dist/core-api/controller/transform.js +72 -63
  46. package/dist/core-api/controller/transform.js.map +1 -1
  47. package/dist/core-api/controller/transform.mjs +71 -64
  48. package/dist/core-api/controller/transform.mjs.map +1 -1
  49. package/dist/core-api/routes/index.js +64 -62
  50. package/dist/core-api/routes/index.js.map +1 -1
  51. package/dist/core-api/routes/index.mjs +62 -62
  52. package/dist/core-api/routes/index.mjs.map +1 -1
  53. package/dist/core-api/service/collection-type.d.ts +2 -2
  54. package/dist/core-api/service/collection-type.js +73 -60
  55. package/dist/core-api/service/collection-type.js.map +1 -1
  56. package/dist/core-api/service/collection-type.mjs +72 -62
  57. package/dist/core-api/service/collection-type.mjs.map +1 -1
  58. package/dist/core-api/service/core-service.js +9 -8
  59. package/dist/core-api/service/core-service.js.map +1 -1
  60. package/dist/core-api/service/core-service.mjs +8 -9
  61. package/dist/core-api/service/core-service.mjs.map +1 -1
  62. package/dist/core-api/service/index.js +13 -13
  63. package/dist/core-api/service/index.js.map +1 -1
  64. package/dist/core-api/service/index.mjs +12 -14
  65. package/dist/core-api/service/index.mjs.map +1 -1
  66. package/dist/core-api/service/pagination.js +69 -43
  67. package/dist/core-api/service/pagination.js.map +1 -1
  68. package/dist/core-api/service/pagination.mjs +68 -47
  69. package/dist/core-api/service/pagination.mjs.map +1 -1
  70. package/dist/core-api/service/single-type.js +43 -39
  71. package/dist/core-api/service/single-type.js.map +1 -1
  72. package/dist/core-api/service/single-type.mjs +42 -41
  73. package/dist/core-api/service/single-type.mjs.map +1 -1
  74. package/dist/domain/content-type/index.js +95 -100
  75. package/dist/domain/content-type/index.js.map +1 -1
  76. package/dist/domain/content-type/index.mjs +94 -100
  77. package/dist/domain/content-type/index.mjs.map +1 -1
  78. package/dist/domain/content-type/validator.js +84 -69
  79. package/dist/domain/content-type/validator.js.map +1 -1
  80. package/dist/domain/content-type/validator.mjs +83 -68
  81. package/dist/domain/content-type/validator.mjs.map +1 -1
  82. package/dist/domain/module/index.js +109 -100
  83. package/dist/domain/module/index.js.map +1 -1
  84. package/dist/domain/module/index.mjs +108 -99
  85. package/dist/domain/module/index.mjs.map +1 -1
  86. package/dist/domain/module/validation.js +25 -20
  87. package/dist/domain/module/validation.js.map +1 -1
  88. package/dist/domain/module/validation.mjs +24 -21
  89. package/dist/domain/module/validation.mjs.map +1 -1
  90. package/dist/ee/index.d.ts +1 -0
  91. package/dist/ee/index.d.ts.map +1 -1
  92. package/dist/ee/index.js +171 -132
  93. package/dist/ee/index.js.map +1 -1
  94. package/dist/ee/index.mjs +170 -134
  95. package/dist/ee/index.mjs.map +1 -1
  96. package/dist/ee/license.d.ts.map +1 -1
  97. package/dist/ee/license.js +100 -75
  98. package/dist/ee/license.js.map +1 -1
  99. package/dist/ee/license.mjs +99 -76
  100. package/dist/ee/license.mjs.map +1 -1
  101. package/dist/factories.js +72 -67
  102. package/dist/factories.js.map +1 -1
  103. package/dist/factories.mjs +71 -71
  104. package/dist/factories.mjs.map +1 -1
  105. package/dist/index.js +29 -26
  106. package/dist/index.js.map +1 -1
  107. package/dist/index.mjs +29 -29
  108. package/dist/index.mjs.map +1 -1
  109. package/dist/loaders/admin.d.ts.map +1 -1
  110. package/dist/loaders/admin.js +21 -20
  111. package/dist/loaders/admin.js.map +1 -1
  112. package/dist/loaders/admin.mjs +20 -20
  113. package/dist/loaders/admin.mjs.map +1 -1
  114. package/dist/loaders/apis.js +143 -120
  115. package/dist/loaders/apis.js.map +1 -1
  116. package/dist/loaders/apis.mjs +142 -119
  117. package/dist/loaders/apis.mjs.map +1 -1
  118. package/dist/loaders/components.js +33 -34
  119. package/dist/loaders/components.js.map +1 -1
  120. package/dist/loaders/components.mjs +32 -34
  121. package/dist/loaders/components.mjs.map +1 -1
  122. package/dist/loaders/index.js +22 -20
  123. package/dist/loaders/index.js.map +1 -1
  124. package/dist/loaders/index.mjs +21 -21
  125. package/dist/loaders/index.mjs.map +1 -1
  126. package/dist/loaders/middlewares.js +29 -25
  127. package/dist/loaders/middlewares.js.map +1 -1
  128. package/dist/loaders/middlewares.mjs +28 -25
  129. package/dist/loaders/middlewares.mjs.map +1 -1
  130. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  131. package/dist/loaders/plugins/get-enabled-plugins.js +125 -127
  132. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  133. package/dist/loaders/plugins/get-enabled-plugins.mjs +124 -104
  134. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  135. package/dist/loaders/plugins/get-user-plugins-config.js +25 -24
  136. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  137. package/dist/loaders/plugins/get-user-plugins-config.mjs +24 -23
  138. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  139. package/dist/loaders/plugins/index.d.ts.map +1 -1
  140. package/dist/loaders/plugins/index.js +141 -104
  141. package/dist/loaders/plugins/index.js.map +1 -1
  142. package/dist/loaders/plugins/index.mjs +121 -104
  143. package/dist/loaders/plugins/index.mjs.map +1 -1
  144. package/dist/loaders/policies.js +24 -20
  145. package/dist/loaders/policies.js.map +1 -1
  146. package/dist/loaders/policies.mjs +23 -20
  147. package/dist/loaders/policies.mjs.map +1 -1
  148. package/dist/loaders/sanitizers.js +10 -4
  149. package/dist/loaders/sanitizers.js.map +1 -1
  150. package/dist/loaders/sanitizers.mjs +9 -6
  151. package/dist/loaders/sanitizers.mjs.map +1 -1
  152. package/dist/loaders/src-index.js +35 -27
  153. package/dist/loaders/src-index.js.map +1 -1
  154. package/dist/loaders/src-index.mjs +34 -29
  155. package/dist/loaders/src-index.mjs.map +1 -1
  156. package/dist/loaders/validators.js +9 -4
  157. package/dist/loaders/validators.js.map +1 -1
  158. package/dist/loaders/validators.mjs +8 -6
  159. package/dist/loaders/validators.mjs.map +1 -1
  160. package/dist/middlewares/body.d.ts.map +1 -1
  161. package/dist/middlewares/body.js +58 -54
  162. package/dist/middlewares/body.js.map +1 -1
  163. package/dist/middlewares/body.mjs +57 -51
  164. package/dist/middlewares/body.mjs.map +1 -1
  165. package/dist/middlewares/compression.js +6 -6
  166. package/dist/middlewares/compression.js.map +1 -1
  167. package/dist/middlewares/compression.mjs +5 -5
  168. package/dist/middlewares/compression.mjs.map +1 -1
  169. package/dist/middlewares/cors.js +59 -48
  170. package/dist/middlewares/cors.js.map +1 -1
  171. package/dist/middlewares/cors.mjs +58 -47
  172. package/dist/middlewares/cors.mjs.map +1 -1
  173. package/dist/middlewares/errors.js +32 -30
  174. package/dist/middlewares/errors.js.map +1 -1
  175. package/dist/middlewares/errors.mjs +31 -31
  176. package/dist/middlewares/errors.mjs.map +1 -1
  177. package/dist/middlewares/favicon.js +27 -17
  178. package/dist/middlewares/favicon.js.map +1 -1
  179. package/dist/middlewares/favicon.mjs +26 -16
  180. package/dist/middlewares/favicon.mjs.map +1 -1
  181. package/dist/middlewares/index.js +32 -30
  182. package/dist/middlewares/index.js.map +1 -1
  183. package/dist/middlewares/index.mjs +31 -31
  184. package/dist/middlewares/index.mjs.map +1 -1
  185. package/dist/middlewares/ip.js +6 -6
  186. package/dist/middlewares/ip.js.map +1 -1
  187. package/dist/middlewares/ip.mjs +5 -5
  188. package/dist/middlewares/ip.mjs.map +1 -1
  189. package/dist/middlewares/logger.js +10 -9
  190. package/dist/middlewares/logger.js.map +1 -1
  191. package/dist/middlewares/logger.mjs +9 -10
  192. package/dist/middlewares/logger.mjs.map +1 -1
  193. package/dist/middlewares/powered-by.js +13 -9
  194. package/dist/middlewares/powered-by.js.map +1 -1
  195. package/dist/middlewares/powered-by.mjs +12 -10
  196. package/dist/middlewares/powered-by.mjs.map +1 -1
  197. package/dist/middlewares/public.js +33 -29
  198. package/dist/middlewares/public.js.map +1 -1
  199. package/dist/middlewares/public.mjs +32 -28
  200. package/dist/middlewares/public.mjs.map +1 -1
  201. package/dist/middlewares/query.js +35 -32
  202. package/dist/middlewares/query.js.map +1 -1
  203. package/dist/middlewares/query.mjs +34 -31
  204. package/dist/middlewares/query.mjs.map +1 -1
  205. package/dist/middlewares/response-time.js +10 -9
  206. package/dist/middlewares/response-time.js.map +1 -1
  207. package/dist/middlewares/response-time.mjs +9 -10
  208. package/dist/middlewares/response-time.mjs.map +1 -1
  209. package/dist/middlewares/responses.js +14 -12
  210. package/dist/middlewares/responses.js.map +1 -1
  211. package/dist/middlewares/responses.mjs +13 -13
  212. package/dist/middlewares/responses.mjs.map +1 -1
  213. package/dist/middlewares/security.d.ts.map +1 -1
  214. package/dist/middlewares/security.js +109 -71
  215. package/dist/middlewares/security.js.map +1 -1
  216. package/dist/middlewares/security.mjs +108 -70
  217. package/dist/middlewares/security.mjs.map +1 -1
  218. package/dist/middlewares/session.js +26 -25
  219. package/dist/middlewares/session.js.map +1 -1
  220. package/dist/middlewares/session.mjs +25 -24
  221. package/dist/middlewares/session.mjs.map +1 -1
  222. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +14 -11
  223. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  224. package/dist/migrations/database/5.0.0-discard-drafts.js +153 -35
  225. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
  226. package/dist/migrations/database/5.0.0-discard-drafts.mjs +152 -37
  227. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
  228. package/dist/migrations/draft-publish.d.ts +2 -2
  229. package/dist/migrations/draft-publish.d.ts.map +1 -1
  230. package/dist/migrations/draft-publish.js +61 -34
  231. package/dist/migrations/draft-publish.js.map +1 -1
  232. package/dist/migrations/draft-publish.mjs +60 -36
  233. package/dist/migrations/draft-publish.mjs.map +1 -1
  234. package/dist/migrations/i18n.d.ts +5 -0
  235. package/dist/migrations/i18n.d.ts.map +1 -0
  236. package/dist/migrations/i18n.js +71 -0
  237. package/dist/migrations/i18n.js.map +1 -0
  238. package/dist/migrations/i18n.mjs +68 -0
  239. package/dist/migrations/i18n.mjs.map +1 -0
  240. package/dist/migrations/index.d.ts +5 -0
  241. package/dist/migrations/index.d.ts.map +1 -0
  242. package/dist/migrations/index.js +29 -0
  243. package/dist/migrations/index.js.map +1 -0
  244. package/dist/migrations/index.mjs +26 -0
  245. package/dist/migrations/index.mjs.map +1 -0
  246. package/dist/package.json.js +182 -0
  247. package/dist/package.json.js.map +1 -0
  248. package/dist/package.json.mjs +159 -0
  249. package/dist/package.json.mjs.map +1 -0
  250. package/dist/providers/admin.d.ts.map +1 -1
  251. package/dist/providers/admin.js +27 -17
  252. package/dist/providers/admin.js.map +1 -1
  253. package/dist/providers/admin.mjs +26 -19
  254. package/dist/providers/admin.mjs.map +1 -1
  255. package/dist/providers/coreStore.js +13 -8
  256. package/dist/providers/coreStore.js.map +1 -1
  257. package/dist/providers/coreStore.mjs +12 -10
  258. package/dist/providers/coreStore.mjs.map +1 -1
  259. package/dist/providers/cron.js +19 -16
  260. package/dist/providers/cron.js.map +1 -1
  261. package/dist/providers/cron.mjs +18 -18
  262. package/dist/providers/cron.mjs.map +1 -1
  263. package/dist/providers/index.js +18 -9
  264. package/dist/providers/index.js.map +1 -1
  265. package/dist/providers/index.mjs +17 -10
  266. package/dist/providers/index.mjs.map +1 -1
  267. package/dist/providers/provider.js +4 -3
  268. package/dist/providers/provider.js.map +1 -1
  269. package/dist/providers/provider.mjs +3 -4
  270. package/dist/providers/provider.mjs.map +1 -1
  271. package/dist/providers/registries.js +37 -32
  272. package/dist/providers/registries.js.map +1 -1
  273. package/dist/providers/registries.mjs +36 -34
  274. package/dist/providers/registries.mjs.map +1 -1
  275. package/dist/providers/telemetry.js +19 -16
  276. package/dist/providers/telemetry.js.map +1 -1
  277. package/dist/providers/telemetry.mjs +18 -18
  278. package/dist/providers/telemetry.mjs.map +1 -1
  279. package/dist/providers/webhooks.js +28 -26
  280. package/dist/providers/webhooks.js.map +1 -1
  281. package/dist/providers/webhooks.mjs +27 -28
  282. package/dist/providers/webhooks.mjs.map +1 -1
  283. package/dist/registries/apis.js +23 -20
  284. package/dist/registries/apis.js.map +1 -1
  285. package/dist/registries/apis.mjs +22 -22
  286. package/dist/registries/apis.mjs.map +1 -1
  287. package/dist/registries/components.js +35 -37
  288. package/dist/registries/components.js.map +1 -1
  289. package/dist/registries/components.mjs +34 -39
  290. package/dist/registries/components.mjs.map +1 -1
  291. package/dist/registries/content-types.js +54 -59
  292. package/dist/registries/content-types.js.map +1 -1
  293. package/dist/registries/content-types.mjs +53 -61
  294. package/dist/registries/content-types.mjs.map +1 -1
  295. package/dist/registries/controllers.js +70 -71
  296. package/dist/registries/controllers.js.map +1 -1
  297. package/dist/registries/controllers.mjs +69 -73
  298. package/dist/registries/controllers.mjs.map +1 -1
  299. package/dist/registries/custom-fields.js +75 -65
  300. package/dist/registries/custom-fields.js.map +1 -1
  301. package/dist/registries/custom-fields.mjs +74 -67
  302. package/dist/registries/custom-fields.mjs.map +1 -1
  303. package/dist/registries/hooks.js +46 -49
  304. package/dist/registries/hooks.js.map +1 -1
  305. package/dist/registries/hooks.mjs +45 -51
  306. package/dist/registries/hooks.mjs.map +1 -1
  307. package/dist/registries/middlewares.js +49 -51
  308. package/dist/registries/middlewares.js.map +1 -1
  309. package/dist/registries/middlewares.mjs +48 -53
  310. package/dist/registries/middlewares.mjs.map +1 -1
  311. package/dist/registries/models.js +14 -13
  312. package/dist/registries/models.js.map +1 -1
  313. package/dist/registries/models.mjs +13 -14
  314. package/dist/registries/models.mjs.map +1 -1
  315. package/dist/registries/modules.js +39 -36
  316. package/dist/registries/modules.js.map +1 -1
  317. package/dist/registries/modules.mjs +38 -38
  318. package/dist/registries/modules.mjs.map +1 -1
  319. package/dist/registries/namespace.js +21 -20
  320. package/dist/registries/namespace.js.map +1 -1
  321. package/dist/registries/namespace.mjs +20 -23
  322. package/dist/registries/namespace.mjs.map +1 -1
  323. package/dist/registries/plugins.js +23 -20
  324. package/dist/registries/plugins.js.map +1 -1
  325. package/dist/registries/plugins.mjs +22 -22
  326. package/dist/registries/plugins.mjs.map +1 -1
  327. package/dist/registries/policies.js +103 -96
  328. package/dist/registries/policies.js.map +1 -1
  329. package/dist/registries/policies.mjs +102 -98
  330. package/dist/registries/policies.mjs.map +1 -1
  331. package/dist/registries/sanitizers.js +23 -22
  332. package/dist/registries/sanitizers.js.map +1 -1
  333. package/dist/registries/sanitizers.mjs +22 -22
  334. package/dist/registries/sanitizers.mjs.map +1 -1
  335. package/dist/registries/services.js +71 -71
  336. package/dist/registries/services.js.map +1 -1
  337. package/dist/registries/services.mjs +70 -73
  338. package/dist/registries/services.mjs.map +1 -1
  339. package/dist/registries/validators.js +23 -22
  340. package/dist/registries/validators.js.map +1 -1
  341. package/dist/registries/validators.mjs +22 -22
  342. package/dist/registries/validators.mjs.map +1 -1
  343. package/dist/services/auth/index.js +74 -74
  344. package/dist/services/auth/index.js.map +1 -1
  345. package/dist/services/auth/index.mjs +73 -74
  346. package/dist/services/auth/index.mjs.map +1 -1
  347. package/dist/services/config.js +47 -43
  348. package/dist/services/config.js.map +1 -1
  349. package/dist/services/config.mjs +46 -44
  350. package/dist/services/config.mjs.map +1 -1
  351. package/dist/services/content-api/index.d.ts +6 -2
  352. package/dist/services/content-api/index.d.ts.map +1 -1
  353. package/dist/services/content-api/index.js +80 -79
  354. package/dist/services/content-api/index.js.map +1 -1
  355. package/dist/services/content-api/index.mjs +79 -79
  356. package/dist/services/content-api/index.mjs.map +1 -1
  357. package/dist/services/content-api/permissions/engine.js +8 -5
  358. package/dist/services/content-api/permissions/engine.js.map +1 -1
  359. package/dist/services/content-api/permissions/engine.mjs +7 -5
  360. package/dist/services/content-api/permissions/engine.mjs.map +1 -1
  361. package/dist/services/content-api/permissions/index.d.ts +6 -2
  362. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  363. package/dist/services/content-api/permissions/index.js +101 -81
  364. package/dist/services/content-api/permissions/index.js.map +1 -1
  365. package/dist/services/content-api/permissions/index.mjs +100 -81
  366. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  367. package/dist/services/content-api/permissions/providers/action.d.ts +3 -1
  368. package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
  369. package/dist/services/content-api/permissions/providers/action.js +17 -14
  370. package/dist/services/content-api/permissions/providers/action.js.map +1 -1
  371. package/dist/services/content-api/permissions/providers/action.mjs +16 -16
  372. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
  373. package/dist/services/content-api/permissions/providers/condition.d.ts +3 -1
  374. package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
  375. package/dist/services/content-api/permissions/providers/condition.js +17 -14
  376. package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
  377. package/dist/services/content-api/permissions/providers/condition.mjs +16 -16
  378. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
  379. package/dist/services/core-store.js +115 -95
  380. package/dist/services/core-store.js.map +1 -1
  381. package/dist/services/core-store.mjs +114 -97
  382. package/dist/services/core-store.mjs.map +1 -1
  383. package/dist/services/cron.d.ts +3 -3
  384. package/dist/services/cron.d.ts.map +1 -1
  385. package/dist/services/cron.js +74 -60
  386. package/dist/services/cron.js.map +1 -1
  387. package/dist/services/cron.mjs +73 -62
  388. package/dist/services/cron.mjs.map +1 -1
  389. package/dist/services/custom-fields.js +9 -7
  390. package/dist/services/custom-fields.js.map +1 -1
  391. package/dist/services/custom-fields.mjs +8 -9
  392. package/dist/services/custom-fields.mjs.map +1 -1
  393. package/dist/services/document-service/attributes/index.js +23 -18
  394. package/dist/services/document-service/attributes/index.js.map +1 -1
  395. package/dist/services/document-service/attributes/index.mjs +22 -19
  396. package/dist/services/document-service/attributes/index.mjs.map +1 -1
  397. package/dist/services/document-service/attributes/transforms.js +16 -15
  398. package/dist/services/document-service/attributes/transforms.js.map +1 -1
  399. package/dist/services/document-service/attributes/transforms.mjs +15 -15
  400. package/dist/services/document-service/attributes/transforms.mjs.map +1 -1
  401. package/dist/services/document-service/common.d.ts +1 -1
  402. package/dist/services/document-service/common.d.ts.map +1 -1
  403. package/dist/services/document-service/common.js +5 -4
  404. package/dist/services/document-service/common.js.map +1 -1
  405. package/dist/services/document-service/common.mjs +4 -5
  406. package/dist/services/document-service/common.mjs.map +1 -1
  407. package/dist/services/document-service/components.d.ts.map +1 -1
  408. package/dist/services/document-service/components.js +255 -257
  409. package/dist/services/document-service/components.js.map +1 -1
  410. package/dist/services/document-service/components.mjs +254 -262
  411. package/dist/services/document-service/components.mjs.map +1 -1
  412. package/dist/services/document-service/draft-and-publish.d.ts +1 -1
  413. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  414. package/dist/services/document-service/draft-and-publish.js +88 -48
  415. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  416. package/dist/services/document-service/draft-and-publish.mjs +87 -54
  417. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  418. package/dist/services/document-service/entries.d.ts +2 -2
  419. package/dist/services/document-service/entries.d.ts.map +1 -1
  420. package/dist/services/document-service/entries.js +109 -92
  421. package/dist/services/document-service/entries.js.map +1 -1
  422. package/dist/services/document-service/entries.mjs +108 -93
  423. package/dist/services/document-service/entries.mjs.map +1 -1
  424. package/dist/services/document-service/events.d.ts +1 -1
  425. package/dist/services/document-service/events.d.ts.map +1 -1
  426. package/dist/services/document-service/events.js +52 -40
  427. package/dist/services/document-service/events.js.map +1 -1
  428. package/dist/services/document-service/events.mjs +51 -41
  429. package/dist/services/document-service/events.mjs.map +1 -1
  430. package/dist/services/document-service/index.d.ts +2 -1
  431. package/dist/services/document-service/index.d.ts.map +1 -1
  432. package/dist/services/document-service/index.js +53 -32
  433. package/dist/services/document-service/index.js.map +1 -1
  434. package/dist/services/document-service/index.mjs +52 -33
  435. package/dist/services/document-service/index.mjs.map +1 -1
  436. package/dist/services/document-service/internationalization.js +62 -46
  437. package/dist/services/document-service/internationalization.js.map +1 -1
  438. package/dist/services/document-service/internationalization.mjs +61 -50
  439. package/dist/services/document-service/internationalization.mjs.map +1 -1
  440. package/dist/services/document-service/middlewares/errors.js +23 -19
  441. package/dist/services/document-service/middlewares/errors.js.map +1 -1
  442. package/dist/services/document-service/middlewares/errors.mjs +22 -20
  443. package/dist/services/document-service/middlewares/errors.mjs.map +1 -1
  444. package/dist/services/document-service/middlewares/middleware-manager.js +46 -44
  445. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -1
  446. package/dist/services/document-service/middlewares/middleware-manager.mjs +45 -45
  447. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -1
  448. package/dist/services/document-service/params.js +11 -5
  449. package/dist/services/document-service/params.js.map +1 -1
  450. package/dist/services/document-service/params.mjs +10 -6
  451. package/dist/services/document-service/params.mjs.map +1 -1
  452. package/dist/services/document-service/repository.d.ts.map +1 -1
  453. package/dist/services/document-service/repository.js +355 -269
  454. package/dist/services/document-service/repository.js.map +1 -1
  455. package/dist/services/document-service/repository.mjs +354 -270
  456. package/dist/services/document-service/repository.mjs.map +1 -1
  457. package/dist/services/document-service/transform/data.js +22 -12
  458. package/dist/services/document-service/transform/data.js.map +1 -1
  459. package/dist/services/document-service/transform/data.mjs +21 -13
  460. package/dist/services/document-service/transform/data.mjs.map +1 -1
  461. package/dist/services/document-service/transform/fields.js +26 -17
  462. package/dist/services/document-service/transform/fields.js.map +1 -1
  463. package/dist/services/document-service/transform/fields.mjs +25 -18
  464. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  465. package/dist/services/document-service/transform/id-map.d.ts +1 -1
  466. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  467. package/dist/services/document-service/transform/id-map.js +116 -69
  468. package/dist/services/document-service/transform/id-map.js.map +1 -1
  469. package/dist/services/document-service/transform/id-map.mjs +115 -70
  470. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  471. package/dist/services/document-service/transform/id-transform.d.ts +1 -1
  472. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  473. package/dist/services/document-service/transform/id-transform.js +37 -29
  474. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  475. package/dist/services/document-service/transform/id-transform.mjs +36 -30
  476. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  477. package/dist/services/document-service/transform/populate.js +23 -18
  478. package/dist/services/document-service/transform/populate.js.map +1 -1
  479. package/dist/services/document-service/transform/populate.mjs +22 -19
  480. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  481. package/dist/services/document-service/transform/query.js +11 -6
  482. package/dist/services/document-service/transform/query.js.map +1 -1
  483. package/dist/services/document-service/transform/query.mjs +10 -7
  484. package/dist/services/document-service/transform/query.mjs.map +1 -1
  485. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  486. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  487. package/dist/services/document-service/transform/relations/extract/data-ids.js +71 -48
  488. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  489. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +70 -49
  490. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  491. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  492. package/dist/services/document-service/transform/relations/transform/data-ids.js +97 -63
  493. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  494. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +96 -64
  495. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  496. package/dist/services/document-service/transform/relations/transform/default-locale.js +47 -29
  497. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -1
  498. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +46 -30
  499. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -1
  500. package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
  501. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  502. package/dist/services/document-service/transform/relations/utils/dp.js +52 -26
  503. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  504. package/dist/services/document-service/transform/relations/utils/dp.mjs +51 -27
  505. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  506. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
  507. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  508. package/dist/services/document-service/transform/relations/utils/i18n.js +20 -18
  509. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  510. package/dist/services/document-service/transform/relations/utils/i18n.mjs +19 -21
  511. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  512. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
  513. package/dist/services/document-service/transform/relations/utils/map-relation.js +116 -77
  514. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -1
  515. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +115 -79
  516. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -1
  517. package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
  518. package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -0
  519. package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
  520. package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
  521. package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
  522. package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
  523. package/dist/services/document-service/utils/populate.d.ts +1 -1
  524. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  525. package/dist/services/document-service/utils/populate.js +67 -41
  526. package/dist/services/document-service/utils/populate.js.map +1 -1
  527. package/dist/services/document-service/utils/populate.mjs +66 -42
  528. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  529. package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
  530. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  531. package/dist/services/document-service/utils/unidirectional-relations.js +116 -0
  532. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
  533. package/dist/services/document-service/utils/unidirectional-relations.mjs +113 -0
  534. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
  535. package/dist/services/entity-service/index.js +230 -161
  536. package/dist/services/entity-service/index.js.map +1 -1
  537. package/dist/services/entity-service/index.mjs +229 -160
  538. package/dist/services/entity-service/index.mjs.map +1 -1
  539. package/dist/services/entity-validator/blocks-validator.js +135 -103
  540. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  541. package/dist/services/entity-validator/blocks-validator.mjs +134 -104
  542. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  543. package/dist/services/entity-validator/index.d.ts +1 -1
  544. package/dist/services/entity-validator/index.d.ts.map +1 -1
  545. package/dist/services/entity-validator/index.js +362 -363
  546. package/dist/services/entity-validator/index.js.map +1 -1
  547. package/dist/services/entity-validator/index.mjs +358 -360
  548. package/dist/services/entity-validator/index.mjs.map +1 -1
  549. package/dist/services/entity-validator/validators.js +268 -210
  550. package/dist/services/entity-validator/validators.js.map +1 -1
  551. package/dist/services/entity-validator/validators.mjs +267 -216
  552. package/dist/services/entity-validator/validators.mjs.map +1 -1
  553. package/dist/services/errors.js +65 -65
  554. package/dist/services/errors.js.map +1 -1
  555. package/dist/services/errors.mjs +64 -66
  556. package/dist/services/errors.mjs.map +1 -1
  557. package/dist/services/event-hub.js +82 -69
  558. package/dist/services/event-hub.js.map +1 -1
  559. package/dist/services/event-hub.mjs +81 -71
  560. package/dist/services/event-hub.mjs.map +1 -1
  561. package/dist/services/features.js +19 -14
  562. package/dist/services/features.js.map +1 -1
  563. package/dist/services/features.mjs +18 -15
  564. package/dist/services/features.mjs.map +1 -1
  565. package/dist/services/fs.js +41 -40
  566. package/dist/services/fs.js.map +1 -1
  567. package/dist/services/fs.mjs +40 -39
  568. package/dist/services/fs.mjs.map +1 -1
  569. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  570. package/dist/services/metrics/admin-user-hash.js +13 -11
  571. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  572. package/dist/services/metrics/admin-user-hash.mjs +12 -10
  573. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  574. package/dist/services/metrics/index.js +46 -40
  575. package/dist/services/metrics/index.js.map +1 -1
  576. package/dist/services/metrics/index.mjs +45 -42
  577. package/dist/services/metrics/index.mjs.map +1 -1
  578. package/dist/services/metrics/is-truthy.js +13 -6
  579. package/dist/services/metrics/is-truthy.js.map +1 -1
  580. package/dist/services/metrics/is-truthy.mjs +12 -6
  581. package/dist/services/metrics/is-truthy.mjs.map +1 -1
  582. package/dist/services/metrics/middleware.d.ts.map +1 -1
  583. package/dist/services/metrics/middleware.js +37 -22
  584. package/dist/services/metrics/middleware.js.map +1 -1
  585. package/dist/services/metrics/middleware.mjs +36 -24
  586. package/dist/services/metrics/middleware.mjs.map +1 -1
  587. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  588. package/dist/services/metrics/rate-limiter.js +24 -19
  589. package/dist/services/metrics/rate-limiter.js.map +1 -1
  590. package/dist/services/metrics/rate-limiter.mjs +23 -21
  591. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  592. package/dist/services/metrics/sender.d.ts.map +1 -1
  593. package/dist/services/metrics/sender.js +78 -69
  594. package/dist/services/metrics/sender.js.map +1 -1
  595. package/dist/services/metrics/sender.mjs +77 -64
  596. package/dist/services/metrics/sender.mjs.map +1 -1
  597. package/dist/services/query-params.js +13 -10
  598. package/dist/services/query-params.js.map +1 -1
  599. package/dist/services/query-params.mjs +12 -12
  600. package/dist/services/query-params.mjs.map +1 -1
  601. package/dist/services/reloader.js +35 -32
  602. package/dist/services/reloader.js.map +1 -1
  603. package/dist/services/reloader.mjs +34 -33
  604. package/dist/services/reloader.mjs.map +1 -1
  605. package/dist/services/request-context.js +11 -8
  606. package/dist/services/request-context.js.map +1 -1
  607. package/dist/services/request-context.mjs +10 -10
  608. package/dist/services/request-context.mjs.map +1 -1
  609. package/dist/services/server/admin-api.js +11 -10
  610. package/dist/services/server/admin-api.js.map +1 -1
  611. package/dist/services/server/admin-api.mjs +10 -11
  612. package/dist/services/server/admin-api.mjs.map +1 -1
  613. package/dist/services/server/api.js +33 -27
  614. package/dist/services/server/api.js.map +1 -1
  615. package/dist/services/server/api.mjs +32 -26
  616. package/dist/services/server/api.mjs.map +1 -1
  617. package/dist/services/server/compose-endpoint.js +116 -105
  618. package/dist/services/server/compose-endpoint.js.map +1 -1
  619. package/dist/services/server/compose-endpoint.mjs +115 -105
  620. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  621. package/dist/services/server/content-api.js +11 -9
  622. package/dist/services/server/content-api.js.map +1 -1
  623. package/dist/services/server/content-api.mjs +10 -10
  624. package/dist/services/server/content-api.mjs.map +1 -1
  625. package/dist/services/server/http-server.js +48 -44
  626. package/dist/services/server/http-server.js.map +1 -1
  627. package/dist/services/server/http-server.mjs +47 -43
  628. package/dist/services/server/http-server.mjs.map +1 -1
  629. package/dist/services/server/index.js +85 -82
  630. package/dist/services/server/index.js.map +1 -1
  631. package/dist/services/server/index.mjs +84 -81
  632. package/dist/services/server/index.mjs.map +1 -1
  633. package/dist/services/server/koa.js +49 -47
  634. package/dist/services/server/koa.js.map +1 -1
  635. package/dist/services/server/koa.mjs +48 -44
  636. package/dist/services/server/koa.mjs.map +1 -1
  637. package/dist/services/server/middleware.js +86 -82
  638. package/dist/services/server/middleware.js.map +1 -1
  639. package/dist/services/server/middleware.mjs +85 -82
  640. package/dist/services/server/middleware.mjs.map +1 -1
  641. package/dist/services/server/policy.js +24 -17
  642. package/dist/services/server/policy.js.map +1 -1
  643. package/dist/services/server/policy.mjs +23 -18
  644. package/dist/services/server/policy.mjs.map +1 -1
  645. package/dist/services/server/register-middlewares.js +68 -61
  646. package/dist/services/server/register-middlewares.js.map +1 -1
  647. package/dist/services/server/register-middlewares.mjs +67 -63
  648. package/dist/services/server/register-middlewares.mjs.map +1 -1
  649. package/dist/services/server/register-routes.js +90 -67
  650. package/dist/services/server/register-routes.js.map +1 -1
  651. package/dist/services/server/register-routes.mjs +89 -67
  652. package/dist/services/server/register-routes.mjs.map +1 -1
  653. package/dist/services/server/routing.js +94 -81
  654. package/dist/services/server/routing.js.map +1 -1
  655. package/dist/services/server/routing.mjs +93 -81
  656. package/dist/services/server/routing.mjs.map +1 -1
  657. package/dist/services/utils/dynamic-zones.js +13 -14
  658. package/dist/services/utils/dynamic-zones.js.map +1 -1
  659. package/dist/services/utils/dynamic-zones.mjs +12 -16
  660. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  661. package/dist/services/webhook-runner.js +124 -122
  662. package/dist/services/webhook-runner.js.map +1 -1
  663. package/dist/services/webhook-runner.mjs +123 -121
  664. package/dist/services/webhook-runner.mjs.map +1 -1
  665. package/dist/services/webhook-store.js +132 -99
  666. package/dist/services/webhook-store.js.map +1 -1
  667. package/dist/services/webhook-store.mjs +131 -101
  668. package/dist/services/webhook-store.mjs.map +1 -1
  669. package/dist/services/worker-queue.js +44 -49
  670. package/dist/services/worker-queue.js.map +1 -1
  671. package/dist/services/worker-queue.mjs +43 -49
  672. package/dist/services/worker-queue.mjs.map +1 -1
  673. package/dist/utils/convert-custom-field-type.js +17 -20
  674. package/dist/utils/convert-custom-field-type.js.map +1 -1
  675. package/dist/utils/convert-custom-field-type.mjs +16 -21
  676. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  677. package/dist/utils/cron.js +64 -30
  678. package/dist/utils/cron.js.map +1 -1
  679. package/dist/utils/cron.mjs +63 -31
  680. package/dist/utils/cron.mjs.map +1 -1
  681. package/dist/utils/fetch.js +24 -18
  682. package/dist/utils/fetch.js.map +1 -1
  683. package/dist/utils/fetch.mjs +23 -19
  684. package/dist/utils/fetch.mjs.map +1 -1
  685. package/dist/utils/filepath-to-prop-path.js +20 -28
  686. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  687. package/dist/utils/filepath-to-prop-path.mjs +19 -26
  688. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  689. package/dist/utils/is-initialized.js +21 -12
  690. package/dist/utils/is-initialized.js.map +1 -1
  691. package/dist/utils/is-initialized.mjs +20 -13
  692. package/dist/utils/is-initialized.mjs.map +1 -1
  693. package/dist/utils/lifecycles.js +6 -5
  694. package/dist/utils/lifecycles.js.map +1 -1
  695. package/dist/utils/lifecycles.mjs +5 -6
  696. package/dist/utils/lifecycles.mjs.map +1 -1
  697. package/dist/utils/load-config-file.js +40 -38
  698. package/dist/utils/load-config-file.js.map +1 -1
  699. package/dist/utils/load-config-file.mjs +39 -36
  700. package/dist/utils/load-config-file.mjs.map +1 -1
  701. package/dist/utils/load-files.js +40 -35
  702. package/dist/utils/load-files.js.map +1 -1
  703. package/dist/utils/load-files.mjs +39 -32
  704. package/dist/utils/load-files.mjs.map +1 -1
  705. package/dist/utils/open-browser.js +8 -8
  706. package/dist/utils/open-browser.js.map +1 -1
  707. package/dist/utils/open-browser.mjs +7 -7
  708. package/dist/utils/open-browser.mjs.map +1 -1
  709. package/dist/utils/resolve-working-dirs.js +23 -10
  710. package/dist/utils/resolve-working-dirs.js.map +1 -1
  711. package/dist/utils/resolve-working-dirs.mjs +22 -9
  712. package/dist/utils/resolve-working-dirs.mjs.map +1 -1
  713. package/dist/utils/signals.js +20 -14
  714. package/dist/utils/signals.js.map +1 -1
  715. package/dist/utils/signals.mjs +19 -15
  716. package/dist/utils/signals.mjs.map +1 -1
  717. package/dist/utils/startup-logger.d.ts.map +1 -1
  718. package/dist/utils/startup-logger.js +107 -78
  719. package/dist/utils/startup-logger.js.map +1 -1
  720. package/dist/utils/startup-logger.mjs +106 -75
  721. package/dist/utils/startup-logger.mjs.map +1 -1
  722. package/dist/utils/transform-content-types-to-models.d.ts +353 -21
  723. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  724. package/dist/utils/transform-content-types-to-models.js +350 -261
  725. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  726. package/dist/utils/transform-content-types-to-models.mjs +349 -269
  727. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  728. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  729. package/dist/utils/update-notifier/index.js +68 -73
  730. package/dist/utils/update-notifier/index.js.map +1 -1
  731. package/dist/utils/update-notifier/index.mjs +67 -67
  732. package/dist/utils/update-notifier/index.mjs.map +1 -1
  733. package/package.json +30 -31
@@ -1,118 +1,155 @@
1
- "use strict";
2
- const path = require("path");
3
- const fse = require("fs-extra");
4
- const fp = require("lodash/fp");
5
- const strapiUtils = require("@strapi/utils");
6
- const loadConfigFile = require("../../utils/load-config-file.js");
7
- const loadFiles = require("../../utils/load-files.js");
8
- const getEnabledPlugins = require("./get-enabled-plugins.js");
9
- const getUserPluginsConfig = require("./get-user-plugins-config.js");
10
- const index = require("../../domain/content-type/index.js");
11
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
12
- const fse__default = /* @__PURE__ */ _interopDefault(fse);
1
+ 'use strict';
2
+
3
+ var path = require('path');
4
+ var fse = require('fs-extra');
5
+ var fp = require('lodash/fp');
6
+ var resolve = require('resolve.exports');
7
+ var strapiUtils = require('@strapi/utils');
8
+ var loadConfigFile = require('../../utils/load-config-file.js');
9
+ var loadFiles = require('../../utils/load-files.js');
10
+ var getEnabledPlugins = require('./get-enabled-plugins.js');
11
+ var getUserPluginsConfig = require('./get-user-plugins-config.js');
12
+ var index = require('../../domain/content-type/index.js');
13
+
14
+ function _interopNamespaceDefault(e) {
15
+ var n = Object.create(null);
16
+ if (e) {
17
+ Object.keys(e).forEach(function (k) {
18
+ if (k !== 'default') {
19
+ var d = Object.getOwnPropertyDescriptor(e, k);
20
+ Object.defineProperty(n, k, d.get ? d : {
21
+ enumerable: true,
22
+ get: function () { return e[k]; }
23
+ });
24
+ }
25
+ });
26
+ }
27
+ n.default = e;
28
+ return Object.freeze(n);
29
+ }
30
+
31
+ var resolve__namespace = /*#__PURE__*/_interopNamespaceDefault(resolve);
32
+
13
33
  const defaultPlugin = {
14
- bootstrap() {
15
- },
16
- destroy() {
17
- },
18
- register() {
19
- },
20
- config: {
21
- default: {},
22
- validator() {
23
- }
24
- },
25
- routes: [],
26
- controllers: {},
27
- services: {},
28
- policies: {},
29
- middlewares: {},
30
- contentTypes: {}
34
+ bootstrap () {},
35
+ destroy () {},
36
+ register () {},
37
+ config: {
38
+ default: {},
39
+ validator () {}
40
+ },
41
+ routes: [],
42
+ controllers: {},
43
+ services: {},
44
+ policies: {},
45
+ middlewares: {},
46
+ contentTypes: {}
31
47
  };
32
- const applyUserExtension = async (plugins) => {
33
- const extensionsDir = strapi.dirs.dist.extensions;
34
- if (!await fse__default.default.pathExists(extensionsDir)) {
35
- return;
36
- }
37
- const extendedSchemas = await loadFiles.loadFiles(extensionsDir, "**/content-types/**/schema.json");
38
- const strapiServers = await loadFiles.loadFiles(extensionsDir, "**/strapi-server.js");
39
- for (const pluginName of Object.keys(plugins)) {
40
- const plugin = plugins[pluginName];
41
- for (const ctName of Object.keys(plugin.contentTypes)) {
42
- const extendedSchema = fp.get([pluginName, "content-types", ctName, "schema"], extendedSchemas);
43
- if (extendedSchema) {
44
- plugin.contentTypes[ctName].schema = {
45
- ...plugin.contentTypes[ctName].schema,
46
- ...extendedSchema
47
- };
48
- }
48
+ const applyUserExtension = async (plugins)=>{
49
+ const extensionsDir = strapi.dirs.dist.extensions;
50
+ if (!await fse.pathExists(extensionsDir)) {
51
+ return;
49
52
  }
50
- const strapiServer = fp.get([pluginName, "strapi-server"], strapiServers);
51
- if (strapiServer) {
52
- plugins[pluginName] = await strapiServer(plugin);
53
+ const extendedSchemas = await loadFiles.loadFiles(extensionsDir, '**/content-types/**/schema.json');
54
+ const strapiServers = await loadFiles.loadFiles(extensionsDir, '**/strapi-server.js');
55
+ for (const pluginName of Object.keys(plugins)){
56
+ const plugin = plugins[pluginName];
57
+ // first: load json schema
58
+ for (const ctName of Object.keys(plugin.contentTypes)){
59
+ const extendedSchema = fp.get([
60
+ pluginName,
61
+ 'content-types',
62
+ ctName,
63
+ 'schema'
64
+ ], extendedSchemas);
65
+ if (extendedSchema) {
66
+ plugin.contentTypes[ctName].schema = {
67
+ ...plugin.contentTypes[ctName].schema,
68
+ ...extendedSchema
69
+ };
70
+ }
71
+ }
72
+ // second: execute strapi-server extension
73
+ const strapiServer = fp.get([
74
+ pluginName,
75
+ 'strapi-server'
76
+ ], strapiServers);
77
+ if (strapiServer) {
78
+ plugins[pluginName] = await strapiServer(plugin);
79
+ }
53
80
  }
54
- }
55
81
  };
56
- const applyUserConfig = async (plugins) => {
57
- const userPluginsConfig = await getUserPluginsConfig.getUserPluginsConfig();
58
- for (const pluginName of Object.keys(plugins)) {
59
- const plugin = plugins[pluginName];
60
- const userPluginConfig = fp.getOr({}, `${pluginName}.config`, userPluginsConfig);
61
- const defaultConfig = typeof plugin.config.default === "function" ? plugin.config.default({ env: strapiUtils.env }) : plugin.config.default;
62
- const config = fp.defaultsDeep(defaultConfig, userPluginConfig);
63
- try {
64
- plugin.config.validator(config);
65
- } catch (e) {
66
- if (e instanceof Error) {
67
- throw new Error(`Error regarding ${pluginName} config: ${e.message}`);
68
- }
69
- throw e;
82
+ const applyUserConfig = async (plugins)=>{
83
+ const userPluginsConfig = await getUserPluginsConfig.getUserPluginsConfig();
84
+ for (const pluginName of Object.keys(plugins)){
85
+ const plugin = plugins[pluginName];
86
+ const userPluginConfig = fp.getOr({}, `${pluginName}.config`, userPluginsConfig);
87
+ const defaultConfig = typeof plugin.config.default === 'function' ? plugin.config.default({
88
+ env: strapiUtils.env
89
+ }) : plugin.config.default;
90
+ const config = fp.defaultsDeep(defaultConfig, userPluginConfig);
91
+ try {
92
+ plugin.config.validator(config);
93
+ } catch (e) {
94
+ if (e instanceof Error) {
95
+ throw new Error(`Error regarding ${pluginName} config: ${e.message}`);
96
+ }
97
+ throw e;
98
+ }
99
+ plugin.config = config;
70
100
  }
71
- plugin.config = config;
72
- }
73
101
  };
74
- async function loadPlugins(strapi2) {
75
- const plugins = {};
76
- const enabledPlugins = await getEnabledPlugins.getEnabledPlugins(strapi2);
77
- strapi2.config.set("enabledPlugins", enabledPlugins);
78
- for (const pluginName of Object.keys(enabledPlugins)) {
79
- const enabledPlugin = enabledPlugins[pluginName];
80
- let serverEntrypointPath;
81
- try {
82
- serverEntrypointPath = path.join(enabledPlugin.pathToPlugin, "strapi-server.js");
83
- } catch (e) {
84
- throw new Error(
85
- `Error loading the plugin ${pluginName} because ${pluginName} is not installed. Please either install the plugin or remove it's configuration.`
86
- );
102
+ async function loadPlugins(strapi1) {
103
+ const plugins = {};
104
+ const enabledPlugins = await getEnabledPlugins.getEnabledPlugins(strapi1);
105
+ strapi1.config.set('enabledPlugins', enabledPlugins);
106
+ for (const pluginName of Object.keys(enabledPlugins)){
107
+ const enabledPlugin = enabledPlugins[pluginName];
108
+ let serverEntrypointPath;
109
+ let resolvedExport = './strapi-server.js';
110
+ try {
111
+ resolvedExport = (resolve__namespace.exports(enabledPlugin.packageInfo, 'strapi-server', {
112
+ require: true
113
+ }) ?? './strapi-server.js').toString();
114
+ } catch (e) {
115
+ // no export map or missing strapi-server export => fallback to default
116
+ }
117
+ try {
118
+ serverEntrypointPath = path.join(enabledPlugin.pathToPlugin, resolvedExport);
119
+ } catch (e) {
120
+ throw new Error(`Error loading the plugin ${pluginName} because ${pluginName} is not installed. Please either install the plugin or remove it's configuration.`);
121
+ }
122
+ // only load plugins with a server entrypoint
123
+ if (!await fse.pathExists(serverEntrypointPath)) {
124
+ continue;
125
+ }
126
+ const pluginServer = loadConfigFile.loadConfigFile(serverEntrypointPath);
127
+ plugins[pluginName] = {
128
+ ...defaultPlugin,
129
+ ...pluginServer,
130
+ contentTypes: formatContentTypes(pluginName, pluginServer.contentTypes ?? {}),
131
+ config: fp.defaults(defaultPlugin.config, pluginServer.config),
132
+ routes: pluginServer.routes ?? defaultPlugin.routes
133
+ };
87
134
  }
88
- if (!await fse__default.default.pathExists(serverEntrypointPath)) {
89
- continue;
135
+ // TODO: validate plugin format
136
+ await applyUserConfig(plugins);
137
+ await applyUserExtension(plugins);
138
+ for (const pluginName of Object.keys(plugins)){
139
+ strapi1.get('plugins').add(pluginName, plugins[pluginName]);
90
140
  }
91
- const pluginServer = loadConfigFile.loadConfigFile(serverEntrypointPath);
92
- plugins[pluginName] = {
93
- ...defaultPlugin,
94
- ...pluginServer,
95
- contentTypes: formatContentTypes(pluginName, pluginServer.contentTypes ?? {}),
96
- config: fp.defaults(defaultPlugin.config, pluginServer.config),
97
- routes: pluginServer.routes ?? defaultPlugin.routes
98
- };
99
- }
100
- await applyUserConfig(plugins);
101
- await applyUserExtension(plugins);
102
- for (const pluginName of Object.keys(plugins)) {
103
- strapi2.get("plugins").add(pluginName, plugins[pluginName]);
104
- }
105
141
  }
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)
142
+ const formatContentTypes = (pluginName, contentTypes)=>{
143
+ Object.values(contentTypes).forEach((definition)=>{
144
+ const { schema } = definition;
145
+ Object.assign(schema, {
146
+ plugin: pluginName,
147
+ collectionName: schema.collectionName || `${pluginName}_${schema.info.singularName}`.toLowerCase(),
148
+ globalId: index.getGlobalId(schema, pluginName)
149
+ });
113
150
  });
114
- });
115
- return contentTypes;
151
+ return contentTypes;
116
152
  };
153
+
117
154
  module.exports = loadPlugins;
118
155
  //# sourceMappingURL=index.js.map
@@ -1 +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 { Core, Plugin, Struct } 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: Core.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: Struct.ContentTypeSchema }>\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":"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"}
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 * as resolve from 'resolve.exports';\n\nimport { env } from '@strapi/utils';\nimport type { Core, Plugin, Struct } 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: Core.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 let resolvedExport = './strapi-server.js';\n\n try {\n resolvedExport = (\n resolve.exports(enabledPlugin.packageInfo, 'strapi-server', {\n require: true,\n }) ?? './strapi-server.js'\n ).toString();\n } catch (e) {\n // no export map or missing strapi-server export => fallback to default\n }\n\n try {\n serverEntrypointPath = join(enabledPlugin.pathToPlugin, resolvedExport);\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: Struct.ContentTypeSchema }>\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":["defaultPlugin","bootstrap","destroy","register","config","default","validator","routes","controllers","services","policies","middlewares","contentTypes","applyUserExtension","plugins","extensionsDir","strapi","dirs","dist","extensions","fse","pathExists","extendedSchemas","loadFiles","strapiServers","pluginName","Object","keys","plugin","ctName","extendedSchema","get","schema","strapiServer","applyUserConfig","userPluginsConfig","getUserPluginsConfig","userPluginConfig","getOr","defaultConfig","env","defaultsDeep","e","Error","message","loadPlugins","enabledPlugins","getEnabledPlugins","set","enabledPlugin","serverEntrypointPath","resolvedExport","resolve","exports","packageInfo","require","toString","join","pathToPlugin","pluginServer","loadConfigFile","formatContentTypes","defaults","add","values","forEach","definition","assign","collectionName","info","singularName","toLowerCase","globalId","getGlobalId"],"mappings":"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"}
@@ -1,117 +1,134 @@
1
- import { join } from "path";
2
- import fse from "fs-extra";
3
- import { defaults, get, getOr, defaultsDeep } from "lodash/fp";
4
- import { env } from "@strapi/utils";
5
- import { loadConfigFile } from "../../utils/load-config-file.mjs";
6
- import { loadFiles } from "../../utils/load-files.mjs";
7
- import { getEnabledPlugins } from "./get-enabled-plugins.mjs";
8
- import { getUserPluginsConfig } from "./get-user-plugins-config.mjs";
9
- import { getGlobalId } from "../../domain/content-type/index.mjs";
1
+ import { join } from 'path';
2
+ import fse from 'fs-extra';
3
+ import { defaults, get, getOr, defaultsDeep } from 'lodash/fp';
4
+ import * as resolve from 'resolve.exports';
5
+ import { env } from '@strapi/utils';
6
+ import { loadConfigFile } from '../../utils/load-config-file.mjs';
7
+ import { loadFiles } from '../../utils/load-files.mjs';
8
+ import { getEnabledPlugins } from './get-enabled-plugins.mjs';
9
+ import { getUserPluginsConfig } from './get-user-plugins-config.mjs';
10
+ import { getGlobalId } from '../../domain/content-type/index.mjs';
11
+
10
12
  const defaultPlugin = {
11
- bootstrap() {
12
- },
13
- destroy() {
14
- },
15
- register() {
16
- },
17
- config: {
18
- default: {},
19
- validator() {
20
- }
21
- },
22
- routes: [],
23
- controllers: {},
24
- services: {},
25
- policies: {},
26
- middlewares: {},
27
- contentTypes: {}
13
+ bootstrap () {},
14
+ destroy () {},
15
+ register () {},
16
+ config: {
17
+ default: {},
18
+ validator () {}
19
+ },
20
+ routes: [],
21
+ controllers: {},
22
+ services: {},
23
+ policies: {},
24
+ middlewares: {},
25
+ contentTypes: {}
28
26
  };
29
- const applyUserExtension = async (plugins) => {
30
- const extensionsDir = strapi.dirs.dist.extensions;
31
- if (!await fse.pathExists(extensionsDir)) {
32
- return;
33
- }
34
- const extendedSchemas = await loadFiles(extensionsDir, "**/content-types/**/schema.json");
35
- const strapiServers = await loadFiles(extensionsDir, "**/strapi-server.js");
36
- for (const pluginName of Object.keys(plugins)) {
37
- const plugin = plugins[pluginName];
38
- for (const ctName of Object.keys(plugin.contentTypes)) {
39
- const extendedSchema = get([pluginName, "content-types", ctName, "schema"], extendedSchemas);
40
- if (extendedSchema) {
41
- plugin.contentTypes[ctName].schema = {
42
- ...plugin.contentTypes[ctName].schema,
43
- ...extendedSchema
44
- };
45
- }
27
+ const applyUserExtension = async (plugins)=>{
28
+ const extensionsDir = strapi.dirs.dist.extensions;
29
+ if (!await fse.pathExists(extensionsDir)) {
30
+ return;
46
31
  }
47
- const strapiServer = get([pluginName, "strapi-server"], strapiServers);
48
- if (strapiServer) {
49
- plugins[pluginName] = await strapiServer(plugin);
32
+ const extendedSchemas = await loadFiles(extensionsDir, '**/content-types/**/schema.json');
33
+ const strapiServers = await loadFiles(extensionsDir, '**/strapi-server.js');
34
+ for (const pluginName of Object.keys(plugins)){
35
+ const plugin = plugins[pluginName];
36
+ // first: load json schema
37
+ for (const ctName of Object.keys(plugin.contentTypes)){
38
+ const extendedSchema = get([
39
+ pluginName,
40
+ 'content-types',
41
+ ctName,
42
+ 'schema'
43
+ ], extendedSchemas);
44
+ if (extendedSchema) {
45
+ plugin.contentTypes[ctName].schema = {
46
+ ...plugin.contentTypes[ctName].schema,
47
+ ...extendedSchema
48
+ };
49
+ }
50
+ }
51
+ // second: execute strapi-server extension
52
+ const strapiServer = get([
53
+ pluginName,
54
+ 'strapi-server'
55
+ ], strapiServers);
56
+ if (strapiServer) {
57
+ plugins[pluginName] = await strapiServer(plugin);
58
+ }
50
59
  }
51
- }
52
60
  };
53
- const applyUserConfig = async (plugins) => {
54
- const userPluginsConfig = await getUserPluginsConfig();
55
- for (const pluginName of Object.keys(plugins)) {
56
- const plugin = plugins[pluginName];
57
- const userPluginConfig = getOr({}, `${pluginName}.config`, userPluginsConfig);
58
- const defaultConfig = typeof plugin.config.default === "function" ? plugin.config.default({ env }) : plugin.config.default;
59
- const config = defaultsDeep(defaultConfig, userPluginConfig);
60
- try {
61
- plugin.config.validator(config);
62
- } catch (e) {
63
- if (e instanceof Error) {
64
- throw new Error(`Error regarding ${pluginName} config: ${e.message}`);
65
- }
66
- throw e;
61
+ const applyUserConfig = async (plugins)=>{
62
+ const userPluginsConfig = await getUserPluginsConfig();
63
+ for (const pluginName of Object.keys(plugins)){
64
+ const plugin = plugins[pluginName];
65
+ const userPluginConfig = getOr({}, `${pluginName}.config`, userPluginsConfig);
66
+ const defaultConfig = typeof plugin.config.default === 'function' ? plugin.config.default({
67
+ env
68
+ }) : plugin.config.default;
69
+ const config = defaultsDeep(defaultConfig, userPluginConfig);
70
+ try {
71
+ plugin.config.validator(config);
72
+ } catch (e) {
73
+ if (e instanceof Error) {
74
+ throw new Error(`Error regarding ${pluginName} config: ${e.message}`);
75
+ }
76
+ throw e;
77
+ }
78
+ plugin.config = config;
67
79
  }
68
- plugin.config = config;
69
- }
70
80
  };
71
- async function loadPlugins(strapi2) {
72
- const plugins = {};
73
- const enabledPlugins = await getEnabledPlugins(strapi2);
74
- strapi2.config.set("enabledPlugins", enabledPlugins);
75
- for (const pluginName of Object.keys(enabledPlugins)) {
76
- const enabledPlugin = enabledPlugins[pluginName];
77
- let serverEntrypointPath;
78
- try {
79
- serverEntrypointPath = join(enabledPlugin.pathToPlugin, "strapi-server.js");
80
- } catch (e) {
81
- throw new Error(
82
- `Error loading the plugin ${pluginName} because ${pluginName} is not installed. Please either install the plugin or remove it's configuration.`
83
- );
81
+ async function loadPlugins(strapi1) {
82
+ const plugins = {};
83
+ const enabledPlugins = await getEnabledPlugins(strapi1);
84
+ strapi1.config.set('enabledPlugins', enabledPlugins);
85
+ for (const pluginName of Object.keys(enabledPlugins)){
86
+ const enabledPlugin = enabledPlugins[pluginName];
87
+ let serverEntrypointPath;
88
+ let resolvedExport = './strapi-server.js';
89
+ try {
90
+ resolvedExport = (resolve.exports(enabledPlugin.packageInfo, 'strapi-server', {
91
+ require: true
92
+ }) ?? './strapi-server.js').toString();
93
+ } catch (e) {
94
+ // no export map or missing strapi-server export => fallback to default
95
+ }
96
+ try {
97
+ serverEntrypointPath = join(enabledPlugin.pathToPlugin, resolvedExport);
98
+ } catch (e) {
99
+ throw new Error(`Error loading the plugin ${pluginName} because ${pluginName} is not installed. Please either install the plugin or remove it's configuration.`);
100
+ }
101
+ // only load plugins with a server entrypoint
102
+ if (!await fse.pathExists(serverEntrypointPath)) {
103
+ continue;
104
+ }
105
+ const pluginServer = loadConfigFile(serverEntrypointPath);
106
+ plugins[pluginName] = {
107
+ ...defaultPlugin,
108
+ ...pluginServer,
109
+ contentTypes: formatContentTypes(pluginName, pluginServer.contentTypes ?? {}),
110
+ config: defaults(defaultPlugin.config, pluginServer.config),
111
+ routes: pluginServer.routes ?? defaultPlugin.routes
112
+ };
84
113
  }
85
- if (!await fse.pathExists(serverEntrypointPath)) {
86
- continue;
114
+ // TODO: validate plugin format
115
+ await applyUserConfig(plugins);
116
+ await applyUserExtension(plugins);
117
+ for (const pluginName of Object.keys(plugins)){
118
+ strapi1.get('plugins').add(pluginName, plugins[pluginName]);
87
119
  }
88
- const pluginServer = loadConfigFile(serverEntrypointPath);
89
- plugins[pluginName] = {
90
- ...defaultPlugin,
91
- ...pluginServer,
92
- contentTypes: formatContentTypes(pluginName, pluginServer.contentTypes ?? {}),
93
- config: defaults(defaultPlugin.config, pluginServer.config),
94
- routes: pluginServer.routes ?? defaultPlugin.routes
95
- };
96
- }
97
- await applyUserConfig(plugins);
98
- await applyUserExtension(plugins);
99
- for (const pluginName of Object.keys(plugins)) {
100
- strapi2.get("plugins").add(pluginName, plugins[pluginName]);
101
- }
102
120
  }
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)
121
+ const formatContentTypes = (pluginName, contentTypes)=>{
122
+ Object.values(contentTypes).forEach((definition)=>{
123
+ const { schema } = definition;
124
+ Object.assign(schema, {
125
+ plugin: pluginName,
126
+ collectionName: schema.collectionName || `${pluginName}_${schema.info.singularName}`.toLowerCase(),
127
+ globalId: getGlobalId(schema, pluginName)
128
+ });
110
129
  });
111
- });
112
- return contentTypes;
113
- };
114
- export {
115
- loadPlugins as default
130
+ return contentTypes;
116
131
  };
132
+
133
+ export { loadPlugins as default };
117
134
  //# sourceMappingURL=index.mjs.map
@@ -1 +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 { Core, Plugin, Struct } 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: Core.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: Struct.ContentTypeSchema }>\n) => {\n Object.values(contentTypes).forEach((definition) => {\n const { schema } = definition;\n\n Object.assign(schema, {\n plugin: pluginName,\n collectionName:\n schema.collectionName || `${pluginName}_${schema.info.singularName}`.toLowerCase(),\n globalId: getGlobalId(schema, pluginName),\n });\n });\n\n return contentTypes;\n};\n"],"names":["strapi"],"mappings":"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"}
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 * as resolve from 'resolve.exports';\n\nimport { env } from '@strapi/utils';\nimport type { Core, Plugin, Struct } 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: Core.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 let resolvedExport = './strapi-server.js';\n\n try {\n resolvedExport = (\n resolve.exports(enabledPlugin.packageInfo, 'strapi-server', {\n require: true,\n }) ?? './strapi-server.js'\n ).toString();\n } catch (e) {\n // no export map or missing strapi-server export => fallback to default\n }\n\n try {\n serverEntrypointPath = join(enabledPlugin.pathToPlugin, resolvedExport);\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: Struct.ContentTypeSchema }>\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":["defaultPlugin","bootstrap","destroy","register","config","default","validator","routes","controllers","services","policies","middlewares","contentTypes","applyUserExtension","plugins","extensionsDir","strapi","dirs","dist","extensions","fse","pathExists","extendedSchemas","loadFiles","strapiServers","pluginName","Object","keys","plugin","ctName","extendedSchema","get","schema","strapiServer","applyUserConfig","userPluginsConfig","getUserPluginsConfig","userPluginConfig","getOr","defaultConfig","env","defaultsDeep","e","Error","message","loadPlugins","enabledPlugins","getEnabledPlugins","set","enabledPlugin","serverEntrypointPath","resolvedExport","resolve","exports","packageInfo","require","toString","join","pathToPlugin","pluginServer","loadConfigFile","formatContentTypes","defaults","add","values","forEach","definition","assign","collectionName","info","singularName","toLowerCase","globalId","getGlobalId"],"mappings":"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"}
@@ -1,25 +1,29 @@
1
- "use strict";
2
- const path = require("path");
3
- const fse = require("fs-extra");
4
- const strapiUtils = require("@strapi/utils");
5
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
6
- const fse__default = /* @__PURE__ */ _interopDefault(fse);
1
+ 'use strict';
2
+
3
+ var path = require('path');
4
+ var fse = require('fs-extra');
5
+ var strapiUtils = require('@strapi/utils');
6
+
7
+ // TODO:: allow folders with index.js inside for bigger policies
7
8
  async function loadPolicies(strapi) {
8
- const dir = strapi.dirs.dist.policies;
9
- if (!await fse__default.default.pathExists(dir)) {
10
- return;
11
- }
12
- const policies = {};
13
- const paths = await fse__default.default.readdir(dir, { withFileTypes: true });
14
- for (const fd of paths) {
15
- const { name } = fd;
16
- const fullPath = path.join(dir, name);
17
- if (fd.isFile() && path.extname(name) === ".js") {
18
- const key = path.basename(name, ".js");
19
- policies[key] = strapiUtils.importDefault(fullPath);
9
+ const dir = strapi.dirs.dist.policies;
10
+ if (!await fse.pathExists(dir)) {
11
+ return;
20
12
  }
21
- }
22
- strapi.get("policies").add(`global::`, policies);
13
+ const policies = {};
14
+ const paths = await fse.readdir(dir, {
15
+ withFileTypes: true
16
+ });
17
+ for (const fd of paths){
18
+ const { name } = fd;
19
+ const fullPath = path.join(dir, name);
20
+ if (fd.isFile() && path.extname(name) === '.js') {
21
+ const key = path.basename(name, '.js');
22
+ policies[key] = strapiUtils.importDefault(fullPath);
23
+ }
24
+ }
25
+ strapi.get('policies').add(`global::`, policies);
23
26
  }
27
+
24
28
  module.exports = loadPolicies;
25
29
  //# sourceMappingURL=policies.js.map