@strapi/core 0.0.0-experimental.abc → 0.0.0-experimental.ae2010c73ea60e398b726874a9b7b2bf3faada51

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 (741) 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 +7 -0
  91. package/dist/ee/index.d.ts.map +1 -1
  92. package/dist/ee/index.js +197 -132
  93. package/dist/ee/index.js.map +1 -1
  94. package/dist/ee/index.mjs +196 -134
  95. package/dist/ee/index.mjs.map +1 -1
  96. package/dist/ee/license.d.ts +3 -1
  97. package/dist/ee/license.d.ts.map +1 -1
  98. package/dist/ee/license.js +105 -75
  99. package/dist/ee/license.js.map +1 -1
  100. package/dist/ee/license.mjs +103 -76
  101. package/dist/ee/license.mjs.map +1 -1
  102. package/dist/factories.js +72 -67
  103. package/dist/factories.js.map +1 -1
  104. package/dist/factories.mjs +71 -71
  105. package/dist/factories.mjs.map +1 -1
  106. package/dist/index.js +29 -26
  107. package/dist/index.js.map +1 -1
  108. package/dist/index.mjs +29 -29
  109. package/dist/index.mjs.map +1 -1
  110. package/dist/loaders/admin.d.ts.map +1 -1
  111. package/dist/loaders/admin.js +21 -20
  112. package/dist/loaders/admin.js.map +1 -1
  113. package/dist/loaders/admin.mjs +20 -20
  114. package/dist/loaders/admin.mjs.map +1 -1
  115. package/dist/loaders/apis.js +143 -120
  116. package/dist/loaders/apis.js.map +1 -1
  117. package/dist/loaders/apis.mjs +142 -119
  118. package/dist/loaders/apis.mjs.map +1 -1
  119. package/dist/loaders/components.js +33 -34
  120. package/dist/loaders/components.js.map +1 -1
  121. package/dist/loaders/components.mjs +32 -34
  122. package/dist/loaders/components.mjs.map +1 -1
  123. package/dist/loaders/index.js +22 -20
  124. package/dist/loaders/index.js.map +1 -1
  125. package/dist/loaders/index.mjs +21 -21
  126. package/dist/loaders/index.mjs.map +1 -1
  127. package/dist/loaders/middlewares.js +29 -25
  128. package/dist/loaders/middlewares.js.map +1 -1
  129. package/dist/loaders/middlewares.mjs +28 -25
  130. package/dist/loaders/middlewares.mjs.map +1 -1
  131. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  132. package/dist/loaders/plugins/get-enabled-plugins.js +125 -127
  133. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  134. package/dist/loaders/plugins/get-enabled-plugins.mjs +124 -104
  135. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  136. package/dist/loaders/plugins/get-user-plugins-config.js +25 -24
  137. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  138. package/dist/loaders/plugins/get-user-plugins-config.mjs +24 -23
  139. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  140. package/dist/loaders/plugins/index.d.ts.map +1 -1
  141. package/dist/loaders/plugins/index.js +141 -104
  142. package/dist/loaders/plugins/index.js.map +1 -1
  143. package/dist/loaders/plugins/index.mjs +121 -104
  144. package/dist/loaders/plugins/index.mjs.map +1 -1
  145. package/dist/loaders/policies.js +24 -20
  146. package/dist/loaders/policies.js.map +1 -1
  147. package/dist/loaders/policies.mjs +23 -20
  148. package/dist/loaders/policies.mjs.map +1 -1
  149. package/dist/loaders/sanitizers.js +10 -4
  150. package/dist/loaders/sanitizers.js.map +1 -1
  151. package/dist/loaders/sanitizers.mjs +9 -6
  152. package/dist/loaders/sanitizers.mjs.map +1 -1
  153. package/dist/loaders/src-index.js +35 -27
  154. package/dist/loaders/src-index.js.map +1 -1
  155. package/dist/loaders/src-index.mjs +34 -29
  156. package/dist/loaders/src-index.mjs.map +1 -1
  157. package/dist/loaders/validators.js +9 -4
  158. package/dist/loaders/validators.js.map +1 -1
  159. package/dist/loaders/validators.mjs +8 -6
  160. package/dist/loaders/validators.mjs.map +1 -1
  161. package/dist/middlewares/body.d.ts.map +1 -1
  162. package/dist/middlewares/body.js +58 -54
  163. package/dist/middlewares/body.js.map +1 -1
  164. package/dist/middlewares/body.mjs +57 -51
  165. package/dist/middlewares/body.mjs.map +1 -1
  166. package/dist/middlewares/compression.js +6 -6
  167. package/dist/middlewares/compression.js.map +1 -1
  168. package/dist/middlewares/compression.mjs +5 -5
  169. package/dist/middlewares/compression.mjs.map +1 -1
  170. package/dist/middlewares/cors.js +59 -48
  171. package/dist/middlewares/cors.js.map +1 -1
  172. package/dist/middlewares/cors.mjs +58 -47
  173. package/dist/middlewares/cors.mjs.map +1 -1
  174. package/dist/middlewares/errors.js +32 -30
  175. package/dist/middlewares/errors.js.map +1 -1
  176. package/dist/middlewares/errors.mjs +31 -31
  177. package/dist/middlewares/errors.mjs.map +1 -1
  178. package/dist/middlewares/favicon.js +27 -17
  179. package/dist/middlewares/favicon.js.map +1 -1
  180. package/dist/middlewares/favicon.mjs +26 -16
  181. package/dist/middlewares/favicon.mjs.map +1 -1
  182. package/dist/middlewares/index.js +32 -30
  183. package/dist/middlewares/index.js.map +1 -1
  184. package/dist/middlewares/index.mjs +31 -31
  185. package/dist/middlewares/index.mjs.map +1 -1
  186. package/dist/middlewares/ip.js +6 -6
  187. package/dist/middlewares/ip.js.map +1 -1
  188. package/dist/middlewares/ip.mjs +5 -5
  189. package/dist/middlewares/ip.mjs.map +1 -1
  190. package/dist/middlewares/logger.js +10 -9
  191. package/dist/middlewares/logger.js.map +1 -1
  192. package/dist/middlewares/logger.mjs +9 -10
  193. package/dist/middlewares/logger.mjs.map +1 -1
  194. package/dist/middlewares/powered-by.js +13 -9
  195. package/dist/middlewares/powered-by.js.map +1 -1
  196. package/dist/middlewares/powered-by.mjs +12 -10
  197. package/dist/middlewares/powered-by.mjs.map +1 -1
  198. package/dist/middlewares/public.js +33 -29
  199. package/dist/middlewares/public.js.map +1 -1
  200. package/dist/middlewares/public.mjs +32 -28
  201. package/dist/middlewares/public.mjs.map +1 -1
  202. package/dist/middlewares/query.js +35 -32
  203. package/dist/middlewares/query.js.map +1 -1
  204. package/dist/middlewares/query.mjs +34 -31
  205. package/dist/middlewares/query.mjs.map +1 -1
  206. package/dist/middlewares/response-time.js +10 -9
  207. package/dist/middlewares/response-time.js.map +1 -1
  208. package/dist/middlewares/response-time.mjs +9 -10
  209. package/dist/middlewares/response-time.mjs.map +1 -1
  210. package/dist/middlewares/responses.js +14 -12
  211. package/dist/middlewares/responses.js.map +1 -1
  212. package/dist/middlewares/responses.mjs +13 -13
  213. package/dist/middlewares/responses.mjs.map +1 -1
  214. package/dist/middlewares/security.d.ts.map +1 -1
  215. package/dist/middlewares/security.js +109 -71
  216. package/dist/middlewares/security.js.map +1 -1
  217. package/dist/middlewares/security.mjs +108 -70
  218. package/dist/middlewares/security.mjs.map +1 -1
  219. package/dist/middlewares/session.js +26 -25
  220. package/dist/middlewares/session.js.map +1 -1
  221. package/dist/middlewares/session.mjs +25 -24
  222. package/dist/middlewares/session.mjs.map +1 -1
  223. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +14 -11
  224. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  225. package/dist/migrations/database/5.0.0-discard-drafts.js +153 -35
  226. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
  227. package/dist/migrations/database/5.0.0-discard-drafts.mjs +152 -37
  228. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
  229. package/dist/migrations/draft-publish.d.ts +2 -2
  230. package/dist/migrations/draft-publish.d.ts.map +1 -1
  231. package/dist/migrations/draft-publish.js +61 -34
  232. package/dist/migrations/draft-publish.js.map +1 -1
  233. package/dist/migrations/draft-publish.mjs +60 -36
  234. package/dist/migrations/draft-publish.mjs.map +1 -1
  235. package/dist/migrations/i18n.d.ts +5 -0
  236. package/dist/migrations/i18n.d.ts.map +1 -0
  237. package/dist/migrations/i18n.js +71 -0
  238. package/dist/migrations/i18n.js.map +1 -0
  239. package/dist/migrations/i18n.mjs +68 -0
  240. package/dist/migrations/i18n.mjs.map +1 -0
  241. package/dist/migrations/index.d.ts +5 -0
  242. package/dist/migrations/index.d.ts.map +1 -0
  243. package/dist/migrations/index.js +29 -0
  244. package/dist/migrations/index.js.map +1 -0
  245. package/dist/migrations/index.mjs +26 -0
  246. package/dist/migrations/index.mjs.map +1 -0
  247. package/dist/package.json.js +182 -0
  248. package/dist/package.json.js.map +1 -0
  249. package/dist/package.json.mjs +159 -0
  250. package/dist/package.json.mjs.map +1 -0
  251. package/dist/providers/admin.d.ts.map +1 -1
  252. package/dist/providers/admin.js +27 -17
  253. package/dist/providers/admin.js.map +1 -1
  254. package/dist/providers/admin.mjs +26 -19
  255. package/dist/providers/admin.mjs.map +1 -1
  256. package/dist/providers/coreStore.js +13 -8
  257. package/dist/providers/coreStore.js.map +1 -1
  258. package/dist/providers/coreStore.mjs +12 -10
  259. package/dist/providers/coreStore.mjs.map +1 -1
  260. package/dist/providers/cron.js +19 -16
  261. package/dist/providers/cron.js.map +1 -1
  262. package/dist/providers/cron.mjs +18 -18
  263. package/dist/providers/cron.mjs.map +1 -1
  264. package/dist/providers/index.js +18 -9
  265. package/dist/providers/index.js.map +1 -1
  266. package/dist/providers/index.mjs +17 -10
  267. package/dist/providers/index.mjs.map +1 -1
  268. package/dist/providers/provider.js +4 -3
  269. package/dist/providers/provider.js.map +1 -1
  270. package/dist/providers/provider.mjs +3 -4
  271. package/dist/providers/provider.mjs.map +1 -1
  272. package/dist/providers/registries.js +37 -32
  273. package/dist/providers/registries.js.map +1 -1
  274. package/dist/providers/registries.mjs +36 -34
  275. package/dist/providers/registries.mjs.map +1 -1
  276. package/dist/providers/telemetry.js +19 -16
  277. package/dist/providers/telemetry.js.map +1 -1
  278. package/dist/providers/telemetry.mjs +18 -18
  279. package/dist/providers/telemetry.mjs.map +1 -1
  280. package/dist/providers/webhooks.js +28 -26
  281. package/dist/providers/webhooks.js.map +1 -1
  282. package/dist/providers/webhooks.mjs +27 -28
  283. package/dist/providers/webhooks.mjs.map +1 -1
  284. package/dist/registries/apis.js +23 -20
  285. package/dist/registries/apis.js.map +1 -1
  286. package/dist/registries/apis.mjs +22 -22
  287. package/dist/registries/apis.mjs.map +1 -1
  288. package/dist/registries/components.js +35 -37
  289. package/dist/registries/components.js.map +1 -1
  290. package/dist/registries/components.mjs +34 -39
  291. package/dist/registries/components.mjs.map +1 -1
  292. package/dist/registries/content-types.js +54 -59
  293. package/dist/registries/content-types.js.map +1 -1
  294. package/dist/registries/content-types.mjs +53 -61
  295. package/dist/registries/content-types.mjs.map +1 -1
  296. package/dist/registries/controllers.js +70 -71
  297. package/dist/registries/controllers.js.map +1 -1
  298. package/dist/registries/controllers.mjs +69 -73
  299. package/dist/registries/controllers.mjs.map +1 -1
  300. package/dist/registries/custom-fields.js +75 -65
  301. package/dist/registries/custom-fields.js.map +1 -1
  302. package/dist/registries/custom-fields.mjs +74 -67
  303. package/dist/registries/custom-fields.mjs.map +1 -1
  304. package/dist/registries/hooks.js +46 -49
  305. package/dist/registries/hooks.js.map +1 -1
  306. package/dist/registries/hooks.mjs +45 -51
  307. package/dist/registries/hooks.mjs.map +1 -1
  308. package/dist/registries/middlewares.js +49 -51
  309. package/dist/registries/middlewares.js.map +1 -1
  310. package/dist/registries/middlewares.mjs +48 -53
  311. package/dist/registries/middlewares.mjs.map +1 -1
  312. package/dist/registries/models.js +14 -13
  313. package/dist/registries/models.js.map +1 -1
  314. package/dist/registries/models.mjs +13 -14
  315. package/dist/registries/models.mjs.map +1 -1
  316. package/dist/registries/modules.js +39 -36
  317. package/dist/registries/modules.js.map +1 -1
  318. package/dist/registries/modules.mjs +38 -38
  319. package/dist/registries/modules.mjs.map +1 -1
  320. package/dist/registries/namespace.js +21 -20
  321. package/dist/registries/namespace.js.map +1 -1
  322. package/dist/registries/namespace.mjs +20 -23
  323. package/dist/registries/namespace.mjs.map +1 -1
  324. package/dist/registries/plugins.js +23 -20
  325. package/dist/registries/plugins.js.map +1 -1
  326. package/dist/registries/plugins.mjs +22 -22
  327. package/dist/registries/plugins.mjs.map +1 -1
  328. package/dist/registries/policies.d.ts +1 -1
  329. package/dist/registries/policies.d.ts.map +1 -1
  330. package/dist/registries/policies.js +103 -96
  331. package/dist/registries/policies.js.map +1 -1
  332. package/dist/registries/policies.mjs +102 -98
  333. package/dist/registries/policies.mjs.map +1 -1
  334. package/dist/registries/sanitizers.js +23 -22
  335. package/dist/registries/sanitizers.js.map +1 -1
  336. package/dist/registries/sanitizers.mjs +22 -22
  337. package/dist/registries/sanitizers.mjs.map +1 -1
  338. package/dist/registries/services.js +71 -71
  339. package/dist/registries/services.js.map +1 -1
  340. package/dist/registries/services.mjs +70 -73
  341. package/dist/registries/services.mjs.map +1 -1
  342. package/dist/registries/validators.js +23 -22
  343. package/dist/registries/validators.js.map +1 -1
  344. package/dist/registries/validators.mjs +22 -22
  345. package/dist/registries/validators.mjs.map +1 -1
  346. package/dist/services/auth/index.js +74 -74
  347. package/dist/services/auth/index.js.map +1 -1
  348. package/dist/services/auth/index.mjs +73 -74
  349. package/dist/services/auth/index.mjs.map +1 -1
  350. package/dist/services/config.js +47 -43
  351. package/dist/services/config.js.map +1 -1
  352. package/dist/services/config.mjs +46 -44
  353. package/dist/services/config.mjs.map +1 -1
  354. package/dist/services/content-api/index.d.ts +10 -12
  355. package/dist/services/content-api/index.d.ts.map +1 -1
  356. package/dist/services/content-api/index.js +80 -79
  357. package/dist/services/content-api/index.js.map +1 -1
  358. package/dist/services/content-api/index.mjs +79 -79
  359. package/dist/services/content-api/index.mjs.map +1 -1
  360. package/dist/services/content-api/permissions/engine.js +8 -5
  361. package/dist/services/content-api/permissions/engine.js.map +1 -1
  362. package/dist/services/content-api/permissions/engine.mjs +7 -5
  363. package/dist/services/content-api/permissions/engine.mjs.map +1 -1
  364. package/dist/services/content-api/permissions/index.d.ts +10 -12
  365. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  366. package/dist/services/content-api/permissions/index.js +101 -81
  367. package/dist/services/content-api/permissions/index.js.map +1 -1
  368. package/dist/services/content-api/permissions/index.mjs +100 -81
  369. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  370. package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
  371. package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
  372. package/dist/services/content-api/permissions/providers/action.js +17 -14
  373. package/dist/services/content-api/permissions/providers/action.js.map +1 -1
  374. package/dist/services/content-api/permissions/providers/action.mjs +16 -16
  375. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
  376. package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
  377. package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
  378. package/dist/services/content-api/permissions/providers/condition.js +17 -14
  379. package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
  380. package/dist/services/content-api/permissions/providers/condition.mjs +16 -16
  381. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
  382. package/dist/services/core-store.d.ts +2 -2
  383. package/dist/services/core-store.d.ts.map +1 -1
  384. package/dist/services/core-store.js +115 -95
  385. package/dist/services/core-store.js.map +1 -1
  386. package/dist/services/core-store.mjs +114 -97
  387. package/dist/services/core-store.mjs.map +1 -1
  388. package/dist/services/cron.d.ts +3 -3
  389. package/dist/services/cron.d.ts.map +1 -1
  390. package/dist/services/cron.js +74 -60
  391. package/dist/services/cron.js.map +1 -1
  392. package/dist/services/cron.mjs +73 -62
  393. package/dist/services/cron.mjs.map +1 -1
  394. package/dist/services/custom-fields.js +9 -7
  395. package/dist/services/custom-fields.js.map +1 -1
  396. package/dist/services/custom-fields.mjs +8 -9
  397. package/dist/services/custom-fields.mjs.map +1 -1
  398. package/dist/services/document-service/attributes/index.js +23 -18
  399. package/dist/services/document-service/attributes/index.js.map +1 -1
  400. package/dist/services/document-service/attributes/index.mjs +22 -19
  401. package/dist/services/document-service/attributes/index.mjs.map +1 -1
  402. package/dist/services/document-service/attributes/transforms.js +16 -15
  403. package/dist/services/document-service/attributes/transforms.js.map +1 -1
  404. package/dist/services/document-service/attributes/transforms.mjs +15 -15
  405. package/dist/services/document-service/attributes/transforms.mjs.map +1 -1
  406. package/dist/services/document-service/common.d.ts +1 -1
  407. package/dist/services/document-service/common.d.ts.map +1 -1
  408. package/dist/services/document-service/common.js +5 -4
  409. package/dist/services/document-service/common.js.map +1 -1
  410. package/dist/services/document-service/common.mjs +4 -5
  411. package/dist/services/document-service/common.mjs.map +1 -1
  412. package/dist/services/document-service/components.d.ts.map +1 -1
  413. package/dist/services/document-service/components.js +255 -257
  414. package/dist/services/document-service/components.js.map +1 -1
  415. package/dist/services/document-service/components.mjs +254 -262
  416. package/dist/services/document-service/components.mjs.map +1 -1
  417. package/dist/services/document-service/draft-and-publish.d.ts +1 -1
  418. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  419. package/dist/services/document-service/draft-and-publish.js +88 -48
  420. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  421. package/dist/services/document-service/draft-and-publish.mjs +87 -54
  422. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  423. package/dist/services/document-service/entries.d.ts +2 -2
  424. package/dist/services/document-service/entries.d.ts.map +1 -1
  425. package/dist/services/document-service/entries.js +151 -92
  426. package/dist/services/document-service/entries.js.map +1 -1
  427. package/dist/services/document-service/entries.mjs +150 -93
  428. package/dist/services/document-service/entries.mjs.map +1 -1
  429. package/dist/services/document-service/events.d.ts +1 -1
  430. package/dist/services/document-service/events.d.ts.map +1 -1
  431. package/dist/services/document-service/events.js +52 -40
  432. package/dist/services/document-service/events.js.map +1 -1
  433. package/dist/services/document-service/events.mjs +51 -41
  434. package/dist/services/document-service/events.mjs.map +1 -1
  435. package/dist/services/document-service/index.d.ts +2 -1
  436. package/dist/services/document-service/index.d.ts.map +1 -1
  437. package/dist/services/document-service/index.js +53 -32
  438. package/dist/services/document-service/index.js.map +1 -1
  439. package/dist/services/document-service/index.mjs +52 -33
  440. package/dist/services/document-service/index.mjs.map +1 -1
  441. package/dist/services/document-service/internationalization.js +62 -46
  442. package/dist/services/document-service/internationalization.js.map +1 -1
  443. package/dist/services/document-service/internationalization.mjs +61 -50
  444. package/dist/services/document-service/internationalization.mjs.map +1 -1
  445. package/dist/services/document-service/middlewares/errors.js +23 -19
  446. package/dist/services/document-service/middlewares/errors.js.map +1 -1
  447. package/dist/services/document-service/middlewares/errors.mjs +22 -20
  448. package/dist/services/document-service/middlewares/errors.mjs.map +1 -1
  449. package/dist/services/document-service/middlewares/middleware-manager.js +46 -44
  450. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -1
  451. package/dist/services/document-service/middlewares/middleware-manager.mjs +45 -45
  452. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -1
  453. package/dist/services/document-service/params.js +11 -5
  454. package/dist/services/document-service/params.js.map +1 -1
  455. package/dist/services/document-service/params.mjs +10 -6
  456. package/dist/services/document-service/params.mjs.map +1 -1
  457. package/dist/services/document-service/repository.d.ts.map +1 -1
  458. package/dist/services/document-service/repository.js +355 -269
  459. package/dist/services/document-service/repository.js.map +1 -1
  460. package/dist/services/document-service/repository.mjs +354 -270
  461. package/dist/services/document-service/repository.mjs.map +1 -1
  462. package/dist/services/document-service/transform/data.js +22 -12
  463. package/dist/services/document-service/transform/data.js.map +1 -1
  464. package/dist/services/document-service/transform/data.mjs +21 -13
  465. package/dist/services/document-service/transform/data.mjs.map +1 -1
  466. package/dist/services/document-service/transform/fields.js +26 -17
  467. package/dist/services/document-service/transform/fields.js.map +1 -1
  468. package/dist/services/document-service/transform/fields.mjs +25 -18
  469. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  470. package/dist/services/document-service/transform/id-map.d.ts +1 -1
  471. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  472. package/dist/services/document-service/transform/id-map.js +116 -69
  473. package/dist/services/document-service/transform/id-map.js.map +1 -1
  474. package/dist/services/document-service/transform/id-map.mjs +115 -70
  475. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  476. package/dist/services/document-service/transform/id-transform.d.ts +1 -1
  477. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  478. package/dist/services/document-service/transform/id-transform.js +37 -29
  479. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  480. package/dist/services/document-service/transform/id-transform.mjs +36 -30
  481. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  482. package/dist/services/document-service/transform/populate.js +23 -18
  483. package/dist/services/document-service/transform/populate.js.map +1 -1
  484. package/dist/services/document-service/transform/populate.mjs +22 -19
  485. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  486. package/dist/services/document-service/transform/query.js +11 -6
  487. package/dist/services/document-service/transform/query.js.map +1 -1
  488. package/dist/services/document-service/transform/query.mjs +10 -7
  489. package/dist/services/document-service/transform/query.mjs.map +1 -1
  490. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  491. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  492. package/dist/services/document-service/transform/relations/extract/data-ids.js +71 -48
  493. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  494. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +70 -49
  495. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  496. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  497. package/dist/services/document-service/transform/relations/transform/data-ids.js +97 -63
  498. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  499. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +96 -64
  500. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  501. package/dist/services/document-service/transform/relations/transform/default-locale.js +47 -29
  502. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -1
  503. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +46 -30
  504. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -1
  505. package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
  506. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  507. package/dist/services/document-service/transform/relations/utils/dp.js +52 -26
  508. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  509. package/dist/services/document-service/transform/relations/utils/dp.mjs +51 -27
  510. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  511. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
  512. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  513. package/dist/services/document-service/transform/relations/utils/i18n.js +20 -18
  514. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  515. package/dist/services/document-service/transform/relations/utils/i18n.mjs +19 -21
  516. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  517. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
  518. package/dist/services/document-service/transform/relations/utils/map-relation.js +116 -77
  519. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -1
  520. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +115 -79
  521. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -1
  522. package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
  523. package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -0
  524. package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
  525. package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
  526. package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
  527. package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
  528. package/dist/services/document-service/utils/populate.d.ts +1 -1
  529. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  530. package/dist/services/document-service/utils/populate.js +67 -41
  531. package/dist/services/document-service/utils/populate.js.map +1 -1
  532. package/dist/services/document-service/utils/populate.mjs +66 -42
  533. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  534. package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
  535. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  536. package/dist/services/document-service/utils/unidirectional-relations.js +116 -0
  537. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
  538. package/dist/services/document-service/utils/unidirectional-relations.mjs +113 -0
  539. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
  540. package/dist/services/entity-service/index.js +230 -161
  541. package/dist/services/entity-service/index.js.map +1 -1
  542. package/dist/services/entity-service/index.mjs +229 -160
  543. package/dist/services/entity-service/index.mjs.map +1 -1
  544. package/dist/services/entity-validator/blocks-validator.js +135 -103
  545. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  546. package/dist/services/entity-validator/blocks-validator.mjs +134 -104
  547. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  548. package/dist/services/entity-validator/index.d.ts +1 -1
  549. package/dist/services/entity-validator/index.d.ts.map +1 -1
  550. package/dist/services/entity-validator/index.js +362 -363
  551. package/dist/services/entity-validator/index.js.map +1 -1
  552. package/dist/services/entity-validator/index.mjs +358 -360
  553. package/dist/services/entity-validator/index.mjs.map +1 -1
  554. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  555. package/dist/services/entity-validator/validators.js +273 -208
  556. package/dist/services/entity-validator/validators.js.map +1 -1
  557. package/dist/services/entity-validator/validators.mjs +272 -214
  558. package/dist/services/entity-validator/validators.mjs.map +1 -1
  559. package/dist/services/errors.js +65 -65
  560. package/dist/services/errors.js.map +1 -1
  561. package/dist/services/errors.mjs +64 -66
  562. package/dist/services/errors.mjs.map +1 -1
  563. package/dist/services/event-hub.js +82 -69
  564. package/dist/services/event-hub.js.map +1 -1
  565. package/dist/services/event-hub.mjs +81 -71
  566. package/dist/services/event-hub.mjs.map +1 -1
  567. package/dist/services/features.js +19 -14
  568. package/dist/services/features.js.map +1 -1
  569. package/dist/services/features.mjs +18 -15
  570. package/dist/services/features.mjs.map +1 -1
  571. package/dist/services/fs.js +41 -40
  572. package/dist/services/fs.js.map +1 -1
  573. package/dist/services/fs.mjs +40 -39
  574. package/dist/services/fs.mjs.map +1 -1
  575. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  576. package/dist/services/metrics/admin-user-hash.js +13 -11
  577. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  578. package/dist/services/metrics/admin-user-hash.mjs +12 -10
  579. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  580. package/dist/services/metrics/index.js +46 -40
  581. package/dist/services/metrics/index.js.map +1 -1
  582. package/dist/services/metrics/index.mjs +45 -42
  583. package/dist/services/metrics/index.mjs.map +1 -1
  584. package/dist/services/metrics/is-truthy.js +13 -6
  585. package/dist/services/metrics/is-truthy.js.map +1 -1
  586. package/dist/services/metrics/is-truthy.mjs +12 -6
  587. package/dist/services/metrics/is-truthy.mjs.map +1 -1
  588. package/dist/services/metrics/middleware.d.ts.map +1 -1
  589. package/dist/services/metrics/middleware.js +37 -22
  590. package/dist/services/metrics/middleware.js.map +1 -1
  591. package/dist/services/metrics/middleware.mjs +36 -24
  592. package/dist/services/metrics/middleware.mjs.map +1 -1
  593. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  594. package/dist/services/metrics/rate-limiter.js +24 -19
  595. package/dist/services/metrics/rate-limiter.js.map +1 -1
  596. package/dist/services/metrics/rate-limiter.mjs +23 -21
  597. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  598. package/dist/services/metrics/sender.d.ts.map +1 -1
  599. package/dist/services/metrics/sender.js +78 -69
  600. package/dist/services/metrics/sender.js.map +1 -1
  601. package/dist/services/metrics/sender.mjs +77 -64
  602. package/dist/services/metrics/sender.mjs.map +1 -1
  603. package/dist/services/query-params.js +13 -10
  604. package/dist/services/query-params.js.map +1 -1
  605. package/dist/services/query-params.mjs +12 -12
  606. package/dist/services/query-params.mjs.map +1 -1
  607. package/dist/services/reloader.js +35 -32
  608. package/dist/services/reloader.js.map +1 -1
  609. package/dist/services/reloader.mjs +34 -33
  610. package/dist/services/reloader.mjs.map +1 -1
  611. package/dist/services/request-context.js +11 -8
  612. package/dist/services/request-context.js.map +1 -1
  613. package/dist/services/request-context.mjs +10 -10
  614. package/dist/services/request-context.mjs.map +1 -1
  615. package/dist/services/server/admin-api.js +11 -10
  616. package/dist/services/server/admin-api.js.map +1 -1
  617. package/dist/services/server/admin-api.mjs +10 -11
  618. package/dist/services/server/admin-api.mjs.map +1 -1
  619. package/dist/services/server/api.js +33 -27
  620. package/dist/services/server/api.js.map +1 -1
  621. package/dist/services/server/api.mjs +32 -26
  622. package/dist/services/server/api.mjs.map +1 -1
  623. package/dist/services/server/compose-endpoint.js +116 -105
  624. package/dist/services/server/compose-endpoint.js.map +1 -1
  625. package/dist/services/server/compose-endpoint.mjs +115 -105
  626. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  627. package/dist/services/server/content-api.js +11 -9
  628. package/dist/services/server/content-api.js.map +1 -1
  629. package/dist/services/server/content-api.mjs +10 -10
  630. package/dist/services/server/content-api.mjs.map +1 -1
  631. package/dist/services/server/http-server.js +48 -44
  632. package/dist/services/server/http-server.js.map +1 -1
  633. package/dist/services/server/http-server.mjs +47 -43
  634. package/dist/services/server/http-server.mjs.map +1 -1
  635. package/dist/services/server/index.js +85 -82
  636. package/dist/services/server/index.js.map +1 -1
  637. package/dist/services/server/index.mjs +84 -81
  638. package/dist/services/server/index.mjs.map +1 -1
  639. package/dist/services/server/koa.js +49 -47
  640. package/dist/services/server/koa.js.map +1 -1
  641. package/dist/services/server/koa.mjs +48 -44
  642. package/dist/services/server/koa.mjs.map +1 -1
  643. package/dist/services/server/middleware.js +86 -82
  644. package/dist/services/server/middleware.js.map +1 -1
  645. package/dist/services/server/middleware.mjs +85 -82
  646. package/dist/services/server/middleware.mjs.map +1 -1
  647. package/dist/services/server/policy.js +24 -17
  648. package/dist/services/server/policy.js.map +1 -1
  649. package/dist/services/server/policy.mjs +23 -18
  650. package/dist/services/server/policy.mjs.map +1 -1
  651. package/dist/services/server/register-middlewares.js +68 -61
  652. package/dist/services/server/register-middlewares.js.map +1 -1
  653. package/dist/services/server/register-middlewares.mjs +67 -63
  654. package/dist/services/server/register-middlewares.mjs.map +1 -1
  655. package/dist/services/server/register-routes.js +90 -67
  656. package/dist/services/server/register-routes.js.map +1 -1
  657. package/dist/services/server/register-routes.mjs +89 -67
  658. package/dist/services/server/register-routes.mjs.map +1 -1
  659. package/dist/services/server/routing.js +94 -81
  660. package/dist/services/server/routing.js.map +1 -1
  661. package/dist/services/server/routing.mjs +93 -81
  662. package/dist/services/server/routing.mjs.map +1 -1
  663. package/dist/services/utils/dynamic-zones.js +13 -14
  664. package/dist/services/utils/dynamic-zones.js.map +1 -1
  665. package/dist/services/utils/dynamic-zones.mjs +12 -16
  666. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  667. package/dist/services/webhook-runner.js +124 -122
  668. package/dist/services/webhook-runner.js.map +1 -1
  669. package/dist/services/webhook-runner.mjs +123 -121
  670. package/dist/services/webhook-runner.mjs.map +1 -1
  671. package/dist/services/webhook-store.js +132 -99
  672. package/dist/services/webhook-store.js.map +1 -1
  673. package/dist/services/webhook-store.mjs +131 -101
  674. package/dist/services/webhook-store.mjs.map +1 -1
  675. package/dist/services/worker-queue.js +44 -49
  676. package/dist/services/worker-queue.js.map +1 -1
  677. package/dist/services/worker-queue.mjs +43 -49
  678. package/dist/services/worker-queue.mjs.map +1 -1
  679. package/dist/utils/convert-custom-field-type.js +17 -20
  680. package/dist/utils/convert-custom-field-type.js.map +1 -1
  681. package/dist/utils/convert-custom-field-type.mjs +16 -21
  682. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  683. package/dist/utils/cron.js +64 -30
  684. package/dist/utils/cron.js.map +1 -1
  685. package/dist/utils/cron.mjs +63 -31
  686. package/dist/utils/cron.mjs.map +1 -1
  687. package/dist/utils/fetch.d.ts +5 -1
  688. package/dist/utils/fetch.d.ts.map +1 -1
  689. package/dist/utils/fetch.js +28 -18
  690. package/dist/utils/fetch.js.map +1 -1
  691. package/dist/utils/fetch.mjs +27 -19
  692. package/dist/utils/fetch.mjs.map +1 -1
  693. package/dist/utils/filepath-to-prop-path.js +20 -28
  694. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  695. package/dist/utils/filepath-to-prop-path.mjs +19 -26
  696. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  697. package/dist/utils/is-initialized.js +21 -12
  698. package/dist/utils/is-initialized.js.map +1 -1
  699. package/dist/utils/is-initialized.mjs +20 -13
  700. package/dist/utils/is-initialized.mjs.map +1 -1
  701. package/dist/utils/lifecycles.js +6 -5
  702. package/dist/utils/lifecycles.js.map +1 -1
  703. package/dist/utils/lifecycles.mjs +5 -6
  704. package/dist/utils/lifecycles.mjs.map +1 -1
  705. package/dist/utils/load-config-file.js +40 -38
  706. package/dist/utils/load-config-file.js.map +1 -1
  707. package/dist/utils/load-config-file.mjs +39 -36
  708. package/dist/utils/load-config-file.mjs.map +1 -1
  709. package/dist/utils/load-files.js +40 -35
  710. package/dist/utils/load-files.js.map +1 -1
  711. package/dist/utils/load-files.mjs +39 -32
  712. package/dist/utils/load-files.mjs.map +1 -1
  713. package/dist/utils/open-browser.js +8 -8
  714. package/dist/utils/open-browser.js.map +1 -1
  715. package/dist/utils/open-browser.mjs +7 -7
  716. package/dist/utils/open-browser.mjs.map +1 -1
  717. package/dist/utils/resolve-working-dirs.js +23 -10
  718. package/dist/utils/resolve-working-dirs.js.map +1 -1
  719. package/dist/utils/resolve-working-dirs.mjs +22 -9
  720. package/dist/utils/resolve-working-dirs.mjs.map +1 -1
  721. package/dist/utils/signals.js +20 -14
  722. package/dist/utils/signals.js.map +1 -1
  723. package/dist/utils/signals.mjs +19 -15
  724. package/dist/utils/signals.mjs.map +1 -1
  725. package/dist/utils/startup-logger.d.ts.map +1 -1
  726. package/dist/utils/startup-logger.js +107 -78
  727. package/dist/utils/startup-logger.js.map +1 -1
  728. package/dist/utils/startup-logger.mjs +106 -75
  729. package/dist/utils/startup-logger.mjs.map +1 -1
  730. package/dist/utils/transform-content-types-to-models.d.ts +356 -23
  731. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  732. package/dist/utils/transform-content-types-to-models.js +350 -260
  733. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  734. package/dist/utils/transform-content-types-to-models.mjs +349 -268
  735. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  736. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  737. package/dist/utils/update-notifier/index.js +68 -73
  738. package/dist/utils/update-notifier/index.js.map +1 -1
  739. package/dist/utils/update-notifier/index.mjs +67 -67
  740. package/dist/utils/update-notifier/index.mjs.map +1 -1
  741. package/package.json +30 -31
