@strapi/core 0.0.0-experimental.e3e48deb89bd0a1b6cc69b698696566fa7854a95 → 0.0.0-experimental.edc24aaa3bb5a90fa5fd4fee208167dd4e2e38d4

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 (772) hide show
  1. package/LICENSE +18 -3
  2. package/dist/Strapi.d.ts +49 -58
  3. package/dist/Strapi.d.ts.map +1 -1
  4. package/dist/Strapi.js +192 -220
  5. package/dist/Strapi.js.map +1 -1
  6. package/dist/Strapi.mjs +161 -209
  7. package/dist/Strapi.mjs.map +1 -1
  8. package/dist/configuration/config-loader.d.ts.map +1 -1
  9. package/dist/configuration/config-loader.js +9 -5
  10. package/dist/configuration/config-loader.js.map +1 -1
  11. package/dist/configuration/config-loader.mjs +9 -5
  12. package/dist/configuration/config-loader.mjs.map +1 -1
  13. package/dist/configuration/get-dirs.d.ts +10 -0
  14. package/dist/configuration/get-dirs.d.ts.map +1 -0
  15. package/dist/{utils → configuration}/get-dirs.js +3 -2
  16. package/dist/configuration/get-dirs.js.map +1 -0
  17. package/dist/{utils → configuration}/get-dirs.mjs +3 -2
  18. package/dist/configuration/get-dirs.mjs.map +1 -0
  19. package/dist/configuration/index.d.ts +4 -7
  20. package/dist/configuration/index.d.ts.map +1 -1
  21. package/dist/configuration/index.js +8 -6
  22. package/dist/configuration/index.js.map +1 -1
  23. package/dist/configuration/index.mjs +5 -4
  24. package/dist/configuration/index.mjs.map +1 -1
  25. package/dist/container.d.ts +2 -2
  26. package/dist/container.d.ts.map +1 -1
  27. package/dist/container.js.map +1 -1
  28. package/dist/container.mjs.map +1 -1
  29. package/dist/core-api/controller/collection-type.d.ts +3 -3
  30. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  31. package/dist/core-api/controller/collection-type.js +6 -3
  32. package/dist/core-api/controller/collection-type.js.map +1 -1
  33. package/dist/core-api/controller/collection-type.mjs +3 -0
  34. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  35. package/dist/core-api/controller/index.d.ts +3 -3
  36. package/dist/core-api/controller/index.d.ts.map +1 -1
  37. package/dist/core-api/controller/index.js +7 -7
  38. package/dist/core-api/controller/index.js.map +1 -1
  39. package/dist/core-api/controller/index.mjs +6 -6
  40. package/dist/core-api/controller/index.mjs.map +1 -1
  41. package/dist/core-api/controller/single-type.d.ts +3 -3
  42. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  43. package/dist/core-api/controller/single-type.js +3 -2
  44. package/dist/core-api/controller/single-type.js.map +1 -1
  45. package/dist/core-api/controller/single-type.mjs +1 -0
  46. package/dist/core-api/controller/single-type.mjs.map +1 -1
  47. package/dist/core-api/controller/transform.d.ts +2 -2
  48. package/dist/core-api/controller/transform.d.ts.map +1 -1
  49. package/dist/core-api/controller/transform.js +10 -13
  50. package/dist/core-api/controller/transform.js.map +1 -1
  51. package/dist/core-api/controller/transform.mjs +2 -5
  52. package/dist/core-api/controller/transform.mjs.map +1 -1
  53. package/dist/core-api/routes/index.d.ts.map +1 -1
  54. package/dist/core-api/service/collection-type.d.ts +11 -17
  55. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  56. package/dist/core-api/service/collection-type.js +18 -7
  57. package/dist/core-api/service/collection-type.js.map +1 -1
  58. package/dist/core-api/service/collection-type.mjs +19 -8
  59. package/dist/core-api/service/collection-type.mjs.map +1 -1
  60. package/dist/core-api/service/index.d.ts +3 -3
  61. package/dist/core-api/service/index.d.ts.map +1 -1
  62. package/dist/core-api/service/index.js.map +1 -1
  63. package/dist/core-api/service/index.mjs.map +1 -1
  64. package/dist/core-api/service/pagination.d.ts +4 -11
  65. package/dist/core-api/service/pagination.d.ts.map +1 -1
  66. package/dist/core-api/service/pagination.js +18 -44
  67. package/dist/core-api/service/pagination.js.map +1 -1
  68. package/dist/core-api/service/pagination.mjs +16 -42
  69. package/dist/core-api/service/pagination.mjs.map +1 -1
  70. package/dist/core-api/service/single-type.d.ts +4 -4
  71. package/dist/core-api/service/single-type.d.ts.map +1 -1
  72. package/dist/core-api/service/single-type.js +9 -2
  73. package/dist/core-api/service/single-type.js.map +1 -1
  74. package/dist/core-api/service/single-type.mjs +9 -2
  75. package/dist/core-api/service/single-type.mjs.map +1 -1
  76. package/dist/domain/content-type/index.d.ts +1 -1
  77. package/dist/domain/content-type/index.d.ts.map +1 -1
  78. package/dist/domain/content-type/index.js +4 -4
  79. package/dist/domain/content-type/index.js.map +1 -1
  80. package/dist/domain/module/index.d.ts +24 -23
  81. package/dist/domain/module/index.d.ts.map +1 -1
  82. package/dist/domain/module/index.js +2 -1
  83. package/dist/domain/module/index.js.map +1 -1
  84. package/dist/domain/module/index.mjs +3 -2
  85. package/dist/domain/module/index.mjs.map +1 -1
  86. package/dist/ee/index.d.ts +4 -2
  87. package/dist/ee/index.d.ts.map +1 -1
  88. package/dist/ee/index.js +3 -3
  89. package/dist/ee/index.js.map +1 -1
  90. package/dist/ee/index.mjs.map +1 -1
  91. package/dist/ee/license.d.ts +2 -2
  92. package/dist/ee/license.d.ts.map +1 -1
  93. package/dist/ee/license.js +2 -1
  94. package/dist/ee/license.js.map +1 -1
  95. package/dist/ee/license.mjs +2 -1
  96. package/dist/ee/license.mjs.map +1 -1
  97. package/dist/factories.d.ts +10 -10
  98. package/dist/factories.d.ts.map +1 -1
  99. package/dist/factories.js +10 -6
  100. package/dist/factories.js.map +1 -1
  101. package/dist/factories.mjs +6 -2
  102. package/dist/factories.mjs.map +1 -1
  103. package/dist/index.d.ts +18 -2
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +25 -1
  106. package/dist/index.js.map +1 -1
  107. package/dist/index.mjs +27 -3
  108. package/dist/index.mjs.map +1 -1
  109. package/dist/loaders/admin.d.ts +2 -2
  110. package/dist/loaders/admin.d.ts.map +1 -1
  111. package/dist/loaders/admin.js +0 -1
  112. package/dist/loaders/admin.js.map +1 -1
  113. package/dist/loaders/admin.mjs +0 -1
  114. package/dist/loaders/admin.mjs.map +1 -1
  115. package/dist/loaders/apis.d.ts +2 -2
  116. package/dist/loaders/apis.d.ts.map +1 -1
  117. package/dist/loaders/apis.js +12 -12
  118. package/dist/loaders/apis.js.map +1 -1
  119. package/dist/loaders/apis.mjs +10 -10
  120. package/dist/loaders/apis.mjs.map +1 -1
  121. package/dist/loaders/components.d.ts +2 -2
  122. package/dist/loaders/components.d.ts.map +1 -1
  123. package/dist/loaders/components.js.map +1 -1
  124. package/dist/loaders/components.mjs.map +1 -1
  125. package/dist/loaders/index.d.ts +2 -2
  126. package/dist/loaders/index.d.ts.map +1 -1
  127. package/dist/loaders/index.js +0 -2
  128. package/dist/loaders/index.js.map +1 -1
  129. package/dist/loaders/index.mjs +0 -2
  130. package/dist/loaders/index.mjs.map +1 -1
  131. package/dist/loaders/middlewares.d.ts +2 -2
  132. package/dist/loaders/middlewares.d.ts.map +1 -1
  133. package/dist/loaders/middlewares.js.map +1 -1
  134. package/dist/loaders/middlewares.mjs.map +1 -1
  135. package/dist/loaders/plugins/get-enabled-plugins.d.ts +2 -2
  136. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  137. package/dist/loaders/plugins/get-enabled-plugins.js +15 -13
  138. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  139. package/dist/loaders/plugins/get-enabled-plugins.mjs +7 -5
  140. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  141. package/dist/loaders/plugins/get-user-plugins-config.js +2 -2
  142. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  143. package/dist/loaders/plugins/index.d.ts +2 -2
  144. package/dist/loaders/plugins/index.d.ts.map +1 -1
  145. package/dist/loaders/plugins/index.js +6 -6
  146. package/dist/loaders/plugins/index.js.map +1 -1
  147. package/dist/loaders/plugins/index.mjs.map +1 -1
  148. package/dist/loaders/policies.d.ts +2 -2
  149. package/dist/loaders/policies.d.ts.map +1 -1
  150. package/dist/loaders/policies.js.map +1 -1
  151. package/dist/loaders/policies.mjs.map +1 -1
  152. package/dist/loaders/sanitizers.d.ts +2 -2
  153. package/dist/loaders/sanitizers.d.ts.map +1 -1
  154. package/dist/loaders/sanitizers.js.map +1 -1
  155. package/dist/loaders/sanitizers.mjs.map +1 -1
  156. package/dist/loaders/src-index.d.ts +2 -2
  157. package/dist/loaders/src-index.d.ts.map +1 -1
  158. package/dist/loaders/src-index.js.map +1 -1
  159. package/dist/loaders/src-index.mjs.map +1 -1
  160. package/dist/loaders/validators.d.ts +2 -2
  161. package/dist/loaders/validators.d.ts.map +1 -1
  162. package/dist/loaders/validators.js.map +1 -1
  163. package/dist/loaders/validators.mjs.map +1 -1
  164. package/dist/middlewares/body.d.ts +4 -4
  165. package/dist/middlewares/body.d.ts.map +1 -1
  166. package/dist/middlewares/body.js +6 -6
  167. package/dist/middlewares/body.js.map +1 -1
  168. package/dist/middlewares/body.mjs +4 -4
  169. package/dist/middlewares/body.mjs.map +1 -1
  170. package/dist/middlewares/compression.d.ts +2 -2
  171. package/dist/middlewares/compression.d.ts.map +1 -1
  172. package/dist/middlewares/compression.js.map +1 -1
  173. package/dist/middlewares/compression.mjs.map +1 -1
  174. package/dist/middlewares/cors.d.ts +2 -2
  175. package/dist/middlewares/cors.d.ts.map +1 -1
  176. package/dist/middlewares/cors.js +9 -7
  177. package/dist/middlewares/cors.js.map +1 -1
  178. package/dist/middlewares/cors.mjs +9 -7
  179. package/dist/middlewares/cors.mjs.map +1 -1
  180. package/dist/middlewares/errors.d.ts +2 -2
  181. package/dist/middlewares/errors.d.ts.map +1 -1
  182. package/dist/middlewares/errors.js.map +1 -1
  183. package/dist/middlewares/errors.mjs.map +1 -1
  184. package/dist/middlewares/favicon.d.ts +2 -2
  185. package/dist/middlewares/favicon.d.ts.map +1 -1
  186. package/dist/middlewares/favicon.js.map +1 -1
  187. package/dist/middlewares/favicon.mjs.map +1 -1
  188. package/dist/middlewares/index.d.ts +2 -2
  189. package/dist/middlewares/index.d.ts.map +1 -1
  190. package/dist/middlewares/index.js.map +1 -1
  191. package/dist/middlewares/index.mjs.map +1 -1
  192. package/dist/middlewares/ip.d.ts +2 -2
  193. package/dist/middlewares/ip.d.ts.map +1 -1
  194. package/dist/middlewares/ip.js.map +1 -1
  195. package/dist/middlewares/ip.mjs.map +1 -1
  196. package/dist/middlewares/logger.d.ts +2 -2
  197. package/dist/middlewares/logger.d.ts.map +1 -1
  198. package/dist/middlewares/logger.js.map +1 -1
  199. package/dist/middlewares/logger.mjs.map +1 -1
  200. package/dist/middlewares/powered-by.d.ts +2 -2
  201. package/dist/middlewares/powered-by.d.ts.map +1 -1
  202. package/dist/middlewares/powered-by.js.map +1 -1
  203. package/dist/middlewares/powered-by.mjs.map +1 -1
  204. package/dist/middlewares/public.d.ts +2 -2
  205. package/dist/middlewares/public.d.ts.map +1 -1
  206. package/dist/middlewares/public.js +3 -3
  207. package/dist/middlewares/public.js.map +1 -1
  208. package/dist/middlewares/public.mjs +1 -1
  209. package/dist/middlewares/public.mjs.map +1 -1
  210. package/dist/middlewares/query.d.ts +2 -2
  211. package/dist/middlewares/query.d.ts.map +1 -1
  212. package/dist/middlewares/query.js.map +1 -1
  213. package/dist/middlewares/query.mjs.map +1 -1
  214. package/dist/middlewares/response-time.d.ts +2 -2
  215. package/dist/middlewares/response-time.d.ts.map +1 -1
  216. package/dist/middlewares/response-time.js.map +1 -1
  217. package/dist/middlewares/response-time.mjs.map +1 -1
  218. package/dist/middlewares/responses.d.ts +3 -3
  219. package/dist/middlewares/responses.d.ts.map +1 -1
  220. package/dist/middlewares/responses.js +2 -2
  221. package/dist/middlewares/responses.js.map +1 -1
  222. package/dist/middlewares/responses.mjs.map +1 -1
  223. package/dist/middlewares/security.d.ts +2 -2
  224. package/dist/middlewares/security.d.ts.map +1 -1
  225. package/dist/middlewares/security.js +12 -5
  226. package/dist/middlewares/security.js.map +1 -1
  227. package/dist/middlewares/security.mjs +11 -4
  228. package/dist/middlewares/security.mjs.map +1 -1
  229. package/dist/middlewares/session.d.ts +2 -2
  230. package/dist/middlewares/session.d.ts.map +1 -1
  231. package/dist/middlewares/session.js +2 -2
  232. package/dist/middlewares/session.js.map +1 -1
  233. package/dist/middlewares/session.mjs.map +1 -1
  234. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +30 -0
  235. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -0
  236. package/dist/migrations/database/5.0.0-discard-drafts.js +50 -0
  237. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
  238. package/dist/migrations/database/5.0.0-discard-drafts.mjs +50 -0
  239. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
  240. package/dist/migrations/draft-publish.d.ts.map +1 -1
  241. package/dist/migrations/draft-publish.js +14 -31
  242. package/dist/migrations/draft-publish.js.map +1 -1
  243. package/dist/migrations/draft-publish.mjs +15 -32
  244. package/dist/migrations/draft-publish.mjs.map +1 -1
  245. package/dist/providers/admin.d.ts +3 -0
  246. package/dist/providers/admin.d.ts.map +1 -0
  247. package/dist/providers/admin.js +20 -0
  248. package/dist/providers/admin.js.map +1 -0
  249. package/dist/providers/admin.mjs +21 -0
  250. package/dist/providers/admin.mjs.map +1 -0
  251. package/dist/providers/coreStore.d.ts +3 -0
  252. package/dist/providers/coreStore.d.ts.map +1 -0
  253. package/dist/providers/coreStore.js +11 -0
  254. package/dist/providers/coreStore.js.map +1 -0
  255. package/dist/providers/coreStore.mjs +12 -0
  256. package/dist/providers/coreStore.mjs.map +1 -0
  257. package/dist/providers/cron.d.ts +3 -0
  258. package/dist/providers/cron.d.ts.map +1 -0
  259. package/dist/providers/cron.js +20 -0
  260. package/dist/providers/cron.js.map +1 -0
  261. package/dist/providers/cron.mjs +21 -0
  262. package/dist/providers/cron.mjs.map +1 -0
  263. package/dist/providers/index.d.ts +3 -0
  264. package/dist/providers/index.d.ts.map +1 -0
  265. package/dist/providers/index.js +11 -0
  266. package/dist/providers/index.js.map +1 -0
  267. package/dist/providers/index.mjs +11 -0
  268. package/dist/providers/index.mjs.map +1 -0
  269. package/dist/providers/provider.d.ts +9 -0
  270. package/dist/providers/provider.d.ts.map +1 -0
  271. package/dist/providers/provider.js +5 -0
  272. package/dist/providers/provider.js.map +1 -0
  273. package/dist/providers/provider.mjs +5 -0
  274. package/dist/providers/provider.mjs.map +1 -0
  275. package/dist/providers/registries.d.ts +3 -0
  276. package/dist/providers/registries.d.ts.map +1 -0
  277. package/dist/providers/registries.js +35 -0
  278. package/dist/providers/registries.js.map +1 -0
  279. package/dist/providers/registries.mjs +36 -0
  280. package/dist/providers/registries.mjs.map +1 -0
  281. package/dist/providers/telemetry.d.ts +3 -0
  282. package/dist/providers/telemetry.d.ts.map +1 -0
  283. package/dist/providers/telemetry.js +19 -0
  284. package/dist/providers/telemetry.js.map +1 -0
  285. package/dist/providers/telemetry.mjs +20 -0
  286. package/dist/providers/telemetry.mjs.map +1 -0
  287. package/dist/providers/webhooks.d.ts +3 -0
  288. package/dist/providers/webhooks.d.ts.map +1 -0
  289. package/dist/providers/webhooks.js +30 -0
  290. package/dist/providers/webhooks.js.map +1 -0
  291. package/dist/providers/webhooks.mjs +31 -0
  292. package/dist/providers/webhooks.mjs.map +1 -0
  293. package/dist/registries/apis.d.ts +2 -2
  294. package/dist/registries/apis.d.ts.map +1 -1
  295. package/dist/registries/apis.js +2 -2
  296. package/dist/registries/apis.js.map +1 -1
  297. package/dist/registries/apis.mjs.map +1 -1
  298. package/dist/registries/components.d.ts +6 -6
  299. package/dist/registries/components.d.ts.map +1 -1
  300. package/dist/registries/components.js +2 -2
  301. package/dist/registries/components.js.map +1 -1
  302. package/dist/registries/components.mjs.map +1 -1
  303. package/dist/registries/content-types.d.ts +5 -5
  304. package/dist/registries/content-types.d.ts.map +1 -1
  305. package/dist/registries/content-types.js +3 -3
  306. package/dist/registries/content-types.js.map +1 -1
  307. package/dist/registries/content-types.mjs.map +1 -1
  308. package/dist/registries/controllers.d.ts +10 -10
  309. package/dist/registries/controllers.d.ts.map +1 -1
  310. package/dist/registries/controllers.js +3 -3
  311. package/dist/registries/controllers.js.map +1 -1
  312. package/dist/registries/controllers.mjs.map +1 -1
  313. package/dist/registries/custom-fields.d.ts +3 -3
  314. package/dist/registries/custom-fields.d.ts.map +1 -1
  315. package/dist/registries/custom-fields.js +4 -4
  316. package/dist/registries/custom-fields.js.map +1 -1
  317. package/dist/registries/custom-fields.mjs.map +1 -1
  318. package/dist/registries/hooks.js +2 -2
  319. package/dist/registries/hooks.js.map +1 -1
  320. package/dist/registries/index.d.ts +0 -1
  321. package/dist/registries/index.d.ts.map +1 -1
  322. package/dist/registries/middlewares.d.ts +6 -6
  323. package/dist/registries/middlewares.d.ts.map +1 -1
  324. package/dist/registries/middlewares.js +3 -3
  325. package/dist/registries/middlewares.js.map +1 -1
  326. package/dist/registries/middlewares.mjs.map +1 -1
  327. package/dist/registries/modules.d.ts +2 -2
  328. package/dist/registries/modules.d.ts.map +1 -1
  329. package/dist/registries/modules.js +3 -3
  330. package/dist/registries/modules.js.map +1 -1
  331. package/dist/registries/modules.mjs.map +1 -1
  332. package/dist/registries/plugins.d.ts +5 -5
  333. package/dist/registries/plugins.d.ts.map +1 -1
  334. package/dist/registries/plugins.js +2 -2
  335. package/dist/registries/plugins.js.map +1 -1
  336. package/dist/registries/plugins.mjs.map +1 -1
  337. package/dist/registries/policies.d.ts +23 -11
  338. package/dist/registries/policies.d.ts.map +1 -1
  339. package/dist/registries/policies.js +66 -20
  340. package/dist/registries/policies.js.map +1 -1
  341. package/dist/registries/policies.mjs +65 -19
  342. package/dist/registries/policies.mjs.map +1 -1
  343. package/dist/registries/services.d.ts +8 -8
  344. package/dist/registries/services.d.ts.map +1 -1
  345. package/dist/registries/services.js +3 -3
  346. package/dist/registries/services.js.map +1 -1
  347. package/dist/registries/services.mjs.map +1 -1
  348. package/dist/services/auth/index.d.ts +4 -4
  349. package/dist/services/auth/index.d.ts.map +1 -1
  350. package/dist/services/auth/index.js +3 -3
  351. package/dist/services/auth/index.js.map +1 -1
  352. package/dist/services/auth/index.mjs.map +1 -1
  353. package/dist/services/config.d.ts +3 -0
  354. package/dist/services/config.d.ts.map +1 -0
  355. package/dist/services/config.js +47 -0
  356. package/dist/services/config.js.map +1 -0
  357. package/dist/services/config.mjs +47 -0
  358. package/dist/services/config.mjs.map +1 -0
  359. package/dist/services/content-api/index.d.ts +21 -3
  360. package/dist/services/content-api/index.d.ts.map +1 -1
  361. package/dist/services/content-api/index.js +28 -2
  362. package/dist/services/content-api/index.js.map +1 -1
  363. package/dist/services/content-api/index.mjs +28 -2
  364. package/dist/services/content-api/index.mjs.map +1 -1
  365. package/dist/services/content-api/permissions/index.d.ts +3 -3
  366. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  367. package/dist/services/content-api/permissions/index.js +1 -1
  368. package/dist/services/content-api/permissions/index.js.map +1 -1
  369. package/dist/services/content-api/permissions/index.mjs +1 -1
  370. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  371. package/dist/services/core-store.d.ts.map +1 -1
  372. package/dist/services/core-store.js +3 -3
  373. package/dist/services/core-store.js.map +1 -1
  374. package/dist/services/cron.d.ts +2 -2
  375. package/dist/services/cron.d.ts.map +1 -1
  376. package/dist/services/cron.js +3 -3
  377. package/dist/services/cron.js.map +1 -1
  378. package/dist/services/cron.mjs.map +1 -1
  379. package/dist/services/custom-fields.d.ts +2 -2
  380. package/dist/services/custom-fields.d.ts.map +1 -1
  381. package/dist/services/custom-fields.js.map +1 -1
  382. package/dist/services/custom-fields.mjs.map +1 -1
  383. package/dist/services/document-service/attributes/index.d.ts +6 -0
  384. package/dist/services/document-service/attributes/index.d.ts.map +1 -0
  385. package/dist/services/{entity-service → document-service}/attributes/index.js +5 -5
  386. package/dist/services/document-service/attributes/index.js.map +1 -0
  387. package/dist/services/{entity-service → document-service}/attributes/index.mjs +5 -5
  388. package/dist/services/document-service/attributes/index.mjs.map +1 -0
  389. package/dist/services/document-service/attributes/transforms.d.ts +10 -0
  390. package/dist/services/document-service/attributes/transforms.d.ts.map +1 -0
  391. package/dist/services/{entity-service → document-service}/attributes/transforms.js +3 -3
  392. package/dist/services/document-service/attributes/transforms.js.map +1 -0
  393. package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
  394. package/dist/services/document-service/common.d.ts +2 -2
  395. package/dist/services/document-service/common.d.ts.map +1 -1
  396. package/dist/services/document-service/common.js.map +1 -1
  397. package/dist/services/document-service/common.mjs.map +1 -1
  398. package/dist/services/document-service/components.d.ts +25 -1
  399. package/dist/services/document-service/components.d.ts.map +1 -1
  400. package/dist/services/{entity-service → document-service}/components.js +46 -56
  401. package/dist/services/document-service/components.js.map +1 -0
  402. package/dist/services/{entity-service → document-service}/components.mjs +36 -46
  403. package/dist/services/document-service/components.mjs.map +1 -0
  404. package/dist/services/document-service/draft-and-publish.d.ts +7 -7
  405. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  406. package/dist/services/document-service/draft-and-publish.js +16 -16
  407. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  408. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  409. package/dist/services/document-service/entries.d.ts +10 -0
  410. package/dist/services/document-service/entries.d.ts.map +1 -0
  411. package/dist/services/document-service/entries.js +96 -0
  412. package/dist/services/document-service/entries.js.map +1 -0
  413. package/dist/services/document-service/entries.mjs +96 -0
  414. package/dist/services/document-service/entries.mjs.map +1 -0
  415. package/dist/services/document-service/events.d.ts +25 -0
  416. package/dist/services/document-service/events.d.ts.map +1 -0
  417. package/dist/services/document-service/events.js +47 -0
  418. package/dist/services/document-service/events.js.map +1 -0
  419. package/dist/services/document-service/events.mjs +47 -0
  420. package/dist/services/document-service/events.mjs.map +1 -0
  421. package/dist/services/document-service/index.d.ts +2 -4
  422. package/dist/services/document-service/index.d.ts.map +1 -1
  423. package/dist/services/document-service/index.js +18 -5
  424. package/dist/services/document-service/index.js.map +1 -1
  425. package/dist/services/document-service/index.mjs +16 -3
  426. package/dist/services/document-service/index.mjs.map +1 -1
  427. package/dist/services/document-service/internationalization.d.ts +5 -5
  428. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  429. package/dist/services/document-service/internationalization.js +21 -12
  430. package/dist/services/document-service/internationalization.js.map +1 -1
  431. package/dist/services/document-service/internationalization.mjs +14 -5
  432. package/dist/services/document-service/internationalization.mjs.map +1 -1
  433. package/dist/services/document-service/middlewares/errors.d.ts +6 -0
  434. package/dist/services/document-service/middlewares/errors.d.ts.map +1 -0
  435. package/dist/services/document-service/middlewares/errors.js +25 -0
  436. package/dist/services/document-service/middlewares/errors.js.map +1 -0
  437. package/dist/services/document-service/middlewares/errors.mjs +25 -0
  438. package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
  439. package/dist/services/document-service/middlewares/index.d.ts +3 -0
  440. package/dist/services/document-service/middlewares/index.d.ts.map +1 -0
  441. package/dist/services/document-service/middlewares/middleware-manager.d.ts +10 -0
  442. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -0
  443. package/dist/services/document-service/{middlewares.js → middlewares/middleware-manager.js} +9 -6
  444. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
  445. package/dist/services/document-service/{middlewares.mjs → middlewares/middleware-manager.mjs} +9 -6
  446. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
  447. package/dist/services/document-service/params.d.ts +3 -1
  448. package/dist/services/document-service/params.d.ts.map +1 -1
  449. package/dist/services/{entity-service → document-service}/params.js +2 -2
  450. package/dist/services/document-service/params.js.map +1 -0
  451. package/dist/services/document-service/params.mjs.map +1 -0
  452. package/dist/services/document-service/repository.d.ts.map +1 -1
  453. package/dist/services/document-service/repository.js +141 -158
  454. package/dist/services/document-service/repository.js.map +1 -1
  455. package/dist/services/document-service/repository.mjs +118 -135
  456. package/dist/services/document-service/repository.mjs.map +1 -1
  457. package/dist/services/document-service/transform/data.d.ts.map +1 -1
  458. package/dist/services/document-service/transform/data.js +4 -2
  459. package/dist/services/document-service/transform/data.js.map +1 -1
  460. package/dist/services/document-service/transform/data.mjs +4 -2
  461. package/dist/services/document-service/transform/data.mjs.map +1 -1
  462. package/dist/services/document-service/transform/fields.d.ts +2 -2
  463. package/dist/services/document-service/transform/fields.d.ts.map +1 -1
  464. package/dist/services/document-service/transform/fields.js.map +1 -1
  465. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  466. package/dist/services/document-service/transform/id-map.d.ts +3 -3
  467. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  468. package/dist/services/document-service/transform/id-map.js.map +1 -1
  469. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  470. package/dist/services/document-service/transform/id-transform.d.ts +2 -2
  471. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  472. package/dist/services/document-service/transform/id-transform.js +2 -2
  473. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  474. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  475. package/dist/services/document-service/transform/populate.d.ts +2 -2
  476. package/dist/services/document-service/transform/populate.d.ts.map +1 -1
  477. package/dist/services/document-service/transform/populate.js +1 -1
  478. package/dist/services/document-service/transform/populate.js.map +1 -1
  479. package/dist/services/document-service/transform/populate.mjs +1 -1
  480. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  481. package/dist/services/document-service/transform/query.d.ts +5 -0
  482. package/dist/services/document-service/transform/query.d.ts.map +1 -0
  483. package/dist/services/document-service/transform/query.js +9 -0
  484. package/dist/services/document-service/transform/query.js.map +1 -0
  485. package/dist/services/document-service/transform/query.mjs +9 -0
  486. package/dist/services/document-service/transform/query.mjs.map +1 -0
  487. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +8 -7
  488. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  489. package/dist/services/document-service/transform/relations/extract/data-ids.js +45 -78
  490. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  491. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +44 -77
  492. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  493. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +8 -4
  494. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  495. package/dist/services/document-service/transform/relations/transform/data-ids.js +61 -126
  496. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  497. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +61 -126
  498. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  499. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts +9 -0
  500. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts.map +1 -0
  501. package/dist/services/document-service/transform/relations/transform/default-locale.js +32 -0
  502. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
  503. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +32 -0
  504. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
  505. package/dist/services/document-service/transform/relations/utils/dp.d.ts +3 -3
  506. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  507. package/dist/services/document-service/transform/relations/utils/dp.js +10 -5
  508. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  509. package/dist/services/document-service/transform/relations/utils/dp.mjs +9 -4
  510. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  511. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +6 -6
  512. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  513. package/dist/services/document-service/transform/relations/utils/i18n.js +3 -9
  514. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  515. package/dist/services/document-service/transform/relations/utils/i18n.mjs +3 -9
  516. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  517. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts +6 -0
  518. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -0
  519. package/dist/services/document-service/transform/relations/utils/map-relation.js +91 -0
  520. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
  521. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +91 -0
  522. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
  523. package/dist/services/document-service/transform/relations/utils/types.d.ts +6 -0
  524. package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -1
  525. package/dist/services/document-service/transform/types.d.ts +3 -3
  526. package/dist/services/document-service/transform/types.d.ts.map +1 -1
  527. package/dist/services/document-service/utils/populate.d.ts +2 -2
  528. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  529. package/dist/services/document-service/utils/populate.js +4 -0
  530. package/dist/services/document-service/utils/populate.js.map +1 -1
  531. package/dist/services/document-service/utils/populate.mjs +4 -0
  532. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  533. package/dist/services/entity-service/index.d.ts +4 -4
  534. package/dist/services/entity-service/index.d.ts.map +1 -1
  535. package/dist/services/entity-service/index.js +22 -16
  536. package/dist/services/entity-service/index.js.map +1 -1
  537. package/dist/services/entity-service/index.mjs +23 -17
  538. package/dist/services/entity-service/index.mjs.map +1 -1
  539. package/dist/services/entity-validator/index.d.ts +15 -2
  540. package/dist/services/entity-validator/index.d.ts.map +1 -1
  541. package/dist/services/entity-validator/index.js +193 -125
  542. package/dist/services/entity-validator/index.js.map +1 -1
  543. package/dist/services/entity-validator/index.mjs +186 -118
  544. package/dist/services/entity-validator/index.mjs.map +1 -1
  545. package/dist/services/entity-validator/validators.d.ts +24 -22
  546. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  547. package/dist/services/entity-validator/validators.js +66 -19
  548. package/dist/services/entity-validator/validators.js.map +1 -1
  549. package/dist/services/entity-validator/validators.mjs +59 -11
  550. package/dist/services/entity-validator/validators.mjs.map +1 -1
  551. package/dist/services/event-hub.d.ts +1 -0
  552. package/dist/services/event-hub.d.ts.map +1 -1
  553. package/dist/services/event-hub.js +9 -4
  554. package/dist/services/event-hub.js.map +1 -1
  555. package/dist/services/event-hub.mjs +9 -4
  556. package/dist/services/event-hub.mjs.map +1 -1
  557. package/dist/services/features.d.ts +3 -3
  558. package/dist/services/features.d.ts.map +1 -1
  559. package/dist/services/features.js.map +1 -1
  560. package/dist/services/features.mjs.map +1 -1
  561. package/dist/services/fs.d.ts +2 -2
  562. package/dist/services/fs.d.ts.map +1 -1
  563. package/dist/services/fs.js.map +1 -1
  564. package/dist/services/fs.mjs.map +1 -1
  565. package/dist/services/metrics/admin-user-hash.d.ts +2 -2
  566. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  567. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  568. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  569. package/dist/services/metrics/index.d.ts +2 -2
  570. package/dist/services/metrics/index.d.ts.map +1 -1
  571. package/dist/services/metrics/index.js.map +1 -1
  572. package/dist/services/metrics/index.mjs.map +1 -1
  573. package/dist/services/metrics/middleware.d.ts +2 -2
  574. package/dist/services/metrics/middleware.d.ts.map +1 -1
  575. package/dist/services/metrics/middleware.js.map +1 -1
  576. package/dist/services/metrics/middleware.mjs.map +1 -1
  577. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  578. package/dist/services/metrics/rate-limiter.js.map +1 -1
  579. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  580. package/dist/services/metrics/sender.d.ts +3 -3
  581. package/dist/services/metrics/sender.d.ts.map +1 -1
  582. package/dist/services/metrics/sender.js.map +1 -1
  583. package/dist/services/metrics/sender.mjs.map +1 -1
  584. package/dist/services/query-params.d.ts +7 -0
  585. package/dist/services/query-params.d.ts.map +1 -0
  586. package/dist/services/query-params.js +12 -0
  587. package/dist/services/query-params.js.map +1 -0
  588. package/dist/services/query-params.mjs +13 -0
  589. package/dist/services/query-params.mjs.map +1 -0
  590. package/dist/services/reloader.d.ts +7 -0
  591. package/dist/services/reloader.d.ts.map +1 -0
  592. package/dist/services/reloader.js +36 -0
  593. package/dist/services/reloader.js.map +1 -0
  594. package/dist/services/reloader.mjs +36 -0
  595. package/dist/services/reloader.mjs.map +1 -0
  596. package/dist/services/server/admin-api.d.ts +3 -3
  597. package/dist/services/server/admin-api.d.ts.map +1 -1
  598. package/dist/services/server/admin-api.js.map +1 -1
  599. package/dist/services/server/admin-api.mjs.map +1 -1
  600. package/dist/services/server/api.d.ts +3 -3
  601. package/dist/services/server/api.d.ts.map +1 -1
  602. package/dist/services/server/api.js.map +1 -1
  603. package/dist/services/server/api.mjs.map +1 -1
  604. package/dist/services/server/compose-endpoint.d.ts +2 -2
  605. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  606. package/dist/services/server/compose-endpoint.js +8 -9
  607. package/dist/services/server/compose-endpoint.js.map +1 -1
  608. package/dist/services/server/compose-endpoint.mjs +2 -3
  609. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  610. package/dist/services/server/content-api.d.ts +3 -3
  611. package/dist/services/server/content-api.d.ts.map +1 -1
  612. package/dist/services/server/content-api.js.map +1 -1
  613. package/dist/services/server/content-api.mjs.map +1 -1
  614. package/dist/services/server/http-server.d.ts +2 -2
  615. package/dist/services/server/http-server.d.ts.map +1 -1
  616. package/dist/services/server/http-server.js.map +1 -1
  617. package/dist/services/server/http-server.mjs.map +1 -1
  618. package/dist/services/server/index.d.ts +2 -2
  619. package/dist/services/server/index.d.ts.map +1 -1
  620. package/dist/services/server/index.js +2 -3
  621. package/dist/services/server/index.js.map +1 -1
  622. package/dist/services/server/index.mjs +2 -3
  623. package/dist/services/server/index.mjs.map +1 -1
  624. package/dist/services/server/koa.d.ts.map +1 -1
  625. package/dist/services/server/koa.js +4 -4
  626. package/dist/services/server/koa.js.map +1 -1
  627. package/dist/services/server/koa.mjs +1 -1
  628. package/dist/services/server/koa.mjs.map +1 -1
  629. package/dist/services/server/middleware.d.ts +4 -4
  630. package/dist/services/server/middleware.d.ts.map +1 -1
  631. package/dist/services/server/middleware.js +3 -3
  632. package/dist/services/server/middleware.js.map +1 -1
  633. package/dist/services/server/middleware.mjs.map +1 -1
  634. package/dist/services/server/policy.d.ts +3 -3
  635. package/dist/services/server/policy.d.ts.map +1 -1
  636. package/dist/services/server/policy.js +4 -4
  637. package/dist/services/server/policy.js.map +1 -1
  638. package/dist/services/server/policy.mjs +4 -4
  639. package/dist/services/server/policy.mjs.map +1 -1
  640. package/dist/services/server/register-middlewares.d.ts +2 -2
  641. package/dist/services/server/register-middlewares.d.ts.map +1 -1
  642. package/dist/services/server/register-middlewares.js.map +1 -1
  643. package/dist/services/server/register-middlewares.mjs.map +1 -1
  644. package/dist/services/server/register-routes.d.ts +2 -2
  645. package/dist/services/server/register-routes.d.ts.map +1 -1
  646. package/dist/services/server/register-routes.js +3 -3
  647. package/dist/services/server/register-routes.js.map +1 -1
  648. package/dist/services/server/register-routes.mjs +3 -3
  649. package/dist/services/server/register-routes.mjs.map +1 -1
  650. package/dist/services/server/routing.d.ts +5 -5
  651. package/dist/services/server/routing.d.ts.map +1 -1
  652. package/dist/services/server/routing.js +2 -2
  653. package/dist/services/server/routing.js.map +1 -1
  654. package/dist/services/server/routing.mjs.map +1 -1
  655. package/dist/services/utils/dynamic-zones.d.ts.map +1 -1
  656. package/dist/services/utils/dynamic-zones.js +7 -6
  657. package/dist/services/utils/dynamic-zones.js.map +1 -1
  658. package/dist/services/utils/dynamic-zones.mjs +2 -1
  659. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  660. package/dist/services/webhook-runner.d.ts +2 -1
  661. package/dist/services/webhook-runner.d.ts.map +1 -1
  662. package/dist/services/webhook-runner.js.map +1 -1
  663. package/dist/services/webhook-runner.mjs.map +1 -1
  664. package/dist/services/webhook-store.d.ts +2 -8
  665. package/dist/services/webhook-store.d.ts.map +1 -1
  666. package/dist/services/webhook-store.js +14 -8
  667. package/dist/services/webhook-store.js.map +1 -1
  668. package/dist/services/webhook-store.mjs +14 -8
  669. package/dist/services/webhook-store.mjs.map +1 -1
  670. package/dist/utils/convert-custom-field-type.d.ts +2 -2
  671. package/dist/utils/convert-custom-field-type.d.ts.map +1 -1
  672. package/dist/utils/convert-custom-field-type.js.map +1 -1
  673. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  674. package/dist/utils/cron.js +3 -3
  675. package/dist/utils/cron.js.map +1 -1
  676. package/dist/utils/fetch.d.ts +3 -3
  677. package/dist/utils/fetch.d.ts.map +1 -1
  678. package/dist/utils/fetch.js +4 -3
  679. package/dist/utils/fetch.js.map +1 -1
  680. package/dist/utils/fetch.mjs +4 -3
  681. package/dist/utils/fetch.mjs.map +1 -1
  682. package/dist/utils/filepath-to-prop-path.d.ts +1 -1
  683. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
  684. package/dist/utils/filepath-to-prop-path.js +27 -6
  685. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  686. package/dist/utils/filepath-to-prop-path.mjs +25 -5
  687. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  688. package/dist/utils/index.d.ts +2 -1
  689. package/dist/utils/index.d.ts.map +1 -1
  690. package/dist/utils/is-initialized.d.ts +2 -2
  691. package/dist/utils/is-initialized.d.ts.map +1 -1
  692. package/dist/utils/is-initialized.js +3 -3
  693. package/dist/utils/is-initialized.js.map +1 -1
  694. package/dist/utils/is-initialized.mjs.map +1 -1
  695. package/dist/utils/load-files.d.ts.map +1 -1
  696. package/dist/utils/open-browser.d.ts +2 -2
  697. package/dist/utils/open-browser.d.ts.map +1 -1
  698. package/dist/utils/open-browser.js.map +1 -1
  699. package/dist/utils/open-browser.mjs.map +1 -1
  700. package/dist/utils/resolve-working-dirs.d.ts +19 -0
  701. package/dist/utils/resolve-working-dirs.d.ts.map +1 -0
  702. package/dist/utils/resolve-working-dirs.js +13 -0
  703. package/dist/utils/resolve-working-dirs.js.map +1 -0
  704. package/dist/utils/resolve-working-dirs.mjs +11 -0
  705. package/dist/utils/resolve-working-dirs.mjs.map +1 -0
  706. package/dist/utils/signals.d.ts +2 -2
  707. package/dist/utils/signals.d.ts.map +1 -1
  708. package/dist/utils/signals.js.map +1 -1
  709. package/dist/utils/signals.mjs.map +1 -1
  710. package/dist/utils/startup-logger.d.ts +2 -2
  711. package/dist/utils/startup-logger.d.ts.map +1 -1
  712. package/dist/utils/startup-logger.js +4 -4
  713. package/dist/utils/startup-logger.js.map +1 -1
  714. package/dist/utils/startup-logger.mjs +3 -3
  715. package/dist/utils/startup-logger.mjs.map +1 -1
  716. package/dist/utils/transform-content-types-to-models.d.ts +54 -99
  717. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  718. package/dist/utils/transform-content-types-to-models.js +111 -61
  719. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  720. package/dist/utils/transform-content-types-to-models.mjs +110 -60
  721. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  722. package/dist/utils/update-notifier/index.d.ts +2 -7
  723. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  724. package/dist/utils/update-notifier/index.js +11 -14
  725. package/dist/utils/update-notifier/index.js.map +1 -1
  726. package/dist/utils/update-notifier/index.mjs +11 -14
  727. package/dist/utils/update-notifier/index.mjs.map +1 -1
  728. package/package.json +32 -28
  729. package/dist/registries/config.d.ts +0 -4
  730. package/dist/registries/config.d.ts.map +0 -1
  731. package/dist/registries/config.js +0 -31
  732. package/dist/registries/config.js.map +0 -1
  733. package/dist/registries/config.mjs +0 -32
  734. package/dist/registries/config.mjs.map +0 -1
  735. package/dist/services/document-service/middlewares.d.ts +0 -8
  736. package/dist/services/document-service/middlewares.d.ts.map +0 -1
  737. package/dist/services/document-service/middlewares.js.map +0 -1
  738. package/dist/services/document-service/middlewares.mjs.map +0 -1
  739. package/dist/services/document-service/transform/filters.d.ts +0 -3
  740. package/dist/services/document-service/transform/filters.d.ts.map +0 -1
  741. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +0 -4
  742. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +0 -1
  743. package/dist/services/document-service/transform/relations/utils/data.js +0 -12
  744. package/dist/services/document-service/transform/relations/utils/data.js.map +0 -1
  745. package/dist/services/document-service/transform/relations/utils/data.mjs +0 -12
  746. package/dist/services/document-service/transform/relations/utils/data.mjs.map +0 -1
  747. package/dist/services/document-service/transform/sort.d.ts +0 -5
  748. package/dist/services/document-service/transform/sort.d.ts.map +0 -1
  749. package/dist/services/document-service/transform/utils.d.ts +0 -9
  750. package/dist/services/document-service/transform/utils.d.ts.map +0 -1
  751. package/dist/services/entity-service/attributes/index.d.ts +0 -6
  752. package/dist/services/entity-service/attributes/index.d.ts.map +0 -1
  753. package/dist/services/entity-service/attributes/index.js.map +0 -1
  754. package/dist/services/entity-service/attributes/index.mjs.map +0 -1
  755. package/dist/services/entity-service/attributes/transforms.d.ts +0 -10
  756. package/dist/services/entity-service/attributes/transforms.d.ts.map +0 -1
  757. package/dist/services/entity-service/attributes/transforms.js.map +0 -1
  758. package/dist/services/entity-service/attributes/transforms.mjs.map +0 -1
  759. package/dist/services/entity-service/components.d.ts +0 -20
  760. package/dist/services/entity-service/components.d.ts.map +0 -1
  761. package/dist/services/entity-service/components.js.map +0 -1
  762. package/dist/services/entity-service/components.mjs.map +0 -1
  763. package/dist/services/entity-service/params.d.ts +0 -8
  764. package/dist/services/entity-service/params.d.ts.map +0 -1
  765. package/dist/services/entity-service/params.js.map +0 -1
  766. package/dist/services/entity-service/params.mjs.map +0 -1
  767. package/dist/utils/get-dirs.d.ts +0 -9
  768. package/dist/utils/get-dirs.d.ts.map +0 -1
  769. package/dist/utils/get-dirs.js.map +0 -1
  770. package/dist/utils/get-dirs.mjs.map +0 -1
  771. /package/dist/services/{entity-service → document-service}/attributes/transforms.mjs +0 -0
  772. /package/dist/services/{entity-service → document-service}/params.mjs +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"get-enabled-plugins.mjs","sources":["../../../src/loaders/plugins/get-enabled-plugins.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport { dirname, join, resolve } from 'path';\nimport { statSync, existsSync } from 'fs';\nimport _ from 'lodash';\nimport { get, pickBy, defaultsDeep, map, prop, pipe } from 'lodash/fp';\nimport { strings } from '@strapi/utils';\nimport type { Strapi } from '@strapi/types';\nimport { getUserPluginsConfig } from './get-user-plugins-config';\n\ninterface PluginMeta {\n enabled: boolean;\n pathToPlugin?: string;\n info: Record<string, unknown>;\n}\n\ntype PluginMetas = Record<string, PluginMeta>;\n\ninterface PluginInfo {\n name: string;\n kind: string;\n}\n\ninterface PluginDeclaration {\n enabled: boolean;\n resolve: string;\n isModule: boolean;\n}\n\n/**\n * otherwise known as \"core features\"\n */\nconst INTERNAL_PLUGINS = [\n '@strapi/plugin-content-manager',\n '@strapi/plugin-content-type-builder',\n '@strapi/plugin-email',\n '@strapi/plugin-upload',\n '@strapi/content-releases',\n];\n\nconst isStrapiPlugin = (info: PluginInfo) => get('strapi.kind', info) === 'plugin';\n\nconst validatePluginName = (pluginName: string) => {\n if (!strings.isKebabCase(pluginName)) {\n throw new Error(`Plugin name \"${pluginName}\" is not in kebab (an-example-of-kebab-case)`);\n }\n};\n\nconst toDetailedDeclaration = (declaration: boolean | PluginDeclaration) => {\n if (typeof declaration === 'boolean') {\n return { enabled: declaration };\n }\n\n const detailedDeclaration: { enabled: boolean; pathToPlugin?: string } = {\n enabled: declaration.enabled,\n };\n\n if (declaration?.resolve) {\n let pathToPlugin = '';\n\n if (declaration.isModule) {\n /**\n * we only want the node_module here, not the package.json\n */\n pathToPlugin = join(declaration.resolve, '..');\n } else {\n try {\n pathToPlugin = dirname(require.resolve(declaration.resolve));\n } catch (e) {\n pathToPlugin = resolve(strapi.dirs.app.root, declaration.resolve);\n\n if (!existsSync(pathToPlugin) || !statSync(pathToPlugin).isDirectory()) {\n throw new Error(`${declaration.resolve} couldn't be resolved`);\n }\n }\n }\n\n detailedDeclaration.pathToPlugin = pathToPlugin;\n }\n\n return detailedDeclaration;\n};\n\nexport const getEnabledPlugins = async (strapi: Strapi, { client } = { client: false }) => {\n const internalPlugins: PluginMetas = {};\n\n for (const dep of INTERNAL_PLUGINS) {\n const packagePath = join(dep, 'package.json');\n const packageInfo = require(packagePath);\n\n validatePluginName(packageInfo.strapi.name);\n internalPlugins[packageInfo.strapi.name] = {\n ...toDetailedDeclaration({ enabled: true, resolve: packagePath, isModule: client }),\n info: packageInfo.strapi,\n };\n }\n\n const installedPlugins: PluginMetas = {};\n const dependencies = strapi.config.get('info.dependencies', {});\n\n for (const dep of Object.keys(dependencies)) {\n const packagePath = join(dep, 'package.json');\n let packageInfo;\n try {\n packageInfo = require(packagePath);\n } catch {\n continue;\n }\n\n if (isStrapiPlugin(packageInfo)) {\n validatePluginName(packageInfo.strapi.name);\n installedPlugins[packageInfo.strapi.name] = {\n ...toDetailedDeclaration({ enabled: true, resolve: packagePath, isModule: client }),\n info: {\n ...packageInfo.strapi,\n packageName: packageInfo.name,\n },\n };\n }\n }\n\n const declaredPlugins: PluginMetas = {};\n const userPluginsConfig = await getUserPluginsConfig();\n\n _.forEach(userPluginsConfig, (declaration, pluginName) => {\n validatePluginName(pluginName);\n\n declaredPlugins[pluginName] = {\n ...toDetailedDeclaration(declaration),\n info: {},\n };\n\n const { pathToPlugin } = declaredPlugins[pluginName];\n\n // for manually resolved plugins\n if (pathToPlugin) {\n const packagePath = join(pathToPlugin, 'package.json');\n const packageInfo = require(packagePath);\n\n if (isStrapiPlugin(packageInfo)) {\n declaredPlugins[pluginName].info = packageInfo.strapi || {};\n }\n }\n });\n\n const declaredPluginsResolves = map(prop('pathToPlugin'), declaredPlugins);\n const installedPluginsNotAlreadyUsed = pickBy(\n (p) => !declaredPluginsResolves.includes(p.pathToPlugin),\n installedPlugins\n );\n\n const enabledPlugins = pipe(\n defaultsDeep(declaredPlugins),\n defaultsDeep(installedPluginsNotAlreadyUsed),\n pickBy((p: PluginMeta) => p.enabled)\n )(internalPlugins);\n\n return enabledPlugins;\n};\n"],"names":["strapi"],"mappings":"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"}
