@strapi/core 0.0.0-experimental.c592deb623aed3f74ef7fdacfad9757ed59d34f7 → 0.0.0-experimental.c72b48da735f44a3ccafb7a6dc9ba5213f3844db

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 (718) 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.js +73 -60
  54. package/dist/core-api/service/collection-type.js.map +1 -1
  55. package/dist/core-api/service/collection-type.mjs +72 -62
  56. package/dist/core-api/service/collection-type.mjs.map +1 -1
  57. package/dist/core-api/service/core-service.js +9 -8
  58. package/dist/core-api/service/core-service.js.map +1 -1
  59. package/dist/core-api/service/core-service.mjs +8 -9
  60. package/dist/core-api/service/core-service.mjs.map +1 -1
  61. package/dist/core-api/service/index.js +13 -13
  62. package/dist/core-api/service/index.js.map +1 -1
  63. package/dist/core-api/service/index.mjs +12 -14
  64. package/dist/core-api/service/index.mjs.map +1 -1
  65. package/dist/core-api/service/pagination.js +69 -43
  66. package/dist/core-api/service/pagination.js.map +1 -1
  67. package/dist/core-api/service/pagination.mjs +68 -47
  68. package/dist/core-api/service/pagination.mjs.map +1 -1
  69. package/dist/core-api/service/single-type.js +43 -39
  70. package/dist/core-api/service/single-type.js.map +1 -1
  71. package/dist/core-api/service/single-type.mjs +42 -41
  72. package/dist/core-api/service/single-type.mjs.map +1 -1
  73. package/dist/domain/content-type/index.js +95 -100
  74. package/dist/domain/content-type/index.js.map +1 -1
  75. package/dist/domain/content-type/index.mjs +94 -100
  76. package/dist/domain/content-type/index.mjs.map +1 -1
  77. package/dist/domain/content-type/validator.js +84 -69
  78. package/dist/domain/content-type/validator.js.map +1 -1
  79. package/dist/domain/content-type/validator.mjs +83 -68
  80. package/dist/domain/content-type/validator.mjs.map +1 -1
  81. package/dist/domain/module/index.js +109 -100
  82. package/dist/domain/module/index.js.map +1 -1
  83. package/dist/domain/module/index.mjs +108 -99
  84. package/dist/domain/module/index.mjs.map +1 -1
  85. package/dist/domain/module/validation.js +25 -20
  86. package/dist/domain/module/validation.js.map +1 -1
  87. package/dist/domain/module/validation.mjs +24 -21
  88. package/dist/domain/module/validation.mjs.map +1 -1
  89. package/dist/ee/index.d.ts +1 -0
  90. package/dist/ee/index.d.ts.map +1 -1
  91. package/dist/ee/index.js +171 -132
  92. package/dist/ee/index.js.map +1 -1
  93. package/dist/ee/index.mjs +170 -134
  94. package/dist/ee/index.mjs.map +1 -1
  95. package/dist/ee/license.d.ts.map +1 -1
  96. package/dist/ee/license.js +100 -75
  97. package/dist/ee/license.js.map +1 -1
  98. package/dist/ee/license.mjs +99 -76
  99. package/dist/ee/license.mjs.map +1 -1
  100. package/dist/factories.js +72 -67
  101. package/dist/factories.js.map +1 -1
  102. package/dist/factories.mjs +71 -71
  103. package/dist/factories.mjs.map +1 -1
  104. package/dist/index.js +29 -26
  105. package/dist/index.js.map +1 -1
  106. package/dist/index.mjs +29 -29
  107. package/dist/index.mjs.map +1 -1
  108. package/dist/loaders/admin.d.ts.map +1 -1
  109. package/dist/loaders/admin.js +21 -20
  110. package/dist/loaders/admin.js.map +1 -1
  111. package/dist/loaders/admin.mjs +20 -20
  112. package/dist/loaders/admin.mjs.map +1 -1
  113. package/dist/loaders/apis.js +143 -120
  114. package/dist/loaders/apis.js.map +1 -1
  115. package/dist/loaders/apis.mjs +142 -119
  116. package/dist/loaders/apis.mjs.map +1 -1
  117. package/dist/loaders/components.js +33 -34
  118. package/dist/loaders/components.js.map +1 -1
  119. package/dist/loaders/components.mjs +32 -34
  120. package/dist/loaders/components.mjs.map +1 -1
  121. package/dist/loaders/index.js +22 -20
  122. package/dist/loaders/index.js.map +1 -1
  123. package/dist/loaders/index.mjs +21 -21
  124. package/dist/loaders/index.mjs.map +1 -1
  125. package/dist/loaders/middlewares.js +29 -25
  126. package/dist/loaders/middlewares.js.map +1 -1
  127. package/dist/loaders/middlewares.mjs +28 -25
  128. package/dist/loaders/middlewares.mjs.map +1 -1
  129. package/dist/loaders/plugins/get-enabled-plugins.js +126 -131
  130. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  131. package/dist/loaders/plugins/get-enabled-plugins.mjs +125 -108
  132. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  133. package/dist/loaders/plugins/get-user-plugins-config.js +25 -24
  134. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  135. package/dist/loaders/plugins/get-user-plugins-config.mjs +24 -23
  136. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  137. package/dist/loaders/plugins/index.js +132 -122
  138. package/dist/loaders/plugins/index.js.map +1 -1
  139. package/dist/loaders/plugins/index.mjs +121 -112
  140. package/dist/loaders/plugins/index.mjs.map +1 -1
  141. package/dist/loaders/policies.js +24 -20
  142. package/dist/loaders/policies.js.map +1 -1
  143. package/dist/loaders/policies.mjs +23 -20
  144. package/dist/loaders/policies.mjs.map +1 -1
  145. package/dist/loaders/sanitizers.js +10 -4
  146. package/dist/loaders/sanitizers.js.map +1 -1
  147. package/dist/loaders/sanitizers.mjs +9 -6
  148. package/dist/loaders/sanitizers.mjs.map +1 -1
  149. package/dist/loaders/src-index.js +35 -27
  150. package/dist/loaders/src-index.js.map +1 -1
  151. package/dist/loaders/src-index.mjs +34 -29
  152. package/dist/loaders/src-index.mjs.map +1 -1
  153. package/dist/loaders/validators.js +9 -4
  154. package/dist/loaders/validators.js.map +1 -1
  155. package/dist/loaders/validators.mjs +8 -6
  156. package/dist/loaders/validators.mjs.map +1 -1
  157. package/dist/middlewares/body.d.ts.map +1 -1
  158. package/dist/middlewares/body.js +58 -54
  159. package/dist/middlewares/body.js.map +1 -1
  160. package/dist/middlewares/body.mjs +57 -51
  161. package/dist/middlewares/body.mjs.map +1 -1
  162. package/dist/middlewares/compression.js +6 -6
  163. package/dist/middlewares/compression.js.map +1 -1
  164. package/dist/middlewares/compression.mjs +5 -5
  165. package/dist/middlewares/compression.mjs.map +1 -1
  166. package/dist/middlewares/cors.js +59 -48
  167. package/dist/middlewares/cors.js.map +1 -1
  168. package/dist/middlewares/cors.mjs +58 -47
  169. package/dist/middlewares/cors.mjs.map +1 -1
  170. package/dist/middlewares/errors.js +32 -30
  171. package/dist/middlewares/errors.js.map +1 -1
  172. package/dist/middlewares/errors.mjs +31 -31
  173. package/dist/middlewares/errors.mjs.map +1 -1
  174. package/dist/middlewares/favicon.js +27 -17
  175. package/dist/middlewares/favicon.js.map +1 -1
  176. package/dist/middlewares/favicon.mjs +26 -16
  177. package/dist/middlewares/favicon.mjs.map +1 -1
  178. package/dist/middlewares/index.js +32 -30
  179. package/dist/middlewares/index.js.map +1 -1
  180. package/dist/middlewares/index.mjs +31 -31
  181. package/dist/middlewares/index.mjs.map +1 -1
  182. package/dist/middlewares/ip.js +6 -6
  183. package/dist/middlewares/ip.js.map +1 -1
  184. package/dist/middlewares/ip.mjs +5 -5
  185. package/dist/middlewares/ip.mjs.map +1 -1
  186. package/dist/middlewares/logger.js +10 -9
  187. package/dist/middlewares/logger.js.map +1 -1
  188. package/dist/middlewares/logger.mjs +9 -10
  189. package/dist/middlewares/logger.mjs.map +1 -1
  190. package/dist/middlewares/powered-by.js +13 -9
  191. package/dist/middlewares/powered-by.js.map +1 -1
  192. package/dist/middlewares/powered-by.mjs +12 -10
  193. package/dist/middlewares/powered-by.mjs.map +1 -1
  194. package/dist/middlewares/public.js +33 -29
  195. package/dist/middlewares/public.js.map +1 -1
  196. package/dist/middlewares/public.mjs +32 -28
  197. package/dist/middlewares/public.mjs.map +1 -1
  198. package/dist/middlewares/query.js +35 -32
  199. package/dist/middlewares/query.js.map +1 -1
  200. package/dist/middlewares/query.mjs +34 -31
  201. package/dist/middlewares/query.mjs.map +1 -1
  202. package/dist/middlewares/response-time.js +10 -9
  203. package/dist/middlewares/response-time.js.map +1 -1
  204. package/dist/middlewares/response-time.mjs +9 -10
  205. package/dist/middlewares/response-time.mjs.map +1 -1
  206. package/dist/middlewares/responses.js +14 -12
  207. package/dist/middlewares/responses.js.map +1 -1
  208. package/dist/middlewares/responses.mjs +13 -13
  209. package/dist/middlewares/responses.mjs.map +1 -1
  210. package/dist/middlewares/security.js +109 -71
  211. package/dist/middlewares/security.js.map +1 -1
  212. package/dist/middlewares/security.mjs +108 -70
  213. package/dist/middlewares/security.mjs.map +1 -1
  214. package/dist/middlewares/session.js +26 -25
  215. package/dist/middlewares/session.js.map +1 -1
  216. package/dist/middlewares/session.mjs +25 -24
  217. package/dist/middlewares/session.mjs.map +1 -1
  218. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +2 -2
  219. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  220. package/dist/migrations/database/5.0.0-discard-drafts.js +154 -80
  221. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
  222. package/dist/migrations/database/5.0.0-discard-drafts.mjs +153 -82
  223. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
  224. package/dist/migrations/draft-publish.d.ts +2 -2
  225. package/dist/migrations/draft-publish.d.ts.map +1 -1
  226. package/dist/migrations/draft-publish.js +61 -34
  227. package/dist/migrations/draft-publish.js.map +1 -1
  228. package/dist/migrations/draft-publish.mjs +60 -36
  229. package/dist/migrations/draft-publish.mjs.map +1 -1
  230. package/dist/migrations/i18n.d.ts +5 -0
  231. package/dist/migrations/i18n.d.ts.map +1 -0
  232. package/dist/migrations/i18n.js +71 -0
  233. package/dist/migrations/i18n.js.map +1 -0
  234. package/dist/migrations/i18n.mjs +68 -0
  235. package/dist/migrations/i18n.mjs.map +1 -0
  236. package/dist/migrations/index.d.ts +5 -0
  237. package/dist/migrations/index.d.ts.map +1 -0
  238. package/dist/migrations/index.js +29 -0
  239. package/dist/migrations/index.js.map +1 -0
  240. package/dist/migrations/index.mjs +26 -0
  241. package/dist/migrations/index.mjs.map +1 -0
  242. package/dist/package.json.js +182 -0
  243. package/dist/package.json.js.map +1 -0
  244. package/dist/package.json.mjs +159 -0
  245. package/dist/package.json.mjs.map +1 -0
  246. package/dist/providers/admin.js +27 -17
  247. package/dist/providers/admin.js.map +1 -1
  248. package/dist/providers/admin.mjs +26 -19
  249. package/dist/providers/admin.mjs.map +1 -1
  250. package/dist/providers/coreStore.js +13 -8
  251. package/dist/providers/coreStore.js.map +1 -1
  252. package/dist/providers/coreStore.mjs +12 -10
  253. package/dist/providers/coreStore.mjs.map +1 -1
  254. package/dist/providers/cron.js +19 -16
  255. package/dist/providers/cron.js.map +1 -1
  256. package/dist/providers/cron.mjs +18 -18
  257. package/dist/providers/cron.mjs.map +1 -1
  258. package/dist/providers/index.js +18 -9
  259. package/dist/providers/index.js.map +1 -1
  260. package/dist/providers/index.mjs +17 -10
  261. package/dist/providers/index.mjs.map +1 -1
  262. package/dist/providers/provider.js +4 -3
  263. package/dist/providers/provider.js.map +1 -1
  264. package/dist/providers/provider.mjs +3 -4
  265. package/dist/providers/provider.mjs.map +1 -1
  266. package/dist/providers/registries.js +37 -32
  267. package/dist/providers/registries.js.map +1 -1
  268. package/dist/providers/registries.mjs +36 -34
  269. package/dist/providers/registries.mjs.map +1 -1
  270. package/dist/providers/telemetry.js +19 -16
  271. package/dist/providers/telemetry.js.map +1 -1
  272. package/dist/providers/telemetry.mjs +18 -18
  273. package/dist/providers/telemetry.mjs.map +1 -1
  274. package/dist/providers/webhooks.js +28 -26
  275. package/dist/providers/webhooks.js.map +1 -1
  276. package/dist/providers/webhooks.mjs +27 -28
  277. package/dist/providers/webhooks.mjs.map +1 -1
  278. package/dist/registries/apis.js +23 -20
  279. package/dist/registries/apis.js.map +1 -1
  280. package/dist/registries/apis.mjs +22 -22
  281. package/dist/registries/apis.mjs.map +1 -1
  282. package/dist/registries/components.js +35 -37
  283. package/dist/registries/components.js.map +1 -1
  284. package/dist/registries/components.mjs +34 -39
  285. package/dist/registries/components.mjs.map +1 -1
  286. package/dist/registries/content-types.js +54 -59
  287. package/dist/registries/content-types.js.map +1 -1
  288. package/dist/registries/content-types.mjs +53 -61
  289. package/dist/registries/content-types.mjs.map +1 -1
  290. package/dist/registries/controllers.js +70 -71
  291. package/dist/registries/controllers.js.map +1 -1
  292. package/dist/registries/controllers.mjs +69 -73
  293. package/dist/registries/controllers.mjs.map +1 -1
  294. package/dist/registries/custom-fields.js +75 -65
  295. package/dist/registries/custom-fields.js.map +1 -1
  296. package/dist/registries/custom-fields.mjs +74 -67
  297. package/dist/registries/custom-fields.mjs.map +1 -1
  298. package/dist/registries/hooks.js +46 -49
  299. package/dist/registries/hooks.js.map +1 -1
  300. package/dist/registries/hooks.mjs +45 -51
  301. package/dist/registries/hooks.mjs.map +1 -1
  302. package/dist/registries/middlewares.js +49 -51
  303. package/dist/registries/middlewares.js.map +1 -1
  304. package/dist/registries/middlewares.mjs +48 -53
  305. package/dist/registries/middlewares.mjs.map +1 -1
  306. package/dist/registries/models.js +14 -13
  307. package/dist/registries/models.js.map +1 -1
  308. package/dist/registries/models.mjs +13 -14
  309. package/dist/registries/models.mjs.map +1 -1
  310. package/dist/registries/modules.js +39 -36
  311. package/dist/registries/modules.js.map +1 -1
  312. package/dist/registries/modules.mjs +38 -38
  313. package/dist/registries/modules.mjs.map +1 -1
  314. package/dist/registries/namespace.js +21 -20
  315. package/dist/registries/namespace.js.map +1 -1
  316. package/dist/registries/namespace.mjs +20 -23
  317. package/dist/registries/namespace.mjs.map +1 -1
  318. package/dist/registries/plugins.js +23 -20
  319. package/dist/registries/plugins.js.map +1 -1
  320. package/dist/registries/plugins.mjs +22 -22
  321. package/dist/registries/plugins.mjs.map +1 -1
  322. package/dist/registries/policies.js +103 -96
  323. package/dist/registries/policies.js.map +1 -1
  324. package/dist/registries/policies.mjs +102 -98
  325. package/dist/registries/policies.mjs.map +1 -1
  326. package/dist/registries/sanitizers.js +23 -22
  327. package/dist/registries/sanitizers.js.map +1 -1
  328. package/dist/registries/sanitizers.mjs +22 -22
  329. package/dist/registries/sanitizers.mjs.map +1 -1
  330. package/dist/registries/services.js +71 -71
  331. package/dist/registries/services.js.map +1 -1
  332. package/dist/registries/services.mjs +70 -73
  333. package/dist/registries/services.mjs.map +1 -1
  334. package/dist/registries/validators.js +23 -22
  335. package/dist/registries/validators.js.map +1 -1
  336. package/dist/registries/validators.mjs +22 -22
  337. package/dist/registries/validators.mjs.map +1 -1
  338. package/dist/services/auth/index.js +74 -74
  339. package/dist/services/auth/index.js.map +1 -1
  340. package/dist/services/auth/index.mjs +73 -74
  341. package/dist/services/auth/index.mjs.map +1 -1
  342. package/dist/services/config.js +47 -43
  343. package/dist/services/config.js.map +1 -1
  344. package/dist/services/config.mjs +46 -44
  345. package/dist/services/config.mjs.map +1 -1
  346. package/dist/services/content-api/index.js +80 -79
  347. package/dist/services/content-api/index.js.map +1 -1
  348. package/dist/services/content-api/index.mjs +79 -79
  349. package/dist/services/content-api/index.mjs.map +1 -1
  350. package/dist/services/content-api/permissions/engine.js +8 -5
  351. package/dist/services/content-api/permissions/engine.js.map +1 -1
  352. package/dist/services/content-api/permissions/engine.mjs +7 -5
  353. package/dist/services/content-api/permissions/engine.mjs.map +1 -1
  354. package/dist/services/content-api/permissions/index.js +101 -81
  355. package/dist/services/content-api/permissions/index.js.map +1 -1
  356. package/dist/services/content-api/permissions/index.mjs +100 -81
  357. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  358. package/dist/services/content-api/permissions/providers/action.js +17 -14
  359. package/dist/services/content-api/permissions/providers/action.js.map +1 -1
  360. package/dist/services/content-api/permissions/providers/action.mjs +16 -16
  361. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
  362. package/dist/services/content-api/permissions/providers/condition.js +17 -14
  363. package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
  364. package/dist/services/content-api/permissions/providers/condition.mjs +16 -16
  365. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
  366. package/dist/services/core-store.js +115 -95
  367. package/dist/services/core-store.js.map +1 -1
  368. package/dist/services/core-store.mjs +114 -97
  369. package/dist/services/core-store.mjs.map +1 -1
  370. package/dist/services/cron.js +74 -60
  371. package/dist/services/cron.js.map +1 -1
  372. package/dist/services/cron.mjs +73 -62
  373. package/dist/services/cron.mjs.map +1 -1
  374. package/dist/services/custom-fields.js +9 -7
  375. package/dist/services/custom-fields.js.map +1 -1
  376. package/dist/services/custom-fields.mjs +8 -9
  377. package/dist/services/custom-fields.mjs.map +1 -1
  378. package/dist/services/document-service/attributes/index.js +23 -18
  379. package/dist/services/document-service/attributes/index.js.map +1 -1
  380. package/dist/services/document-service/attributes/index.mjs +22 -19
  381. package/dist/services/document-service/attributes/index.mjs.map +1 -1
  382. package/dist/services/document-service/attributes/transforms.js +16 -15
  383. package/dist/services/document-service/attributes/transforms.js.map +1 -1
  384. package/dist/services/document-service/attributes/transforms.mjs +15 -15
  385. package/dist/services/document-service/attributes/transforms.mjs.map +1 -1
  386. package/dist/services/document-service/common.d.ts +1 -1
  387. package/dist/services/document-service/common.d.ts.map +1 -1
  388. package/dist/services/document-service/common.js +5 -4
  389. package/dist/services/document-service/common.js.map +1 -1
  390. package/dist/services/document-service/common.mjs +4 -5
  391. package/dist/services/document-service/common.mjs.map +1 -1
  392. package/dist/services/document-service/components.d.ts.map +1 -1
  393. package/dist/services/document-service/components.js +255 -257
  394. package/dist/services/document-service/components.js.map +1 -1
  395. package/dist/services/document-service/components.mjs +254 -262
  396. package/dist/services/document-service/components.mjs.map +1 -1
  397. package/dist/services/document-service/draft-and-publish.d.ts +1 -1
  398. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  399. package/dist/services/document-service/draft-and-publish.js +88 -48
  400. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  401. package/dist/services/document-service/draft-and-publish.mjs +87 -54
  402. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  403. package/dist/services/document-service/entries.d.ts +2 -2
  404. package/dist/services/document-service/entries.d.ts.map +1 -1
  405. package/dist/services/document-service/entries.js +109 -92
  406. package/dist/services/document-service/entries.js.map +1 -1
  407. package/dist/services/document-service/entries.mjs +108 -93
  408. package/dist/services/document-service/entries.mjs.map +1 -1
  409. package/dist/services/document-service/events.d.ts +1 -1
  410. package/dist/services/document-service/events.d.ts.map +1 -1
  411. package/dist/services/document-service/events.js +52 -40
  412. package/dist/services/document-service/events.js.map +1 -1
  413. package/dist/services/document-service/events.mjs +51 -41
  414. package/dist/services/document-service/events.mjs.map +1 -1
  415. package/dist/services/document-service/index.d.ts +2 -1
  416. package/dist/services/document-service/index.d.ts.map +1 -1
  417. package/dist/services/document-service/index.js +53 -32
  418. package/dist/services/document-service/index.js.map +1 -1
  419. package/dist/services/document-service/index.mjs +52 -33
  420. package/dist/services/document-service/index.mjs.map +1 -1
  421. package/dist/services/document-service/internationalization.js +62 -46
  422. package/dist/services/document-service/internationalization.js.map +1 -1
  423. package/dist/services/document-service/internationalization.mjs +61 -50
  424. package/dist/services/document-service/internationalization.mjs.map +1 -1
  425. package/dist/services/document-service/middlewares/errors.js +23 -19
  426. package/dist/services/document-service/middlewares/errors.js.map +1 -1
  427. package/dist/services/document-service/middlewares/errors.mjs +22 -20
  428. package/dist/services/document-service/middlewares/errors.mjs.map +1 -1
  429. package/dist/services/document-service/middlewares/middleware-manager.js +46 -44
  430. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -1
  431. package/dist/services/document-service/middlewares/middleware-manager.mjs +45 -45
  432. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -1
  433. package/dist/services/document-service/params.js +11 -5
  434. package/dist/services/document-service/params.js.map +1 -1
  435. package/dist/services/document-service/params.mjs +10 -6
  436. package/dist/services/document-service/params.mjs.map +1 -1
  437. package/dist/services/document-service/repository.d.ts.map +1 -1
  438. package/dist/services/document-service/repository.js +354 -304
  439. package/dist/services/document-service/repository.js.map +1 -1
  440. package/dist/services/document-service/repository.mjs +353 -305
  441. package/dist/services/document-service/repository.mjs.map +1 -1
  442. package/dist/services/document-service/transform/data.js +22 -12
  443. package/dist/services/document-service/transform/data.js.map +1 -1
  444. package/dist/services/document-service/transform/data.mjs +21 -13
  445. package/dist/services/document-service/transform/data.mjs.map +1 -1
  446. package/dist/services/document-service/transform/fields.js +26 -17
  447. package/dist/services/document-service/transform/fields.js.map +1 -1
  448. package/dist/services/document-service/transform/fields.mjs +25 -18
  449. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  450. package/dist/services/document-service/transform/id-map.d.ts +1 -1
  451. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  452. package/dist/services/document-service/transform/id-map.js +116 -69
  453. package/dist/services/document-service/transform/id-map.js.map +1 -1
  454. package/dist/services/document-service/transform/id-map.mjs +115 -70
  455. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  456. package/dist/services/document-service/transform/id-transform.d.ts +1 -1
  457. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  458. package/dist/services/document-service/transform/id-transform.js +37 -29
  459. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  460. package/dist/services/document-service/transform/id-transform.mjs +36 -30
  461. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  462. package/dist/services/document-service/transform/populate.js +23 -18
  463. package/dist/services/document-service/transform/populate.js.map +1 -1
  464. package/dist/services/document-service/transform/populate.mjs +22 -19
  465. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  466. package/dist/services/document-service/transform/query.js +11 -6
  467. package/dist/services/document-service/transform/query.js.map +1 -1
  468. package/dist/services/document-service/transform/query.mjs +10 -7
  469. package/dist/services/document-service/transform/query.mjs.map +1 -1
  470. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  471. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  472. package/dist/services/document-service/transform/relations/extract/data-ids.js +71 -48
  473. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  474. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +70 -49
  475. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  476. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  477. package/dist/services/document-service/transform/relations/transform/data-ids.js +97 -63
  478. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  479. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +96 -64
  480. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  481. package/dist/services/document-service/transform/relations/transform/default-locale.js +47 -29
  482. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -1
  483. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +46 -30
  484. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -1
  485. package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
  486. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  487. package/dist/services/document-service/transform/relations/utils/dp.js +52 -26
  488. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  489. package/dist/services/document-service/transform/relations/utils/dp.mjs +51 -27
  490. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  491. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
  492. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  493. package/dist/services/document-service/transform/relations/utils/i18n.js +20 -18
  494. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  495. package/dist/services/document-service/transform/relations/utils/i18n.mjs +19 -21
  496. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  497. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
  498. package/dist/services/document-service/transform/relations/utils/map-relation.js +116 -77
  499. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -1
  500. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +115 -79
  501. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -1
  502. package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
  503. package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -0
  504. package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
  505. package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
  506. package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
  507. package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
  508. package/dist/services/document-service/utils/populate.d.ts +1 -1
  509. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  510. package/dist/services/document-service/utils/populate.js +66 -42
  511. package/dist/services/document-service/utils/populate.js.map +1 -1
  512. package/dist/services/document-service/utils/populate.mjs +65 -43
  513. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  514. package/dist/services/document-service/utils/unidirectional-relations.d.ts +12 -9
  515. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -1
  516. package/dist/services/document-service/utils/unidirectional-relations.js +110 -52
  517. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -1
  518. package/dist/services/document-service/utils/unidirectional-relations.mjs +109 -54
  519. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -1
  520. package/dist/services/entity-service/index.js +230 -161
  521. package/dist/services/entity-service/index.js.map +1 -1
  522. package/dist/services/entity-service/index.mjs +229 -160
  523. package/dist/services/entity-service/index.mjs.map +1 -1
  524. package/dist/services/entity-validator/blocks-validator.js +135 -103
  525. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  526. package/dist/services/entity-validator/blocks-validator.mjs +134 -104
  527. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  528. package/dist/services/entity-validator/index.d.ts +1 -1
  529. package/dist/services/entity-validator/index.d.ts.map +1 -1
  530. package/dist/services/entity-validator/index.js +362 -363
  531. package/dist/services/entity-validator/index.js.map +1 -1
  532. package/dist/services/entity-validator/index.mjs +358 -360
  533. package/dist/services/entity-validator/index.mjs.map +1 -1
  534. package/dist/services/entity-validator/validators.js +268 -210
  535. package/dist/services/entity-validator/validators.js.map +1 -1
  536. package/dist/services/entity-validator/validators.mjs +267 -216
  537. package/dist/services/entity-validator/validators.mjs.map +1 -1
  538. package/dist/services/errors.js +65 -65
  539. package/dist/services/errors.js.map +1 -1
  540. package/dist/services/errors.mjs +64 -66
  541. package/dist/services/errors.mjs.map +1 -1
  542. package/dist/services/event-hub.js +82 -69
  543. package/dist/services/event-hub.js.map +1 -1
  544. package/dist/services/event-hub.mjs +81 -71
  545. package/dist/services/event-hub.mjs.map +1 -1
  546. package/dist/services/features.js +19 -14
  547. package/dist/services/features.js.map +1 -1
  548. package/dist/services/features.mjs +18 -15
  549. package/dist/services/features.mjs.map +1 -1
  550. package/dist/services/fs.js +41 -40
  551. package/dist/services/fs.js.map +1 -1
  552. package/dist/services/fs.mjs +40 -39
  553. package/dist/services/fs.mjs.map +1 -1
  554. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  555. package/dist/services/metrics/admin-user-hash.js +13 -11
  556. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  557. package/dist/services/metrics/admin-user-hash.mjs +12 -10
  558. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  559. package/dist/services/metrics/index.js +46 -40
  560. package/dist/services/metrics/index.js.map +1 -1
  561. package/dist/services/metrics/index.mjs +45 -42
  562. package/dist/services/metrics/index.mjs.map +1 -1
  563. package/dist/services/metrics/is-truthy.js +13 -6
  564. package/dist/services/metrics/is-truthy.js.map +1 -1
  565. package/dist/services/metrics/is-truthy.mjs +12 -6
  566. package/dist/services/metrics/is-truthy.mjs.map +1 -1
  567. package/dist/services/metrics/middleware.d.ts.map +1 -1
  568. package/dist/services/metrics/middleware.js +37 -22
  569. package/dist/services/metrics/middleware.js.map +1 -1
  570. package/dist/services/metrics/middleware.mjs +36 -24
  571. package/dist/services/metrics/middleware.mjs.map +1 -1
  572. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  573. package/dist/services/metrics/rate-limiter.js +24 -19
  574. package/dist/services/metrics/rate-limiter.js.map +1 -1
  575. package/dist/services/metrics/rate-limiter.mjs +23 -21
  576. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  577. package/dist/services/metrics/sender.d.ts.map +1 -1
  578. package/dist/services/metrics/sender.js +78 -69
  579. package/dist/services/metrics/sender.js.map +1 -1
  580. package/dist/services/metrics/sender.mjs +77 -64
  581. package/dist/services/metrics/sender.mjs.map +1 -1
  582. package/dist/services/query-params.js +13 -10
  583. package/dist/services/query-params.js.map +1 -1
  584. package/dist/services/query-params.mjs +12 -12
  585. package/dist/services/query-params.mjs.map +1 -1
  586. package/dist/services/reloader.js +35 -32
  587. package/dist/services/reloader.js.map +1 -1
  588. package/dist/services/reloader.mjs +34 -33
  589. package/dist/services/reloader.mjs.map +1 -1
  590. package/dist/services/request-context.js +11 -8
  591. package/dist/services/request-context.js.map +1 -1
  592. package/dist/services/request-context.mjs +10 -10
  593. package/dist/services/request-context.mjs.map +1 -1
  594. package/dist/services/server/admin-api.js +11 -10
  595. package/dist/services/server/admin-api.js.map +1 -1
  596. package/dist/services/server/admin-api.mjs +10 -11
  597. package/dist/services/server/admin-api.mjs.map +1 -1
  598. package/dist/services/server/api.js +33 -27
  599. package/dist/services/server/api.js.map +1 -1
  600. package/dist/services/server/api.mjs +32 -26
  601. package/dist/services/server/api.mjs.map +1 -1
  602. package/dist/services/server/compose-endpoint.js +116 -105
  603. package/dist/services/server/compose-endpoint.js.map +1 -1
  604. package/dist/services/server/compose-endpoint.mjs +115 -105
  605. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  606. package/dist/services/server/content-api.js +11 -9
  607. package/dist/services/server/content-api.js.map +1 -1
  608. package/dist/services/server/content-api.mjs +10 -10
  609. package/dist/services/server/content-api.mjs.map +1 -1
  610. package/dist/services/server/http-server.js +48 -44
  611. package/dist/services/server/http-server.js.map +1 -1
  612. package/dist/services/server/http-server.mjs +47 -43
  613. package/dist/services/server/http-server.mjs.map +1 -1
  614. package/dist/services/server/index.js +85 -82
  615. package/dist/services/server/index.js.map +1 -1
  616. package/dist/services/server/index.mjs +84 -81
  617. package/dist/services/server/index.mjs.map +1 -1
  618. package/dist/services/server/koa.js +49 -47
  619. package/dist/services/server/koa.js.map +1 -1
  620. package/dist/services/server/koa.mjs +48 -44
  621. package/dist/services/server/koa.mjs.map +1 -1
  622. package/dist/services/server/middleware.js +86 -82
  623. package/dist/services/server/middleware.js.map +1 -1
  624. package/dist/services/server/middleware.mjs +85 -82
  625. package/dist/services/server/middleware.mjs.map +1 -1
  626. package/dist/services/server/policy.js +24 -17
  627. package/dist/services/server/policy.js.map +1 -1
  628. package/dist/services/server/policy.mjs +23 -18
  629. package/dist/services/server/policy.mjs.map +1 -1
  630. package/dist/services/server/register-middlewares.js +68 -61
  631. package/dist/services/server/register-middlewares.js.map +1 -1
  632. package/dist/services/server/register-middlewares.mjs +67 -63
  633. package/dist/services/server/register-middlewares.mjs.map +1 -1
  634. package/dist/services/server/register-routes.js +90 -67
  635. package/dist/services/server/register-routes.js.map +1 -1
  636. package/dist/services/server/register-routes.mjs +89 -67
  637. package/dist/services/server/register-routes.mjs.map +1 -1
  638. package/dist/services/server/routing.js +94 -81
  639. package/dist/services/server/routing.js.map +1 -1
  640. package/dist/services/server/routing.mjs +93 -81
  641. package/dist/services/server/routing.mjs.map +1 -1
  642. package/dist/services/utils/dynamic-zones.js +13 -14
  643. package/dist/services/utils/dynamic-zones.js.map +1 -1
  644. package/dist/services/utils/dynamic-zones.mjs +12 -16
  645. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  646. package/dist/services/webhook-runner.js +124 -122
  647. package/dist/services/webhook-runner.js.map +1 -1
  648. package/dist/services/webhook-runner.mjs +123 -121
  649. package/dist/services/webhook-runner.mjs.map +1 -1
  650. package/dist/services/webhook-store.js +132 -99
  651. package/dist/services/webhook-store.js.map +1 -1
  652. package/dist/services/webhook-store.mjs +131 -101
  653. package/dist/services/webhook-store.mjs.map +1 -1
  654. package/dist/services/worker-queue.js +44 -49
  655. package/dist/services/worker-queue.js.map +1 -1
  656. package/dist/services/worker-queue.mjs +43 -49
  657. package/dist/services/worker-queue.mjs.map +1 -1
  658. package/dist/utils/convert-custom-field-type.js +17 -20
  659. package/dist/utils/convert-custom-field-type.js.map +1 -1
  660. package/dist/utils/convert-custom-field-type.mjs +16 -21
  661. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  662. package/dist/utils/cron.js +64 -30
  663. package/dist/utils/cron.js.map +1 -1
  664. package/dist/utils/cron.mjs +63 -31
  665. package/dist/utils/cron.mjs.map +1 -1
  666. package/dist/utils/fetch.js +24 -18
  667. package/dist/utils/fetch.js.map +1 -1
  668. package/dist/utils/fetch.mjs +23 -19
  669. package/dist/utils/fetch.mjs.map +1 -1
  670. package/dist/utils/filepath-to-prop-path.js +20 -28
  671. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  672. package/dist/utils/filepath-to-prop-path.mjs +19 -26
  673. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  674. package/dist/utils/is-initialized.js +21 -12
  675. package/dist/utils/is-initialized.js.map +1 -1
  676. package/dist/utils/is-initialized.mjs +20 -13
  677. package/dist/utils/is-initialized.mjs.map +1 -1
  678. package/dist/utils/lifecycles.js +6 -5
  679. package/dist/utils/lifecycles.js.map +1 -1
  680. package/dist/utils/lifecycles.mjs +5 -6
  681. package/dist/utils/lifecycles.mjs.map +1 -1
  682. package/dist/utils/load-config-file.js +40 -38
  683. package/dist/utils/load-config-file.js.map +1 -1
  684. package/dist/utils/load-config-file.mjs +39 -36
  685. package/dist/utils/load-config-file.mjs.map +1 -1
  686. package/dist/utils/load-files.js +40 -35
  687. package/dist/utils/load-files.js.map +1 -1
  688. package/dist/utils/load-files.mjs +39 -32
  689. package/dist/utils/load-files.mjs.map +1 -1
  690. package/dist/utils/open-browser.js +8 -8
  691. package/dist/utils/open-browser.js.map +1 -1
  692. package/dist/utils/open-browser.mjs +7 -7
  693. package/dist/utils/open-browser.mjs.map +1 -1
  694. package/dist/utils/resolve-working-dirs.js +23 -10
  695. package/dist/utils/resolve-working-dirs.js.map +1 -1
  696. package/dist/utils/resolve-working-dirs.mjs +22 -9
  697. package/dist/utils/resolve-working-dirs.mjs.map +1 -1
  698. package/dist/utils/signals.js +20 -14
  699. package/dist/utils/signals.js.map +1 -1
  700. package/dist/utils/signals.mjs +19 -15
  701. package/dist/utils/signals.mjs.map +1 -1
  702. package/dist/utils/startup-logger.d.ts.map +1 -1
  703. package/dist/utils/startup-logger.js +107 -78
  704. package/dist/utils/startup-logger.js.map +1 -1
  705. package/dist/utils/startup-logger.mjs +106 -75
  706. package/dist/utils/startup-logger.mjs.map +1 -1
  707. package/dist/utils/transform-content-types-to-models.d.ts +353 -21
  708. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  709. package/dist/utils/transform-content-types-to-models.js +350 -261
  710. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  711. package/dist/utils/transform-content-types-to-models.mjs +349 -269
  712. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  713. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  714. package/dist/utils/update-notifier/index.js +68 -73
  715. package/dist/utils/update-notifier/index.js.map +1 -1
  716. package/dist/utils/update-notifier/index.mjs +67 -67
  717. package/dist/utils/update-notifier/index.mjs.map +1 -1
  718. 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,MAAM,gBAAgB;AAAA,EACpB,YAAY;AAAA,EAAC;AAAA,EACb,UAAU;AAAA,EAAC;AAAA,EACX,WAAW;AAAA,EAAC;AAAA,EACZ,QAAQ;AAAA,IACN,SAAS,CAAC;AAAA,IACV,YAAY;AAAA,IAAC;AAAA,EACf;AAAA,EACA,QAAQ,CAAC;AAAA,EACT,aAAa,CAAC;AAAA,EACd,UAAU,CAAC;AAAA,EACX,UAAU,CAAC;AAAA,EACX,aAAa,CAAC;AAAA,EACd,cAAc,CAAC;AACjB;AAEA,MAAM,qBAAqB,OAAO,YAAqB;AAC/C,QAAA,gBAAgB,OAAO,KAAK,KAAK;AACvC,MAAI,CAAE,MAAMA,aAAAA,QAAI,WAAW,aAAa,GAAI;AAC1C;AAAA,EACF;AAEA,QAAM,kBAAkB,MAAMC,UAAAA,UAAU,eAAe,iCAAiC;AACxF,QAAM,gBAAgB,MAAMA,UAAAA,UAAU,eAAe,qBAAqB;AAE1E,aAAW,cAAc,OAAO,KAAK,OAAO,GAAG;AACvC,UAAA,SAAS,QAAQ,UAAU;AAEjC,eAAW,UAAU,OAAO,KAAK,OAAO,YAAY,GAAG;AAC/C,YAAA,iBAAiBC,OAAI,CAAC,YAAY,iBAAiB,QAAQ,QAAQ,GAAG,eAAe;AAC3F,UAAI,gBAAgB;AACX,eAAA,aAAa,MAAM,EAAE,SAAS;AAAA,UACnC,GAAG,OAAO,aAAa,MAAM,EAAE;AAAA,UAC/B,GAAG;AAAA,QAAA;AAAA,MAEP;AAAA,IACF;AAEA,UAAM,eAAeA,GAAAA,IAAI,CAAC,YAAY,eAAe,GAAG,aAAa;AACrE,QAAI,cAAc;AAChB,cAAQ,UAAU,IAAI,MAAM,aAAa,MAAM;AAAA,IACjD;AAAA,EACF;AACF;AAEA,MAAM,kBAAkB,OAAO,YAAqB;AAC5C,QAAA,oBAAoB,MAAMC,qBAAAA;AAEhC,aAAW,cAAc,OAAO,KAAK,OAAO,GAAG;AACvC,UAAA,SAAS,QAAQ,UAAU;AACjC,UAAM,mBAAmBC,GAAM,MAAA,IAAI,GAAG,UAAU,WAAW,iBAAiB;AAC5E,UAAM,gBACJ,OAAO,OAAO,OAAO,YAAY,aAC7B,OAAO,OAAO,QAAQ,EAAEC,KAAAA,YAAAA,IAAK,CAAA,IAC7B,OAAO,OAAO;AAEd,UAAA,SAASC,GAAAA,aAAa,eAAe,gBAAgB;AACvD,QAAA;AACK,aAAA,OAAO,UAAU,MAAM;AAAA,aACvB,GAAG;AACV,UAAI,aAAa,OAAO;AACtB,cAAM,IAAI,MAAM,mBAAmB,UAAU,YAAY,EAAE,OAAO,EAAE;AAAA,MACtE;AAEM,YAAA;AAAA,IACR;AACA,WAAO,SAAS;AAAA,EAClB;AACF;AAEA,eAA8B,YAAYC,SAAqB;AAC7D,QAAM,UAAmB,CAAA;AAEnB,QAAA,iBAAiB,MAAMC,oCAAkBD,OAAM;AAErDA,UAAO,OAAO,IAAI,kBAAkB,cAAc;AAElD,aAAW,cAAc,OAAO,KAAK,cAAc,GAAG;AAC9C,UAAA,gBAAgB,eAAe,UAAU;AAE3C,QAAA;AACJ,QAAI,iBAAiB;AAEjB,QAAA;AACF,wBACEE,mBAAQ,QAAQ,cAAc,aAAa,iBAAiB;AAAA,QAC1D,SAAS;AAAA,MAAA,CACV,KAAK,sBACN;aACK,GAAG;AAAA,IAEZ;AAEI,QAAA;AACqB,6BAAAC,KAAAA,KAAK,cAAc,cAAc,cAAc;AAAA,aAC/D,GAAG;AACV,YAAM,IAAI;AAAA,QACR,4BAA4B,UAAU,YAAY,UAAU;AAAA,MAAA;AAAA,IAEhE;AAGA,QAAI,CAAE,MAAMV,aAAAA,QAAI,WAAW,oBAAoB,GAAI;AACjD;AAAA,IACF;AAEM,UAAA,eAAeW,8BAAe,oBAAoB;AACxD,YAAQ,UAAU,IAAI;AAAA,MACpB,GAAG;AAAA,MACH,GAAG;AAAA,MACH,cAAc,mBAAmB,YAAY,aAAa,gBAAgB,CAAA,CAAE;AAAA,MAC5E,QAAQC,GAAAA,SAAS,cAAc,QAAQ,aAAa,MAAM;AAAA,MAC1D,QAAQ,aAAa,UAAU,cAAc;AAAA,IAAA;AAAA,EAEjD;AAGA,QAAM,gBAAgB,OAAO;AAC7B,QAAM,mBAAmB,OAAO;AAEhC,aAAW,cAAc,OAAO,KAAK,OAAO,GAAG;AAC7CL,YAAO,IAAI,SAAS,EAAE,IAAI,YAAY,QAAQ,UAAU,CAAC;AAAA,EAC3D;AACF;AAEA,MAAM,qBAAqB,CACzB,YACA,iBACG;AACH,SAAO,OAAO,YAAY,EAAE,QAAQ,CAAC,eAAe;AAC5C,UAAA,EAAE,OAAW,IAAA;AAEnB,WAAO,OAAO,QAAQ;AAAA,MACpB,QAAQ;AAAA,MACR,gBACE,OAAO,kBAAkB,GAAG,UAAU,IAAI,OAAO,KAAK,YAAY,GAAG,YAAY;AAAA,MACnF,UAAUM,MAAAA,YAAY,QAAQ,UAAU;AAAA,IAAA,CACzC;AAAA,EAAA,CACF;AAEM,SAAA;AACT;;"}
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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"}