@strapi/core 0.0.0-experimental.e02b4637b3906c6d31048d00600d09a23a0edc3d → 0.0.0-experimental.e100737b0ed96d0d80a5c6f4925c7374e63a342a

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