@@ -1 +1 @@
1
- {"version":3,"file":"get-enabled-plugins.mjs","sources":["../../../src/loaders/plugins/get-enabled-plugins.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport { dirname, join, resolve } from 'path';\nimport { statSync, existsSync } from 'fs';\nimport _ from 'lodash';\nimport { get, pickBy, defaultsDeep, map, prop, pipe } from 'lodash/fp';\nimport { strings } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { getUserPluginsConfig } from './get-user-plugins-config';\n\ninterface PluginMeta {\n enabled: boolean;\n pathToPlugin?: string;\n info: Record<string, unknown>;\n}\n\ntype PluginMetas = Record<string, PluginMeta>;\n\ninterface PluginInfo {\n name: string;\n kind: string;\n}\n\ninterface PluginDeclaration {\n enabled: boolean;\n resolve: string;\n isModule: boolean;\n}\n\n/**\n * otherwise known as \"core features\"\n *\n * NOTE: These are excluded from the content manager plugin list, as they are always enabled.\n * See admin.ts server controller on the content-manager plugin for more details.\n */\nconst INTERNAL_PLUGINS = [\n '@strapi/content-manager',\n '@strapi/content-type-builder',\n '@strapi/email',\n '@strapi/upload',\n '@strapi/i18n',\n '@strapi/content-releases',\n '@strapi/review-workflows',\n];\n\nconst isStrapiPlugin = (info: PluginInfo) => get('strapi.kind', info) === 'plugin';\n\nconst validatePluginName = (pluginName: string) => {\n if (!strings.isKebabCase(pluginName)) {\n throw new Error(`Plugin name \"${pluginName}\" is not in kebab (an-example-of-kebab-case)`);\n }\n};\n\nconst toDetailedDeclaration = (declaration: boolean | PluginDeclaration) => {\n if (typeof declaration === 'boolean') {\n return { enabled: declaration };\n }\n\n const detailedDeclaration: { enabled: boolean; pathToPlugin?: string } = {\n enabled: declaration.enabled,\n };\n\n if (declaration?.resolve) {\n let pathToPlugin = '';\n\n if (declaration.isModule) {\n /**\n * we only want the node_module here, not the package.json\n */\n pathToPlugin = join(declaration.resolve, '..');\n } else {\n try {\n pathToPlugin = dirname(require.resolve(declaration.resolve));\n } catch (e) {\n pathToPlugin = resolve(strapi.dirs.app.root, declaration.resolve);\n\n if (!existsSync(pathToPlugin) || !statSync(pathToPlugin).isDirectory()) {\n throw new Error(`${declaration.resolve} couldn't be resolved`);\n }\n }\n }\n\n detailedDeclaration.pathToPlugin = pathToPlugin;\n }\n\n return detailedDeclaration;\n};\n\nexport const getEnabledPlugins = async (strapi: Core.Strapi, { client } = { client: false }) => {\n const internalPlugins: PluginMetas = {};\n\n for (const dep of INTERNAL_PLUGINS) {\n const packagePath = join(dep, 'package.json');\n\n // NOTE: internal plugins should be resolved from the strapi package\n const packageModulePath = require.resolve(packagePath, {\n paths: [require.resolve('@strapi/strapi/package.json'), process.cwd()],\n });\n\n const packageInfo = require(packageModulePath);\n\n validatePluginName(packageInfo.strapi.name);\n internalPlugins[packageInfo.strapi.name] = {\n ...toDetailedDeclaration({ enabled: true, resolve: packagePath, isModule: client }),\n info: packageInfo.strapi,\n };\n }\n\n const installedPlugins: PluginMetas = {};\n const dependencies = strapi.config.get('info.dependencies', {});\n\n for (const dep of Object.keys(dependencies)) {\n const packagePath = join(dep, 'package.json');\n let packageInfo;\n try {\n packageInfo = require(packagePath);\n } catch {\n continue;\n }\n\n if (isStrapiPlugin(packageInfo)) {\n validatePluginName(packageInfo.strapi.name);\n installedPlugins[packageInfo.strapi.name] = {\n ...toDetailedDeclaration({ enabled: true, resolve: packagePath, isModule: client }),\n info: {\n ...packageInfo.strapi,\n packageName: packageInfo.name,\n },\n };\n }\n }\n\n const declaredPlugins: PluginMetas = {};\n const userPluginsConfig = await getUserPluginsConfig();\n\n _.forEach(userPluginsConfig, (declaration, pluginName) => {\n validatePluginName(pluginName);\n\n declaredPlugins[pluginName] = {\n ...toDetailedDeclaration(declaration),\n info: {},\n };\n\n const { pathToPlugin } = declaredPlugins[pluginName];\n\n // for manually resolved plugins\n if (pathToPlugin) {\n const packagePath = join(pathToPlugin, 'package.json');\n const packageInfo = require(packagePath);\n\n if (isStrapiPlugin(packageInfo)) {\n declaredPlugins[pluginName].info = packageInfo.strapi || {};\n }\n }\n });\n\n const declaredPluginsResolves = map(prop('pathToPlugin'), declaredPlugins);\n const installedPluginsNotAlreadyUsed = pickBy(\n (p) => !declaredPluginsResolves.includes(p.pathToPlugin),\n installedPlugins\n );\n\n const enabledPlugins = pipe(\n defaultsDeep(declaredPlugins),\n defaultsDeep(installedPluginsNotAlreadyUsed),\n pickBy((p: PluginMeta) => p.enabled)\n )(internalPlugins);\n\n return enabledPlugins;\n};\n"],"names":["strapi"],"mappings":";;;;;;AAkCA,MAAM,mBAAmB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,MAAM,iBAAiB,CAAC,SAAqB,IAAI,eAAe,IAAI,MAAM;AAE1E,MAAM,qBAAqB,CAAC,eAAuB;AACjD,MAAI,CAAC,QAAQ,YAAY,UAAU,GAAG;AACpC,UAAM,IAAI,MAAM,gBAAgB,UAAU,8CAA8C;AAAA,EAC1F;AACF;AAEA,MAAM,wBAAwB,CAAC,gBAA6C;AACtE,MAAA,OAAO,gBAAgB,WAAW;AAC7B,WAAA,EAAE,SAAS;EACpB;AAEA,QAAM,sBAAmE;AAAA,IACvE,SAAS,YAAY;AAAA,EAAA;AAGvB,MAAI,aAAa,SAAS;AACxB,QAAI,eAAe;AAEnB,QAAI,YAAY,UAAU;AAIT,qBAAA,KAAK,YAAY,SAAS,IAAI;AAAA,IAAA,OACxC;AACD,UAAA;AACF,uBAAe,QAAQ,QAAQ,QAAQ,YAAY,OAAO,CAAC;AAAA,eACpD,GAAG;AACV,uBAAe,QAAQ,OAAO,KAAK,IAAI,MAAM,YAAY,OAAO;AAE5D,YAAA,CAAC,WAAW,YAAY,KAAK,CAAC,SAAS,YAAY,EAAE,eAAe;AACtE,gBAAM,IAAI,MAAM,GAAG,YAAY,OAAO,uBAAuB;AAAA,QAC/D;AAAA,MACF;AAAA,IACF;AAEA,wBAAoB,eAAe;AAAA,EACrC;AAEO,SAAA;AACT;AAEa,MAAA,oBAAoB,OAAOA,SAAqB,EAAE,OAAW,IAAA,EAAE,QAAQ,YAAY;AAC9F,QAAM,kBAA+B,CAAA;AAErC,aAAW,OAAO,kBAAkB;AAC5B,UAAA,cAAc,KAAK,KAAK,cAAc;AAGtC,UAAA,oBAAoB,QAAQ,QAAQ,aAAa;AAAA,MACrD,OAAO,CAAC,gBAAgB,6BAA6B,GAAG,QAAQ,KAAK;AAAA,IAAA,CACtE;AAEK,UAAA,cAAc,QAAQ,iBAAiB;AAE1B,uBAAA,YAAY,OAAO,IAAI;AAC1B,oBAAA,YAAY,OAAO,IAAI,IAAI;AAAA,MACzC,GAAG,sBAAsB,EAAE,SAAS,MAAM,SAAS,aAAa,UAAU,QAAQ;AAAA,MAClF,MAAM,YAAY;AAAA,IAAA;AAAA,EAEtB;AAEA,QAAM,mBAAgC,CAAA;AACtC,QAAM,eAAeA,QAAO,OAAO,IAAI,qBAAqB,CAAA,CAAE;AAE9D,aAAW,OAAO,OAAO,KAAK,YAAY,GAAG;AACrC,UAAA,cAAc,KAAK,KAAK,cAAc;AACxC,QAAA;AACA,QAAA;AACF,oBAAc,QAAQ,WAAW;AAAA,IAAA,QAC3B;AACN;AAAA,IACF;AAEI,QAAA,eAAe,WAAW,GAAG;AACZ,yBAAA,YAAY,OAAO,IAAI;AACzB,uBAAA,YAAY,OAAO,IAAI,IAAI;AAAA,QAC1C,GAAG,sBAAsB,EAAE,SAAS,MAAM,SAAS,aAAa,UAAU,QAAQ;AAAA,QAClF,MAAM;AAAA,UACJ,GAAG,YAAY;AAAA,UACf,aAAa,YAAY;AAAA,QAC3B;AAAA,MAAA;AAAA,IAEJ;AAAA,EACF;AAEA,QAAM,kBAA+B,CAAA;AAC/B,QAAA,oBAAoB,MAAM;AAEhC,IAAE,QAAQ,mBAAmB,CAAC,aAAa,eAAe;AACxD,uBAAmB,UAAU;AAE7B,oBAAgB,UAAU,IAAI;AAAA,MAC5B,GAAG,sBAAsB,WAAW;AAAA,MACpC,MAAM,CAAC;AAAA,IAAA;AAGT,UAAM,EAAE,aAAA,IAAiB,gBAAgB,UAAU;AAGnD,QAAI,cAAc;AACV,YAAA,cAAc,KAAK,cAAc,cAAc;AAC/C,YAAA,cAAc,QAAQ,WAAW;AAEnC,UAAA,eAAe,WAAW,GAAG;AAC/B,wBAAgB,UAAU,EAAE,OAAO,YAAY,UAAU,CAAA;AAAA,MAC3D;AAAA,IACF;AAAA,EAAA,CACD;AAED,QAAM,0BAA0B,IAAI,KAAK,cAAc,GAAG,eAAe;AACzE,QAAM,iCAAiC;AAAA,IACrC,CAAC,MAAM,CAAC,wBAAwB,SAAS,EAAE,YAAY;AAAA,IACvD;AAAA,EAAA;AAGF,QAAM,iBAAiB;AAAA,IACrB,aAAa,eAAe;AAAA,IAC5B,aAAa,8BAA8B;AAAA,IAC3C,OAAO,CAAC,MAAkB,EAAE,OAAO;AAAA,IACnC,eAAe;AAEV,SAAA;AACT;"}
1
+ {"version":3,"file":"get-enabled-plugins.mjs","sources":["../../../src/loaders/plugins/get-enabled-plugins.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport { dirname, join, resolve } from 'path';\nimport { statSync, existsSync } from 'fs';\nimport _ from 'lodash';\nimport { get, pickBy, defaultsDeep, map, prop, pipe } from 'lodash/fp';\nimport { strings } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { getUserPluginsConfig } from './get-user-plugins-config';\n\ninterface PluginMeta {\n enabled: boolean;\n pathToPlugin?: string;\n info: Record<string, unknown>;\n packageInfo?: Record<string, unknown>;\n}\n\ntype PluginMetas = Record<string, PluginMeta>;\n\ninterface PluginInfo {\n name: string;\n kind: string;\n}\n\ninterface PluginDeclaration {\n enabled: boolean;\n resolve: string;\n isModule: boolean;\n}\n\n/**\n * otherwise known as \"core features\"\n *\n * NOTE: These are excluded from the content manager plugin list, as they are always enabled.\n * See admin.ts server controller on the content-manager plugin for more details.\n */\nconst INTERNAL_PLUGINS = [\n '@strapi/content-manager',\n '@strapi/content-type-builder',\n '@strapi/email',\n '@strapi/upload',\n '@strapi/i18n',\n '@strapi/content-releases',\n '@strapi/review-workflows',\n];\n\nconst isStrapiPlugin = (info: PluginInfo) => get('strapi.kind', info) === 'plugin';\n\nconst validatePluginName = (pluginName: string) => {\n if (!strings.isKebabCase(pluginName)) {\n throw new Error(`Plugin name \"${pluginName}\" is not in kebab (an-example-of-kebab-case)`);\n }\n};\n\nconst toDetailedDeclaration = (declaration: boolean | PluginDeclaration) => {\n if (typeof declaration === 'boolean') {\n return { enabled: declaration };\n }\n\n const detailedDeclaration: { enabled: boolean; pathToPlugin?: string } = {\n enabled: declaration.enabled,\n };\n\n if (declaration?.resolve) {\n let pathToPlugin = '';\n\n if (declaration.isModule) {\n /**\n * we only want the node_module here, not the package.json\n */\n pathToPlugin = join(declaration.resolve, '..');\n } else {\n try {\n pathToPlugin = dirname(require.resolve(declaration.resolve));\n } catch (e) {\n pathToPlugin = resolve(strapi.dirs.app.root, declaration.resolve);\n\n if (!existsSync(pathToPlugin) || !statSync(pathToPlugin).isDirectory()) {\n throw new Error(`${declaration.resolve} couldn't be resolved`);\n }\n }\n }\n\n detailedDeclaration.pathToPlugin = pathToPlugin;\n }\n\n return detailedDeclaration;\n};\n\nexport const getEnabledPlugins = async (strapi: Core.Strapi, { client } = { client: false }) => {\n const internalPlugins: PluginMetas = {};\n\n for (const dep of INTERNAL_PLUGINS) {\n const packagePath = join(dep, 'package.json');\n\n // NOTE: internal plugins should be resolved from the strapi package\n const packageModulePath = require.resolve(packagePath, {\n paths: [require.resolve('@strapi/strapi/package.json'), process.cwd()],\n });\n\n const packageInfo = require(packageModulePath);\n\n validatePluginName(packageInfo.strapi.name);\n internalPlugins[packageInfo.strapi.name] = {\n ...toDetailedDeclaration({ enabled: true, resolve: packageModulePath, isModule: client }),\n info: packageInfo.strapi,\n packageInfo,\n };\n }\n\n const installedPlugins: PluginMetas = {};\n const dependencies = strapi.config.get('info.dependencies', {});\n\n for (const dep of Object.keys(dependencies)) {\n const packagePath = join(dep, 'package.json');\n let packageInfo;\n try {\n packageInfo = require(packagePath);\n } catch {\n continue;\n }\n\n if (isStrapiPlugin(packageInfo)) {\n validatePluginName(packageInfo.strapi.name);\n installedPlugins[packageInfo.strapi.name] = {\n ...toDetailedDeclaration({ enabled: true, resolve: packagePath, isModule: client }),\n info: {\n ...packageInfo.strapi,\n packageName: packageInfo.name,\n },\n packageInfo,\n };\n }\n }\n\n const declaredPlugins: PluginMetas = {};\n const userPluginsConfig = await getUserPluginsConfig();\n\n _.forEach(userPluginsConfig, (declaration, pluginName) => {\n validatePluginName(pluginName);\n\n declaredPlugins[pluginName] = {\n ...toDetailedDeclaration(declaration),\n info: {},\n };\n\n const { pathToPlugin } = declaredPlugins[pluginName];\n\n // for manually resolved plugins\n if (pathToPlugin) {\n const packagePath = join(pathToPlugin, 'package.json');\n const packageInfo = require(packagePath);\n\n if (isStrapiPlugin(packageInfo)) {\n declaredPlugins[pluginName].info = packageInfo.strapi || {};\n declaredPlugins[pluginName].packageInfo = packageInfo;\n }\n }\n });\n\n const declaredPluginsResolves = map(prop('pathToPlugin'), declaredPlugins);\n const installedPluginsNotAlreadyUsed = pickBy(\n (p) => !declaredPluginsResolves.includes(p.pathToPlugin),\n installedPlugins\n );\n\n const enabledPlugins = pipe(\n defaultsDeep(declaredPlugins),\n defaultsDeep(installedPluginsNotAlreadyUsed),\n pickBy((p: PluginMeta) => p.enabled)\n )(internalPlugins);\n\n return enabledPlugins;\n};\n"],"names":["INTERNAL_PLUGINS","isStrapiPlugin","info","get","validatePluginName","pluginName","strings","isKebabCase","Error","toDetailedDeclaration","declaration","enabled","detailedDeclaration","resolve","pathToPlugin","isModule","join","dirname","require","e","strapi","dirs","app","root","existsSync","statSync","isDirectory","getEnabledPlugins","client","internalPlugins","dep","packagePath","packageModulePath","paths","process","cwd","packageInfo","name","installedPlugins","dependencies","config","Object","keys","packageName","declaredPlugins","userPluginsConfig","getUserPluginsConfig","_","forEach","declaredPluginsResolves","map","prop","installedPluginsNotAlreadyUsed","pickBy","p","includes","enabledPlugins","pipe","defaultsDeep"],"mappings":"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"}
@@ -1,27 +1,28 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const path = require("path");
4
- const fse = require("fs-extra");
5
- const fp = require("lodash/fp");
6
- const loadConfigFile = require("../../utils/load-config-file.js");
7
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
8
- const fse__default = /* @__PURE__ */ _interopDefault(fse);
9
- const getUserPluginsConfig = async () => {
10
- const globalUserConfigPath = path.join(strapi.dirs.dist.config, "plugins.js");
11
- const currentEnvUserConfigPath = path.join(
12
- strapi.dirs.dist.config,
13
- "env",
14
- process.env.NODE_ENV,
15
- "plugins.js"
16
- );
17
- let config = {};
18
- if (await fse__default.default.pathExists(globalUserConfigPath)) {
19
- config = loadConfigFile.loadConfigFile(globalUserConfigPath);
20
- }
21
- if (await fse__default.default.pathExists(currentEnvUserConfigPath)) {
22
- config = fp.merge(config, loadConfigFile.loadConfigFile(currentEnvUserConfigPath));
23
- }
24
- return config;
1
+ 'use strict';
2
+
3
+ var path = require('path');
4
+ var fse = require('fs-extra');
5
+ var fp = require('lodash/fp');
6
+ var loadConfigFile = require('../../utils/load-config-file.js');
7
+
8
+ /**
9
+ * Return user defined plugins' config
10
+ * first load config from `config/plugins.js`
11
+ * and then merge config from `config/env/{env}/plugins.js`
12
+ */ const getUserPluginsConfig = async ()=>{
13
+ const globalUserConfigPath = path.join(strapi.dirs.dist.config, 'plugins.js');
14
+ const currentEnvUserConfigPath = path.join(strapi.dirs.dist.config, 'env', process.env.NODE_ENV, 'plugins.js');
15
+ let config = {};
16
+ // assign global user config if exists
17
+ if (await fse.pathExists(globalUserConfigPath)) {
18
+ config = loadConfigFile.loadConfigFile(globalUserConfigPath);
19
+ }
20
+ // and merge user config by environment if exists
21
+ if (await fse.pathExists(currentEnvUserConfigPath)) {
22
+ config = fp.merge(config, loadConfigFile.loadConfigFile(currentEnvUserConfigPath));
23
+ }
24
+ return config;
25
25
  };
26
+
26
27
  exports.getUserPluginsConfig = getUserPluginsConfig;
27
28
  //# sourceMappingURL=get-user-plugins-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-user-plugins-config.js","sources":["../../../src/loaders/plugins/get-user-plugins-config.ts"],"sourcesContent":["import { join } from 'path';\nimport fse from 'fs-extra';\nimport { merge } from 'lodash/fp';\nimport { loadConfigFile } from '../../utils/load-config-file';\n\n/**\n * Return user defined plugins' config\n * first load config from `config/plugins.js`\n * and then merge config from `config/env/{env}/plugins.js`\n */\nexport const getUserPluginsConfig = async () => {\n const globalUserConfigPath = join(strapi.dirs.dist.config, 'plugins.js');\n const currentEnvUserConfigPath = join(\n strapi.dirs.dist.config,\n 'env',\n process.env.NODE_ENV as string,\n 'plugins.js'\n );\n let config = {};\n\n // assign global user config if exists\n if (await fse.pathExists(globalUserConfigPath)) {\n config = loadConfigFile(globalUserConfigPath);\n }\n\n // and merge user config by environment if exists\n if (await fse.pathExists(currentEnvUserConfigPath)) {\n config = merge(config, loadConfigFile(currentEnvUserConfigPath));\n }\n\n return config;\n};\n"],"names":["join","fse","loadConfigFile","merge"],"mappings":";;;;;;;;AAUO,MAAM,uBAAuB,YAAY;AAC9C,QAAM,uBAAuBA,KAAAA,KAAK,OAAO,KAAK,KAAK,QAAQ,YAAY;AACvE,QAAM,2BAA2BA,KAAA;AAAA,IAC/B,OAAO,KAAK,KAAK;AAAA,IACjB;AAAA,IACA,QAAQ,IAAI;AAAA,IACZ;AAAA,EAAA;AAEF,MAAI,SAAS,CAAA;AAGb,MAAI,MAAMC,aAAA,QAAI,WAAW,oBAAoB,GAAG;AAC9C,aAASC,eAAAA,eAAe,oBAAoB;AAAA,EAC9C;AAGA,MAAI,MAAMD,aAAA,QAAI,WAAW,wBAAwB,GAAG;AAClD,aAASE,GAAAA,MAAM,QAAQD,eAAAA,eAAe,wBAAwB,CAAC;AAAA,EACjE;AAEO,SAAA;AACT;;"}
1
+ {"version":3,"file":"get-user-plugins-config.js","sources":["../../../src/loaders/plugins/get-user-plugins-config.ts"],"sourcesContent":["import { join } from 'path';\nimport fse from 'fs-extra';\nimport { merge } from 'lodash/fp';\nimport { loadConfigFile } from '../../utils/load-config-file';\n\n/**\n * Return user defined plugins' config\n * first load config from `config/plugins.js`\n * and then merge config from `config/env/{env}/plugins.js`\n */\nexport const getUserPluginsConfig = async () => {\n const globalUserConfigPath = join(strapi.dirs.dist.config, 'plugins.js');\n const currentEnvUserConfigPath = join(\n strapi.dirs.dist.config,\n 'env',\n process.env.NODE_ENV as string,\n 'plugins.js'\n );\n let config = {};\n\n // assign global user config if exists\n if (await fse.pathExists(globalUserConfigPath)) {\n config = loadConfigFile(globalUserConfigPath);\n }\n\n // and merge user config by environment if exists\n if (await fse.pathExists(currentEnvUserConfigPath)) {\n config = merge(config, loadConfigFile(currentEnvUserConfigPath));\n }\n\n return config;\n};\n"],"names":["getUserPluginsConfig","globalUserConfigPath","join","strapi","dirs","dist","config","currentEnvUserConfigPath","process","env","NODE_ENV","fse","pathExists","loadConfigFile","merge"],"mappings":";;;;;;;AAKA;;;;UAKaA,oBAAuB,GAAA,UAAA;IAClC,MAAMC,oBAAAA,GAAuBC,UAAKC,MAAOC,CAAAA,IAAI,CAACC,IAAI,CAACC,MAAM,EAAE,YAAA,CAAA;AAC3D,IAAA,MAAMC,wBAA2BL,GAAAA,SAAAA,CAC/BC,MAAOC,CAAAA,IAAI,CAACC,IAAI,CAACC,MAAM,EACvB,KACAE,EAAAA,OAAAA,CAAQC,GAAG,CAACC,QAAQ,EACpB,YAAA,CAAA;AAEF,IAAA,IAAIJ,SAAS,EAAC;;AAGd,IAAA,IAAI,MAAMK,GAAAA,CAAIC,UAAU,CAACX,oBAAuB,CAAA,EAAA;AAC9CK,QAAAA,MAAAA,GAASO,6BAAeZ,CAAAA,oBAAAA,CAAAA;AAC1B;;AAGA,IAAA,IAAI,MAAMU,GAAAA,CAAIC,UAAU,CAACL,wBAA2B,CAAA,EAAA;QAClDD,MAASQ,GAAAA,QAAAA,CAAMR,QAAQO,6BAAeN,CAAAA,wBAAAA,CAAAA,CAAAA;AACxC;IAEA,OAAOD,MAAAA;AACT;;;;"}
@@ -1,25 +1,26 @@
1
- import { join } from "path";
2
- import fse from "fs-extra";
3
- import { merge } from "lodash/fp";
4
- import { loadConfigFile } from "../../utils/load-config-file.mjs";
5
- const getUserPluginsConfig = async () => {
6
- const globalUserConfigPath = join(strapi.dirs.dist.config, "plugins.js");
7
- const currentEnvUserConfigPath = join(
8
- strapi.dirs.dist.config,
9
- "env",
10
- process.env.NODE_ENV,
11
- "plugins.js"
12
- );
13
- let config = {};
14
- if (await fse.pathExists(globalUserConfigPath)) {
15
- config = loadConfigFile(globalUserConfigPath);
16
- }
17
- if (await fse.pathExists(currentEnvUserConfigPath)) {
18
- config = merge(config, loadConfigFile(currentEnvUserConfigPath));
19
- }
20
- return config;
21
- };
22
- export {
23
- getUserPluginsConfig
1
+ import { join } from 'path';
2
+ import fse from 'fs-extra';
3
+ import { merge } from 'lodash/fp';
4
+ import { loadConfigFile } from '../../utils/load-config-file.mjs';
5
+
6
+ /**
7
+ * Return user defined plugins' config
8
+ * first load config from `config/plugins.js`
9
+ * and then merge config from `config/env/{env}/plugins.js`
10
+ */ const getUserPluginsConfig = async ()=>{
11
+ const globalUserConfigPath = join(strapi.dirs.dist.config, 'plugins.js');
12
+ const currentEnvUserConfigPath = join(strapi.dirs.dist.config, 'env', process.env.NODE_ENV, 'plugins.js');
13
+ let config = {};
14
+ // assign global user config if exists
15
+ if (await fse.pathExists(globalUserConfigPath)) {
16
+ config = loadConfigFile(globalUserConfigPath);
17
+ }
18
+ // and merge user config by environment if exists
19
+ if (await fse.pathExists(currentEnvUserConfigPath)) {
20
+ config = merge(config, loadConfigFile(currentEnvUserConfigPath));
21
+ }
22
+ return config;
24
23
  };
24
+
25
+ export { getUserPluginsConfig };
25
26
  //# sourceMappingURL=get-user-plugins-config.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-user-plugins-config.mjs","sources":["../../../src/loaders/plugins/get-user-plugins-config.ts"],"sourcesContent":["import { join } from 'path';\nimport fse from 'fs-extra';\nimport { merge } from 'lodash/fp';\nimport { loadConfigFile } from '../../utils/load-config-file';\n\n/**\n * Return user defined plugins' config\n * first load config from `config/plugins.js`\n * and then merge config from `config/env/{env}/plugins.js`\n */\nexport const getUserPluginsConfig = async () => {\n const globalUserConfigPath = join(strapi.dirs.dist.config, 'plugins.js');\n const currentEnvUserConfigPath = join(\n strapi.dirs.dist.config,\n 'env',\n process.env.NODE_ENV as string,\n 'plugins.js'\n );\n let config = {};\n\n // assign global user config if exists\n if (await fse.pathExists(globalUserConfigPath)) {\n config = loadConfigFile(globalUserConfigPath);\n }\n\n // and merge user config by environment if exists\n if (await fse.pathExists(currentEnvUserConfigPath)) {\n config = merge(config, loadConfigFile(currentEnvUserConfigPath));\n }\n\n return config;\n};\n"],"names":[],"mappings":";;;;AAUO,MAAM,uBAAuB,YAAY;AAC9C,QAAM,uBAAuB,KAAK,OAAO,KAAK,KAAK,QAAQ,YAAY;AACvE,QAAM,2BAA2B;AAAA,IAC/B,OAAO,KAAK,KAAK;AAAA,IACjB;AAAA,IACA,QAAQ,IAAI;AAAA,IACZ;AAAA,EAAA;AAEF,MAAI,SAAS,CAAA;AAGb,MAAI,MAAM,IAAI,WAAW,oBAAoB,GAAG;AAC9C,aAAS,eAAe,oBAAoB;AAAA,EAC9C;AAGA,MAAI,MAAM,IAAI,WAAW,wBAAwB,GAAG;AAClD,aAAS,MAAM,QAAQ,eAAe,wBAAwB,CAAC;AAAA,EACjE;AAEO,SAAA;AACT;"}
1
+ {"version":3,"file":"get-user-plugins-config.mjs","sources":["../../../src/loaders/plugins/get-user-plugins-config.ts"],"sourcesContent":["import { join } from 'path';\nimport fse from 'fs-extra';\nimport { merge } from 'lodash/fp';\nimport { loadConfigFile } from '../../utils/load-config-file';\n\n/**\n * Return user defined plugins' config\n * first load config from `config/plugins.js`\n * and then merge config from `config/env/{env}/plugins.js`\n */\nexport const getUserPluginsConfig = async () => {\n const globalUserConfigPath = join(strapi.dirs.dist.config, 'plugins.js');\n const currentEnvUserConfigPath = join(\n strapi.dirs.dist.config,\n 'env',\n process.env.NODE_ENV as string,\n 'plugins.js'\n );\n let config = {};\n\n // assign global user config if exists\n if (await fse.pathExists(globalUserConfigPath)) {\n config = loadConfigFile(globalUserConfigPath);\n }\n\n // and merge user config by environment if exists\n if (await fse.pathExists(currentEnvUserConfigPath)) {\n config = merge(config, loadConfigFile(currentEnvUserConfigPath));\n }\n\n return config;\n};\n"],"names":["getUserPluginsConfig","globalUserConfigPath","join","strapi","dirs","dist","config","currentEnvUserConfigPath","process","env","NODE_ENV","fse","pathExists","loadConfigFile","merge"],"mappings":";;;;;AAKA;;;;UAKaA,oBAAuB,GAAA,UAAA;IAClC,MAAMC,oBAAAA,GAAuBC,KAAKC,MAAOC,CAAAA,IAAI,CAACC,IAAI,CAACC,MAAM,EAAE,YAAA,CAAA;AAC3D,IAAA,MAAMC,wBAA2BL,GAAAA,IAAAA,CAC/BC,MAAOC,CAAAA,IAAI,CAACC,IAAI,CAACC,MAAM,EACvB,KACAE,EAAAA,OAAAA,CAAQC,GAAG,CAACC,QAAQ,EACpB,YAAA,CAAA;AAEF,IAAA,IAAIJ,SAAS,EAAC;;AAGd,IAAA,IAAI,MAAMK,GAAAA,CAAIC,UAAU,CAACX,oBAAuB,CAAA,EAAA;AAC9CK,QAAAA,MAAAA,GAASO,cAAeZ,CAAAA,oBAAAA,CAAAA;AAC1B;;AAGA,IAAA,IAAI,MAAMU,GAAAA,CAAIC,UAAU,CAACL,wBAA2B,CAAA,EAAA;QAClDD,MAASQ,GAAAA,KAAAA,CAAMR,QAAQO,cAAeN,CAAAA,wBAAAA,CAAAA,CAAAA;AACxC;IAEA,OAAOD,MAAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/loaders/plugins/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAkB,MAAM,eAAe,CAAC;AAiF1D,wBAA8B,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,iBA0C5D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/loaders/plugins/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,IAAI,EAAkB,MAAM,eAAe,CAAC;AAiF1D,wBAA8B,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,iBAqD5D"}
@@ -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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"}