@strapi/core 0.0.0-experimental.74c69aeafc770d59d5b3d5d37cd249934ef395ba → 0.0.0-experimental.75b9c6babc2f67877cfc879041cfff9fb966e742

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (744) hide show
  1. package/LICENSE +18 -3
  2. package/dist/Strapi.d.ts +3 -1
  3. package/dist/Strapi.d.ts.map +1 -1
  4. package/dist/configuration/index.d.ts.map +1 -1
  5. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  6. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  7. package/dist/core-api/routes/index.d.ts.map +1 -1
  8. package/dist/core-api/service/collection-type.d.ts +3 -9
  9. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  10. package/dist/core-api/service/pagination.d.ts +4 -11
  11. package/dist/core-api/service/pagination.d.ts.map +1 -1
  12. package/dist/core-api/service/single-type.d.ts.map +1 -1
  13. package/dist/ee/index.d.ts.map +1 -1
  14. package/dist/ee/license.d.ts.map +1 -1
  15. package/dist/factories.d.ts +2 -2
  16. package/dist/factories.d.ts.map +1 -1
  17. package/dist/index.d.ts +14 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +9954 -27
  20. package/dist/index.js.map +1 -1
  21. package/dist/index.mjs +9932 -29
  22. package/dist/index.mjs.map +1 -1
  23. package/dist/loaders/apis.d.ts.map +1 -1
  24. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  25. package/dist/loaders/plugins/index.d.ts.map +1 -1
  26. package/dist/middlewares/body.d.ts.map +1 -1
  27. package/dist/middlewares/cors.d.ts.map +1 -1
  28. package/dist/middlewares/query.d.ts.map +1 -1
  29. package/dist/middlewares/security.d.ts.map +1 -1
  30. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +33 -0
  31. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -0
  32. package/dist/migrations/draft-publish.d.ts +2 -2
  33. package/dist/migrations/draft-publish.d.ts.map +1 -1
  34. package/dist/migrations/i18n.d.ts +5 -0
  35. package/dist/migrations/i18n.d.ts.map +1 -0
  36. package/dist/migrations/index.d.ts +5 -0
  37. package/dist/migrations/index.d.ts.map +1 -0
  38. package/dist/providers/admin.d.ts.map +1 -1
  39. package/dist/providers/registries.d.ts.map +1 -1
  40. package/dist/registries/policies.d.ts +1 -1
  41. package/dist/registries/policies.d.ts.map +1 -1
  42. package/dist/services/content-api/index.d.ts +10 -12
  43. package/dist/services/content-api/index.d.ts.map +1 -1
  44. package/dist/services/content-api/permissions/index.d.ts +10 -12
  45. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  46. package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
  47. package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
  48. package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
  49. package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
  50. package/dist/services/core-store.d.ts.map +1 -1
  51. package/dist/services/cron.d.ts +3 -3
  52. package/dist/services/cron.d.ts.map +1 -1
  53. package/dist/services/document-service/attributes/index.d.ts +4 -4
  54. package/dist/services/document-service/attributes/index.d.ts.map +1 -1
  55. package/dist/services/document-service/common.d.ts +1 -1
  56. package/dist/services/document-service/common.d.ts.map +1 -1
  57. package/dist/services/document-service/components.d.ts +8 -80
  58. package/dist/services/document-service/components.d.ts.map +1 -1
  59. package/dist/services/document-service/draft-and-publish.d.ts +1 -1
  60. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  61. package/dist/services/document-service/entries.d.ts +5 -3
  62. package/dist/services/document-service/entries.d.ts.map +1 -1
  63. package/dist/services/document-service/events.d.ts +25 -0
  64. package/dist/services/document-service/events.d.ts.map +1 -0
  65. package/dist/services/document-service/index.d.ts +2 -1
  66. package/dist/services/document-service/index.d.ts.map +1 -1
  67. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  68. package/dist/services/document-service/middlewares/middleware-manager.d.ts +5 -2
  69. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -1
  70. package/dist/services/document-service/params.d.ts +1 -5
  71. package/dist/services/document-service/params.d.ts.map +1 -1
  72. package/dist/services/document-service/repository.d.ts.map +1 -1
  73. package/dist/services/document-service/transform/id-map.d.ts +1 -1
  74. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  75. package/dist/services/document-service/transform/id-transform.d.ts +1 -1
  76. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  77. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  78. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  79. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  80. package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
  81. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  82. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
  83. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  84. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
  85. package/dist/services/document-service/utils/populate.d.ts +1 -1
  86. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  87. package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
  88. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  89. package/dist/services/entity-service/index.d.ts.map +1 -1
  90. package/dist/services/entity-validator/blocks-validator.d.ts +1 -2
  91. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  92. package/dist/services/entity-validator/index.d.ts +15 -1
  93. package/dist/services/entity-validator/index.d.ts.map +1 -1
  94. package/dist/services/entity-validator/validators.d.ts +36 -25
  95. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  96. package/dist/services/event-hub.d.ts +1 -0
  97. package/dist/services/event-hub.d.ts.map +1 -1
  98. package/dist/services/metrics/middleware.d.ts.map +1 -1
  99. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  100. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  101. package/dist/services/server/koa.d.ts.map +1 -1
  102. package/dist/services/webhook-runner.d.ts +2 -1
  103. package/dist/services/webhook-runner.d.ts.map +1 -1
  104. package/dist/services/webhook-store.d.ts +2 -8
  105. package/dist/services/webhook-store.d.ts.map +1 -1
  106. package/dist/utils/fetch.d.ts.map +1 -1
  107. package/dist/utils/filepath-to-prop-path.d.ts +1 -1
  108. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
  109. package/dist/utils/load-files.d.ts.map +1 -1
  110. package/dist/utils/startup-logger.d.ts.map +1 -1
  111. package/dist/utils/transform-content-types-to-models.d.ts +355 -23
  112. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  113. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  114. package/package.json +37 -34
  115. package/dist/Strapi.js +0 -387
  116. package/dist/Strapi.js.map +0 -1
  117. package/dist/Strapi.mjs +0 -385
  118. package/dist/Strapi.mjs.map +0 -1
  119. package/dist/compile.js +0 -18
  120. package/dist/compile.js.map +0 -1
  121. package/dist/compile.mjs +0 -17
  122. package/dist/compile.mjs.map +0 -1
  123. package/dist/configuration/config-loader.js +0 -106
  124. package/dist/configuration/config-loader.js.map +0 -1
  125. package/dist/configuration/config-loader.mjs +0 -104
  126. package/dist/configuration/config-loader.mjs.map +0 -1
  127. package/dist/configuration/get-dirs.js +0 -31
  128. package/dist/configuration/get-dirs.js.map +0 -1
  129. package/dist/configuration/get-dirs.mjs +0 -31
  130. package/dist/configuration/get-dirs.mjs.map +0 -1
  131. package/dist/configuration/index.js +0 -80
  132. package/dist/configuration/index.js.map +0 -1
  133. package/dist/configuration/index.mjs +0 -75
  134. package/dist/configuration/index.mjs.map +0 -1
  135. package/dist/configuration/urls.js +0 -68
  136. package/dist/configuration/urls.js.map +0 -1
  137. package/dist/configuration/urls.mjs +0 -66
  138. package/dist/configuration/urls.mjs.map +0 -1
  139. package/dist/container.js +0 -30
  140. package/dist/container.js.map +0 -1
  141. package/dist/container.mjs +0 -30
  142. package/dist/container.mjs.map +0 -1
  143. package/dist/core-api/controller/collection-type.js +0 -81
  144. package/dist/core-api/controller/collection-type.js.map +0 -1
  145. package/dist/core-api/controller/collection-type.mjs +0 -81
  146. package/dist/core-api/controller/collection-type.mjs.map +0 -1
  147. package/dist/core-api/controller/index.js +0 -52
  148. package/dist/core-api/controller/index.js.map +0 -1
  149. package/dist/core-api/controller/index.mjs +0 -52
  150. package/dist/core-api/controller/index.mjs.map +0 -1
  151. package/dist/core-api/controller/single-type.js +0 -45
  152. package/dist/core-api/controller/single-type.js.map +0 -1
  153. package/dist/core-api/controller/single-type.mjs +0 -45
  154. package/dist/core-api/controller/single-type.mjs.map +0 -1
  155. package/dist/core-api/controller/transform.js +0 -76
  156. package/dist/core-api/controller/transform.js.map +0 -1
  157. package/dist/core-api/controller/transform.mjs +0 -76
  158. package/dist/core-api/controller/transform.mjs.map +0 -1
  159. package/dist/core-api/routes/index.js +0 -67
  160. package/dist/core-api/routes/index.js.map +0 -1
  161. package/dist/core-api/routes/index.mjs +0 -67
  162. package/dist/core-api/routes/index.mjs.map +0 -1
  163. package/dist/core-api/service/collection-type.js +0 -65
  164. package/dist/core-api/service/collection-type.js.map +0 -1
  165. package/dist/core-api/service/collection-type.mjs +0 -65
  166. package/dist/core-api/service/collection-type.mjs.map +0 -1
  167. package/dist/core-api/service/core-service.js +0 -12
  168. package/dist/core-api/service/core-service.js.map +0 -1
  169. package/dist/core-api/service/core-service.mjs +0 -12
  170. package/dist/core-api/service/core-service.mjs.map +0 -1
  171. package/dist/core-api/service/index.js +0 -16
  172. package/dist/core-api/service/index.js.map +0 -1
  173. package/dist/core-api/service/index.mjs +0 -16
  174. package/dist/core-api/service/index.mjs.map +0 -1
  175. package/dist/core-api/service/pagination.js +0 -78
  176. package/dist/core-api/service/pagination.js.map +0 -1
  177. package/dist/core-api/service/pagination.mjs +0 -78
  178. package/dist/core-api/service/pagination.mjs.map +0 -1
  179. package/dist/core-api/service/single-type.js +0 -45
  180. package/dist/core-api/service/single-type.js.map +0 -1
  181. package/dist/core-api/service/single-type.mjs +0 -45
  182. package/dist/core-api/service/single-type.mjs.map +0 -1
  183. package/dist/domain/content-type/index.js +0 -111
  184. package/dist/domain/content-type/index.js.map +0 -1
  185. package/dist/domain/content-type/index.mjs +0 -109
  186. package/dist/domain/content-type/index.mjs.map +0 -1
  187. package/dist/domain/content-type/validator.js +0 -77
  188. package/dist/domain/content-type/validator.js.map +0 -1
  189. package/dist/domain/content-type/validator.mjs +0 -75
  190. package/dist/domain/content-type/validator.mjs.map +0 -1
  191. package/dist/domain/module/index.js +0 -107
  192. package/dist/domain/module/index.js.map +0 -1
  193. package/dist/domain/module/index.mjs +0 -105
  194. package/dist/domain/module/index.mjs.map +0 -1
  195. package/dist/domain/module/validation.js +0 -25
  196. package/dist/domain/module/validation.js.map +0 -1
  197. package/dist/domain/module/validation.mjs +0 -25
  198. package/dist/domain/module/validation.mjs.map +0 -1
  199. package/dist/ee/index.js +0 -153
  200. package/dist/ee/index.js.map +0 -1
  201. package/dist/ee/index.mjs +0 -154
  202. package/dist/ee/index.mjs.map +0 -1
  203. package/dist/ee/license.js +0 -90
  204. package/dist/ee/license.js.map +0 -1
  205. package/dist/ee/license.mjs +0 -87
  206. package/dist/ee/license.mjs.map +0 -1
  207. package/dist/factories.js +0 -80
  208. package/dist/factories.js.map +0 -1
  209. package/dist/factories.mjs +0 -80
  210. package/dist/factories.mjs.map +0 -1
  211. package/dist/loaders/admin.js +0 -26
  212. package/dist/loaders/admin.js.map +0 -1
  213. package/dist/loaders/admin.mjs +0 -25
  214. package/dist/loaders/admin.mjs.map +0 -1
  215. package/dist/loaders/apis.js +0 -137
  216. package/dist/loaders/apis.js.map +0 -1
  217. package/dist/loaders/apis.mjs +0 -135
  218. package/dist/loaders/apis.mjs.map +0 -1
  219. package/dist/loaders/components.js +0 -38
  220. package/dist/loaders/components.js.map +0 -1
  221. package/dist/loaders/components.mjs +0 -37
  222. package/dist/loaders/components.mjs.map +0 -1
  223. package/dist/loaders/index.js +0 -24
  224. package/dist/loaders/index.js.map +0 -1
  225. package/dist/loaders/index.mjs +0 -24
  226. package/dist/loaders/index.mjs.map +0 -1
  227. package/dist/loaders/middlewares.js +0 -31
  228. package/dist/loaders/middlewares.js.map +0 -1
  229. package/dist/loaders/middlewares.mjs +0 -30
  230. package/dist/loaders/middlewares.mjs.map +0 -1
  231. package/dist/loaders/plugins/get-enabled-plugins.js +0 -113
  232. package/dist/loaders/plugins/get-enabled-plugins.js.map +0 -1
  233. package/dist/loaders/plugins/get-enabled-plugins.mjs +0 -111
  234. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +0 -1
  235. package/dist/loaders/plugins/get-user-plugins-config.js +0 -27
  236. package/dist/loaders/plugins/get-user-plugins-config.js.map +0 -1
  237. package/dist/loaders/plugins/get-user-plugins-config.mjs +0 -25
  238. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +0 -1
  239. package/dist/loaders/plugins/index.js +0 -118
  240. package/dist/loaders/plugins/index.js.map +0 -1
  241. package/dist/loaders/plugins/index.mjs +0 -117
  242. package/dist/loaders/plugins/index.mjs.map +0 -1
  243. package/dist/loaders/policies.js +0 -25
  244. package/dist/loaders/policies.js.map +0 -1
  245. package/dist/loaders/policies.mjs +0 -24
  246. package/dist/loaders/policies.mjs.map +0 -1
  247. package/dist/loaders/sanitizers.js +0 -6
  248. package/dist/loaders/sanitizers.js.map +0 -1
  249. package/dist/loaders/sanitizers.mjs +0 -7
  250. package/dist/loaders/sanitizers.mjs.map +0 -1
  251. package/dist/loaders/src-index.js +0 -33
  252. package/dist/loaders/src-index.js.map +0 -1
  253. package/dist/loaders/src-index.mjs +0 -34
  254. package/dist/loaders/src-index.mjs.map +0 -1
  255. package/dist/loaders/validators.js +0 -6
  256. package/dist/loaders/validators.js.map +0 -1
  257. package/dist/loaders/validators.mjs +0 -7
  258. package/dist/loaders/validators.mjs.map +0 -1
  259. package/dist/middlewares/body.js +0 -65
  260. package/dist/middlewares/body.js.map +0 -1
  261. package/dist/middlewares/body.mjs +0 -61
  262. package/dist/middlewares/body.mjs.map +0 -1
  263. package/dist/middlewares/compression.js +0 -8
  264. package/dist/middlewares/compression.js.map +0 -1
  265. package/dist/middlewares/compression.mjs +0 -6
  266. package/dist/middlewares/compression.mjs.map +0 -1
  267. package/dist/middlewares/cors.js +0 -51
  268. package/dist/middlewares/cors.js.map +0 -1
  269. package/dist/middlewares/cors.mjs +0 -49
  270. package/dist/middlewares/cors.mjs.map +0 -1
  271. package/dist/middlewares/errors.js +0 -33
  272. package/dist/middlewares/errors.js.map +0 -1
  273. package/dist/middlewares/errors.mjs +0 -33
  274. package/dist/middlewares/errors.mjs.map +0 -1
  275. package/dist/middlewares/favicon.js +0 -22
  276. package/dist/middlewares/favicon.js.map +0 -1
  277. package/dist/middlewares/favicon.mjs +0 -20
  278. package/dist/middlewares/favicon.mjs.map +0 -1
  279. package/dist/middlewares/index.js +0 -34
  280. package/dist/middlewares/index.js.map +0 -1
  281. package/dist/middlewares/index.mjs +0 -34
  282. package/dist/middlewares/index.mjs.map +0 -1
  283. package/dist/middlewares/ip.js +0 -8
  284. package/dist/middlewares/ip.js.map +0 -1
  285. package/dist/middlewares/ip.mjs +0 -6
  286. package/dist/middlewares/ip.mjs.map +0 -1
  287. package/dist/middlewares/logger.js +0 -12
  288. package/dist/middlewares/logger.js.map +0 -1
  289. package/dist/middlewares/logger.mjs +0 -12
  290. package/dist/middlewares/logger.mjs.map +0 -1
  291. package/dist/middlewares/powered-by.js +0 -14
  292. package/dist/middlewares/powered-by.js.map +0 -1
  293. package/dist/middlewares/powered-by.mjs +0 -14
  294. package/dist/middlewares/powered-by.mjs.map +0 -1
  295. package/dist/middlewares/public.js +0 -34
  296. package/dist/middlewares/public.js.map +0 -1
  297. package/dist/middlewares/public.mjs +0 -32
  298. package/dist/middlewares/public.mjs.map +0 -1
  299. package/dist/middlewares/query.js +0 -40
  300. package/dist/middlewares/query.js.map +0 -1
  301. package/dist/middlewares/query.mjs +0 -38
  302. package/dist/middlewares/query.mjs.map +0 -1
  303. package/dist/middlewares/response-time.js +0 -12
  304. package/dist/middlewares/response-time.js.map +0 -1
  305. package/dist/middlewares/response-time.mjs +0 -12
  306. package/dist/middlewares/response-time.mjs.map +0 -1
  307. package/dist/middlewares/responses.js +0 -15
  308. package/dist/middlewares/responses.js.map +0 -1
  309. package/dist/middlewares/responses.mjs +0 -15
  310. package/dist/middlewares/responses.mjs.map +0 -1
  311. package/dist/middlewares/security.js +0 -71
  312. package/dist/middlewares/security.js.map +0 -1
  313. package/dist/middlewares/security.mjs +0 -69
  314. package/dist/middlewares/security.mjs.map +0 -1
  315. package/dist/middlewares/session.js +0 -30
  316. package/dist/middlewares/session.js.map +0 -1
  317. package/dist/middlewares/session.mjs +0 -28
  318. package/dist/middlewares/session.mjs.map +0 -1
  319. package/dist/migrations/draft-publish.js +0 -59
  320. package/dist/migrations/draft-publish.js.map +0 -1
  321. package/dist/migrations/draft-publish.mjs +0 -59
  322. package/dist/migrations/draft-publish.mjs.map +0 -1
  323. package/dist/providers/admin.js +0 -20
  324. package/dist/providers/admin.js.map +0 -1
  325. package/dist/providers/admin.mjs +0 -21
  326. package/dist/providers/admin.mjs.map +0 -1
  327. package/dist/providers/coreStore.js +0 -11
  328. package/dist/providers/coreStore.js.map +0 -1
  329. package/dist/providers/coreStore.mjs +0 -12
  330. package/dist/providers/coreStore.mjs.map +0 -1
  331. package/dist/providers/cron.js +0 -20
  332. package/dist/providers/cron.js.map +0 -1
  333. package/dist/providers/cron.mjs +0 -21
  334. package/dist/providers/cron.mjs.map +0 -1
  335. package/dist/providers/index.js +0 -11
  336. package/dist/providers/index.js.map +0 -1
  337. package/dist/providers/index.mjs +0 -11
  338. package/dist/providers/index.mjs.map +0 -1
  339. package/dist/providers/provider.js +0 -5
  340. package/dist/providers/provider.js.map +0 -1
  341. package/dist/providers/provider.mjs +0 -5
  342. package/dist/providers/provider.mjs.map +0 -1
  343. package/dist/providers/registries.js +0 -33
  344. package/dist/providers/registries.js.map +0 -1
  345. package/dist/providers/registries.mjs +0 -34
  346. package/dist/providers/registries.mjs.map +0 -1
  347. package/dist/providers/telemetry.js +0 -19
  348. package/dist/providers/telemetry.js.map +0 -1
  349. package/dist/providers/telemetry.mjs +0 -20
  350. package/dist/providers/telemetry.mjs.map +0 -1
  351. package/dist/providers/webhooks.js +0 -30
  352. package/dist/providers/webhooks.js.map +0 -1
  353. package/dist/providers/webhooks.mjs +0 -31
  354. package/dist/providers/webhooks.mjs.map +0 -1
  355. package/dist/registries/apis.js +0 -23
  356. package/dist/registries/apis.js.map +0 -1
  357. package/dist/registries/apis.mjs +0 -24
  358. package/dist/registries/apis.mjs.map +0 -1
  359. package/dist/registries/components.js +0 -45
  360. package/dist/registries/components.js.map +0 -1
  361. package/dist/registries/components.mjs +0 -46
  362. package/dist/registries/components.mjs.map +0 -1
  363. package/dist/registries/content-types.js +0 -70
  364. package/dist/registries/content-types.js.map +0 -1
  365. package/dist/registries/content-types.mjs +0 -71
  366. package/dist/registries/content-types.mjs.map +0 -1
  367. package/dist/registries/controllers.js +0 -80
  368. package/dist/registries/controllers.js.map +0 -1
  369. package/dist/registries/controllers.mjs +0 -81
  370. package/dist/registries/controllers.mjs.map +0 -1
  371. package/dist/registries/custom-fields.js +0 -71
  372. package/dist/registries/custom-fields.js.map +0 -1
  373. package/dist/registries/custom-fields.mjs +0 -72
  374. package/dist/registries/custom-fields.mjs.map +0 -1
  375. package/dist/registries/hooks.js +0 -58
  376. package/dist/registries/hooks.js.map +0 -1
  377. package/dist/registries/hooks.mjs +0 -59
  378. package/dist/registries/hooks.mjs.map +0 -1
  379. package/dist/registries/middlewares.js +0 -60
  380. package/dist/registries/middlewares.js.map +0 -1
  381. package/dist/registries/middlewares.mjs +0 -61
  382. package/dist/registries/middlewares.mjs.map +0 -1
  383. package/dist/registries/models.js +0 -16
  384. package/dist/registries/models.js.map +0 -1
  385. package/dist/registries/models.mjs +0 -16
  386. package/dist/registries/models.mjs.map +0 -1
  387. package/dist/registries/modules.js +0 -39
  388. package/dist/registries/modules.js.map +0 -1
  389. package/dist/registries/modules.mjs +0 -40
  390. package/dist/registries/modules.mjs.map +0 -1
  391. package/dist/registries/namespace.js +0 -27
  392. package/dist/registries/namespace.js.map +0 -1
  393. package/dist/registries/namespace.mjs +0 -27
  394. package/dist/registries/namespace.mjs.map +0 -1
  395. package/dist/registries/plugins.js +0 -23
  396. package/dist/registries/plugins.js.map +0 -1
  397. package/dist/registries/plugins.mjs +0 -24
  398. package/dist/registries/plugins.mjs.map +0 -1
  399. package/dist/registries/policies.js +0 -108
  400. package/dist/registries/policies.js.map +0 -1
  401. package/dist/registries/policies.mjs +0 -109
  402. package/dist/registries/policies.mjs.map +0 -1
  403. package/dist/registries/sanitizers.js +0 -25
  404. package/dist/registries/sanitizers.js.map +0 -1
  405. package/dist/registries/sanitizers.mjs +0 -24
  406. package/dist/registries/sanitizers.mjs.map +0 -1
  407. package/dist/registries/services.js +0 -80
  408. package/dist/registries/services.js.map +0 -1
  409. package/dist/registries/services.mjs +0 -81
  410. package/dist/registries/services.mjs.map +0 -1
  411. package/dist/registries/validators.js +0 -25
  412. package/dist/registries/validators.js.map +0 -1
  413. package/dist/registries/validators.mjs +0 -24
  414. package/dist/registries/validators.mjs.map +0 -1
  415. package/dist/services/auth/index.js +0 -81
  416. package/dist/services/auth/index.js.map +0 -1
  417. package/dist/services/auth/index.mjs +0 -80
  418. package/dist/services/auth/index.mjs.map +0 -1
  419. package/dist/services/config.js +0 -47
  420. package/dist/services/config.js.map +0 -1
  421. package/dist/services/config.mjs +0 -47
  422. package/dist/services/config.mjs.map +0 -1
  423. package/dist/services/content-api/index.js +0 -85
  424. package/dist/services/content-api/index.js.map +0 -1
  425. package/dist/services/content-api/index.mjs +0 -84
  426. package/dist/services/content-api/index.mjs.map +0 -1
  427. package/dist/services/content-api/permissions/engine.js +0 -7
  428. package/dist/services/content-api/permissions/engine.js.map +0 -1
  429. package/dist/services/content-api/permissions/engine.mjs +0 -6
  430. package/dist/services/content-api/permissions/engine.mjs.map +0 -1
  431. package/dist/services/content-api/permissions/index.js +0 -87
  432. package/dist/services/content-api/permissions/index.js.map +0 -1
  433. package/dist/services/content-api/permissions/index.mjs +0 -86
  434. package/dist/services/content-api/permissions/index.mjs.map +0 -1
  435. package/dist/services/content-api/permissions/providers/action.js +0 -16
  436. package/dist/services/content-api/permissions/providers/action.js.map +0 -1
  437. package/dist/services/content-api/permissions/providers/action.mjs +0 -17
  438. package/dist/services/content-api/permissions/providers/action.mjs.map +0 -1
  439. package/dist/services/content-api/permissions/providers/condition.js +0 -16
  440. package/dist/services/content-api/permissions/providers/condition.js.map +0 -1
  441. package/dist/services/content-api/permissions/providers/condition.mjs +0 -17
  442. package/dist/services/content-api/permissions/providers/condition.mjs.map +0 -1
  443. package/dist/services/core-store.js +0 -107
  444. package/dist/services/core-store.js.map +0 -1
  445. package/dist/services/core-store.mjs +0 -107
  446. package/dist/services/core-store.mjs.map +0 -1
  447. package/dist/services/cron.js +0 -63
  448. package/dist/services/cron.js.map +0 -1
  449. package/dist/services/cron.mjs +0 -64
  450. package/dist/services/cron.mjs.map +0 -1
  451. package/dist/services/custom-fields.js +0 -10
  452. package/dist/services/custom-fields.js.map +0 -1
  453. package/dist/services/custom-fields.mjs +0 -11
  454. package/dist/services/custom-fields.mjs.map +0 -1
  455. package/dist/services/document-service/attributes/index.js +0 -22
  456. package/dist/services/document-service/attributes/index.js.map +0 -1
  457. package/dist/services/document-service/attributes/index.mjs +0 -22
  458. package/dist/services/document-service/attributes/index.mjs.map +0 -1
  459. package/dist/services/document-service/attributes/transforms.js +0 -20
  460. package/dist/services/document-service/attributes/transforms.js.map +0 -1
  461. package/dist/services/document-service/attributes/transforms.mjs +0 -19
  462. package/dist/services/document-service/attributes/transforms.mjs.map +0 -1
  463. package/dist/services/document-service/common.js +0 -7
  464. package/dist/services/document-service/common.js.map +0 -1
  465. package/dist/services/document-service/common.mjs +0 -7
  466. package/dist/services/document-service/common.mjs.map +0 -1
  467. package/dist/services/document-service/components.js +0 -289
  468. package/dist/services/document-service/components.js.map +0 -1
  469. package/dist/services/document-service/components.mjs +0 -287
  470. package/dist/services/document-service/components.mjs.map +0 -1
  471. package/dist/services/document-service/document-engine.d.ts +0 -2
  472. package/dist/services/document-service/document-engine.d.ts.map +0 -1
  473. package/dist/services/document-service/draft-and-publish.js +0 -69
  474. package/dist/services/document-service/draft-and-publish.js.map +0 -1
  475. package/dist/services/document-service/draft-and-publish.mjs +0 -69
  476. package/dist/services/document-service/draft-and-publish.mjs.map +0 -1
  477. package/dist/services/document-service/entries.js +0 -62
  478. package/dist/services/document-service/entries.js.map +0 -1
  479. package/dist/services/document-service/entries.mjs +0 -62
  480. package/dist/services/document-service/entries.mjs.map +0 -1
  481. package/dist/services/document-service/index.js +0 -28
  482. package/dist/services/document-service/index.js.map +0 -1
  483. package/dist/services/document-service/index.mjs +0 -28
  484. package/dist/services/document-service/index.mjs.map +0 -1
  485. package/dist/services/document-service/internationalization.js +0 -54
  486. package/dist/services/document-service/internationalization.js.map +0 -1
  487. package/dist/services/document-service/internationalization.mjs +0 -54
  488. package/dist/services/document-service/internationalization.mjs.map +0 -1
  489. package/dist/services/document-service/middlewares/errors.js +0 -25
  490. package/dist/services/document-service/middlewares/errors.js.map +0 -1
  491. package/dist/services/document-service/middlewares/errors.mjs +0 -25
  492. package/dist/services/document-service/middlewares/errors.mjs.map +0 -1
  493. package/dist/services/document-service/middlewares/middleware-manager.js +0 -46
  494. package/dist/services/document-service/middlewares/middleware-manager.js.map +0 -1
  495. package/dist/services/document-service/middlewares/middleware-manager.mjs +0 -46
  496. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +0 -1
  497. package/dist/services/document-service/params.js +0 -8
  498. package/dist/services/document-service/params.js.map +0 -1
  499. package/dist/services/document-service/params.mjs +0 -8
  500. package/dist/services/document-service/params.mjs.map +0 -1
  501. package/dist/services/document-service/repository.js +0 -276
  502. package/dist/services/document-service/repository.js.map +0 -1
  503. package/dist/services/document-service/repository.mjs +0 -276
  504. package/dist/services/document-service/repository.mjs.map +0 -1
  505. package/dist/services/document-service/transform/data.js +0 -15
  506. package/dist/services/document-service/transform/data.js.map +0 -1
  507. package/dist/services/document-service/transform/data.mjs +0 -15
  508. package/dist/services/document-service/transform/data.mjs.map +0 -1
  509. package/dist/services/document-service/transform/fields.js +0 -24
  510. package/dist/services/document-service/transform/fields.js.map +0 -1
  511. package/dist/services/document-service/transform/fields.mjs +0 -24
  512. package/dist/services/document-service/transform/fields.mjs.map +0 -1
  513. package/dist/services/document-service/transform/id-map.js +0 -78
  514. package/dist/services/document-service/transform/id-map.js.map +0 -1
  515. package/dist/services/document-service/transform/id-map.mjs +0 -78
  516. package/dist/services/document-service/transform/id-map.mjs.map +0 -1
  517. package/dist/services/document-service/transform/id-transform.js +0 -33
  518. package/dist/services/document-service/transform/id-transform.js.map +0 -1
  519. package/dist/services/document-service/transform/id-transform.mjs +0 -33
  520. package/dist/services/document-service/transform/id-transform.mjs.map +0 -1
  521. package/dist/services/document-service/transform/populate.js +0 -21
  522. package/dist/services/document-service/transform/populate.js.map +0 -1
  523. package/dist/services/document-service/transform/populate.mjs +0 -21
  524. package/dist/services/document-service/transform/populate.mjs.map +0 -1
  525. package/dist/services/document-service/transform/query.js +0 -9
  526. package/dist/services/document-service/transform/query.js.map +0 -1
  527. package/dist/services/document-service/transform/query.mjs +0 -9
  528. package/dist/services/document-service/transform/query.mjs.map +0 -1
  529. package/dist/services/document-service/transform/relations/extract/data-ids.js +0 -54
  530. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +0 -1
  531. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +0 -54
  532. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +0 -1
  533. package/dist/services/document-service/transform/relations/transform/data-ids.js +0 -73
  534. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +0 -1
  535. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +0 -73
  536. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +0 -1
  537. package/dist/services/document-service/transform/relations/transform/default-locale.js +0 -32
  538. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +0 -1
  539. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +0 -32
  540. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +0 -1
  541. package/dist/services/document-service/transform/relations/utils/dp.js +0 -30
  542. package/dist/services/document-service/transform/relations/utils/dp.js.map +0 -1
  543. package/dist/services/document-service/transform/relations/utils/dp.mjs +0 -30
  544. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +0 -1
  545. package/dist/services/document-service/transform/relations/utils/i18n.js +0 -25
  546. package/dist/services/document-service/transform/relations/utils/i18n.js.map +0 -1
  547. package/dist/services/document-service/transform/relations/utils/i18n.mjs +0 -25
  548. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +0 -1
  549. package/dist/services/document-service/transform/relations/utils/map-relation.js +0 -87
  550. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +0 -1
  551. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +0 -87
  552. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +0 -1
  553. package/dist/services/document-service/utils/populate.js +0 -41
  554. package/dist/services/document-service/utils/populate.js.map +0 -1
  555. package/dist/services/document-service/utils/populate.mjs +0 -41
  556. package/dist/services/document-service/utils/populate.mjs.map +0 -1
  557. package/dist/services/entity-service/index.js +0 -169
  558. package/dist/services/entity-service/index.js.map +0 -1
  559. package/dist/services/entity-service/index.mjs +0 -167
  560. package/dist/services/entity-service/index.mjs.map +0 -1
  561. package/dist/services/entity-validator/blocks-validator.js +0 -127
  562. package/dist/services/entity-validator/blocks-validator.js.map +0 -1
  563. package/dist/services/entity-validator/blocks-validator.mjs +0 -128
  564. package/dist/services/entity-validator/blocks-validator.mjs.map +0 -1
  565. package/dist/services/entity-validator/index.js +0 -333
  566. package/dist/services/entity-validator/index.js.map +0 -1
  567. package/dist/services/entity-validator/index.mjs +0 -332
  568. package/dist/services/entity-validator/index.mjs.map +0 -1
  569. package/dist/services/entity-validator/validators.js +0 -126
  570. package/dist/services/entity-validator/validators.js.map +0 -1
  571. package/dist/services/entity-validator/validators.mjs +0 -124
  572. package/dist/services/entity-validator/validators.mjs.map +0 -1
  573. package/dist/services/errors.js +0 -76
  574. package/dist/services/errors.js.map +0 -1
  575. package/dist/services/errors.mjs +0 -74
  576. package/dist/services/errors.mjs.map +0 -1
  577. package/dist/services/event-hub.js +0 -67
  578. package/dist/services/event-hub.js.map +0 -1
  579. package/dist/services/event-hub.mjs +0 -68
  580. package/dist/services/event-hub.mjs.map +0 -1
  581. package/dist/services/features.js +0 -17
  582. package/dist/services/features.js.map +0 -1
  583. package/dist/services/features.mjs +0 -17
  584. package/dist/services/features.mjs.map +0 -1
  585. package/dist/services/fs.js +0 -51
  586. package/dist/services/fs.js.map +0 -1
  587. package/dist/services/fs.mjs +0 -49
  588. package/dist/services/fs.mjs.map +0 -1
  589. package/dist/services/metrics/admin-user-hash.js +0 -14
  590. package/dist/services/metrics/admin-user-hash.js.map +0 -1
  591. package/dist/services/metrics/admin-user-hash.mjs +0 -12
  592. package/dist/services/metrics/admin-user-hash.mjs.map +0 -1
  593. package/dist/services/metrics/index.js +0 -45
  594. package/dist/services/metrics/index.js.map +0 -1
  595. package/dist/services/metrics/index.mjs +0 -46
  596. package/dist/services/metrics/index.mjs.map +0 -1
  597. package/dist/services/metrics/is-truthy.js +0 -9
  598. package/dist/services/metrics/is-truthy.js.map +0 -1
  599. package/dist/services/metrics/is-truthy.mjs +0 -8
  600. package/dist/services/metrics/is-truthy.mjs.map +0 -1
  601. package/dist/services/metrics/middleware.js +0 -25
  602. package/dist/services/metrics/middleware.js.map +0 -1
  603. package/dist/services/metrics/middleware.mjs +0 -26
  604. package/dist/services/metrics/middleware.mjs.map +0 -1
  605. package/dist/services/metrics/rate-limiter.js +0 -21
  606. package/dist/services/metrics/rate-limiter.js.map +0 -1
  607. package/dist/services/metrics/rate-limiter.mjs +0 -22
  608. package/dist/services/metrics/rate-limiter.mjs.map +0 -1
  609. package/dist/services/metrics/sender.js +0 -76
  610. package/dist/services/metrics/sender.js.map +0 -1
  611. package/dist/services/metrics/sender.mjs +0 -70
  612. package/dist/services/metrics/sender.mjs.map +0 -1
  613. package/dist/services/query-params.js +0 -12
  614. package/dist/services/query-params.js.map +0 -1
  615. package/dist/services/query-params.mjs +0 -13
  616. package/dist/services/query-params.mjs.map +0 -1
  617. package/dist/services/reloader.js +0 -36
  618. package/dist/services/reloader.js.map +0 -1
  619. package/dist/services/reloader.mjs +0 -36
  620. package/dist/services/reloader.mjs.map +0 -1
  621. package/dist/services/request-context.js +0 -13
  622. package/dist/services/request-context.js.map +0 -1
  623. package/dist/services/request-context.mjs +0 -14
  624. package/dist/services/request-context.mjs.map +0 -1
  625. package/dist/services/server/admin-api.js +0 -13
  626. package/dist/services/server/admin-api.js.map +0 -1
  627. package/dist/services/server/admin-api.mjs +0 -13
  628. package/dist/services/server/admin-api.mjs.map +0 -1
  629. package/dist/services/server/api.js +0 -30
  630. package/dist/services/server/api.js.map +0 -1
  631. package/dist/services/server/api.mjs +0 -28
  632. package/dist/services/server/api.mjs.map +0 -1
  633. package/dist/services/server/compose-endpoint.js +0 -117
  634. package/dist/services/server/compose-endpoint.js.map +0 -1
  635. package/dist/services/server/compose-endpoint.mjs +0 -116
  636. package/dist/services/server/compose-endpoint.mjs.map +0 -1
  637. package/dist/services/server/content-api.js +0 -12
  638. package/dist/services/server/content-api.js.map +0 -1
  639. package/dist/services/server/content-api.mjs +0 -12
  640. package/dist/services/server/content-api.mjs.map +0 -1
  641. package/dist/services/server/http-server.js +0 -50
  642. package/dist/services/server/http-server.js.map +0 -1
  643. package/dist/services/server/http-server.mjs +0 -48
  644. package/dist/services/server/http-server.mjs.map +0 -1
  645. package/dist/services/server/index.js +0 -87
  646. package/dist/services/server/index.js.map +0 -1
  647. package/dist/services/server/index.mjs +0 -85
  648. package/dist/services/server/index.mjs.map +0 -1
  649. package/dist/services/server/koa.js +0 -52
  650. package/dist/services/server/koa.js.map +0 -1
  651. package/dist/services/server/koa.mjs +0 -48
  652. package/dist/services/server/koa.mjs.map +0 -1
  653. package/dist/services/server/middleware.js +0 -92
  654. package/dist/services/server/middleware.js.map +0 -1
  655. package/dist/services/server/middleware.mjs +0 -90
  656. package/dist/services/server/middleware.mjs.map +0 -1
  657. package/dist/services/server/policy.js +0 -20
  658. package/dist/services/server/policy.js.map +0 -1
  659. package/dist/services/server/policy.mjs +0 -20
  660. package/dist/services/server/policy.mjs.map +0 -1
  661. package/dist/services/server/register-middlewares.js +0 -72
  662. package/dist/services/server/register-middlewares.js.map +0 -1
  663. package/dist/services/server/register-middlewares.mjs +0 -73
  664. package/dist/services/server/register-middlewares.mjs.map +0 -1
  665. package/dist/services/server/register-routes.js +0 -76
  666. package/dist/services/server/register-routes.js.map +0 -1
  667. package/dist/services/server/register-routes.mjs +0 -75
  668. package/dist/services/server/register-routes.mjs.map +0 -1
  669. package/dist/services/server/routing.js +0 -91
  670. package/dist/services/server/routing.js.map +0 -1
  671. package/dist/services/server/routing.mjs +0 -89
  672. package/dist/services/server/routing.mjs.map +0 -1
  673. package/dist/services/utils/dynamic-zones.js +0 -17
  674. package/dist/services/utils/dynamic-zones.js.map +0 -1
  675. package/dist/services/utils/dynamic-zones.mjs +0 -18
  676. package/dist/services/utils/dynamic-zones.mjs.map +0 -1
  677. package/dist/services/webhook-runner.js +0 -133
  678. package/dist/services/webhook-runner.js.map +0 -1
  679. package/dist/services/webhook-runner.mjs +0 -131
  680. package/dist/services/webhook-runner.mjs.map +0 -1
  681. package/dist/services/webhook-store.js +0 -103
  682. package/dist/services/webhook-store.js.map +0 -1
  683. package/dist/services/webhook-store.mjs +0 -103
  684. package/dist/services/webhook-store.mjs.map +0 -1
  685. package/dist/services/worker-queue.js +0 -56
  686. package/dist/services/worker-queue.js.map +0 -1
  687. package/dist/services/worker-queue.mjs +0 -55
  688. package/dist/services/worker-queue.mjs.map +0 -1
  689. package/dist/utils/convert-custom-field-type.js +0 -24
  690. package/dist/utils/convert-custom-field-type.js.map +0 -1
  691. package/dist/utils/convert-custom-field-type.mjs +0 -24
  692. package/dist/utils/convert-custom-field-type.mjs.map +0 -1
  693. package/dist/utils/cron.js +0 -38
  694. package/dist/utils/cron.js.map +0 -1
  695. package/dist/utils/cron.mjs +0 -38
  696. package/dist/utils/cron.mjs.map +0 -1
  697. package/dist/utils/fetch.js +0 -20
  698. package/dist/utils/fetch.js.map +0 -1
  699. package/dist/utils/fetch.mjs +0 -20
  700. package/dist/utils/fetch.mjs.map +0 -1
  701. package/dist/utils/filepath-to-prop-path.js +0 -12
  702. package/dist/utils/filepath-to-prop-path.js.map +0 -1
  703. package/dist/utils/filepath-to-prop-path.mjs +0 -10
  704. package/dist/utils/filepath-to-prop-path.mjs.map +0 -1
  705. package/dist/utils/is-initialized.js +0 -16
  706. package/dist/utils/is-initialized.js.map +0 -1
  707. package/dist/utils/is-initialized.mjs +0 -16
  708. package/dist/utils/is-initialized.mjs.map +0 -1
  709. package/dist/utils/lifecycles.js +0 -9
  710. package/dist/utils/lifecycles.js.map +0 -1
  711. package/dist/utils/lifecycles.mjs +0 -9
  712. package/dist/utils/lifecycles.mjs.map +0 -1
  713. package/dist/utils/load-config-file.js +0 -45
  714. package/dist/utils/load-config-file.js.map +0 -1
  715. package/dist/utils/load-config-file.mjs +0 -42
  716. package/dist/utils/load-config-file.mjs.map +0 -1
  717. package/dist/utils/load-files.js +0 -39
  718. package/dist/utils/load-files.js.map +0 -1
  719. package/dist/utils/load-files.mjs +0 -35
  720. package/dist/utils/load-files.mjs.map +0 -1
  721. package/dist/utils/open-browser.js +0 -11
  722. package/dist/utils/open-browser.js.map +0 -1
  723. package/dist/utils/open-browser.mjs +0 -9
  724. package/dist/utils/open-browser.mjs.map +0 -1
  725. package/dist/utils/resolve-working-dirs.js +0 -13
  726. package/dist/utils/resolve-working-dirs.js.map +0 -1
  727. package/dist/utils/resolve-working-dirs.mjs +0 -11
  728. package/dist/utils/resolve-working-dirs.mjs.map +0 -1
  729. package/dist/utils/signals.js +0 -17
  730. package/dist/utils/signals.js.map +0 -1
  731. package/dist/utils/signals.mjs +0 -17
  732. package/dist/utils/signals.mjs.map +0 -1
  733. package/dist/utils/startup-logger.js +0 -81
  734. package/dist/utils/startup-logger.js.map +0 -1
  735. package/dist/utils/startup-logger.mjs +0 -77
  736. package/dist/utils/startup-logger.mjs.map +0 -1
  737. package/dist/utils/transform-content-types-to-models.js +0 -275
  738. package/dist/utils/transform-content-types-to-models.js.map +0 -1
  739. package/dist/utils/transform-content-types-to-models.mjs +0 -272
  740. package/dist/utils/transform-content-types-to-models.mjs.map +0 -1
  741. package/dist/utils/update-notifier/index.js +0 -85
  742. package/dist/utils/update-notifier/index.js.map +0 -1
  743. package/dist/utils/update-notifier/index.mjs +0 -78
  744. package/dist/utils/update-notifier/index.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"apis.mjs","sources":["../../src/loaders/apis.ts"],"sourcesContent":["import { join, extname, basename } from 'path';\nimport fse, { existsSync } from 'fs-extra';\nimport _ from 'lodash';\nimport { strings, importDefault } from '@strapi/utils';\nimport { isEmpty } from 'lodash/fp';\nimport type { Core, Struct } from '@strapi/types';\nimport { getGlobalId, type ContentTypeDefinition } from '../domain/content-type';\n\ninterface API {\n bootstrap: () => void | Promise<void>;\n destroy: () => void | Promise<void>;\n register: () => void | Promise<void>;\n config: Record<string, unknown>;\n routes: Record<string, Core.Router>;\n controllers: Record<string, Core.Controller>;\n services: Record<string, Core.Service>;\n policies: Record<string, Core.Policy>;\n middlewares: Record<string, Core.Middleware>;\n contentTypes: Record<string, { schema: Struct.ContentTypeSchema }>;\n}\n\ninterface APIs {\n [key: string]: API;\n}\n\nconst DEFAULT_CONTENT_TYPE = {\n schema: {},\n actions: {},\n lifecycles: {},\n};\n\n// to handle names with numbers in it we first check if it is already in kebabCase\nconst normalizeName = (name: string) => (strings.isKebabCase(name) ? name : _.kebabCase(name));\n\nconst isDirectory = (fd: fse.Dirent) => fd.isDirectory();\nconst isDotFile = (fd: fse.Dirent) => fd.name.startsWith('.');\n\nexport default async function loadAPIs(strapi: Core.Strapi) {\n if (!existsSync(strapi.dirs.dist.api)) {\n return;\n }\n\n const apisFDs = await (await fse.readdir(strapi.dirs.dist.api, { withFileTypes: true }))\n .filter(isDirectory)\n .filter(_.negate(isDotFile));\n\n const apis: APIs = {};\n\n // only load folders\n for (const apiFD of apisFDs) {\n const apiName = normalizeName(apiFD.name);\n const api = await loadAPI(apiName, join(strapi.dirs.dist.api, apiFD.name));\n\n apis[apiName] = api;\n }\n\n validateContentTypesUnicity(apis);\n\n for (const apiName of Object.keys(apis)) {\n strapi.get('apis').add(apiName, apis[apiName]);\n }\n}\n\nconst validateContentTypesUnicity = (apis: APIs) => {\n const allApisSchemas = Object.values(apis).flatMap((api) => Object.values(api.contentTypes));\n\n const names: string[] = [];\n allApisSchemas.forEach(({ schema }) => {\n if (schema.info.singularName) {\n const singularName = _.kebabCase(schema.info.singularName);\n if (names.includes(singularName)) {\n throw new Error(`The singular name \"${schema.info.singularName}\" should be unique`);\n }\n names.push(singularName);\n }\n\n if (schema.info.pluralName) {\n const pluralName = _.kebabCase(schema.info.pluralName);\n if (names.includes(pluralName)) {\n throw new Error(`The plural name \"${schema.info.pluralName}\" should be unique`);\n }\n names.push(pluralName);\n }\n });\n};\n\nconst loadAPI = async (apiName: string, dir: string) => {\n const [index, config, routes, controllers, services, policies, middlewares, contentTypes] =\n await Promise.all([\n loadIndex(dir),\n loadDir(join(dir, 'config')),\n loadDir(join(dir, 'routes')),\n loadDir(join(dir, 'controllers')),\n loadDir(join(dir, 'services')),\n loadDir(join(dir, 'policies')),\n loadDir(join(dir, 'middlewares')),\n loadContentTypes(apiName, join(dir, 'content-types')),\n ]);\n\n return {\n ...(index || {}),\n config: config || {},\n routes: routes || [],\n controllers: controllers || {},\n services: services || {},\n policies: policies || {},\n middlewares: middlewares || {},\n contentTypes: contentTypes || {},\n };\n};\n\nconst loadIndex = async (dir: string) => {\n if (await fse.pathExists(join(dir, 'index.js'))) {\n return loadFile(join(dir, 'index.js'));\n }\n};\n\nconst loadContentTypes = async (apiName: string, dir: string) => {\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const fds = await fse.readdir(dir, { withFileTypes: true });\n const contentTypes: API['contentTypes'] = {};\n\n // only load folders\n for (const fd of fds) {\n if (fd.isFile()) {\n continue;\n }\n\n const contentTypeName = normalizeName(fd.name);\n const loadedContentType = await loadDir(join(dir, fd.name));\n\n if (isEmpty(loadedContentType) || isEmpty(loadedContentType.schema)) {\n throw new Error(`Could not load content type found at ${dir}`);\n }\n\n const contentType = {\n ...DEFAULT_CONTENT_TYPE,\n ...loadedContentType,\n } as ContentTypeDefinition;\n\n Object.assign(contentType.schema, {\n apiName,\n collectionName: contentType.schema.collectionName || contentType.schema.info.singularName,\n globalId: getGlobalId(contentType.schema),\n });\n\n contentTypes[normalizeName(contentTypeName)] = contentType;\n }\n\n return contentTypes;\n};\n\nconst loadDir = async (dir: string) => {\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const fds = await fse.readdir(dir, { withFileTypes: true });\n\n const root: Record<string, unknown> = {};\n for (const fd of fds) {\n if (!fd.isFile() || extname(fd.name) === '.map') {\n continue;\n }\n\n const key = basename(fd.name, extname(fd.name));\n\n root[normalizeName(key)] = await loadFile(join(dir, fd.name));\n }\n\n return root;\n};\n\nconst loadFile = (file: string) => {\n const ext = extname(file);\n\n switch (ext) {\n case '.js':\n return importDefault(file);\n case '.json':\n return fse.readJSON(file);\n default:\n return {};\n }\n};\n"],"names":[],"mappings":"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"}
