@strapi/core 0.0.0-experimental.80cf2c74a2003f3c0602abc81888dd9f36dc68a3 → 0.0.0-experimental.826f263c58b6886b849d3f03b81f7a530bc51c91

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 (414) hide show
  1. package/dist/Strapi.d.ts +34 -45
  2. package/dist/Strapi.d.ts.map +1 -1
  3. package/dist/Strapi.js +142 -217
  4. package/dist/Strapi.js.map +1 -1
  5. package/dist/Strapi.mjs +132 -208
  6. package/dist/Strapi.mjs.map +1 -1
  7. package/dist/configuration/config-loader.d.ts.map +1 -1
  8. package/dist/configuration/config-loader.js +9 -5
  9. package/dist/configuration/config-loader.js.map +1 -1
  10. package/dist/configuration/config-loader.mjs +9 -5
  11. package/dist/configuration/config-loader.mjs.map +1 -1
  12. package/dist/configuration/get-dirs.d.ts +10 -0
  13. package/dist/configuration/get-dirs.d.ts.map +1 -0
  14. package/dist/{utils → configuration}/get-dirs.js +3 -2
  15. package/dist/configuration/get-dirs.js.map +1 -0
  16. package/dist/{utils → configuration}/get-dirs.mjs +3 -2
  17. package/dist/configuration/get-dirs.mjs.map +1 -0
  18. package/dist/configuration/index.d.ts +4 -7
  19. package/dist/configuration/index.d.ts.map +1 -1
  20. package/dist/configuration/index.js +6 -4
  21. package/dist/configuration/index.js.map +1 -1
  22. package/dist/configuration/index.mjs +5 -4
  23. package/dist/configuration/index.mjs.map +1 -1
  24. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  25. package/dist/core-api/controller/collection-type.js +3 -0
  26. package/dist/core-api/controller/collection-type.js.map +1 -1
  27. package/dist/core-api/controller/collection-type.mjs +3 -0
  28. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  29. package/dist/core-api/controller/index.js +5 -5
  30. package/dist/core-api/controller/index.js.map +1 -1
  31. package/dist/core-api/controller/index.mjs +6 -6
  32. package/dist/core-api/controller/index.mjs.map +1 -1
  33. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  34. package/dist/core-api/controller/single-type.js +1 -0
  35. package/dist/core-api/controller/single-type.js.map +1 -1
  36. package/dist/core-api/controller/single-type.mjs +1 -0
  37. package/dist/core-api/controller/single-type.mjs.map +1 -1
  38. package/dist/core-api/routes/index.d.ts.map +1 -1
  39. package/dist/core-api/service/collection-type.d.ts +5 -11
  40. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  41. package/dist/core-api/service/collection-type.js +18 -7
  42. package/dist/core-api/service/collection-type.js.map +1 -1
  43. package/dist/core-api/service/collection-type.mjs +19 -8
  44. package/dist/core-api/service/collection-type.mjs.map +1 -1
  45. package/dist/core-api/service/pagination.d.ts +4 -11
  46. package/dist/core-api/service/pagination.d.ts.map +1 -1
  47. package/dist/core-api/service/pagination.js +14 -40
  48. package/dist/core-api/service/pagination.js.map +1 -1
  49. package/dist/core-api/service/pagination.mjs +16 -42
  50. package/dist/core-api/service/pagination.mjs.map +1 -1
  51. package/dist/core-api/service/single-type.d.ts.map +1 -1
  52. package/dist/core-api/service/single-type.js +9 -2
  53. package/dist/core-api/service/single-type.js.map +1 -1
  54. package/dist/core-api/service/single-type.mjs +9 -2
  55. package/dist/core-api/service/single-type.mjs.map +1 -1
  56. package/dist/ee/index.d.ts +2 -0
  57. package/dist/ee/index.d.ts.map +1 -1
  58. package/dist/ee/index.js.map +1 -1
  59. package/dist/ee/index.mjs.map +1 -1
  60. package/dist/ee/license.d.ts.map +1 -1
  61. package/dist/ee/license.js +2 -1
  62. package/dist/ee/license.js.map +1 -1
  63. package/dist/ee/license.mjs +2 -1
  64. package/dist/ee/license.mjs.map +1 -1
  65. package/dist/factories.d.ts +2 -2
  66. package/dist/factories.d.ts.map +1 -1
  67. package/dist/factories.js.map +1 -1
  68. package/dist/factories.mjs.map +1 -1
  69. package/dist/index.d.ts +4 -2
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +25 -1
  72. package/dist/index.js.map +1 -1
  73. package/dist/index.mjs +27 -3
  74. package/dist/index.mjs.map +1 -1
  75. package/dist/loaders/admin.js +0 -1
  76. package/dist/loaders/admin.js.map +1 -1
  77. package/dist/loaders/admin.mjs +0 -1
  78. package/dist/loaders/admin.mjs.map +1 -1
  79. package/dist/loaders/apis.d.ts.map +1 -1
  80. package/dist/loaders/apis.js +10 -10
  81. package/dist/loaders/apis.js.map +1 -1
  82. package/dist/loaders/apis.mjs +10 -10
  83. package/dist/loaders/apis.mjs.map +1 -1
  84. package/dist/loaders/index.d.ts.map +1 -1
  85. package/dist/loaders/index.js +0 -2
  86. package/dist/loaders/index.js.map +1 -1
  87. package/dist/loaders/index.mjs +0 -2
  88. package/dist/loaders/index.mjs.map +1 -1
  89. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  90. package/dist/loaders/plugins/get-enabled-plugins.js +7 -6
  91. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  92. package/dist/loaders/plugins/get-enabled-plugins.mjs +7 -6
  93. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  94. package/dist/middlewares/body.d.ts +2 -2
  95. package/dist/middlewares/body.d.ts.map +1 -1
  96. package/dist/middlewares/body.js +4 -4
  97. package/dist/middlewares/body.js.map +1 -1
  98. package/dist/middlewares/body.mjs +4 -4
  99. package/dist/middlewares/body.mjs.map +1 -1
  100. package/dist/middlewares/public.js +1 -1
  101. package/dist/middlewares/public.js.map +1 -1
  102. package/dist/middlewares/public.mjs +1 -1
  103. package/dist/middlewares/public.mjs.map +1 -1
  104. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +30 -0
  105. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -0
  106. package/dist/migrations/database/5.0.0-discard-drafts.js +50 -0
  107. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
  108. package/dist/migrations/database/5.0.0-discard-drafts.mjs +50 -0
  109. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
  110. package/dist/migrations/draft-publish.d.ts.map +1 -1
  111. package/dist/migrations/draft-publish.js +14 -31
  112. package/dist/migrations/draft-publish.js.map +1 -1
  113. package/dist/migrations/draft-publish.mjs +15 -32
  114. package/dist/migrations/draft-publish.mjs.map +1 -1
  115. package/dist/providers/admin.d.ts +3 -0
  116. package/dist/providers/admin.d.ts.map +1 -0
  117. package/dist/providers/admin.js +20 -0
  118. package/dist/providers/admin.js.map +1 -0
  119. package/dist/providers/admin.mjs +21 -0
  120. package/dist/providers/admin.mjs.map +1 -0
  121. package/dist/providers/coreStore.d.ts +3 -0
  122. package/dist/providers/coreStore.d.ts.map +1 -0
  123. package/dist/providers/coreStore.js +11 -0
  124. package/dist/providers/coreStore.js.map +1 -0
  125. package/dist/providers/coreStore.mjs +12 -0
  126. package/dist/providers/coreStore.mjs.map +1 -0
  127. package/dist/providers/cron.d.ts +3 -0
  128. package/dist/providers/cron.d.ts.map +1 -0
  129. package/dist/providers/cron.js +20 -0
  130. package/dist/providers/cron.js.map +1 -0
  131. package/dist/providers/cron.mjs +21 -0
  132. package/dist/providers/cron.mjs.map +1 -0
  133. package/dist/providers/index.d.ts +3 -0
  134. package/dist/providers/index.d.ts.map +1 -0
  135. package/dist/providers/index.js +11 -0
  136. package/dist/providers/index.js.map +1 -0
  137. package/dist/providers/index.mjs +11 -0
  138. package/dist/providers/index.mjs.map +1 -0
  139. package/dist/providers/provider.d.ts +9 -0
  140. package/dist/providers/provider.d.ts.map +1 -0
  141. package/dist/providers/provider.js +5 -0
  142. package/dist/providers/provider.js.map +1 -0
  143. package/dist/providers/provider.mjs +5 -0
  144. package/dist/providers/provider.mjs.map +1 -0
  145. package/dist/providers/registries.d.ts +3 -0
  146. package/dist/providers/registries.d.ts.map +1 -0
  147. package/dist/providers/registries.js +35 -0
  148. package/dist/providers/registries.js.map +1 -0
  149. package/dist/providers/registries.mjs +36 -0
  150. package/dist/providers/registries.mjs.map +1 -0
  151. package/dist/providers/telemetry.d.ts +3 -0
  152. package/dist/providers/telemetry.d.ts.map +1 -0
  153. package/dist/providers/telemetry.js +19 -0
  154. package/dist/providers/telemetry.js.map +1 -0
  155. package/dist/providers/telemetry.mjs +20 -0
  156. package/dist/providers/telemetry.mjs.map +1 -0
  157. package/dist/providers/webhooks.d.ts +3 -0
  158. package/dist/providers/webhooks.d.ts.map +1 -0
  159. package/dist/providers/webhooks.js +30 -0
  160. package/dist/providers/webhooks.js.map +1 -0
  161. package/dist/providers/webhooks.mjs +31 -0
  162. package/dist/providers/webhooks.mjs.map +1 -0
  163. package/dist/registries/index.d.ts +0 -1
  164. package/dist/registries/index.d.ts.map +1 -1
  165. package/dist/registries/policies.d.ts +22 -10
  166. package/dist/registries/policies.d.ts.map +1 -1
  167. package/dist/registries/policies.js +64 -18
  168. package/dist/registries/policies.js.map +1 -1
  169. package/dist/registries/policies.mjs +65 -19
  170. package/dist/registries/policies.mjs.map +1 -1
  171. package/dist/services/config.d.ts +3 -0
  172. package/dist/services/config.d.ts.map +1 -0
  173. package/dist/{registries → services}/config.js +11 -7
  174. package/dist/services/config.js.map +1 -0
  175. package/dist/{registries → services}/config.mjs +10 -7
  176. package/dist/services/config.mjs.map +1 -0
  177. package/dist/services/content-api/index.d.ts +18 -0
  178. package/dist/services/content-api/index.d.ts.map +1 -1
  179. package/dist/services/content-api/index.js +28 -2
  180. package/dist/services/content-api/index.js.map +1 -1
  181. package/dist/services/content-api/index.mjs +28 -2
  182. package/dist/services/content-api/index.mjs.map +1 -1
  183. package/dist/services/content-api/permissions/index.js +1 -1
  184. package/dist/services/content-api/permissions/index.js.map +1 -1
  185. package/dist/services/content-api/permissions/index.mjs +1 -1
  186. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  187. package/dist/services/core-store.d.ts.map +1 -1
  188. package/dist/services/document-service/attributes/index.d.ts +6 -0
  189. package/dist/services/document-service/attributes/index.d.ts.map +1 -0
  190. package/dist/services/{entity-service → document-service}/attributes/index.js +5 -5
  191. package/dist/services/document-service/attributes/index.js.map +1 -0
  192. package/dist/services/{entity-service → document-service}/attributes/index.mjs +5 -5
  193. package/dist/services/document-service/attributes/index.mjs.map +1 -0
  194. package/dist/services/document-service/attributes/transforms.d.ts.map +1 -0
  195. package/dist/services/document-service/attributes/transforms.js.map +1 -0
  196. package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
  197. package/dist/services/document-service/common.d.ts +1 -1
  198. package/dist/services/document-service/common.d.ts.map +1 -1
  199. package/dist/services/document-service/common.js.map +1 -1
  200. package/dist/services/document-service/common.mjs.map +1 -1
  201. package/dist/services/document-service/components.d.ts +25 -1
  202. package/dist/services/document-service/components.d.ts.map +1 -1
  203. package/dist/services/{entity-service → document-service}/components.js +35 -45
  204. package/dist/services/document-service/components.js.map +1 -0
  205. package/dist/services/{entity-service → document-service}/components.mjs +36 -46
  206. package/dist/services/document-service/components.mjs.map +1 -0
  207. package/dist/services/document-service/entries.d.ts +10 -0
  208. package/dist/services/document-service/entries.d.ts.map +1 -0
  209. package/dist/services/document-service/entries.js +96 -0
  210. package/dist/services/document-service/entries.js.map +1 -0
  211. package/dist/services/document-service/entries.mjs +96 -0
  212. package/dist/services/document-service/entries.mjs.map +1 -0
  213. package/dist/services/document-service/events.d.ts +25 -0
  214. package/dist/services/document-service/events.d.ts.map +1 -0
  215. package/dist/services/document-service/events.js +47 -0
  216. package/dist/services/document-service/events.js.map +1 -0
  217. package/dist/services/document-service/events.mjs +47 -0
  218. package/dist/services/document-service/events.mjs.map +1 -0
  219. package/dist/services/document-service/index.d.ts +0 -2
  220. package/dist/services/document-service/index.d.ts.map +1 -1
  221. package/dist/services/document-service/index.js +13 -2
  222. package/dist/services/document-service/index.js.map +1 -1
  223. package/dist/services/document-service/index.mjs +13 -2
  224. package/dist/services/document-service/index.mjs.map +1 -1
  225. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  226. package/dist/services/document-service/internationalization.js +14 -5
  227. package/dist/services/document-service/internationalization.js.map +1 -1
  228. package/dist/services/document-service/internationalization.mjs +14 -5
  229. package/dist/services/document-service/internationalization.mjs.map +1 -1
  230. package/dist/services/document-service/middlewares/middleware-manager.d.ts +5 -2
  231. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -1
  232. package/dist/services/document-service/middlewares/middleware-manager.js +8 -5
  233. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -1
  234. package/dist/services/document-service/middlewares/middleware-manager.mjs +8 -5
  235. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -1
  236. package/dist/services/document-service/params.d.ts +3 -1
  237. package/dist/services/document-service/params.d.ts.map +1 -1
  238. package/dist/services/document-service/params.js.map +1 -0
  239. package/dist/services/document-service/params.mjs.map +1 -0
  240. package/dist/services/document-service/repository.d.ts.map +1 -1
  241. package/dist/services/document-service/repository.js +135 -154
  242. package/dist/services/document-service/repository.js.map +1 -1
  243. package/dist/services/document-service/repository.mjs +118 -137
  244. package/dist/services/document-service/repository.mjs.map +1 -1
  245. package/dist/services/document-service/transform/data.d.ts.map +1 -1
  246. package/dist/services/document-service/transform/data.js +4 -2
  247. package/dist/services/document-service/transform/data.js.map +1 -1
  248. package/dist/services/document-service/transform/data.mjs +4 -2
  249. package/dist/services/document-service/transform/data.mjs.map +1 -1
  250. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  251. package/dist/services/document-service/transform/populate.js +1 -1
  252. package/dist/services/document-service/transform/populate.js.map +1 -1
  253. package/dist/services/document-service/transform/populate.mjs +1 -1
  254. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  255. package/dist/services/document-service/transform/query.d.ts +5 -0
  256. package/dist/services/document-service/transform/query.d.ts.map +1 -0
  257. package/dist/services/document-service/transform/query.js +9 -0
  258. package/dist/services/document-service/transform/query.js.map +1 -0
  259. package/dist/services/document-service/transform/query.mjs +9 -0
  260. package/dist/services/document-service/transform/query.mjs.map +1 -0
  261. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +8 -7
  262. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  263. package/dist/services/document-service/transform/relations/extract/data-ids.js +44 -77
  264. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  265. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +44 -77
  266. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  267. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +7 -3
  268. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  269. package/dist/services/document-service/transform/relations/transform/data-ids.js +60 -125
  270. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  271. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +61 -126
  272. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  273. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts +9 -0
  274. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts.map +1 -0
  275. package/dist/services/document-service/transform/relations/transform/default-locale.js +32 -0
  276. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
  277. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +32 -0
  278. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
  279. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +2 -2
  280. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  281. package/dist/services/document-service/transform/relations/utils/i18n.js +3 -9
  282. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  283. package/dist/services/document-service/transform/relations/utils/i18n.mjs +3 -9
  284. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  285. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts +6 -0
  286. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -0
  287. package/dist/services/document-service/transform/relations/utils/map-relation.js +91 -0
  288. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
  289. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +91 -0
  290. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
  291. package/dist/services/document-service/transform/relations/utils/types.d.ts +6 -0
  292. package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -1
  293. package/dist/services/entity-service/index.d.ts.map +1 -1
  294. package/dist/services/entity-service/index.js +22 -16
  295. package/dist/services/entity-service/index.js.map +1 -1
  296. package/dist/services/entity-service/index.mjs +23 -17
  297. package/dist/services/entity-service/index.mjs.map +1 -1
  298. package/dist/services/entity-validator/index.d.ts.map +1 -1
  299. package/dist/services/entity-validator/index.js +93 -87
  300. package/dist/services/entity-validator/index.js.map +1 -1
  301. package/dist/services/entity-validator/index.mjs +93 -87
  302. package/dist/services/entity-validator/index.mjs.map +1 -1
  303. package/dist/services/event-hub.d.ts +1 -0
  304. package/dist/services/event-hub.d.ts.map +1 -1
  305. package/dist/services/event-hub.js +9 -4
  306. package/dist/services/event-hub.js.map +1 -1
  307. package/dist/services/event-hub.mjs +9 -4
  308. package/dist/services/event-hub.mjs.map +1 -1
  309. package/dist/services/metrics/middleware.d.ts.map +1 -1
  310. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  311. package/dist/services/metrics/rate-limiter.js.map +1 -1
  312. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  313. package/dist/services/query-params.d.ts +7 -0
  314. package/dist/services/query-params.d.ts.map +1 -0
  315. package/dist/services/query-params.js +12 -0
  316. package/dist/services/query-params.js.map +1 -0
  317. package/dist/services/query-params.mjs +13 -0
  318. package/dist/services/query-params.mjs.map +1 -0
  319. package/dist/services/reloader.d.ts +7 -0
  320. package/dist/services/reloader.d.ts.map +1 -0
  321. package/dist/services/reloader.js +36 -0
  322. package/dist/services/reloader.js.map +1 -0
  323. package/dist/services/reloader.mjs +36 -0
  324. package/dist/services/reloader.mjs.map +1 -0
  325. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  326. package/dist/services/server/compose-endpoint.js +1 -2
  327. package/dist/services/server/compose-endpoint.js.map +1 -1
  328. package/dist/services/server/compose-endpoint.mjs +2 -3
  329. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  330. package/dist/services/server/koa.d.ts.map +1 -1
  331. package/dist/services/server/koa.js +1 -1
  332. package/dist/services/server/koa.js.map +1 -1
  333. package/dist/services/server/koa.mjs +1 -1
  334. package/dist/services/server/koa.mjs.map +1 -1
  335. package/dist/services/server/policy.d.ts +2 -2
  336. package/dist/services/server/policy.d.ts.map +1 -1
  337. package/dist/services/server/policy.js +4 -4
  338. package/dist/services/server/policy.js.map +1 -1
  339. package/dist/services/server/policy.mjs +4 -4
  340. package/dist/services/server/policy.mjs.map +1 -1
  341. package/dist/services/server/register-routes.js +3 -3
  342. package/dist/services/server/register-routes.js.map +1 -1
  343. package/dist/services/server/register-routes.mjs +3 -3
  344. package/dist/services/server/register-routes.mjs.map +1 -1
  345. package/dist/services/server/routing.d.ts +1 -1
  346. package/dist/services/webhook-runner.d.ts +2 -1
  347. package/dist/services/webhook-runner.d.ts.map +1 -1
  348. package/dist/services/webhook-runner.js.map +1 -1
  349. package/dist/services/webhook-runner.mjs.map +1 -1
  350. package/dist/services/webhook-store.d.ts +2 -8
  351. package/dist/services/webhook-store.d.ts.map +1 -1
  352. package/dist/services/webhook-store.js +14 -8
  353. package/dist/services/webhook-store.js.map +1 -1
  354. package/dist/services/webhook-store.mjs +14 -8
  355. package/dist/services/webhook-store.mjs.map +1 -1
  356. package/dist/utils/index.d.ts +2 -1
  357. package/dist/utils/index.d.ts.map +1 -1
  358. package/dist/utils/load-files.d.ts.map +1 -1
  359. package/dist/utils/resolve-working-dirs.d.ts +19 -0
  360. package/dist/utils/resolve-working-dirs.d.ts.map +1 -0
  361. package/dist/utils/resolve-working-dirs.js +13 -0
  362. package/dist/utils/resolve-working-dirs.js.map +1 -0
  363. package/dist/utils/resolve-working-dirs.mjs +11 -0
  364. package/dist/utils/resolve-working-dirs.mjs.map +1 -0
  365. package/dist/utils/startup-logger.d.ts.map +1 -1
  366. package/dist/utils/transform-content-types-to-models.d.ts +15 -15
  367. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  368. package/dist/utils/transform-content-types-to-models.js +77 -85
  369. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  370. package/dist/utils/transform-content-types-to-models.mjs +77 -85
  371. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  372. package/dist/utils/update-notifier/index.d.ts +1 -6
  373. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  374. package/dist/utils/update-notifier/index.js +11 -14
  375. package/dist/utils/update-notifier/index.js.map +1 -1
  376. package/dist/utils/update-notifier/index.mjs +11 -14
  377. package/dist/utils/update-notifier/index.mjs.map +1 -1
  378. package/package.json +28 -26
  379. package/dist/registries/config.d.ts +0 -4
  380. package/dist/registries/config.d.ts.map +0 -1
  381. package/dist/registries/config.js.map +0 -1
  382. package/dist/registries/config.mjs.map +0 -1
  383. package/dist/services/document-service/document-engine.d.ts +0 -2
  384. package/dist/services/document-service/document-engine.d.ts.map +0 -1
  385. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +0 -2
  386. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +0 -1
  387. package/dist/services/document-service/transform/relations/utils/data.js +0 -12
  388. package/dist/services/document-service/transform/relations/utils/data.js.map +0 -1
  389. package/dist/services/document-service/transform/relations/utils/data.mjs +0 -12
  390. package/dist/services/document-service/transform/relations/utils/data.mjs.map +0 -1
  391. package/dist/services/entity-service/attributes/index.d.ts +0 -6
  392. package/dist/services/entity-service/attributes/index.d.ts.map +0 -1
  393. package/dist/services/entity-service/attributes/index.js.map +0 -1
  394. package/dist/services/entity-service/attributes/index.mjs.map +0 -1
  395. package/dist/services/entity-service/attributes/transforms.d.ts.map +0 -1
  396. package/dist/services/entity-service/attributes/transforms.js.map +0 -1
  397. package/dist/services/entity-service/attributes/transforms.mjs.map +0 -1
  398. package/dist/services/entity-service/components.d.ts +0 -95
  399. package/dist/services/entity-service/components.d.ts.map +0 -1
  400. package/dist/services/entity-service/components.js.map +0 -1
  401. package/dist/services/entity-service/components.mjs.map +0 -1
  402. package/dist/services/entity-service/params.d.ts +0 -8
  403. package/dist/services/entity-service/params.d.ts.map +0 -1
  404. package/dist/services/entity-service/params.js.map +0 -1
  405. package/dist/services/entity-service/params.mjs.map +0 -1
  406. package/dist/utils/get-dirs.d.ts +0 -9
  407. package/dist/utils/get-dirs.d.ts.map +0 -1
  408. package/dist/utils/get-dirs.js.map +0 -1
  409. package/dist/utils/get-dirs.mjs.map +0 -1
  410. /package/dist/services/{entity-service → document-service}/attributes/transforms.d.ts +0 -0
  411. /package/dist/services/{entity-service → document-service}/attributes/transforms.js +0 -0
  412. /package/dist/services/{entity-service → document-service}/attributes/transforms.mjs +0 -0
  413. /package/dist/services/{entity-service → document-service}/params.js +0 -0
  414. /package/dist/services/{entity-service → document-service}/params.mjs +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registries.js","sources":["../../src/providers/registries.ts"],"sourcesContent":["import { hooks } from '@strapi/utils';\n\nimport { defineProvider } from './provider';\nimport * as registries from '../registries';\nimport { loadApplicationContext } from '../loaders';\nimport * as draftAndPublishSync from '../migrations/draft-publish';\nimport { discardDocumentDrafts } from '../migrations/database/5.0.0-discard-drafts';\n\nexport default defineProvider({\n init(strapi) {\n strapi\n .add('content-types', () => registries.contentTypes())\n .add('components', () => registries.components())\n .add('services', () => registries.services(strapi))\n .add('policies', () => registries.policies())\n .add('middlewares', () => registries.middlewares())\n .add('hooks', () => registries.hooks())\n .add('controllers', () => registries.controllers(strapi))\n .add('modules', () => registries.modules(strapi))\n .add('plugins', () => registries.plugins(strapi))\n .add('custom-fields', () => registries.customFields(strapi))\n .add('apis', () => registries.apis(strapi))\n .add('models', () => registries.models())\n .add('sanitizers', registries.sanitizers())\n .add('validators', registries.validators());\n },\n async register(strapi) {\n await loadApplicationContext(strapi);\n\n strapi.get('hooks').set('strapi::content-types.beforeSync', hooks.createAsyncParallelHook());\n strapi.get('hooks').set('strapi::content-types.afterSync', hooks.createAsyncParallelHook());\n\n // Content migration to enable draft and publish\n strapi.hook('strapi::content-types.beforeSync').register(draftAndPublishSync.disable);\n strapi.hook('strapi::content-types.afterSync').register(draftAndPublishSync.enable);\n\n // Database migrations\n strapi.db.migrations.providers.internal.register(discardDocumentDrafts);\n },\n});\n"],"names":["defineProvider","registries.contentTypes","registries.components","registries.services","registries.policies","registries.middlewares","registries.hooks","registries.controllers","registries.modules","registries.plugins","registries.customFields","registries.apis","registries.models","registries.sanitizers","registries.validators","loadApplicationContext","hooks","draftAndPublishSync.disable","draftAndPublishSync.enable","discardDocumentDrafts"],"mappings":";;;;;;;;;;;;;;;;;;;;AAQA,MAAA,aAAeA,wBAAe;AAAA,EAC5B,KAAK,QAAQ;AAER,WAAA,IAAI,iBAAiB,MAAMC,aAAyB,CAAA,EACpD,IAAI,cAAc,MAAMC,WAAuB,CAAA,EAC/C,IAAI,YAAY,MAAMC,SAAoB,MAAM,CAAC,EACjD,IAAI,YAAY,MAAMC,SAAqB,CAAA,EAC3C,IAAI,eAAe,MAAMC,YAAuB,CAAC,EACjD,IAAI,SAAS,MAAMC,OAAkB,EACrC,IAAI,eAAe,MAAMC,YAAuB,MAAM,CAAC,EACvD,IAAI,WAAW,MAAMC,QAAmB,MAAM,CAAC,EAC/C,IAAI,WAAW,MAAMC,QAAmB,MAAM,CAAC,EAC/C,IAAI,iBAAiB,MAAMC,aAAwB,MAAM,CAAC,EAC1D,IAAI,QAAQ,MAAMC,KAAgB,MAAM,CAAC,EACzC,IAAI,UAAU,MAAMC,gBAAmB,CAAA,EACvC,IAAI,cAAcC,YAAuB,EACzC,IAAI,cAAcC,WAAW,CAAY;AAAA,EAC9C;AAAA,EACA,MAAM,SAAS,QAAQ;AACrB,UAAMC,MAAAA,uBAAuB,MAAM;AAEnC,WAAO,IAAI,OAAO,EAAE,IAAI,oCAAoCC,YAAA,MAAM,yBAAyB;AAC3F,WAAO,IAAI,OAAO,EAAE,IAAI,mCAAmCA,YAAA,MAAM,yBAAyB;AAG1F,WAAO,KAAK,kCAAkC,EAAE,SAASC,aAA2B,OAAA;AACpF,WAAO,KAAK,iCAAiC,EAAE,SAASC,aAA0B,MAAA;AAGlF,WAAO,GAAG,WAAW,UAAU,SAAS,SAASC,oBAAAA,qBAAqB;AAAA,EACxE;AACF,CAAC;;"}
@@ -0,0 +1,36 @@
1
+ import { hooks } from "@strapi/utils";
2
+ import { defineProvider } from "./provider.mjs";
3
+ import contentTypesRegistry from "../registries/content-types.mjs";
4
+ import componentsRegistry from "../registries/components.mjs";
5
+ import servicesRegistry from "../registries/services.mjs";
6
+ import policiesRegistry from "../registries/policies.mjs";
7
+ import middlewaresRegistry from "../registries/middlewares.mjs";
8
+ import hooksRegistry from "../registries/hooks.mjs";
9
+ import controllersRegistry from "../registries/controllers.mjs";
10
+ import modulesRegistry from "../registries/modules.mjs";
11
+ import pluginsRegistry from "../registries/plugins.mjs";
12
+ import customFieldsRegistry from "../registries/custom-fields.mjs";
13
+ import apisRegistry from "../registries/apis.mjs";
14
+ import sanitizersRegistry from "../registries/sanitizers.mjs";
15
+ import validatorsRegistry from "../registries/validators.mjs";
16
+ import { registry } from "../registries/models.mjs";
17
+ import { loadApplicationContext } from "../loaders/index.mjs";
18
+ import { disable as disableDraftAndPublish, enable as enableDraftAndPublish } from "../migrations/draft-publish.mjs";
19
+ import { discardDocumentDrafts } from "../migrations/database/5.0.0-discard-drafts.mjs";
20
+ const registries = defineProvider({
21
+ init(strapi) {
22
+ strapi.add("content-types", () => contentTypesRegistry()).add("components", () => componentsRegistry()).add("services", () => servicesRegistry(strapi)).add("policies", () => policiesRegistry()).add("middlewares", () => middlewaresRegistry()).add("hooks", () => hooksRegistry()).add("controllers", () => controllersRegistry(strapi)).add("modules", () => modulesRegistry(strapi)).add("plugins", () => pluginsRegistry(strapi)).add("custom-fields", () => customFieldsRegistry(strapi)).add("apis", () => apisRegistry(strapi)).add("models", () => registry()).add("sanitizers", sanitizersRegistry()).add("validators", validatorsRegistry());
23
+ },
24
+ async register(strapi) {
25
+ await loadApplicationContext(strapi);
26
+ strapi.get("hooks").set("strapi::content-types.beforeSync", hooks.createAsyncParallelHook());
27
+ strapi.get("hooks").set("strapi::content-types.afterSync", hooks.createAsyncParallelHook());
28
+ strapi.hook("strapi::content-types.beforeSync").register(disableDraftAndPublish);
29
+ strapi.hook("strapi::content-types.afterSync").register(enableDraftAndPublish);
30
+ strapi.db.migrations.providers.internal.register(discardDocumentDrafts);
31
+ }
32
+ });
33
+ export {
34
+ registries as default
35
+ };
36
+ //# sourceMappingURL=registries.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registries.mjs","sources":["../../src/providers/registries.ts"],"sourcesContent":["import { hooks } from '@strapi/utils';\n\nimport { defineProvider } from './provider';\nimport * as registries from '../registries';\nimport { loadApplicationContext } from '../loaders';\nimport * as draftAndPublishSync from '../migrations/draft-publish';\nimport { discardDocumentDrafts } from '../migrations/database/5.0.0-discard-drafts';\n\nexport default defineProvider({\n init(strapi) {\n strapi\n .add('content-types', () => registries.contentTypes())\n .add('components', () => registries.components())\n .add('services', () => registries.services(strapi))\n .add('policies', () => registries.policies())\n .add('middlewares', () => registries.middlewares())\n .add('hooks', () => registries.hooks())\n .add('controllers', () => registries.controllers(strapi))\n .add('modules', () => registries.modules(strapi))\n .add('plugins', () => registries.plugins(strapi))\n .add('custom-fields', () => registries.customFields(strapi))\n .add('apis', () => registries.apis(strapi))\n .add('models', () => registries.models())\n .add('sanitizers', registries.sanitizers())\n .add('validators', registries.validators());\n },\n async register(strapi) {\n await loadApplicationContext(strapi);\n\n strapi.get('hooks').set('strapi::content-types.beforeSync', hooks.createAsyncParallelHook());\n strapi.get('hooks').set('strapi::content-types.afterSync', hooks.createAsyncParallelHook());\n\n // Content migration to enable draft and publish\n strapi.hook('strapi::content-types.beforeSync').register(draftAndPublishSync.disable);\n strapi.hook('strapi::content-types.afterSync').register(draftAndPublishSync.enable);\n\n // Database migrations\n strapi.db.migrations.providers.internal.register(discardDocumentDrafts);\n },\n});\n"],"names":["registries.contentTypes","registries.components","registries.services","registries.policies","registries.middlewares","registries.hooks","registries.controllers","registries.modules","registries.plugins","registries.customFields","registries.apis","registries.models","registries.sanitizers","registries.validators","draftAndPublishSync.disable","draftAndPublishSync.enable"],"mappings":";;;;;;;;;;;;;;;;;;;AAQA,MAAA,aAAe,eAAe;AAAA,EAC5B,KAAK,QAAQ;AAER,WAAA,IAAI,iBAAiB,MAAMA,qBAAyB,CAAA,EACpD,IAAI,cAAc,MAAMC,mBAAuB,CAAA,EAC/C,IAAI,YAAY,MAAMC,iBAAoB,MAAM,CAAC,EACjD,IAAI,YAAY,MAAMC,iBAAqB,CAAA,EAC3C,IAAI,eAAe,MAAMC,oBAAuB,CAAC,EACjD,IAAI,SAAS,MAAMC,eAAkB,EACrC,IAAI,eAAe,MAAMC,oBAAuB,MAAM,CAAC,EACvD,IAAI,WAAW,MAAMC,gBAAmB,MAAM,CAAC,EAC/C,IAAI,WAAW,MAAMC,gBAAmB,MAAM,CAAC,EAC/C,IAAI,iBAAiB,MAAMC,qBAAwB,MAAM,CAAC,EAC1D,IAAI,QAAQ,MAAMC,aAAgB,MAAM,CAAC,EACzC,IAAI,UAAU,MAAMC,SAAmB,CAAA,EACvC,IAAI,cAAcC,oBAAuB,EACzC,IAAI,cAAcC,mBAAW,CAAY;AAAA,EAC9C;AAAA,EACA,MAAM,SAAS,QAAQ;AACrB,UAAM,uBAAuB,MAAM;AAEnC,WAAO,IAAI,OAAO,EAAE,IAAI,oCAAoC,MAAM,yBAAyB;AAC3F,WAAO,IAAI,OAAO,EAAE,IAAI,mCAAmC,MAAM,yBAAyB;AAG1F,WAAO,KAAK,kCAAkC,EAAE,SAASC,sBAA2B;AACpF,WAAO,KAAK,iCAAiC,EAAE,SAASC,qBAA0B;AAGlF,WAAO,GAAG,WAAW,UAAU,SAAS,SAAS,qBAAqB;AAAA,EACxE;AACF,CAAC;"}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("./provider").Provider;
2
+ export default _default;
3
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/providers/telemetry.ts"],"names":[],"mappings":";AAGA,wBAaG"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ const provider = require("./provider.js");
3
+ const index = require("../services/metrics/index.js");
4
+ const telemetry = provider.defineProvider({
5
+ init(strapi) {
6
+ strapi.add("telemetry", () => index(strapi));
7
+ },
8
+ async register(strapi) {
9
+ strapi.get("telemetry").register();
10
+ },
11
+ async bootstrap(strapi) {
12
+ strapi.get("telemetry").bootstrap();
13
+ },
14
+ async destroy(strapi) {
15
+ strapi.get("telemetry").destroy();
16
+ }
17
+ });
18
+ module.exports = telemetry;
19
+ //# sourceMappingURL=telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.js","sources":["../../src/providers/telemetry.ts"],"sourcesContent":["import { defineProvider } from './provider';\nimport createTelemetry from '../services/metrics';\n\nexport default defineProvider({\n init(strapi) {\n strapi.add('telemetry', () => createTelemetry(strapi));\n },\n async register(strapi) {\n strapi.get('telemetry').register();\n },\n async bootstrap(strapi) {\n strapi.get('telemetry').bootstrap();\n },\n async destroy(strapi) {\n strapi.get('telemetry').destroy();\n },\n});\n"],"names":["defineProvider","createTelemetry"],"mappings":";;;AAGA,MAAA,YAAeA,wBAAe;AAAA,EAC5B,KAAK,QAAQ;AACX,WAAO,IAAI,aAAa,MAAMC,MAAgB,MAAM,CAAC;AAAA,EACvD;AAAA,EACA,MAAM,SAAS,QAAQ;AACd,WAAA,IAAI,WAAW,EAAE,SAAS;AAAA,EACnC;AAAA,EACA,MAAM,UAAU,QAAQ;AACf,WAAA,IAAI,WAAW,EAAE,UAAU;AAAA,EACpC;AAAA,EACA,MAAM,QAAQ,QAAQ;AACb,WAAA,IAAI,WAAW,EAAE,QAAQ;AAAA,EAClC;AACF,CAAC;;"}
@@ -0,0 +1,20 @@
1
+ import { defineProvider } from "./provider.mjs";
2
+ import createTelemetryInstance from "../services/metrics/index.mjs";
3
+ const telemetry = defineProvider({
4
+ init(strapi) {
5
+ strapi.add("telemetry", () => createTelemetryInstance(strapi));
6
+ },
7
+ async register(strapi) {
8
+ strapi.get("telemetry").register();
9
+ },
10
+ async bootstrap(strapi) {
11
+ strapi.get("telemetry").bootstrap();
12
+ },
13
+ async destroy(strapi) {
14
+ strapi.get("telemetry").destroy();
15
+ }
16
+ });
17
+ export {
18
+ telemetry as default
19
+ };
20
+ //# sourceMappingURL=telemetry.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.mjs","sources":["../../src/providers/telemetry.ts"],"sourcesContent":["import { defineProvider } from './provider';\nimport createTelemetry from '../services/metrics';\n\nexport default defineProvider({\n init(strapi) {\n strapi.add('telemetry', () => createTelemetry(strapi));\n },\n async register(strapi) {\n strapi.get('telemetry').register();\n },\n async bootstrap(strapi) {\n strapi.get('telemetry').bootstrap();\n },\n async destroy(strapi) {\n strapi.get('telemetry').destroy();\n },\n});\n"],"names":["createTelemetry"],"mappings":";;AAGA,MAAA,YAAe,eAAe;AAAA,EAC5B,KAAK,QAAQ;AACX,WAAO,IAAI,aAAa,MAAMA,wBAAgB,MAAM,CAAC;AAAA,EACvD;AAAA,EACA,MAAM,SAAS,QAAQ;AACd,WAAA,IAAI,WAAW,EAAE,SAAS;AAAA,EACnC;AAAA,EACA,MAAM,UAAU,QAAQ;AACf,WAAA,IAAI,WAAW,EAAE,UAAU;AAAA,EACpC;AAAA,EACA,MAAM,QAAQ,QAAQ;AACb,WAAA,IAAI,WAAW,EAAE,QAAQ;AAAA,EAClC;AACF,CAAC;"}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("./provider").Provider;
2
+ export default _default;
3
+ //# sourceMappingURL=webhooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/providers/webhooks.ts"],"names":[],"mappings":";AAIA,wBAwBG"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ const provider = require("./provider.js");
3
+ const webhookStore = require("../services/webhook-store.js");
4
+ const webhookRunner = require("../services/webhook-runner.js");
5
+ const webhooks = provider.defineProvider({
6
+ init(strapi) {
7
+ strapi.get("models").add(webhookStore.webhookModel);
8
+ strapi.add("webhookStore", () => webhookStore.createWebhookStore({ db: strapi.db }));
9
+ strapi.add(
10
+ "webhookRunner",
11
+ () => webhookRunner({
12
+ eventHub: strapi.eventHub,
13
+ logger: strapi.log,
14
+ configuration: strapi.config.get("server.webhooks", {}),
15
+ fetch: strapi.fetch
16
+ })
17
+ );
18
+ },
19
+ async bootstrap(strapi) {
20
+ const webhooks2 = await strapi.get("webhookStore").findWebhooks();
21
+ if (!webhooks2) {
22
+ return;
23
+ }
24
+ for (const webhook of webhooks2) {
25
+ strapi.get("webhookRunner").add(webhook);
26
+ }
27
+ }
28
+ });
29
+ module.exports = webhooks;
30
+ //# sourceMappingURL=webhooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.js","sources":["../../src/providers/webhooks.ts"],"sourcesContent":["import { defineProvider } from './provider';\nimport { createWebhookStore, webhookModel } from '../services/webhook-store';\nimport createWebhookRunner from '../services/webhook-runner';\n\nexport default defineProvider({\n init(strapi) {\n strapi.get('models').add(webhookModel);\n\n strapi.add('webhookStore', () => createWebhookStore({ db: strapi.db }));\n strapi.add('webhookRunner', () =>\n createWebhookRunner({\n eventHub: strapi.eventHub,\n logger: strapi.log,\n configuration: strapi.config.get('server.webhooks', {}),\n fetch: strapi.fetch,\n })\n );\n },\n async bootstrap(strapi) {\n const webhooks = await strapi.get('webhookStore').findWebhooks();\n if (!webhooks) {\n return;\n }\n\n for (const webhook of webhooks) {\n strapi.get('webhookRunner').add(webhook);\n }\n },\n});\n"],"names":["defineProvider","webhookModel","createWebhookStore","createWebhookRunner","webhooks"],"mappings":";;;;AAIA,MAAA,WAAeA,wBAAe;AAAA,EAC5B,KAAK,QAAQ;AACX,WAAO,IAAI,QAAQ,EAAE,IAAIC,aAAY,YAAA;AAE9B,WAAA,IAAI,gBAAgB,MAAMC,aAAA,mBAAmB,EAAE,IAAI,OAAO,GAAI,CAAA,CAAC;AAC/D,WAAA;AAAA,MAAI;AAAA,MAAiB,MAC1BC,cAAoB;AAAA,QAClB,UAAU,OAAO;AAAA,QACjB,QAAQ,OAAO;AAAA,QACf,eAAe,OAAO,OAAO,IAAI,mBAAmB,CAAA,CAAE;AAAA,QACtD,OAAO,OAAO;AAAA,MAAA,CACf;AAAA,IAAA;AAAA,EAEL;AAAA,EACA,MAAM,UAAU,QAAQ;AACtB,UAAMC,YAAW,MAAM,OAAO,IAAI,cAAc,EAAE;AAClD,QAAI,CAACA,WAAU;AACb;AAAA,IACF;AAEA,eAAW,WAAWA,WAAU;AAC9B,aAAO,IAAI,eAAe,EAAE,IAAI,OAAO;AAAA,IACzC;AAAA,EACF;AACF,CAAC;;"}
@@ -0,0 +1,31 @@
1
+ import { defineProvider } from "./provider.mjs";
2
+ import { webhookModel, createWebhookStore } from "../services/webhook-store.mjs";
3
+ import createWebhookRunner from "../services/webhook-runner.mjs";
4
+ const webhooks = defineProvider({
5
+ init(strapi) {
6
+ strapi.get("models").add(webhookModel);
7
+ strapi.add("webhookStore", () => createWebhookStore({ db: strapi.db }));
8
+ strapi.add(
9
+ "webhookRunner",
10
+ () => createWebhookRunner({
11
+ eventHub: strapi.eventHub,
12
+ logger: strapi.log,
13
+ configuration: strapi.config.get("server.webhooks", {}),
14
+ fetch: strapi.fetch
15
+ })
16
+ );
17
+ },
18
+ async bootstrap(strapi) {
19
+ const webhooks2 = await strapi.get("webhookStore").findWebhooks();
20
+ if (!webhooks2) {
21
+ return;
22
+ }
23
+ for (const webhook of webhooks2) {
24
+ strapi.get("webhookRunner").add(webhook);
25
+ }
26
+ }
27
+ });
28
+ export {
29
+ webhooks as default
30
+ };
31
+ //# sourceMappingURL=webhooks.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.mjs","sources":["../../src/providers/webhooks.ts"],"sourcesContent":["import { defineProvider } from './provider';\nimport { createWebhookStore, webhookModel } from '../services/webhook-store';\nimport createWebhookRunner from '../services/webhook-runner';\n\nexport default defineProvider({\n init(strapi) {\n strapi.get('models').add(webhookModel);\n\n strapi.add('webhookStore', () => createWebhookStore({ db: strapi.db }));\n strapi.add('webhookRunner', () =>\n createWebhookRunner({\n eventHub: strapi.eventHub,\n logger: strapi.log,\n configuration: strapi.config.get('server.webhooks', {}),\n fetch: strapi.fetch,\n })\n );\n },\n async bootstrap(strapi) {\n const webhooks = await strapi.get('webhookStore').findWebhooks();\n if (!webhooks) {\n return;\n }\n\n for (const webhook of webhooks) {\n strapi.get('webhookRunner').add(webhook);\n }\n },\n});\n"],"names":["webhooks"],"mappings":";;;AAIA,MAAA,WAAe,eAAe;AAAA,EAC5B,KAAK,QAAQ;AACX,WAAO,IAAI,QAAQ,EAAE,IAAI,YAAY;AAE9B,WAAA,IAAI,gBAAgB,MAAM,mBAAmB,EAAE,IAAI,OAAO,GAAI,CAAA,CAAC;AAC/D,WAAA;AAAA,MAAI;AAAA,MAAiB,MAC1B,oBAAoB;AAAA,QAClB,UAAU,OAAO;AAAA,QACjB,QAAQ,OAAO;AAAA,QACf,eAAe,OAAO,OAAO,IAAI,mBAAmB,CAAA,CAAE;AAAA,QACtD,OAAO,OAAO;AAAA,MAAA,CACf;AAAA,IAAA;AAAA,EAEL;AAAA,EACA,MAAM,UAAU,QAAQ;AACtB,UAAMA,YAAW,MAAM,OAAO,IAAI,cAAc,EAAE;AAClD,QAAI,CAACA,WAAU;AACb;AAAA,IACF;AAEA,eAAW,WAAWA,WAAU;AAC9B,aAAO,IAAI,eAAe,EAAE,IAAI,OAAO;AAAA,IACzC;AAAA,EACF;AACF,CAAC;"}
@@ -8,7 +8,6 @@ export { default as controllers } from './controllers';
8
8
  export { default as modules } from './modules';
9
9
  export { default as plugins } from './plugins';
10
10
  export { default as customFields } from './custom-fields';
11
- export { default as config } from './config';
12
11
  export { default as apis } from './apis';
13
12
  export { default as sanitizers } from './sanitizers';
14
13
  export { default as validators } from './validators';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,QAAQ,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,QAAQ,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC"}
@@ -1,16 +1,27 @@
1
1
  /// <reference types="lodash" />
2
- import type { Core, UID } from '@strapi/types';
3
- type PolicyExtendFn = (policy: Core.Policy) => Core.Policy;
4
- type PolicyMap = Record<string, Core.Policy>;
2
+ import type { Core } from '@strapi/types';
3
+ interface PolicyInfo {
4
+ name: string;
5
+ config: unknown;
6
+ }
7
+ type PolicyConfig = string | PolicyInfo;
8
+ interface NamespaceInfo {
9
+ pluginName?: string;
10
+ apiName?: string;
11
+ }
5
12
  declare const policiesRegistry: () => {
6
13
  /**
7
14
  * Returns this list of registered policies uids
8
15
  */
9
- keys(): string[];
16
+ keys(): IterableIterator<string>;
10
17
  /**
11
18
  * Returns the instance of a policy. Instantiate the policy if not already done
12
19
  */
13
- get(uid: UID.Policy): Core.Policy<unknown>;
20
+ get(name: string, namespaceInfo?: NamespaceInfo): Core.Policy<unknown> | undefined;
21
+ /**
22
+ * Checks if a policy is registered
23
+ */
24
+ has(name: string, namespaceInfo?: NamespaceInfo): boolean;
14
25
  /**
15
26
  * Returns a map with all the policies in a namespace
16
27
  */
@@ -22,13 +33,14 @@ declare const policiesRegistry: () => {
22
33
  /**
23
34
  * Registers a map of policies for a specific namespace
24
35
  */
25
- add(namespace: string, newPolicies: PolicyMap): void;
36
+ add(namespace: string, newPolicies: Record<string, Core.Policy>): void;
26
37
  /**
27
- * Wraps a policy to extend it
28
- * @param {string} uid
29
- * @param {(policy: Policy) => Policy} extendFn
38
+ * Resolves a list of policies
30
39
  */
31
- extend(uid: UID.Policy, extendFn: PolicyExtendFn): any;
40
+ resolve(config: PolicyConfig | PolicyConfig[], namespaceInfo?: NamespaceInfo): {
41
+ handler: Core.Policy<unknown>;
42
+ config: {};
43
+ }[];
32
44
  };
33
45
  export default policiesRegistry;
34
46
  //# sourceMappingURL=policies.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../../src/registries/policies.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAG/C,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;AAC3D,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAG7C,QAAA,MAAM,gBAAgB;IAIlB;;OAEG;;IAKH;;OAEG;aACM,IAAI,MAAM;IAInB;;OAEG;sBACe,MAAM;IAIxB;;OAEG;aACM,MAAM,UAAU,KAAK,MAAM;IAKpC;;OAEG;mBACY,MAAM,eAAe,SAAS;IAY7C;;;;OAIG;gBACS,IAAI,MAAM,YAAY,cAAc;CAanD,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../../src/registries/policies.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAM1C,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,KAAK,YAAY,GAAG,MAAM,GAAG,UAAU,CAAC;AAExC,UAAU,aAAa;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAWD,QAAA,MAAM,gBAAgB;IAyDlB;;OAEG;;IAKH;;OAEG;cACO,MAAM,kBAAkB,aAAa;IAG/C;;OAEG;cACO,MAAM,kBAAkB,aAAa;IAK/C;;OAEG;sBACe,MAAM;IAIxB;;OAEG;aACM,MAAM,UAAU,KAAK,MAAM;IAKpC;;OAEG;mBACY,MAAM,eAAe,OAAO,MAAM,EAAE,KAAK,MAAM,CAAC;IAa/D;;OAEG;oBACa,YAAY,GAAG,YAAY,EAAE,kBAAkB,aAAa;;;;CAW/E,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -1,32 +1,80 @@
1
1
  "use strict";
2
2
  const _ = require("lodash/fp");
3
3
  const namespace = require("./namespace.js");
4
+ const PLUGIN_PREFIX = "plugin::";
5
+ const API_PREFIX = "api::";
6
+ const parsePolicy = (policy) => {
7
+ if (typeof policy === "string") {
8
+ return { policyName: policy, config: {} };
9
+ }
10
+ const { name, config } = policy;
11
+ return { policyName: name, config };
12
+ };
4
13
  const policiesRegistry = () => {
5
- const policies = {};
14
+ const policies = /* @__PURE__ */ new Map();
15
+ const find = (name, namespaceInfo) => {
16
+ const { pluginName, apiName } = namespaceInfo ?? {};
17
+ const policy = policies.get(name);
18
+ if (policy) {
19
+ return policy;
20
+ }
21
+ if (pluginName) {
22
+ return policies.get(`${PLUGIN_PREFIX}${pluginName}.${name}`);
23
+ }
24
+ if (apiName) {
25
+ return policies.get(`${API_PREFIX}${apiName}.${name}`);
26
+ }
27
+ };
28
+ function resolveHandler(policyConfig, namespaceInfo) {
29
+ if (Array.isArray(policyConfig)) {
30
+ return policyConfig.map((config2) => {
31
+ return resolveHandler(config2, namespaceInfo);
32
+ });
33
+ }
34
+ const { policyName, config } = parsePolicy(policyConfig);
35
+ const policy = find(policyName, namespaceInfo);
36
+ if (!policy) {
37
+ throw new Error(`Policy ${policyName} not found.`);
38
+ }
39
+ if (typeof policy === "function") {
40
+ return policy;
41
+ }
42
+ if (policy.validator) {
43
+ policy.validator(config);
44
+ }
45
+ return policy.handler;
46
+ }
6
47
  return {
7
48
  /**
8
49
  * Returns this list of registered policies uids
9
50
  */
10
51
  keys() {
11
- return Object.keys(policies);
52
+ return policies.keys();
12
53
  },
13
54
  /**
14
55
  * Returns the instance of a policy. Instantiate the policy if not already done
15
56
  */
16
- get(uid) {
17
- return policies[uid];
57
+ get(name, namespaceInfo) {
58
+ return find(name, namespaceInfo);
59
+ },
60
+ /**
61
+ * Checks if a policy is registered
62
+ */
63
+ has(name, namespaceInfo) {
64
+ const res = find(name, namespaceInfo);
65
+ return !!res;
18
66
  },
19
67
  /**
20
68
  * Returns a map with all the policies in a namespace
21
69
  */
22
70
  getAll(namespace$1) {
23
- return _.pickBy((_2, uid) => namespace.hasNamespace(uid, namespace$1))(policies);
71
+ return _.pickBy((_2, uid) => namespace.hasNamespace(uid, namespace$1))(Object.fromEntries(policies));
24
72
  },
25
73
  /**
26
74
  * Registers a policy
27
75
  */
28
76
  set(uid, policy) {
29
- policies[uid] = policy;
77
+ policies.set(uid, policy);
30
78
  return this;
31
79
  },
32
80
  /**
@@ -39,22 +87,20 @@ const policiesRegistry = () => {
39
87
  if (_.has(uid, policies)) {
40
88
  throw new Error(`Policy ${uid} has already been registered.`);
41
89
  }
42
- policies[uid] = policy;
90
+ policies.set(uid, policy);
43
91
  }
44
92
  },
45
93
  /**
46
- * Wraps a policy to extend it
47
- * @param {string} uid
48
- * @param {(policy: Policy) => Policy} extendFn
94
+ * Resolves a list of policies
49
95
  */
50
- extend(uid, extendFn) {
51
- const currentPolicy = this.get(uid);
52
- if (!currentPolicy) {
53
- throw new Error(`Policy ${uid} doesn't exist`);
54
- }
55
- const newPolicy = extendFn(currentPolicy);
56
- policies[uid] = newPolicy;
57
- return this;
96
+ resolve(config, namespaceInfo) {
97
+ const { pluginName, apiName } = namespaceInfo ?? {};
98
+ return _.castArray(config).map((policyConfig) => {
99
+ return {
100
+ handler: resolveHandler(policyConfig, { pluginName, apiName }),
101
+ config: typeof policyConfig === "object" && policyConfig.config || {}
102
+ };
103
+ });
58
104
  }
59
105
  };
60
106
  };
@@ -1 +1 @@
1
- {"version":3,"file":"policies.js","sources":["../../src/registries/policies.ts"],"sourcesContent":["import { pickBy, has } from 'lodash/fp';\nimport type { Core, UID } from '@strapi/types';\nimport { addNamespace, hasNamespace } from './namespace';\n\ntype PolicyExtendFn = (policy: Core.Policy) => Core.Policy;\ntype PolicyMap = Record<string, Core.Policy>;\n\n// TODO: move instantiation part here instead of in the policy utils\nconst policiesRegistry = () => {\n const policies: PolicyMap = {};\n\n return {\n /**\n * Returns this list of registered policies uids\n */\n keys() {\n return Object.keys(policies);\n },\n\n /**\n * Returns the instance of a policy. Instantiate the policy if not already done\n */\n get(uid: UID.Policy) {\n return policies[uid];\n },\n\n /**\n * Returns a map with all the policies in a namespace\n */\n getAll(namespace: string) {\n return pickBy((_, uid) => hasNamespace(uid, namespace))(policies);\n },\n\n /**\n * Registers a policy\n */\n set(uid: string, policy: Core.Policy) {\n policies[uid] = policy;\n return this;\n },\n\n /**\n * Registers a map of policies for a specific namespace\n */\n add(namespace: string, newPolicies: PolicyMap) {\n for (const policyName of Object.keys(newPolicies)) {\n const policy = newPolicies[policyName];\n const uid = addNamespace(policyName, namespace);\n\n if (has(uid, policies)) {\n throw new Error(`Policy ${uid} has already been registered.`);\n }\n policies[uid] = policy;\n }\n },\n\n /**\n * Wraps a policy to extend it\n * @param {string} uid\n * @param {(policy: Policy) => Policy} extendFn\n */\n extend(uid: UID.Policy, extendFn: PolicyExtendFn) {\n const currentPolicy = this.get(uid);\n\n if (!currentPolicy) {\n throw new Error(`Policy ${uid} doesn't exist`);\n }\n\n const newPolicy = extendFn(currentPolicy);\n policies[uid] = newPolicy;\n\n return this;\n },\n };\n};\n\nexport default policiesRegistry;\n"],"names":["namespace","pickBy","_","hasNamespace","addNamespace","has"],"mappings":";;;AAQA,MAAM,mBAAmB,MAAM;AAC7B,QAAM,WAAsB,CAAA;AAErB,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AACE,aAAA,OAAO,KAAK,QAAQ;AAAA,IAC7B;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAiB;AACnB,aAAO,SAAS,GAAG;AAAA,IACrB;AAAA;AAAA;AAAA;AAAA,IAKA,OAAOA,aAAmB;AACjB,aAAAC,EAAA,OAAO,CAACC,IAAG,QAAQC,UAAAA,aAAa,KAAKH,WAAS,CAAC,EAAE,QAAQ;AAAA,IAClE;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAa,QAAqB;AACpC,eAAS,GAAG,IAAI;AACT,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAIA,aAAmB,aAAwB;AAC7C,iBAAW,cAAc,OAAO,KAAK,WAAW,GAAG;AAC3C,cAAA,SAAS,YAAY,UAAU;AAC/B,cAAA,MAAMI,UAAAA,aAAa,YAAYJ,WAAS;AAE1C,YAAAK,EAAA,IAAI,KAAK,QAAQ,GAAG;AACtB,gBAAM,IAAI,MAAM,UAAU,GAAG,+BAA+B;AAAA,QAC9D;AACA,iBAAS,GAAG,IAAI;AAAA,MAClB;AAAA,IACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,OAAO,KAAiB,UAA0B;AAC1C,YAAA,gBAAgB,KAAK,IAAI,GAAG;AAElC,UAAI,CAAC,eAAe;AAClB,cAAM,IAAI,MAAM,UAAU,GAAG,gBAAgB;AAAA,MAC/C;AAEM,YAAA,YAAY,SAAS,aAAa;AACxC,eAAS,GAAG,IAAI;AAET,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;;"}
1
+ {"version":3,"file":"policies.js","sources":["../../src/registries/policies.ts"],"sourcesContent":["import { pickBy, has, castArray } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\nimport { addNamespace, hasNamespace } from './namespace';\n\nconst PLUGIN_PREFIX = 'plugin::';\nconst API_PREFIX = 'api::';\n\ninterface PolicyInfo {\n name: string;\n config: unknown;\n}\n\ntype PolicyConfig = string | PolicyInfo;\n\ninterface NamespaceInfo {\n pluginName?: string;\n apiName?: string;\n}\n\nconst parsePolicy = (policy: string | PolicyInfo) => {\n if (typeof policy === 'string') {\n return { policyName: policy, config: {} };\n }\n\n const { name, config } = policy;\n return { policyName: name, config };\n};\n\nconst policiesRegistry = () => {\n const policies = new Map<string, Core.Policy>();\n\n const find = (name: string, namespaceInfo?: NamespaceInfo) => {\n const { pluginName, apiName } = namespaceInfo ?? {};\n\n // try to resolve a full name to avoid extra prefixing\n const policy = policies.get(name);\n\n if (policy) {\n return policy;\n }\n\n if (pluginName) {\n return policies.get(`${PLUGIN_PREFIX}${pluginName}.${name}`);\n }\n\n if (apiName) {\n return policies.get(`${API_PREFIX}${apiName}.${name}`);\n }\n };\n\n function resolveHandler(policyConfig: PolicyConfig, namespaceInfo?: NamespaceInfo): Core.Policy;\n function resolveHandler(\n policyConfig: PolicyConfig[],\n namespaceInfo?: NamespaceInfo\n ): Core.Policy[];\n function resolveHandler(\n policyConfig: PolicyConfig | PolicyConfig[],\n namespaceInfo?: NamespaceInfo\n ): Core.Policy | Core.Policy[] {\n if (Array.isArray(policyConfig)) {\n return policyConfig.map((config) => {\n return resolveHandler(config, namespaceInfo);\n });\n }\n\n const { policyName, config } = parsePolicy(policyConfig);\n\n const policy = find(policyName, namespaceInfo);\n\n if (!policy) {\n throw new Error(`Policy ${policyName} not found.`);\n }\n\n if (typeof policy === 'function') {\n return policy;\n }\n\n if (policy.validator) {\n policy.validator(config);\n }\n\n return policy.handler;\n }\n\n return {\n /**\n * Returns this list of registered policies uids\n */\n keys() {\n return policies.keys();\n },\n\n /**\n * Returns the instance of a policy. Instantiate the policy if not already done\n */\n get(name: string, namespaceInfo?: NamespaceInfo) {\n return find(name, namespaceInfo);\n },\n /**\n * Checks if a policy is registered\n */\n has(name: string, namespaceInfo?: NamespaceInfo) {\n const res = find(name, namespaceInfo);\n return !!res;\n },\n\n /**\n * Returns a map with all the policies in a namespace\n */\n getAll(namespace: string) {\n return pickBy((_, uid) => hasNamespace(uid, namespace))(Object.fromEntries(policies));\n },\n\n /**\n * Registers a policy\n */\n set(uid: string, policy: Core.Policy) {\n policies.set(uid, policy);\n return this;\n },\n\n /**\n * Registers a map of policies for a specific namespace\n */\n add(namespace: string, newPolicies: Record<string, Core.Policy>) {\n for (const policyName of Object.keys(newPolicies)) {\n const policy = newPolicies[policyName];\n const uid = addNamespace(policyName, namespace);\n\n if (has(uid, policies)) {\n throw new Error(`Policy ${uid} has already been registered.`);\n }\n\n policies.set(uid, policy);\n }\n },\n\n /**\n * Resolves a list of policies\n */\n resolve(config: PolicyConfig | PolicyConfig[], namespaceInfo?: NamespaceInfo) {\n const { pluginName, apiName } = namespaceInfo ?? {};\n\n return castArray(config).map((policyConfig) => {\n return {\n handler: resolveHandler(policyConfig, { pluginName, apiName }),\n config: (typeof policyConfig === 'object' && policyConfig.config) || {},\n };\n });\n },\n };\n};\n\nexport default policiesRegistry;\n"],"names":["config","namespace","pickBy","_","hasNamespace","addNamespace","has","castArray"],"mappings":";;;AAIA,MAAM,gBAAgB;AACtB,MAAM,aAAa;AAcnB,MAAM,cAAc,CAAC,WAAgC;AAC/C,MAAA,OAAO,WAAW,UAAU;AAC9B,WAAO,EAAE,YAAY,QAAQ,QAAQ,CAAG,EAAA;AAAA,EAC1C;AAEM,QAAA,EAAE,MAAM,OAAW,IAAA;AAClB,SAAA,EAAE,YAAY,MAAM;AAC7B;AAEA,MAAM,mBAAmB,MAAM;AACvB,QAAA,+BAAe;AAEf,QAAA,OAAO,CAAC,MAAc,kBAAkC;AAC5D,UAAM,EAAE,YAAY,YAAY,iBAAiB,CAAA;AAG3C,UAAA,SAAS,SAAS,IAAI,IAAI;AAEhC,QAAI,QAAQ;AACH,aAAA;AAAA,IACT;AAEA,QAAI,YAAY;AACP,aAAA,SAAS,IAAI,GAAG,aAAa,GAAG,UAAU,IAAI,IAAI,EAAE;AAAA,IAC7D;AAEA,QAAI,SAAS;AACJ,aAAA,SAAS,IAAI,GAAG,UAAU,GAAG,OAAO,IAAI,IAAI,EAAE;AAAA,IACvD;AAAA,EAAA;AAQO,WAAA,eACP,cACA,eAC6B;AACzB,QAAA,MAAM,QAAQ,YAAY,GAAG;AACxB,aAAA,aAAa,IAAI,CAACA,YAAW;AAC3B,eAAA,eAAeA,SAAQ,aAAa;AAAA,MAAA,CAC5C;AAAA,IACH;AAEA,UAAM,EAAE,YAAY,OAAO,IAAI,YAAY,YAAY;AAEjD,UAAA,SAAS,KAAK,YAAY,aAAa;AAE7C,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI,MAAM,UAAU,UAAU,aAAa;AAAA,IACnD;AAEI,QAAA,OAAO,WAAW,YAAY;AACzB,aAAA;AAAA,IACT;AAEA,QAAI,OAAO,WAAW;AACpB,aAAO,UAAU,MAAM;AAAA,IACzB;AAEA,WAAO,OAAO;AAAA,EAChB;AAEO,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AACL,aAAO,SAAS;IAClB;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,MAAc,eAA+B;AACxC,aAAA,KAAK,MAAM,aAAa;AAAA,IACjC;AAAA;AAAA;AAAA;AAAA,IAIA,IAAI,MAAc,eAA+B;AACzC,YAAA,MAAM,KAAK,MAAM,aAAa;AACpC,aAAO,CAAC,CAAC;AAAA,IACX;AAAA;AAAA;AAAA;AAAA,IAKA,OAAOC,aAAmB;AACxB,aAAOC,SAAO,CAACC,IAAG,QAAQC,UAAAA,aAAa,KAAKH,WAAS,CAAC,EAAE,OAAO,YAAY,QAAQ,CAAC;AAAA,IACtF;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAa,QAAqB;AAC3B,eAAA,IAAI,KAAK,MAAM;AACjB,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAIA,aAAmB,aAA0C;AAC/D,iBAAW,cAAc,OAAO,KAAK,WAAW,GAAG;AAC3C,cAAA,SAAS,YAAY,UAAU;AAC/B,cAAA,MAAMI,UAAAA,aAAa,YAAYJ,WAAS;AAE1C,YAAAK,EAAA,IAAI,KAAK,QAAQ,GAAG;AACtB,gBAAM,IAAI,MAAM,UAAU,GAAG,+BAA+B;AAAA,QAC9D;AAES,iBAAA,IAAI,KAAK,MAAM;AAAA,MAC1B;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,QAAQ,QAAuC,eAA+B;AAC5E,YAAM,EAAE,YAAY,YAAY,iBAAiB,CAAA;AAEjD,aAAOC,EAAU,UAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB;AACtC,eAAA;AAAA,UACL,SAAS,eAAe,cAAc,EAAE,YAAY,SAAS;AAAA,UAC7D,QAAS,OAAO,iBAAiB,YAAY,aAAa,UAAW,CAAC;AAAA,QAAA;AAAA,MACxE,CACD;AAAA,IACH;AAAA,EAAA;AAEJ;;"}
@@ -1,31 +1,79 @@
1
- import { pickBy, has } from "lodash/fp";
1
+ import { pickBy, has, castArray } from "lodash/fp";
2
2
  import { hasNamespace, addNamespace } from "./namespace.mjs";
3
+ const PLUGIN_PREFIX = "plugin::";
4
+ const API_PREFIX = "api::";
5
+ const parsePolicy = (policy) => {
6
+ if (typeof policy === "string") {
7
+ return { policyName: policy, config: {} };
8
+ }
9
+ const { name, config } = policy;
10
+ return { policyName: name, config };
11
+ };
3
12
  const policiesRegistry = () => {
4
- const policies = {};
13
+ const policies = /* @__PURE__ */ new Map();
14
+ const find = (name, namespaceInfo) => {
15
+ const { pluginName, apiName } = namespaceInfo ?? {};
16
+ const policy = policies.get(name);
17
+ if (policy) {
18
+ return policy;
19
+ }
20
+ if (pluginName) {
21
+ return policies.get(`${PLUGIN_PREFIX}${pluginName}.${name}`);
22
+ }
23
+ if (apiName) {
24
+ return policies.get(`${API_PREFIX}${apiName}.${name}`);
25
+ }
26
+ };
27
+ function resolveHandler(policyConfig, namespaceInfo) {
28
+ if (Array.isArray(policyConfig)) {
29
+ return policyConfig.map((config2) => {
30
+ return resolveHandler(config2, namespaceInfo);
31
+ });
32
+ }
33
+ const { policyName, config } = parsePolicy(policyConfig);
34
+ const policy = find(policyName, namespaceInfo);
35
+ if (!policy) {
36
+ throw new Error(`Policy ${policyName} not found.`);
37
+ }
38
+ if (typeof policy === "function") {
39
+ return policy;
40
+ }
41
+ if (policy.validator) {
42
+ policy.validator(config);
43
+ }
44
+ return policy.handler;
45
+ }
5
46
  return {
6
47
  /**
7
48
  * Returns this list of registered policies uids
8
49
  */
9
50
  keys() {
10
- return Object.keys(policies);
51
+ return policies.keys();
11
52
  },
12
53
  /**
13
54
  * Returns the instance of a policy. Instantiate the policy if not already done
14
55
  */
15
- get(uid) {
16
- return policies[uid];
56
+ get(name, namespaceInfo) {
57
+ return find(name, namespaceInfo);
58
+ },
59
+ /**
60
+ * Checks if a policy is registered
61
+ */
62
+ has(name, namespaceInfo) {
63
+ const res = find(name, namespaceInfo);
64
+ return !!res;
17
65
  },
18
66
  /**
19
67
  * Returns a map with all the policies in a namespace
20
68
  */
21
69
  getAll(namespace) {
22
- return pickBy((_, uid) => hasNamespace(uid, namespace))(policies);
70
+ return pickBy((_, uid) => hasNamespace(uid, namespace))(Object.fromEntries(policies));
23
71
  },
24
72
  /**
25
73
  * Registers a policy
26
74
  */
27
75
  set(uid, policy) {
28
- policies[uid] = policy;
76
+ policies.set(uid, policy);
29
77
  return this;
30
78
  },
31
79
  /**
@@ -38,22 +86,20 @@ const policiesRegistry = () => {
38
86
  if (has(uid, policies)) {
39
87
  throw new Error(`Policy ${uid} has already been registered.`);
40
88
  }
41
- policies[uid] = policy;
89
+ policies.set(uid, policy);
42
90
  }
43
91
  },
44
92
  /**
45
- * Wraps a policy to extend it
46
- * @param {string} uid
47
- * @param {(policy: Policy) => Policy} extendFn
93
+ * Resolves a list of policies
48
94
  */
49
- extend(uid, extendFn) {
50
- const currentPolicy = this.get(uid);
51
- if (!currentPolicy) {
52
- throw new Error(`Policy ${uid} doesn't exist`);
53
- }
54
- const newPolicy = extendFn(currentPolicy);
55
- policies[uid] = newPolicy;
56
- return this;
95
+ resolve(config, namespaceInfo) {
96
+ const { pluginName, apiName } = namespaceInfo ?? {};
97
+ return castArray(config).map((policyConfig) => {
98
+ return {
99
+ handler: resolveHandler(policyConfig, { pluginName, apiName }),
100
+ config: typeof policyConfig === "object" && policyConfig.config || {}
101
+ };
102
+ });
57
103
  }
58
104
  };
59
105
  };
@@ -1 +1 @@
1
- {"version":3,"file":"policies.mjs","sources":["../../src/registries/policies.ts"],"sourcesContent":["import { pickBy, has } from 'lodash/fp';\nimport type { Core, UID } from '@strapi/types';\nimport { addNamespace, hasNamespace } from './namespace';\n\ntype PolicyExtendFn = (policy: Core.Policy) => Core.Policy;\ntype PolicyMap = Record<string, Core.Policy>;\n\n// TODO: move instantiation part here instead of in the policy utils\nconst policiesRegistry = () => {\n const policies: PolicyMap = {};\n\n return {\n /**\n * Returns this list of registered policies uids\n */\n keys() {\n return Object.keys(policies);\n },\n\n /**\n * Returns the instance of a policy. Instantiate the policy if not already done\n */\n get(uid: UID.Policy) {\n return policies[uid];\n },\n\n /**\n * Returns a map with all the policies in a namespace\n */\n getAll(namespace: string) {\n return pickBy((_, uid) => hasNamespace(uid, namespace))(policies);\n },\n\n /**\n * Registers a policy\n */\n set(uid: string, policy: Core.Policy) {\n policies[uid] = policy;\n return this;\n },\n\n /**\n * Registers a map of policies for a specific namespace\n */\n add(namespace: string, newPolicies: PolicyMap) {\n for (const policyName of Object.keys(newPolicies)) {\n const policy = newPolicies[policyName];\n const uid = addNamespace(policyName, namespace);\n\n if (has(uid, policies)) {\n throw new Error(`Policy ${uid} has already been registered.`);\n }\n policies[uid] = policy;\n }\n },\n\n /**\n * Wraps a policy to extend it\n * @param {string} uid\n * @param {(policy: Policy) => Policy} extendFn\n */\n extend(uid: UID.Policy, extendFn: PolicyExtendFn) {\n const currentPolicy = this.get(uid);\n\n if (!currentPolicy) {\n throw new Error(`Policy ${uid} doesn't exist`);\n }\n\n const newPolicy = extendFn(currentPolicy);\n policies[uid] = newPolicy;\n\n return this;\n },\n };\n};\n\nexport default policiesRegistry;\n"],"names":[],"mappings":";;AAQA,MAAM,mBAAmB,MAAM;AAC7B,QAAM,WAAsB,CAAA;AAErB,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AACE,aAAA,OAAO,KAAK,QAAQ;AAAA,IAC7B;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAiB;AACnB,aAAO,SAAS,GAAG;AAAA,IACrB;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,WAAmB;AACjB,aAAA,OAAO,CAAC,GAAG,QAAQ,aAAa,KAAK,SAAS,CAAC,EAAE,QAAQ;AAAA,IAClE;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAa,QAAqB;AACpC,eAAS,GAAG,IAAI;AACT,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,WAAmB,aAAwB;AAC7C,iBAAW,cAAc,OAAO,KAAK,WAAW,GAAG;AAC3C,cAAA,SAAS,YAAY,UAAU;AAC/B,cAAA,MAAM,aAAa,YAAY,SAAS;AAE1C,YAAA,IAAI,KAAK,QAAQ,GAAG;AACtB,gBAAM,IAAI,MAAM,UAAU,GAAG,+BAA+B;AAAA,QAC9D;AACA,iBAAS,GAAG,IAAI;AAAA,MAClB;AAAA,IACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,OAAO,KAAiB,UAA0B;AAC1C,YAAA,gBAAgB,KAAK,IAAI,GAAG;AAElC,UAAI,CAAC,eAAe;AAClB,cAAM,IAAI,MAAM,UAAU,GAAG,gBAAgB;AAAA,MAC/C;AAEM,YAAA,YAAY,SAAS,aAAa;AACxC,eAAS,GAAG,IAAI;AAET,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"policies.mjs","sources":["../../src/registries/policies.ts"],"sourcesContent":["import { pickBy, has, castArray } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\nimport { addNamespace, hasNamespace } from './namespace';\n\nconst PLUGIN_PREFIX = 'plugin::';\nconst API_PREFIX = 'api::';\n\ninterface PolicyInfo {\n name: string;\n config: unknown;\n}\n\ntype PolicyConfig = string | PolicyInfo;\n\ninterface NamespaceInfo {\n pluginName?: string;\n apiName?: string;\n}\n\nconst parsePolicy = (policy: string | PolicyInfo) => {\n if (typeof policy === 'string') {\n return { policyName: policy, config: {} };\n }\n\n const { name, config } = policy;\n return { policyName: name, config };\n};\n\nconst policiesRegistry = () => {\n const policies = new Map<string, Core.Policy>();\n\n const find = (name: string, namespaceInfo?: NamespaceInfo) => {\n const { pluginName, apiName } = namespaceInfo ?? {};\n\n // try to resolve a full name to avoid extra prefixing\n const policy = policies.get(name);\n\n if (policy) {\n return policy;\n }\n\n if (pluginName) {\n return policies.get(`${PLUGIN_PREFIX}${pluginName}.${name}`);\n }\n\n if (apiName) {\n return policies.get(`${API_PREFIX}${apiName}.${name}`);\n }\n };\n\n function resolveHandler(policyConfig: PolicyConfig, namespaceInfo?: NamespaceInfo): Core.Policy;\n function resolveHandler(\n policyConfig: PolicyConfig[],\n namespaceInfo?: NamespaceInfo\n ): Core.Policy[];\n function resolveHandler(\n policyConfig: PolicyConfig | PolicyConfig[],\n namespaceInfo?: NamespaceInfo\n ): Core.Policy | Core.Policy[] {\n if (Array.isArray(policyConfig)) {\n return policyConfig.map((config) => {\n return resolveHandler(config, namespaceInfo);\n });\n }\n\n const { policyName, config } = parsePolicy(policyConfig);\n\n const policy = find(policyName, namespaceInfo);\n\n if (!policy) {\n throw new Error(`Policy ${policyName} not found.`);\n }\n\n if (typeof policy === 'function') {\n return policy;\n }\n\n if (policy.validator) {\n policy.validator(config);\n }\n\n return policy.handler;\n }\n\n return {\n /**\n * Returns this list of registered policies uids\n */\n keys() {\n return policies.keys();\n },\n\n /**\n * Returns the instance of a policy. Instantiate the policy if not already done\n */\n get(name: string, namespaceInfo?: NamespaceInfo) {\n return find(name, namespaceInfo);\n },\n /**\n * Checks if a policy is registered\n */\n has(name: string, namespaceInfo?: NamespaceInfo) {\n const res = find(name, namespaceInfo);\n return !!res;\n },\n\n /**\n * Returns a map with all the policies in a namespace\n */\n getAll(namespace: string) {\n return pickBy((_, uid) => hasNamespace(uid, namespace))(Object.fromEntries(policies));\n },\n\n /**\n * Registers a policy\n */\n set(uid: string, policy: Core.Policy) {\n policies.set(uid, policy);\n return this;\n },\n\n /**\n * Registers a map of policies for a specific namespace\n */\n add(namespace: string, newPolicies: Record<string, Core.Policy>) {\n for (const policyName of Object.keys(newPolicies)) {\n const policy = newPolicies[policyName];\n const uid = addNamespace(policyName, namespace);\n\n if (has(uid, policies)) {\n throw new Error(`Policy ${uid} has already been registered.`);\n }\n\n policies.set(uid, policy);\n }\n },\n\n /**\n * Resolves a list of policies\n */\n resolve(config: PolicyConfig | PolicyConfig[], namespaceInfo?: NamespaceInfo) {\n const { pluginName, apiName } = namespaceInfo ?? {};\n\n return castArray(config).map((policyConfig) => {\n return {\n handler: resolveHandler(policyConfig, { pluginName, apiName }),\n config: (typeof policyConfig === 'object' && policyConfig.config) || {},\n };\n });\n },\n };\n};\n\nexport default policiesRegistry;\n"],"names":["config"],"mappings":";;AAIA,MAAM,gBAAgB;AACtB,MAAM,aAAa;AAcnB,MAAM,cAAc,CAAC,WAAgC;AAC/C,MAAA,OAAO,WAAW,UAAU;AAC9B,WAAO,EAAE,YAAY,QAAQ,QAAQ,CAAG,EAAA;AAAA,EAC1C;AAEM,QAAA,EAAE,MAAM,OAAW,IAAA;AAClB,SAAA,EAAE,YAAY,MAAM;AAC7B;AAEA,MAAM,mBAAmB,MAAM;AACvB,QAAA,+BAAe;AAEf,QAAA,OAAO,CAAC,MAAc,kBAAkC;AAC5D,UAAM,EAAE,YAAY,YAAY,iBAAiB,CAAA;AAG3C,UAAA,SAAS,SAAS,IAAI,IAAI;AAEhC,QAAI,QAAQ;AACH,aAAA;AAAA,IACT;AAEA,QAAI,YAAY;AACP,aAAA,SAAS,IAAI,GAAG,aAAa,GAAG,UAAU,IAAI,IAAI,EAAE;AAAA,IAC7D;AAEA,QAAI,SAAS;AACJ,aAAA,SAAS,IAAI,GAAG,UAAU,GAAG,OAAO,IAAI,IAAI,EAAE;AAAA,IACvD;AAAA,EAAA;AAQO,WAAA,eACP,cACA,eAC6B;AACzB,QAAA,MAAM,QAAQ,YAAY,GAAG;AACxB,aAAA,aAAa,IAAI,CAACA,YAAW;AAC3B,eAAA,eAAeA,SAAQ,aAAa;AAAA,MAAA,CAC5C;AAAA,IACH;AAEA,UAAM,EAAE,YAAY,OAAO,IAAI,YAAY,YAAY;AAEjD,UAAA,SAAS,KAAK,YAAY,aAAa;AAE7C,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI,MAAM,UAAU,UAAU,aAAa;AAAA,IACnD;AAEI,QAAA,OAAO,WAAW,YAAY;AACzB,aAAA;AAAA,IACT;AAEA,QAAI,OAAO,WAAW;AACpB,aAAO,UAAU,MAAM;AAAA,IACzB;AAEA,WAAO,OAAO;AAAA,EAChB;AAEO,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AACL,aAAO,SAAS;IAClB;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,MAAc,eAA+B;AACxC,aAAA,KAAK,MAAM,aAAa;AAAA,IACjC;AAAA;AAAA;AAAA;AAAA,IAIA,IAAI,MAAc,eAA+B;AACzC,YAAA,MAAM,KAAK,MAAM,aAAa;AACpC,aAAO,CAAC,CAAC;AAAA,IACX;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,WAAmB;AACxB,aAAO,OAAO,CAAC,GAAG,QAAQ,aAAa,KAAK,SAAS,CAAC,EAAE,OAAO,YAAY,QAAQ,CAAC;AAAA,IACtF;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAa,QAAqB;AAC3B,eAAA,IAAI,KAAK,MAAM;AACjB,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,WAAmB,aAA0C;AAC/D,iBAAW,cAAc,OAAO,KAAK,WAAW,GAAG;AAC3C,cAAA,SAAS,YAAY,UAAU;AAC/B,cAAA,MAAM,aAAa,YAAY,SAAS;AAE1C,YAAA,IAAI,KAAK,QAAQ,GAAG;AACtB,gBAAM,IAAI,MAAM,UAAU,GAAG,+BAA+B;AAAA,QAC9D;AAES,iBAAA,IAAI,KAAK,MAAM;AAAA,MAC1B;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,QAAQ,QAAuC,eAA+B;AAC5E,YAAM,EAAE,YAAY,YAAY,iBAAiB,CAAA;AAEjD,aAAO,UAAU,MAAM,EAAE,IAAI,CAAC,iBAAiB;AACtC,eAAA;AAAA,UACL,SAAS,eAAe,cAAc,EAAE,YAAY,SAAS;AAAA,UAC7D,QAAS,OAAO,iBAAiB,YAAY,aAAa,UAAW,CAAC;AAAA,QAAA;AAAA,MACxE,CACD;AAAA,IACH;AAAA,EAAA;AAEJ;"}
@@ -0,0 +1,3 @@
1
+ import type { Core } from '@strapi/types';
2
+ export declare const createConfigProvider: (initialConfig?: Record<string, unknown>, strapi?: Core.Strapi) => Core.ConfigProvider;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAS1C,eAAO,MAAM,oBAAoB,mBAChB,OAAO,MAAM,EAAE,OAAO,CAAC,WAC7B,KAAK,MAAM,KACnB,KAAK,cAkDP,CAAC"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
3
  const _ = require("lodash");
3
- const config = (initialConfig = {}, strapi) => {
4
- const _config = { ...initialConfig };
4
+ const createConfigProvider = (initialConfig = {}, strapi) => {
5
+ const state = {
6
+ config: { ...initialConfig }
7
+ // not deep clone because it would break some config
8
+ };
5
9
  const transformPathString = (path) => {
6
10
  if (path.startsWith("plugin.")) {
7
11
  const newPath = path.replace("plugin.", "plugin::");
@@ -25,19 +29,19 @@ const config = (initialConfig = {}, strapi) => {
25
29
  return path;
26
30
  };
27
31
  return {
28
- ..._config,
32
+ ...state.config,
29
33
  // TODO: to remove
30
34
  get(path, defaultValue) {
31
- return _.get(_config, transformDeprecatedPaths(path), defaultValue);
35
+ return _.get(state.config, transformDeprecatedPaths(path), defaultValue);
32
36
  },
33
37
  set(path, val) {
34
- _.set(_config, transformDeprecatedPaths(path), val);
38
+ _.set(state.config, transformDeprecatedPaths(path), val);
35
39
  return this;
36
40
  },
37
41
  has(path) {
38
- return _.has(_config, transformDeprecatedPaths(path));
42
+ return _.has(state.config, transformDeprecatedPaths(path));
39
43
  }
40
44
  };
41
45
  };
42
- module.exports = config;
46
+ exports.createConfigProvider = createConfigProvider;
43
47
  //# sourceMappingURL=config.js.map