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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (709) hide show
  1. package/dist/Strapi.d.ts.map +1 -1
  2. package/dist/configuration/index.d.ts.map +1 -1
  3. package/dist/core-api/service/collection-type.d.ts +2 -2
  4. package/dist/ee/index.d.ts.map +1 -1
  5. package/dist/index.js +10110 -27
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +10088 -29
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  10. package/dist/loaders/plugins/index.d.ts.map +1 -1
  11. package/dist/middlewares/body.d.ts.map +1 -1
  12. package/dist/middlewares/security.d.ts.map +1 -1
  13. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +14 -11
  14. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  15. package/dist/migrations/draft-publish.d.ts +2 -2
  16. package/dist/migrations/draft-publish.d.ts.map +1 -1
  17. package/dist/migrations/i18n.d.ts +5 -0
  18. package/dist/migrations/i18n.d.ts.map +1 -0
  19. package/dist/migrations/index.d.ts +5 -0
  20. package/dist/migrations/index.d.ts.map +1 -0
  21. package/dist/providers/admin.d.ts.map +1 -1
  22. package/dist/registries/policies.d.ts +1 -1
  23. package/dist/registries/policies.d.ts.map +1 -1
  24. package/dist/services/content-api/index.d.ts +10 -12
  25. package/dist/services/content-api/index.d.ts.map +1 -1
  26. package/dist/services/content-api/permissions/index.d.ts +10 -12
  27. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  28. package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
  29. package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
  30. package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
  31. package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
  32. package/dist/services/cron.d.ts +3 -3
  33. package/dist/services/cron.d.ts.map +1 -1
  34. package/dist/services/document-service/common.d.ts +1 -1
  35. package/dist/services/document-service/common.d.ts.map +1 -1
  36. package/dist/services/document-service/components.d.ts.map +1 -1
  37. package/dist/services/document-service/draft-and-publish.d.ts +1 -1
  38. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  39. package/dist/services/document-service/entries.d.ts +2 -2
  40. package/dist/services/document-service/entries.d.ts.map +1 -1
  41. package/dist/services/document-service/events.d.ts +1 -1
  42. package/dist/services/document-service/events.d.ts.map +1 -1
  43. package/dist/services/document-service/index.d.ts +2 -1
  44. package/dist/services/document-service/index.d.ts.map +1 -1
  45. package/dist/services/document-service/repository.d.ts.map +1 -1
  46. package/dist/services/document-service/transform/id-map.d.ts +1 -1
  47. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  48. package/dist/services/document-service/transform/id-transform.d.ts +1 -1
  49. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  50. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  51. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  52. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  53. package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
  54. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  55. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
  56. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  57. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
  58. package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
  59. package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -0
  60. package/dist/services/document-service/utils/populate.d.ts +1 -1
  61. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  62. package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
  63. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  64. package/dist/services/entity-validator/index.d.ts +1 -1
  65. package/dist/services/entity-validator/index.d.ts.map +1 -1
  66. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  67. package/dist/services/metrics/middleware.d.ts.map +1 -1
  68. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  69. package/dist/utils/startup-logger.d.ts.map +1 -1
  70. package/dist/utils/transform-content-types-to-models.d.ts +355 -23
  71. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  72. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  73. package/package.json +30 -31
  74. package/dist/Strapi.js +0 -431
  75. package/dist/Strapi.js.map +0 -1
  76. package/dist/Strapi.mjs +0 -410
  77. package/dist/Strapi.mjs.map +0 -1
  78. package/dist/compile.js +0 -18
  79. package/dist/compile.js.map +0 -1
  80. package/dist/compile.mjs +0 -17
  81. package/dist/compile.mjs.map +0 -1
  82. package/dist/configuration/config-loader.js +0 -106
  83. package/dist/configuration/config-loader.js.map +0 -1
  84. package/dist/configuration/config-loader.mjs +0 -104
  85. package/dist/configuration/config-loader.mjs.map +0 -1
  86. package/dist/configuration/get-dirs.js +0 -31
  87. package/dist/configuration/get-dirs.js.map +0 -1
  88. package/dist/configuration/get-dirs.mjs +0 -31
  89. package/dist/configuration/get-dirs.mjs.map +0 -1
  90. package/dist/configuration/index.js +0 -80
  91. package/dist/configuration/index.js.map +0 -1
  92. package/dist/configuration/index.mjs +0 -75
  93. package/dist/configuration/index.mjs.map +0 -1
  94. package/dist/configuration/urls.js +0 -68
  95. package/dist/configuration/urls.js.map +0 -1
  96. package/dist/configuration/urls.mjs +0 -66
  97. package/dist/configuration/urls.mjs.map +0 -1
  98. package/dist/container.js +0 -30
  99. package/dist/container.js.map +0 -1
  100. package/dist/container.mjs +0 -30
  101. package/dist/container.mjs.map +0 -1
  102. package/dist/core-api/controller/collection-type.js +0 -84
  103. package/dist/core-api/controller/collection-type.js.map +0 -1
  104. package/dist/core-api/controller/collection-type.mjs +0 -84
  105. package/dist/core-api/controller/collection-type.mjs.map +0 -1
  106. package/dist/core-api/controller/index.js +0 -52
  107. package/dist/core-api/controller/index.js.map +0 -1
  108. package/dist/core-api/controller/index.mjs +0 -52
  109. package/dist/core-api/controller/index.mjs.map +0 -1
  110. package/dist/core-api/controller/single-type.js +0 -46
  111. package/dist/core-api/controller/single-type.js.map +0 -1
  112. package/dist/core-api/controller/single-type.mjs +0 -46
  113. package/dist/core-api/controller/single-type.mjs.map +0 -1
  114. package/dist/core-api/controller/transform.js +0 -76
  115. package/dist/core-api/controller/transform.js.map +0 -1
  116. package/dist/core-api/controller/transform.mjs +0 -76
  117. package/dist/core-api/controller/transform.mjs.map +0 -1
  118. package/dist/core-api/routes/index.js +0 -67
  119. package/dist/core-api/routes/index.js.map +0 -1
  120. package/dist/core-api/routes/index.mjs +0 -67
  121. package/dist/core-api/routes/index.mjs.map +0 -1
  122. package/dist/core-api/service/collection-type.js +0 -67
  123. package/dist/core-api/service/collection-type.js.map +0 -1
  124. package/dist/core-api/service/collection-type.mjs +0 -67
  125. package/dist/core-api/service/collection-type.mjs.map +0 -1
  126. package/dist/core-api/service/core-service.js +0 -12
  127. package/dist/core-api/service/core-service.js.map +0 -1
  128. package/dist/core-api/service/core-service.mjs +0 -12
  129. package/dist/core-api/service/core-service.mjs.map +0 -1
  130. package/dist/core-api/service/index.js +0 -16
  131. package/dist/core-api/service/index.js.map +0 -1
  132. package/dist/core-api/service/index.mjs +0 -16
  133. package/dist/core-api/service/index.mjs.map +0 -1
  134. package/dist/core-api/service/pagination.js +0 -52
  135. package/dist/core-api/service/pagination.js.map +0 -1
  136. package/dist/core-api/service/pagination.mjs +0 -52
  137. package/dist/core-api/service/pagination.mjs.map +0 -1
  138. package/dist/core-api/service/single-type.js +0 -46
  139. package/dist/core-api/service/single-type.js.map +0 -1
  140. package/dist/core-api/service/single-type.mjs +0 -46
  141. package/dist/core-api/service/single-type.mjs.map +0 -1
  142. package/dist/domain/content-type/index.js +0 -111
  143. package/dist/domain/content-type/index.js.map +0 -1
  144. package/dist/domain/content-type/index.mjs +0 -109
  145. package/dist/domain/content-type/index.mjs.map +0 -1
  146. package/dist/domain/content-type/validator.js +0 -77
  147. package/dist/domain/content-type/validator.js.map +0 -1
  148. package/dist/domain/content-type/validator.mjs +0 -75
  149. package/dist/domain/content-type/validator.mjs.map +0 -1
  150. package/dist/domain/module/index.js +0 -107
  151. package/dist/domain/module/index.js.map +0 -1
  152. package/dist/domain/module/index.mjs +0 -105
  153. package/dist/domain/module/index.mjs.map +0 -1
  154. package/dist/domain/module/validation.js +0 -25
  155. package/dist/domain/module/validation.js.map +0 -1
  156. package/dist/domain/module/validation.mjs +0 -25
  157. package/dist/domain/module/validation.mjs.map +0 -1
  158. package/dist/ee/index.js +0 -153
  159. package/dist/ee/index.js.map +0 -1
  160. package/dist/ee/index.mjs +0 -154
  161. package/dist/ee/index.mjs.map +0 -1
  162. package/dist/ee/license.js +0 -91
  163. package/dist/ee/license.js.map +0 -1
  164. package/dist/ee/license.mjs +0 -88
  165. package/dist/ee/license.mjs.map +0 -1
  166. package/dist/factories.js +0 -80
  167. package/dist/factories.js.map +0 -1
  168. package/dist/factories.mjs +0 -80
  169. package/dist/factories.mjs.map +0 -1
  170. package/dist/loaders/admin.js +0 -26
  171. package/dist/loaders/admin.js.map +0 -1
  172. package/dist/loaders/admin.mjs +0 -25
  173. package/dist/loaders/admin.mjs.map +0 -1
  174. package/dist/loaders/apis.js +0 -137
  175. package/dist/loaders/apis.js.map +0 -1
  176. package/dist/loaders/apis.mjs +0 -135
  177. package/dist/loaders/apis.mjs.map +0 -1
  178. package/dist/loaders/components.js +0 -38
  179. package/dist/loaders/components.js.map +0 -1
  180. package/dist/loaders/components.mjs +0 -37
  181. package/dist/loaders/components.mjs.map +0 -1
  182. package/dist/loaders/index.js +0 -24
  183. package/dist/loaders/index.js.map +0 -1
  184. package/dist/loaders/index.mjs +0 -24
  185. package/dist/loaders/index.mjs.map +0 -1
  186. package/dist/loaders/middlewares.js +0 -31
  187. package/dist/loaders/middlewares.js.map +0 -1
  188. package/dist/loaders/middlewares.mjs +0 -30
  189. package/dist/loaders/middlewares.mjs.map +0 -1
  190. package/dist/loaders/plugins/get-enabled-plugins.js +0 -138
  191. package/dist/loaders/plugins/get-enabled-plugins.js.map +0 -1
  192. package/dist/loaders/plugins/get-enabled-plugins.mjs +0 -114
  193. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +0 -1
  194. package/dist/loaders/plugins/get-user-plugins-config.js +0 -27
  195. package/dist/loaders/plugins/get-user-plugins-config.js.map +0 -1
  196. package/dist/loaders/plugins/get-user-plugins-config.mjs +0 -25
  197. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +0 -1
  198. package/dist/loaders/plugins/index.js +0 -118
  199. package/dist/loaders/plugins/index.js.map +0 -1
  200. package/dist/loaders/plugins/index.mjs +0 -117
  201. package/dist/loaders/plugins/index.mjs.map +0 -1
  202. package/dist/loaders/policies.js +0 -25
  203. package/dist/loaders/policies.js.map +0 -1
  204. package/dist/loaders/policies.mjs +0 -24
  205. package/dist/loaders/policies.mjs.map +0 -1
  206. package/dist/loaders/sanitizers.js +0 -6
  207. package/dist/loaders/sanitizers.js.map +0 -1
  208. package/dist/loaders/sanitizers.mjs +0 -7
  209. package/dist/loaders/sanitizers.mjs.map +0 -1
  210. package/dist/loaders/src-index.js +0 -33
  211. package/dist/loaders/src-index.js.map +0 -1
  212. package/dist/loaders/src-index.mjs +0 -34
  213. package/dist/loaders/src-index.mjs.map +0 -1
  214. package/dist/loaders/validators.js +0 -6
  215. package/dist/loaders/validators.js.map +0 -1
  216. package/dist/loaders/validators.mjs +0 -7
  217. package/dist/loaders/validators.mjs.map +0 -1
  218. package/dist/middlewares/body.js +0 -65
  219. package/dist/middlewares/body.js.map +0 -1
  220. package/dist/middlewares/body.mjs +0 -61
  221. package/dist/middlewares/body.mjs.map +0 -1
  222. package/dist/middlewares/compression.js +0 -8
  223. package/dist/middlewares/compression.js.map +0 -1
  224. package/dist/middlewares/compression.mjs +0 -6
  225. package/dist/middlewares/compression.mjs.map +0 -1
  226. package/dist/middlewares/cors.js +0 -53
  227. package/dist/middlewares/cors.js.map +0 -1
  228. package/dist/middlewares/cors.mjs +0 -51
  229. package/dist/middlewares/cors.mjs.map +0 -1
  230. package/dist/middlewares/errors.js +0 -33
  231. package/dist/middlewares/errors.js.map +0 -1
  232. package/dist/middlewares/errors.mjs +0 -33
  233. package/dist/middlewares/errors.mjs.map +0 -1
  234. package/dist/middlewares/favicon.js +0 -22
  235. package/dist/middlewares/favicon.js.map +0 -1
  236. package/dist/middlewares/favicon.mjs +0 -20
  237. package/dist/middlewares/favicon.mjs.map +0 -1
  238. package/dist/middlewares/index.js +0 -34
  239. package/dist/middlewares/index.js.map +0 -1
  240. package/dist/middlewares/index.mjs +0 -34
  241. package/dist/middlewares/index.mjs.map +0 -1
  242. package/dist/middlewares/ip.js +0 -8
  243. package/dist/middlewares/ip.js.map +0 -1
  244. package/dist/middlewares/ip.mjs +0 -6
  245. package/dist/middlewares/ip.mjs.map +0 -1
  246. package/dist/middlewares/logger.js +0 -12
  247. package/dist/middlewares/logger.js.map +0 -1
  248. package/dist/middlewares/logger.mjs +0 -12
  249. package/dist/middlewares/logger.mjs.map +0 -1
  250. package/dist/middlewares/powered-by.js +0 -14
  251. package/dist/middlewares/powered-by.js.map +0 -1
  252. package/dist/middlewares/powered-by.mjs +0 -14
  253. package/dist/middlewares/powered-by.mjs.map +0 -1
  254. package/dist/middlewares/public.js +0 -34
  255. package/dist/middlewares/public.js.map +0 -1
  256. package/dist/middlewares/public.mjs +0 -32
  257. package/dist/middlewares/public.mjs.map +0 -1
  258. package/dist/middlewares/query.js +0 -40
  259. package/dist/middlewares/query.js.map +0 -1
  260. package/dist/middlewares/query.mjs +0 -38
  261. package/dist/middlewares/query.mjs.map +0 -1
  262. package/dist/middlewares/response-time.js +0 -12
  263. package/dist/middlewares/response-time.js.map +0 -1
  264. package/dist/middlewares/response-time.mjs +0 -12
  265. package/dist/middlewares/response-time.mjs.map +0 -1
  266. package/dist/middlewares/responses.js +0 -15
  267. package/dist/middlewares/responses.js.map +0 -1
  268. package/dist/middlewares/responses.mjs +0 -15
  269. package/dist/middlewares/responses.mjs.map +0 -1
  270. package/dist/middlewares/security.js +0 -78
  271. package/dist/middlewares/security.js.map +0 -1
  272. package/dist/middlewares/security.mjs +0 -76
  273. package/dist/middlewares/security.mjs.map +0 -1
  274. package/dist/middlewares/session.js +0 -30
  275. package/dist/middlewares/session.js.map +0 -1
  276. package/dist/middlewares/session.mjs +0 -28
  277. package/dist/middlewares/session.mjs.map +0 -1
  278. package/dist/migrations/database/5.0.0-discard-drafts.js +0 -50
  279. package/dist/migrations/database/5.0.0-discard-drafts.js.map +0 -1
  280. package/dist/migrations/database/5.0.0-discard-drafts.mjs +0 -50
  281. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +0 -1
  282. package/dist/migrations/draft-publish.js +0 -42
  283. package/dist/migrations/draft-publish.js.map +0 -1
  284. package/dist/migrations/draft-publish.mjs +0 -42
  285. package/dist/migrations/draft-publish.mjs.map +0 -1
  286. package/dist/providers/admin.js +0 -20
  287. package/dist/providers/admin.js.map +0 -1
  288. package/dist/providers/admin.mjs +0 -21
  289. package/dist/providers/admin.mjs.map +0 -1
  290. package/dist/providers/coreStore.js +0 -11
  291. package/dist/providers/coreStore.js.map +0 -1
  292. package/dist/providers/coreStore.mjs +0 -12
  293. package/dist/providers/coreStore.mjs.map +0 -1
  294. package/dist/providers/cron.js +0 -20
  295. package/dist/providers/cron.js.map +0 -1
  296. package/dist/providers/cron.mjs +0 -21
  297. package/dist/providers/cron.mjs.map +0 -1
  298. package/dist/providers/index.js +0 -11
  299. package/dist/providers/index.js.map +0 -1
  300. package/dist/providers/index.mjs +0 -11
  301. package/dist/providers/index.mjs.map +0 -1
  302. package/dist/providers/provider.js +0 -5
  303. package/dist/providers/provider.js.map +0 -1
  304. package/dist/providers/provider.mjs +0 -5
  305. package/dist/providers/provider.mjs.map +0 -1
  306. package/dist/providers/registries.js +0 -35
  307. package/dist/providers/registries.js.map +0 -1
  308. package/dist/providers/registries.mjs +0 -36
  309. package/dist/providers/registries.mjs.map +0 -1
  310. package/dist/providers/telemetry.js +0 -19
  311. package/dist/providers/telemetry.js.map +0 -1
  312. package/dist/providers/telemetry.mjs +0 -20
  313. package/dist/providers/telemetry.mjs.map +0 -1
  314. package/dist/providers/webhooks.js +0 -30
  315. package/dist/providers/webhooks.js.map +0 -1
  316. package/dist/providers/webhooks.mjs +0 -31
  317. package/dist/providers/webhooks.mjs.map +0 -1
  318. package/dist/registries/apis.js +0 -23
  319. package/dist/registries/apis.js.map +0 -1
  320. package/dist/registries/apis.mjs +0 -24
  321. package/dist/registries/apis.mjs.map +0 -1
  322. package/dist/registries/components.js +0 -45
  323. package/dist/registries/components.js.map +0 -1
  324. package/dist/registries/components.mjs +0 -46
  325. package/dist/registries/components.mjs.map +0 -1
  326. package/dist/registries/content-types.js +0 -70
  327. package/dist/registries/content-types.js.map +0 -1
  328. package/dist/registries/content-types.mjs +0 -71
  329. package/dist/registries/content-types.mjs.map +0 -1
  330. package/dist/registries/controllers.js +0 -80
  331. package/dist/registries/controllers.js.map +0 -1
  332. package/dist/registries/controllers.mjs +0 -81
  333. package/dist/registries/controllers.mjs.map +0 -1
  334. package/dist/registries/custom-fields.js +0 -71
  335. package/dist/registries/custom-fields.js.map +0 -1
  336. package/dist/registries/custom-fields.mjs +0 -72
  337. package/dist/registries/custom-fields.mjs.map +0 -1
  338. package/dist/registries/hooks.js +0 -58
  339. package/dist/registries/hooks.js.map +0 -1
  340. package/dist/registries/hooks.mjs +0 -59
  341. package/dist/registries/hooks.mjs.map +0 -1
  342. package/dist/registries/middlewares.js +0 -60
  343. package/dist/registries/middlewares.js.map +0 -1
  344. package/dist/registries/middlewares.mjs +0 -61
  345. package/dist/registries/middlewares.mjs.map +0 -1
  346. package/dist/registries/models.js +0 -16
  347. package/dist/registries/models.js.map +0 -1
  348. package/dist/registries/models.mjs +0 -16
  349. package/dist/registries/models.mjs.map +0 -1
  350. package/dist/registries/modules.js +0 -39
  351. package/dist/registries/modules.js.map +0 -1
  352. package/dist/registries/modules.mjs +0 -40
  353. package/dist/registries/modules.mjs.map +0 -1
  354. package/dist/registries/namespace.js +0 -27
  355. package/dist/registries/namespace.js.map +0 -1
  356. package/dist/registries/namespace.mjs +0 -27
  357. package/dist/registries/namespace.mjs.map +0 -1
  358. package/dist/registries/plugins.js +0 -23
  359. package/dist/registries/plugins.js.map +0 -1
  360. package/dist/registries/plugins.mjs +0 -24
  361. package/dist/registries/plugins.mjs.map +0 -1
  362. package/dist/registries/policies.js +0 -108
  363. package/dist/registries/policies.js.map +0 -1
  364. package/dist/registries/policies.mjs +0 -109
  365. package/dist/registries/policies.mjs.map +0 -1
  366. package/dist/registries/sanitizers.js +0 -25
  367. package/dist/registries/sanitizers.js.map +0 -1
  368. package/dist/registries/sanitizers.mjs +0 -24
  369. package/dist/registries/sanitizers.mjs.map +0 -1
  370. package/dist/registries/services.js +0 -80
  371. package/dist/registries/services.js.map +0 -1
  372. package/dist/registries/services.mjs +0 -81
  373. package/dist/registries/services.mjs.map +0 -1
  374. package/dist/registries/validators.js +0 -25
  375. package/dist/registries/validators.js.map +0 -1
  376. package/dist/registries/validators.mjs +0 -24
  377. package/dist/registries/validators.mjs.map +0 -1
  378. package/dist/services/auth/index.js +0 -81
  379. package/dist/services/auth/index.js.map +0 -1
  380. package/dist/services/auth/index.mjs +0 -80
  381. package/dist/services/auth/index.mjs.map +0 -1
  382. package/dist/services/config.js +0 -47
  383. package/dist/services/config.js.map +0 -1
  384. package/dist/services/config.mjs +0 -47
  385. package/dist/services/config.mjs.map +0 -1
  386. package/dist/services/content-api/index.js +0 -85
  387. package/dist/services/content-api/index.js.map +0 -1
  388. package/dist/services/content-api/index.mjs +0 -84
  389. package/dist/services/content-api/index.mjs.map +0 -1
  390. package/dist/services/content-api/permissions/engine.js +0 -7
  391. package/dist/services/content-api/permissions/engine.js.map +0 -1
  392. package/dist/services/content-api/permissions/engine.mjs +0 -6
  393. package/dist/services/content-api/permissions/engine.mjs.map +0 -1
  394. package/dist/services/content-api/permissions/index.js +0 -87
  395. package/dist/services/content-api/permissions/index.js.map +0 -1
  396. package/dist/services/content-api/permissions/index.mjs +0 -86
  397. package/dist/services/content-api/permissions/index.mjs.map +0 -1
  398. package/dist/services/content-api/permissions/providers/action.js +0 -16
  399. package/dist/services/content-api/permissions/providers/action.js.map +0 -1
  400. package/dist/services/content-api/permissions/providers/action.mjs +0 -17
  401. package/dist/services/content-api/permissions/providers/action.mjs.map +0 -1
  402. package/dist/services/content-api/permissions/providers/condition.js +0 -16
  403. package/dist/services/content-api/permissions/providers/condition.js.map +0 -1
  404. package/dist/services/content-api/permissions/providers/condition.mjs +0 -17
  405. package/dist/services/content-api/permissions/providers/condition.mjs.map +0 -1
  406. package/dist/services/core-store.js +0 -107
  407. package/dist/services/core-store.js.map +0 -1
  408. package/dist/services/core-store.mjs +0 -107
  409. package/dist/services/core-store.mjs.map +0 -1
  410. package/dist/services/cron.js +0 -63
  411. package/dist/services/cron.js.map +0 -1
  412. package/dist/services/cron.mjs +0 -64
  413. package/dist/services/cron.mjs.map +0 -1
  414. package/dist/services/custom-fields.js +0 -10
  415. package/dist/services/custom-fields.js.map +0 -1
  416. package/dist/services/custom-fields.mjs +0 -11
  417. package/dist/services/custom-fields.mjs.map +0 -1
  418. package/dist/services/document-service/attributes/index.js +0 -22
  419. package/dist/services/document-service/attributes/index.js.map +0 -1
  420. package/dist/services/document-service/attributes/index.mjs +0 -22
  421. package/dist/services/document-service/attributes/index.mjs.map +0 -1
  422. package/dist/services/document-service/attributes/transforms.js +0 -20
  423. package/dist/services/document-service/attributes/transforms.js.map +0 -1
  424. package/dist/services/document-service/attributes/transforms.mjs +0 -19
  425. package/dist/services/document-service/attributes/transforms.mjs.map +0 -1
  426. package/dist/services/document-service/common.js +0 -7
  427. package/dist/services/document-service/common.js.map +0 -1
  428. package/dist/services/document-service/common.mjs +0 -7
  429. package/dist/services/document-service/common.mjs.map +0 -1
  430. package/dist/services/document-service/components.js +0 -288
  431. package/dist/services/document-service/components.js.map +0 -1
  432. package/dist/services/document-service/components.mjs +0 -286
  433. package/dist/services/document-service/components.mjs.map +0 -1
  434. package/dist/services/document-service/draft-and-publish.js +0 -69
  435. package/dist/services/document-service/draft-and-publish.js.map +0 -1
  436. package/dist/services/document-service/draft-and-publish.mjs +0 -69
  437. package/dist/services/document-service/draft-and-publish.mjs.map +0 -1
  438. package/dist/services/document-service/entries.js +0 -96
  439. package/dist/services/document-service/entries.js.map +0 -1
  440. package/dist/services/document-service/entries.mjs +0 -96
  441. package/dist/services/document-service/entries.mjs.map +0 -1
  442. package/dist/services/document-service/events.js +0 -47
  443. package/dist/services/document-service/events.js.map +0 -1
  444. package/dist/services/document-service/events.mjs +0 -47
  445. package/dist/services/document-service/events.mjs.map +0 -1
  446. package/dist/services/document-service/index.js +0 -35
  447. package/dist/services/document-service/index.js.map +0 -1
  448. package/dist/services/document-service/index.mjs +0 -35
  449. package/dist/services/document-service/index.mjs.map +0 -1
  450. package/dist/services/document-service/internationalization.js +0 -63
  451. package/dist/services/document-service/internationalization.js.map +0 -1
  452. package/dist/services/document-service/internationalization.mjs +0 -63
  453. package/dist/services/document-service/internationalization.mjs.map +0 -1
  454. package/dist/services/document-service/middlewares/errors.js +0 -25
  455. package/dist/services/document-service/middlewares/errors.js.map +0 -1
  456. package/dist/services/document-service/middlewares/errors.mjs +0 -25
  457. package/dist/services/document-service/middlewares/errors.mjs.map +0 -1
  458. package/dist/services/document-service/middlewares/middleware-manager.js +0 -49
  459. package/dist/services/document-service/middlewares/middleware-manager.js.map +0 -1
  460. package/dist/services/document-service/middlewares/middleware-manager.mjs +0 -49
  461. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +0 -1
  462. package/dist/services/document-service/params.js +0 -8
  463. package/dist/services/document-service/params.js.map +0 -1
  464. package/dist/services/document-service/params.mjs +0 -8
  465. package/dist/services/document-service/params.mjs.map +0 -1
  466. package/dist/services/document-service/repository.js +0 -278
  467. package/dist/services/document-service/repository.js.map +0 -1
  468. package/dist/services/document-service/repository.mjs +0 -278
  469. package/dist/services/document-service/repository.mjs.map +0 -1
  470. package/dist/services/document-service/transform/data.js +0 -15
  471. package/dist/services/document-service/transform/data.js.map +0 -1
  472. package/dist/services/document-service/transform/data.mjs +0 -15
  473. package/dist/services/document-service/transform/data.mjs.map +0 -1
  474. package/dist/services/document-service/transform/fields.js +0 -24
  475. package/dist/services/document-service/transform/fields.js.map +0 -1
  476. package/dist/services/document-service/transform/fields.mjs +0 -24
  477. package/dist/services/document-service/transform/fields.mjs.map +0 -1
  478. package/dist/services/document-service/transform/id-map.js +0 -78
  479. package/dist/services/document-service/transform/id-map.js.map +0 -1
  480. package/dist/services/document-service/transform/id-map.mjs +0 -78
  481. package/dist/services/document-service/transform/id-map.mjs.map +0 -1
  482. package/dist/services/document-service/transform/id-transform.js +0 -33
  483. package/dist/services/document-service/transform/id-transform.js.map +0 -1
  484. package/dist/services/document-service/transform/id-transform.mjs +0 -33
  485. package/dist/services/document-service/transform/id-transform.mjs.map +0 -1
  486. package/dist/services/document-service/transform/populate.js +0 -21
  487. package/dist/services/document-service/transform/populate.js.map +0 -1
  488. package/dist/services/document-service/transform/populate.mjs +0 -21
  489. package/dist/services/document-service/transform/populate.mjs.map +0 -1
  490. package/dist/services/document-service/transform/query.js +0 -9
  491. package/dist/services/document-service/transform/query.js.map +0 -1
  492. package/dist/services/document-service/transform/query.mjs +0 -9
  493. package/dist/services/document-service/transform/query.mjs.map +0 -1
  494. package/dist/services/document-service/transform/relations/extract/data-ids.js +0 -57
  495. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +0 -1
  496. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +0 -57
  497. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +0 -1
  498. package/dist/services/document-service/transform/relations/transform/data-ids.js +0 -76
  499. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +0 -1
  500. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +0 -76
  501. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +0 -1
  502. package/dist/services/document-service/transform/relations/transform/default-locale.js +0 -32
  503. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +0 -1
  504. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +0 -32
  505. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +0 -1
  506. package/dist/services/document-service/transform/relations/utils/dp.js +0 -30
  507. package/dist/services/document-service/transform/relations/utils/dp.js.map +0 -1
  508. package/dist/services/document-service/transform/relations/utils/dp.mjs +0 -30
  509. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +0 -1
  510. package/dist/services/document-service/transform/relations/utils/i18n.js +0 -25
  511. package/dist/services/document-service/transform/relations/utils/i18n.js.map +0 -1
  512. package/dist/services/document-service/transform/relations/utils/i18n.mjs +0 -25
  513. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +0 -1
  514. package/dist/services/document-service/transform/relations/utils/map-relation.js +0 -91
  515. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +0 -1
  516. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +0 -91
  517. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +0 -1
  518. package/dist/services/document-service/utils/populate.js +0 -45
  519. package/dist/services/document-service/utils/populate.js.map +0 -1
  520. package/dist/services/document-service/utils/populate.mjs +0 -45
  521. package/dist/services/document-service/utils/populate.mjs.map +0 -1
  522. package/dist/services/entity-service/index.js +0 -169
  523. package/dist/services/entity-service/index.js.map +0 -1
  524. package/dist/services/entity-service/index.mjs +0 -167
  525. package/dist/services/entity-service/index.mjs.map +0 -1
  526. package/dist/services/entity-validator/blocks-validator.js +0 -128
  527. package/dist/services/entity-validator/blocks-validator.js.map +0 -1
  528. package/dist/services/entity-validator/blocks-validator.mjs +0 -128
  529. package/dist/services/entity-validator/blocks-validator.mjs.map +0 -1
  530. package/dist/services/entity-validator/index.js +0 -385
  531. package/dist/services/entity-validator/index.js.map +0 -1
  532. package/dist/services/entity-validator/index.mjs +0 -384
  533. package/dist/services/entity-validator/index.mjs.map +0 -1
  534. package/dist/services/entity-validator/validators.js +0 -237
  535. package/dist/services/entity-validator/validators.js.map +0 -1
  536. package/dist/services/entity-validator/validators.mjs +0 -235
  537. package/dist/services/entity-validator/validators.mjs.map +0 -1
  538. package/dist/services/errors.js +0 -76
  539. package/dist/services/errors.js.map +0 -1
  540. package/dist/services/errors.mjs +0 -74
  541. package/dist/services/errors.mjs.map +0 -1
  542. package/dist/services/event-hub.js +0 -72
  543. package/dist/services/event-hub.js.map +0 -1
  544. package/dist/services/event-hub.mjs +0 -73
  545. package/dist/services/event-hub.mjs.map +0 -1
  546. package/dist/services/features.js +0 -17
  547. package/dist/services/features.js.map +0 -1
  548. package/dist/services/features.mjs +0 -17
  549. package/dist/services/features.mjs.map +0 -1
  550. package/dist/services/fs.js +0 -51
  551. package/dist/services/fs.js.map +0 -1
  552. package/dist/services/fs.mjs +0 -49
  553. package/dist/services/fs.mjs.map +0 -1
  554. package/dist/services/metrics/admin-user-hash.js +0 -14
  555. package/dist/services/metrics/admin-user-hash.js.map +0 -1
  556. package/dist/services/metrics/admin-user-hash.mjs +0 -12
  557. package/dist/services/metrics/admin-user-hash.mjs.map +0 -1
  558. package/dist/services/metrics/index.js +0 -45
  559. package/dist/services/metrics/index.js.map +0 -1
  560. package/dist/services/metrics/index.mjs +0 -46
  561. package/dist/services/metrics/index.mjs.map +0 -1
  562. package/dist/services/metrics/is-truthy.js +0 -9
  563. package/dist/services/metrics/is-truthy.js.map +0 -1
  564. package/dist/services/metrics/is-truthy.mjs +0 -8
  565. package/dist/services/metrics/is-truthy.mjs.map +0 -1
  566. package/dist/services/metrics/middleware.js +0 -25
  567. package/dist/services/metrics/middleware.js.map +0 -1
  568. package/dist/services/metrics/middleware.mjs +0 -26
  569. package/dist/services/metrics/middleware.mjs.map +0 -1
  570. package/dist/services/metrics/rate-limiter.js +0 -21
  571. package/dist/services/metrics/rate-limiter.js.map +0 -1
  572. package/dist/services/metrics/rate-limiter.mjs +0 -22
  573. package/dist/services/metrics/rate-limiter.mjs.map +0 -1
  574. package/dist/services/metrics/sender.js +0 -76
  575. package/dist/services/metrics/sender.js.map +0 -1
  576. package/dist/services/metrics/sender.mjs +0 -70
  577. package/dist/services/metrics/sender.mjs.map +0 -1
  578. package/dist/services/query-params.js +0 -12
  579. package/dist/services/query-params.js.map +0 -1
  580. package/dist/services/query-params.mjs +0 -13
  581. package/dist/services/query-params.mjs.map +0 -1
  582. package/dist/services/reloader.js +0 -36
  583. package/dist/services/reloader.js.map +0 -1
  584. package/dist/services/reloader.mjs +0 -36
  585. package/dist/services/reloader.mjs.map +0 -1
  586. package/dist/services/request-context.js +0 -13
  587. package/dist/services/request-context.js.map +0 -1
  588. package/dist/services/request-context.mjs +0 -14
  589. package/dist/services/request-context.mjs.map +0 -1
  590. package/dist/services/server/admin-api.js +0 -13
  591. package/dist/services/server/admin-api.js.map +0 -1
  592. package/dist/services/server/admin-api.mjs +0 -13
  593. package/dist/services/server/admin-api.mjs.map +0 -1
  594. package/dist/services/server/api.js +0 -30
  595. package/dist/services/server/api.js.map +0 -1
  596. package/dist/services/server/api.mjs +0 -28
  597. package/dist/services/server/api.mjs.map +0 -1
  598. package/dist/services/server/compose-endpoint.js +0 -117
  599. package/dist/services/server/compose-endpoint.js.map +0 -1
  600. package/dist/services/server/compose-endpoint.mjs +0 -116
  601. package/dist/services/server/compose-endpoint.mjs.map +0 -1
  602. package/dist/services/server/content-api.js +0 -12
  603. package/dist/services/server/content-api.js.map +0 -1
  604. package/dist/services/server/content-api.mjs +0 -12
  605. package/dist/services/server/content-api.mjs.map +0 -1
  606. package/dist/services/server/http-server.js +0 -50
  607. package/dist/services/server/http-server.js.map +0 -1
  608. package/dist/services/server/http-server.mjs +0 -48
  609. package/dist/services/server/http-server.mjs.map +0 -1
  610. package/dist/services/server/index.js +0 -87
  611. package/dist/services/server/index.js.map +0 -1
  612. package/dist/services/server/index.mjs +0 -85
  613. package/dist/services/server/index.mjs.map +0 -1
  614. package/dist/services/server/koa.js +0 -52
  615. package/dist/services/server/koa.js.map +0 -1
  616. package/dist/services/server/koa.mjs +0 -48
  617. package/dist/services/server/koa.mjs.map +0 -1
  618. package/dist/services/server/middleware.js +0 -92
  619. package/dist/services/server/middleware.js.map +0 -1
  620. package/dist/services/server/middleware.mjs +0 -90
  621. package/dist/services/server/middleware.mjs.map +0 -1
  622. package/dist/services/server/policy.js +0 -20
  623. package/dist/services/server/policy.js.map +0 -1
  624. package/dist/services/server/policy.mjs +0 -20
  625. package/dist/services/server/policy.mjs.map +0 -1
  626. package/dist/services/server/register-middlewares.js +0 -72
  627. package/dist/services/server/register-middlewares.js.map +0 -1
  628. package/dist/services/server/register-middlewares.mjs +0 -73
  629. package/dist/services/server/register-middlewares.mjs.map +0 -1
  630. package/dist/services/server/register-routes.js +0 -76
  631. package/dist/services/server/register-routes.js.map +0 -1
  632. package/dist/services/server/register-routes.mjs +0 -75
  633. package/dist/services/server/register-routes.mjs.map +0 -1
  634. package/dist/services/server/routing.js +0 -91
  635. package/dist/services/server/routing.js.map +0 -1
  636. package/dist/services/server/routing.mjs +0 -89
  637. package/dist/services/server/routing.mjs.map +0 -1
  638. package/dist/services/utils/dynamic-zones.js +0 -17
  639. package/dist/services/utils/dynamic-zones.js.map +0 -1
  640. package/dist/services/utils/dynamic-zones.mjs +0 -18
  641. package/dist/services/utils/dynamic-zones.mjs.map +0 -1
  642. package/dist/services/webhook-runner.js +0 -133
  643. package/dist/services/webhook-runner.js.map +0 -1
  644. package/dist/services/webhook-runner.mjs +0 -131
  645. package/dist/services/webhook-runner.mjs.map +0 -1
  646. package/dist/services/webhook-store.js +0 -110
  647. package/dist/services/webhook-store.js.map +0 -1
  648. package/dist/services/webhook-store.mjs +0 -110
  649. package/dist/services/webhook-store.mjs.map +0 -1
  650. package/dist/services/worker-queue.js +0 -56
  651. package/dist/services/worker-queue.js.map +0 -1
  652. package/dist/services/worker-queue.mjs +0 -55
  653. package/dist/services/worker-queue.mjs.map +0 -1
  654. package/dist/utils/convert-custom-field-type.js +0 -24
  655. package/dist/utils/convert-custom-field-type.js.map +0 -1
  656. package/dist/utils/convert-custom-field-type.mjs +0 -24
  657. package/dist/utils/convert-custom-field-type.mjs.map +0 -1
  658. package/dist/utils/cron.js +0 -38
  659. package/dist/utils/cron.js.map +0 -1
  660. package/dist/utils/cron.mjs +0 -38
  661. package/dist/utils/cron.mjs.map +0 -1
  662. package/dist/utils/fetch.js +0 -21
  663. package/dist/utils/fetch.js.map +0 -1
  664. package/dist/utils/fetch.mjs +0 -21
  665. package/dist/utils/fetch.mjs.map +0 -1
  666. package/dist/utils/filepath-to-prop-path.js +0 -33
  667. package/dist/utils/filepath-to-prop-path.js.map +0 -1
  668. package/dist/utils/filepath-to-prop-path.mjs +0 -30
  669. package/dist/utils/filepath-to-prop-path.mjs.map +0 -1
  670. package/dist/utils/is-initialized.js +0 -16
  671. package/dist/utils/is-initialized.js.map +0 -1
  672. package/dist/utils/is-initialized.mjs +0 -16
  673. package/dist/utils/is-initialized.mjs.map +0 -1
  674. package/dist/utils/lifecycles.js +0 -9
  675. package/dist/utils/lifecycles.js.map +0 -1
  676. package/dist/utils/lifecycles.mjs +0 -9
  677. package/dist/utils/lifecycles.mjs.map +0 -1
  678. package/dist/utils/load-config-file.js +0 -45
  679. package/dist/utils/load-config-file.js.map +0 -1
  680. package/dist/utils/load-config-file.mjs +0 -42
  681. package/dist/utils/load-config-file.mjs.map +0 -1
  682. package/dist/utils/load-files.js +0 -39
  683. package/dist/utils/load-files.js.map +0 -1
  684. package/dist/utils/load-files.mjs +0 -35
  685. package/dist/utils/load-files.mjs.map +0 -1
  686. package/dist/utils/open-browser.js +0 -11
  687. package/dist/utils/open-browser.js.map +0 -1
  688. package/dist/utils/open-browser.mjs +0 -9
  689. package/dist/utils/open-browser.mjs.map +0 -1
  690. package/dist/utils/resolve-working-dirs.js +0 -13
  691. package/dist/utils/resolve-working-dirs.js.map +0 -1
  692. package/dist/utils/resolve-working-dirs.mjs +0 -11
  693. package/dist/utils/resolve-working-dirs.mjs.map +0 -1
  694. package/dist/utils/signals.js +0 -17
  695. package/dist/utils/signals.js.map +0 -1
  696. package/dist/utils/signals.mjs +0 -17
  697. package/dist/utils/signals.mjs.map +0 -1
  698. package/dist/utils/startup-logger.js +0 -81
  699. package/dist/utils/startup-logger.js.map +0 -1
  700. package/dist/utils/startup-logger.mjs +0 -77
  701. package/dist/utils/startup-logger.mjs.map +0 -1
  702. package/dist/utils/transform-content-types-to-models.js +0 -287
  703. package/dist/utils/transform-content-types-to-models.js.map +0 -1
  704. package/dist/utils/transform-content-types-to-models.mjs +0 -284
  705. package/dist/utils/transform-content-types-to-models.mjs.map +0 -1
  706. package/dist/utils/update-notifier/index.js +0 -85
  707. package/dist/utils/update-notifier/index.js.map +0 -1
  708. package/dist/utils/update-notifier/index.mjs +0 -78
  709. package/dist/utils/update-notifier/index.mjs.map +0 -1
