@strapi/core 0.0.0-experimental.39c0188c3aa01bec7b64b948211571d5159e811d → 0.0.0-experimental.3b5c5bba2cb7af3269b82eddcc3fb81172ce3ba4

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

Potentially problematic release.


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

Files changed (695) hide show
  1. package/dist/Strapi.d.ts.map +1 -1
  2. package/dist/Strapi.js +457 -0
  3. package/dist/Strapi.js.map +1 -0
  4. package/dist/Strapi.mjs +436 -0
  5. package/dist/Strapi.mjs.map +1 -0
  6. package/dist/compile.js +27 -0
  7. package/dist/compile.js.map +1 -0
  8. package/dist/compile.mjs +25 -0
  9. package/dist/compile.mjs.map +1 -0
  10. package/dist/configuration/config-loader.js +119 -0
  11. package/dist/configuration/config-loader.js.map +1 -0
  12. package/dist/configuration/config-loader.mjs +117 -0
  13. package/dist/configuration/config-loader.mjs.map +1 -0
  14. package/dist/configuration/get-dirs.js +33 -0
  15. package/dist/configuration/get-dirs.js.map +1 -0
  16. package/dist/configuration/get-dirs.mjs +31 -0
  17. package/dist/configuration/get-dirs.mjs.map +1 -0
  18. package/dist/configuration/index.d.ts +1 -0
  19. package/dist/configuration/index.d.ts.map +1 -1
  20. package/dist/configuration/index.js +92 -0
  21. package/dist/configuration/index.js.map +1 -0
  22. package/dist/configuration/index.mjs +90 -0
  23. package/dist/configuration/index.mjs.map +1 -0
  24. package/dist/configuration/urls.d.ts.map +1 -1
  25. package/dist/configuration/urls.js +81 -0
  26. package/dist/configuration/urls.js.map +1 -0
  27. package/dist/configuration/urls.mjs +77 -0
  28. package/dist/configuration/urls.mjs.map +1 -0
  29. package/dist/container.js +34 -0
  30. package/dist/container.js.map +1 -0
  31. package/dist/container.mjs +32 -0
  32. package/dist/container.mjs.map +1 -0
  33. package/dist/core-api/controller/collection-type.js +85 -0
  34. package/dist/core-api/controller/collection-type.js.map +1 -0
  35. package/dist/core-api/controller/collection-type.mjs +83 -0
  36. package/dist/core-api/controller/collection-type.mjs.map +1 -0
  37. package/dist/core-api/controller/index.js +67 -0
  38. package/dist/core-api/controller/index.js.map +1 -0
  39. package/dist/core-api/controller/index.mjs +65 -0
  40. package/dist/core-api/controller/index.mjs.map +1 -0
  41. package/dist/core-api/controller/single-type.js +47 -0
  42. package/dist/core-api/controller/single-type.js.map +1 -0
  43. package/dist/core-api/controller/single-type.mjs +45 -0
  44. package/dist/core-api/controller/single-type.mjs.map +1 -0
  45. package/dist/core-api/controller/transform.js +85 -0
  46. package/dist/core-api/controller/transform.js.map +1 -0
  47. package/dist/core-api/controller/transform.mjs +83 -0
  48. package/dist/core-api/controller/transform.mjs.map +1 -0
  49. package/dist/core-api/routes/index.js +69 -0
  50. package/dist/core-api/routes/index.js.map +1 -0
  51. package/dist/core-api/routes/index.mjs +67 -0
  52. package/dist/core-api/routes/index.mjs.map +1 -0
  53. package/dist/core-api/service/collection-type.js +80 -0
  54. package/dist/core-api/service/collection-type.js.map +1 -0
  55. package/dist/core-api/service/collection-type.mjs +77 -0
  56. package/dist/core-api/service/collection-type.mjs.map +1 -0
  57. package/dist/core-api/service/core-service.js +13 -0
  58. package/dist/core-api/service/core-service.js.map +1 -0
  59. package/dist/core-api/service/core-service.mjs +11 -0
  60. package/dist/core-api/service/core-service.mjs.map +1 -0
  61. package/dist/core-api/service/index.js +16 -0
  62. package/dist/core-api/service/index.js.map +1 -0
  63. package/dist/core-api/service/index.mjs +14 -0
  64. package/dist/core-api/service/index.mjs.map +1 -0
  65. package/dist/core-api/service/pagination.js +78 -0
  66. package/dist/core-api/service/pagination.js.map +1 -0
  67. package/dist/core-api/service/pagination.mjs +73 -0
  68. package/dist/core-api/service/pagination.mjs.map +1 -0
  69. package/dist/core-api/service/single-type.js +50 -0
  70. package/dist/core-api/service/single-type.js.map +1 -0
  71. package/dist/core-api/service/single-type.mjs +47 -0
  72. package/dist/core-api/service/single-type.mjs.map +1 -0
  73. package/dist/domain/content-type/index.js +106 -0
  74. package/dist/domain/content-type/index.js.map +1 -0
  75. package/dist/domain/content-type/index.mjs +103 -0
  76. package/dist/domain/content-type/index.mjs.map +1 -0
  77. package/dist/domain/content-type/validator.js +92 -0
  78. package/dist/domain/content-type/validator.js.map +1 -0
  79. package/dist/domain/content-type/validator.mjs +90 -0
  80. package/dist/domain/content-type/validator.mjs.map +1 -0
  81. package/dist/domain/module/index.js +116 -0
  82. package/dist/domain/module/index.js.map +1 -0
  83. package/dist/domain/module/index.mjs +114 -0
  84. package/dist/domain/module/index.mjs.map +1 -0
  85. package/dist/domain/module/validation.js +30 -0
  86. package/dist/domain/module/validation.js.map +1 -0
  87. package/dist/domain/module/validation.mjs +28 -0
  88. package/dist/domain/module/validation.mjs.map +1 -0
  89. package/dist/ee/index.d.ts +7 -0
  90. package/dist/ee/index.d.ts.map +1 -1
  91. package/dist/ee/index.js +218 -0
  92. package/dist/ee/index.js.map +1 -0
  93. package/dist/ee/index.mjs +216 -0
  94. package/dist/ee/index.mjs.map +1 -0
  95. package/dist/ee/license.d.ts +3 -1
  96. package/dist/ee/license.d.ts.map +1 -1
  97. package/dist/ee/license.js +121 -0
  98. package/dist/ee/license.js.map +1 -0
  99. package/dist/ee/license.mjs +115 -0
  100. package/dist/ee/license.mjs.map +1 -0
  101. package/dist/factories.js +85 -0
  102. package/dist/factories.js.map +1 -0
  103. package/dist/factories.mjs +80 -0
  104. package/dist/factories.mjs.map +1 -0
  105. package/dist/index.js +19 -9943
  106. package/dist/index.js.map +1 -1
  107. package/dist/index.mjs +17 -9920
  108. package/dist/index.mjs.map +1 -1
  109. package/dist/loaders/admin.d.ts.map +1 -1
  110. package/dist/loaders/admin.js +27 -0
  111. package/dist/loaders/admin.js.map +1 -0
  112. package/dist/loaders/admin.mjs +25 -0
  113. package/dist/loaders/admin.mjs.map +1 -0
  114. package/dist/loaders/apis.js +160 -0
  115. package/dist/loaders/apis.js.map +1 -0
  116. package/dist/loaders/apis.mjs +158 -0
  117. package/dist/loaders/apis.mjs.map +1 -0
  118. package/dist/loaders/components.js +37 -0
  119. package/dist/loaders/components.js.map +1 -0
  120. package/dist/loaders/components.mjs +35 -0
  121. package/dist/loaders/components.mjs.map +1 -0
  122. package/dist/loaders/index.js +26 -0
  123. package/dist/loaders/index.js.map +1 -0
  124. package/dist/loaders/index.mjs +24 -0
  125. package/dist/loaders/index.mjs.map +1 -0
  126. package/dist/loaders/middlewares.js +35 -0
  127. package/dist/loaders/middlewares.js.map +1 -0
  128. package/dist/loaders/middlewares.mjs +33 -0
  129. package/dist/loaders/middlewares.mjs.map +1 -0
  130. package/dist/loaders/plugins/get-enabled-plugins.js +136 -0
  131. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -0
  132. package/dist/loaders/plugins/get-enabled-plugins.mjs +134 -0
  133. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -0
  134. package/dist/loaders/plugins/get-user-plugins-config.js +28 -0
  135. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -0
  136. package/dist/loaders/plugins/get-user-plugins-config.mjs +26 -0
  137. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -0
  138. package/dist/loaders/plugins/index.js +155 -0
  139. package/dist/loaders/plugins/index.js.map +1 -0
  140. package/dist/loaders/plugins/index.mjs +134 -0
  141. package/dist/loaders/plugins/index.mjs.map +1 -0
  142. package/dist/loaders/policies.js +29 -0
  143. package/dist/loaders/policies.js.map +1 -0
  144. package/dist/loaders/policies.mjs +27 -0
  145. package/dist/loaders/policies.mjs.map +1 -0
  146. package/dist/loaders/sanitizers.js +12 -0
  147. package/dist/loaders/sanitizers.js.map +1 -0
  148. package/dist/loaders/sanitizers.mjs +10 -0
  149. package/dist/loaders/sanitizers.mjs.map +1 -0
  150. package/dist/loaders/src-index.js +41 -0
  151. package/dist/loaders/src-index.js.map +1 -0
  152. package/dist/loaders/src-index.mjs +39 -0
  153. package/dist/loaders/src-index.mjs.map +1 -0
  154. package/dist/loaders/validators.js +11 -0
  155. package/dist/loaders/validators.js.map +1 -0
  156. package/dist/loaders/validators.mjs +9 -0
  157. package/dist/loaders/validators.mjs.map +1 -0
  158. package/dist/middlewares/body.js +69 -0
  159. package/dist/middlewares/body.js.map +1 -0
  160. package/dist/middlewares/body.mjs +67 -0
  161. package/dist/middlewares/body.mjs.map +1 -0
  162. package/dist/middlewares/compression.js +8 -0
  163. package/dist/middlewares/compression.js.map +1 -0
  164. package/dist/middlewares/compression.mjs +6 -0
  165. package/dist/middlewares/compression.mjs.map +1 -0
  166. package/dist/middlewares/cors.js +64 -0
  167. package/dist/middlewares/cors.js.map +1 -0
  168. package/dist/middlewares/cors.mjs +62 -0
  169. package/dist/middlewares/cors.mjs.map +1 -0
  170. package/dist/middlewares/errors.js +35 -0
  171. package/dist/middlewares/errors.js.map +1 -0
  172. package/dist/middlewares/errors.mjs +33 -0
  173. package/dist/middlewares/errors.mjs.map +1 -0
  174. package/dist/middlewares/favicon.js +32 -0
  175. package/dist/middlewares/favicon.js.map +1 -0
  176. package/dist/middlewares/favicon.mjs +30 -0
  177. package/dist/middlewares/favicon.mjs.map +1 -0
  178. package/dist/middlewares/index.js +36 -0
  179. package/dist/middlewares/index.js.map +1 -0
  180. package/dist/middlewares/index.mjs +34 -0
  181. package/dist/middlewares/index.mjs.map +1 -0
  182. package/dist/middlewares/ip.js +8 -0
  183. package/dist/middlewares/ip.js.map +1 -0
  184. package/dist/middlewares/ip.mjs +6 -0
  185. package/dist/middlewares/ip.mjs.map +1 -0
  186. package/dist/middlewares/logger.js +13 -0
  187. package/dist/middlewares/logger.js.map +1 -0
  188. package/dist/middlewares/logger.mjs +11 -0
  189. package/dist/middlewares/logger.mjs.map +1 -0
  190. package/dist/middlewares/powered-by.js +18 -0
  191. package/dist/middlewares/powered-by.js.map +1 -0
  192. package/dist/middlewares/powered-by.mjs +16 -0
  193. package/dist/middlewares/powered-by.mjs.map +1 -0
  194. package/dist/middlewares/public.js +38 -0
  195. package/dist/middlewares/public.js.map +1 -0
  196. package/dist/middlewares/public.mjs +36 -0
  197. package/dist/middlewares/public.mjs.map +1 -0
  198. package/dist/middlewares/query.js +43 -0
  199. package/dist/middlewares/query.js.map +1 -0
  200. package/dist/middlewares/query.mjs +41 -0
  201. package/dist/middlewares/query.mjs.map +1 -0
  202. package/dist/middlewares/response-time.js +13 -0
  203. package/dist/middlewares/response-time.js.map +1 -0
  204. package/dist/middlewares/response-time.mjs +11 -0
  205. package/dist/middlewares/response-time.mjs.map +1 -0
  206. package/dist/middlewares/responses.js +17 -0
  207. package/dist/middlewares/responses.js.map +1 -0
  208. package/dist/middlewares/responses.mjs +15 -0
  209. package/dist/middlewares/responses.mjs.map +1 -0
  210. package/dist/middlewares/security.js +116 -0
  211. package/dist/middlewares/security.js.map +1 -0
  212. package/dist/middlewares/security.mjs +114 -0
  213. package/dist/middlewares/security.mjs.map +1 -0
  214. package/dist/middlewares/session.js +31 -0
  215. package/dist/middlewares/session.js.map +1 -0
  216. package/dist/middlewares/session.mjs +29 -0
  217. package/dist/middlewares/session.mjs.map +1 -0
  218. package/dist/migrations/database/5.0.0-discard-drafts.js +168 -0
  219. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
  220. package/dist/migrations/database/5.0.0-discard-drafts.mjs +165 -0
  221. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
  222. package/dist/migrations/draft-publish.js +69 -0
  223. package/dist/migrations/draft-publish.js.map +1 -0
  224. package/dist/migrations/draft-publish.mjs +66 -0
  225. package/dist/migrations/draft-publish.mjs.map +1 -0
  226. package/dist/migrations/i18n.js +71 -0
  227. package/dist/migrations/i18n.js.map +1 -0
  228. package/dist/migrations/i18n.mjs +68 -0
  229. package/dist/migrations/i18n.mjs.map +1 -0
  230. package/dist/migrations/index.js +29 -0
  231. package/dist/migrations/index.js.map +1 -0
  232. package/dist/migrations/index.mjs +26 -0
  233. package/dist/migrations/index.mjs.map +1 -0
  234. package/dist/package.json.js +184 -0
  235. package/dist/package.json.js.map +1 -0
  236. package/dist/package.json.mjs +161 -0
  237. package/dist/package.json.mjs.map +1 -0
  238. package/dist/providers/admin.js +30 -0
  239. package/dist/providers/admin.js.map +1 -0
  240. package/dist/providers/admin.mjs +28 -0
  241. package/dist/providers/admin.mjs.map +1 -0
  242. package/dist/providers/coreStore.js +16 -0
  243. package/dist/providers/coreStore.js.map +1 -0
  244. package/dist/providers/coreStore.mjs +14 -0
  245. package/dist/providers/coreStore.mjs.map +1 -0
  246. package/dist/providers/cron.js +23 -0
  247. package/dist/providers/cron.js.map +1 -0
  248. package/dist/providers/cron.mjs +21 -0
  249. package/dist/providers/cron.mjs.map +1 -0
  250. package/dist/providers/index.js +20 -0
  251. package/dist/providers/index.js.map +1 -0
  252. package/dist/providers/index.mjs +18 -0
  253. package/dist/providers/index.mjs.map +1 -0
  254. package/dist/providers/provider.js +6 -0
  255. package/dist/providers/provider.js.map +1 -0
  256. package/dist/providers/provider.mjs +4 -0
  257. package/dist/providers/provider.mjs.map +1 -0
  258. package/dist/providers/registries.js +40 -0
  259. package/dist/providers/registries.js.map +1 -0
  260. package/dist/providers/registries.mjs +38 -0
  261. package/dist/providers/registries.mjs.map +1 -0
  262. package/dist/providers/telemetry.js +22 -0
  263. package/dist/providers/telemetry.js.map +1 -0
  264. package/dist/providers/telemetry.mjs +20 -0
  265. package/dist/providers/telemetry.mjs.map +1 -0
  266. package/dist/providers/webhooks.js +32 -0
  267. package/dist/providers/webhooks.js.map +1 -0
  268. package/dist/providers/webhooks.mjs +30 -0
  269. package/dist/providers/webhooks.mjs.map +1 -0
  270. package/dist/registries/apis.js +26 -0
  271. package/dist/registries/apis.js.map +1 -0
  272. package/dist/registries/apis.mjs +24 -0
  273. package/dist/registries/apis.mjs.map +1 -0
  274. package/dist/registries/components.js +43 -0
  275. package/dist/registries/components.js.map +1 -0
  276. package/dist/registries/components.mjs +41 -0
  277. package/dist/registries/components.mjs.map +1 -0
  278. package/dist/registries/content-types.js +65 -0
  279. package/dist/registries/content-types.js.map +1 -0
  280. package/dist/registries/content-types.mjs +63 -0
  281. package/dist/registries/content-types.mjs.map +1 -0
  282. package/dist/registries/controllers.js +79 -0
  283. package/dist/registries/controllers.js.map +1 -0
  284. package/dist/registries/controllers.mjs +77 -0
  285. package/dist/registries/controllers.mjs.map +1 -0
  286. package/dist/registries/custom-fields.js +81 -0
  287. package/dist/registries/custom-fields.js.map +1 -0
  288. package/dist/registries/custom-fields.mjs +79 -0
  289. package/dist/registries/custom-fields.mjs.map +1 -0
  290. package/dist/registries/hooks.js +55 -0
  291. package/dist/registries/hooks.js.map +1 -0
  292. package/dist/registries/hooks.mjs +53 -0
  293. package/dist/registries/hooks.mjs.map +1 -0
  294. package/dist/registries/middlewares.js +58 -0
  295. package/dist/registries/middlewares.js.map +1 -0
  296. package/dist/registries/middlewares.mjs +56 -0
  297. package/dist/registries/middlewares.mjs.map +1 -0
  298. package/dist/registries/models.js +17 -0
  299. package/dist/registries/models.js.map +1 -0
  300. package/dist/registries/models.mjs +15 -0
  301. package/dist/registries/models.mjs.map +1 -0
  302. package/dist/registries/modules.js +42 -0
  303. package/dist/registries/modules.js.map +1 -0
  304. package/dist/registries/modules.mjs +40 -0
  305. package/dist/registries/modules.mjs.map +1 -0
  306. package/dist/registries/namespace.js +28 -0
  307. package/dist/registries/namespace.js.map +1 -0
  308. package/dist/registries/namespace.mjs +24 -0
  309. package/dist/registries/namespace.mjs.map +1 -0
  310. package/dist/registries/plugins.js +26 -0
  311. package/dist/registries/plugins.js.map +1 -0
  312. package/dist/registries/plugins.mjs +24 -0
  313. package/dist/registries/plugins.mjs.map +1 -0
  314. package/dist/registries/policies.js +115 -0
  315. package/dist/registries/policies.js.map +1 -0
  316. package/dist/registries/policies.mjs +113 -0
  317. package/dist/registries/policies.mjs.map +1 -0
  318. package/dist/registries/sanitizers.js +26 -0
  319. package/dist/registries/sanitizers.js.map +1 -0
  320. package/dist/registries/sanitizers.mjs +24 -0
  321. package/dist/registries/sanitizers.mjs.map +1 -0
  322. package/dist/registries/services.js +80 -0
  323. package/dist/registries/services.js.map +1 -0
  324. package/dist/registries/services.mjs +78 -0
  325. package/dist/registries/services.mjs.map +1 -0
  326. package/dist/registries/validators.js +26 -0
  327. package/dist/registries/validators.js.map +1 -0
  328. package/dist/registries/validators.mjs +24 -0
  329. package/dist/registries/validators.mjs.map +1 -0
  330. package/dist/services/auth/index.js +81 -0
  331. package/dist/services/auth/index.js.map +1 -0
  332. package/dist/services/auth/index.mjs +79 -0
  333. package/dist/services/auth/index.mjs.map +1 -0
  334. package/dist/services/config.js +51 -0
  335. package/dist/services/config.js.map +1 -0
  336. package/dist/services/config.mjs +49 -0
  337. package/dist/services/config.mjs.map +1 -0
  338. package/dist/services/content-api/index.js +86 -0
  339. package/dist/services/content-api/index.js.map +1 -0
  340. package/dist/services/content-api/index.mjs +84 -0
  341. package/dist/services/content-api/index.mjs.map +1 -0
  342. package/dist/services/content-api/permissions/engine.js +10 -0
  343. package/dist/services/content-api/permissions/engine.js.map +1 -0
  344. package/dist/services/content-api/permissions/engine.mjs +8 -0
  345. package/dist/services/content-api/permissions/engine.mjs.map +1 -0
  346. package/dist/services/content-api/permissions/index.js +107 -0
  347. package/dist/services/content-api/permissions/index.js.map +1 -0
  348. package/dist/services/content-api/permissions/index.mjs +105 -0
  349. package/dist/services/content-api/permissions/index.mjs.map +1 -0
  350. package/dist/services/content-api/permissions/providers/action.js +19 -0
  351. package/dist/services/content-api/permissions/providers/action.js.map +1 -0
  352. package/dist/services/content-api/permissions/providers/action.mjs +17 -0
  353. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -0
  354. package/dist/services/content-api/permissions/providers/condition.js +19 -0
  355. package/dist/services/content-api/permissions/providers/condition.js.map +1 -0
  356. package/dist/services/content-api/permissions/providers/condition.mjs +17 -0
  357. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -0
  358. package/dist/services/core-store.d.ts +2 -2
  359. package/dist/services/core-store.d.ts.map +1 -1
  360. package/dist/services/core-store.js +127 -0
  361. package/dist/services/core-store.js.map +1 -0
  362. package/dist/services/core-store.mjs +124 -0
  363. package/dist/services/core-store.mjs.map +1 -0
  364. package/dist/services/cron.js +77 -0
  365. package/dist/services/cron.js.map +1 -0
  366. package/dist/services/cron.mjs +75 -0
  367. package/dist/services/cron.mjs.map +1 -0
  368. package/dist/services/custom-fields.js +12 -0
  369. package/dist/services/custom-fields.js.map +1 -0
  370. package/dist/services/custom-fields.mjs +10 -0
  371. package/dist/services/custom-fields.mjs.map +1 -0
  372. package/dist/services/document-service/attributes/index.js +27 -0
  373. package/dist/services/document-service/attributes/index.js.map +1 -0
  374. package/dist/services/document-service/attributes/index.mjs +25 -0
  375. package/dist/services/document-service/attributes/index.mjs.map +1 -0
  376. package/dist/services/document-service/attributes/transforms.js +21 -0
  377. package/dist/services/document-service/attributes/transforms.js.map +1 -0
  378. package/dist/services/document-service/attributes/transforms.mjs +19 -0
  379. package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
  380. package/dist/services/document-service/common.js +8 -0
  381. package/dist/services/document-service/common.js.map +1 -0
  382. package/dist/services/document-service/common.mjs +6 -0
  383. package/dist/services/document-service/common.mjs.map +1 -0
  384. package/dist/services/document-service/components.js +286 -0
  385. package/dist/services/document-service/components.js.map +1 -0
  386. package/dist/services/document-service/components.mjs +278 -0
  387. package/dist/services/document-service/components.mjs.map +1 -0
  388. package/dist/services/document-service/draft-and-publish.js +109 -0
  389. package/dist/services/document-service/draft-and-publish.js.map +1 -0
  390. package/dist/services/document-service/draft-and-publish.mjs +102 -0
  391. package/dist/services/document-service/draft-and-publish.mjs.map +1 -0
  392. package/dist/services/document-service/entries.d.ts.map +1 -1
  393. package/dist/services/document-service/entries.js +155 -0
  394. package/dist/services/document-service/entries.js.map +1 -0
  395. package/dist/services/document-service/entries.mjs +153 -0
  396. package/dist/services/document-service/entries.mjs.map +1 -0
  397. package/dist/services/document-service/events.js +59 -0
  398. package/dist/services/document-service/events.js.map +1 -0
  399. package/dist/services/document-service/events.mjs +57 -0
  400. package/dist/services/document-service/events.mjs.map +1 -0
  401. package/dist/services/document-service/index.js +56 -0
  402. package/dist/services/document-service/index.js.map +1 -0
  403. package/dist/services/document-service/index.mjs +54 -0
  404. package/dist/services/document-service/index.mjs.map +1 -0
  405. package/dist/services/document-service/internationalization.d.ts +6 -1
  406. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  407. package/dist/services/document-service/internationalization.js +111 -0
  408. package/dist/services/document-service/internationalization.js.map +1 -0
  409. package/dist/services/document-service/internationalization.mjs +105 -0
  410. package/dist/services/document-service/internationalization.mjs.map +1 -0
  411. package/dist/services/document-service/middlewares/errors.js +29 -0
  412. package/dist/services/document-service/middlewares/errors.js.map +1 -0
  413. package/dist/services/document-service/middlewares/errors.mjs +27 -0
  414. package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
  415. package/dist/services/document-service/middlewares/middleware-manager.js +51 -0
  416. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
  417. package/dist/services/document-service/middlewares/middleware-manager.mjs +49 -0
  418. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
  419. package/dist/services/document-service/params.js +14 -0
  420. package/dist/services/document-service/params.js.map +1 -0
  421. package/dist/services/document-service/params.mjs +12 -0
  422. package/dist/services/document-service/params.mjs.map +1 -0
  423. package/dist/services/document-service/repository.d.ts.map +1 -1
  424. package/dist/services/document-service/repository.js +365 -0
  425. package/dist/services/document-service/repository.js.map +1 -0
  426. package/dist/services/document-service/repository.mjs +363 -0
  427. package/dist/services/document-service/repository.mjs.map +1 -0
  428. package/dist/services/document-service/transform/data.js +25 -0
  429. package/dist/services/document-service/transform/data.js.map +1 -0
  430. package/dist/services/document-service/transform/data.mjs +23 -0
  431. package/dist/services/document-service/transform/data.mjs.map +1 -0
  432. package/dist/services/document-service/transform/fields.js +33 -0
  433. package/dist/services/document-service/transform/fields.js.map +1 -0
  434. package/dist/services/document-service/transform/fields.mjs +31 -0
  435. package/dist/services/document-service/transform/fields.mjs.map +1 -0
  436. package/dist/services/document-service/transform/id-map.js +125 -0
  437. package/dist/services/document-service/transform/id-map.js.map +1 -0
  438. package/dist/services/document-service/transform/id-map.mjs +123 -0
  439. package/dist/services/document-service/transform/id-map.mjs.map +1 -0
  440. package/dist/services/document-service/transform/id-transform.js +41 -0
  441. package/dist/services/document-service/transform/id-transform.js.map +1 -0
  442. package/dist/services/document-service/transform/id-transform.mjs +39 -0
  443. package/dist/services/document-service/transform/id-transform.mjs.map +1 -0
  444. package/dist/services/document-service/transform/populate.js +26 -0
  445. package/dist/services/document-service/transform/populate.js.map +1 -0
  446. package/dist/services/document-service/transform/populate.mjs +24 -0
  447. package/dist/services/document-service/transform/populate.mjs.map +1 -0
  448. package/dist/services/document-service/transform/query.js +14 -0
  449. package/dist/services/document-service/transform/query.js.map +1 -0
  450. package/dist/services/document-service/transform/query.mjs +12 -0
  451. package/dist/services/document-service/transform/query.mjs.map +1 -0
  452. package/dist/services/document-service/transform/relations/extract/data-ids.js +80 -0
  453. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -0
  454. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +78 -0
  455. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -0
  456. package/dist/services/document-service/transform/relations/transform/data-ids.js +110 -0
  457. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -0
  458. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +108 -0
  459. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -0
  460. package/dist/services/document-service/transform/relations/transform/default-locale.js +50 -0
  461. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
  462. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +48 -0
  463. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
  464. package/dist/services/document-service/transform/relations/utils/dp.js +56 -0
  465. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -0
  466. package/dist/services/document-service/transform/relations/utils/dp.mjs +54 -0
  467. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -0
  468. package/dist/services/document-service/transform/relations/utils/i18n.js +27 -0
  469. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -0
  470. package/dist/services/document-service/transform/relations/utils/i18n.mjs +23 -0
  471. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -0
  472. package/dist/services/document-service/transform/relations/utils/map-relation.js +130 -0
  473. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
  474. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +127 -0
  475. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
  476. package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
  477. package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -0
  478. package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
  479. package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
  480. package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
  481. package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
  482. package/dist/services/document-service/utils/populate.js +71 -0
  483. package/dist/services/document-service/utils/populate.js.map +1 -0
  484. package/dist/services/document-service/utils/populate.mjs +69 -0
  485. package/dist/services/document-service/utils/populate.mjs.map +1 -0
  486. package/dist/services/document-service/utils/unidirectional-relations.js +116 -0
  487. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
  488. package/dist/services/document-service/utils/unidirectional-relations.mjs +113 -0
  489. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
  490. package/dist/services/entity-service/index.js +238 -0
  491. package/dist/services/entity-service/index.js.map +1 -0
  492. package/dist/services/entity-service/index.mjs +236 -0
  493. package/dist/services/entity-service/index.mjs.map +1 -0
  494. package/dist/services/entity-validator/blocks-validator.js +160 -0
  495. package/dist/services/entity-validator/blocks-validator.js.map +1 -0
  496. package/dist/services/entity-validator/blocks-validator.mjs +158 -0
  497. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -0
  498. package/dist/services/entity-validator/index.d.ts.map +1 -1
  499. package/dist/services/entity-validator/index.js +393 -0
  500. package/dist/services/entity-validator/index.js.map +1 -0
  501. package/dist/services/entity-validator/index.mjs +391 -0
  502. package/dist/services/entity-validator/index.mjs.map +1 -0
  503. package/dist/services/entity-validator/validators.d.ts +1 -0
  504. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  505. package/dist/services/entity-validator/validators.js +302 -0
  506. package/dist/services/entity-validator/validators.js.map +1 -0
  507. package/dist/services/entity-validator/validators.mjs +293 -0
  508. package/dist/services/entity-validator/validators.mjs.map +1 -0
  509. package/dist/services/errors.js +76 -0
  510. package/dist/services/errors.js.map +1 -0
  511. package/dist/services/errors.mjs +72 -0
  512. package/dist/services/errors.mjs.map +1 -0
  513. package/dist/services/event-hub.js +85 -0
  514. package/dist/services/event-hub.js.map +1 -0
  515. package/dist/services/event-hub.mjs +83 -0
  516. package/dist/services/event-hub.mjs.map +1 -0
  517. package/dist/services/features.js +22 -0
  518. package/dist/services/features.js.map +1 -0
  519. package/dist/services/features.mjs +20 -0
  520. package/dist/services/features.mjs.map +1 -0
  521. package/dist/services/fs.js +52 -0
  522. package/dist/services/fs.js.map +1 -0
  523. package/dist/services/fs.mjs +50 -0
  524. package/dist/services/fs.mjs.map +1 -0
  525. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  526. package/dist/services/metrics/admin-user-hash.js +16 -0
  527. package/dist/services/metrics/admin-user-hash.js.map +1 -0
  528. package/dist/services/metrics/admin-user-hash.mjs +14 -0
  529. package/dist/services/metrics/admin-user-hash.mjs.map +1 -0
  530. package/dist/services/metrics/index.d.ts +1 -1
  531. package/dist/services/metrics/index.d.ts.map +1 -1
  532. package/dist/services/metrics/index.js +52 -0
  533. package/dist/services/metrics/index.js.map +1 -0
  534. package/dist/services/metrics/index.mjs +50 -0
  535. package/dist/services/metrics/index.mjs.map +1 -0
  536. package/dist/services/metrics/is-truthy.js +16 -0
  537. package/dist/services/metrics/is-truthy.js.map +1 -0
  538. package/dist/services/metrics/is-truthy.mjs +14 -0
  539. package/dist/services/metrics/is-truthy.mjs.map +1 -0
  540. package/dist/services/metrics/middleware.js +40 -0
  541. package/dist/services/metrics/middleware.js.map +1 -0
  542. package/dist/services/metrics/middleware.mjs +38 -0
  543. package/dist/services/metrics/middleware.mjs.map +1 -0
  544. package/dist/services/metrics/rate-limiter.js +26 -0
  545. package/dist/services/metrics/rate-limiter.js.map +1 -0
  546. package/dist/services/metrics/rate-limiter.mjs +24 -0
  547. package/dist/services/metrics/rate-limiter.mjs.map +1 -0
  548. package/dist/services/metrics/sender.d.ts.map +1 -1
  549. package/dist/services/metrics/sender.js +85 -0
  550. package/dist/services/metrics/sender.js.map +1 -0
  551. package/dist/services/metrics/sender.mjs +83 -0
  552. package/dist/services/metrics/sender.mjs.map +1 -0
  553. package/dist/services/query-params.js +15 -0
  554. package/dist/services/query-params.js.map +1 -0
  555. package/dist/services/query-params.mjs +13 -0
  556. package/dist/services/query-params.mjs.map +1 -0
  557. package/dist/services/reloader.js +39 -0
  558. package/dist/services/reloader.js.map +1 -0
  559. package/dist/services/reloader.mjs +37 -0
  560. package/dist/services/reloader.mjs.map +1 -0
  561. package/dist/services/request-context.js +16 -0
  562. package/dist/services/request-context.js.map +1 -0
  563. package/dist/services/request-context.mjs +14 -0
  564. package/dist/services/request-context.mjs.map +1 -0
  565. package/dist/services/server/admin-api.js +14 -0
  566. package/dist/services/server/admin-api.js.map +1 -0
  567. package/dist/services/server/admin-api.mjs +12 -0
  568. package/dist/services/server/admin-api.mjs.map +1 -0
  569. package/dist/services/server/api.js +36 -0
  570. package/dist/services/server/api.js.map +1 -0
  571. package/dist/services/server/api.mjs +34 -0
  572. package/dist/services/server/api.mjs.map +1 -0
  573. package/dist/services/server/compose-endpoint.js +128 -0
  574. package/dist/services/server/compose-endpoint.js.map +1 -0
  575. package/dist/services/server/compose-endpoint.mjs +126 -0
  576. package/dist/services/server/compose-endpoint.mjs.map +1 -0
  577. package/dist/services/server/content-api.js +14 -0
  578. package/dist/services/server/content-api.js.map +1 -0
  579. package/dist/services/server/content-api.mjs +12 -0
  580. package/dist/services/server/content-api.mjs.map +1 -0
  581. package/dist/services/server/http-server.js +54 -0
  582. package/dist/services/server/http-server.js.map +1 -0
  583. package/dist/services/server/http-server.mjs +52 -0
  584. package/dist/services/server/http-server.mjs.map +1 -0
  585. package/dist/services/server/index.js +90 -0
  586. package/dist/services/server/index.js.map +1 -0
  587. package/dist/services/server/index.mjs +88 -0
  588. package/dist/services/server/index.mjs.map +1 -0
  589. package/dist/services/server/koa.js +54 -0
  590. package/dist/services/server/koa.js.map +1 -0
  591. package/dist/services/server/koa.mjs +52 -0
  592. package/dist/services/server/koa.mjs.map +1 -0
  593. package/dist/services/server/middleware.js +96 -0
  594. package/dist/services/server/middleware.js.map +1 -0
  595. package/dist/services/server/middleware.mjs +93 -0
  596. package/dist/services/server/middleware.mjs.map +1 -0
  597. package/dist/services/server/policy.js +27 -0
  598. package/dist/services/server/policy.js.map +1 -0
  599. package/dist/services/server/policy.mjs +25 -0
  600. package/dist/services/server/policy.mjs.map +1 -0
  601. package/dist/services/server/register-middlewares.js +79 -0
  602. package/dist/services/server/register-middlewares.js.map +1 -0
  603. package/dist/services/server/register-middlewares.mjs +77 -0
  604. package/dist/services/server/register-middlewares.mjs.map +1 -0
  605. package/dist/services/server/register-routes.js +99 -0
  606. package/dist/services/server/register-routes.js.map +1 -0
  607. package/dist/services/server/register-routes.mjs +97 -0
  608. package/dist/services/server/register-routes.mjs.map +1 -0
  609. package/dist/services/server/routing.js +104 -0
  610. package/dist/services/server/routing.js.map +1 -0
  611. package/dist/services/server/routing.mjs +101 -0
  612. package/dist/services/server/routing.mjs.map +1 -0
  613. package/dist/services/utils/conditional-fields.d.ts +3 -0
  614. package/dist/services/utils/conditional-fields.d.ts.map +1 -0
  615. package/dist/services/utils/conditional-fields.js +22 -0
  616. package/dist/services/utils/conditional-fields.js.map +1 -0
  617. package/dist/services/utils/conditional-fields.mjs +20 -0
  618. package/dist/services/utils/conditional-fields.mjs.map +1 -0
  619. package/dist/services/utils/dynamic-zones.js +16 -0
  620. package/dist/services/utils/dynamic-zones.js.map +1 -0
  621. package/dist/services/utils/dynamic-zones.mjs +14 -0
  622. package/dist/services/utils/dynamic-zones.mjs.map +1 -0
  623. package/dist/services/webhook-runner.js +135 -0
  624. package/dist/services/webhook-runner.js.map +1 -0
  625. package/dist/services/webhook-runner.mjs +133 -0
  626. package/dist/services/webhook-runner.mjs.map +1 -0
  627. package/dist/services/webhook-store.js +143 -0
  628. package/dist/services/webhook-store.js.map +1 -0
  629. package/dist/services/webhook-store.mjs +140 -0
  630. package/dist/services/webhook-store.mjs.map +1 -0
  631. package/dist/services/worker-queue.js +51 -0
  632. package/dist/services/worker-queue.js.map +1 -0
  633. package/dist/services/worker-queue.mjs +49 -0
  634. package/dist/services/worker-queue.mjs.map +1 -0
  635. package/dist/utils/convert-custom-field-type.js +21 -0
  636. package/dist/utils/convert-custom-field-type.js.map +1 -0
  637. package/dist/utils/convert-custom-field-type.mjs +19 -0
  638. package/dist/utils/convert-custom-field-type.mjs.map +1 -0
  639. package/dist/utils/cron.js +72 -0
  640. package/dist/utils/cron.js.map +1 -0
  641. package/dist/utils/cron.mjs +70 -0
  642. package/dist/utils/cron.mjs.map +1 -0
  643. package/dist/utils/fetch.d.ts +5 -1
  644. package/dist/utils/fetch.d.ts.map +1 -1
  645. package/dist/utils/fetch.js +31 -0
  646. package/dist/utils/fetch.js.map +1 -0
  647. package/dist/utils/fetch.mjs +29 -0
  648. package/dist/utils/fetch.mjs.map +1 -0
  649. package/dist/utils/filepath-to-prop-path.js +25 -0
  650. package/dist/utils/filepath-to-prop-path.js.map +1 -0
  651. package/dist/utils/filepath-to-prop-path.mjs +23 -0
  652. package/dist/utils/filepath-to-prop-path.mjs.map +1 -0
  653. package/dist/utils/is-initialized.js +25 -0
  654. package/dist/utils/is-initialized.js.map +1 -0
  655. package/dist/utils/is-initialized.mjs +23 -0
  656. package/dist/utils/is-initialized.mjs.map +1 -0
  657. package/dist/utils/lifecycles.js +10 -0
  658. package/dist/utils/lifecycles.js.map +1 -0
  659. package/dist/utils/lifecycles.mjs +8 -0
  660. package/dist/utils/lifecycles.mjs.map +1 -0
  661. package/dist/utils/load-config-file.js +47 -0
  662. package/dist/utils/load-config-file.js.map +1 -0
  663. package/dist/utils/load-config-file.mjs +45 -0
  664. package/dist/utils/load-config-file.mjs.map +1 -0
  665. package/dist/utils/load-files.js +44 -0
  666. package/dist/utils/load-files.js.map +1 -0
  667. package/dist/utils/load-files.mjs +42 -0
  668. package/dist/utils/load-files.mjs.map +1 -0
  669. package/dist/utils/open-browser.js +11 -0
  670. package/dist/utils/open-browser.js.map +1 -0
  671. package/dist/utils/open-browser.mjs +9 -0
  672. package/dist/utils/open-browser.mjs.map +1 -0
  673. package/dist/utils/resolve-working-dirs.js +26 -0
  674. package/dist/utils/resolve-working-dirs.js.map +1 -0
  675. package/dist/utils/resolve-working-dirs.mjs +24 -0
  676. package/dist/utils/resolve-working-dirs.mjs.map +1 -0
  677. package/dist/utils/signals.js +23 -0
  678. package/dist/utils/signals.js.map +1 -0
  679. package/dist/utils/signals.mjs +21 -0
  680. package/dist/utils/signals.mjs.map +1 -0
  681. package/dist/utils/startup-logger.js +110 -0
  682. package/dist/utils/startup-logger.js.map +1 -0
  683. package/dist/utils/startup-logger.mjs +108 -0
  684. package/dist/utils/startup-logger.mjs.map +1 -0
  685. package/dist/utils/transform-content-types-to-models.d.ts +197 -0
  686. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  687. package/dist/utils/transform-content-types-to-models.js +377 -0
  688. package/dist/utils/transform-content-types-to-models.js.map +1 -0
  689. package/dist/utils/transform-content-types-to-models.mjs +365 -0
  690. package/dist/utils/transform-content-types-to-models.mjs.map +1 -0
  691. package/dist/utils/update-notifier/index.js +80 -0
  692. package/dist/utils/update-notifier/index.js.map +1 -0
  693. package/dist/utils/update-notifier/index.mjs +78 -0
  694. package/dist/utils/update-notifier/index.mjs.map +1 -0
  695. package/package.json +15 -13