@@ -1,38 +0,0 @@
1
- "use strict";
2
- const path = require("path");
3
- const _ = require("lodash");
4
- const fse = require("fs-extra");
5
- const loadFiles = require("../utils/load-files.js");
6
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
7
- const ___default = /* @__PURE__ */ _interopDefault(_);
8
- async function loadComponents(strapi) {
9
- if (!await fse.pathExists(strapi.dirs.dist.components)) {
10
- return {};
11
- }
12
- const map = await loadFiles.loadFiles(strapi.dirs.dist.components, "*/*.*(js|json)");
13
- const components = Object.keys(map).reduce((acc, category) => {
14
- Object.keys(map[category]).forEach((key) => {
15
- const schema = map[category][key];
16
- if (!schema.collectionName) {
17
- const filePath = path.join(strapi.dirs.app.components, category, schema.__filename__);
18
- return strapi.stopWithError(
19
- `Component ${key} is missing a "collectionName" property.
20
- Verify file ${filePath}.`
21
- );
22
- }
23
- const uid = `${category}.${key}`;
24
- acc[uid] = Object.assign(schema, {
25
- __schema__: ___default.default.cloneDeep(schema),
26
- uid,
27
- category,
28
- modelType: "component",
29
- modelName: key,
30
- globalId: schema.globalId || ___default.default.upperFirst(___default.default.camelCase(`component_${uid}`))
31
- });
32
- });
33
- return acc;
34
- }, {});
35
- strapi.get("components").add(components);
36
- }
37
- module.exports = loadComponents;
38
- //# sourceMappingURL=components.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"components.js","sources":["../../src/loaders/components.ts"],"sourcesContent":["import { join } from 'path';\nimport _ from 'lodash';\nimport { pathExists } from 'fs-extra';\nimport type { Core, Struct, UID } from '@strapi/types';\nimport { loadFiles } from '../utils/load-files';\n\ntype LoadedComponent = {\n collectionName: string;\n __filename__: string;\n __schema__: LoadedComponent;\n uid: string;\n category: string;\n modelName: string;\n globalId: string;\n info: any;\n attributes: any;\n};\n\ntype LoadedComponents = {\n [category: string]: {\n [key: string]: LoadedComponent;\n };\n};\n\ntype ComponentMap = {\n [uid in UID.Component]: Struct.ComponentSchema;\n};\n\nexport default async function loadComponents(strapi: Core.Strapi) {\n if (!(await pathExists(strapi.dirs.dist.components))) {\n return {};\n }\n\n const map = await loadFiles<LoadedComponents>(strapi.dirs.dist.components, '*/*.*(js|json)');\n\n const components = Object.keys(map).reduce((acc, category) => {\n Object.keys(map[category]).forEach((key) => {\n const schema = map[category][key];\n\n if (!schema.collectionName) {\n // NOTE: We're using the filepath from the app directory instead of the dist for information purpose\n const filePath = join(strapi.dirs.app.components, category, schema.__filename__);\n\n return strapi.stopWithError(\n `Component ${key} is missing a \"collectionName\" property.\\nVerify file ${filePath}.`\n );\n }\n\n const uid: UID.Component = `${category}.${key}`;\n\n acc[uid] = Object.assign(schema, {\n __schema__: _.cloneDeep(schema),\n uid,\n category,\n modelType: 'component' as const,\n modelName: key,\n globalId: schema.globalId || _.upperFirst(_.camelCase(`component_${uid}`)),\n });\n });\n\n return acc;\n }, {} as ComponentMap);\n\n strapi.get('components').add(components);\n}\n"],"names":["pathExists","loadFiles","join","_"],"mappings":";;;;;;;AA4BA,eAA8B,eAAe,QAAqB;AAChE,MAAI,CAAE,MAAMA,IAAAA,WAAW,OAAO,KAAK,KAAK,UAAU,GAAI;AACpD,WAAO;EACT;AAEA,QAAM,MAAM,MAAMC,UAAAA,UAA4B,OAAO,KAAK,KAAK,YAAY,gBAAgB;AAErF,QAAA,aAAa,OAAO,KAAK,GAAG,EAAE,OAAO,CAAC,KAAK,aAAa;AAC5D,WAAO,KAAK,IAAI,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ;AAC1C,YAAM,SAAS,IAAI,QAAQ,EAAE,GAAG;AAE5B,UAAA,CAAC,OAAO,gBAAgB;AAEpB,cAAA,WAAWC,UAAK,OAAO,KAAK,IAAI,YAAY,UAAU,OAAO,YAAY;AAE/E,eAAO,OAAO;AAAA,UACZ,aAAa,GAAG;AAAA,cAAyD,QAAQ;AAAA,QAAA;AAAA,MAErF;AAEA,YAAM,MAAqB,GAAG,QAAQ,IAAI,GAAG;AAE7C,UAAI,GAAG,IAAI,OAAO,OAAO,QAAQ;AAAA,QAC/B,YAAYC,WAAAA,QAAE,UAAU,MAAM;AAAA,QAC9B;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX,WAAW;AAAA,QACX,UAAU,OAAO,YAAYA,WAAAA,QAAE,WAAWA,mBAAE,UAAU,aAAa,GAAG,EAAE,CAAC;AAAA,MAAA,CAC1E;AAAA,IAAA,CACF;AAEM,WAAA;AAAA,EACT,GAAG,CAAkB,CAAA;AAErB,SAAO,IAAI,YAAY,EAAE,IAAI,UAAU;AACzC;;"}
@@ -1,37 +0,0 @@
1
- import { join } from "path";
2
- import _ from "lodash";
3
- import { pathExists } from "fs-extra";
4
- import { loadFiles } from "../utils/load-files.mjs";
5
- async function loadComponents(strapi) {
6
- if (!await pathExists(strapi.dirs.dist.components)) {
7
- return {};
8
- }
9
- const map = await loadFiles(strapi.dirs.dist.components, "*/*.*(js|json)");
10
- const components = Object.keys(map).reduce((acc, category) => {
11
- Object.keys(map[category]).forEach((key) => {
12
- const schema = map[category][key];
13
- if (!schema.collectionName) {
14
- const filePath = join(strapi.dirs.app.components, category, schema.__filename__);
15
- return strapi.stopWithError(
16
- `Component ${key} is missing a "collectionName" property.
17
- Verify file ${filePath}.`
18
- );
19
- }
20
- const uid = `${category}.${key}`;
21
- acc[uid] = Object.assign(schema, {
22
- __schema__: _.cloneDeep(schema),
23
- uid,
24
- category,
25
- modelType: "component",
26
- modelName: key,
27
- globalId: schema.globalId || _.upperFirst(_.camelCase(`component_${uid}`))
28
- });
29
- });
30
- return acc;
31
- }, {});
32
- strapi.get("components").add(components);
33
- }
34
- export {
35
- loadComponents as default
36
- };
37
- //# sourceMappingURL=components.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"components.mjs","sources":["../../src/loaders/components.ts"],"sourcesContent":["import { join } from 'path';\nimport _ from 'lodash';\nimport { pathExists } from 'fs-extra';\nimport type { Core, Struct, UID } from '@strapi/types';\nimport { loadFiles } from '../utils/load-files';\n\ntype LoadedComponent = {\n collectionName: string;\n __filename__: string;\n __schema__: LoadedComponent;\n uid: string;\n category: string;\n modelName: string;\n globalId: string;\n info: any;\n attributes: any;\n};\n\ntype LoadedComponents = {\n [category: string]: {\n [key: string]: LoadedComponent;\n };\n};\n\ntype ComponentMap = {\n [uid in UID.Component]: Struct.ComponentSchema;\n};\n\nexport default async function loadComponents(strapi: Core.Strapi) {\n if (!(await pathExists(strapi.dirs.dist.components))) {\n return {};\n }\n\n const map = await loadFiles<LoadedComponents>(strapi.dirs.dist.components, '*/*.*(js|json)');\n\n const components = Object.keys(map).reduce((acc, category) => {\n Object.keys(map[category]).forEach((key) => {\n const schema = map[category][key];\n\n if (!schema.collectionName) {\n // NOTE: We're using the filepath from the app directory instead of the dist for information purpose\n const filePath = join(strapi.dirs.app.components, category, schema.__filename__);\n\n return strapi.stopWithError(\n `Component ${key} is missing a \"collectionName\" property.\\nVerify file ${filePath}.`\n );\n }\n\n const uid: UID.Component = `${category}.${key}`;\n\n acc[uid] = Object.assign(schema, {\n __schema__: _.cloneDeep(schema),\n uid,\n category,\n modelType: 'component' as const,\n modelName: key,\n globalId: schema.globalId || _.upperFirst(_.camelCase(`component_${uid}`)),\n });\n });\n\n return acc;\n }, {} as ComponentMap);\n\n strapi.get('components').add(components);\n}\n"],"names":[],"mappings":";;;;AA4BA,eAA8B,eAAe,QAAqB;AAChE,MAAI,CAAE,MAAM,WAAW,OAAO,KAAK,KAAK,UAAU,GAAI;AACpD,WAAO;EACT;AAEA,QAAM,MAAM,MAAM,UAA4B,OAAO,KAAK,KAAK,YAAY,gBAAgB;AAErF,QAAA,aAAa,OAAO,KAAK,GAAG,EAAE,OAAO,CAAC,KAAK,aAAa;AAC5D,WAAO,KAAK,IAAI,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ;AAC1C,YAAM,SAAS,IAAI,QAAQ,EAAE,GAAG;AAE5B,UAAA,CAAC,OAAO,gBAAgB;AAEpB,cAAA,WAAW,KAAK,OAAO,KAAK,IAAI,YAAY,UAAU,OAAO,YAAY;AAE/E,eAAO,OAAO;AAAA,UACZ,aAAa,GAAG;AAAA,cAAyD,QAAQ;AAAA,QAAA;AAAA,MAErF;AAEA,YAAM,MAAqB,GAAG,QAAQ,IAAI,GAAG;AAE7C,UAAI,GAAG,IAAI,OAAO,OAAO,QAAQ;AAAA,QAC/B,YAAY,EAAE,UAAU,MAAM;AAAA,QAC9B;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX,WAAW;AAAA,QACX,UAAU,OAAO,YAAY,EAAE,WAAW,EAAE,UAAU,aAAa,GAAG,EAAE,CAAC;AAAA,MAAA,CAC1E;AAAA,IAAA,CACF;AAEM,WAAA;AAAA,EACT,GAAG,CAAkB,CAAA;AAErB,SAAO,IAAI,YAAY,EAAE,IAAI,UAAU;AACzC;"}
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const srcIndex = require("./src-index.js");
4
- const apis = require("./apis.js");
5
- const middlewares = require("./middlewares.js");
6
- const components = require("./components.js");
7
- const policies = require("./policies.js");
8
- const index = require("./plugins/index.js");
9
- const sanitizers = require("./sanitizers.js");
10
- const validators = require("./validators.js");
11
- async function loadApplicationContext(strapi) {
12
- await Promise.all([
13
- srcIndex(strapi),
14
- sanitizers(strapi),
15
- validators(strapi),
16
- index(strapi),
17
- apis(strapi),
18
- components(strapi),
19
- middlewares(strapi),
20
- policies(strapi)
21
- ]);
22
- }
23
- exports.loadApplicationContext = loadApplicationContext;
24
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../src/loaders/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport loadSrcIndex from './src-index';\nimport loadAPIs from './apis';\nimport loadMiddlewares from './middlewares';\nimport loadComponents from './components';\nimport loadPolicies from './policies';\nimport loadPlugins from './plugins';\nimport loadSanitizers from './sanitizers';\nimport loadValidators from './validators';\n\nexport async function loadApplicationContext(strapi: Core.Strapi) {\n await Promise.all([\n loadSrcIndex(strapi),\n loadSanitizers(strapi),\n loadValidators(strapi),\n loadPlugins(strapi),\n loadAPIs(strapi),\n loadComponents(strapi),\n loadMiddlewares(strapi),\n loadPolicies(strapi),\n ]);\n}\n"],"names":["loadSrcIndex","loadSanitizers","loadValidators","loadPlugins","loadAPIs","loadComponents","loadMiddlewares","loadPolicies"],"mappings":";;;;;;;;;;AAWA,eAAsB,uBAAuB,QAAqB;AAChE,QAAM,QAAQ,IAAI;AAAA,IAChBA,SAAa,MAAM;AAAA,IACnBC,WAAe,MAAM;AAAA,IACrBC,WAAe,MAAM;AAAA,IACrBC,MAAY,MAAM;AAAA,IAClBC,KAAS,MAAM;AAAA,IACfC,WAAe,MAAM;AAAA,IACrBC,YAAgB,MAAM;AAAA,IACtBC,SAAa,MAAM;AAAA,EAAA,CACpB;AACH;;"}
@@ -1,24 +0,0 @@
1
- import loadSrcIndex from "./src-index.mjs";
2
- import loadAPIs from "./apis.mjs";
3
- import loadMiddlewares from "./middlewares.mjs";
4
- import loadComponents from "./components.mjs";
5
- import loadPolicies from "./policies.mjs";
6
- import loadPlugins from "./plugins/index.mjs";
7
- import loadSanitizers from "./sanitizers.mjs";
8
- import loadValidators from "./validators.mjs";
9
- async function loadApplicationContext(strapi) {
10
- await Promise.all([
11
- loadSrcIndex(strapi),
12
- loadSanitizers(strapi),
13
- loadValidators(strapi),
14
- loadPlugins(strapi),
15
- loadAPIs(strapi),
16
- loadComponents(strapi),
17
- loadMiddlewares(strapi),
18
- loadPolicies(strapi)
19
- ]);
20
- }
21
- export {
22
- loadApplicationContext
23
- };
24
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/loaders/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport loadSrcIndex from './src-index';\nimport loadAPIs from './apis';\nimport loadMiddlewares from './middlewares';\nimport loadComponents from './components';\nimport loadPolicies from './policies';\nimport loadPlugins from './plugins';\nimport loadSanitizers from './sanitizers';\nimport loadValidators from './validators';\n\nexport async function loadApplicationContext(strapi: Core.Strapi) {\n await Promise.all([\n loadSrcIndex(strapi),\n loadSanitizers(strapi),\n loadValidators(strapi),\n loadPlugins(strapi),\n loadAPIs(strapi),\n loadComponents(strapi),\n loadMiddlewares(strapi),\n loadPolicies(strapi),\n ]);\n}\n"],"names":[],"mappings":";;;;;;;;AAWA,eAAsB,uBAAuB,QAAqB;AAChE,QAAM,QAAQ,IAAI;AAAA,IAChB,aAAa,MAAM;AAAA,IACnB,eAAe,MAAM;AAAA,IACrB,eAAe,MAAM;AAAA,IACrB,YAAY,MAAM;AAAA,IAClB,SAAS,MAAM;AAAA,IACf,eAAe,MAAM;AAAA,IACrB,gBAAgB,MAAM;AAAA,IACtB,aAAa,MAAM;AAAA,EAAA,CACpB;AACH;"}
@@ -1,31 +0,0 @@
1
- "use strict";
2
- const path = require("path");
3
- const fse = require("fs-extra");
4
- const strapiUtils = require("@strapi/utils");
5
- const index = require("../middlewares/index.js");
6
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
7
- const fse__default = /* @__PURE__ */ _interopDefault(fse);
8
- async function loadMiddlewares(strapi) {
9
- const localMiddlewares = await loadLocalMiddlewares(strapi);
10
- strapi.get("middlewares").add(`global::`, localMiddlewares);
11
- strapi.get("middlewares").add(`strapi::`, index.middlewares);
12
- }
13
- const loadLocalMiddlewares = async (strapi) => {
14
- const dir = strapi.dirs.dist.middlewares;
15
- if (!await fse__default.default.pathExists(dir)) {
16
- return {};
17
- }
18
- const middlewares = {};
19
- const paths = await fse__default.default.readdir(dir, { withFileTypes: true });
20
- for (const fd of paths) {
21
- const { name } = fd;
22
- const fullPath = path.join(dir, name);
23
- if (fd.isFile() && path.extname(name) === ".js") {
24
- const key = path.basename(name, ".js");
25
- middlewares[key] = strapiUtils.importDefault(fullPath);
26
- }
27
- }
28
- return middlewares;
29
- };
30
- module.exports = loadMiddlewares;
31
- //# sourceMappingURL=middlewares.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middlewares.js","sources":["../../src/loaders/middlewares.ts"],"sourcesContent":["import { join, extname, basename } from 'path';\nimport fse from 'fs-extra';\nimport { importDefault } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { middlewares as internalMiddlewares } from '../middlewares';\n\n// TODO:: allow folders with index.js inside for bigger policies\nexport default async function loadMiddlewares(strapi: Core.Strapi) {\n const localMiddlewares = await loadLocalMiddlewares(strapi);\n\n strapi.get('middlewares').add(`global::`, localMiddlewares);\n strapi.get('middlewares').add(`strapi::`, internalMiddlewares);\n}\n\nconst loadLocalMiddlewares = async (strapi: Core.Strapi) => {\n const dir = strapi.dirs.dist.middlewares;\n\n if (!(await fse.pathExists(dir))) {\n return {};\n }\n\n const middlewares: Record<string, Core.MiddlewareFactory> = {};\n const paths = await fse.readdir(dir, { withFileTypes: true });\n\n for (const fd of paths) {\n const { name } = fd;\n const fullPath = join(dir, name);\n\n if (fd.isFile() && extname(name) === '.js') {\n const key = basename(name, '.js');\n middlewares[key] = importDefault(fullPath);\n }\n }\n\n return middlewares;\n};\n"],"names":["internalMiddlewares","fse","join","extname","basename","importDefault"],"mappings":";;;;;;;AAOA,eAA8B,gBAAgB,QAAqB;AAC3D,QAAA,mBAAmB,MAAM,qBAAqB,MAAM;AAE1D,SAAO,IAAI,aAAa,EAAE,IAAI,YAAY,gBAAgB;AAC1D,SAAO,IAAI,aAAa,EAAE,IAAI,YAAYA,MAAAA,WAAmB;AAC/D;AAEA,MAAM,uBAAuB,OAAO,WAAwB;AACpD,QAAA,MAAM,OAAO,KAAK,KAAK;AAE7B,MAAI,CAAE,MAAMC,aAAAA,QAAI,WAAW,GAAG,GAAI;AAChC,WAAO;EACT;AAEA,QAAM,cAAsD,CAAA;AACtD,QAAA,QAAQ,MAAMA,aAAAA,QAAI,QAAQ,KAAK,EAAE,eAAe,MAAM;AAE5D,aAAW,MAAM,OAAO;AAChB,UAAA,EAAE,KAAS,IAAA;AACX,UAAA,WAAWC,KAAAA,KAAK,KAAK,IAAI;AAE/B,QAAI,GAAG,OAAO,KAAKC,KAAQ,QAAA,IAAI,MAAM,OAAO;AACpC,YAAA,MAAMC,KAAAA,SAAS,MAAM,KAAK;AACpB,kBAAA,GAAG,IAAIC,YAAA,cAAc,QAAQ;AAAA,IAC3C;AAAA,EACF;AAEO,SAAA;AACT;;"}
@@ -1,30 +0,0 @@
1
- import { join, extname, basename } from "path";
2
- import fse from "fs-extra";
3
- import { importDefault } from "@strapi/utils";
4
- import { middlewares } from "../middlewares/index.mjs";
5
- async function loadMiddlewares(strapi) {
6
- const localMiddlewares = await loadLocalMiddlewares(strapi);
7
- strapi.get("middlewares").add(`global::`, localMiddlewares);
8
- strapi.get("middlewares").add(`strapi::`, middlewares);
9
- }
10
- const loadLocalMiddlewares = async (strapi) => {
11
- const dir = strapi.dirs.dist.middlewares;
12
- if (!await fse.pathExists(dir)) {
13
- return {};
14
- }
15
- const middlewares2 = {};
16
- const paths = await fse.readdir(dir, { withFileTypes: true });
17
- for (const fd of paths) {
18
- const { name } = fd;
19
- const fullPath = join(dir, name);
20
- if (fd.isFile() && extname(name) === ".js") {
21
- const key = basename(name, ".js");
22
- middlewares2[key] = importDefault(fullPath);
23
- }
24
- }
25
- return middlewares2;
26
- };
27
- export {
28
- loadMiddlewares as default
29
- };
30
- //# sourceMappingURL=middlewares.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middlewares.mjs","sources":["../../src/loaders/middlewares.ts"],"sourcesContent":["import { join, extname, basename } from 'path';\nimport fse from 'fs-extra';\nimport { importDefault } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { middlewares as internalMiddlewares } from '../middlewares';\n\n// TODO:: allow folders with index.js inside for bigger policies\nexport default async function loadMiddlewares(strapi: Core.Strapi) {\n const localMiddlewares = await loadLocalMiddlewares(strapi);\n\n strapi.get('middlewares').add(`global::`, localMiddlewares);\n strapi.get('middlewares').add(`strapi::`, internalMiddlewares);\n}\n\nconst loadLocalMiddlewares = async (strapi: Core.Strapi) => {\n const dir = strapi.dirs.dist.middlewares;\n\n if (!(await fse.pathExists(dir))) {\n return {};\n }\n\n const middlewares: Record<string, Core.MiddlewareFactory> = {};\n const paths = await fse.readdir(dir, { withFileTypes: true });\n\n for (const fd of paths) {\n const { name } = fd;\n const fullPath = join(dir, name);\n\n if (fd.isFile() && extname(name) === '.js') {\n const key = basename(name, '.js');\n middlewares[key] = importDefault(fullPath);\n }\n }\n\n return middlewares;\n};\n"],"names":["internalMiddlewares","middlewares"],"mappings":";;;;AAOA,eAA8B,gBAAgB,QAAqB;AAC3D,QAAA,mBAAmB,MAAM,qBAAqB,MAAM;AAE1D,SAAO,IAAI,aAAa,EAAE,IAAI,YAAY,gBAAgB;AAC1D,SAAO,IAAI,aAAa,EAAE,IAAI,YAAYA,WAAmB;AAC/D;AAEA,MAAM,uBAAuB,OAAO,WAAwB;AACpD,QAAA,MAAM,OAAO,KAAK,KAAK;AAE7B,MAAI,CAAE,MAAM,IAAI,WAAW,GAAG,GAAI;AAChC,WAAO;EACT;AAEA,QAAMC,eAAsD,CAAA;AACtD,QAAA,QAAQ,MAAM,IAAI,QAAQ,KAAK,EAAE,eAAe,MAAM;AAE5D,aAAW,MAAM,OAAO;AAChB,UAAA,EAAE,KAAS,IAAA;AACX,UAAA,WAAW,KAAK,KAAK,IAAI;AAE/B,QAAI,GAAG,OAAO,KAAK,QAAQ,IAAI,MAAM,OAAO;AACpC,YAAA,MAAM,SAAS,MAAM,KAAK;AACpB,MAAAA,aAAA,GAAG,IAAI,cAAc,QAAQ;AAAA,IAC3C;AAAA,EACF;AAEO,SAAAA;AACT;"}
@@ -1,113 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const path = require("path");
4
- const fs = require("fs");
5
- const _ = require("lodash");
6
- const _$1 = require("lodash/fp");
7
- const strapiUtils = require("@strapi/utils");
8
- const getUserPluginsConfig = require("./get-user-plugins-config.js");
9
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
10
- const ___default = /* @__PURE__ */ _interopDefault(_);
11
- const INTERNAL_PLUGINS = [
12
- "@strapi/plugin-content-manager",
13
- "@strapi/plugin-content-type-builder",
14
- "@strapi/plugin-email",
15
- "@strapi/plugin-upload",
16
- "@strapi/plugin-i18n",
17
- "@strapi/content-releases",
18
- "@strapi/review-workflows"
19
- ];
20
- const isStrapiPlugin = (info) => _$1.get("strapi.kind", info) === "plugin";
21
- const validatePluginName = (pluginName) => {
22
- if (!strapiUtils.strings.isKebabCase(pluginName)) {
23
- throw new Error(`Plugin name "${pluginName}" is not in kebab (an-example-of-kebab-case)`);
24
- }
25
- };
26
- const toDetailedDeclaration = (declaration) => {
27
- if (typeof declaration === "boolean") {
28
- return { enabled: declaration };
29
- }
30
- const detailedDeclaration = {
31
- enabled: declaration.enabled
32
- };
33
- if (declaration?.resolve) {
34
- let pathToPlugin = "";
35
- if (declaration.isModule) {
36
- pathToPlugin = path.join(declaration.resolve, "..");
37
- } else {
38
- try {
39
- pathToPlugin = path.dirname(require.resolve(declaration.resolve));
40
- } catch (e) {
41
- pathToPlugin = path.resolve(strapi.dirs.app.root, declaration.resolve);
42
- if (!fs.existsSync(pathToPlugin) || !fs.statSync(pathToPlugin).isDirectory()) {
43
- throw new Error(`${declaration.resolve} couldn't be resolved`);
44
- }
45
- }
46
- }
47
- detailedDeclaration.pathToPlugin = pathToPlugin;
48
- }
49
- return detailedDeclaration;
50
- };
51
- const getEnabledPlugins = async (strapi2, { client } = { client: false }) => {
52
- const internalPlugins = {};
53
- for (const dep of INTERNAL_PLUGINS) {
54
- const packagePath = path.join(dep, "package.json");
55
- const packageInfo = require(packagePath);
56
- validatePluginName(packageInfo.strapi.name);
57
- internalPlugins[packageInfo.strapi.name] = {
58
- ...toDetailedDeclaration({ enabled: true, resolve: packagePath, isModule: client }),
59
- info: packageInfo.strapi
60
- };
61
- }
62
- const installedPlugins = {};
63
- const dependencies = strapi2.config.get("info.dependencies", {});
64
- for (const dep of Object.keys(dependencies)) {
65
- const packagePath = path.join(dep, "package.json");
66
- let packageInfo;
67
- try {
68
- packageInfo = require(packagePath);
69
- } catch {
70
- continue;
71
- }
72
- if (isStrapiPlugin(packageInfo)) {
73
- validatePluginName(packageInfo.strapi.name);
74
- installedPlugins[packageInfo.strapi.name] = {
75
- ...toDetailedDeclaration({ enabled: true, resolve: packagePath, isModule: client }),
76
- info: {
77
- ...packageInfo.strapi,
78
- packageName: packageInfo.name
79
- }
80
- };
81
- }
82
- }
83
- const declaredPlugins = {};
84
- const userPluginsConfig = await getUserPluginsConfig.getUserPluginsConfig();
85
- ___default.default.forEach(userPluginsConfig, (declaration, pluginName) => {
86
- validatePluginName(pluginName);
87
- declaredPlugins[pluginName] = {
88
- ...toDetailedDeclaration(declaration),
89
- info: {}
90
- };
91
- const { pathToPlugin } = declaredPlugins[pluginName];
92
- if (pathToPlugin) {
93
- const packagePath = path.join(pathToPlugin, "package.json");
94
- const packageInfo = require(packagePath);
95
- if (isStrapiPlugin(packageInfo)) {
96
- declaredPlugins[pluginName].info = packageInfo.strapi || {};
97
- }
98
- }
99
- });
100
- const declaredPluginsResolves = _$1.map(_$1.prop("pathToPlugin"), declaredPlugins);
101
- const installedPluginsNotAlreadyUsed = _$1.pickBy(
102
- (p) => !declaredPluginsResolves.includes(p.pathToPlugin),
103
- installedPlugins
104
- );
105
- const enabledPlugins = _$1.pipe(
106
- _$1.defaultsDeep(declaredPlugins),
107
- _$1.defaultsDeep(installedPluginsNotAlreadyUsed),
108
- _$1.pickBy((p) => p.enabled)
109
- )(internalPlugins);
110
- return enabledPlugins;
111
- };
112
- exports.getEnabledPlugins = getEnabledPlugins;
113
- //# sourceMappingURL=get-enabled-plugins.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-enabled-plugins.js","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 */\nconst INTERNAL_PLUGINS = [\n '@strapi/plugin-content-manager',\n '@strapi/plugin-content-type-builder',\n '@strapi/plugin-email',\n '@strapi/plugin-upload',\n '@strapi/plugin-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 const packageInfo = require(packagePath);\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":["get","strings","join","dirname","resolve","existsSync","statSync","strapi","getUserPluginsConfig","_","map","prop","pickBy","pipe","defaultsDeep"],"mappings":"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"}
@@ -1,111 +0,0 @@
1
- import { join, dirname, resolve } from "path";
2
- import { existsSync, statSync } from "fs";
3
- import _ from "lodash";
4
- import { map, prop, pickBy, pipe, defaultsDeep, get } from "lodash/fp";
5
- import { strings } from "@strapi/utils";
6
- import { getUserPluginsConfig } from "./get-user-plugins-config.mjs";
7
- const INTERNAL_PLUGINS = [
8
- "@strapi/plugin-content-manager",
9
- "@strapi/plugin-content-type-builder",
10
- "@strapi/plugin-email",
11
- "@strapi/plugin-upload",
12
- "@strapi/plugin-i18n",
13
- "@strapi/content-releases",
14
- "@strapi/review-workflows"
15
- ];
16
- const isStrapiPlugin = (info) => get("strapi.kind", info) === "plugin";
17
- const validatePluginName = (pluginName) => {
18
- if (!strings.isKebabCase(pluginName)) {
19
- throw new Error(`Plugin name "${pluginName}" is not in kebab (an-example-of-kebab-case)`);
20
- }
21
- };
22
- const toDetailedDeclaration = (declaration) => {
23
- if (typeof declaration === "boolean") {
24
- return { enabled: declaration };
25
- }
26
- const detailedDeclaration = {
27
- enabled: declaration.enabled
28
- };
29
- if (declaration?.resolve) {
30
- let pathToPlugin = "";
31
- if (declaration.isModule) {
32
- pathToPlugin = join(declaration.resolve, "..");
33
- } else {
34
- try {
35
- pathToPlugin = dirname(require.resolve(declaration.resolve));
36
- } catch (e) {
37
- pathToPlugin = resolve(strapi.dirs.app.root, declaration.resolve);
38
- if (!existsSync(pathToPlugin) || !statSync(pathToPlugin).isDirectory()) {
39
- throw new Error(`${declaration.resolve} couldn't be resolved`);
40
- }
41
- }
42
- }
43
- detailedDeclaration.pathToPlugin = pathToPlugin;
44
- }
45
- return detailedDeclaration;
46
- };
47
- const getEnabledPlugins = async (strapi2, { client } = { client: false }) => {
48
- const internalPlugins = {};
49
- for (const dep of INTERNAL_PLUGINS) {
50
- const packagePath = join(dep, "package.json");
51
- const packageInfo = require(packagePath);
52
- validatePluginName(packageInfo.strapi.name);
53
- internalPlugins[packageInfo.strapi.name] = {
54
- ...toDetailedDeclaration({ enabled: true, resolve: packagePath, isModule: client }),
55
- info: packageInfo.strapi
56
- };
57
- }
58
- const installedPlugins = {};
59
- const dependencies = strapi2.config.get("info.dependencies", {});
60
- for (const dep of Object.keys(dependencies)) {
61
- const packagePath = join(dep, "package.json");
62
- let packageInfo;
63
- try {
64
- packageInfo = require(packagePath);
65
- } catch {
66
- continue;
67
- }
68
- if (isStrapiPlugin(packageInfo)) {
69
- validatePluginName(packageInfo.strapi.name);
70
- installedPlugins[packageInfo.strapi.name] = {
71
- ...toDetailedDeclaration({ enabled: true, resolve: packagePath, isModule: client }),
72
- info: {
73
- ...packageInfo.strapi,
74
- packageName: packageInfo.name
75
- }
76
- };
77
- }
78
- }
79
- const declaredPlugins = {};
80
- const userPluginsConfig = await getUserPluginsConfig();
81
- _.forEach(userPluginsConfig, (declaration, pluginName) => {
82
- validatePluginName(pluginName);
83
- declaredPlugins[pluginName] = {
84
- ...toDetailedDeclaration(declaration),
85
- info: {}
86
- };
87
- const { pathToPlugin } = declaredPlugins[pluginName];
88
- if (pathToPlugin) {
89
- const packagePath = join(pathToPlugin, "package.json");
90
- const packageInfo = require(packagePath);
91
- if (isStrapiPlugin(packageInfo)) {
92
- declaredPlugins[pluginName].info = packageInfo.strapi || {};
93
- }
94
- }
95
- });
96
- const declaredPluginsResolves = map(prop("pathToPlugin"), declaredPlugins);
97
- const installedPluginsNotAlreadyUsed = pickBy(
98
- (p) => !declaredPluginsResolves.includes(p.pathToPlugin),
99
- installedPlugins
100
- );
101
- const enabledPlugins = pipe(
102
- defaultsDeep(declaredPlugins),
103
- defaultsDeep(installedPluginsNotAlreadyUsed),
104
- pickBy((p) => p.enabled)
105
- )(internalPlugins);
106
- return enabledPlugins;
107
- };
108
- export {
109
- getEnabledPlugins
110
- };
111
- //# sourceMappingURL=get-enabled-plugins.mjs.map
@@ -1 +0,0 @@
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 */\nconst INTERNAL_PLUGINS = [\n '@strapi/plugin-content-manager',\n '@strapi/plugin-content-type-builder',\n '@strapi/plugin-email',\n '@strapi/plugin-upload',\n '@strapi/plugin-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 const packageInfo = require(packagePath);\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":"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"}
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const path = require("path");
4
- const fse = require("fs-extra");
5
- const _ = 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 = _.merge(config, loadConfigFile.loadConfigFile(currentEnvUserConfigPath));
23
- }
24
- return config;
25
- };
26
- exports.getUserPluginsConfig = getUserPluginsConfig;
27
- //# sourceMappingURL=get-user-plugins-config.js.map
@@ -1 +0,0 @@
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,EAAAA,MAAM,QAAQD,eAAAA,eAAe,wBAAwB,CAAC;AAAA,EACjE;AAEO,SAAA;AACT;;"}
@@ -1,25 +0,0 @@
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
24
- };
25
- //# sourceMappingURL=get-user-plugins-config.mjs.map
@@ -1 +0,0 @@
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;"}