@@ -1,80 +0,0 @@
1
- "use strict";
2
- const fp = require("lodash/fp");
3
- const namespace = require("./namespace.js");
4
- const servicesRegistry = (strapi) => {
5
- const services = {};
6
- const instantiatedServices = {};
7
- return {
8
- /**
9
- * Returns this list of registered services uids
10
- */
11
- keys() {
12
- return Object.keys(services);
13
- },
14
- /**
15
- * Returns the instance of a service. Instantiate the service if not already done
16
- */
17
- get(uid) {
18
- if (instantiatedServices[uid]) {
19
- return instantiatedServices[uid];
20
- }
21
- const service = services[uid];
22
- if (service) {
23
- instantiatedServices[uid] = typeof service === "function" ? service({ strapi }) : service;
24
- return instantiatedServices[uid];
25
- }
26
- },
27
- /**
28
- * Returns a map with all the services in a namespace
29
- */
30
- getAll(namespace$1) {
31
- const filteredServices = fp.pickBy((_, uid) => namespace.hasNamespace(uid, namespace$1))(services);
32
- const map = {};
33
- for (const uid of Object.keys(filteredServices)) {
34
- Object.defineProperty(map, uid, {
35
- enumerable: true,
36
- get: () => {
37
- return this.get(uid);
38
- }
39
- });
40
- }
41
- return map;
42
- },
43
- /**
44
- * Registers a service
45
- */
46
- set(uid, service) {
47
- services[uid] = service;
48
- delete instantiatedServices[uid];
49
- return this;
50
- },
51
- /**
52
- * Registers a map of services for a specific namespace
53
- */
54
- add(namespace$1, newServices) {
55
- for (const serviceName of Object.keys(newServices)) {
56
- const service = newServices[serviceName];
57
- const uid = namespace.addNamespace(serviceName, namespace$1);
58
- if (fp.has(uid, services)) {
59
- throw new Error(`Service ${uid} has already been registered.`);
60
- }
61
- services[uid] = service;
62
- }
63
- return this;
64
- },
65
- /**
66
- * Wraps a service to extend it
67
- */
68
- extend(uid, extendFn) {
69
- const currentService = this.get(uid);
70
- if (!currentService) {
71
- throw new Error(`Service ${uid} doesn't exist`);
72
- }
73
- const newService = extendFn(currentService);
74
- instantiatedServices[uid] = newService;
75
- return this;
76
- }
77
- };
78
- };
79
- module.exports = servicesRegistry;
80
- //# sourceMappingURL=services.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"services.js","sources":["../../src/registries/services.ts"],"sourcesContent":["import { pickBy, has } from 'lodash/fp';\nimport type { Core, UID } from '@strapi/types';\nimport { addNamespace, hasNamespace } from './namespace';\n\nexport type ServiceFactory = (params: { strapi: Core.Strapi }) => Core.Service | Core.Service;\nexport type ServiceFactoryMap = Record<string, ServiceFactory>;\nexport type ServiceMap = Record<string, Core.Service>;\nexport type ServiceExtendFn = (service: Core.Service) => Core.Service;\n\nconst servicesRegistry = (strapi: Core.Strapi) => {\n const services: ServiceFactoryMap = {};\n const instantiatedServices: ServiceMap = {};\n\n return {\n /**\n * Returns this list of registered services uids\n */\n keys() {\n return Object.keys(services);\n },\n\n /**\n * Returns the instance of a service. Instantiate the service if not already done\n */\n get(uid: UID.Service) {\n if (instantiatedServices[uid]) {\n return instantiatedServices[uid];\n }\n\n const service = services[uid];\n if (service) {\n instantiatedServices[uid] = typeof service === 'function' ? service({ strapi }) : service;\n return instantiatedServices[uid];\n }\n },\n\n /**\n * Returns a map with all the services in a namespace\n */\n getAll(namespace: string): ServiceMap {\n const filteredServices = pickBy((_, uid) => hasNamespace(uid, namespace))(services);\n\n // create lazy accessor to avoid instantiating the services;\n const map = {};\n for (const uid of Object.keys(filteredServices)) {\n Object.defineProperty(map, uid, {\n enumerable: true,\n get: () => {\n return this.get(uid as UID.Service);\n },\n });\n }\n\n return map;\n },\n\n /**\n * Registers a service\n */\n set(uid: string, service: ServiceFactory) {\n services[uid] = service;\n delete instantiatedServices[uid];\n return this;\n },\n\n /**\n * Registers a map of services for a specific namespace\n */\n add(namespace: string, newServices: ServiceFactoryMap) {\n for (const serviceName of Object.keys(newServices)) {\n const service = newServices[serviceName];\n const uid = addNamespace(serviceName, namespace);\n\n if (has(uid, services)) {\n throw new Error(`Service ${uid} has already been registered.`);\n }\n services[uid] = service;\n }\n\n return this;\n },\n\n /**\n * Wraps a service to extend it\n */\n extend(uid: UID.Service, extendFn: ServiceExtendFn) {\n const currentService = this.get(uid);\n\n if (!currentService) {\n throw new Error(`Service ${uid} doesn't exist`);\n }\n\n const newService = extendFn(currentService);\n instantiatedServices[uid] = newService;\n\n return this;\n },\n };\n};\n\nexport default servicesRegistry;\n"],"names":["namespace","pickBy","hasNamespace","addNamespace","has"],"mappings":";;;AASM,MAAA,mBAAmB,CAAC,WAAwB;AAChD,QAAM,WAA8B,CAAA;AACpC,QAAM,uBAAmC,CAAA;AAElC,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AACE,aAAA,OAAO,KAAK,QAAQ;AAAA,IAC7B;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAkB;AAChB,UAAA,qBAAqB,GAAG,GAAG;AAC7B,eAAO,qBAAqB,GAAG;AAAA,MACjC;AAEM,YAAA,UAAU,SAAS,GAAG;AAC5B,UAAI,SAAS;AACU,6BAAA,GAAG,IAAI,OAAO,YAAY,aAAa,QAAQ,EAAE,QAAQ,IAAI;AAClF,eAAO,qBAAqB,GAAG;AAAA,MACjC;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,OAAOA,aAA+B;AAC9B,YAAA,mBAAmBC,GAAAA,OAAO,CAAC,GAAG,QAAQC,uBAAa,KAAKF,WAAS,CAAC,EAAE,QAAQ;AAGlF,YAAM,MAAM,CAAA;AACZ,iBAAW,OAAO,OAAO,KAAK,gBAAgB,GAAG;AACxC,eAAA,eAAe,KAAK,KAAK;AAAA,UAC9B,YAAY;AAAA,UACZ,KAAK,MAAM;AACF,mBAAA,KAAK,IAAI,GAAkB;AAAA,UACpC;AAAA,QAAA,CACD;AAAA,MACH;AAEO,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAa,SAAyB;AACxC,eAAS,GAAG,IAAI;AAChB,aAAO,qBAAqB,GAAG;AACxB,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAIA,aAAmB,aAAgC;AACrD,iBAAW,eAAe,OAAO,KAAK,WAAW,GAAG;AAC5C,cAAA,UAAU,YAAY,WAAW;AACjC,cAAA,MAAMG,UAAAA,aAAa,aAAaH,WAAS;AAE3C,YAAAI,GAAA,IAAI,KAAK,QAAQ,GAAG;AACtB,gBAAM,IAAI,MAAM,WAAW,GAAG,+BAA+B;AAAA,QAC/D;AACA,iBAAS,GAAG,IAAI;AAAA,MAClB;AAEO,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,KAAkB,UAA2B;AAC5C,YAAA,iBAAiB,KAAK,IAAI,GAAG;AAEnC,UAAI,CAAC,gBAAgB;AACnB,cAAM,IAAI,MAAM,WAAW,GAAG,gBAAgB;AAAA,MAChD;AAEM,YAAA,aAAa,SAAS,cAAc;AAC1C,2BAAqB,GAAG,IAAI;AAErB,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;;"}
@@ -1,81 +0,0 @@
1
- import { pickBy, has } from "lodash/fp";
2
- import { hasNamespace, addNamespace } from "./namespace.mjs";
3
- const servicesRegistry = (strapi) => {
4
- const services = {};
5
- const instantiatedServices = {};
6
- return {
7
- /**
8
- * Returns this list of registered services uids
9
- */
10
- keys() {
11
- return Object.keys(services);
12
- },
13
- /**
14
- * Returns the instance of a service. Instantiate the service if not already done
15
- */
16
- get(uid) {
17
- if (instantiatedServices[uid]) {
18
- return instantiatedServices[uid];
19
- }
20
- const service = services[uid];
21
- if (service) {
22
- instantiatedServices[uid] = typeof service === "function" ? service({ strapi }) : service;
23
- return instantiatedServices[uid];
24
- }
25
- },
26
- /**
27
- * Returns a map with all the services in a namespace
28
- */
29
- getAll(namespace) {
30
- const filteredServices = pickBy((_, uid) => hasNamespace(uid, namespace))(services);
31
- const map = {};
32
- for (const uid of Object.keys(filteredServices)) {
33
- Object.defineProperty(map, uid, {
34
- enumerable: true,
35
- get: () => {
36
- return this.get(uid);
37
- }
38
- });
39
- }
40
- return map;
41
- },
42
- /**
43
- * Registers a service
44
- */
45
- set(uid, service) {
46
- services[uid] = service;
47
- delete instantiatedServices[uid];
48
- return this;
49
- },
50
- /**
51
- * Registers a map of services for a specific namespace
52
- */
53
- add(namespace, newServices) {
54
- for (const serviceName of Object.keys(newServices)) {
55
- const service = newServices[serviceName];
56
- const uid = addNamespace(serviceName, namespace);
57
- if (has(uid, services)) {
58
- throw new Error(`Service ${uid} has already been registered.`);
59
- }
60
- services[uid] = service;
61
- }
62
- return this;
63
- },
64
- /**
65
- * Wraps a service to extend it
66
- */
67
- extend(uid, extendFn) {
68
- const currentService = this.get(uid);
69
- if (!currentService) {
70
- throw new Error(`Service ${uid} doesn't exist`);
71
- }
72
- const newService = extendFn(currentService);
73
- instantiatedServices[uid] = newService;
74
- return this;
75
- }
76
- };
77
- };
78
- export {
79
- servicesRegistry as default
80
- };
81
- //# sourceMappingURL=services.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"services.mjs","sources":["../../src/registries/services.ts"],"sourcesContent":["import { pickBy, has } from 'lodash/fp';\nimport type { Core, UID } from '@strapi/types';\nimport { addNamespace, hasNamespace } from './namespace';\n\nexport type ServiceFactory = (params: { strapi: Core.Strapi }) => Core.Service | Core.Service;\nexport type ServiceFactoryMap = Record<string, ServiceFactory>;\nexport type ServiceMap = Record<string, Core.Service>;\nexport type ServiceExtendFn = (service: Core.Service) => Core.Service;\n\nconst servicesRegistry = (strapi: Core.Strapi) => {\n const services: ServiceFactoryMap = {};\n const instantiatedServices: ServiceMap = {};\n\n return {\n /**\n * Returns this list of registered services uids\n */\n keys() {\n return Object.keys(services);\n },\n\n /**\n * Returns the instance of a service. Instantiate the service if not already done\n */\n get(uid: UID.Service) {\n if (instantiatedServices[uid]) {\n return instantiatedServices[uid];\n }\n\n const service = services[uid];\n if (service) {\n instantiatedServices[uid] = typeof service === 'function' ? service({ strapi }) : service;\n return instantiatedServices[uid];\n }\n },\n\n /**\n * Returns a map with all the services in a namespace\n */\n getAll(namespace: string): ServiceMap {\n const filteredServices = pickBy((_, uid) => hasNamespace(uid, namespace))(services);\n\n // create lazy accessor to avoid instantiating the services;\n const map = {};\n for (const uid of Object.keys(filteredServices)) {\n Object.defineProperty(map, uid, {\n enumerable: true,\n get: () => {\n return this.get(uid as UID.Service);\n },\n });\n }\n\n return map;\n },\n\n /**\n * Registers a service\n */\n set(uid: string, service: ServiceFactory) {\n services[uid] = service;\n delete instantiatedServices[uid];\n return this;\n },\n\n /**\n * Registers a map of services for a specific namespace\n */\n add(namespace: string, newServices: ServiceFactoryMap) {\n for (const serviceName of Object.keys(newServices)) {\n const service = newServices[serviceName];\n const uid = addNamespace(serviceName, namespace);\n\n if (has(uid, services)) {\n throw new Error(`Service ${uid} has already been registered.`);\n }\n services[uid] = service;\n }\n\n return this;\n },\n\n /**\n * Wraps a service to extend it\n */\n extend(uid: UID.Service, extendFn: ServiceExtendFn) {\n const currentService = this.get(uid);\n\n if (!currentService) {\n throw new Error(`Service ${uid} doesn't exist`);\n }\n\n const newService = extendFn(currentService);\n instantiatedServices[uid] = newService;\n\n return this;\n },\n };\n};\n\nexport default servicesRegistry;\n"],"names":[],"mappings":";;AASM,MAAA,mBAAmB,CAAC,WAAwB;AAChD,QAAM,WAA8B,CAAA;AACpC,QAAM,uBAAmC,CAAA;AAElC,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AACE,aAAA,OAAO,KAAK,QAAQ;AAAA,IAC7B;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAkB;AAChB,UAAA,qBAAqB,GAAG,GAAG;AAC7B,eAAO,qBAAqB,GAAG;AAAA,MACjC;AAEM,YAAA,UAAU,SAAS,GAAG;AAC5B,UAAI,SAAS;AACU,6BAAA,GAAG,IAAI,OAAO,YAAY,aAAa,QAAQ,EAAE,QAAQ,IAAI;AAClF,eAAO,qBAAqB,GAAG;AAAA,MACjC;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,WAA+B;AAC9B,YAAA,mBAAmB,OAAO,CAAC,GAAG,QAAQ,aAAa,KAAK,SAAS,CAAC,EAAE,QAAQ;AAGlF,YAAM,MAAM,CAAA;AACZ,iBAAW,OAAO,OAAO,KAAK,gBAAgB,GAAG;AACxC,eAAA,eAAe,KAAK,KAAK;AAAA,UAC9B,YAAY;AAAA,UACZ,KAAK,MAAM;AACF,mBAAA,KAAK,IAAI,GAAkB;AAAA,UACpC;AAAA,QAAA,CACD;AAAA,MACH;AAEO,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAa,SAAyB;AACxC,eAAS,GAAG,IAAI;AAChB,aAAO,qBAAqB,GAAG;AACxB,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,WAAmB,aAAgC;AACrD,iBAAW,eAAe,OAAO,KAAK,WAAW,GAAG;AAC5C,cAAA,UAAU,YAAY,WAAW;AACjC,cAAA,MAAM,aAAa,aAAa,SAAS;AAE3C,YAAA,IAAI,KAAK,QAAQ,GAAG;AACtB,gBAAM,IAAI,MAAM,WAAW,GAAG,+BAA+B;AAAA,QAC/D;AACA,iBAAS,GAAG,IAAI;AAAA,MAClB;AAEO,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,KAAkB,UAA2B;AAC5C,YAAA,iBAAiB,KAAK,IAAI,GAAG;AAEnC,UAAI,CAAC,gBAAgB;AACnB,cAAM,IAAI,MAAM,WAAW,GAAG,gBAAgB;AAAA,MAChD;AAEM,YAAA,aAAa,SAAS,cAAc;AAC1C,2BAAqB,GAAG,IAAI;AAErB,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;"}
@@ -1,25 +0,0 @@
1
- "use strict";
2
- const _ = require("lodash");
3
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
4
- const ___default = /* @__PURE__ */ _interopDefault(_);
5
- const validatorsRegistry = () => {
6
- const validators = {};
7
- return {
8
- get(path) {
9
- return ___default.default.get(validators, path, []);
10
- },
11
- add(path, validator) {
12
- this.get(path).push(validator);
13
- return this;
14
- },
15
- set(path, value = []) {
16
- ___default.default.set(validators, path, value);
17
- return this;
18
- },
19
- has(path) {
20
- return ___default.default.has(validators, path);
21
- }
22
- };
23
- };
24
- module.exports = validatorsRegistry;
25
- //# sourceMappingURL=validators.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validators.js","sources":["../../src/registries/validators.ts"],"sourcesContent":["import _, { PropertyName } from 'lodash';\n\ntype Validator = unknown;\n\nconst validatorsRegistry = () => {\n const validators: Record<string, Validator[]> = {};\n\n return {\n get(path: PropertyName): Validator[] {\n return _.get(validators, path, []);\n },\n\n add(path: PropertyName, validator: Validator) {\n this.get(path).push(validator);\n return this;\n },\n\n set(path: PropertyName, value = []) {\n _.set(validators, path, value);\n return this;\n },\n\n has(path: PropertyName) {\n return _.has(validators, path);\n },\n };\n};\n\nexport default validatorsRegistry;\n"],"names":["_"],"mappings":";;;;AAIA,MAAM,qBAAqB,MAAM;AAC/B,QAAM,aAA0C,CAAA;AAEzC,SAAA;AAAA,IACL,IAAI,MAAiC;AACnC,aAAOA,WAAE,QAAA,IAAI,YAAY,MAAM,CAAE,CAAA;AAAA,IACnC;AAAA,IAEA,IAAI,MAAoB,WAAsB;AAC5C,WAAK,IAAI,IAAI,EAAE,KAAK,SAAS;AACtB,aAAA;AAAA,IACT;AAAA,IAEA,IAAI,MAAoB,QAAQ,IAAI;AAChCA,iBAAAA,QAAA,IAAI,YAAY,MAAM,KAAK;AACtB,aAAA;AAAA,IACT;AAAA,IAEA,IAAI,MAAoB;AACf,aAAAA,mBAAE,IAAI,YAAY,IAAI;AAAA,IAC/B;AAAA,EAAA;AAEJ;;"}
@@ -1,24 +0,0 @@
1
- import _ from "lodash";
2
- const validatorsRegistry = () => {
3
- const validators = {};
4
- return {
5
- get(path) {
6
- return _.get(validators, path, []);
7
- },
8
- add(path, validator) {
9
- this.get(path).push(validator);
10
- return this;
11
- },
12
- set(path, value = []) {
13
- _.set(validators, path, value);
14
- return this;
15
- },
16
- has(path) {
17
- return _.has(validators, path);
18
- }
19
- };
20
- };
21
- export {
22
- validatorsRegistry as default
23
- };
24
- //# sourceMappingURL=validators.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validators.mjs","sources":["../../src/registries/validators.ts"],"sourcesContent":["import _, { PropertyName } from 'lodash';\n\ntype Validator = unknown;\n\nconst validatorsRegistry = () => {\n const validators: Record<string, Validator[]> = {};\n\n return {\n get(path: PropertyName): Validator[] {\n return _.get(validators, path, []);\n },\n\n add(path: PropertyName, validator: Validator) {\n this.get(path).push(validator);\n return this;\n },\n\n set(path: PropertyName, value = []) {\n _.set(validators, path, value);\n return this;\n },\n\n has(path: PropertyName) {\n return _.has(validators, path);\n },\n };\n};\n\nexport default validatorsRegistry;\n"],"names":[],"mappings":";AAIA,MAAM,qBAAqB,MAAM;AAC/B,QAAM,aAA0C,CAAA;AAEzC,SAAA;AAAA,IACL,IAAI,MAAiC;AACnC,aAAO,EAAE,IAAI,YAAY,MAAM,CAAE,CAAA;AAAA,IACnC;AAAA,IAEA,IAAI,MAAoB,WAAsB;AAC5C,WAAK,IAAI,IAAI,EAAE,KAAK,SAAS;AACtB,aAAA;AAAA,IACT;AAAA,IAEA,IAAI,MAAoB,QAAQ,IAAI;AAChC,QAAA,IAAI,YAAY,MAAM,KAAK;AACtB,aAAA;AAAA,IACT;AAAA,IAEA,IAAI,MAAoB;AACf,aAAA,EAAE,IAAI,YAAY,IAAI;AAAA,IAC/B;AAAA,EAAA;AAEJ;"}
@@ -1,81 +0,0 @@
1
- "use strict";
2
- const assert = require("assert/strict");
3
- const fp = require("lodash/fp");
4
- const strapiUtils = require("@strapi/utils");
5
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
6
- const assert__default = /* @__PURE__ */ _interopDefault(assert);
7
- const INVALID_STRATEGY_MSG = "Invalid auth strategy. Expecting an object with properties {name: string, authenticate: function, verify: function}";
8
- const validStrategy = (strategy) => {
9
- assert__default.default(fp.has("authenticate", strategy), INVALID_STRATEGY_MSG);
10
- assert__default.default(typeof strategy.authenticate === "function", INVALID_STRATEGY_MSG);
11
- if (fp.has("verify", strategy)) {
12
- assert__default.default(typeof strategy.verify === "function", INVALID_STRATEGY_MSG);
13
- }
14
- };
15
- const createAuthentication = () => {
16
- const strategies = {};
17
- return {
18
- register(type, strategy) {
19
- validStrategy(strategy);
20
- if (!strategies[type]) {
21
- strategies[type] = [];
22
- }
23
- strategies[type].push(strategy);
24
- return this;
25
- },
26
- async authenticate(ctx, next) {
27
- const route = ctx.state.route;
28
- const config = route?.config?.auth;
29
- if (config === false) {
30
- return next();
31
- }
32
- const routeStrategies = route.info.type ? strategies[route.info.type] : [];
33
- const configStrategies = config?.strategies ?? routeStrategies ?? [];
34
- const strategiesToUse = configStrategies.reduce(
35
- (acc, strategy) => {
36
- if (typeof strategy === "string") {
37
- const routeStrategy = routeStrategies.find((rs) => rs.name === strategy);
38
- if (routeStrategy) {
39
- acc.push(routeStrategy);
40
- }
41
- } else if (typeof strategy === "object") {
42
- validStrategy(strategy);
43
- acc.push(strategy);
44
- }
45
- return acc;
46
- },
47
- []
48
- );
49
- for (const strategy of strategiesToUse) {
50
- const result = await strategy.authenticate(ctx);
51
- const { authenticated = false, credentials, ability = null, error = null } = result || {};
52
- if (error !== null) {
53
- return ctx.unauthorized(error);
54
- }
55
- if (authenticated) {
56
- ctx.state.isAuthenticated = true;
57
- ctx.state.auth = {
58
- strategy,
59
- credentials,
60
- ability
61
- };
62
- return next();
63
- }
64
- }
65
- return ctx.unauthorized("Missing or invalid credentials");
66
- },
67
- async verify(auth, config = {}) {
68
- if (config === false) {
69
- return;
70
- }
71
- if (!auth) {
72
- throw new strapiUtils.errors.UnauthorizedError();
73
- }
74
- if (typeof auth.strategy.verify === "function") {
75
- return auth.strategy.verify(auth, config);
76
- }
77
- }
78
- };
79
- };
80
- module.exports = createAuthentication;
81
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/services/auth/index.ts"],"sourcesContent":["import assert from 'assert/strict';\nimport { has } from 'lodash/fp';\n\nimport { errors } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport type { ParameterizedContext } from 'koa';\n\ninterface AuthenticationResponse {\n authenticated?: boolean;\n credentials?: unknown;\n ability?: unknown;\n error?: Error | null;\n}\n\ninterface AuthenticationInfo {\n strategy: Strategy;\n credentials: unknown;\n ability: unknown;\n}\n\ninterface Strategy {\n name: string;\n authenticate: (ctx: ParameterizedContext) => Promise<AuthenticationResponse>;\n verify?: (auth: AuthenticationInfo, config: Core.RouteConfig['auth']) => Promise<any>;\n}\n\ninterface Authentication {\n register: (type: string, strategy: Strategy) => Authentication;\n authenticate: Core.MiddlewareHandler;\n verify: (auth: AuthenticationInfo, config?: Core.RouteConfig['auth']) => Promise<any>;\n}\n\nconst INVALID_STRATEGY_MSG =\n 'Invalid auth strategy. Expecting an object with properties {name: string, authenticate: function, verify: function}';\n\nconst validStrategy = (strategy: Strategy) => {\n assert(has('authenticate', strategy), INVALID_STRATEGY_MSG);\n assert(typeof strategy.authenticate === 'function', INVALID_STRATEGY_MSG);\n\n if (has('verify', strategy)) {\n assert(typeof strategy.verify === 'function', INVALID_STRATEGY_MSG);\n }\n};\n\nconst createAuthentication = (): Authentication => {\n const strategies: Record<string, Strategy[]> = {};\n\n return {\n register(type, strategy) {\n validStrategy(strategy);\n\n if (!strategies[type]) {\n strategies[type] = [];\n }\n\n strategies[type].push(strategy);\n\n return this;\n },\n\n async authenticate(ctx, next) {\n const route: Core.Route = ctx.state.route;\n\n // use route strategy\n const config = route?.config?.auth;\n\n if (config === false) {\n return next();\n }\n\n const routeStrategies = route.info.type ? strategies[route.info.type] : [];\n const configStrategies = (config?.strategies ?? routeStrategies ?? []) as Array<\n string | Strategy\n >;\n\n const strategiesToUse: Strategy[] = configStrategies.reduce(\n (acc, strategy: string | Strategy) => {\n // Resolve by strategy name\n if (typeof strategy === 'string') {\n const routeStrategy = routeStrategies.find((rs) => rs.name === strategy);\n\n if (routeStrategy) {\n acc.push(routeStrategy);\n }\n }\n\n // Use the given strategy as is\n else if (typeof strategy === 'object') {\n validStrategy(strategy);\n\n acc.push(strategy);\n }\n\n return acc;\n },\n [] as Strategy[]\n );\n\n for (const strategy of strategiesToUse) {\n const result = await strategy.authenticate(ctx);\n\n const { authenticated = false, credentials, ability = null, error = null } = result || {};\n\n if (error !== null) {\n return ctx.unauthorized(error);\n }\n\n if (authenticated) {\n ctx.state.isAuthenticated = true;\n ctx.state.auth = {\n strategy,\n credentials,\n ability,\n };\n\n return next();\n }\n }\n\n return ctx.unauthorized('Missing or invalid credentials');\n },\n\n async verify(auth, config = {}) {\n if (config === false) {\n return;\n }\n\n if (!auth) {\n throw new errors.UnauthorizedError();\n }\n\n if (typeof auth.strategy.verify === 'function') {\n return auth.strategy.verify(auth, config);\n }\n },\n };\n};\n\nexport default createAuthentication;\n"],"names":["assert","has","errors"],"mappings":";;;;;;AAgCA,MAAM,uBACJ;AAEF,MAAM,gBAAgB,CAAC,aAAuB;AAC5CA,kBAAAA,QAAOC,GAAAA,IAAI,gBAAgB,QAAQ,GAAG,oBAAoB;AAC1DD,kBAAAA,QAAO,OAAO,SAAS,iBAAiB,YAAY,oBAAoB;AAEpE,MAAAC,GAAA,IAAI,UAAU,QAAQ,GAAG;AAC3BD,oBAAAA,QAAO,OAAO,SAAS,WAAW,YAAY,oBAAoB;AAAA,EACpE;AACF;AAEA,MAAM,uBAAuB,MAAsB;AACjD,QAAM,aAAyC,CAAA;AAExC,SAAA;AAAA,IACL,SAAS,MAAM,UAAU;AACvB,oBAAc,QAAQ;AAElB,UAAA,CAAC,WAAW,IAAI,GAAG;AACV,mBAAA,IAAI,IAAI;MACrB;AAEW,iBAAA,IAAI,EAAE,KAAK,QAAQ;AAEvB,aAAA;AAAA,IACT;AAAA,IAEA,MAAM,aAAa,KAAK,MAAM;AACtB,YAAA,QAAoB,IAAI,MAAM;AAG9B,YAAA,SAAS,OAAO,QAAQ;AAE9B,UAAI,WAAW,OAAO;AACpB,eAAO,KAAK;AAAA,MACd;AAEM,YAAA,kBAAkB,MAAM,KAAK,OAAO,WAAW,MAAM,KAAK,IAAI,IAAI;AACxE,YAAM,mBAAoB,QAAQ,cAAc,mBAAmB,CAAA;AAInE,YAAM,kBAA8B,iBAAiB;AAAA,QACnD,CAAC,KAAK,aAAgC;AAEhC,cAAA,OAAO,aAAa,UAAU;AAChC,kBAAM,gBAAgB,gBAAgB,KAAK,CAAC,OAAO,GAAG,SAAS,QAAQ;AAEvE,gBAAI,eAAe;AACjB,kBAAI,KAAK,aAAa;AAAA,YACxB;AAAA,UAAA,WAIO,OAAO,aAAa,UAAU;AACrC,0BAAc,QAAQ;AAEtB,gBAAI,KAAK,QAAQ;AAAA,UACnB;AAEO,iBAAA;AAAA,QACT;AAAA,QACA,CAAC;AAAA,MAAA;AAGH,iBAAW,YAAY,iBAAiB;AACtC,cAAM,SAAS,MAAM,SAAS,aAAa,GAAG;AAExC,cAAA,EAAE,gBAAgB,OAAO,aAAa,UAAU,MAAM,QAAQ,KAAA,IAAS,UAAU;AAEvF,YAAI,UAAU,MAAM;AACX,iBAAA,IAAI,aAAa,KAAK;AAAA,QAC/B;AAEA,YAAI,eAAe;AACjB,cAAI,MAAM,kBAAkB;AAC5B,cAAI,MAAM,OAAO;AAAA,YACf;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAGF,iBAAO,KAAK;AAAA,QACd;AAAA,MACF;AAEO,aAAA,IAAI,aAAa,gCAAgC;AAAA,IAC1D;AAAA,IAEA,MAAM,OAAO,MAAM,SAAS,IAAI;AAC9B,UAAI,WAAW,OAAO;AACpB;AAAA,MACF;AAEA,UAAI,CAAC,MAAM;AACH,cAAA,IAAIE,YAAAA,OAAO;MACnB;AAEA,UAAI,OAAO,KAAK,SAAS,WAAW,YAAY;AAC9C,eAAO,KAAK,SAAS,OAAO,MAAM,MAAM;AAAA,MAC1C;AAAA,IACF;AAAA,EAAA;AAEJ;;"}
@@ -1,80 +0,0 @@
1
- import assert from "assert/strict";
2
- import { has } from "lodash/fp";
3
- import { errors } from "@strapi/utils";
4
- const INVALID_STRATEGY_MSG = "Invalid auth strategy. Expecting an object with properties {name: string, authenticate: function, verify: function}";
5
- const validStrategy = (strategy) => {
6
- assert(has("authenticate", strategy), INVALID_STRATEGY_MSG);
7
- assert(typeof strategy.authenticate === "function", INVALID_STRATEGY_MSG);
8
- if (has("verify", strategy)) {
9
- assert(typeof strategy.verify === "function", INVALID_STRATEGY_MSG);
10
- }
11
- };
12
- const createAuthentication = () => {
13
- const strategies = {};
14
- return {
15
- register(type, strategy) {
16
- validStrategy(strategy);
17
- if (!strategies[type]) {
18
- strategies[type] = [];
19
- }
20
- strategies[type].push(strategy);
21
- return this;
22
- },
23
- async authenticate(ctx, next) {
24
- const route = ctx.state.route;
25
- const config = route?.config?.auth;
26
- if (config === false) {
27
- return next();
28
- }
29
- const routeStrategies = route.info.type ? strategies[route.info.type] : [];
30
- const configStrategies = config?.strategies ?? routeStrategies ?? [];
31
- const strategiesToUse = configStrategies.reduce(
32
- (acc, strategy) => {
33
- if (typeof strategy === "string") {
34
- const routeStrategy = routeStrategies.find((rs) => rs.name === strategy);
35
- if (routeStrategy) {
36
- acc.push(routeStrategy);
37
- }
38
- } else if (typeof strategy === "object") {
39
- validStrategy(strategy);
40
- acc.push(strategy);
41
- }
42
- return acc;
43
- },
44
- []
45
- );
46
- for (const strategy of strategiesToUse) {
47
- const result = await strategy.authenticate(ctx);
48
- const { authenticated = false, credentials, ability = null, error = null } = result || {};
49
- if (error !== null) {
50
- return ctx.unauthorized(error);
51
- }
52
- if (authenticated) {
53
- ctx.state.isAuthenticated = true;
54
- ctx.state.auth = {
55
- strategy,
56
- credentials,
57
- ability
58
- };
59
- return next();
60
- }
61
- }
62
- return ctx.unauthorized("Missing or invalid credentials");
63
- },
64
- async verify(auth, config = {}) {
65
- if (config === false) {
66
- return;
67
- }
68
- if (!auth) {
69
- throw new errors.UnauthorizedError();
70
- }
71
- if (typeof auth.strategy.verify === "function") {
72
- return auth.strategy.verify(auth, config);
73
- }
74
- }
75
- };
76
- };
77
- export {
78
- createAuthentication as default
79
- };
80
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/services/auth/index.ts"],"sourcesContent":["import assert from 'assert/strict';\nimport { has } from 'lodash/fp';\n\nimport { errors } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport type { ParameterizedContext } from 'koa';\n\ninterface AuthenticationResponse {\n authenticated?: boolean;\n credentials?: unknown;\n ability?: unknown;\n error?: Error | null;\n}\n\ninterface AuthenticationInfo {\n strategy: Strategy;\n credentials: unknown;\n ability: unknown;\n}\n\ninterface Strategy {\n name: string;\n authenticate: (ctx: ParameterizedContext) => Promise<AuthenticationResponse>;\n verify?: (auth: AuthenticationInfo, config: Core.RouteConfig['auth']) => Promise<any>;\n}\n\ninterface Authentication {\n register: (type: string, strategy: Strategy) => Authentication;\n authenticate: Core.MiddlewareHandler;\n verify: (auth: AuthenticationInfo, config?: Core.RouteConfig['auth']) => Promise<any>;\n}\n\nconst INVALID_STRATEGY_MSG =\n 'Invalid auth strategy. Expecting an object with properties {name: string, authenticate: function, verify: function}';\n\nconst validStrategy = (strategy: Strategy) => {\n assert(has('authenticate', strategy), INVALID_STRATEGY_MSG);\n assert(typeof strategy.authenticate === 'function', INVALID_STRATEGY_MSG);\n\n if (has('verify', strategy)) {\n assert(typeof strategy.verify === 'function', INVALID_STRATEGY_MSG);\n }\n};\n\nconst createAuthentication = (): Authentication => {\n const strategies: Record<string, Strategy[]> = {};\n\n return {\n register(type, strategy) {\n validStrategy(strategy);\n\n if (!strategies[type]) {\n strategies[type] = [];\n }\n\n strategies[type].push(strategy);\n\n return this;\n },\n\n async authenticate(ctx, next) {\n const route: Core.Route = ctx.state.route;\n\n // use route strategy\n const config = route?.config?.auth;\n\n if (config === false) {\n return next();\n }\n\n const routeStrategies = route.info.type ? strategies[route.info.type] : [];\n const configStrategies = (config?.strategies ?? routeStrategies ?? []) as Array<\n string | Strategy\n >;\n\n const strategiesToUse: Strategy[] = configStrategies.reduce(\n (acc, strategy: string | Strategy) => {\n // Resolve by strategy name\n if (typeof strategy === 'string') {\n const routeStrategy = routeStrategies.find((rs) => rs.name === strategy);\n\n if (routeStrategy) {\n acc.push(routeStrategy);\n }\n }\n\n // Use the given strategy as is\n else if (typeof strategy === 'object') {\n validStrategy(strategy);\n\n acc.push(strategy);\n }\n\n return acc;\n },\n [] as Strategy[]\n );\n\n for (const strategy of strategiesToUse) {\n const result = await strategy.authenticate(ctx);\n\n const { authenticated = false, credentials, ability = null, error = null } = result || {};\n\n if (error !== null) {\n return ctx.unauthorized(error);\n }\n\n if (authenticated) {\n ctx.state.isAuthenticated = true;\n ctx.state.auth = {\n strategy,\n credentials,\n ability,\n };\n\n return next();\n }\n }\n\n return ctx.unauthorized('Missing or invalid credentials');\n },\n\n async verify(auth, config = {}) {\n if (config === false) {\n return;\n }\n\n if (!auth) {\n throw new errors.UnauthorizedError();\n }\n\n if (typeof auth.strategy.verify === 'function') {\n return auth.strategy.verify(auth, config);\n }\n },\n };\n};\n\nexport default createAuthentication;\n"],"names":[],"mappings":";;;AAgCA,MAAM,uBACJ;AAEF,MAAM,gBAAgB,CAAC,aAAuB;AAC5C,SAAO,IAAI,gBAAgB,QAAQ,GAAG,oBAAoB;AAC1D,SAAO,OAAO,SAAS,iBAAiB,YAAY,oBAAoB;AAEpE,MAAA,IAAI,UAAU,QAAQ,GAAG;AAC3B,WAAO,OAAO,SAAS,WAAW,YAAY,oBAAoB;AAAA,EACpE;AACF;AAEA,MAAM,uBAAuB,MAAsB;AACjD,QAAM,aAAyC,CAAA;AAExC,SAAA;AAAA,IACL,SAAS,MAAM,UAAU;AACvB,oBAAc,QAAQ;AAElB,UAAA,CAAC,WAAW,IAAI,GAAG;AACV,mBAAA,IAAI,IAAI;MACrB;AAEW,iBAAA,IAAI,EAAE,KAAK,QAAQ;AAEvB,aAAA;AAAA,IACT;AAAA,IAEA,MAAM,aAAa,KAAK,MAAM;AACtB,YAAA,QAAoB,IAAI,MAAM;AAG9B,YAAA,SAAS,OAAO,QAAQ;AAE9B,UAAI,WAAW,OAAO;AACpB,eAAO,KAAK;AAAA,MACd;AAEM,YAAA,kBAAkB,MAAM,KAAK,OAAO,WAAW,MAAM,KAAK,IAAI,IAAI;AACxE,YAAM,mBAAoB,QAAQ,cAAc,mBAAmB,CAAA;AAInE,YAAM,kBAA8B,iBAAiB;AAAA,QACnD,CAAC,KAAK,aAAgC;AAEhC,cAAA,OAAO,aAAa,UAAU;AAChC,kBAAM,gBAAgB,gBAAgB,KAAK,CAAC,OAAO,GAAG,SAAS,QAAQ;AAEvE,gBAAI,eAAe;AACjB,kBAAI,KAAK,aAAa;AAAA,YACxB;AAAA,UAAA,WAIO,OAAO,aAAa,UAAU;AACrC,0BAAc,QAAQ;AAEtB,gBAAI,KAAK,QAAQ;AAAA,UACnB;AAEO,iBAAA;AAAA,QACT;AAAA,QACA,CAAC;AAAA,MAAA;AAGH,iBAAW,YAAY,iBAAiB;AACtC,cAAM,SAAS,MAAM,SAAS,aAAa,GAAG;AAExC,cAAA,EAAE,gBAAgB,OAAO,aAAa,UAAU,MAAM,QAAQ,KAAA,IAAS,UAAU;AAEvF,YAAI,UAAU,MAAM;AACX,iBAAA,IAAI,aAAa,KAAK;AAAA,QAC/B;AAEA,YAAI,eAAe;AACjB,cAAI,MAAM,kBAAkB;AAC5B,cAAI,MAAM,OAAO;AAAA,YACf;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAGF,iBAAO,KAAK;AAAA,QACd;AAAA,MACF;AAEO,aAAA,IAAI,aAAa,gCAAgC;AAAA,IAC1D;AAAA,IAEA,MAAM,OAAO,MAAM,SAAS,IAAI;AAC9B,UAAI,WAAW,OAAO;AACpB;AAAA,MACF;AAEA,UAAI,CAAC,MAAM;AACH,cAAA,IAAI,OAAO;MACnB;AAEA,UAAI,OAAO,KAAK,SAAS,WAAW,YAAY;AAC9C,eAAO,KAAK,SAAS,OAAO,MAAM,MAAM;AAAA,MAC1C;AAAA,IACF;AAAA,EAAA;AAEJ;"}
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const _ = require("lodash");
4
- const createConfigProvider = (initialConfig = {}, strapi) => {
5
- const state = {
6
- config: { ...initialConfig }
7
- // not deep clone because it would break some config
8
- };
9
- const transformPathString = (path) => {
10
- if (path.startsWith("plugin.")) {
11
- const newPath = path.replace("plugin.", "plugin::");
12
- (strapi?.log?.warn ?? console.warn)(
13
- `Using dot notation for model config namespaces is deprecated, for example "plugin::myplugin" should be used instead of "plugin.myplugin". Modifying requested path ${path} to ${newPath}`
14
- );
15
- return newPath;
16
- }
17
- return path;
18
- };
19
- const transformDeprecatedPaths = (path) => {
20
- if (_.isString(path)) {
21
- return transformPathString(path);
22
- }
23
- if (_.isArray(path)) {
24
- if (path.some((part) => !(_.isString(part) || _.isNumber(part)))) {
25
- return path;
26
- }
27
- return transformPathString(path.join("."));
28
- }
29
- return path;
30
- };
31
- return {
32
- ...state.config,
33
- // TODO: to remove
34
- get(path, defaultValue) {
35
- return _.get(state.config, transformDeprecatedPaths(path), defaultValue);
36
- },
37
- set(path, val) {
38
- _.set(state.config, transformDeprecatedPaths(path), val);
39
- return this;
40
- },
41
- has(path) {
42
- return _.has(state.config, transformDeprecatedPaths(path));
43
- }
44
- };
45
- };
46
- exports.createConfigProvider = createConfigProvider;
47
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sources":["../../src/services/config.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { get, set, has, isString, isNumber, isArray, type PropertyPath } from 'lodash';\n\ntype State = {\n config: Config;\n};\n\ntype Config = Record<string, unknown>;\n\nexport const createConfigProvider = (\n initialConfig: Record<string, unknown> = {},\n strapi?: Core.Strapi\n): Core.ConfigProvider => {\n const state: State = {\n config: { ...initialConfig }, // not deep clone because it would break some config\n };\n\n // Accessing model configs with dot (.) was deprecated between v4->v5, but to avoid a major breaking change\n // we will still support certain namespaces, currently only 'plugin.'\n const transformPathString = (path: string) => {\n if (path.startsWith('plugin.')) {\n const newPath = path.replace('plugin.', 'plugin::');\n\n // strapi logger may not be loaded yet, so fall back to console\n (strapi?.log?.warn ?? console.warn)(\n `Using dot notation for model config namespaces is deprecated, for example \"plugin::myplugin\" should be used instead of \"plugin.myplugin\". Modifying requested path ${path} to ${newPath}`\n );\n return newPath;\n }\n\n return path;\n };\n\n const transformDeprecatedPaths = (path: PropertyPath): PropertyPath => {\n if (isString(path)) {\n return transformPathString(path);\n }\n if (isArray(path)) {\n // if the path is not joinable, we won't apply our deprecation support\n if (path.some((part) => !(isString(part) || isNumber(part)))) {\n return path;\n }\n\n return transformPathString(path.join('.'));\n }\n\n return path;\n };\n\n return {\n ...state.config, // TODO: to remove\n get(path: PropertyPath, defaultValue?: unknown) {\n return get(state.config, transformDeprecatedPaths(path), defaultValue);\n },\n set(path: PropertyPath, val: unknown) {\n set(state.config, transformDeprecatedPaths(path), val);\n return this;\n },\n has(path: PropertyPath) {\n return has(state.config, transformDeprecatedPaths(path));\n },\n };\n};\n"],"names":["isString","isArray","isNumber","get","set","has"],"mappings":";;;AASO,MAAM,uBAAuB,CAClC,gBAAyC,IACzC,WACwB;AACxB,QAAM,QAAe;AAAA,IACnB,QAAQ,EAAE,GAAG,cAAc;AAAA;AAAA,EAAA;AAKvB,QAAA,sBAAsB,CAAC,SAAiB;AACxC,QAAA,KAAK,WAAW,SAAS,GAAG;AAC9B,YAAM,UAAU,KAAK,QAAQ,WAAW,UAAU;AAGjD,OAAA,QAAQ,KAAK,QAAQ,QAAQ;AAAA,QAC5B,sKAAsK,IAAI,OAAO,OAAO;AAAA,MAAA;AAEnL,aAAA;AAAA,IACT;AAEO,WAAA;AAAA,EAAA;AAGH,QAAA,2BAA2B,CAAC,SAAqC;AACjE,QAAAA,EAAAA,SAAS,IAAI,GAAG;AAClB,aAAO,oBAAoB,IAAI;AAAA,IACjC;AACI,QAAAC,EAAAA,QAAQ,IAAI,GAAG;AAEb,UAAA,KAAK,KAAK,CAAC,SAAS,EAAED,EAAAA,SAAS,IAAI,KAAKE,EAAA,SAAS,IAAI,EAAE,GAAG;AACrD,eAAA;AAAA,MACT;AAEA,aAAO,oBAAoB,KAAK,KAAK,GAAG,CAAC;AAAA,IAC3C;AAEO,WAAA;AAAA,EAAA;AAGF,SAAA;AAAA,IACL,GAAG,MAAM;AAAA;AAAA,IACT,IAAI,MAAoB,cAAwB;AAC9C,aAAOC,EAAAA,IAAI,MAAM,QAAQ,yBAAyB,IAAI,GAAG,YAAY;AAAA,IACvE;AAAA,IACA,IAAI,MAAoB,KAAc;AACpCC,QAAA,IAAI,MAAM,QAAQ,yBAAyB,IAAI,GAAG,GAAG;AAC9C,aAAA;AAAA,IACT;AAAA,IACA,IAAI,MAAoB;AACtB,aAAOC,EAAAA,IAAI,MAAM,QAAQ,yBAAyB,IAAI,CAAC;AAAA,IACzD;AAAA,EAAA;AAEJ;;"}
@@ -1,47 +0,0 @@
1
- import { get, set, has, isString, isArray, isNumber } from "lodash";
2
- const createConfigProvider = (initialConfig = {}, strapi) => {
3
- const state = {
4
- config: { ...initialConfig }
5
- // not deep clone because it would break some config
6
- };
7
- const transformPathString = (path) => {
8
- if (path.startsWith("plugin.")) {
9
- const newPath = path.replace("plugin.", "plugin::");
10
- (strapi?.log?.warn ?? console.warn)(
11
- `Using dot notation for model config namespaces is deprecated, for example "plugin::myplugin" should be used instead of "plugin.myplugin". Modifying requested path ${path} to ${newPath}`
12
- );
13
- return newPath;
14
- }
15
- return path;
16
- };
17
- const transformDeprecatedPaths = (path) => {
18
- if (isString(path)) {
19
- return transformPathString(path);
20
- }
21
- if (isArray(path)) {
22
- if (path.some((part) => !(isString(part) || isNumber(part)))) {
23
- return path;
24
- }
25
- return transformPathString(path.join("."));
26
- }
27
- return path;
28
- };
29
- return {
30
- ...state.config,
31
- // TODO: to remove
32
- get(path, defaultValue) {
33
- return get(state.config, transformDeprecatedPaths(path), defaultValue);
34
- },
35
- set(path, val) {
36
- set(state.config, transformDeprecatedPaths(path), val);
37
- return this;
38
- },
39
- has(path) {
40
- return has(state.config, transformDeprecatedPaths(path));
41
- }
42
- };
43
- };
44
- export {
45
- createConfigProvider
46
- };
47
- //# sourceMappingURL=config.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.mjs","sources":["../../src/services/config.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { get, set, has, isString, isNumber, isArray, type PropertyPath } from 'lodash';\n\ntype State = {\n config: Config;\n};\n\ntype Config = Record<string, unknown>;\n\nexport const createConfigProvider = (\n initialConfig: Record<string, unknown> = {},\n strapi?: Core.Strapi\n): Core.ConfigProvider => {\n const state: State = {\n config: { ...initialConfig }, // not deep clone because it would break some config\n };\n\n // Accessing model configs with dot (.) was deprecated between v4->v5, but to avoid a major breaking change\n // we will still support certain namespaces, currently only 'plugin.'\n const transformPathString = (path: string) => {\n if (path.startsWith('plugin.')) {\n const newPath = path.replace('plugin.', 'plugin::');\n\n // strapi logger may not be loaded yet, so fall back to console\n (strapi?.log?.warn ?? console.warn)(\n `Using dot notation for model config namespaces is deprecated, for example \"plugin::myplugin\" should be used instead of \"plugin.myplugin\". Modifying requested path ${path} to ${newPath}`\n );\n return newPath;\n }\n\n return path;\n };\n\n const transformDeprecatedPaths = (path: PropertyPath): PropertyPath => {\n if (isString(path)) {\n return transformPathString(path);\n }\n if (isArray(path)) {\n // if the path is not joinable, we won't apply our deprecation support\n if (path.some((part) => !(isString(part) || isNumber(part)))) {\n return path;\n }\n\n return transformPathString(path.join('.'));\n }\n\n return path;\n };\n\n return {\n ...state.config, // TODO: to remove\n get(path: PropertyPath, defaultValue?: unknown) {\n return get(state.config, transformDeprecatedPaths(path), defaultValue);\n },\n set(path: PropertyPath, val: unknown) {\n set(state.config, transformDeprecatedPaths(path), val);\n return this;\n },\n has(path: PropertyPath) {\n return has(state.config, transformDeprecatedPaths(path));\n },\n };\n};\n"],"names":[],"mappings":";AASO,MAAM,uBAAuB,CAClC,gBAAyC,IACzC,WACwB;AACxB,QAAM,QAAe;AAAA,IACnB,QAAQ,EAAE,GAAG,cAAc;AAAA;AAAA,EAAA;AAKvB,QAAA,sBAAsB,CAAC,SAAiB;AACxC,QAAA,KAAK,WAAW,SAAS,GAAG;AAC9B,YAAM,UAAU,KAAK,QAAQ,WAAW,UAAU;AAGjD,OAAA,QAAQ,KAAK,QAAQ,QAAQ;AAAA,QAC5B,sKAAsK,IAAI,OAAO,OAAO;AAAA,MAAA;AAEnL,aAAA;AAAA,IACT;AAEO,WAAA;AAAA,EAAA;AAGH,QAAA,2BAA2B,CAAC,SAAqC;AACjE,QAAA,SAAS,IAAI,GAAG;AAClB,aAAO,oBAAoB,IAAI;AAAA,IACjC;AACI,QAAA,QAAQ,IAAI,GAAG;AAEb,UAAA,KAAK,KAAK,CAAC,SAAS,EAAE,SAAS,IAAI,KAAK,SAAS,IAAI,EAAE,GAAG;AACrD,eAAA;AAAA,MACT;AAEA,aAAO,oBAAoB,KAAK,KAAK,GAAG,CAAC;AAAA,IAC3C;AAEO,WAAA;AAAA,EAAA;AAGF,SAAA;AAAA,IACL,GAAG,MAAM;AAAA;AAAA,IACT,IAAI,MAAoB,cAAwB;AAC9C,aAAO,IAAI,MAAM,QAAQ,yBAAyB,IAAI,GAAG,YAAY;AAAA,IACvE;AAAA,IACA,IAAI,MAAoB,KAAc;AACpC,UAAI,MAAM,QAAQ,yBAAyB,IAAI,GAAG,GAAG;AAC9C,aAAA;AAAA,IACT;AAAA,IACA,IAAI,MAAoB;AACtB,aAAO,IAAI,MAAM,QAAQ,yBAAyB,IAAI,CAAC;AAAA,IACzD;AAAA,EAAA;AAEJ;"}
@@ -1,85 +0,0 @@
1
- "use strict";
2
- const _ = require("lodash");
3
- const strapiUtils = require("@strapi/utils");
4
- const index = require("./permissions/index.js");
5
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
6
- const ___default = /* @__PURE__ */ _interopDefault(_);
7
- const transformRoutePrefixFor = (pluginName) => (route) => {
8
- const prefix = route.config && route.config.prefix;
9
- const path = prefix !== void 0 ? `${prefix}${route.path}` : `/${pluginName}${route.path}`;
10
- return {
11
- ...route,
12
- path
13
- };
14
- };
15
- const filterContentAPI = (route) => route.info.type === "content-api";
16
- const createContentAPI = (strapi) => {
17
- const getRoutesMap = async () => {
18
- const routesMap = {};
19
- ___default.default.forEach(strapi.apis, (api, apiName) => {
20
- const routes = ___default.default.flatMap(api.routes, (route) => {
21
- if ("routes" in route) {
22
- return route.routes;
23
- }
24
- return route;
25
- }).filter(filterContentAPI);
26
- if (routes.length === 0) {
27
- return;
28
- }
29
- const apiPrefix = strapi.config.get("api.rest.prefix");
30
- routesMap[`api::${apiName}`] = routes.map((route) => ({
31
- ...route,
32
- path: `${apiPrefix}${route.path}`
33
- }));
34
- });
35
- ___default.default.forEach(strapi.plugins, (plugin, pluginName) => {
36
- const transformPrefix = transformRoutePrefixFor(pluginName);
37
- if (Array.isArray(plugin.routes)) {
38
- return plugin.routes.map(transformPrefix).filter(filterContentAPI);
39
- }
40
- const routes = ___default.default.flatMap(plugin.routes, (route) => route.routes.map(transformPrefix)).filter(
41
- filterContentAPI
42
- );
43
- if (routes.length === 0) {
44
- return;
45
- }
46
- const apiPrefix = strapi.config.get("api.rest.prefix");
47
- routesMap[`plugin::${pluginName}`] = routes.map((route) => ({
48
- ...route,
49
- path: `${apiPrefix}${route.path}`
50
- }));
51
- });
52
- return routesMap;
53
- };
54
- const sanitizer = strapiUtils.sanitize.createAPISanitizers({
55
- getModel(uid) {
56
- return strapi.getModel(uid);
57
- },
58
- // NOTE: use lazy access to allow registration of sanitizers after the creation of the container
59
- get sanitizers() {
60
- return {
61
- input: strapi.sanitizers.get("content-api.input"),
62
- output: strapi.sanitizers.get("content-api.output")
63
- };
64
- }
65
- });
66
- const validator = strapiUtils.validate.createAPIValidators({
67
- getModel(uid) {
68
- return strapi.getModel(uid);
69
- },
70
- // NOTE: use lazy access to allow registration of validators after the creation of the container
71
- get validators() {
72
- return {
73
- input: strapi.validators.get("content-api.input")
74
- };
75
- }
76
- });
77
- return {
78
- permissions: index(strapi),
79
- getRoutesMap,
80
- sanitize: sanitizer,
81
- validate: validator
82
- };
83
- };
84
- module.exports = createContentAPI;
85
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/services/content-api/index.ts"],"sourcesContent":["import _ from 'lodash';\nimport { sanitize, validate } from '@strapi/utils';\n\nimport type { Core, UID } from '@strapi/types';\n\nimport instantiatePermissionsUtilities from './permissions';\n\nconst transformRoutePrefixFor = (pluginName: string) => (route: Core.Route) => {\n const prefix = route.config && route.config.prefix;\n const path = prefix !== undefined ? `${prefix}${route.path}` : `/${pluginName}${route.path}`;\n\n return {\n ...route,\n path,\n };\n};\n\nconst filterContentAPI = (route: Core.Route) => route.info.type === 'content-api';\n\n/**\n * Create a content API container that holds logic, tools and utils. (eg: permissions, ...)\n */\nconst createContentAPI = (strapi: Core.Strapi) => {\n const getRoutesMap = async () => {\n const routesMap: Record<string, Core.Route[]> = {};\n\n _.forEach(strapi.apis, (api, apiName) => {\n const routes = _.flatMap(api.routes, (route) => {\n if ('routes' in route) {\n return route.routes;\n }\n\n return route;\n }).filter(filterContentAPI);\n\n if (routes.length === 0) {\n return;\n }\n\n const apiPrefix = strapi.config.get('api.rest.prefix');\n routesMap[`api::${apiName}`] = routes.map((route) => ({\n ...route,\n path: `${apiPrefix}${route.path}`,\n }));\n });\n\n _.forEach(strapi.plugins, (plugin, pluginName) => {\n const transformPrefix = transformRoutePrefixFor(pluginName);\n\n if (Array.isArray(plugin.routes)) {\n return plugin.routes.map(transformPrefix).filter(filterContentAPI);\n }\n\n const routes = _.flatMap(plugin.routes, (route) => route.routes.map(transformPrefix)).filter(\n filterContentAPI\n );\n\n if (routes.length === 0) {\n return;\n }\n\n const apiPrefix = strapi.config.get('api.rest.prefix');\n routesMap[`plugin::${pluginName}`] = routes.map((route) => ({\n ...route,\n path: `${apiPrefix}${route.path}`,\n }));\n });\n\n return routesMap;\n };\n\n const sanitizer = sanitize.createAPISanitizers({\n getModel(uid: string) {\n return strapi.getModel(uid as UID.Schema);\n },\n // NOTE: use lazy access to allow registration of sanitizers after the creation of the container\n get sanitizers() {\n return {\n input: strapi.sanitizers.get('content-api.input'),\n output: strapi.sanitizers.get('content-api.output'),\n };\n },\n });\n\n const validator = validate.createAPIValidators({\n getModel(uid: string) {\n return strapi.getModel(uid as UID.Schema);\n },\n // NOTE: use lazy access to allow registration of validators after the creation of the container\n get validators() {\n return {\n input: strapi.validators.get('content-api.input'),\n };\n },\n });\n\n return {\n permissions: instantiatePermissionsUtilities(strapi),\n getRoutesMap,\n sanitize: sanitizer,\n validate: validator,\n };\n};\n\nexport default createContentAPI;\n"],"names":["_","sanitize","validate","instantiatePermissionsUtilities"],"mappings":";;;;;;AAOA,MAAM,0BAA0B,CAAC,eAAuB,CAAC,UAAsB;AAC7E,QAAM,SAAS,MAAM,UAAU,MAAM,OAAO;AAC5C,QAAM,OAAO,WAAW,SAAY,GAAG,MAAM,GAAG,MAAM,IAAI,KAAK,IAAI,UAAU,GAAG,MAAM,IAAI;AAEnF,SAAA;AAAA,IACL,GAAG;AAAA,IACH;AAAA,EAAA;AAEJ;AAEA,MAAM,mBAAmB,CAAC,UAAsB,MAAM,KAAK,SAAS;AAK9D,MAAA,mBAAmB,CAAC,WAAwB;AAChD,QAAM,eAAe,YAAY;AAC/B,UAAM,YAA0C,CAAA;AAEhDA,eAAA,QAAE,QAAQ,OAAO,MAAM,CAAC,KAAK,YAAY;AACvC,YAAM,SAASA,WAAAA,QAAE,QAAQ,IAAI,QAAQ,CAAC,UAAU;AAC9C,YAAI,YAAY,OAAO;AACrB,iBAAO,MAAM;AAAA,QACf;AAEO,eAAA;AAAA,MAAA,CACR,EAAE,OAAO,gBAAgB;AAEtB,UAAA,OAAO,WAAW,GAAG;AACvB;AAAA,MACF;AAEA,YAAM,YAAY,OAAO,OAAO,IAAI,iBAAiB;AACrD,gBAAU,QAAQ,OAAO,EAAE,IAAI,OAAO,IAAI,CAAC,WAAW;AAAA,QACpD,GAAG;AAAA,QACH,MAAM,GAAG,SAAS,GAAG,MAAM,IAAI;AAAA,MAC/B,EAAA;AAAA,IAAA,CACH;AAEDA,eAAA,QAAE,QAAQ,OAAO,SAAS,CAAC,QAAQ,eAAe;AAC1C,YAAA,kBAAkB,wBAAwB,UAAU;AAE1D,UAAI,MAAM,QAAQ,OAAO,MAAM,GAAG;AAChC,eAAO,OAAO,OAAO,IAAI,eAAe,EAAE,OAAO,gBAAgB;AAAA,MACnE;AAEA,YAAM,SAASA,WAAA,QAAE,QAAQ,OAAO,QAAQ,CAAC,UAAU,MAAM,OAAO,IAAI,eAAe,CAAC,EAAE;AAAA,QACpF;AAAA,MAAA;AAGE,UAAA,OAAO,WAAW,GAAG;AACvB;AAAA,MACF;AAEA,YAAM,YAAY,OAAO,OAAO,IAAI,iBAAiB;AACrD,gBAAU,WAAW,UAAU,EAAE,IAAI,OAAO,IAAI,CAAC,WAAW;AAAA,QAC1D,GAAG;AAAA,QACH,MAAM,GAAG,SAAS,GAAG,MAAM,IAAI;AAAA,MAC/B,EAAA;AAAA,IAAA,CACH;AAEM,WAAA;AAAA,EAAA;AAGH,QAAA,YAAYC,qBAAS,oBAAoB;AAAA,IAC7C,SAAS,KAAa;AACb,aAAA,OAAO,SAAS,GAAiB;AAAA,IAC1C;AAAA;AAAA,IAEA,IAAI,aAAa;AACR,aAAA;AAAA,QACL,OAAO,OAAO,WAAW,IAAI,mBAAmB;AAAA,QAChD,QAAQ,OAAO,WAAW,IAAI,oBAAoB;AAAA,MAAA;AAAA,IAEtD;AAAA,EAAA,CACD;AAEK,QAAA,YAAYC,qBAAS,oBAAoB;AAAA,IAC7C,SAAS,KAAa;AACb,aAAA,OAAO,SAAS,GAAiB;AAAA,IAC1C;AAAA;AAAA,IAEA,IAAI,aAAa;AACR,aAAA;AAAA,QACL,OAAO,OAAO,WAAW,IAAI,mBAAmB;AAAA,MAAA;AAAA,IAEpD;AAAA,EAAA,CACD;AAEM,SAAA;AAAA,IACL,aAAaC,MAAgC,MAAM;AAAA,IACnD;AAAA,IACA,UAAU;AAAA,IACV,UAAU;AAAA,EAAA;AAEd;;"}