@@ -0,0 +1,93 @@
1
+ import path from 'path';
2
+ import { isArray } from 'lodash/fp';
3
+ import { importDefault } from '@strapi/utils';
4
+
5
+ const instantiateMiddleware = (middlewareFactory, name, config, strapi)=>{
6
+ try {
7
+ return middlewareFactory(config, {
8
+ strapi
9
+ });
10
+ } catch (e) {
11
+ if (e instanceof Error) {
12
+ throw new Error(`Middleware "${name}": ${e.message}`);
13
+ }
14
+ }
15
+ };
16
+ const resolveRouteMiddlewares = (route, strapi)=>{
17
+ const middlewaresConfig = route?.config?.middlewares ?? [];
18
+ if (!isArray(middlewaresConfig)) {
19
+ throw new Error('Route middlewares config must be an array');
20
+ }
21
+ const middlewares = resolveMiddlewares(middlewaresConfig, strapi);
22
+ return middlewares.map(({ handler })=>handler);
23
+ };
24
+ const dummyMiddleware = (_, next)=>next();
25
+ /**
26
+ * Initialize every configured middlewares
27
+ */ const resolveMiddlewares = (config, strapi)=>{
28
+ const middlewares = [];
29
+ for (const item of config){
30
+ if (typeof item === 'function') {
31
+ middlewares.push({
32
+ name: null,
33
+ handler: item
34
+ });
35
+ continue;
36
+ }
37
+ if (typeof item === 'string') {
38
+ const middlewareFactory = strapi.middleware(item);
39
+ if (!middlewareFactory) {
40
+ throw new Error(`Middleware ${item} not found.`);
41
+ }
42
+ middlewares.push({
43
+ name: item,
44
+ handler: instantiateMiddleware(middlewareFactory, item, {}, strapi) ?? dummyMiddleware
45
+ });
46
+ continue;
47
+ }
48
+ if (typeof item === 'object' && item !== null) {
49
+ const { name, resolve, config = {} } = item;
50
+ if (name) {
51
+ const middlewareFactory = strapi.middleware(name);
52
+ middlewares.push({
53
+ name,
54
+ handler: instantiateMiddleware(middlewareFactory, name, config, strapi) ?? dummyMiddleware
55
+ });
56
+ continue;
57
+ }
58
+ if (resolve) {
59
+ const resolvedMiddlewareFactory = resolveCustomMiddleware(resolve, strapi);
60
+ middlewares.push({
61
+ name: resolve,
62
+ handler: instantiateMiddleware(resolvedMiddlewareFactory, resolve, config, strapi) ?? dummyMiddleware
63
+ });
64
+ continue;
65
+ }
66
+ throw new Error('Invalid middleware configuration. Missing name or resolve properties.');
67
+ }
68
+ throw new Error('Middleware config must either be a string or an object {name?: string, resolve?: string, config: any}.');
69
+ }
70
+ return middlewares;
71
+ };
72
+ /**
73
+ * Resolve middleware from package name or path
74
+ */ const resolveCustomMiddleware = (resolve, strapi)=>{
75
+ let modulePath;
76
+ try {
77
+ modulePath = require.resolve(resolve);
78
+ } catch (error) {
79
+ if (error instanceof Error && 'code' in error && error.code === 'MODULE_NOT_FOUND') {
80
+ modulePath = path.resolve(strapi.dirs.dist.root, resolve);
81
+ } else {
82
+ throw error;
83
+ }
84
+ }
85
+ try {
86
+ return importDefault(modulePath);
87
+ } catch (err) {
88
+ throw new Error(`Could not load middleware "${modulePath}".`);
89
+ }
90
+ };
91
+
92
+ export { resolveMiddlewares, resolveRouteMiddlewares };
93
+ //# sourceMappingURL=middleware.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.mjs","sources":["../../../src/services/server/middleware.ts"],"sourcesContent":["import path from 'path';\nimport { isArray } from 'lodash/fp';\nimport { importDefault } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nconst instantiateMiddleware = (\n middlewareFactory: Core.MiddlewareFactory,\n name: string,\n config: unknown,\n strapi: Core.Strapi\n) => {\n try {\n return middlewareFactory(config, { strapi });\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`Middleware \"${name}\": ${e.message}`);\n }\n }\n};\n\nconst resolveRouteMiddlewares = (route: Core.Route, strapi: Core.Strapi) => {\n const middlewaresConfig = route?.config?.middlewares ?? [];\n\n if (!isArray(middlewaresConfig)) {\n throw new Error('Route middlewares config must be an array');\n }\n\n const middlewares = resolveMiddlewares(middlewaresConfig, strapi);\n\n return middlewares.map(({ handler }) => handler);\n};\n\nconst dummyMiddleware: Core.MiddlewareHandler = (_, next) => next();\n\n/**\n * Initialize every configured middlewares\n */\nconst resolveMiddlewares = (\n config: Array<Core.MiddlewareName | Core.MiddlewareConfig | Core.MiddlewareHandler>,\n strapi: Core.Strapi\n) => {\n const middlewares: {\n name: string | null;\n handler: Core.MiddlewareHandler;\n }[] = [];\n\n for (const item of config) {\n if (typeof item === 'function') {\n middlewares.push({\n name: null,\n handler: item,\n });\n\n continue;\n }\n\n if (typeof item === 'string') {\n const middlewareFactory = strapi.middleware(item);\n\n if (!middlewareFactory) {\n throw new Error(`Middleware ${item} not found.`);\n }\n\n middlewares.push({\n name: item,\n handler: instantiateMiddleware(middlewareFactory, item, {}, strapi) ?? dummyMiddleware,\n });\n\n continue;\n }\n\n if (typeof item === 'object' && item !== null) {\n const { name, resolve, config = {} } = item;\n\n if (name) {\n const middlewareFactory = strapi.middleware(name);\n middlewares.push({\n name,\n handler:\n instantiateMiddleware(middlewareFactory, name, config, strapi) ?? dummyMiddleware,\n });\n\n continue;\n }\n\n if (resolve) {\n const resolvedMiddlewareFactory = resolveCustomMiddleware(resolve, strapi);\n middlewares.push({\n name: resolve,\n handler:\n instantiateMiddleware(resolvedMiddlewareFactory, resolve, config, strapi) ??\n dummyMiddleware,\n });\n\n continue;\n }\n\n throw new Error('Invalid middleware configuration. Missing name or resolve properties.');\n }\n\n throw new Error(\n 'Middleware config must either be a string or an object {name?: string, resolve?: string, config: any}.'\n );\n }\n\n return middlewares;\n};\n\n/**\n * Resolve middleware from package name or path\n */\nconst resolveCustomMiddleware = (resolve: string, strapi: Core.Strapi) => {\n let modulePath;\n\n try {\n modulePath = require.resolve(resolve);\n } catch (error) {\n if (error instanceof Error && 'code' in error && error.code === 'MODULE_NOT_FOUND') {\n modulePath = path.resolve(strapi.dirs.dist.root, resolve);\n } else {\n throw error;\n }\n }\n\n try {\n return importDefault(modulePath);\n } catch (err) {\n throw new Error(`Could not load middleware \"${modulePath}\".`);\n }\n};\n\nexport { resolveRouteMiddlewares, resolveMiddlewares };\n"],"names":["instantiateMiddleware","middlewareFactory","name","config","strapi","e","Error","message","resolveRouteMiddlewares","route","middlewaresConfig","middlewares","isArray","resolveMiddlewares","map","handler","dummyMiddleware","_","next","item","push","middleware","resolve","resolvedMiddlewareFactory","resolveCustomMiddleware","modulePath","require","error","code","path","dirs","dist","root","importDefault","err"],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ 'use strict';
2
+
3
+ var strapiUtils = require('@strapi/utils');
4
+
5
+ const createPolicicesMiddleware = (route, strapi)=>{
6
+ const policiesConfig = route?.config?.policies ?? [];
7
+ const resolvedPolicies = strapi.get('policies').resolve(policiesConfig, route.info);
8
+ const policiesMiddleware = async (ctx, next)=>{
9
+ const context = strapiUtils.policy.createPolicyContext('koa', ctx);
10
+ for (const { handler, config } of resolvedPolicies){
11
+ const result = await handler(context, config, {
12
+ strapi
13
+ });
14
+ if (![
15
+ true,
16
+ undefined
17
+ ].includes(result)) {
18
+ throw new strapiUtils.errors.PolicyError();
19
+ }
20
+ }
21
+ await next();
22
+ };
23
+ return policiesMiddleware;
24
+ };
25
+
26
+ exports.createPolicicesMiddleware = createPolicicesMiddleware;
27
+ //# sourceMappingURL=policy.js.map
@@ -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":"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"}