@strapi/core 5.12.0 → 5.12.2

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 (662) hide show
  1. package/dist/Strapi.js +455 -0
  2. package/dist/Strapi.js.map +1 -0
  3. package/dist/Strapi.mjs +434 -0
  4. package/dist/Strapi.mjs.map +1 -0
  5. package/dist/compile.js +27 -0
  6. package/dist/compile.js.map +1 -0
  7. package/dist/compile.mjs +25 -0
  8. package/dist/compile.mjs.map +1 -0
  9. package/dist/configuration/config-loader.js +119 -0
  10. package/dist/configuration/config-loader.js.map +1 -0
  11. package/dist/configuration/config-loader.mjs +117 -0
  12. package/dist/configuration/config-loader.mjs.map +1 -0
  13. package/dist/configuration/get-dirs.js +33 -0
  14. package/dist/configuration/get-dirs.js.map +1 -0
  15. package/dist/configuration/get-dirs.mjs +31 -0
  16. package/dist/configuration/get-dirs.mjs.map +1 -0
  17. package/dist/configuration/index.js +91 -0
  18. package/dist/configuration/index.js.map +1 -0
  19. package/dist/configuration/index.mjs +89 -0
  20. package/dist/configuration/index.mjs.map +1 -0
  21. package/dist/configuration/urls.js +72 -0
  22. package/dist/configuration/urls.js.map +1 -0
  23. package/dist/configuration/urls.mjs +68 -0
  24. package/dist/configuration/urls.mjs.map +1 -0
  25. package/dist/container.js +34 -0
  26. package/dist/container.js.map +1 -0
  27. package/dist/container.mjs +32 -0
  28. package/dist/container.mjs.map +1 -0
  29. package/dist/core-api/controller/collection-type.js +85 -0
  30. package/dist/core-api/controller/collection-type.js.map +1 -0
  31. package/dist/core-api/controller/collection-type.mjs +83 -0
  32. package/dist/core-api/controller/collection-type.mjs.map +1 -0
  33. package/dist/core-api/controller/index.js +67 -0
  34. package/dist/core-api/controller/index.js.map +1 -0
  35. package/dist/core-api/controller/index.mjs +65 -0
  36. package/dist/core-api/controller/index.mjs.map +1 -0
  37. package/dist/core-api/controller/single-type.js +47 -0
  38. package/dist/core-api/controller/single-type.js.map +1 -0
  39. package/dist/core-api/controller/single-type.mjs +45 -0
  40. package/dist/core-api/controller/single-type.mjs.map +1 -0
  41. package/dist/core-api/controller/transform.js +85 -0
  42. package/dist/core-api/controller/transform.js.map +1 -0
  43. package/dist/core-api/controller/transform.mjs +83 -0
  44. package/dist/core-api/controller/transform.mjs.map +1 -0
  45. package/dist/core-api/routes/index.js +69 -0
  46. package/dist/core-api/routes/index.js.map +1 -0
  47. package/dist/core-api/routes/index.mjs +67 -0
  48. package/dist/core-api/routes/index.mjs.map +1 -0
  49. package/dist/core-api/service/collection-type.js +80 -0
  50. package/dist/core-api/service/collection-type.js.map +1 -0
  51. package/dist/core-api/service/collection-type.mjs +77 -0
  52. package/dist/core-api/service/collection-type.mjs.map +1 -0
  53. package/dist/core-api/service/core-service.js +13 -0
  54. package/dist/core-api/service/core-service.js.map +1 -0
  55. package/dist/core-api/service/core-service.mjs +11 -0
  56. package/dist/core-api/service/core-service.mjs.map +1 -0
  57. package/dist/core-api/service/index.js +16 -0
  58. package/dist/core-api/service/index.js.map +1 -0
  59. package/dist/core-api/service/index.mjs +14 -0
  60. package/dist/core-api/service/index.mjs.map +1 -0
  61. package/dist/core-api/service/pagination.js +78 -0
  62. package/dist/core-api/service/pagination.js.map +1 -0
  63. package/dist/core-api/service/pagination.mjs +73 -0
  64. package/dist/core-api/service/pagination.mjs.map +1 -0
  65. package/dist/core-api/service/single-type.js +50 -0
  66. package/dist/core-api/service/single-type.js.map +1 -0
  67. package/dist/core-api/service/single-type.mjs +47 -0
  68. package/dist/core-api/service/single-type.mjs.map +1 -0
  69. package/dist/domain/content-type/index.js +106 -0
  70. package/dist/domain/content-type/index.js.map +1 -0
  71. package/dist/domain/content-type/index.mjs +103 -0
  72. package/dist/domain/content-type/index.mjs.map +1 -0
  73. package/dist/domain/content-type/validator.js +92 -0
  74. package/dist/domain/content-type/validator.js.map +1 -0
  75. package/dist/domain/content-type/validator.mjs +90 -0
  76. package/dist/domain/content-type/validator.mjs.map +1 -0
  77. package/dist/domain/module/index.js +116 -0
  78. package/dist/domain/module/index.js.map +1 -0
  79. package/dist/domain/module/index.mjs +114 -0
  80. package/dist/domain/module/index.mjs.map +1 -0
  81. package/dist/domain/module/validation.js +30 -0
  82. package/dist/domain/module/validation.js.map +1 -0
  83. package/dist/domain/module/validation.mjs +28 -0
  84. package/dist/domain/module/validation.mjs.map +1 -0
  85. package/dist/ee/index.js +192 -0
  86. package/dist/ee/index.js.map +1 -0
  87. package/dist/ee/index.mjs +190 -0
  88. package/dist/ee/index.mjs.map +1 -0
  89. package/dist/ee/license.js +115 -0
  90. package/dist/ee/license.js.map +1 -0
  91. package/dist/ee/license.mjs +110 -0
  92. package/dist/ee/license.mjs.map +1 -0
  93. package/dist/factories.js +85 -0
  94. package/dist/factories.js.map +1 -0
  95. package/dist/factories.mjs +80 -0
  96. package/dist/factories.mjs.map +1 -0
  97. package/dist/index.js +19 -10105
  98. package/dist/index.js.map +1 -1
  99. package/dist/index.mjs +17 -10082
  100. package/dist/index.mjs.map +1 -1
  101. package/dist/loaders/admin.d.ts.map +1 -1
  102. package/dist/loaders/admin.js +27 -0
  103. package/dist/loaders/admin.js.map +1 -0
  104. package/dist/loaders/admin.mjs +25 -0
  105. package/dist/loaders/admin.mjs.map +1 -0
  106. package/dist/loaders/apis.js +160 -0
  107. package/dist/loaders/apis.js.map +1 -0
  108. package/dist/loaders/apis.mjs +158 -0
  109. package/dist/loaders/apis.mjs.map +1 -0
  110. package/dist/loaders/components.js +37 -0
  111. package/dist/loaders/components.js.map +1 -0
  112. package/dist/loaders/components.mjs +35 -0
  113. package/dist/loaders/components.mjs.map +1 -0
  114. package/dist/loaders/index.js +26 -0
  115. package/dist/loaders/index.js.map +1 -0
  116. package/dist/loaders/index.mjs +24 -0
  117. package/dist/loaders/index.mjs.map +1 -0
  118. package/dist/loaders/middlewares.js +35 -0
  119. package/dist/loaders/middlewares.js.map +1 -0
  120. package/dist/loaders/middlewares.mjs +33 -0
  121. package/dist/loaders/middlewares.mjs.map +1 -0
  122. package/dist/loaders/plugins/get-enabled-plugins.js +136 -0
  123. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -0
  124. package/dist/loaders/plugins/get-enabled-plugins.mjs +134 -0
  125. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -0
  126. package/dist/loaders/plugins/get-user-plugins-config.js +28 -0
  127. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -0
  128. package/dist/loaders/plugins/get-user-plugins-config.mjs +26 -0
  129. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -0
  130. package/dist/loaders/plugins/index.js +155 -0
  131. package/dist/loaders/plugins/index.js.map +1 -0
  132. package/dist/loaders/plugins/index.mjs +134 -0
  133. package/dist/loaders/plugins/index.mjs.map +1 -0
  134. package/dist/loaders/policies.js +29 -0
  135. package/dist/loaders/policies.js.map +1 -0
  136. package/dist/loaders/policies.mjs +27 -0
  137. package/dist/loaders/policies.mjs.map +1 -0
  138. package/dist/loaders/sanitizers.js +12 -0
  139. package/dist/loaders/sanitizers.js.map +1 -0
  140. package/dist/loaders/sanitizers.mjs +10 -0
  141. package/dist/loaders/sanitizers.mjs.map +1 -0
  142. package/dist/loaders/src-index.js +41 -0
  143. package/dist/loaders/src-index.js.map +1 -0
  144. package/dist/loaders/src-index.mjs +39 -0
  145. package/dist/loaders/src-index.mjs.map +1 -0
  146. package/dist/loaders/validators.js +11 -0
  147. package/dist/loaders/validators.js.map +1 -0
  148. package/dist/loaders/validators.mjs +9 -0
  149. package/dist/loaders/validators.mjs.map +1 -0
  150. package/dist/middlewares/body.js +69 -0
  151. package/dist/middlewares/body.js.map +1 -0
  152. package/dist/middlewares/body.mjs +67 -0
  153. package/dist/middlewares/body.mjs.map +1 -0
  154. package/dist/middlewares/compression.js +8 -0
  155. package/dist/middlewares/compression.js.map +1 -0
  156. package/dist/middlewares/compression.mjs +6 -0
  157. package/dist/middlewares/compression.mjs.map +1 -0
  158. package/dist/middlewares/cors.js +64 -0
  159. package/dist/middlewares/cors.js.map +1 -0
  160. package/dist/middlewares/cors.mjs +62 -0
  161. package/dist/middlewares/cors.mjs.map +1 -0
  162. package/dist/middlewares/errors.js +35 -0
  163. package/dist/middlewares/errors.js.map +1 -0
  164. package/dist/middlewares/errors.mjs +33 -0
  165. package/dist/middlewares/errors.mjs.map +1 -0
  166. package/dist/middlewares/favicon.js +32 -0
  167. package/dist/middlewares/favicon.js.map +1 -0
  168. package/dist/middlewares/favicon.mjs +30 -0
  169. package/dist/middlewares/favicon.mjs.map +1 -0
  170. package/dist/middlewares/index.js +36 -0
  171. package/dist/middlewares/index.js.map +1 -0
  172. package/dist/middlewares/index.mjs +34 -0
  173. package/dist/middlewares/index.mjs.map +1 -0
  174. package/dist/middlewares/ip.js +8 -0
  175. package/dist/middlewares/ip.js.map +1 -0
  176. package/dist/middlewares/ip.mjs +6 -0
  177. package/dist/middlewares/ip.mjs.map +1 -0
  178. package/dist/middlewares/logger.js +13 -0
  179. package/dist/middlewares/logger.js.map +1 -0
  180. package/dist/middlewares/logger.mjs +11 -0
  181. package/dist/middlewares/logger.mjs.map +1 -0
  182. package/dist/middlewares/powered-by.js +18 -0
  183. package/dist/middlewares/powered-by.js.map +1 -0
  184. package/dist/middlewares/powered-by.mjs +16 -0
  185. package/dist/middlewares/powered-by.mjs.map +1 -0
  186. package/dist/middlewares/public.js +38 -0
  187. package/dist/middlewares/public.js.map +1 -0
  188. package/dist/middlewares/public.mjs +36 -0
  189. package/dist/middlewares/public.mjs.map +1 -0
  190. package/dist/middlewares/query.js +43 -0
  191. package/dist/middlewares/query.js.map +1 -0
  192. package/dist/middlewares/query.mjs +41 -0
  193. package/dist/middlewares/query.mjs.map +1 -0
  194. package/dist/middlewares/response-time.js +13 -0
  195. package/dist/middlewares/response-time.js.map +1 -0
  196. package/dist/middlewares/response-time.mjs +11 -0
  197. package/dist/middlewares/response-time.mjs.map +1 -0
  198. package/dist/middlewares/responses.js +17 -0
  199. package/dist/middlewares/responses.js.map +1 -0
  200. package/dist/middlewares/responses.mjs +15 -0
  201. package/dist/middlewares/responses.mjs.map +1 -0
  202. package/dist/middlewares/security.js +116 -0
  203. package/dist/middlewares/security.js.map +1 -0
  204. package/dist/middlewares/security.mjs +114 -0
  205. package/dist/middlewares/security.mjs.map +1 -0
  206. package/dist/middlewares/session.js +31 -0
  207. package/dist/middlewares/session.js.map +1 -0
  208. package/dist/middlewares/session.mjs +29 -0
  209. package/dist/middlewares/session.mjs.map +1 -0
  210. package/dist/migrations/database/5.0.0-discard-drafts.js +168 -0
  211. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
  212. package/dist/migrations/database/5.0.0-discard-drafts.mjs +165 -0
  213. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
  214. package/dist/migrations/draft-publish.js +69 -0
  215. package/dist/migrations/draft-publish.js.map +1 -0
  216. package/dist/migrations/draft-publish.mjs +66 -0
  217. package/dist/migrations/draft-publish.mjs.map +1 -0
  218. package/dist/migrations/i18n.js +71 -0
  219. package/dist/migrations/i18n.js.map +1 -0
  220. package/dist/migrations/i18n.mjs +68 -0
  221. package/dist/migrations/i18n.mjs.map +1 -0
  222. package/dist/migrations/index.js +29 -0
  223. package/dist/migrations/index.js.map +1 -0
  224. package/dist/migrations/index.mjs +26 -0
  225. package/dist/migrations/index.mjs.map +1 -0
  226. package/dist/package.json.js +182 -0
  227. package/dist/package.json.js.map +1 -0
  228. package/dist/package.json.mjs +159 -0
  229. package/dist/package.json.mjs.map +1 -0
  230. package/dist/providers/admin.js +30 -0
  231. package/dist/providers/admin.js.map +1 -0
  232. package/dist/providers/admin.mjs +28 -0
  233. package/dist/providers/admin.mjs.map +1 -0
  234. package/dist/providers/coreStore.js +16 -0
  235. package/dist/providers/coreStore.js.map +1 -0
  236. package/dist/providers/coreStore.mjs +14 -0
  237. package/dist/providers/coreStore.mjs.map +1 -0
  238. package/dist/providers/cron.js +23 -0
  239. package/dist/providers/cron.js.map +1 -0
  240. package/dist/providers/cron.mjs +21 -0
  241. package/dist/providers/cron.mjs.map +1 -0
  242. package/dist/providers/index.js +20 -0
  243. package/dist/providers/index.js.map +1 -0
  244. package/dist/providers/index.mjs +18 -0
  245. package/dist/providers/index.mjs.map +1 -0
  246. package/dist/providers/provider.js +6 -0
  247. package/dist/providers/provider.js.map +1 -0
  248. package/dist/providers/provider.mjs +4 -0
  249. package/dist/providers/provider.mjs.map +1 -0
  250. package/dist/providers/registries.js +40 -0
  251. package/dist/providers/registries.js.map +1 -0
  252. package/dist/providers/registries.mjs +38 -0
  253. package/dist/providers/registries.mjs.map +1 -0
  254. package/dist/providers/telemetry.js +22 -0
  255. package/dist/providers/telemetry.js.map +1 -0
  256. package/dist/providers/telemetry.mjs +20 -0
  257. package/dist/providers/telemetry.mjs.map +1 -0
  258. package/dist/providers/webhooks.js +32 -0
  259. package/dist/providers/webhooks.js.map +1 -0
  260. package/dist/providers/webhooks.mjs +30 -0
  261. package/dist/providers/webhooks.mjs.map +1 -0
  262. package/dist/registries/apis.js +26 -0
  263. package/dist/registries/apis.js.map +1 -0
  264. package/dist/registries/apis.mjs +24 -0
  265. package/dist/registries/apis.mjs.map +1 -0
  266. package/dist/registries/components.js +43 -0
  267. package/dist/registries/components.js.map +1 -0
  268. package/dist/registries/components.mjs +41 -0
  269. package/dist/registries/components.mjs.map +1 -0
  270. package/dist/registries/content-types.js +65 -0
  271. package/dist/registries/content-types.js.map +1 -0
  272. package/dist/registries/content-types.mjs +63 -0
  273. package/dist/registries/content-types.mjs.map +1 -0
  274. package/dist/registries/controllers.js +79 -0
  275. package/dist/registries/controllers.js.map +1 -0
  276. package/dist/registries/controllers.mjs +77 -0
  277. package/dist/registries/controllers.mjs.map +1 -0
  278. package/dist/registries/custom-fields.js +81 -0
  279. package/dist/registries/custom-fields.js.map +1 -0
  280. package/dist/registries/custom-fields.mjs +79 -0
  281. package/dist/registries/custom-fields.mjs.map +1 -0
  282. package/dist/registries/hooks.js +55 -0
  283. package/dist/registries/hooks.js.map +1 -0
  284. package/dist/registries/hooks.mjs +53 -0
  285. package/dist/registries/hooks.mjs.map +1 -0
  286. package/dist/registries/middlewares.js +58 -0
  287. package/dist/registries/middlewares.js.map +1 -0
  288. package/dist/registries/middlewares.mjs +56 -0
  289. package/dist/registries/middlewares.mjs.map +1 -0
  290. package/dist/registries/models.js +17 -0
  291. package/dist/registries/models.js.map +1 -0
  292. package/dist/registries/models.mjs +15 -0
  293. package/dist/registries/models.mjs.map +1 -0
  294. package/dist/registries/modules.js +42 -0
  295. package/dist/registries/modules.js.map +1 -0
  296. package/dist/registries/modules.mjs +40 -0
  297. package/dist/registries/modules.mjs.map +1 -0
  298. package/dist/registries/namespace.js +28 -0
  299. package/dist/registries/namespace.js.map +1 -0
  300. package/dist/registries/namespace.mjs +24 -0
  301. package/dist/registries/namespace.mjs.map +1 -0
  302. package/dist/registries/plugins.js +26 -0
  303. package/dist/registries/plugins.js.map +1 -0
  304. package/dist/registries/plugins.mjs +24 -0
  305. package/dist/registries/plugins.mjs.map +1 -0
  306. package/dist/registries/policies.js +115 -0
  307. package/dist/registries/policies.js.map +1 -0
  308. package/dist/registries/policies.mjs +113 -0
  309. package/dist/registries/policies.mjs.map +1 -0
  310. package/dist/registries/sanitizers.js +26 -0
  311. package/dist/registries/sanitizers.js.map +1 -0
  312. package/dist/registries/sanitizers.mjs +24 -0
  313. package/dist/registries/sanitizers.mjs.map +1 -0
  314. package/dist/registries/services.js +80 -0
  315. package/dist/registries/services.js.map +1 -0
  316. package/dist/registries/services.mjs +78 -0
  317. package/dist/registries/services.mjs.map +1 -0
  318. package/dist/registries/validators.js +26 -0
  319. package/dist/registries/validators.js.map +1 -0
  320. package/dist/registries/validators.mjs +24 -0
  321. package/dist/registries/validators.mjs.map +1 -0
  322. package/dist/services/auth/index.js +81 -0
  323. package/dist/services/auth/index.js.map +1 -0
  324. package/dist/services/auth/index.mjs +79 -0
  325. package/dist/services/auth/index.mjs.map +1 -0
  326. package/dist/services/config.js +51 -0
  327. package/dist/services/config.js.map +1 -0
  328. package/dist/services/config.mjs +49 -0
  329. package/dist/services/config.mjs.map +1 -0
  330. package/dist/services/content-api/index.js +86 -0
  331. package/dist/services/content-api/index.js.map +1 -0
  332. package/dist/services/content-api/index.mjs +84 -0
  333. package/dist/services/content-api/index.mjs.map +1 -0
  334. package/dist/services/content-api/permissions/engine.js +10 -0
  335. package/dist/services/content-api/permissions/engine.js.map +1 -0
  336. package/dist/services/content-api/permissions/engine.mjs +8 -0
  337. package/dist/services/content-api/permissions/engine.mjs.map +1 -0
  338. package/dist/services/content-api/permissions/index.js +107 -0
  339. package/dist/services/content-api/permissions/index.js.map +1 -0
  340. package/dist/services/content-api/permissions/index.mjs +105 -0
  341. package/dist/services/content-api/permissions/index.mjs.map +1 -0
  342. package/dist/services/content-api/permissions/providers/action.js +19 -0
  343. package/dist/services/content-api/permissions/providers/action.js.map +1 -0
  344. package/dist/services/content-api/permissions/providers/action.mjs +17 -0
  345. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -0
  346. package/dist/services/content-api/permissions/providers/condition.js +19 -0
  347. package/dist/services/content-api/permissions/providers/condition.js.map +1 -0
  348. package/dist/services/content-api/permissions/providers/condition.mjs +17 -0
  349. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -0
  350. package/dist/services/core-store.js +127 -0
  351. package/dist/services/core-store.js.map +1 -0
  352. package/dist/services/core-store.mjs +124 -0
  353. package/dist/services/core-store.mjs.map +1 -0
  354. package/dist/services/cron.js +77 -0
  355. package/dist/services/cron.js.map +1 -0
  356. package/dist/services/cron.mjs +75 -0
  357. package/dist/services/cron.mjs.map +1 -0
  358. package/dist/services/custom-fields.js +12 -0
  359. package/dist/services/custom-fields.js.map +1 -0
  360. package/dist/services/custom-fields.mjs +10 -0
  361. package/dist/services/custom-fields.mjs.map +1 -0
  362. package/dist/services/document-service/attributes/index.js +27 -0
  363. package/dist/services/document-service/attributes/index.js.map +1 -0
  364. package/dist/services/document-service/attributes/index.mjs +25 -0
  365. package/dist/services/document-service/attributes/index.mjs.map +1 -0
  366. package/dist/services/document-service/attributes/transforms.js +21 -0
  367. package/dist/services/document-service/attributes/transforms.js.map +1 -0
  368. package/dist/services/document-service/attributes/transforms.mjs +19 -0
  369. package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
  370. package/dist/services/document-service/common.js +8 -0
  371. package/dist/services/document-service/common.js.map +1 -0
  372. package/dist/services/document-service/common.mjs +6 -0
  373. package/dist/services/document-service/common.mjs.map +1 -0
  374. package/dist/services/document-service/components.js +286 -0
  375. package/dist/services/document-service/components.js.map +1 -0
  376. package/dist/services/document-service/components.mjs +278 -0
  377. package/dist/services/document-service/components.mjs.map +1 -0
  378. package/dist/services/document-service/draft-and-publish.js +109 -0
  379. package/dist/services/document-service/draft-and-publish.js.map +1 -0
  380. package/dist/services/document-service/draft-and-publish.mjs +102 -0
  381. package/dist/services/document-service/draft-and-publish.mjs.map +1 -0
  382. package/dist/services/document-service/entries.js +113 -0
  383. package/dist/services/document-service/entries.js.map +1 -0
  384. package/dist/services/document-service/entries.mjs +111 -0
  385. package/dist/services/document-service/entries.mjs.map +1 -0
  386. package/dist/services/document-service/events.js +59 -0
  387. package/dist/services/document-service/events.js.map +1 -0
  388. package/dist/services/document-service/events.mjs +57 -0
  389. package/dist/services/document-service/events.mjs.map +1 -0
  390. package/dist/services/document-service/index.js +56 -0
  391. package/dist/services/document-service/index.js.map +1 -0
  392. package/dist/services/document-service/index.mjs +54 -0
  393. package/dist/services/document-service/index.mjs.map +1 -0
  394. package/dist/services/document-service/internationalization.js +79 -0
  395. package/dist/services/document-service/internationalization.js.map +1 -0
  396. package/dist/services/document-service/internationalization.mjs +74 -0
  397. package/dist/services/document-service/internationalization.mjs.map +1 -0
  398. package/dist/services/document-service/middlewares/errors.js +29 -0
  399. package/dist/services/document-service/middlewares/errors.js.map +1 -0
  400. package/dist/services/document-service/middlewares/errors.mjs +27 -0
  401. package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
  402. package/dist/services/document-service/middlewares/middleware-manager.js +51 -0
  403. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
  404. package/dist/services/document-service/middlewares/middleware-manager.mjs +49 -0
  405. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
  406. package/dist/services/document-service/params.js +14 -0
  407. package/dist/services/document-service/params.js.map +1 -0
  408. package/dist/services/document-service/params.mjs +12 -0
  409. package/dist/services/document-service/params.mjs.map +1 -0
  410. package/dist/services/document-service/repository.js +364 -0
  411. package/dist/services/document-service/repository.js.map +1 -0
  412. package/dist/services/document-service/repository.mjs +362 -0
  413. package/dist/services/document-service/repository.mjs.map +1 -0
  414. package/dist/services/document-service/transform/data.js +25 -0
  415. package/dist/services/document-service/transform/data.js.map +1 -0
  416. package/dist/services/document-service/transform/data.mjs +23 -0
  417. package/dist/services/document-service/transform/data.mjs.map +1 -0
  418. package/dist/services/document-service/transform/fields.js +33 -0
  419. package/dist/services/document-service/transform/fields.js.map +1 -0
  420. package/dist/services/document-service/transform/fields.mjs +31 -0
  421. package/dist/services/document-service/transform/fields.mjs.map +1 -0
  422. package/dist/services/document-service/transform/id-map.js +125 -0
  423. package/dist/services/document-service/transform/id-map.js.map +1 -0
  424. package/dist/services/document-service/transform/id-map.mjs +123 -0
  425. package/dist/services/document-service/transform/id-map.mjs.map +1 -0
  426. package/dist/services/document-service/transform/id-transform.js +41 -0
  427. package/dist/services/document-service/transform/id-transform.js.map +1 -0
  428. package/dist/services/document-service/transform/id-transform.mjs +39 -0
  429. package/dist/services/document-service/transform/id-transform.mjs.map +1 -0
  430. package/dist/services/document-service/transform/populate.js +26 -0
  431. package/dist/services/document-service/transform/populate.js.map +1 -0
  432. package/dist/services/document-service/transform/populate.mjs +24 -0
  433. package/dist/services/document-service/transform/populate.mjs.map +1 -0
  434. package/dist/services/document-service/transform/query.js +14 -0
  435. package/dist/services/document-service/transform/query.js.map +1 -0
  436. package/dist/services/document-service/transform/query.mjs +12 -0
  437. package/dist/services/document-service/transform/query.mjs.map +1 -0
  438. package/dist/services/document-service/transform/relations/extract/data-ids.js +80 -0
  439. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -0
  440. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +78 -0
  441. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -0
  442. package/dist/services/document-service/transform/relations/transform/data-ids.js +110 -0
  443. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -0
  444. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +108 -0
  445. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -0
  446. package/dist/services/document-service/transform/relations/transform/default-locale.js +50 -0
  447. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
  448. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +48 -0
  449. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
  450. package/dist/services/document-service/transform/relations/utils/dp.js +56 -0
  451. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -0
  452. package/dist/services/document-service/transform/relations/utils/dp.mjs +54 -0
  453. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -0
  454. package/dist/services/document-service/transform/relations/utils/i18n.js +27 -0
  455. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -0
  456. package/dist/services/document-service/transform/relations/utils/i18n.mjs +23 -0
  457. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -0
  458. package/dist/services/document-service/transform/relations/utils/map-relation.js +130 -0
  459. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
  460. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +127 -0
  461. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
  462. package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
  463. package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
  464. package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
  465. package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
  466. package/dist/services/document-service/utils/populate.js +71 -0
  467. package/dist/services/document-service/utils/populate.js.map +1 -0
  468. package/dist/services/document-service/utils/populate.mjs +69 -0
  469. package/dist/services/document-service/utils/populate.mjs.map +1 -0
  470. package/dist/services/document-service/utils/unidirectional-relations.js +116 -0
  471. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
  472. package/dist/services/document-service/utils/unidirectional-relations.mjs +113 -0
  473. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
  474. package/dist/services/entity-service/index.js +238 -0
  475. package/dist/services/entity-service/index.js.map +1 -0
  476. package/dist/services/entity-service/index.mjs +236 -0
  477. package/dist/services/entity-service/index.mjs.map +1 -0
  478. package/dist/services/entity-validator/blocks-validator.js +160 -0
  479. package/dist/services/entity-validator/blocks-validator.js.map +1 -0
  480. package/dist/services/entity-validator/blocks-validator.mjs +158 -0
  481. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -0
  482. package/dist/services/entity-validator/index.js +384 -0
  483. package/dist/services/entity-validator/index.js.map +1 -0
  484. package/dist/services/entity-validator/index.mjs +382 -0
  485. package/dist/services/entity-validator/index.mjs.map +1 -0
  486. package/dist/services/entity-validator/validators.js +299 -0
  487. package/dist/services/entity-validator/validators.js.map +1 -0
  488. package/dist/services/entity-validator/validators.mjs +290 -0
  489. package/dist/services/entity-validator/validators.mjs.map +1 -0
  490. package/dist/services/errors.js +76 -0
  491. package/dist/services/errors.js.map +1 -0
  492. package/dist/services/errors.mjs +72 -0
  493. package/dist/services/errors.mjs.map +1 -0
  494. package/dist/services/event-hub.js +85 -0
  495. package/dist/services/event-hub.js.map +1 -0
  496. package/dist/services/event-hub.mjs +83 -0
  497. package/dist/services/event-hub.mjs.map +1 -0
  498. package/dist/services/features.js +22 -0
  499. package/dist/services/features.js.map +1 -0
  500. package/dist/services/features.mjs +20 -0
  501. package/dist/services/features.mjs.map +1 -0
  502. package/dist/services/fs.js +52 -0
  503. package/dist/services/fs.js.map +1 -0
  504. package/dist/services/fs.mjs +50 -0
  505. package/dist/services/fs.mjs.map +1 -0
  506. package/dist/services/metrics/admin-user-hash.js +16 -0
  507. package/dist/services/metrics/admin-user-hash.js.map +1 -0
  508. package/dist/services/metrics/admin-user-hash.mjs +14 -0
  509. package/dist/services/metrics/admin-user-hash.mjs.map +1 -0
  510. package/dist/services/metrics/index.js +51 -0
  511. package/dist/services/metrics/index.js.map +1 -0
  512. package/dist/services/metrics/index.mjs +49 -0
  513. package/dist/services/metrics/index.mjs.map +1 -0
  514. package/dist/services/metrics/is-truthy.js +16 -0
  515. package/dist/services/metrics/is-truthy.js.map +1 -0
  516. package/dist/services/metrics/is-truthy.mjs +14 -0
  517. package/dist/services/metrics/is-truthy.mjs.map +1 -0
  518. package/dist/services/metrics/middleware.js +40 -0
  519. package/dist/services/metrics/middleware.js.map +1 -0
  520. package/dist/services/metrics/middleware.mjs +38 -0
  521. package/dist/services/metrics/middleware.mjs.map +1 -0
  522. package/dist/services/metrics/rate-limiter.js +26 -0
  523. package/dist/services/metrics/rate-limiter.js.map +1 -0
  524. package/dist/services/metrics/rate-limiter.mjs +24 -0
  525. package/dist/services/metrics/rate-limiter.mjs.map +1 -0
  526. package/dist/services/metrics/sender.js +85 -0
  527. package/dist/services/metrics/sender.js.map +1 -0
  528. package/dist/services/metrics/sender.mjs +83 -0
  529. package/dist/services/metrics/sender.mjs.map +1 -0
  530. package/dist/services/query-params.js +15 -0
  531. package/dist/services/query-params.js.map +1 -0
  532. package/dist/services/query-params.mjs +13 -0
  533. package/dist/services/query-params.mjs.map +1 -0
  534. package/dist/services/reloader.js +39 -0
  535. package/dist/services/reloader.js.map +1 -0
  536. package/dist/services/reloader.mjs +37 -0
  537. package/dist/services/reloader.mjs.map +1 -0
  538. package/dist/services/request-context.js +16 -0
  539. package/dist/services/request-context.js.map +1 -0
  540. package/dist/services/request-context.mjs +14 -0
  541. package/dist/services/request-context.mjs.map +1 -0
  542. package/dist/services/server/admin-api.js +14 -0
  543. package/dist/services/server/admin-api.js.map +1 -0
  544. package/dist/services/server/admin-api.mjs +12 -0
  545. package/dist/services/server/admin-api.mjs.map +1 -0
  546. package/dist/services/server/api.js +36 -0
  547. package/dist/services/server/api.js.map +1 -0
  548. package/dist/services/server/api.mjs +34 -0
  549. package/dist/services/server/api.mjs.map +1 -0
  550. package/dist/services/server/compose-endpoint.js +128 -0
  551. package/dist/services/server/compose-endpoint.js.map +1 -0
  552. package/dist/services/server/compose-endpoint.mjs +126 -0
  553. package/dist/services/server/compose-endpoint.mjs.map +1 -0
  554. package/dist/services/server/content-api.js +14 -0
  555. package/dist/services/server/content-api.js.map +1 -0
  556. package/dist/services/server/content-api.mjs +12 -0
  557. package/dist/services/server/content-api.mjs.map +1 -0
  558. package/dist/services/server/http-server.js +54 -0
  559. package/dist/services/server/http-server.js.map +1 -0
  560. package/dist/services/server/http-server.mjs +52 -0
  561. package/dist/services/server/http-server.mjs.map +1 -0
  562. package/dist/services/server/index.js +90 -0
  563. package/dist/services/server/index.js.map +1 -0
  564. package/dist/services/server/index.mjs +88 -0
  565. package/dist/services/server/index.mjs.map +1 -0
  566. package/dist/services/server/koa.js +54 -0
  567. package/dist/services/server/koa.js.map +1 -0
  568. package/dist/services/server/koa.mjs +52 -0
  569. package/dist/services/server/koa.mjs.map +1 -0
  570. package/dist/services/server/middleware.js +96 -0
  571. package/dist/services/server/middleware.js.map +1 -0
  572. package/dist/services/server/middleware.mjs +93 -0
  573. package/dist/services/server/middleware.mjs.map +1 -0
  574. package/dist/services/server/policy.js +27 -0
  575. package/dist/services/server/policy.js.map +1 -0
  576. package/dist/services/server/policy.mjs +25 -0
  577. package/dist/services/server/policy.mjs.map +1 -0
  578. package/dist/services/server/register-middlewares.js +79 -0
  579. package/dist/services/server/register-middlewares.js.map +1 -0
  580. package/dist/services/server/register-middlewares.mjs +77 -0
  581. package/dist/services/server/register-middlewares.mjs.map +1 -0
  582. package/dist/services/server/register-routes.js +99 -0
  583. package/dist/services/server/register-routes.js.map +1 -0
  584. package/dist/services/server/register-routes.mjs +97 -0
  585. package/dist/services/server/register-routes.mjs.map +1 -0
  586. package/dist/services/server/routing.js +104 -0
  587. package/dist/services/server/routing.js.map +1 -0
  588. package/dist/services/server/routing.mjs +101 -0
  589. package/dist/services/server/routing.mjs.map +1 -0
  590. package/dist/services/utils/dynamic-zones.js +16 -0
  591. package/dist/services/utils/dynamic-zones.js.map +1 -0
  592. package/dist/services/utils/dynamic-zones.mjs +14 -0
  593. package/dist/services/utils/dynamic-zones.mjs.map +1 -0
  594. package/dist/services/webhook-runner.js +135 -0
  595. package/dist/services/webhook-runner.js.map +1 -0
  596. package/dist/services/webhook-runner.mjs +133 -0
  597. package/dist/services/webhook-runner.mjs.map +1 -0
  598. package/dist/services/webhook-store.js +143 -0
  599. package/dist/services/webhook-store.js.map +1 -0
  600. package/dist/services/webhook-store.mjs +140 -0
  601. package/dist/services/webhook-store.mjs.map +1 -0
  602. package/dist/services/worker-queue.js +51 -0
  603. package/dist/services/worker-queue.js.map +1 -0
  604. package/dist/services/worker-queue.mjs +49 -0
  605. package/dist/services/worker-queue.mjs.map +1 -0
  606. package/dist/utils/convert-custom-field-type.js +21 -0
  607. package/dist/utils/convert-custom-field-type.js.map +1 -0
  608. package/dist/utils/convert-custom-field-type.mjs +19 -0
  609. package/dist/utils/convert-custom-field-type.mjs.map +1 -0
  610. package/dist/utils/cron.js +72 -0
  611. package/dist/utils/cron.js.map +1 -0
  612. package/dist/utils/cron.mjs +70 -0
  613. package/dist/utils/cron.mjs.map +1 -0
  614. package/dist/utils/fetch.js +27 -0
  615. package/dist/utils/fetch.js.map +1 -0
  616. package/dist/utils/fetch.mjs +25 -0
  617. package/dist/utils/fetch.mjs.map +1 -0
  618. package/dist/utils/filepath-to-prop-path.js +25 -0
  619. package/dist/utils/filepath-to-prop-path.js.map +1 -0
  620. package/dist/utils/filepath-to-prop-path.mjs +23 -0
  621. package/dist/utils/filepath-to-prop-path.mjs.map +1 -0
  622. package/dist/utils/is-initialized.js +25 -0
  623. package/dist/utils/is-initialized.js.map +1 -0
  624. package/dist/utils/is-initialized.mjs +23 -0
  625. package/dist/utils/is-initialized.mjs.map +1 -0
  626. package/dist/utils/lifecycles.js +10 -0
  627. package/dist/utils/lifecycles.js.map +1 -0
  628. package/dist/utils/lifecycles.mjs +8 -0
  629. package/dist/utils/lifecycles.mjs.map +1 -0
  630. package/dist/utils/load-config-file.js +47 -0
  631. package/dist/utils/load-config-file.js.map +1 -0
  632. package/dist/utils/load-config-file.mjs +45 -0
  633. package/dist/utils/load-config-file.mjs.map +1 -0
  634. package/dist/utils/load-files.js +44 -0
  635. package/dist/utils/load-files.js.map +1 -0
  636. package/dist/utils/load-files.mjs +42 -0
  637. package/dist/utils/load-files.mjs.map +1 -0
  638. package/dist/utils/open-browser.js +11 -0
  639. package/dist/utils/open-browser.js.map +1 -0
  640. package/dist/utils/open-browser.mjs +9 -0
  641. package/dist/utils/open-browser.mjs.map +1 -0
  642. package/dist/utils/resolve-working-dirs.js +26 -0
  643. package/dist/utils/resolve-working-dirs.js.map +1 -0
  644. package/dist/utils/resolve-working-dirs.mjs +24 -0
  645. package/dist/utils/resolve-working-dirs.mjs.map +1 -0
  646. package/dist/utils/signals.js +23 -0
  647. package/dist/utils/signals.js.map +1 -0
  648. package/dist/utils/signals.mjs +21 -0
  649. package/dist/utils/signals.mjs.map +1 -0
  650. package/dist/utils/startup-logger.js +110 -0
  651. package/dist/utils/startup-logger.js.map +1 -0
  652. package/dist/utils/startup-logger.mjs +108 -0
  653. package/dist/utils/startup-logger.mjs.map +1 -0
  654. package/dist/utils/transform-content-types-to-models.js +377 -0
  655. package/dist/utils/transform-content-types-to-models.js.map +1 -0
  656. package/dist/utils/transform-content-types-to-models.mjs +365 -0
  657. package/dist/utils/transform-content-types-to-models.mjs.map +1 -0
  658. package/dist/utils/update-notifier/index.js +80 -0
  659. package/dist/utils/update-notifier/index.js.map +1 -0
  660. package/dist/utils/update-notifier/index.mjs +78 -0
  661. package/dist/utils/update-notifier/index.mjs.map +1 -0
  662. package/package.json +11 -11
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sources":["../../../src/services/server/policy.ts"],"sourcesContent":["import { policy as policyUtils, errors } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nconst createPolicicesMiddleware = (route: Core.Route, strapi: Core.Strapi) => {\n const policiesConfig = route?.config?.policies ?? [];\n const resolvedPolicies = strapi.get('policies').resolve(policiesConfig, route.info);\n\n const policiesMiddleware: Core.MiddlewareHandler = async (ctx, next) => {\n const context = policyUtils.createPolicyContext('koa', ctx);\n\n for (const { handler, config } of resolvedPolicies) {\n const result = await handler(context, config, { strapi });\n\n if (![true, undefined].includes(result)) {\n throw new errors.PolicyError();\n }\n }\n\n await next();\n };\n\n return policiesMiddleware;\n};\n\nexport { createPolicicesMiddleware };\n"],"names":["createPolicicesMiddleware","route","strapi","policiesConfig","config","policies","resolvedPolicies","get","resolve","info","policiesMiddleware","ctx","next","context","policyUtils","createPolicyContext","handler","result","undefined","includes","errors","PolicyError"],"mappings":";;;;AAGMA,MAAAA,yBAAAA,GAA4B,CAACC,KAAmBC,EAAAA,MAAAA,GAAAA;AACpD,IAAA,MAAMC,cAAiBF,GAAAA,KAAAA,EAAOG,MAAQC,EAAAA,QAAAA,IAAY,EAAE;IACpD,MAAMC,gBAAAA,GAAmBJ,OAAOK,GAAG,CAAC,YAAYC,OAAO,CAACL,cAAgBF,EAAAA,KAAAA,CAAMQ,IAAI,CAAA;IAElF,MAAMC,kBAAAA,GAA6C,OAAOC,GAAKC,EAAAA,IAAAA,GAAAA;AAC7D,QAAA,MAAMC,OAAUC,GAAAA,kBAAAA,CAAYC,mBAAmB,CAAC,KAAOJ,EAAAA,GAAAA,CAAAA;AAEvD,QAAA,KAAK,MAAM,EAAEK,OAAO,EAAEZ,MAAM,EAAE,IAAIE,gBAAkB,CAAA;AAClD,YAAA,MAAMW,MAAS,GAAA,MAAMD,OAAQH,CAAAA,OAAAA,EAAST,MAAQ,EAAA;AAAEF,gBAAAA;AAAO,aAAA,CAAA;AAEvD,YAAA,IAAI,CAAC;AAAC,gBAAA,IAAA;AAAMgB,gBAAAA;aAAU,CAACC,QAAQ,CAACF,MAAS,CAAA,EAAA;gBACvC,MAAM,IAAIG,mBAAOC,WAAW,EAAA;AAC9B;AACF;QAEA,MAAMT,IAAAA,EAAAA;AACR,KAAA;IAEA,OAAOF,kBAAAA;AACT;;;;"}
@@ -0,0 +1,25 @@
1
+ import { policy, errors } from '@strapi/utils';
2
+
3
+ const createPolicicesMiddleware = (route, strapi)=>{
4
+ const policiesConfig = route?.config?.policies ?? [];
5
+ const resolvedPolicies = strapi.get('policies').resolve(policiesConfig, route.info);
6
+ const policiesMiddleware = async (ctx, next)=>{
7
+ const context = policy.createPolicyContext('koa', ctx);
8
+ for (const { handler, config } of resolvedPolicies){
9
+ const result = await handler(context, config, {
10
+ strapi
11
+ });
12
+ if (![
13
+ true,
14
+ undefined
15
+ ].includes(result)) {
16
+ throw new errors.PolicyError();
17
+ }
18
+ }
19
+ await next();
20
+ };
21
+ return policiesMiddleware;
22
+ };
23
+
24
+ export { createPolicicesMiddleware };
25
+ //# sourceMappingURL=policy.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.mjs","sources":["../../../src/services/server/policy.ts"],"sourcesContent":["import { policy as policyUtils, errors } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nconst createPolicicesMiddleware = (route: Core.Route, strapi: Core.Strapi) => {\n const policiesConfig = route?.config?.policies ?? [];\n const resolvedPolicies = strapi.get('policies').resolve(policiesConfig, route.info);\n\n const policiesMiddleware: Core.MiddlewareHandler = async (ctx, next) => {\n const context = policyUtils.createPolicyContext('koa', ctx);\n\n for (const { handler, config } of resolvedPolicies) {\n const result = await handler(context, config, { strapi });\n\n if (![true, undefined].includes(result)) {\n throw new errors.PolicyError();\n }\n }\n\n await next();\n };\n\n return policiesMiddleware;\n};\n\nexport { createPolicicesMiddleware };\n"],"names":["createPolicicesMiddleware","route","strapi","policiesConfig","config","policies","resolvedPolicies","get","resolve","info","policiesMiddleware","ctx","next","context","policyUtils","createPolicyContext","handler","result","undefined","includes","errors","PolicyError"],"mappings":";;AAGMA,MAAAA,yBAAAA,GAA4B,CAACC,KAAmBC,EAAAA,MAAAA,GAAAA;AACpD,IAAA,MAAMC,cAAiBF,GAAAA,KAAAA,EAAOG,MAAQC,EAAAA,QAAAA,IAAY,EAAE;IACpD,MAAMC,gBAAAA,GAAmBJ,OAAOK,GAAG,CAAC,YAAYC,OAAO,CAACL,cAAgBF,EAAAA,KAAAA,CAAMQ,IAAI,CAAA;IAElF,MAAMC,kBAAAA,GAA6C,OAAOC,GAAKC,EAAAA,IAAAA,GAAAA;AAC7D,QAAA,MAAMC,OAAUC,GAAAA,MAAAA,CAAYC,mBAAmB,CAAC,KAAOJ,EAAAA,GAAAA,CAAAA;AAEvD,QAAA,KAAK,MAAM,EAAEK,OAAO,EAAEZ,MAAM,EAAE,IAAIE,gBAAkB,CAAA;AAClD,YAAA,MAAMW,MAAS,GAAA,MAAMD,OAAQH,CAAAA,OAAAA,EAAST,MAAQ,EAAA;AAAEF,gBAAAA;AAAO,aAAA,CAAA;AAEvD,YAAA,IAAI,CAAC;AAAC,gBAAA,IAAA;AAAMgB,gBAAAA;aAAU,CAACC,QAAQ,CAACF,MAAS,CAAA,EAAA;gBACvC,MAAM,IAAIG,OAAOC,WAAW,EAAA;AAC9B;AACF;QAEA,MAAMT,IAAAA,EAAAA;AACR,KAAA;IAEA,OAAOF,kBAAAA;AACT;;;;"}
@@ -0,0 +1,79 @@
1
+ 'use strict';
2
+
3
+ var strapiUtils = require('@strapi/utils');
4
+ var middleware = require('./middleware.js');
5
+
6
+ const defaultConfig = [
7
+ 'strapi::logger',
8
+ 'strapi::errors',
9
+ 'strapi::security',
10
+ 'strapi::cors',
11
+ 'strapi::poweredBy',
12
+ 'strapi::session',
13
+ 'strapi::query',
14
+ 'strapi::body',
15
+ 'strapi::favicon',
16
+ 'strapi::public'
17
+ ];
18
+ const requiredMiddlewares = [
19
+ 'strapi::errors',
20
+ 'strapi::security',
21
+ 'strapi::cors',
22
+ 'strapi::query',
23
+ 'strapi::body',
24
+ 'strapi::public',
25
+ 'strapi::favicon'
26
+ ];
27
+ const middlewareConfigSchema = strapiUtils.yup.array().of(strapiUtils.yup.lazy((value)=>{
28
+ if (typeof value === 'string') {
29
+ return strapiUtils.yup.string().required();
30
+ }
31
+ if (typeof value === 'object') {
32
+ return strapiUtils.yup.object({
33
+ name: strapiUtils.yup.string(),
34
+ resolve: strapiUtils.yup.string(),
35
+ config: strapiUtils.yup.mixed()
36
+ }).required().noUnknown();
37
+ }
38
+ return strapiUtils.yup.mixed().test(()=>false);
39
+ }));
40
+ /**
41
+ * Register middlewares in router
42
+ */ const registerApplicationMiddlewares = async (strapi)=>{
43
+ const middlewareConfig = strapi.config.get('middlewares', defaultConfig);
44
+ await validateMiddlewareConfig(middlewareConfig);
45
+ const middlewares = await middleware.resolveMiddlewares(middlewareConfig, strapi);
46
+ checkRequiredMiddlewares(middlewares);
47
+ // NOTE: exclude middlewares that return nothing.
48
+ // this is used for middlewares that only extend the app only need to be added in certain conditions
49
+ for (const middleware of middlewares){
50
+ strapi.server.use(middleware.handler);
51
+ }
52
+ };
53
+ /**
54
+ *
55
+ * @param {MiddlewaresConfig} config
56
+ */ const validateMiddlewareConfig = async (config)=>{
57
+ try {
58
+ await middlewareConfigSchema.validate(config, {
59
+ strict: true,
60
+ abortEarly: false
61
+ });
62
+ } catch (error) {
63
+ throw new Error('Invalid middleware configuration. Expected Array<string|{name?: string, resolve?: string, config: any}.');
64
+ }
65
+ };
66
+ /**
67
+ * Check if some required middlewares are missing in configure middlewares
68
+ * @param {Middlewares} middlewares
69
+ */ const checkRequiredMiddlewares = (middlewares)=>{
70
+ const missingMiddlewares = requiredMiddlewares.filter((name)=>{
71
+ return middlewares.findIndex((mdl)=>mdl.name === name) === -1;
72
+ });
73
+ if (missingMiddlewares.length > 0) {
74
+ throw new Error(`Missing required middlewares in configuration. Add the following middlewares: "${missingMiddlewares.join(', ')}".`);
75
+ }
76
+ };
77
+
78
+ module.exports = registerApplicationMiddlewares;
79
+ //# sourceMappingURL=register-middlewares.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-middlewares.js","sources":["../../../src/services/server/register-middlewares.ts"],"sourcesContent":["import { yup } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { resolveMiddlewares } from './middleware';\n\ntype MiddlewareConfig = (string | { name?: string; resolve?: string; config?: unknown })[];\n\nconst defaultConfig = [\n 'strapi::logger',\n 'strapi::errors',\n 'strapi::security',\n 'strapi::cors',\n 'strapi::poweredBy',\n 'strapi::session',\n 'strapi::query',\n 'strapi::body',\n 'strapi::favicon',\n 'strapi::public',\n];\n\nconst requiredMiddlewares = [\n 'strapi::errors',\n 'strapi::security',\n 'strapi::cors',\n 'strapi::query',\n 'strapi::body',\n 'strapi::public',\n 'strapi::favicon',\n];\n\nconst middlewareConfigSchema = yup.array().of(\n yup.lazy((value) => {\n if (typeof value === 'string') {\n return yup.string().required();\n }\n\n if (typeof value === 'object') {\n return yup\n .object({\n name: yup.string(),\n resolve: yup.string(),\n config: yup.mixed(),\n })\n .required()\n .noUnknown();\n }\n\n return yup.mixed().test(() => false);\n }) as any // FIXME: yup v1\n);\n\n/**\n * Register middlewares in router\n */\nconst registerApplicationMiddlewares = async (strapi: Core.Strapi) => {\n const middlewareConfig: MiddlewareConfig = strapi.config.get('middlewares', defaultConfig);\n\n await validateMiddlewareConfig(middlewareConfig);\n\n const middlewares = await resolveMiddlewares(middlewareConfig, strapi);\n\n checkRequiredMiddlewares(middlewares);\n\n // NOTE: exclude middlewares that return nothing.\n // this is used for middlewares that only extend the app only need to be added in certain conditions\n for (const middleware of middlewares) {\n strapi.server.use(middleware.handler);\n }\n};\n\n/**\n *\n * @param {MiddlewaresConfig} config\n */\nconst validateMiddlewareConfig = async (config: MiddlewareConfig) => {\n try {\n await middlewareConfigSchema.validate(config, { strict: true, abortEarly: false });\n } catch (error) {\n throw new Error(\n 'Invalid middleware configuration. Expected Array<string|{name?: string, resolve?: string, config: any}.'\n );\n }\n};\n\n/**\n * Check if some required middlewares are missing in configure middlewares\n * @param {Middlewares} middlewares\n */\nconst checkRequiredMiddlewares = (middlewares: { name: string | null }[]) => {\n const missingMiddlewares = requiredMiddlewares.filter((name) => {\n return middlewares.findIndex((mdl) => mdl.name === name) === -1;\n });\n\n if (missingMiddlewares.length > 0) {\n throw new Error(\n `Missing required middlewares in configuration. Add the following middlewares: \"${missingMiddlewares.join(\n ', '\n )}\".`\n );\n }\n};\n\nexport default registerApplicationMiddlewares;\n"],"names":["defaultConfig","requiredMiddlewares","middlewareConfigSchema","yup","array","of","lazy","value","string","required","object","name","resolve","config","mixed","noUnknown","test","registerApplicationMiddlewares","strapi","middlewareConfig","get","validateMiddlewareConfig","middlewares","resolveMiddlewares","checkRequiredMiddlewares","middleware","server","use","handler","validate","strict","abortEarly","error","Error","missingMiddlewares","filter","findIndex","mdl","length","join"],"mappings":";;;;;AAMA,MAAMA,aAAgB,GAAA;AACpB,IAAA,gBAAA;AACA,IAAA,gBAAA;AACA,IAAA,kBAAA;AACA,IAAA,cAAA;AACA,IAAA,mBAAA;AACA,IAAA,iBAAA;AACA,IAAA,eAAA;AACA,IAAA,cAAA;AACA,IAAA,iBAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,mBAAsB,GAAA;AAC1B,IAAA,gBAAA;AACA,IAAA,kBAAA;AACA,IAAA,cAAA;AACA,IAAA,eAAA;AACA,IAAA,cAAA;AACA,IAAA,gBAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,sBAAAA,GAAyBC,gBAAIC,KAAK,EAAA,CAAGC,EAAE,CAC3CF,eAAAA,CAAIG,IAAI,CAAC,CAACC,KAAAA,GAAAA;IACR,IAAI,OAAOA,UAAU,QAAU,EAAA;QAC7B,OAAOJ,eAAAA,CAAIK,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC9B;IAEA,IAAI,OAAOF,UAAU,QAAU,EAAA;QAC7B,OAAOJ,eAAAA,CACJO,MAAM,CAAC;AACNC,YAAAA,IAAAA,EAAMR,gBAAIK,MAAM,EAAA;AAChBI,YAAAA,OAAAA,EAAST,gBAAIK,MAAM,EAAA;AACnBK,YAAAA,MAAAA,EAAQV,gBAAIW,KAAK;SAElBL,CAAAA,CAAAA,QAAQ,GACRM,SAAS,EAAA;AACd;AAEA,IAAA,OAAOZ,eAAIW,CAAAA,KAAK,EAAGE,CAAAA,IAAI,CAAC,IAAM,KAAA,CAAA;AAChC,CAAA,CAAA,CAAA;AAGF;;IAGA,MAAMC,iCAAiC,OAAOC,MAAAA,GAAAA;AAC5C,IAAA,MAAMC,mBAAqCD,MAAOL,CAAAA,MAAM,CAACO,GAAG,CAAC,aAAepB,EAAAA,aAAAA,CAAAA;AAE5E,IAAA,MAAMqB,wBAAyBF,CAAAA,gBAAAA,CAAAA;IAE/B,MAAMG,WAAAA,GAAc,MAAMC,6BAAAA,CAAmBJ,gBAAkBD,EAAAA,MAAAA,CAAAA;IAE/DM,wBAAyBF,CAAAA,WAAAA,CAAAA;;;IAIzB,KAAK,MAAMG,cAAcH,WAAa,CAAA;AACpCJ,QAAAA,MAAAA,CAAOQ,MAAM,CAACC,GAAG,CAACF,WAAWG,OAAO,CAAA;AACtC;AACF;AAEA;;;IAIA,MAAMP,2BAA2B,OAAOR,MAAAA,GAAAA;IACtC,IAAI;QACF,MAAMX,sBAAAA,CAAuB2B,QAAQ,CAAChB,MAAQ,EAAA;YAAEiB,MAAQ,EAAA,IAAA;YAAMC,UAAY,EAAA;AAAM,SAAA,CAAA;AAClF,KAAA,CAAE,OAAOC,KAAO,EAAA;AACd,QAAA,MAAM,IAAIC,KACR,CAAA,yGAAA,CAAA;AAEJ;AACF,CAAA;AAEA;;;IAIA,MAAMT,2BAA2B,CAACF,WAAAA,GAAAA;AAChC,IAAA,MAAMY,kBAAqBjC,GAAAA,mBAAAA,CAAoBkC,MAAM,CAAC,CAACxB,IAAAA,GAAAA;QACrD,OAAOW,WAAAA,CAAYc,SAAS,CAAC,CAACC,MAAQA,GAAI1B,CAAAA,IAAI,KAAKA,IAAAA,CAAAA,KAAU,CAAC,CAAA;AAChE,KAAA,CAAA;IAEA,IAAIuB,kBAAAA,CAAmBI,MAAM,GAAG,CAAG,EAAA;QACjC,MAAM,IAAIL,KACR,CAAA,CAAC,+EAA+E,EAAEC,mBAAmBK,IAAI,CACvG,IACA,CAAA,CAAA,EAAE,CAAC,CAAA;AAET;AACF,CAAA;;;;"}
@@ -0,0 +1,77 @@
1
+ import { yup } from '@strapi/utils';
2
+ import { resolveMiddlewares } from './middleware.mjs';
3
+
4
+ const defaultConfig = [
5
+ 'strapi::logger',
6
+ 'strapi::errors',
7
+ 'strapi::security',
8
+ 'strapi::cors',
9
+ 'strapi::poweredBy',
10
+ 'strapi::session',
11
+ 'strapi::query',
12
+ 'strapi::body',
13
+ 'strapi::favicon',
14
+ 'strapi::public'
15
+ ];
16
+ const requiredMiddlewares = [
17
+ 'strapi::errors',
18
+ 'strapi::security',
19
+ 'strapi::cors',
20
+ 'strapi::query',
21
+ 'strapi::body',
22
+ 'strapi::public',
23
+ 'strapi::favicon'
24
+ ];
25
+ const middlewareConfigSchema = yup.array().of(yup.lazy((value)=>{
26
+ if (typeof value === 'string') {
27
+ return yup.string().required();
28
+ }
29
+ if (typeof value === 'object') {
30
+ return yup.object({
31
+ name: yup.string(),
32
+ resolve: yup.string(),
33
+ config: yup.mixed()
34
+ }).required().noUnknown();
35
+ }
36
+ return yup.mixed().test(()=>false);
37
+ }));
38
+ /**
39
+ * Register middlewares in router
40
+ */ const registerApplicationMiddlewares = async (strapi)=>{
41
+ const middlewareConfig = strapi.config.get('middlewares', defaultConfig);
42
+ await validateMiddlewareConfig(middlewareConfig);
43
+ const middlewares = await resolveMiddlewares(middlewareConfig, strapi);
44
+ checkRequiredMiddlewares(middlewares);
45
+ // NOTE: exclude middlewares that return nothing.
46
+ // this is used for middlewares that only extend the app only need to be added in certain conditions
47
+ for (const middleware of middlewares){
48
+ strapi.server.use(middleware.handler);
49
+ }
50
+ };
51
+ /**
52
+ *
53
+ * @param {MiddlewaresConfig} config
54
+ */ const validateMiddlewareConfig = async (config)=>{
55
+ try {
56
+ await middlewareConfigSchema.validate(config, {
57
+ strict: true,
58
+ abortEarly: false
59
+ });
60
+ } catch (error) {
61
+ throw new Error('Invalid middleware configuration. Expected Array<string|{name?: string, resolve?: string, config: any}.');
62
+ }
63
+ };
64
+ /**
65
+ * Check if some required middlewares are missing in configure middlewares
66
+ * @param {Middlewares} middlewares
67
+ */ const checkRequiredMiddlewares = (middlewares)=>{
68
+ const missingMiddlewares = requiredMiddlewares.filter((name)=>{
69
+ return middlewares.findIndex((mdl)=>mdl.name === name) === -1;
70
+ });
71
+ if (missingMiddlewares.length > 0) {
72
+ throw new Error(`Missing required middlewares in configuration. Add the following middlewares: "${missingMiddlewares.join(', ')}".`);
73
+ }
74
+ };
75
+
76
+ export { registerApplicationMiddlewares as default };
77
+ //# sourceMappingURL=register-middlewares.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-middlewares.mjs","sources":["../../../src/services/server/register-middlewares.ts"],"sourcesContent":["import { yup } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { resolveMiddlewares } from './middleware';\n\ntype MiddlewareConfig = (string | { name?: string; resolve?: string; config?: unknown })[];\n\nconst defaultConfig = [\n 'strapi::logger',\n 'strapi::errors',\n 'strapi::security',\n 'strapi::cors',\n 'strapi::poweredBy',\n 'strapi::session',\n 'strapi::query',\n 'strapi::body',\n 'strapi::favicon',\n 'strapi::public',\n];\n\nconst requiredMiddlewares = [\n 'strapi::errors',\n 'strapi::security',\n 'strapi::cors',\n 'strapi::query',\n 'strapi::body',\n 'strapi::public',\n 'strapi::favicon',\n];\n\nconst middlewareConfigSchema = yup.array().of(\n yup.lazy((value) => {\n if (typeof value === 'string') {\n return yup.string().required();\n }\n\n if (typeof value === 'object') {\n return yup\n .object({\n name: yup.string(),\n resolve: yup.string(),\n config: yup.mixed(),\n })\n .required()\n .noUnknown();\n }\n\n return yup.mixed().test(() => false);\n }) as any // FIXME: yup v1\n);\n\n/**\n * Register middlewares in router\n */\nconst registerApplicationMiddlewares = async (strapi: Core.Strapi) => {\n const middlewareConfig: MiddlewareConfig = strapi.config.get('middlewares', defaultConfig);\n\n await validateMiddlewareConfig(middlewareConfig);\n\n const middlewares = await resolveMiddlewares(middlewareConfig, strapi);\n\n checkRequiredMiddlewares(middlewares);\n\n // NOTE: exclude middlewares that return nothing.\n // this is used for middlewares that only extend the app only need to be added in certain conditions\n for (const middleware of middlewares) {\n strapi.server.use(middleware.handler);\n }\n};\n\n/**\n *\n * @param {MiddlewaresConfig} config\n */\nconst validateMiddlewareConfig = async (config: MiddlewareConfig) => {\n try {\n await middlewareConfigSchema.validate(config, { strict: true, abortEarly: false });\n } catch (error) {\n throw new Error(\n 'Invalid middleware configuration. Expected Array<string|{name?: string, resolve?: string, config: any}.'\n );\n }\n};\n\n/**\n * Check if some required middlewares are missing in configure middlewares\n * @param {Middlewares} middlewares\n */\nconst checkRequiredMiddlewares = (middlewares: { name: string | null }[]) => {\n const missingMiddlewares = requiredMiddlewares.filter((name) => {\n return middlewares.findIndex((mdl) => mdl.name === name) === -1;\n });\n\n if (missingMiddlewares.length > 0) {\n throw new Error(\n `Missing required middlewares in configuration. Add the following middlewares: \"${missingMiddlewares.join(\n ', '\n )}\".`\n );\n }\n};\n\nexport default registerApplicationMiddlewares;\n"],"names":["defaultConfig","requiredMiddlewares","middlewareConfigSchema","yup","array","of","lazy","value","string","required","object","name","resolve","config","mixed","noUnknown","test","registerApplicationMiddlewares","strapi","middlewareConfig","get","validateMiddlewareConfig","middlewares","resolveMiddlewares","checkRequiredMiddlewares","middleware","server","use","handler","validate","strict","abortEarly","error","Error","missingMiddlewares","filter","findIndex","mdl","length","join"],"mappings":";;;AAMA,MAAMA,aAAgB,GAAA;AACpB,IAAA,gBAAA;AACA,IAAA,gBAAA;AACA,IAAA,kBAAA;AACA,IAAA,cAAA;AACA,IAAA,mBAAA;AACA,IAAA,iBAAA;AACA,IAAA,eAAA;AACA,IAAA,cAAA;AACA,IAAA,iBAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,mBAAsB,GAAA;AAC1B,IAAA,gBAAA;AACA,IAAA,kBAAA;AACA,IAAA,cAAA;AACA,IAAA,eAAA;AACA,IAAA,cAAA;AACA,IAAA,gBAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,sBAAAA,GAAyBC,IAAIC,KAAK,EAAA,CAAGC,EAAE,CAC3CF,GAAAA,CAAIG,IAAI,CAAC,CAACC,KAAAA,GAAAA;IACR,IAAI,OAAOA,UAAU,QAAU,EAAA;QAC7B,OAAOJ,GAAAA,CAAIK,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC9B;IAEA,IAAI,OAAOF,UAAU,QAAU,EAAA;QAC7B,OAAOJ,GAAAA,CACJO,MAAM,CAAC;AACNC,YAAAA,IAAAA,EAAMR,IAAIK,MAAM,EAAA;AAChBI,YAAAA,OAAAA,EAAST,IAAIK,MAAM,EAAA;AACnBK,YAAAA,MAAAA,EAAQV,IAAIW,KAAK;SAElBL,CAAAA,CAAAA,QAAQ,GACRM,SAAS,EAAA;AACd;AAEA,IAAA,OAAOZ,GAAIW,CAAAA,KAAK,EAAGE,CAAAA,IAAI,CAAC,IAAM,KAAA,CAAA;AAChC,CAAA,CAAA,CAAA;AAGF;;IAGA,MAAMC,iCAAiC,OAAOC,MAAAA,GAAAA;AAC5C,IAAA,MAAMC,mBAAqCD,MAAOL,CAAAA,MAAM,CAACO,GAAG,CAAC,aAAepB,EAAAA,aAAAA,CAAAA;AAE5E,IAAA,MAAMqB,wBAAyBF,CAAAA,gBAAAA,CAAAA;IAE/B,MAAMG,WAAAA,GAAc,MAAMC,kBAAAA,CAAmBJ,gBAAkBD,EAAAA,MAAAA,CAAAA;IAE/DM,wBAAyBF,CAAAA,WAAAA,CAAAA;;;IAIzB,KAAK,MAAMG,cAAcH,WAAa,CAAA;AACpCJ,QAAAA,MAAAA,CAAOQ,MAAM,CAACC,GAAG,CAACF,WAAWG,OAAO,CAAA;AACtC;AACF;AAEA;;;IAIA,MAAMP,2BAA2B,OAAOR,MAAAA,GAAAA;IACtC,IAAI;QACF,MAAMX,sBAAAA,CAAuB2B,QAAQ,CAAChB,MAAQ,EAAA;YAAEiB,MAAQ,EAAA,IAAA;YAAMC,UAAY,EAAA;AAAM,SAAA,CAAA;AAClF,KAAA,CAAE,OAAOC,KAAO,EAAA;AACd,QAAA,MAAM,IAAIC,KACR,CAAA,yGAAA,CAAA;AAEJ;AACF,CAAA;AAEA;;;IAIA,MAAMT,2BAA2B,CAACF,WAAAA,GAAAA;AAChC,IAAA,MAAMY,kBAAqBjC,GAAAA,mBAAAA,CAAoBkC,MAAM,CAAC,CAACxB,IAAAA,GAAAA;QACrD,OAAOW,WAAAA,CAAYc,SAAS,CAAC,CAACC,MAAQA,GAAI1B,CAAAA,IAAI,KAAKA,IAAAA,CAAAA,KAAU,CAAC,CAAA;AAChE,KAAA,CAAA;IAEA,IAAIuB,kBAAAA,CAAmBI,MAAM,GAAG,CAAG,EAAA;QACjC,MAAM,IAAIL,KACR,CAAA,CAAC,+EAA+E,EAAEC,mBAAmBK,IAAI,CACvG,IACA,CAAA,CAAA,EAAE,CAAC,CAAA;AAET;AACF,CAAA;;;;"}
@@ -0,0 +1,99 @@
1
+ 'use strict';
2
+
3
+ var _ = require('lodash');
4
+
5
+ const createRouteScopeGenerator = (namespace)=>(route)=>{
6
+ const prefix = namespace.endsWith('::') ? namespace : `${namespace}.`;
7
+ if (typeof route.handler === 'string') {
8
+ _.defaultsDeep(route, {
9
+ config: {
10
+ auth: {
11
+ scope: [
12
+ `${route.handler.startsWith(prefix) ? '' : prefix}${route.handler}`
13
+ ]
14
+ }
15
+ }
16
+ });
17
+ }
18
+ };
19
+ /**
20
+ * Register all routes
21
+ */ var registerAllRoutes = ((strapi)=>{
22
+ registerAdminRoutes(strapi);
23
+ registerAPIRoutes(strapi);
24
+ registerPluginRoutes(strapi);
25
+ });
26
+ /**
27
+ * Register admin routes
28
+ * @param {import('../../').Strapi} strapi
29
+ */ const registerAdminRoutes = (strapi)=>{
30
+ const generateRouteScope = createRouteScopeGenerator(`admin::`);
31
+ _.forEach(strapi.admin.routes, (router)=>{
32
+ router.type = router.type || 'admin';
33
+ router.prefix = router.prefix || `/admin`;
34
+ router.routes.forEach((route)=>{
35
+ generateRouteScope(route);
36
+ route.info = {
37
+ pluginName: 'admin'
38
+ };
39
+ });
40
+ strapi.server.routes(router);
41
+ });
42
+ };
43
+ /**
44
+ * Register plugin routes
45
+ * @param {import('../../').Strapi} strapi
46
+ */ const registerPluginRoutes = (strapi)=>{
47
+ for (const pluginName of Object.keys(strapi.plugins)){
48
+ const plugin = strapi.plugins[pluginName];
49
+ const generateRouteScope = createRouteScopeGenerator(`plugin::${pluginName}`);
50
+ if (Array.isArray(plugin.routes)) {
51
+ plugin.routes.forEach((route)=>{
52
+ generateRouteScope(route);
53
+ route.info = {
54
+ pluginName
55
+ };
56
+ });
57
+ strapi.server.routes({
58
+ type: 'admin',
59
+ prefix: `/${pluginName}`,
60
+ routes: plugin.routes
61
+ });
62
+ } else {
63
+ _.forEach(plugin.routes, (router)=>{
64
+ router.type = router.type || 'admin';
65
+ router.prefix = router.prefix || `/${pluginName}`;
66
+ router.routes.forEach((route)=>{
67
+ generateRouteScope(route);
68
+ route.info = {
69
+ pluginName
70
+ };
71
+ });
72
+ strapi.server.routes(router);
73
+ });
74
+ }
75
+ }
76
+ };
77
+ /**
78
+ * Register api routes
79
+ */ const registerAPIRoutes = (strapi)=>{
80
+ for (const apiName of Object.keys(strapi.apis)){
81
+ const api = strapi.api(apiName);
82
+ const generateRouteScope = createRouteScopeGenerator(`api::${apiName}`);
83
+ _.forEach(api.routes, (router)=>{
84
+ // TODO: remove once auth setup
85
+ // pass meta down to compose endpoint
86
+ router.type = 'content-api';
87
+ router.routes?.forEach((route)=>{
88
+ generateRouteScope(route);
89
+ route.info = {
90
+ apiName
91
+ };
92
+ });
93
+ return strapi.server.routes(router);
94
+ });
95
+ }
96
+ };
97
+
98
+ module.exports = registerAllRoutes;
99
+ //# sourceMappingURL=register-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-routes.js","sources":["../../../src/services/server/register-routes.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Core } from '@strapi/types';\n\nconst createRouteScopeGenerator = (namespace: string) => (route: Core.RouteInput) => {\n const prefix = namespace.endsWith('::') ? namespace : `${namespace}.`;\n\n if (typeof route.handler === 'string') {\n _.defaultsDeep(route, {\n config: {\n auth: {\n scope: [`${route.handler.startsWith(prefix) ? '' : prefix}${route.handler}`],\n },\n },\n });\n }\n};\n\n/**\n * Register all routes\n */\nexport default (strapi: Core.Strapi) => {\n registerAdminRoutes(strapi);\n registerAPIRoutes(strapi);\n registerPluginRoutes(strapi);\n};\n\n/**\n * Register admin routes\n * @param {import('../../').Strapi} strapi\n */\nconst registerAdminRoutes = (strapi: Core.Strapi) => {\n const generateRouteScope = createRouteScopeGenerator(`admin::`);\n\n _.forEach(strapi.admin.routes, (router) => {\n router.type = router.type || 'admin';\n router.prefix = router.prefix || `/admin`;\n router.routes.forEach((route) => {\n generateRouteScope(route);\n route.info = { pluginName: 'admin' };\n });\n strapi.server.routes(router);\n });\n};\n\n/**\n * Register plugin routes\n * @param {import('../../').Strapi} strapi\n */\nconst registerPluginRoutes = (strapi: Core.Strapi) => {\n for (const pluginName of Object.keys(strapi.plugins)) {\n const plugin = strapi.plugins[pluginName];\n\n const generateRouteScope = createRouteScopeGenerator(`plugin::${pluginName}`);\n\n if (Array.isArray(plugin.routes)) {\n plugin.routes.forEach((route) => {\n generateRouteScope(route);\n route.info = { pluginName };\n });\n\n strapi.server.routes({\n type: 'admin',\n prefix: `/${pluginName}`,\n routes: plugin.routes,\n });\n } else {\n _.forEach(plugin.routes, (router) => {\n router.type = router.type || 'admin';\n router.prefix = router.prefix || `/${pluginName}`;\n router.routes.forEach((route) => {\n generateRouteScope(route);\n route.info = { pluginName };\n });\n\n strapi.server.routes(router);\n });\n }\n }\n};\n\n/**\n * Register api routes\n */\nconst registerAPIRoutes = (strapi: Core.Strapi) => {\n for (const apiName of Object.keys(strapi.apis)) {\n const api = strapi.api(apiName);\n\n const generateRouteScope = createRouteScopeGenerator(`api::${apiName}`);\n\n _.forEach(api.routes, (router) => {\n // TODO: remove once auth setup\n // pass meta down to compose endpoint\n router.type = 'content-api';\n router.routes?.forEach((route) => {\n generateRouteScope(route);\n route.info = { apiName };\n });\n\n return strapi.server.routes(router);\n });\n }\n};\n"],"names":["createRouteScopeGenerator","namespace","route","prefix","endsWith","handler","_","defaultsDeep","config","auth","scope","startsWith","strapi","registerAdminRoutes","registerAPIRoutes","registerPluginRoutes","generateRouteScope","forEach","admin","routes","router","type","info","pluginName","server","Object","keys","plugins","plugin","Array","isArray","apiName","apis","api"],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ import _ from 'lodash';
2
+
3
+ const createRouteScopeGenerator = (namespace)=>(route)=>{
4
+ const prefix = namespace.endsWith('::') ? namespace : `${namespace}.`;
5
+ if (typeof route.handler === 'string') {
6
+ _.defaultsDeep(route, {
7
+ config: {
8
+ auth: {
9
+ scope: [
10
+ `${route.handler.startsWith(prefix) ? '' : prefix}${route.handler}`
11
+ ]
12
+ }
13
+ }
14
+ });
15
+ }
16
+ };
17
+ /**
18
+ * Register all routes
19
+ */ var registerAllRoutes = ((strapi)=>{
20
+ registerAdminRoutes(strapi);
21
+ registerAPIRoutes(strapi);
22
+ registerPluginRoutes(strapi);
23
+ });
24
+ /**
25
+ * Register admin routes
26
+ * @param {import('../../').Strapi} strapi
27
+ */ const registerAdminRoutes = (strapi)=>{
28
+ const generateRouteScope = createRouteScopeGenerator(`admin::`);
29
+ _.forEach(strapi.admin.routes, (router)=>{
30
+ router.type = router.type || 'admin';
31
+ router.prefix = router.prefix || `/admin`;
32
+ router.routes.forEach((route)=>{
33
+ generateRouteScope(route);
34
+ route.info = {
35
+ pluginName: 'admin'
36
+ };
37
+ });
38
+ strapi.server.routes(router);
39
+ });
40
+ };
41
+ /**
42
+ * Register plugin routes
43
+ * @param {import('../../').Strapi} strapi
44
+ */ const registerPluginRoutes = (strapi)=>{
45
+ for (const pluginName of Object.keys(strapi.plugins)){
46
+ const plugin = strapi.plugins[pluginName];
47
+ const generateRouteScope = createRouteScopeGenerator(`plugin::${pluginName}`);
48
+ if (Array.isArray(plugin.routes)) {
49
+ plugin.routes.forEach((route)=>{
50
+ generateRouteScope(route);
51
+ route.info = {
52
+ pluginName
53
+ };
54
+ });
55
+ strapi.server.routes({
56
+ type: 'admin',
57
+ prefix: `/${pluginName}`,
58
+ routes: plugin.routes
59
+ });
60
+ } else {
61
+ _.forEach(plugin.routes, (router)=>{
62
+ router.type = router.type || 'admin';
63
+ router.prefix = router.prefix || `/${pluginName}`;
64
+ router.routes.forEach((route)=>{
65
+ generateRouteScope(route);
66
+ route.info = {
67
+ pluginName
68
+ };
69
+ });
70
+ strapi.server.routes(router);
71
+ });
72
+ }
73
+ }
74
+ };
75
+ /**
76
+ * Register api routes
77
+ */ const registerAPIRoutes = (strapi)=>{
78
+ for (const apiName of Object.keys(strapi.apis)){
79
+ const api = strapi.api(apiName);
80
+ const generateRouteScope = createRouteScopeGenerator(`api::${apiName}`);
81
+ _.forEach(api.routes, (router)=>{
82
+ // TODO: remove once auth setup
83
+ // pass meta down to compose endpoint
84
+ router.type = 'content-api';
85
+ router.routes?.forEach((route)=>{
86
+ generateRouteScope(route);
87
+ route.info = {
88
+ apiName
89
+ };
90
+ });
91
+ return strapi.server.routes(router);
92
+ });
93
+ }
94
+ };
95
+
96
+ export { registerAllRoutes as default };
97
+ //# sourceMappingURL=register-routes.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-routes.mjs","sources":["../../../src/services/server/register-routes.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Core } from '@strapi/types';\n\nconst createRouteScopeGenerator = (namespace: string) => (route: Core.RouteInput) => {\n const prefix = namespace.endsWith('::') ? namespace : `${namespace}.`;\n\n if (typeof route.handler === 'string') {\n _.defaultsDeep(route, {\n config: {\n auth: {\n scope: [`${route.handler.startsWith(prefix) ? '' : prefix}${route.handler}`],\n },\n },\n });\n }\n};\n\n/**\n * Register all routes\n */\nexport default (strapi: Core.Strapi) => {\n registerAdminRoutes(strapi);\n registerAPIRoutes(strapi);\n registerPluginRoutes(strapi);\n};\n\n/**\n * Register admin routes\n * @param {import('../../').Strapi} strapi\n */\nconst registerAdminRoutes = (strapi: Core.Strapi) => {\n const generateRouteScope = createRouteScopeGenerator(`admin::`);\n\n _.forEach(strapi.admin.routes, (router) => {\n router.type = router.type || 'admin';\n router.prefix = router.prefix || `/admin`;\n router.routes.forEach((route) => {\n generateRouteScope(route);\n route.info = { pluginName: 'admin' };\n });\n strapi.server.routes(router);\n });\n};\n\n/**\n * Register plugin routes\n * @param {import('../../').Strapi} strapi\n */\nconst registerPluginRoutes = (strapi: Core.Strapi) => {\n for (const pluginName of Object.keys(strapi.plugins)) {\n const plugin = strapi.plugins[pluginName];\n\n const generateRouteScope = createRouteScopeGenerator(`plugin::${pluginName}`);\n\n if (Array.isArray(plugin.routes)) {\n plugin.routes.forEach((route) => {\n generateRouteScope(route);\n route.info = { pluginName };\n });\n\n strapi.server.routes({\n type: 'admin',\n prefix: `/${pluginName}`,\n routes: plugin.routes,\n });\n } else {\n _.forEach(plugin.routes, (router) => {\n router.type = router.type || 'admin';\n router.prefix = router.prefix || `/${pluginName}`;\n router.routes.forEach((route) => {\n generateRouteScope(route);\n route.info = { pluginName };\n });\n\n strapi.server.routes(router);\n });\n }\n }\n};\n\n/**\n * Register api routes\n */\nconst registerAPIRoutes = (strapi: Core.Strapi) => {\n for (const apiName of Object.keys(strapi.apis)) {\n const api = strapi.api(apiName);\n\n const generateRouteScope = createRouteScopeGenerator(`api::${apiName}`);\n\n _.forEach(api.routes, (router) => {\n // TODO: remove once auth setup\n // pass meta down to compose endpoint\n router.type = 'content-api';\n router.routes?.forEach((route) => {\n generateRouteScope(route);\n route.info = { apiName };\n });\n\n return strapi.server.routes(router);\n });\n }\n};\n"],"names":["createRouteScopeGenerator","namespace","route","prefix","endsWith","handler","_","defaultsDeep","config","auth","scope","startsWith","strapi","registerAdminRoutes","registerAPIRoutes","registerPluginRoutes","generateRouteScope","forEach","admin","routes","router","type","info","pluginName","server","Object","keys","plugins","plugin","Array","isArray","apiName","apis","api"],"mappings":";;AAGA,MAAMA,yBAAAA,GAA4B,CAACC,SAAAA,GAAsB,CAACC,KAAAA,GAAAA;QACxD,MAAMC,MAAAA,GAASF,SAAUG,CAAAA,QAAQ,CAAC,IAAA,CAAA,GAAQH,YAAY,CAAC,EAAEA,SAAU,CAAA,CAAC,CAAC;AAErE,QAAA,IAAI,OAAOC,KAAAA,CAAMG,OAAO,KAAK,QAAU,EAAA;YACrCC,CAAEC,CAAAA,YAAY,CAACL,KAAO,EAAA;gBACpBM,MAAQ,EAAA;oBACNC,IAAM,EAAA;wBACJC,KAAO,EAAA;AAAC,4BAAA,CAAC,EAAER,KAAAA,CAAMG,OAAO,CAACM,UAAU,CAACR,MAAU,CAAA,GAAA,EAAA,GAAKA,MAAO,CAAA,EAAED,KAAMG,CAAAA,OAAO,CAAC;AAAE;AAC9E;AACF;AACF,aAAA,CAAA;AACF;AACF,KAAA;AAEA;;IAGA,wBAAe,CAAA,CAACO,MAAAA,GAAAA;IACdC,mBAAoBD,CAAAA,MAAAA,CAAAA;IACpBE,iBAAkBF,CAAAA,MAAAA,CAAAA;IAClBG,oBAAqBH,CAAAA,MAAAA,CAAAA;AACvB,CAAA;AAEA;;;IAIA,MAAMC,sBAAsB,CAACD,MAAAA,GAAAA;AAC3B,IAAA,MAAMI,kBAAqBhB,GAAAA,yBAAAA,CAA0B,CAAC,OAAO,CAAC,CAAA;AAE9DM,IAAAA,CAAAA,CAAEW,OAAO,CAACL,MAAAA,CAAOM,KAAK,CAACC,MAAM,EAAE,CAACC,MAAAA,GAAAA;AAC9BA,QAAAA,MAAAA,CAAOC,IAAI,GAAGD,MAAOC,CAAAA,IAAI,IAAI,OAAA;AAC7BD,QAAAA,MAAAA,CAAOjB,MAAM,GAAGiB,MAAAA,CAAOjB,MAAM,IAAI,CAAC,MAAM,CAAC;AACzCiB,QAAAA,MAAAA,CAAOD,MAAM,CAACF,OAAO,CAAC,CAACf,KAAAA,GAAAA;YACrBc,kBAAmBd,CAAAA,KAAAA,CAAAA;AACnBA,YAAAA,KAAAA,CAAMoB,IAAI,GAAG;gBAAEC,UAAY,EAAA;AAAQ,aAAA;AACrC,SAAA,CAAA;QACAX,MAAOY,CAAAA,MAAM,CAACL,MAAM,CAACC,MAAAA,CAAAA;AACvB,KAAA,CAAA;AACF,CAAA;AAEA;;;IAIA,MAAML,uBAAuB,CAACH,MAAAA,GAAAA;AAC5B,IAAA,KAAK,MAAMW,UAAcE,IAAAA,MAAAA,CAAOC,IAAI,CAACd,MAAAA,CAAOe,OAAO,CAAG,CAAA;AACpD,QAAA,MAAMC,MAAShB,GAAAA,MAAAA,CAAOe,OAAO,CAACJ,UAAW,CAAA;AAEzC,QAAA,MAAMP,qBAAqBhB,yBAA0B,CAAA,CAAC,QAAQ,EAAEuB,WAAW,CAAC,CAAA;AAE5E,QAAA,IAAIM,KAAMC,CAAAA,OAAO,CAACF,MAAAA,CAAOT,MAAM,CAAG,EAAA;AAChCS,YAAAA,MAAAA,CAAOT,MAAM,CAACF,OAAO,CAAC,CAACf,KAAAA,GAAAA;gBACrBc,kBAAmBd,CAAAA,KAAAA,CAAAA;AACnBA,gBAAAA,KAAAA,CAAMoB,IAAI,GAAG;AAAEC,oBAAAA;AAAW,iBAAA;AAC5B,aAAA,CAAA;YAEAX,MAAOY,CAAAA,MAAM,CAACL,MAAM,CAAC;gBACnBE,IAAM,EAAA,OAAA;AACNlB,gBAAAA,MAAAA,EAAQ,CAAC,CAAC,EAAEoB,UAAAA,CAAW,CAAC;AACxBJ,gBAAAA,MAAAA,EAAQS,OAAOT;AACjB,aAAA,CAAA;SACK,MAAA;AACLb,YAAAA,CAAAA,CAAEW,OAAO,CAACW,MAAOT,CAAAA,MAAM,EAAE,CAACC,MAAAA,GAAAA;AACxBA,gBAAAA,MAAAA,CAAOC,IAAI,GAAGD,MAAOC,CAAAA,IAAI,IAAI,OAAA;gBAC7BD,MAAOjB,CAAAA,MAAM,GAAGiB,MAAOjB,CAAAA,MAAM,IAAI,CAAC,CAAC,EAAEoB,UAAAA,CAAW,CAAC;AACjDH,gBAAAA,MAAAA,CAAOD,MAAM,CAACF,OAAO,CAAC,CAACf,KAAAA,GAAAA;oBACrBc,kBAAmBd,CAAAA,KAAAA,CAAAA;AACnBA,oBAAAA,KAAAA,CAAMoB,IAAI,GAAG;AAAEC,wBAAAA;AAAW,qBAAA;AAC5B,iBAAA,CAAA;gBAEAX,MAAOY,CAAAA,MAAM,CAACL,MAAM,CAACC,MAAAA,CAAAA;AACvB,aAAA,CAAA;AACF;AACF;AACF,CAAA;AAEA;;IAGA,MAAMN,oBAAoB,CAACF,MAAAA,GAAAA;AACzB,IAAA,KAAK,MAAMmB,OAAWN,IAAAA,MAAAA,CAAOC,IAAI,CAACd,MAAAA,CAAOoB,IAAI,CAAG,CAAA;QAC9C,MAAMC,GAAAA,GAAMrB,MAAOqB,CAAAA,GAAG,CAACF,OAAAA,CAAAA;AAEvB,QAAA,MAAMf,qBAAqBhB,yBAA0B,CAAA,CAAC,KAAK,EAAE+B,QAAQ,CAAC,CAAA;AAEtEzB,QAAAA,CAAAA,CAAEW,OAAO,CAACgB,GAAId,CAAAA,MAAM,EAAE,CAACC,MAAAA,GAAAA;;;AAGrBA,YAAAA,MAAAA,CAAOC,IAAI,GAAG,aAAA;YACdD,MAAOD,CAAAA,MAAM,EAAEF,OAAAA,CAAQ,CAACf,KAAAA,GAAAA;gBACtBc,kBAAmBd,CAAAA,KAAAA,CAAAA;AACnBA,gBAAAA,KAAAA,CAAMoB,IAAI,GAAG;AAAES,oBAAAA;AAAQ,iBAAA;AACzB,aAAA,CAAA;AAEA,YAAA,OAAOnB,MAAOY,CAAAA,MAAM,CAACL,MAAM,CAACC,MAAAA,CAAAA;AAC9B,SAAA,CAAA;AACF;AACF,CAAA;;;;"}
@@ -0,0 +1,104 @@
1
+ 'use strict';
2
+
3
+ var Router = require('@koa/router');
4
+ var fp = require('lodash/fp');
5
+ var strapiUtils = require('@strapi/utils');
6
+ var composeEndpoint = require('./compose-endpoint.js');
7
+
8
+ const policyOrMiddlewareSchema = strapiUtils.yup.lazy((value)=>{
9
+ if (typeof value === 'string') {
10
+ return strapiUtils.yup.string().required();
11
+ }
12
+ if (typeof value === 'function') {
13
+ return strapiUtils.yup.mixed().isFunction();
14
+ }
15
+ return strapiUtils.yup.object({
16
+ name: strapiUtils.yup.string().required(),
17
+ options: strapiUtils.yup.object().notRequired()
18
+ });
19
+ });
20
+ const routeSchema = strapiUtils.yup.object({
21
+ method: strapiUtils.yup.string().oneOf([
22
+ 'GET',
23
+ 'POST',
24
+ 'PUT',
25
+ 'PATCH',
26
+ 'DELETE',
27
+ 'ALL'
28
+ ]).required(),
29
+ path: strapiUtils.yup.string().required(),
30
+ handler: strapiUtils.yup.lazy((value)=>{
31
+ if (typeof value === 'string') {
32
+ return strapiUtils.yup.string().required();
33
+ }
34
+ if (Array.isArray(value)) {
35
+ return strapiUtils.yup.array().required();
36
+ }
37
+ return strapiUtils.yup.mixed().isFunction().required();
38
+ }),
39
+ config: strapiUtils.yup.object({
40
+ auth: strapiUtils.yup.lazy((value)=>{
41
+ if (value === false) {
42
+ return strapiUtils.yup.boolean().required();
43
+ }
44
+ return strapiUtils.yup.object({
45
+ scope: strapiUtils.yup.array().of(strapiUtils.yup.string()).required()
46
+ });
47
+ }),
48
+ policies: strapiUtils.yup.array()// FIXME: fixed in yup v1
49
+ .of(policyOrMiddlewareSchema).notRequired(),
50
+ middlewares: strapiUtils.yup.array()// FIXME: fixed in yup v1
51
+ .of(policyOrMiddlewareSchema).notRequired()
52
+ }).notRequired()
53
+ });
54
+ const validateRouteConfig = (routeConfig)=>{
55
+ try {
56
+ return routeSchema.validateSync(routeConfig, {
57
+ strict: true,
58
+ abortEarly: false,
59
+ stripUnknown: true
60
+ });
61
+ } catch (error) {
62
+ if (error instanceof strapiUtils.yup.ValidationError) {
63
+ throw new Error(`Invalid route config ${error.message}`);
64
+ }
65
+ }
66
+ };
67
+ const createRouteManager = (strapi, opts = {})=>{
68
+ const { type } = opts;
69
+ const composeEndpoint$1 = composeEndpoint(strapi);
70
+ const createRoute = (route, router)=>{
71
+ validateRouteConfig(route);
72
+ // NOTE: the router type is used to tag controller actions and for authentication / authorization so we need to pass this info down to the route level
73
+ const routeWithInfo = Object.assign(route, {
74
+ info: {
75
+ ...route.info ?? {},
76
+ type: type || 'api'
77
+ }
78
+ });
79
+ composeEndpoint$1(routeWithInfo, {
80
+ router
81
+ });
82
+ };
83
+ const addRoutes = (routes, router)=>{
84
+ if (Array.isArray(routes)) {
85
+ routes.forEach((route)=>createRoute(route, router));
86
+ } else if (routes.routes) {
87
+ const subRouter = new Router({
88
+ prefix: routes.prefix
89
+ });
90
+ routes.routes.forEach((route)=>{
91
+ const hasPrefix = fp.has('prefix', route.config);
92
+ createRoute(route, hasPrefix ? router : subRouter);
93
+ });
94
+ return router.use(subRouter.routes(), subRouter.allowedMethods());
95
+ }
96
+ };
97
+ return {
98
+ addRoutes
99
+ };
100
+ };
101
+
102
+ exports.createRouteManager = createRouteManager;
103
+ exports.validateRouteConfig = validateRouteConfig;
104
+ //# sourceMappingURL=routing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing.js","sources":["../../../src/services/server/routing.ts"],"sourcesContent":["import Router from '@koa/router';\nimport { has } from 'lodash/fp';\nimport { yup } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nimport createEndpointComposer from './compose-endpoint';\n\nconst policyOrMiddlewareSchema = yup.lazy((value) => {\n if (typeof value === 'string') {\n return yup.string().required();\n }\n\n if (typeof value === 'function') {\n return yup.mixed().isFunction();\n }\n\n return yup.object({\n name: yup.string().required(),\n options: yup.object().notRequired(), // any options\n });\n});\n\nconst routeSchema = yup.object({\n method: yup.string().oneOf(['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'ALL']).required(),\n path: yup.string().required(),\n handler: yup.lazy((value) => {\n if (typeof value === 'string') {\n return yup.string().required();\n }\n\n if (Array.isArray(value)) {\n return yup.array().required();\n }\n\n return yup.mixed().isFunction().required();\n }),\n config: yup\n .object({\n auth: yup.lazy((value) => {\n if (value === false) {\n return yup.boolean().required();\n }\n\n return yup.object({\n scope: yup.array().of(yup.string()).required(),\n });\n }),\n policies: yup\n .array()\n // FIXME: fixed in yup v1\n .of(policyOrMiddlewareSchema as any)\n .notRequired(),\n middlewares: yup\n .array()\n // FIXME: fixed in yup v1\n .of(policyOrMiddlewareSchema as any)\n .notRequired(),\n })\n .notRequired(),\n});\n\nconst validateRouteConfig = (routeConfig: Core.RouteInput) => {\n try {\n return routeSchema.validateSync(routeConfig, {\n strict: true,\n abortEarly: false,\n stripUnknown: true,\n });\n } catch (error) {\n if (error instanceof yup.ValidationError) {\n throw new Error(`Invalid route config ${error.message}`);\n }\n }\n};\n\nconst createRouteManager = (strapi: Core.Strapi, opts: { type?: string } = {}) => {\n const { type } = opts;\n\n const composeEndpoint = createEndpointComposer(strapi);\n\n const createRoute = (route: Core.RouteInput, router: Router) => {\n validateRouteConfig(route);\n\n // NOTE: the router type is used to tag controller actions and for authentication / authorization so we need to pass this info down to the route level\n const routeWithInfo = Object.assign(route, {\n info: {\n ...(route.info ?? {}),\n type: type || 'api',\n },\n });\n\n composeEndpoint(routeWithInfo, { router });\n };\n\n const addRoutes = (routes: Core.Router | Core.RouteInput[], router: Router) => {\n if (Array.isArray(routes)) {\n routes.forEach((route) => createRoute(route, router));\n } else if (routes.routes) {\n const subRouter = new Router({ prefix: routes.prefix });\n\n routes.routes.forEach((route) => {\n const hasPrefix = has('prefix', route.config);\n createRoute(route, hasPrefix ? router : subRouter);\n });\n\n return router.use(subRouter.routes(), subRouter.allowedMethods());\n }\n };\n\n return {\n addRoutes,\n };\n};\n\nexport { validateRouteConfig, createRouteManager };\n"],"names":["policyOrMiddlewareSchema","yup","lazy","value","string","required","mixed","isFunction","object","name","options","notRequired","routeSchema","method","oneOf","path","handler","Array","isArray","array","config","auth","boolean","scope","of","policies","middlewares","validateRouteConfig","routeConfig","validateSync","strict","abortEarly","stripUnknown","error","ValidationError","Error","message","createRouteManager","strapi","opts","type","composeEndpoint","createEndpointComposer","createRoute","route","router","routeWithInfo","Object","assign","info","addRoutes","routes","forEach","subRouter","Router","prefix","hasPrefix","has","use","allowedMethods"],"mappings":"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"}