1
+ {"version":3,"file":"get-enabled-plugins.mjs","sources":["../../../src/loaders/plugins/get-enabled-plugins.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport { dirname, join, resolve } from 'path';\nimport { statSync, existsSync } from 'fs';\nimport _ from 'lodash';\nimport { get, pickBy, defaultsDeep, map, prop, pipe } from 'lodash/fp';\nimport { strings } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { getUserPluginsConfig } from './get-user-plugins-config';\n\ninterface PluginMeta {\n enabled: boolean;\n pathToPlugin?: string;\n info: Record<string, unknown>;\n}\n\ntype PluginMetas = Record<string, PluginMeta>;\n\ninterface PluginInfo {\n name: string;\n kind: string;\n}\n\ninterface PluginDeclaration {\n enabled: boolean;\n resolve: string;\n isModule: boolean;\n}\n\n/**\n * otherwise known as \"core features\"\n *\n * NOTE: These are excluded from the content manager plugin list, as they are always enabled.\n * See admin.ts server controller on the content-manager plugin for more details.\n */\nconst INTERNAL_PLUGINS = [\n '@strapi/content-manager',\n '@strapi/content-type-builder',\n '@strapi/email',\n '@strapi/upload',\n '@strapi/i18n',\n '@strapi/content-releases',\n '@strapi/review-workflows',\n];\n\nconst isStrapiPlugin = (info: PluginInfo) => get('strapi.kind', info) === 'plugin';\n\nconst validatePluginName = (pluginName: string) => {\n if (!strings.isKebabCase(pluginName)) {\n throw new Error(`Plugin name \"${pluginName}\" is not in kebab (an-example-of-kebab-case)`);\n }\n};\n\nconst toDetailedDeclaration = (declaration: boolean | PluginDeclaration) => {\n if (typeof declaration === 'boolean') {\n return { enabled: declaration };\n }\n\n const detailedDeclaration: { enabled: boolean; pathToPlugin?: string } = {\n enabled: declaration.enabled,\n };\n\n if (declaration?.resolve) {\n let pathToPlugin = '';\n\n if (declaration.isModule) {\n /**\n * we only want the node_module here, not the package.json\n */\n pathToPlugin = join(declaration.resolve, '..');\n } else {\n try {\n pathToPlugin = dirname(require.resolve(declaration.resolve));\n } catch (e) {\n pathToPlugin = resolve(strapi.dirs.app.root, declaration.resolve);\n\n if (!existsSync(pathToPlugin) || !statSync(pathToPlugin).isDirectory()) {\n throw new Error(`${declaration.resolve} couldn't be resolved`);\n }\n }\n }\n\n detailedDeclaration.pathToPlugin = pathToPlugin;\n }\n\n return detailedDeclaration;\n};\n\nexport const getEnabledPlugins = async (strapi: Core.Strapi, { client } = { client: false }) => {\n const internalPlugins: PluginMetas = {};\n\n for (const dep of INTERNAL_PLUGINS) {\n const packagePath = join(dep, 'package.json');\n const packageInfo = require(packagePath);\n\n validatePluginName(packageInfo.strapi.name);\n internalPlugins[packageInfo.strapi.name] = {\n ...toDetailedDeclaration({ enabled: true, resolve: packagePath, isModule: client }),\n info: packageInfo.strapi,\n };\n }\n\n const installedPlugins: PluginMetas = {};\n const dependencies = strapi.config.get('info.dependencies', {});\n\n for (const dep of Object.keys(dependencies)) {\n const packagePath = join(dep, 'package.json');\n let packageInfo;\n try {\n packageInfo = require(packagePath);\n } catch {\n continue;\n }\n\n if (isStrapiPlugin(packageInfo)) {\n validatePluginName(packageInfo.strapi.name);\n installedPlugins[packageInfo.strapi.name] = {\n ...toDetailedDeclaration({ enabled: true, resolve: packagePath, isModule: client }),\n info: {\n ...packageInfo.strapi,\n packageName: packageInfo.name,\n },\n };\n }\n }\n\n const declaredPlugins: PluginMetas = {};\n const userPluginsConfig = await getUserPluginsConfig();\n\n _.forEach(userPluginsConfig, (declaration, pluginName) => {\n validatePluginName(pluginName);\n\n declaredPlugins[pluginName] = {\n ...toDetailedDeclaration(declaration),\n info: {},\n };\n\n const { pathToPlugin } = declaredPlugins[pluginName];\n\n // for manually resolved plugins\n if (pathToPlugin) {\n const packagePath = join(pathToPlugin, 'package.json');\n const packageInfo = require(packagePath);\n\n if (isStrapiPlugin(packageInfo)) {\n declaredPlugins[pluginName].info = packageInfo.strapi || {};\n }\n }\n });\n\n const declaredPluginsResolves = map(prop('pathToPlugin'), declaredPlugins);\n const installedPluginsNotAlreadyUsed = pickBy(\n (p) => !declaredPluginsResolves.includes(p.pathToPlugin),\n installedPlugins\n );\n\n const enabledPlugins = pipe(\n defaultsDeep(declaredPlugins),\n defaultsDeep(installedPluginsNotAlreadyUsed),\n pickBy((p: PluginMeta) => p.enabled)\n )(internalPlugins);\n\n return enabledPlugins;\n};\n"],"names":["strapi"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const path = require("path");
4
4
  const fse = require("fs-extra");
5
- const _ = require("lodash/fp");
5
+ const fp = require("lodash/fp");
6
6
  const loadConfigFile = require("../../utils/load-config-file.js");
7
7
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
8
8
  const fse__default = /* @__PURE__ */ _interopDefault(fse);
@@ -19,7 +19,7 @@ const getUserPluginsConfig = async () => {
19
19
  config = loadConfigFile.loadConfigFile(globalUserConfigPath);
20
20
  }
21
21
  if (await fse__default.default.pathExists(currentEnvUserConfigPath)) {
22
- config = _.merge(config, loadConfigFile.loadConfigFile(currentEnvUserConfigPath));
22
+ config = fp.merge(config, loadConfigFile.loadConfigFile(currentEnvUserConfigPath));
23
23
  }
24
24
  return config;
25
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"get-user-plugins-config.js","sources":["../../../src/loaders/plugins/get-user-plugins-config.ts"],"sourcesContent":["import { join } from 'path';\nimport fse from 'fs-extra';\nimport { merge } from 'lodash/fp';\nimport { loadConfigFile } from '../../utils/load-config-file';\n\n/**\n * Return user defined plugins' config\n * first load config from `config/plugins.js`\n * and then merge config from `config/env/{env}/plugins.js`\n */\nexport const getUserPluginsConfig = async () => {\n const globalUserConfigPath = join(strapi.dirs.dist.config, 'plugins.js');\n const currentEnvUserConfigPath = join(\n strapi.dirs.dist.config,\n 'env',\n process.env.NODE_ENV as string,\n 'plugins.js'\n );\n let config = {};\n\n // assign global user config if exists\n if (await fse.pathExists(globalUserConfigPath)) {\n config = loadConfigFile(globalUserConfigPath);\n }\n\n // and merge user config by environment if exists\n if (await fse.pathExists(currentEnvUserConfigPath)) {\n config = merge(config, loadConfigFile(currentEnvUserConfigPath));\n }\n\n return config;\n};\n"],"names":["join","fse","loadConfigFile","merge"],"mappings":";;;;;;;;AAUO,MAAM,uBAAuB,YAAY;AAC9C,QAAM,uBAAuBA,KAAAA,KAAK,OAAO,KAAK,KAAK,QAAQ,YAAY;AACvE,QAAM,2BAA2BA,KAAA;AAAA,IAC/B,OAAO,KAAK,KAAK;AAAA,IACjB;AAAA,IACA,QAAQ,IAAI;AAAA,IACZ;AAAA,EAAA;AAEF,MAAI,SAAS,CAAA;AAGb,MAAI,MAAMC,aAAA,QAAI,WAAW,oBAAoB,GAAG;AAC9C,aAASC,eAAAA,eAAe,oBAAoB;AAAA,EAC9C;AAGA,MAAI,MAAMD,aAAA,QAAI,WAAW,wBAAwB,GAAG;AAClD,aAASE,EAAAA,MAAM,QAAQD,eAAAA,eAAe,wBAAwB,CAAC;AAAA,EACjE;AAEO,SAAA;AACT;;"}
1
+ {"version":3,"file":"get-user-plugins-config.js","sources":["../../../src/loaders/plugins/get-user-plugins-config.ts"],"sourcesContent":["import { join } from 'path';\nimport fse from 'fs-extra';\nimport { merge } from 'lodash/fp';\nimport { loadConfigFile } from '../../utils/load-config-file';\n\n/**\n * Return user defined plugins' config\n * first load config from `config/plugins.js`\n * and then merge config from `config/env/{env}/plugins.js`\n */\nexport const getUserPluginsConfig = async () => {\n const globalUserConfigPath = join(strapi.dirs.dist.config, 'plugins.js');\n const currentEnvUserConfigPath = join(\n strapi.dirs.dist.config,\n 'env',\n process.env.NODE_ENV as string,\n 'plugins.js'\n );\n let config = {};\n\n // assign global user config if exists\n if (await fse.pathExists(globalUserConfigPath)) {\n config = loadConfigFile(globalUserConfigPath);\n }\n\n // and merge user config by environment if exists\n if (await fse.pathExists(currentEnvUserConfigPath)) {\n config = merge(config, loadConfigFile(currentEnvUserConfigPath));\n }\n\n return config;\n};\n"],"names":["join","fse","loadConfigFile","merge"],"mappings":";;;;;;;;AAUO,MAAM,uBAAuB,YAAY;AAC9C,QAAM,uBAAuBA,KAAAA,KAAK,OAAO,KAAK,KAAK,QAAQ,YAAY;AACvE,QAAM,2BAA2BA,KAAA;AAAA,IAC/B,OAAO,KAAK,KAAK;AAAA,IACjB;AAAA,IACA,QAAQ,IAAI;AAAA,IACZ;AAAA,EAAA;AAEF,MAAI,SAAS,CAAA;AAGb,MAAI,MAAMC,aAAA,QAAI,WAAW,oBAAoB,GAAG;AAC9C,aAASC,eAAAA,eAAe,oBAAoB;AAAA,EAC9C;AAGA,MAAI,MAAMD,aAAA,QAAI,WAAW,wBAAwB,GAAG;AAClD,aAASE,GAAAA,MAAM,QAAQD,eAAAA,eAAe,wBAAwB,CAAC;AAAA,EACjE;AAEO,SAAA;AACT;;"}
@@ -1,3 +1,3 @@
1
- import type { Strapi } from '@strapi/types';
2
- export default function loadPlugins(strapi: Strapi): Promise<void>;
1
+ import type { Core } from '@strapi/types';
2
+ export default function loadPlugins(strapi: Core.Strapi): Promise<void>;
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/loaders/plugins/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,eAAe,CAAC;AAiF5D,wBAA8B,WAAW,CAAC,MAAM,EAAE,MAAM,iBA0CvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/loaders/plugins/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAkB,MAAM,eAAe,CAAC;AAiF1D,wBAA8B,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,iBA0C5D"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const path = require("path");
3
3
  const fse = require("fs-extra");
4
- const _ = require("lodash/fp");
4
+ const fp = require("lodash/fp");
5
5
  const strapiUtils = require("@strapi/utils");
6
6
  const loadConfigFile = require("../../utils/load-config-file.js");
7
7
  const loadFiles = require("../../utils/load-files.js");
@@ -39,7 +39,7 @@ const applyUserExtension = async (plugins) => {
39
39
  for (const pluginName of Object.keys(plugins)) {
40
40
  const plugin = plugins[pluginName];
41
41
  for (const ctName of Object.keys(plugin.contentTypes)) {
42
- const extendedSchema = _.get([pluginName, "content-types", ctName, "schema"], extendedSchemas);
42
+ const extendedSchema = fp.get([pluginName, "content-types", ctName, "schema"], extendedSchemas);
43
43
  if (extendedSchema) {
44
44
  plugin.contentTypes[ctName].schema = {
45
45
  ...plugin.contentTypes[ctName].schema,
@@ -47,7 +47,7 @@ const applyUserExtension = async (plugins) => {
47
47
  };
48
48
  }
49
49
  }
50
- const strapiServer = _.get([pluginName, "strapi-server"], strapiServers);
50
+ const strapiServer = fp.get([pluginName, "strapi-server"], strapiServers);
51
51
  if (strapiServer) {
52
52
  plugins[pluginName] = await strapiServer(plugin);
53
53
  }
@@ -57,9 +57,9 @@ const applyUserConfig = async (plugins) => {
57
57
  const userPluginsConfig = await getUserPluginsConfig.getUserPluginsConfig();
58
58
  for (const pluginName of Object.keys(plugins)) {
59
59
  const plugin = plugins[pluginName];
60
- const userPluginConfig = _.getOr({}, `${pluginName}.config`, userPluginsConfig);
60
+ const userPluginConfig = fp.getOr({}, `${pluginName}.config`, userPluginsConfig);
61
61
  const defaultConfig = typeof plugin.config.default === "function" ? plugin.config.default({ env: strapiUtils.env }) : plugin.config.default;
62
- const config = _.defaultsDeep(defaultConfig, userPluginConfig);
62
+ const config = fp.defaultsDeep(defaultConfig, userPluginConfig);
63
63
  try {
64
64
  plugin.config.validator(config);
65
65
  } catch (e) {
@@ -93,7 +93,7 @@ async function loadPlugins(strapi2) {
93
93
  ...defaultPlugin,
94
94
  ...pluginServer,
95
95
  contentTypes: formatContentTypes(pluginName, pluginServer.contentTypes ?? {}),
96
- config: _.defaults(defaultPlugin.config, pluginServer.config),
96
+ config: fp.defaults(defaultPlugin.config, pluginServer.config),
97
97
  routes: pluginServer.routes ?? defaultPlugin.routes
98
98
  };
99
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/loaders/plugins/index.ts"],"sourcesContent":["import { join } from 'path';\nimport fse from 'fs-extra';\nimport { defaultsDeep, defaults, getOr, get } from 'lodash/fp';\nimport { env } from '@strapi/utils';\nimport type { Strapi, Plugin, Schema } from '@strapi/types';\nimport { loadConfigFile } from '../../utils/load-config-file';\nimport { loadFiles } from '../../utils/load-files';\nimport { getEnabledPlugins } from './get-enabled-plugins';\nimport { getUserPluginsConfig } from './get-user-plugins-config';\nimport { getGlobalId } from '../../domain/content-type';\n\ninterface Plugins {\n [key: string]: Plugin.LoadedPlugin;\n}\n\nconst defaultPlugin = {\n bootstrap() {},\n destroy() {},\n register() {},\n config: {\n default: {},\n validator() {},\n },\n routes: [],\n controllers: {},\n services: {},\n policies: {},\n middlewares: {},\n contentTypes: {},\n};\n\nconst applyUserExtension = async (plugins: Plugins) => {\n const extensionsDir = strapi.dirs.dist.extensions;\n if (!(await fse.pathExists(extensionsDir))) {\n return;\n }\n\n const extendedSchemas = await loadFiles(extensionsDir, '**/content-types/**/schema.json');\n const strapiServers = await loadFiles(extensionsDir, '**/strapi-server.js');\n\n for (const pluginName of Object.keys(plugins)) {\n const plugin = plugins[pluginName];\n // first: load json schema\n for (const ctName of Object.keys(plugin.contentTypes)) {\n const extendedSchema = get([pluginName, 'content-types', ctName, 'schema'], extendedSchemas);\n if (extendedSchema) {\n plugin.contentTypes[ctName].schema = {\n ...plugin.contentTypes[ctName].schema,\n ...extendedSchema,\n };\n }\n }\n // second: execute strapi-server extension\n const strapiServer = get([pluginName, 'strapi-server'], strapiServers);\n if (strapiServer) {\n plugins[pluginName] = await strapiServer(plugin);\n }\n }\n};\n\nconst applyUserConfig = async (plugins: Plugins) => {\n const userPluginsConfig = await getUserPluginsConfig();\n\n for (const pluginName of Object.keys(plugins)) {\n const plugin = plugins[pluginName];\n const userPluginConfig = getOr({}, `${pluginName}.config`, userPluginsConfig);\n const defaultConfig =\n typeof plugin.config.default === 'function'\n ? plugin.config.default({ env })\n : plugin.config.default;\n\n const config = defaultsDeep(defaultConfig, userPluginConfig);\n try {\n plugin.config.validator(config);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`Error regarding ${pluginName} config: ${e.message}`);\n }\n\n throw e;\n }\n plugin.config = config;\n }\n};\n\nexport default async function loadPlugins(strapi: Strapi) {\n const plugins: Plugins = {};\n\n const enabledPlugins = await getEnabledPlugins(strapi);\n\n strapi.config.set('enabledPlugins', enabledPlugins);\n\n for (const pluginName of Object.keys(enabledPlugins)) {\n const enabledPlugin = enabledPlugins[pluginName];\n\n let serverEntrypointPath;\n\n try {\n serverEntrypointPath = join(enabledPlugin.pathToPlugin, 'strapi-server.js');\n } catch (e) {\n throw new Error(\n `Error loading the plugin ${pluginName} because ${pluginName} is not installed. Please either install the plugin or remove it's configuration.`\n );\n }\n\n // only load plugins with a server entrypoint\n if (!(await fse.pathExists(serverEntrypointPath))) {\n continue;\n }\n\n const pluginServer = loadConfigFile(serverEntrypointPath);\n plugins[pluginName] = {\n ...defaultPlugin,\n ...pluginServer,\n contentTypes: formatContentTypes(pluginName, pluginServer.contentTypes ?? {}),\n config: defaults(defaultPlugin.config, pluginServer.config),\n routes: pluginServer.routes ?? defaultPlugin.routes,\n };\n }\n\n // TODO: validate plugin format\n await applyUserConfig(plugins);\n await applyUserExtension(plugins);\n\n for (const pluginName of Object.keys(plugins)) {\n strapi.get('plugins').add(pluginName, plugins[pluginName]);\n }\n}\n\nconst formatContentTypes = (\n pluginName: string,\n contentTypes: Record<string, { schema: Schema.ContentType }>\n) => {\n Object.values(contentTypes).forEach((definition) => {\n const { schema } = definition;\n\n Object.assign(schema, {\n plugin: pluginName,\n collectionName:\n schema.collectionName || `${pluginName}_${schema.info.singularName}`.toLowerCase(),\n globalId: getGlobalId(schema, pluginName),\n });\n });\n\n return contentTypes;\n};\n"],"names":["fse","loadFiles","get","getUserPluginsConfig","getOr","env","defaultsDeep","strapi","getEnabledPlugins","join","loadConfigFile","defaults","getGlobalId"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/loaders/plugins/index.ts"],"sourcesContent":["import { join } from 'path';\nimport fse from 'fs-extra';\nimport { defaultsDeep, defaults, getOr, get } from 'lodash/fp';\nimport { env } from '@strapi/utils';\nimport type { Core, Plugin, Struct } from '@strapi/types';\nimport { loadConfigFile } from '../../utils/load-config-file';\nimport { loadFiles } from '../../utils/load-files';\nimport { getEnabledPlugins } from './get-enabled-plugins';\nimport { getUserPluginsConfig } from './get-user-plugins-config';\nimport { getGlobalId } from '../../domain/content-type';\n\ninterface Plugins {\n [key: string]: Plugin.LoadedPlugin;\n}\n\nconst defaultPlugin = {\n bootstrap() {},\n destroy() {},\n register() {},\n config: {\n default: {},\n validator() {},\n },\n routes: [],\n controllers: {},\n services: {},\n policies: {},\n middlewares: {},\n contentTypes: {},\n};\n\nconst applyUserExtension = async (plugins: Plugins) => {\n const extensionsDir = strapi.dirs.dist.extensions;\n if (!(await fse.pathExists(extensionsDir))) {\n return;\n }\n\n const extendedSchemas = await loadFiles(extensionsDir, '**/content-types/**/schema.json');\n const strapiServers = await loadFiles(extensionsDir, '**/strapi-server.js');\n\n for (const pluginName of Object.keys(plugins)) {\n const plugin = plugins[pluginName];\n // first: load json schema\n for (const ctName of Object.keys(plugin.contentTypes)) {\n const extendedSchema = get([pluginName, 'content-types', ctName, 'schema'], extendedSchemas);\n if (extendedSchema) {\n plugin.contentTypes[ctName].schema = {\n ...plugin.contentTypes[ctName].schema,\n ...extendedSchema,\n };\n }\n }\n // second: execute strapi-server extension\n const strapiServer = get([pluginName, 'strapi-server'], strapiServers);\n if (strapiServer) {\n plugins[pluginName] = await strapiServer(plugin);\n }\n }\n};\n\nconst applyUserConfig = async (plugins: Plugins) => {\n const userPluginsConfig = await getUserPluginsConfig();\n\n for (const pluginName of Object.keys(plugins)) {\n const plugin = plugins[pluginName];\n const userPluginConfig = getOr({}, `${pluginName}.config`, userPluginsConfig);\n const defaultConfig =\n typeof plugin.config.default === 'function'\n ? plugin.config.default({ env })\n : plugin.config.default;\n\n const config = defaultsDeep(defaultConfig, userPluginConfig);\n try {\n plugin.config.validator(config);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`Error regarding ${pluginName} config: ${e.message}`);\n }\n\n throw e;\n }\n plugin.config = config;\n }\n};\n\nexport default async function loadPlugins(strapi: Core.Strapi) {\n const plugins: Plugins = {};\n\n const enabledPlugins = await getEnabledPlugins(strapi);\n\n strapi.config.set('enabledPlugins', enabledPlugins);\n\n for (const pluginName of Object.keys(enabledPlugins)) {\n const enabledPlugin = enabledPlugins[pluginName];\n\n let serverEntrypointPath;\n\n try {\n serverEntrypointPath = join(enabledPlugin.pathToPlugin, 'strapi-server.js');\n } catch (e) {\n throw new Error(\n `Error loading the plugin ${pluginName} because ${pluginName} is not installed. Please either install the plugin or remove it's configuration.`\n );\n }\n\n // only load plugins with a server entrypoint\n if (!(await fse.pathExists(serverEntrypointPath))) {\n continue;\n }\n\n const pluginServer = loadConfigFile(serverEntrypointPath);\n plugins[pluginName] = {\n ...defaultPlugin,\n ...pluginServer,\n contentTypes: formatContentTypes(pluginName, pluginServer.contentTypes ?? {}),\n config: defaults(defaultPlugin.config, pluginServer.config),\n routes: pluginServer.routes ?? defaultPlugin.routes,\n };\n }\n\n // TODO: validate plugin format\n await applyUserConfig(plugins);\n await applyUserExtension(plugins);\n\n for (const pluginName of Object.keys(plugins)) {\n strapi.get('plugins').add(pluginName, plugins[pluginName]);\n }\n}\n\nconst formatContentTypes = (\n pluginName: string,\n contentTypes: Record<string, { schema: Struct.ContentTypeSchema }>\n) => {\n Object.values(contentTypes).forEach((definition) => {\n const { schema } = definition;\n\n Object.assign(schema, {\n plugin: pluginName,\n collectionName:\n schema.collectionName || `${pluginName}_${schema.info.singularName}`.toLowerCase(),\n globalId: getGlobalId(schema, pluginName),\n });\n });\n\n return contentTypes;\n};\n"],"names":["fse","loadFiles","get","getUserPluginsConfig","getOr","env","defaultsDeep","strapi","getEnabledPlugins","join","loadConfigFile","defaults","getGlobalId"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/loaders/plugins/index.ts"],"sourcesContent":["import { join } from 'path';\nimport fse from 'fs-extra';\nimport { defaultsDeep, defaults, getOr, get } from 'lodash/fp';\nimport { env } from '@strapi/utils';\nimport type { Strapi, Plugin, Schema } from '@strapi/types';\nimport { loadConfigFile } from '../../utils/load-config-file';\nimport { loadFiles } from '../../utils/load-files';\nimport { getEnabledPlugins } from './get-enabled-plugins';\nimport { getUserPluginsConfig } from './get-user-plugins-config';\nimport { getGlobalId } from '../../domain/content-type';\n\ninterface Plugins {\n [key: string]: Plugin.LoadedPlugin;\n}\n\nconst defaultPlugin = {\n bootstrap() {},\n destroy() {},\n register() {},\n config: {\n default: {},\n validator() {},\n },\n routes: [],\n controllers: {},\n services: {},\n policies: {},\n middlewares: {},\n contentTypes: {},\n};\n\nconst applyUserExtension = async (plugins: Plugins) => {\n const extensionsDir = strapi.dirs.dist.extensions;\n if (!(await fse.pathExists(extensionsDir))) {\n return;\n }\n\n const extendedSchemas = await loadFiles(extensionsDir, '**/content-types/**/schema.json');\n const strapiServers = await loadFiles(extensionsDir, '**/strapi-server.js');\n\n for (const pluginName of Object.keys(plugins)) {\n const plugin = plugins[pluginName];\n // first: load json schema\n for (const ctName of Object.keys(plugin.contentTypes)) {\n const extendedSchema = get([pluginName, 'content-types', ctName, 'schema'], extendedSchemas);\n if (extendedSchema) {\n plugin.contentTypes[ctName].schema = {\n ...plugin.contentTypes[ctName].schema,\n ...extendedSchema,\n };\n }\n }\n // second: execute strapi-server extension\n const strapiServer = get([pluginName, 'strapi-server'], strapiServers);\n if (strapiServer) {\n plugins[pluginName] = await strapiServer(plugin);\n }\n }\n};\n\nconst applyUserConfig = async (plugins: Plugins) => {\n const userPluginsConfig = await getUserPluginsConfig();\n\n for (const pluginName of Object.keys(plugins)) {\n const plugin = plugins[pluginName];\n const userPluginConfig = getOr({}, `${pluginName}.config`, userPluginsConfig);\n const defaultConfig =\n typeof plugin.config.default === 'function'\n ? plugin.config.default({ env })\n : plugin.config.default;\n\n const config = defaultsDeep(defaultConfig, userPluginConfig);\n try {\n plugin.config.validator(config);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`Error regarding ${pluginName} config: ${e.message}`);\n }\n\n throw e;\n }\n plugin.config = config;\n }\n};\n\nexport default async function loadPlugins(strapi: Strapi) {\n const plugins: Plugins = {};\n\n const enabledPlugins = await getEnabledPlugins(strapi);\n\n strapi.config.set('enabledPlugins', enabledPlugins);\n\n for (const pluginName of Object.keys(enabledPlugins)) {\n const enabledPlugin = enabledPlugins[pluginName];\n\n let serverEntrypointPath;\n\n try {\n serverEntrypointPath = join(enabledPlugin.pathToPlugin, 'strapi-server.js');\n } catch (e) {\n throw new Error(\n `Error loading the plugin ${pluginName} because ${pluginName} is not installed. Please either install the plugin or remove it's configuration.`\n );\n }\n\n // only load plugins with a server entrypoint\n if (!(await fse.pathExists(serverEntrypointPath))) {\n continue;\n }\n\n const pluginServer = loadConfigFile(serverEntrypointPath);\n plugins[pluginName] = {\n ...defaultPlugin,\n ...pluginServer,\n contentTypes: formatContentTypes(pluginName, pluginServer.contentTypes ?? {}),\n config: defaults(defaultPlugin.config, pluginServer.config),\n routes: pluginServer.routes ?? defaultPlugin.routes,\n };\n }\n\n // TODO: validate plugin format\n await applyUserConfig(plugins);\n await applyUserExtension(plugins);\n\n for (const pluginName of Object.keys(plugins)) {\n strapi.get('plugins').add(pluginName, plugins[pluginName]);\n }\n}\n\nconst formatContentTypes = (\n pluginName: string,\n contentTypes: Record<string, { schema: Schema.ContentType }>\n) => {\n Object.values(contentTypes).forEach((definition) => {\n const { schema } = definition;\n\n Object.assign(schema, {\n plugin: pluginName,\n collectionName:\n schema.collectionName || `${pluginName}_${schema.info.singularName}`.toLowerCase(),\n globalId: getGlobalId(schema, pluginName),\n });\n });\n\n return contentTypes;\n};\n"],"names":["strapi"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/loaders/plugins/index.ts"],"sourcesContent":["import { join } from 'path';\nimport fse from 'fs-extra';\nimport { defaultsDeep, defaults, getOr, get } from 'lodash/fp';\nimport { env } from '@strapi/utils';\nimport type { Core, Plugin, Struct } from '@strapi/types';\nimport { loadConfigFile } from '../../utils/load-config-file';\nimport { loadFiles } from '../../utils/load-files';\nimport { getEnabledPlugins } from './get-enabled-plugins';\nimport { getUserPluginsConfig } from './get-user-plugins-config';\nimport { getGlobalId } from '../../domain/content-type';\n\ninterface Plugins {\n [key: string]: Plugin.LoadedPlugin;\n}\n\nconst defaultPlugin = {\n bootstrap() {},\n destroy() {},\n register() {},\n config: {\n default: {},\n validator() {},\n },\n routes: [],\n controllers: {},\n services: {},\n policies: {},\n middlewares: {},\n contentTypes: {},\n};\n\nconst applyUserExtension = async (plugins: Plugins) => {\n const extensionsDir = strapi.dirs.dist.extensions;\n if (!(await fse.pathExists(extensionsDir))) {\n return;\n }\n\n const extendedSchemas = await loadFiles(extensionsDir, '**/content-types/**/schema.json');\n const strapiServers = await loadFiles(extensionsDir, '**/strapi-server.js');\n\n for (const pluginName of Object.keys(plugins)) {\n const plugin = plugins[pluginName];\n // first: load json schema\n for (const ctName of Object.keys(plugin.contentTypes)) {\n const extendedSchema = get([pluginName, 'content-types', ctName, 'schema'], extendedSchemas);\n if (extendedSchema) {\n plugin.contentTypes[ctName].schema = {\n ...plugin.contentTypes[ctName].schema,\n ...extendedSchema,\n };\n }\n }\n // second: execute strapi-server extension\n const strapiServer = get([pluginName, 'strapi-server'], strapiServers);\n if (strapiServer) {\n plugins[pluginName] = await strapiServer(plugin);\n }\n }\n};\n\nconst applyUserConfig = async (plugins: Plugins) => {\n const userPluginsConfig = await getUserPluginsConfig();\n\n for (const pluginName of Object.keys(plugins)) {\n const plugin = plugins[pluginName];\n const userPluginConfig = getOr({}, `${pluginName}.config`, userPluginsConfig);\n const defaultConfig =\n typeof plugin.config.default === 'function'\n ? plugin.config.default({ env })\n : plugin.config.default;\n\n const config = defaultsDeep(defaultConfig, userPluginConfig);\n try {\n plugin.config.validator(config);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`Error regarding ${pluginName} config: ${e.message}`);\n }\n\n throw e;\n }\n plugin.config = config;\n }\n};\n\nexport default async function loadPlugins(strapi: Core.Strapi) {\n const plugins: Plugins = {};\n\n const enabledPlugins = await getEnabledPlugins(strapi);\n\n strapi.config.set('enabledPlugins', enabledPlugins);\n\n for (const pluginName of Object.keys(enabledPlugins)) {\n const enabledPlugin = enabledPlugins[pluginName];\n\n let serverEntrypointPath;\n\n try {\n serverEntrypointPath = join(enabledPlugin.pathToPlugin, 'strapi-server.js');\n } catch (e) {\n throw new Error(\n `Error loading the plugin ${pluginName} because ${pluginName} is not installed. Please either install the plugin or remove it's configuration.`\n );\n }\n\n // only load plugins with a server entrypoint\n if (!(await fse.pathExists(serverEntrypointPath))) {\n continue;\n }\n\n const pluginServer = loadConfigFile(serverEntrypointPath);\n plugins[pluginName] = {\n ...defaultPlugin,\n ...pluginServer,\n contentTypes: formatContentTypes(pluginName, pluginServer.contentTypes ?? {}),\n config: defaults(defaultPlugin.config, pluginServer.config),\n routes: pluginServer.routes ?? defaultPlugin.routes,\n };\n }\n\n // TODO: validate plugin format\n await applyUserConfig(plugins);\n await applyUserExtension(plugins);\n\n for (const pluginName of Object.keys(plugins)) {\n strapi.get('plugins').add(pluginName, plugins[pluginName]);\n }\n}\n\nconst formatContentTypes = (\n pluginName: string,\n contentTypes: Record<string, { schema: Struct.ContentTypeSchema }>\n) => {\n Object.values(contentTypes).forEach((definition) => {\n const { schema } = definition;\n\n Object.assign(schema, {\n plugin: pluginName,\n collectionName:\n schema.collectionName || `${pluginName}_${schema.info.singularName}`.toLowerCase(),\n globalId: getGlobalId(schema, pluginName),\n });\n });\n\n return contentTypes;\n};\n"],"names":["strapi"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import type { Strapi } from '@strapi/types';
2
- export default function loadPolicies(strapi: Strapi): Promise<void>;
1
+ import type { Core } from '@strapi/types';
2
+ export default function loadPolicies(strapi: Core.Strapi): Promise<void>;
3
3
  //# sourceMappingURL=policies.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../../src/loaders/policies.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAU,MAAM,eAAe,CAAC;AAGpD,wBAA8B,YAAY,CAAC,MAAM,EAAE,MAAM,iBAqBxD"}
1
+ {"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../../src/loaders/policies.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG1C,wBAA8B,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,iBAqB7D"}
@@ -1 +1 @@
1
- {"version":3,"file":"policies.js","sources":["../../src/loaders/policies.ts"],"sourcesContent":["import { join, extname, basename } from 'path';\nimport fse from 'fs-extra';\nimport { importDefault } from '@strapi/utils';\n\nimport type { Strapi, Common } from '@strapi/types';\n\n// TODO:: allow folders with index.js inside for bigger policies\nexport default async function loadPolicies(strapi: Strapi) {\n const dir = strapi.dirs.dist.policies;\n\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const policies: Record<string, Common.Policy> = {};\n const paths = await fse.readdir(dir, { withFileTypes: true });\n\n for (const fd of paths) {\n const { name } = fd;\n const fullPath = join(dir, name);\n\n if (fd.isFile() && extname(name) === '.js') {\n const key = basename(name, '.js');\n policies[key] = importDefault(fullPath);\n }\n }\n\n strapi.get('policies').add(`global::`, policies);\n}\n"],"names":["fse","join","extname","basename","importDefault"],"mappings":";;;;;;AAOA,eAA8B,aAAa,QAAgB;AACnD,QAAA,MAAM,OAAO,KAAK,KAAK;AAE7B,MAAI,CAAE,MAAMA,aAAAA,QAAI,WAAW,GAAG,GAAI;AAChC;AAAA,EACF;AAEA,QAAM,WAA0C,CAAA;AAC1C,QAAA,QAAQ,MAAMA,aAAAA,QAAI,QAAQ,KAAK,EAAE,eAAe,MAAM;AAE5D,aAAW,MAAM,OAAO;AAChB,UAAA,EAAE,KAAS,IAAA;AACX,UAAA,WAAWC,KAAAA,KAAK,KAAK,IAAI;AAE/B,QAAI,GAAG,OAAO,KAAKC,KAAQ,QAAA,IAAI,MAAM,OAAO;AACpC,YAAA,MAAMC,KAAAA,SAAS,MAAM,KAAK;AACvB,eAAA,GAAG,IAAIC,YAAA,cAAc,QAAQ;AAAA,IACxC;AAAA,EACF;AAEA,SAAO,IAAI,UAAU,EAAE,IAAI,YAAY,QAAQ;AACjD;;"}
1
+ {"version":3,"file":"policies.js","sources":["../../src/loaders/policies.ts"],"sourcesContent":["import { join, extname, basename } from 'path';\nimport fse from 'fs-extra';\nimport { importDefault } from '@strapi/utils';\n\nimport type { Core } from '@strapi/types';\n\n// TODO:: allow folders with index.js inside for bigger policies\nexport default async function loadPolicies(strapi: Core.Strapi) {\n const dir = strapi.dirs.dist.policies;\n\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const policies: Record<string, Core.Policy> = {};\n const paths = await fse.readdir(dir, { withFileTypes: true });\n\n for (const fd of paths) {\n const { name } = fd;\n const fullPath = join(dir, name);\n\n if (fd.isFile() && extname(name) === '.js') {\n const key = basename(name, '.js');\n policies[key] = importDefault(fullPath);\n }\n }\n\n strapi.get('policies').add(`global::`, policies);\n}\n"],"names":["fse","join","extname","basename","importDefault"],"mappings":";;;;;;AAOA,eAA8B,aAAa,QAAqB;AACxD,QAAA,MAAM,OAAO,KAAK,KAAK;AAE7B,MAAI,CAAE,MAAMA,aAAAA,QAAI,WAAW,GAAG,GAAI;AAChC;AAAA,EACF;AAEA,QAAM,WAAwC,CAAA;AACxC,QAAA,QAAQ,MAAMA,aAAAA,QAAI,QAAQ,KAAK,EAAE,eAAe,MAAM;AAE5D,aAAW,MAAM,OAAO;AAChB,UAAA,EAAE,KAAS,IAAA;AACX,UAAA,WAAWC,KAAAA,KAAK,KAAK,IAAI;AAE/B,QAAI,GAAG,OAAO,KAAKC,KAAQ,QAAA,IAAI,MAAM,OAAO;AACpC,YAAA,MAAMC,KAAAA,SAAS,MAAM,KAAK;AACvB,eAAA,GAAG,IAAIC,YAAA,cAAc,QAAQ;AAAA,IACxC;AAAA,EACF;AAEA,SAAO,IAAI,UAAU,EAAE,IAAI,YAAY,QAAQ;AACjD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"policies.mjs","sources":["../../src/loaders/policies.ts"],"sourcesContent":["import { join, extname, basename } from 'path';\nimport fse from 'fs-extra';\nimport { importDefault } from '@strapi/utils';\n\nimport type { Strapi, Common } from '@strapi/types';\n\n// TODO:: allow folders with index.js inside for bigger policies\nexport default async function loadPolicies(strapi: Strapi) {\n const dir = strapi.dirs.dist.policies;\n\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const policies: Record<string, Common.Policy> = {};\n const paths = await fse.readdir(dir, { withFileTypes: true });\n\n for (const fd of paths) {\n const { name } = fd;\n const fullPath = join(dir, name);\n\n if (fd.isFile() && extname(name) === '.js') {\n const key = basename(name, '.js');\n policies[key] = importDefault(fullPath);\n }\n }\n\n strapi.get('policies').add(`global::`, policies);\n}\n"],"names":[],"mappings":";;;AAOA,eAA8B,aAAa,QAAgB;AACnD,QAAA,MAAM,OAAO,KAAK,KAAK;AAE7B,MAAI,CAAE,MAAM,IAAI,WAAW,GAAG,GAAI;AAChC;AAAA,EACF;AAEA,QAAM,WAA0C,CAAA;AAC1C,QAAA,QAAQ,MAAM,IAAI,QAAQ,KAAK,EAAE,eAAe,MAAM;AAE5D,aAAW,MAAM,OAAO;AAChB,UAAA,EAAE,KAAS,IAAA;AACX,UAAA,WAAW,KAAK,KAAK,IAAI;AAE/B,QAAI,GAAG,OAAO,KAAK,QAAQ,IAAI,MAAM,OAAO;AACpC,YAAA,MAAM,SAAS,MAAM,KAAK;AACvB,eAAA,GAAG,IAAI,cAAc,QAAQ;AAAA,IACxC;AAAA,EACF;AAEA,SAAO,IAAI,UAAU,EAAE,IAAI,YAAY,QAAQ;AACjD;"}
1
+ {"version":3,"file":"policies.mjs","sources":["../../src/loaders/policies.ts"],"sourcesContent":["import { join, extname, basename } from 'path';\nimport fse from 'fs-extra';\nimport { importDefault } from '@strapi/utils';\n\nimport type { Core } from '@strapi/types';\n\n// TODO:: allow folders with index.js inside for bigger policies\nexport default async function loadPolicies(strapi: Core.Strapi) {\n const dir = strapi.dirs.dist.policies;\n\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const policies: Record<string, Core.Policy> = {};\n const paths = await fse.readdir(dir, { withFileTypes: true });\n\n for (const fd of paths) {\n const { name } = fd;\n const fullPath = join(dir, name);\n\n if (fd.isFile() && extname(name) === '.js') {\n const key = basename(name, '.js');\n policies[key] = importDefault(fullPath);\n }\n }\n\n strapi.get('policies').add(`global::`, policies);\n}\n"],"names":[],"mappings":";;;AAOA,eAA8B,aAAa,QAAqB;AACxD,QAAA,MAAM,OAAO,KAAK,KAAK;AAE7B,MAAI,CAAE,MAAM,IAAI,WAAW,GAAG,GAAI;AAChC;AAAA,EACF;AAEA,QAAM,WAAwC,CAAA;AACxC,QAAA,QAAQ,MAAM,IAAI,QAAQ,KAAK,EAAE,eAAe,MAAM;AAE5D,aAAW,MAAM,OAAO;AAChB,UAAA,EAAE,KAAS,IAAA;AACX,UAAA,WAAW,KAAK,KAAK,IAAI;AAE/B,QAAI,GAAG,OAAO,KAAK,QAAQ,IAAI,MAAM,OAAO;AACpC,YAAA,MAAM,SAAS,MAAM,KAAK;AACvB,eAAA,GAAG,IAAI,cAAc,QAAQ;AAAA,IACxC;AAAA,EACF;AAEA,SAAO,IAAI,UAAU,EAAE,IAAI,YAAY,QAAQ;AACjD;"}
@@ -1,4 +1,4 @@
1
- import type { Strapi } from '@strapi/types';
2
- declare const _default: (strapi: Strapi) => void;
1
+ import type { Core } from '@strapi/types';
2
+ declare const _default: (strapi: Core.Strapi) => void;
3
3
  export default _default;
4
4
  //# sourceMappingURL=sanitizers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sanitizers.d.ts","sourceRoot":"","sources":["../../src/loaders/sanitizers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;iCAEpB,MAAM;AAA9B,wBAEE"}
1
+ {"version":3,"file":"sanitizers.d.ts","sourceRoot":"","sources":["../../src/loaders/sanitizers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;iCAElB,KAAK,MAAM;AAAnC,wBAEE"}
@@ -1 +1 @@
1
- {"version":3,"file":"sanitizers.js","sources":["../../src/loaders/sanitizers.ts"],"sourcesContent":["import type { Strapi } from '@strapi/types';\n\nexport default (strapi: Strapi) => {\n strapi.get('sanitizers').set('content-api', { input: [], output: [], query: [] });\n};\n"],"names":[],"mappings":";AAEA,MAAe,iBAAA,CAAC,WAAmB;AACjC,SAAO,IAAI,YAAY,EAAE,IAAI,eAAe,EAAE,OAAO,CAAA,GAAI,QAAQ,CAAA,GAAI,OAAO,CAAA,EAAI,CAAA;AAClF;;"}
1
+ {"version":3,"file":"sanitizers.js","sources":["../../src/loaders/sanitizers.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport default (strapi: Core.Strapi) => {\n strapi.get('sanitizers').set('content-api', { input: [], output: [], query: [] });\n};\n"],"names":[],"mappings":";AAEA,MAAe,iBAAA,CAAC,WAAwB;AACtC,SAAO,IAAI,YAAY,EAAE,IAAI,eAAe,EAAE,OAAO,CAAA,GAAI,QAAQ,CAAA,GAAI,OAAO,CAAA,EAAI,CAAA;AAClF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"sanitizers.mjs","sources":["../../src/loaders/sanitizers.ts"],"sourcesContent":["import type { Strapi } from '@strapi/types';\n\nexport default (strapi: Strapi) => {\n strapi.get('sanitizers').set('content-api', { input: [], output: [], query: [] });\n};\n"],"names":[],"mappings":"AAEA,MAAe,iBAAA,CAAC,WAAmB;AACjC,SAAO,IAAI,YAAY,EAAE,IAAI,eAAe,EAAE,OAAO,CAAA,GAAI,QAAQ,CAAA,GAAI,OAAO,CAAA,EAAI,CAAA;AAClF;"}
1
+ {"version":3,"file":"sanitizers.mjs","sources":["../../src/loaders/sanitizers.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport default (strapi: Core.Strapi) => {\n strapi.get('sanitizers').set('content-api', { input: [], output: [], query: [] });\n};\n"],"names":[],"mappings":"AAEA,MAAe,iBAAA,CAAC,WAAwB;AACtC,SAAO,IAAI,YAAY,EAAE,IAAI,eAAe,EAAE,OAAO,CAAA,GAAI,QAAQ,CAAA,GAAI,OAAO,CAAA,EAAI,CAAA;AAClF;"}
@@ -1,4 +1,4 @@
1
- import type { Strapi } from '@strapi/types';
2
- declare const _default: (strapi: Strapi) => {} | undefined;
1
+ import type { Core } from '@strapi/types';
2
+ declare const _default: (strapi: Core.Strapi) => {} | undefined;
3
3
  export default _default;
4
4
  //# sourceMappingURL=src-index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"src-index.d.ts","sourceRoot":"","sources":["../../src/loaders/src-index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;iCAepB,MAAM;AAA9B,wBAuBE"}
1
+ {"version":3,"file":"src-index.d.ts","sourceRoot":"","sources":["../../src/loaders/src-index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;iCAelB,KAAK,MAAM;AAAnC,wBAuBE"}
@@ -1 +1 @@
1
- {"version":3,"file":"src-index.js","sources":["../../src/loaders/src-index.ts"],"sourcesContent":["import { resolve } from 'path';\nimport { statSync, existsSync } from 'fs';\nimport { yup, importDefault } from '@strapi/utils';\n\nimport type { Strapi } from '@strapi/types';\n\nconst srcSchema = yup\n .object()\n .shape({\n bootstrap: yup.mixed().isFunction(),\n register: yup.mixed().isFunction(),\n destroy: yup.mixed().isFunction(),\n })\n .noUnknown();\n\nconst validateSrcIndex = (srcIndex: unknown) => {\n return srcSchema.validateSync(srcIndex, { strict: true, abortEarly: false });\n};\n\nexport default (strapi: Strapi) => {\n if (!existsSync(strapi.dirs.dist.src)) {\n return;\n }\n\n const pathToSrcIndex = resolve(strapi.dirs.dist.src, 'index.js');\n if (!existsSync(pathToSrcIndex) || statSync(pathToSrcIndex).isDirectory()) {\n return {};\n }\n\n const srcIndex = importDefault(pathToSrcIndex);\n\n try {\n validateSrcIndex(srcIndex);\n } catch (e) {\n if (e instanceof yup.ValidationError) {\n strapi.stopWithError({ message: `Invalid file \\`./src/index.js\\`: ${e.message}` });\n }\n\n throw e;\n }\n\n strapi.app = srcIndex;\n};\n"],"names":["yup","existsSync","resolve","statSync","importDefault"],"mappings":";;;;AAMA,MAAM,YAAYA,YAAA,IACf,OAAO,EACP,MAAM;AAAA,EACL,WAAWA,YAAA,IAAI,MAAM,EAAE,WAAW;AAAA,EAClC,UAAUA,YAAA,IAAI,MAAM,EAAE,WAAW;AAAA,EACjC,SAASA,YAAA,IAAI,MAAM,EAAE,WAAW;AAClC,CAAC,EACA,UAAU;AAEb,MAAM,mBAAmB,CAAC,aAAsB;AACvC,SAAA,UAAU,aAAa,UAAU,EAAE,QAAQ,MAAM,YAAY,OAAO;AAC7E;AAEA,MAAe,eAAA,CAAC,WAAmB;AACjC,MAAI,CAACC,GAAW,WAAA,OAAO,KAAK,KAAK,GAAG,GAAG;AACrC;AAAA,EACF;AAEA,QAAM,iBAAiBC,KAAAA,QAAQ,OAAO,KAAK,KAAK,KAAK,UAAU;AAC3D,MAAA,CAACD,cAAW,cAAc,KAAKE,YAAS,cAAc,EAAE,eAAe;AACzE,WAAO;EACT;AAEM,QAAA,WAAWC,0BAAc,cAAc;AAEzC,MAAA;AACF,qBAAiB,QAAQ;AAAA,WAClB,GAAG;AACN,QAAA,aAAaJ,gBAAI,iBAAiB;AACpC,aAAO,cAAc,EAAE,SAAS,oCAAoC,EAAE,OAAO,IAAI;AAAA,IACnF;AAEM,UAAA;AAAA,EACR;AAEA,SAAO,MAAM;AACf;;"}
1
+ {"version":3,"file":"src-index.js","sources":["../../src/loaders/src-index.ts"],"sourcesContent":["import { resolve } from 'path';\nimport { statSync, existsSync } from 'fs';\nimport { yup, importDefault } from '@strapi/utils';\n\nimport type { Core } from '@strapi/types';\n\nconst srcSchema = yup\n .object()\n .shape({\n bootstrap: yup.mixed().isFunction(),\n register: yup.mixed().isFunction(),\n destroy: yup.mixed().isFunction(),\n })\n .noUnknown();\n\nconst validateSrcIndex = (srcIndex: unknown) => {\n return srcSchema.validateSync(srcIndex, { strict: true, abortEarly: false });\n};\n\nexport default (strapi: Core.Strapi) => {\n if (!existsSync(strapi.dirs.dist.src)) {\n return;\n }\n\n const pathToSrcIndex = resolve(strapi.dirs.dist.src, 'index.js');\n if (!existsSync(pathToSrcIndex) || statSync(pathToSrcIndex).isDirectory()) {\n return {};\n }\n\n const srcIndex = importDefault(pathToSrcIndex);\n\n try {\n validateSrcIndex(srcIndex);\n } catch (e) {\n if (e instanceof yup.ValidationError) {\n strapi.stopWithError({ message: `Invalid file \\`./src/index.js\\`: ${e.message}` });\n }\n\n throw e;\n }\n\n strapi.app = srcIndex;\n};\n"],"names":["yup","existsSync","resolve","statSync","importDefault"],"mappings":";;;;AAMA,MAAM,YAAYA,YAAA,IACf,OAAO,EACP,MAAM;AAAA,EACL,WAAWA,YAAA,IAAI,MAAM,EAAE,WAAW;AAAA,EAClC,UAAUA,YAAA,IAAI,MAAM,EAAE,WAAW;AAAA,EACjC,SAASA,YAAA,IAAI,MAAM,EAAE,WAAW;AAClC,CAAC,EACA,UAAU;AAEb,MAAM,mBAAmB,CAAC,aAAsB;AACvC,SAAA,UAAU,aAAa,UAAU,EAAE,QAAQ,MAAM,YAAY,OAAO;AAC7E;AAEA,MAAe,eAAA,CAAC,WAAwB;AACtC,MAAI,CAACC,GAAW,WAAA,OAAO,KAAK,KAAK,GAAG,GAAG;AACrC;AAAA,EACF;AAEA,QAAM,iBAAiBC,KAAAA,QAAQ,OAAO,KAAK,KAAK,KAAK,UAAU;AAC3D,MAAA,CAACD,cAAW,cAAc,KAAKE,YAAS,cAAc,EAAE,eAAe;AACzE,WAAO;EACT;AAEM,QAAA,WAAWC,0BAAc,cAAc;AAEzC,MAAA;AACF,qBAAiB,QAAQ;AAAA,WAClB,GAAG;AACN,QAAA,aAAaJ,gBAAI,iBAAiB;AACpC,aAAO,cAAc,EAAE,SAAS,oCAAoC,EAAE,OAAO,IAAI;AAAA,IACnF;AAEM,UAAA;AAAA,EACR;AAEA,SAAO,MAAM;AACf;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"src-index.mjs","sources":["../../src/loaders/src-index.ts"],"sourcesContent":["import { resolve } from 'path';\nimport { statSync, existsSync } from 'fs';\nimport { yup, importDefault } from '@strapi/utils';\n\nimport type { Strapi } from '@strapi/types';\n\nconst srcSchema = yup\n .object()\n .shape({\n bootstrap: yup.mixed().isFunction(),\n register: yup.mixed().isFunction(),\n destroy: yup.mixed().isFunction(),\n })\n .noUnknown();\n\nconst validateSrcIndex = (srcIndex: unknown) => {\n return srcSchema.validateSync(srcIndex, { strict: true, abortEarly: false });\n};\n\nexport default (strapi: Strapi) => {\n if (!existsSync(strapi.dirs.dist.src)) {\n return;\n }\n\n const pathToSrcIndex = resolve(strapi.dirs.dist.src, 'index.js');\n if (!existsSync(pathToSrcIndex) || statSync(pathToSrcIndex).isDirectory()) {\n return {};\n }\n\n const srcIndex = importDefault(pathToSrcIndex);\n\n try {\n validateSrcIndex(srcIndex);\n } catch (e) {\n if (e instanceof yup.ValidationError) {\n strapi.stopWithError({ message: `Invalid file \\`./src/index.js\\`: ${e.message}` });\n }\n\n throw e;\n }\n\n strapi.app = srcIndex;\n};\n"],"names":[],"mappings":";;;AAMA,MAAM,YAAY,IACf,OAAO,EACP,MAAM;AAAA,EACL,WAAW,IAAI,MAAM,EAAE,WAAW;AAAA,EAClC,UAAU,IAAI,MAAM,EAAE,WAAW;AAAA,EACjC,SAAS,IAAI,MAAM,EAAE,WAAW;AAClC,CAAC,EACA,UAAU;AAEb,MAAM,mBAAmB,CAAC,aAAsB;AACvC,SAAA,UAAU,aAAa,UAAU,EAAE,QAAQ,MAAM,YAAY,OAAO;AAC7E;AAEA,MAAe,eAAA,CAAC,WAAmB;AACjC,MAAI,CAAC,WAAW,OAAO,KAAK,KAAK,GAAG,GAAG;AACrC;AAAA,EACF;AAEA,QAAM,iBAAiB,QAAQ,OAAO,KAAK,KAAK,KAAK,UAAU;AAC3D,MAAA,CAAC,WAAW,cAAc,KAAK,SAAS,cAAc,EAAE,eAAe;AACzE,WAAO;EACT;AAEM,QAAA,WAAW,cAAc,cAAc;AAEzC,MAAA;AACF,qBAAiB,QAAQ;AAAA,WAClB,GAAG;AACN,QAAA,aAAa,IAAI,iBAAiB;AACpC,aAAO,cAAc,EAAE,SAAS,oCAAoC,EAAE,OAAO,IAAI;AAAA,IACnF;AAEM,UAAA;AAAA,EACR;AAEA,SAAO,MAAM;AACf;"}
1
+ {"version":3,"file":"src-index.mjs","sources":["../../src/loaders/src-index.ts"],"sourcesContent":["import { resolve } from 'path';\nimport { statSync, existsSync } from 'fs';\nimport { yup, importDefault } from '@strapi/utils';\n\nimport type { Core } from '@strapi/types';\n\nconst srcSchema = yup\n .object()\n .shape({\n bootstrap: yup.mixed().isFunction(),\n register: yup.mixed().isFunction(),\n destroy: yup.mixed().isFunction(),\n })\n .noUnknown();\n\nconst validateSrcIndex = (srcIndex: unknown) => {\n return srcSchema.validateSync(srcIndex, { strict: true, abortEarly: false });\n};\n\nexport default (strapi: Core.Strapi) => {\n if (!existsSync(strapi.dirs.dist.src)) {\n return;\n }\n\n const pathToSrcIndex = resolve(strapi.dirs.dist.src, 'index.js');\n if (!existsSync(pathToSrcIndex) || statSync(pathToSrcIndex).isDirectory()) {\n return {};\n }\n\n const srcIndex = importDefault(pathToSrcIndex);\n\n try {\n validateSrcIndex(srcIndex);\n } catch (e) {\n if (e instanceof yup.ValidationError) {\n strapi.stopWithError({ message: `Invalid file \\`./src/index.js\\`: ${e.message}` });\n }\n\n throw e;\n }\n\n strapi.app = srcIndex;\n};\n"],"names":[],"mappings":";;;AAMA,MAAM,YAAY,IACf,OAAO,EACP,MAAM;AAAA,EACL,WAAW,IAAI,MAAM,EAAE,WAAW;AAAA,EAClC,UAAU,IAAI,MAAM,EAAE,WAAW;AAAA,EACjC,SAAS,IAAI,MAAM,EAAE,WAAW;AAClC,CAAC,EACA,UAAU;AAEb,MAAM,mBAAmB,CAAC,aAAsB;AACvC,SAAA,UAAU,aAAa,UAAU,EAAE,QAAQ,MAAM,YAAY,OAAO;AAC7E;AAEA,MAAe,eAAA,CAAC,WAAwB;AACtC,MAAI,CAAC,WAAW,OAAO,KAAK,KAAK,GAAG,GAAG;AACrC;AAAA,EACF;AAEA,QAAM,iBAAiB,QAAQ,OAAO,KAAK,KAAK,KAAK,UAAU;AAC3D,MAAA,CAAC,WAAW,cAAc,KAAK,SAAS,cAAc,EAAE,eAAe;AACzE,WAAO;EACT;AAEM,QAAA,WAAW,cAAc,cAAc;AAEzC,MAAA;AACF,qBAAiB,QAAQ;AAAA,WAClB,GAAG;AACN,QAAA,aAAa,IAAI,iBAAiB;AACpC,aAAO,cAAc,EAAE,SAAS,oCAAoC,EAAE,OAAO,IAAI;AAAA,IACnF;AAEM,UAAA;AAAA,EACR;AAEA,SAAO,MAAM;AACf;"}
@@ -1,4 +1,4 @@
1
- import type { Strapi } from '@strapi/types';
2
- declare const _default: (strapi: Strapi) => void;
1
+ import type { Core } from '@strapi/types';
2
+ declare const _default: (strapi: Core.Strapi) => void;
3
3
  export default _default;
4
4
  //# sourceMappingURL=validators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/loaders/validators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;iCAEpB,MAAM;AAA9B,wBAEE"}
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/loaders/validators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;iCAElB,KAAK,MAAM;AAAnC,wBAEE"}
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sources":["../../src/loaders/validators.ts"],"sourcesContent":["import type { Strapi } from '@strapi/types';\n\nexport default (strapi: Strapi) => {\n strapi.get('validators').set('content-api', { input: [], query: [] });\n};\n"],"names":[],"mappings":";AAEA,MAAe,iBAAA,CAAC,WAAmB;AACjC,SAAO,IAAI,YAAY,EAAE,IAAI,eAAe,EAAE,OAAO,CAAI,GAAA,OAAO,CAAA,EAAI,CAAA;AACtE;;"}
1
+ {"version":3,"file":"validators.js","sources":["../../src/loaders/validators.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport default (strapi: Core.Strapi) => {\n strapi.get('validators').set('content-api', { input: [], query: [] });\n};\n"],"names":[],"mappings":";AAEA,MAAe,iBAAA,CAAC,WAAwB;AACtC,SAAO,IAAI,YAAY,EAAE,IAAI,eAAe,EAAE,OAAO,CAAI,GAAA,OAAO,CAAA,EAAI,CAAA;AACtE;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"validators.mjs","sources":["../../src/loaders/validators.ts"],"sourcesContent":["import type { Strapi } from '@strapi/types';\n\nexport default (strapi: Strapi) => {\n strapi.get('validators').set('content-api', { input: [], query: [] });\n};\n"],"names":[],"mappings":"AAEA,MAAe,iBAAA,CAAC,WAAmB;AACjC,SAAO,IAAI,YAAY,EAAE,IAAI,eAAe,EAAE,OAAO,CAAI,GAAA,OAAO,CAAA,EAAI,CAAA;AACtE;"}
1
+ {"version":3,"file":"validators.mjs","sources":["../../src/loaders/validators.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport default (strapi: Core.Strapi) => {\n strapi.get('validators').set('content-api', { input: [], query: [] });\n};\n"],"names":[],"mappings":"AAEA,MAAe,iBAAA,CAAC,WAAwB;AACtC,SAAO,IAAI,YAAY,EAAE,IAAI,eAAe,EAAE,OAAO,CAAI,GAAA,OAAO,CAAA,EAAI,CAAA;AACtE;"}
@@ -1,6 +1,6 @@
1
- import body from 'koa-body';
2
- import type { Common } from '@strapi/types';
3
- export type Config = body.IKoaBodyOptions;
4
- declare const bodyMiddleware: Common.MiddlewareFactory<Config>;
1
+ import { KoaBodyMiddlewareOptions } from 'koa-body';
2
+ import type { Core } from '@strapi/types';
3
+ export type Config = KoaBodyMiddlewareOptions;
4
+ declare const bodyMiddleware: Core.MiddlewareFactory<Config>;
5
5
  export { bodyMiddleware as body };
6
6
  //# sourceMappingURL=body.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../src/middlewares/body.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,UAAU,CAAC;AAG5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;AAiB1C,QAAA,MAAM,cAAc,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CA2DpD,CAAC;AAEF,OAAO,EAAE,cAAc,IAAI,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../src/middlewares/body.ts"],"names":[],"mappings":"AAEA,OAAa,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAG1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,MAAM,MAAM,GAAG,wBAAwB,CAAC;AAiB9C,QAAA,MAAM,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CA2DlD,CAAC;AAEF,OAAO,EAAE,cAAc,IAAI,IAAI,EAAE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const fse = require("fs-extra");
4
- const _ = require("lodash/fp");
4
+ const fp = require("lodash/fp");
5
5
  const body = require("koa-body");
6
6
  const mime = require("mime-types");
7
7
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
@@ -21,7 +21,7 @@ function getFiles(ctx) {
21
21
  return ctx?.request?.files?.files;
22
22
  }
23
23
  const bodyMiddleware = (config, { strapi }) => {
24
- const bodyConfig = _.defaultsDeep(defaults, config);
24
+ const bodyConfig = fp.defaultsDeep(defaults, config);
25
25
  let gqlEndpoint;
26
26
  if (strapi.plugin("graphql")) {
27
27
  const { config: gqlConfig } = strapi.plugin("graphql");
@@ -32,7 +32,7 @@ const bodyMiddleware = (config, { strapi }) => {
32
32
  await next();
33
33
  } else {
34
34
  try {
35
- await body__default.default({ patchKoa: true, ...bodyConfig })(ctx, async () => {
35
+ await body__default.default(bodyConfig)(ctx, async () => {
36
36
  });
37
37
  const files2 = getFiles(ctx);
38
38
  if (files2) {
@@ -53,9 +53,9 @@ const bodyMiddleware = (config, { strapi }) => {
53
53
  const files = getFiles(ctx);
54
54
  if (files) {
55
55
  if (Array.isArray(files)) {
56
- Promise.all(files.map((file) => fse__default.default.remove(file.path)));
57
- } else if (files && files.path) {
58
- fse__default.default.remove(files.path);
56
+ Promise.all(files.map((file) => fse__default.default.remove(file.filepath)));
57
+ } else if (files && files.filepath) {
58
+ fse__default.default.remove(files.filepath);
59
59
  }
60
60
  delete ctx.request.files;
61
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"body.js","sources":["../../src/middlewares/body.ts"],"sourcesContent":["import fse from 'fs-extra';\nimport { defaultsDeep } from 'lodash/fp';\nimport body from 'koa-body';\nimport mime from 'mime-types';\nimport type Koa from 'koa';\nimport type { Common } from '@strapi/types';\n\nexport type Config = body.IKoaBodyOptions;\n\nconst defaults = {\n multipart: true,\n patchKoa: true,\n};\n\nfunction ensureFileMimeType(file: any): void {\n if (!file.type) {\n file.type = mime.lookup(file.name) || 'application/octet-stream';\n }\n}\n\nfunction getFiles(ctx: Koa.Context) {\n return ctx?.request?.files?.files;\n}\n\nconst bodyMiddleware: Common.MiddlewareFactory<Config> = (config, { strapi }) => {\n const bodyConfig: Config = defaultsDeep(defaults, config);\n\n let gqlEndpoint: string | undefined;\n if (strapi.plugin('graphql')) {\n const { config: gqlConfig } = strapi.plugin('graphql');\n gqlEndpoint = gqlConfig('endpoint');\n }\n\n return async (ctx, next) => {\n // TODO: find a better way later\n if (gqlEndpoint && ctx.url === gqlEndpoint) {\n await next();\n } else {\n try {\n await body({ patchKoa: true, ...bodyConfig })(ctx, async () => {});\n\n const files = getFiles(ctx);\n\n /**\n * in case the mime-type wasn't sent, Strapi tries to guess it\n * from the file extension, to avoid a corrupt database state\n */\n if (files) {\n if (Array.isArray(files)) {\n files.forEach(ensureFileMimeType);\n } else {\n ensureFileMimeType(files);\n }\n }\n\n await next();\n } catch (error) {\n if (\n error instanceof Error &&\n error.message &&\n error.message.includes('maxFileSize exceeded')\n ) {\n return ctx.payloadTooLarge('FileTooBig');\n }\n\n throw error;\n }\n }\n\n const files = getFiles(ctx);\n\n // clean any file that was uploaded\n if (files) {\n if (Array.isArray(files)) {\n // not awaiting to not slow the request\n Promise.all(files.map((file) => fse.remove(file.path)));\n } else if (files && files.path) {\n // not awaiting to not slow the request\n fse.remove(files.path);\n }\n delete ctx.request.files;\n }\n };\n};\n\nexport { bodyMiddleware as body };\n"],"names":["mime","defaultsDeep","body","files","fse"],"mappings":";;;;;;;;;;AASA,MAAM,WAAW;AAAA,EACf,WAAW;AAAA,EACX,UAAU;AACZ;AAEA,SAAS,mBAAmB,MAAiB;AACvC,MAAA,CAAC,KAAK,MAAM;AACd,SAAK,OAAOA,sBAAK,OAAO,KAAK,IAAI,KAAK;AAAA,EACxC;AACF;AAEA,SAAS,SAAS,KAAkB;AAC3B,SAAA,KAAK,SAAS,OAAO;AAC9B;AAEA,MAAM,iBAAmD,CAAC,QAAQ,EAAE,aAAa;AACzE,QAAA,aAAqBC,EAAAA,aAAa,UAAU,MAAM;AAEpD,MAAA;AACA,MAAA,OAAO,OAAO,SAAS,GAAG;AAC5B,UAAM,EAAE,QAAQ,UAAA,IAAc,OAAO,OAAO,SAAS;AACrD,kBAAc,UAAU,UAAU;AAAA,EACpC;AAEO,SAAA,OAAO,KAAK,SAAS;AAEtB,QAAA,eAAe,IAAI,QAAQ,aAAa;AAC1C,YAAM,KAAK;AAAA,IAAA,OACN;AACD,UAAA;AACI,cAAAC,cAAAA,QAAK,EAAE,UAAU,MAAM,GAAG,WAAY,CAAA,EAAE,KAAK,YAAY;AAAA,QAAA,CAAE;AAE3DC,cAAAA,SAAQ,SAAS,GAAG;AAM1B,YAAIA,QAAO;AACL,cAAA,MAAM,QAAQA,MAAK,GAAG;AACxBA,mBAAM,QAAQ,kBAAkB;AAAA,UAAA,OAC3B;AACL,+BAAmBA,MAAK;AAAA,UAC1B;AAAA,QACF;AAEA,cAAM,KAAK;AAAA,eACJ,OAAO;AAEZ,YAAA,iBAAiB,SACjB,MAAM,WACN,MAAM,QAAQ,SAAS,sBAAsB,GAC7C;AACO,iBAAA,IAAI,gBAAgB,YAAY;AAAA,QACzC;AAEM,cAAA;AAAA,MACR;AAAA,IACF;AAEM,UAAA,QAAQ,SAAS,GAAG;AAG1B,QAAI,OAAO;AACL,UAAA,MAAM,QAAQ,KAAK,GAAG;AAEhB,gBAAA,IAAI,MAAM,IAAI,CAAC,SAASC,qBAAI,OAAO,KAAK,IAAI,CAAC,CAAC;AAAA,MAAA,WAC7C,SAAS,MAAM,MAAM;AAE1BA,qBAAAA,QAAA,OAAO,MAAM,IAAI;AAAA,MACvB;AACA,aAAO,IAAI,QAAQ;AAAA,IACrB;AAAA,EAAA;AAEJ;;"}
1
+ {"version":3,"file":"body.js","sources":["../../src/middlewares/body.ts"],"sourcesContent":["import fse from 'fs-extra';\nimport { defaultsDeep } from 'lodash/fp';\nimport body, { KoaBodyMiddlewareOptions } from 'koa-body';\nimport mime from 'mime-types';\nimport type Koa from 'koa';\nimport type { Core } from '@strapi/types';\n\nexport type Config = KoaBodyMiddlewareOptions;\n\nconst defaults = {\n multipart: true,\n patchKoa: true,\n};\n\nfunction ensureFileMimeType(file: any): void {\n if (!file.type) {\n file.type = mime.lookup(file.name) || 'application/octet-stream';\n }\n}\n\nfunction getFiles(ctx: Koa.Context) {\n return ctx?.request?.files?.files;\n}\n\nconst bodyMiddleware: Core.MiddlewareFactory<Config> = (config, { strapi }) => {\n const bodyConfig: Config = defaultsDeep(defaults, config);\n\n let gqlEndpoint: string | undefined;\n if (strapi.plugin('graphql')) {\n const { config: gqlConfig } = strapi.plugin('graphql');\n gqlEndpoint = gqlConfig('endpoint');\n }\n\n return async (ctx, next) => {\n // TODO: find a better way later\n if (gqlEndpoint && ctx.url === gqlEndpoint) {\n await next();\n } else {\n try {\n await body(bodyConfig)(ctx, async () => {});\n\n const files = getFiles(ctx);\n\n /**\n * in case the mime-type wasn't sent, Strapi tries to guess it\n * from the file extension, to avoid a corrupt database state\n */\n if (files) {\n if (Array.isArray(files)) {\n files.forEach(ensureFileMimeType);\n } else {\n ensureFileMimeType(files);\n }\n }\n\n await next();\n } catch (error) {\n if (\n error instanceof Error &&\n error.message &&\n error.message.includes('maxFileSize exceeded')\n ) {\n return ctx.payloadTooLarge('FileTooBig');\n }\n\n throw error;\n }\n }\n\n const files = getFiles(ctx);\n\n // clean any file that was uploaded\n if (files) {\n if (Array.isArray(files)) {\n // not awaiting to not slow the request\n Promise.all(files.map((file) => fse.remove(file.filepath)));\n } else if (files && files.filepath) {\n // not awaiting to not slow the request\n fse.remove(files.filepath);\n }\n delete ctx.request.files;\n }\n };\n};\n\nexport { bodyMiddleware as body };\n"],"names":["mime","defaultsDeep","body","files","fse"],"mappings":";;;;;;;;;;AASA,MAAM,WAAW;AAAA,EACf,WAAW;AAAA,EACX,UAAU;AACZ;AAEA,SAAS,mBAAmB,MAAiB;AACvC,MAAA,CAAC,KAAK,MAAM;AACd,SAAK,OAAOA,sBAAK,OAAO,KAAK,IAAI,KAAK;AAAA,EACxC;AACF;AAEA,SAAS,SAAS,KAAkB;AAC3B,SAAA,KAAK,SAAS,OAAO;AAC9B;AAEA,MAAM,iBAAiD,CAAC,QAAQ,EAAE,aAAa;AACvE,QAAA,aAAqBC,GAAAA,aAAa,UAAU,MAAM;AAEpD,MAAA;AACA,MAAA,OAAO,OAAO,SAAS,GAAG;AAC5B,UAAM,EAAE,QAAQ,UAAA,IAAc,OAAO,OAAO,SAAS;AACrD,kBAAc,UAAU,UAAU;AAAA,EACpC;AAEO,SAAA,OAAO,KAAK,SAAS;AAEtB,QAAA,eAAe,IAAI,QAAQ,aAAa;AAC1C,YAAM,KAAK;AAAA,IAAA,OACN;AACD,UAAA;AACF,cAAMC,sBAAK,UAAU,EAAE,KAAK,YAAY;AAAA,QAAA,CAAE;AAEpCC,cAAAA,SAAQ,SAAS,GAAG;AAM1B,YAAIA,QAAO;AACL,cAAA,MAAM,QAAQA,MAAK,GAAG;AACxBA,mBAAM,QAAQ,kBAAkB;AAAA,UAAA,OAC3B;AACL,+BAAmBA,MAAK;AAAA,UAC1B;AAAA,QACF;AAEA,cAAM,KAAK;AAAA,eACJ,OAAO;AAEZ,YAAA,iBAAiB,SACjB,MAAM,WACN,MAAM,QAAQ,SAAS,sBAAsB,GAC7C;AACO,iBAAA,IAAI,gBAAgB,YAAY;AAAA,QACzC;AAEM,cAAA;AAAA,MACR;AAAA,IACF;AAEM,UAAA,QAAQ,SAAS,GAAG;AAG1B,QAAI,OAAO;AACL,UAAA,MAAM,QAAQ,KAAK,GAAG;AAEhB,gBAAA,IAAI,MAAM,IAAI,CAAC,SAASC,qBAAI,OAAO,KAAK,QAAQ,CAAC,CAAC;AAAA,MAAA,WACjD,SAAS,MAAM,UAAU;AAE9BA,qBAAAA,QAAA,OAAO,MAAM,QAAQ;AAAA,MAC3B;AACA,aAAO,IAAI,QAAQ;AAAA,IACrB;AAAA,EAAA;AAEJ;;"}
@@ -26,7 +26,7 @@ const bodyMiddleware = (config, { strapi }) => {
26
26
  await next();
27
27
  } else {
28
28
  try {
29
- await body({ patchKoa: true, ...bodyConfig })(ctx, async () => {
29
+ await body(bodyConfig)(ctx, async () => {
30
30
  });
31
31
  const files2 = getFiles(ctx);
32
32
  if (files2) {
@@ -47,9 +47,9 @@ const bodyMiddleware = (config, { strapi }) => {
47
47
  const files = getFiles(ctx);
48
48
  if (files) {
49
49
  if (Array.isArray(files)) {
50
- Promise.all(files.map((file) => fse.remove(file.path)));
51
- } else if (files && files.path) {
52
- fse.remove(files.path);
50
+ Promise.all(files.map((file) => fse.remove(file.filepath)));
51
+ } else if (files && files.filepath) {
52
+ fse.remove(files.filepath);
53
53
  }
54
54
  delete ctx.request.files;
55
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"body.mjs","sources":["../../src/middlewares/body.ts"],"sourcesContent":["import fse from 'fs-extra';\nimport { defaultsDeep } from 'lodash/fp';\nimport body from 'koa-body';\nimport mime from 'mime-types';\nimport type Koa from 'koa';\nimport type { Common } from '@strapi/types';\n\nexport type Config = body.IKoaBodyOptions;\n\nconst defaults = {\n multipart: true,\n patchKoa: true,\n};\n\nfunction ensureFileMimeType(file: any): void {\n if (!file.type) {\n file.type = mime.lookup(file.name) || 'application/octet-stream';\n }\n}\n\nfunction getFiles(ctx: Koa.Context) {\n return ctx?.request?.files?.files;\n}\n\nconst bodyMiddleware: Common.MiddlewareFactory<Config> = (config, { strapi }) => {\n const bodyConfig: Config = defaultsDeep(defaults, config);\n\n let gqlEndpoint: string | undefined;\n if (strapi.plugin('graphql')) {\n const { config: gqlConfig } = strapi.plugin('graphql');\n gqlEndpoint = gqlConfig('endpoint');\n }\n\n return async (ctx, next) => {\n // TODO: find a better way later\n if (gqlEndpoint && ctx.url === gqlEndpoint) {\n await next();\n } else {\n try {\n await body({ patchKoa: true, ...bodyConfig })(ctx, async () => {});\n\n const files = getFiles(ctx);\n\n /**\n * in case the mime-type wasn't sent, Strapi tries to guess it\n * from the file extension, to avoid a corrupt database state\n */\n if (files) {\n if (Array.isArray(files)) {\n files.forEach(ensureFileMimeType);\n } else {\n ensureFileMimeType(files);\n }\n }\n\n await next();\n } catch (error) {\n if (\n error instanceof Error &&\n error.message &&\n error.message.includes('maxFileSize exceeded')\n ) {\n return ctx.payloadTooLarge('FileTooBig');\n }\n\n throw error;\n }\n }\n\n const files = getFiles(ctx);\n\n // clean any file that was uploaded\n if (files) {\n if (Array.isArray(files)) {\n // not awaiting to not slow the request\n Promise.all(files.map((file) => fse.remove(file.path)));\n } else if (files && files.path) {\n // not awaiting to not slow the request\n fse.remove(files.path);\n }\n delete ctx.request.files;\n }\n };\n};\n\nexport { bodyMiddleware as body };\n"],"names":["files"],"mappings":";;;;AASA,MAAM,WAAW;AAAA,EACf,WAAW;AAAA,EACX,UAAU;AACZ;AAEA,SAAS,mBAAmB,MAAiB;AACvC,MAAA,CAAC,KAAK,MAAM;AACd,SAAK,OAAO,KAAK,OAAO,KAAK,IAAI,KAAK;AAAA,EACxC;AACF;AAEA,SAAS,SAAS,KAAkB;AAC3B,SAAA,KAAK,SAAS,OAAO;AAC9B;AAEA,MAAM,iBAAmD,CAAC,QAAQ,EAAE,aAAa;AACzE,QAAA,aAAqB,aAAa,UAAU,MAAM;AAEpD,MAAA;AACA,MAAA,OAAO,OAAO,SAAS,GAAG;AAC5B,UAAM,EAAE,QAAQ,UAAA,IAAc,OAAO,OAAO,SAAS;AACrD,kBAAc,UAAU,UAAU;AAAA,EACpC;AAEO,SAAA,OAAO,KAAK,SAAS;AAEtB,QAAA,eAAe,IAAI,QAAQ,aAAa;AAC1C,YAAM,KAAK;AAAA,IAAA,OACN;AACD,UAAA;AACI,cAAA,KAAK,EAAE,UAAU,MAAM,GAAG,WAAY,CAAA,EAAE,KAAK,YAAY;AAAA,QAAA,CAAE;AAE3DA,cAAAA,SAAQ,SAAS,GAAG;AAM1B,YAAIA,QAAO;AACL,cAAA,MAAM,QAAQA,MAAK,GAAG;AACxBA,mBAAM,QAAQ,kBAAkB;AAAA,UAAA,OAC3B;AACL,+BAAmBA,MAAK;AAAA,UAC1B;AAAA,QACF;AAEA,cAAM,KAAK;AAAA,eACJ,OAAO;AAEZ,YAAA,iBAAiB,SACjB,MAAM,WACN,MAAM,QAAQ,SAAS,sBAAsB,GAC7C;AACO,iBAAA,IAAI,gBAAgB,YAAY;AAAA,QACzC;AAEM,cAAA;AAAA,MACR;AAAA,IACF;AAEM,UAAA,QAAQ,SAAS,GAAG;AAG1B,QAAI,OAAO;AACL,UAAA,MAAM,QAAQ,KAAK,GAAG;AAEhB,gBAAA,IAAI,MAAM,IAAI,CAAC,SAAS,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC;AAAA,MAAA,WAC7C,SAAS,MAAM,MAAM;AAE1B,YAAA,OAAO,MAAM,IAAI;AAAA,MACvB;AACA,aAAO,IAAI,QAAQ;AAAA,IACrB;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"body.mjs","sources":["../../src/middlewares/body.ts"],"sourcesContent":["import fse from 'fs-extra';\nimport { defaultsDeep } from 'lodash/fp';\nimport body, { KoaBodyMiddlewareOptions } from 'koa-body';\nimport mime from 'mime-types';\nimport type Koa from 'koa';\nimport type { Core } from '@strapi/types';\n\nexport type Config = KoaBodyMiddlewareOptions;\n\nconst defaults = {\n multipart: true,\n patchKoa: true,\n};\n\nfunction ensureFileMimeType(file: any): void {\n if (!file.type) {\n file.type = mime.lookup(file.name) || 'application/octet-stream';\n }\n}\n\nfunction getFiles(ctx: Koa.Context) {\n return ctx?.request?.files?.files;\n}\n\nconst bodyMiddleware: Core.MiddlewareFactory<Config> = (config, { strapi }) => {\n const bodyConfig: Config = defaultsDeep(defaults, config);\n\n let gqlEndpoint: string | undefined;\n if (strapi.plugin('graphql')) {\n const { config: gqlConfig } = strapi.plugin('graphql');\n gqlEndpoint = gqlConfig('endpoint');\n }\n\n return async (ctx, next) => {\n // TODO: find a better way later\n if (gqlEndpoint && ctx.url === gqlEndpoint) {\n await next();\n } else {\n try {\n await body(bodyConfig)(ctx, async () => {});\n\n const files = getFiles(ctx);\n\n /**\n * in case the mime-type wasn't sent, Strapi tries to guess it\n * from the file extension, to avoid a corrupt database state\n */\n if (files) {\n if (Array.isArray(files)) {\n files.forEach(ensureFileMimeType);\n } else {\n ensureFileMimeType(files);\n }\n }\n\n await next();\n } catch (error) {\n if (\n error instanceof Error &&\n error.message &&\n error.message.includes('maxFileSize exceeded')\n ) {\n return ctx.payloadTooLarge('FileTooBig');\n }\n\n throw error;\n }\n }\n\n const files = getFiles(ctx);\n\n // clean any file that was uploaded\n if (files) {\n if (Array.isArray(files)) {\n // not awaiting to not slow the request\n Promise.all(files.map((file) => fse.remove(file.filepath)));\n } else if (files && files.filepath) {\n // not awaiting to not slow the request\n fse.remove(files.filepath);\n }\n delete ctx.request.files;\n }\n };\n};\n\nexport { bodyMiddleware as body };\n"],"names":["files"],"mappings":";;;;AASA,MAAM,WAAW;AAAA,EACf,WAAW;AAAA,EACX,UAAU;AACZ;AAEA,SAAS,mBAAmB,MAAiB;AACvC,MAAA,CAAC,KAAK,MAAM;AACd,SAAK,OAAO,KAAK,OAAO,KAAK,IAAI,KAAK;AAAA,EACxC;AACF;AAEA,SAAS,SAAS,KAAkB;AAC3B,SAAA,KAAK,SAAS,OAAO;AAC9B;AAEA,MAAM,iBAAiD,CAAC,QAAQ,EAAE,aAAa;AACvE,QAAA,aAAqB,aAAa,UAAU,MAAM;AAEpD,MAAA;AACA,MAAA,OAAO,OAAO,SAAS,GAAG;AAC5B,UAAM,EAAE,QAAQ,UAAA,IAAc,OAAO,OAAO,SAAS;AACrD,kBAAc,UAAU,UAAU;AAAA,EACpC;AAEO,SAAA,OAAO,KAAK,SAAS;AAEtB,QAAA,eAAe,IAAI,QAAQ,aAAa;AAC1C,YAAM,KAAK;AAAA,IAAA,OACN;AACD,UAAA;AACF,cAAM,KAAK,UAAU,EAAE,KAAK,YAAY;AAAA,QAAA,CAAE;AAEpCA,cAAAA,SAAQ,SAAS,GAAG;AAM1B,YAAIA,QAAO;AACL,cAAA,MAAM,QAAQA,MAAK,GAAG;AACxBA,mBAAM,QAAQ,kBAAkB;AAAA,UAAA,OAC3B;AACL,+BAAmBA,MAAK;AAAA,UAC1B;AAAA,QACF;AAEA,cAAM,KAAK;AAAA,eACJ,OAAO;AAEZ,YAAA,iBAAiB,SACjB,MAAM,WACN,MAAM,QAAQ,SAAS,sBAAsB,GAC7C;AACO,iBAAA,IAAI,gBAAgB,YAAY;AAAA,QACzC;AAEM,cAAA;AAAA,MACR;AAAA,IACF;AAEM,UAAA,QAAQ,SAAS,GAAG;AAG1B,QAAI,OAAO;AACL,UAAA,MAAM,QAAQ,KAAK,GAAG;AAEhB,gBAAA,IAAI,MAAM,IAAI,CAAC,SAAS,IAAI,OAAO,KAAK,QAAQ,CAAC,CAAC;AAAA,MAAA,WACjD,SAAS,MAAM,UAAU;AAE9B,YAAA,OAAO,MAAM,QAAQ;AAAA,MAC3B;AACA,aAAO,IAAI,QAAQ;AAAA,IACrB;AAAA,EAAA;AAEJ;"}
@@ -1,5 +1,5 @@
1
1
  import compress from 'koa-compress';
2
- import type { Common } from '@strapi/types';
2
+ import type { Core } from '@strapi/types';
3
3
  export type Config = compress.CompressOptions;
4
- export declare const compression: Common.MiddlewareFactory<Config>;
4
+ export declare const compression: Core.MiddlewareFactory<Config>;
5
5
  //# sourceMappingURL=compression.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/middlewares/compression.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC;AAE9C,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAgC,CAAC"}
1
+ {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/middlewares/compression.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC;AAE9C,eAAO,MAAM,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAgC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"compression.js","sources":["../../src/middlewares/compression.ts"],"sourcesContent":["import compress from 'koa-compress';\nimport type { Common } from '@strapi/types';\n\nexport type Config = compress.CompressOptions;\n\nexport const compression: Common.MiddlewareFactory<Config> = (config) => compress(config);\n"],"names":["compress"],"mappings":";;;;;AAKO,MAAM,cAAgD,CAAC,WAAWA,kBAAAA,QAAS,MAAM;;"}
1
+ {"version":3,"file":"compression.js","sources":["../../src/middlewares/compression.ts"],"sourcesContent":["import compress from 'koa-compress';\nimport type { Core } from '@strapi/types';\n\nexport type Config = compress.CompressOptions;\n\nexport const compression: Core.MiddlewareFactory<Config> = (config) => compress(config);\n"],"names":["compress"],"mappings":";;;;;AAKO,MAAM,cAA8C,CAAC,WAAWA,kBAAAA,QAAS,MAAM;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"compression.mjs","sources":["../../src/middlewares/compression.ts"],"sourcesContent":["import compress from 'koa-compress';\nimport type { Common } from '@strapi/types';\n\nexport type Config = compress.CompressOptions;\n\nexport const compression: Common.MiddlewareFactory<Config> = (config) => compress(config);\n"],"names":[],"mappings":";AAKO,MAAM,cAAgD,CAAC,WAAW,SAAS,MAAM;"}
1
+ {"version":3,"file":"compression.mjs","sources":["../../src/middlewares/compression.ts"],"sourcesContent":["import compress from 'koa-compress';\nimport type { Core } from '@strapi/types';\n\nexport type Config = compress.CompressOptions;\n\nexport const compression: Core.MiddlewareFactory<Config> = (config) => compress(config);\n"],"names":[],"mappings":";AAKO,MAAM,cAA8C,CAAC,WAAW,SAAS,MAAM;"}
@@ -1,4 +1,4 @@
1
- import type { Common } from '@strapi/types';
1
+ import type { Core } from '@strapi/types';
2
2
  export type Config = {
3
3
  enabled?: boolean;
4
4
  origin: string | string[] | ((ctx: any) => string | string[]);
@@ -9,5 +9,5 @@ export type Config = {
9
9
  headers?: string | string[];
10
10
  keepHeadersOnError?: boolean;
11
11
  };
12
- export declare const cors: Common.MiddlewareFactory<Config>;
12
+ export declare const cors: Core.MiddlewareFactory<Config>;
13
13
  //# sourceMappingURL=cors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../src/middlewares/cors.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,MAAM,MAAM,GAAG;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC9D,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAWF,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CA2CjD,CAAC"}
1
+ {"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../src/middlewares/cors.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,MAAM,MAAM,GAAG;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC9D,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAWF,eAAO,MAAM,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CA8C/C,CAAC"}
@@ -23,21 +23,23 @@ const cors = (config) => {
23
23
  }
24
24
  return koaCors__default.default({
25
25
  async origin(ctx) {
26
+ if (!ctx.get("Origin")) {
27
+ return "*";
28
+ }
26
29
  let originList;
27
30
  if (typeof origin === "function") {
28
31
  originList = await origin(ctx);
29
32
  } else {
30
33
  originList = origin;
31
34
  }
32
- const whitelist = Array.isArray(originList) ? originList : originList.split(/\s*,\s*/);
33
- const requestOrigin = ctx.headers.origin ?? "";
34
- if (whitelist.includes("*")) {
35
- return credentials ? requestOrigin : "*";
35
+ if (Array.isArray(originList)) {
36
+ return originList.includes(ctx.get("Origin")) ? ctx.get("Origin") : "";
36
37
  }
37
- if (!whitelist.includes(requestOrigin)) {
38
- return ctx.throw(`${requestOrigin} is not a valid origin`);
38
+ const parsedOrigin = originList.split(",").map((origin2) => origin2.trim());
39
+ if (parsedOrigin.length > 1) {
40
+ return parsedOrigin.includes(ctx.get("Origin")) ? ctx.get("Origin") : "";
39
41
  }
40
- return requestOrigin;
42
+ return originList;
41
43
  },
42
44
  exposeHeaders: expose,
43
45
  maxAge,
@@ -1 +1 @@
1
- {"version":3,"file":"cors.js","sources":["../../src/middlewares/cors.ts"],"sourcesContent":["import koaCors from '@koa/cors';\n\nimport type { Common } from '@strapi/types';\n\nexport type Config = {\n enabled?: boolean;\n origin: string | string[] | ((ctx: any) => string | string[]);\n expose?: string | string[];\n maxAge?: number;\n credentials?: boolean;\n methods?: string | string[];\n headers?: string | string[];\n keepHeadersOnError?: boolean;\n};\n\nconst defaults: Config = {\n origin: '*',\n maxAge: 31536000,\n credentials: true,\n methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'],\n headers: ['Content-Type', 'Authorization', 'Origin', 'Accept'],\n keepHeadersOnError: false,\n};\n\nexport const cors: Common.MiddlewareFactory<Config> = (config) => {\n const { origin, expose, maxAge, credentials, methods, headers, keepHeadersOnError } = {\n ...defaults,\n ...config,\n };\n\n if (config.enabled !== undefined) {\n strapi.log.warn(\n 'The strapi::cors middleware no longer supports the `enabled` option. Using it' +\n ' to conditionally enable CORS might cause an insecure default. To disable strapi::cors, remove it from' +\n ' the exported array in config/middleware.js'\n );\n }\n\n return koaCors({\n async origin(ctx) {\n let originList: string | string[];\n\n if (typeof origin === 'function') {\n originList = await origin(ctx);\n } else {\n originList = origin;\n }\n\n const whitelist = Array.isArray(originList) ? originList : originList.split(/\\s*,\\s*/);\n\n const requestOrigin = ctx.headers.origin ?? '';\n if (whitelist.includes('*')) {\n return credentials ? requestOrigin : '*';\n }\n\n if (!whitelist.includes(requestOrigin)) {\n return ctx.throw(`${requestOrigin} is not a valid origin`);\n }\n return requestOrigin;\n },\n exposeHeaders: expose,\n maxAge,\n credentials,\n allowMethods: methods,\n allowHeaders: headers,\n keepHeadersOnError,\n });\n};\n"],"names":["koaCors"],"mappings":";;;;;AAeA,MAAM,WAAmB;AAAA,EACvB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,SAAS,CAAC,OAAO,QAAQ,OAAO,SAAS,UAAU,QAAQ,SAAS;AAAA,EACpE,SAAS,CAAC,gBAAgB,iBAAiB,UAAU,QAAQ;AAAA,EAC7D,oBAAoB;AACtB;AAEa,MAAA,OAAyC,CAAC,WAAW;AAC1D,QAAA,EAAE,QAAQ,QAAQ,QAAQ,aAAa,SAAS,SAAS,uBAAuB;AAAA,IACpF,GAAG;AAAA,IACH,GAAG;AAAA,EAAA;AAGD,MAAA,OAAO,YAAY,QAAW;AAChC,WAAO,IAAI;AAAA,MACT;AAAA,IAAA;AAAA,EAIJ;AAEA,SAAOA,yBAAQ;AAAA,IACb,MAAM,OAAO,KAAK;AACZ,UAAA;AAEA,UAAA,OAAO,WAAW,YAAY;AACnB,qBAAA,MAAM,OAAO,GAAG;AAAA,MAAA,OACxB;AACQ,qBAAA;AAAA,MACf;AAEM,YAAA,YAAY,MAAM,QAAQ,UAAU,IAAI,aAAa,WAAW,MAAM,SAAS;AAE/E,YAAA,gBAAgB,IAAI,QAAQ,UAAU;AACxC,UAAA,UAAU,SAAS,GAAG,GAAG;AAC3B,eAAO,cAAc,gBAAgB;AAAA,MACvC;AAEA,UAAI,CAAC,UAAU,SAAS,aAAa,GAAG;AACtC,eAAO,IAAI,MAAM,GAAG,aAAa,wBAAwB;AAAA,MAC3D;AACO,aAAA;AAAA,IACT;AAAA,IACA,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,cAAc;AAAA,IACd;AAAA,EAAA,CACD;AACH;;"}
1
+ {"version":3,"file":"cors.js","sources":["../../src/middlewares/cors.ts"],"sourcesContent":["import koaCors from '@koa/cors';\n\nimport type { Core } from '@strapi/types';\n\nexport type Config = {\n enabled?: boolean;\n origin: string | string[] | ((ctx: any) => string | string[]);\n expose?: string | string[];\n maxAge?: number;\n credentials?: boolean;\n methods?: string | string[];\n headers?: string | string[];\n keepHeadersOnError?: boolean;\n};\n\nconst defaults: Config = {\n origin: '*',\n maxAge: 31536000,\n credentials: true,\n methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'],\n headers: ['Content-Type', 'Authorization', 'Origin', 'Accept'],\n keepHeadersOnError: false,\n};\n\nexport const cors: Core.MiddlewareFactory<Config> = (config) => {\n const { origin, expose, maxAge, credentials, methods, headers, keepHeadersOnError } = {\n ...defaults,\n ...config,\n };\n\n if (config.enabled !== undefined) {\n strapi.log.warn(\n 'The strapi::cors middleware no longer supports the `enabled` option. Using it' +\n ' to conditionally enable CORS might cause an insecure default. To disable strapi::cors, remove it from' +\n ' the exported array in config/middleware.js'\n );\n }\n\n return koaCors({\n async origin(ctx) {\n if (!ctx.get('Origin')) {\n return '*';\n }\n\n let originList: string | string[];\n\n if (typeof origin === 'function') {\n originList = await origin(ctx);\n } else {\n originList = origin;\n }\n\n if (Array.isArray(originList)) {\n return originList.includes(ctx.get('Origin')) ? ctx.get('Origin') : '';\n }\n\n const parsedOrigin = originList.split(',').map((origin) => origin.trim());\n if (parsedOrigin.length > 1) {\n return parsedOrigin.includes(ctx.get('Origin')) ? ctx.get('Origin') : '';\n }\n\n return originList;\n },\n exposeHeaders: expose,\n maxAge,\n credentials,\n allowMethods: methods,\n allowHeaders: headers,\n keepHeadersOnError,\n });\n};\n"],"names":["koaCors","origin"],"mappings":";;;;;AAeA,MAAM,WAAmB;AAAA,EACvB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,SAAS,CAAC,OAAO,QAAQ,OAAO,SAAS,UAAU,QAAQ,SAAS;AAAA,EACpE,SAAS,CAAC,gBAAgB,iBAAiB,UAAU,QAAQ;AAAA,EAC7D,oBAAoB;AACtB;AAEa,MAAA,OAAuC,CAAC,WAAW;AACxD,QAAA,EAAE,QAAQ,QAAQ,QAAQ,aAAa,SAAS,SAAS,uBAAuB;AAAA,IACpF,GAAG;AAAA,IACH,GAAG;AAAA,EAAA;AAGD,MAAA,OAAO,YAAY,QAAW;AAChC,WAAO,IAAI;AAAA,MACT;AAAA,IAAA;AAAA,EAIJ;AAEA,SAAOA,yBAAQ;AAAA,IACb,MAAM,OAAO,KAAK;AAChB,UAAI,CAAC,IAAI,IAAI,QAAQ,GAAG;AACf,eAAA;AAAA,MACT;AAEI,UAAA;AAEA,UAAA,OAAO,WAAW,YAAY;AACnB,qBAAA,MAAM,OAAO,GAAG;AAAA,MAAA,OACxB;AACQ,qBAAA;AAAA,MACf;AAEI,UAAA,MAAM,QAAQ,UAAU,GAAG;AACtB,eAAA,WAAW,SAAS,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,QAAQ,IAAI;AAAA,MACtE;AAEM,YAAA,eAAe,WAAW,MAAM,GAAG,EAAE,IAAI,CAACC,YAAWA,QAAO,KAAA,CAAM;AACpE,UAAA,aAAa,SAAS,GAAG;AACpB,eAAA,aAAa,SAAS,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,QAAQ,IAAI;AAAA,MACxE;AAEO,aAAA;AAAA,IACT;AAAA,IACA,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,cAAc;AAAA,IACd;AAAA,EAAA,CACD;AACH;;"}