@strapi/core 0.0.0-experimental.4ddd402c7194d1a969a797313bf007c93148d59a → 0.0.0-experimental.4e03c41e8e44fa7b77c41c3e0edd86c7f1fc9c52

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

Potentially problematic release.


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

Files changed (787) hide show
  1. package/LICENSE +18 -3
  2. package/dist/Strapi.d.ts +3 -1
  3. package/dist/Strapi.d.ts.map +1 -1
  4. package/dist/Strapi.js +437 -369
  5. package/dist/Strapi.js.map +1 -1
  6. package/dist/Strapi.mjs +426 -377
  7. package/dist/Strapi.mjs.map +1 -1
  8. package/dist/compile.js +23 -14
  9. package/dist/compile.js.map +1 -1
  10. package/dist/compile.mjs +22 -14
  11. package/dist/compile.mjs.map +1 -1
  12. package/dist/configuration/config-loader.js +110 -97
  13. package/dist/configuration/config-loader.js.map +1 -1
  14. package/dist/configuration/config-loader.mjs +109 -96
  15. package/dist/configuration/config-loader.mjs.map +1 -1
  16. package/dist/configuration/get-dirs.js +31 -29
  17. package/dist/configuration/get-dirs.js.map +1 -1
  18. package/dist/configuration/get-dirs.mjs +30 -30
  19. package/dist/configuration/get-dirs.mjs.map +1 -1
  20. package/dist/configuration/index.d.ts +1 -0
  21. package/dist/configuration/index.d.ts.map +1 -1
  22. package/dist/configuration/index.js +85 -73
  23. package/dist/configuration/index.js.map +1 -1
  24. package/dist/configuration/index.mjs +84 -69
  25. package/dist/configuration/index.mjs.map +1 -1
  26. package/dist/configuration/urls.d.ts.map +1 -1
  27. package/dist/configuration/urls.js +74 -61
  28. package/dist/configuration/urls.js.map +1 -1
  29. package/dist/configuration/urls.mjs +73 -62
  30. package/dist/configuration/urls.mjs.map +1 -1
  31. package/dist/container.js +27 -23
  32. package/dist/container.js.map +1 -1
  33. package/dist/container.mjs +26 -24
  34. package/dist/container.mjs.map +1 -1
  35. package/dist/core-api/controller/collection-type.js +77 -76
  36. package/dist/core-api/controller/collection-type.js.map +1 -1
  37. package/dist/core-api/controller/collection-type.mjs +76 -77
  38. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  39. package/dist/core-api/controller/index.js +63 -48
  40. package/dist/core-api/controller/index.js.map +1 -1
  41. package/dist/core-api/controller/index.mjs +62 -49
  42. package/dist/core-api/controller/index.mjs.map +1 -1
  43. package/dist/core-api/controller/single-type.js +41 -40
  44. package/dist/core-api/controller/single-type.js.map +1 -1
  45. package/dist/core-api/controller/single-type.mjs +40 -41
  46. package/dist/core-api/controller/single-type.mjs.map +1 -1
  47. package/dist/core-api/controller/transform.js +72 -63
  48. package/dist/core-api/controller/transform.js.map +1 -1
  49. package/dist/core-api/controller/transform.mjs +71 -64
  50. package/dist/core-api/controller/transform.mjs.map +1 -1
  51. package/dist/core-api/routes/index.d.ts +4 -22
  52. package/dist/core-api/routes/index.d.ts.map +1 -1
  53. package/dist/core-api/routes/index.js +187 -62
  54. package/dist/core-api/routes/index.js.map +1 -1
  55. package/dist/core-api/routes/index.mjs +185 -62
  56. package/dist/core-api/routes/index.mjs.map +1 -1
  57. package/dist/core-api/routes/validation/attributes.d.ts +91 -0
  58. package/dist/core-api/routes/validation/attributes.d.ts.map +1 -0
  59. package/dist/core-api/routes/validation/attributes.js +583 -0
  60. package/dist/core-api/routes/validation/attributes.js.map +1 -0
  61. package/dist/core-api/routes/validation/attributes.mjs +580 -0
  62. package/dist/core-api/routes/validation/attributes.mjs.map +1 -0
  63. package/dist/core-api/routes/validation/common.d.ts +103 -0
  64. package/dist/core-api/routes/validation/common.d.ts.map +1 -0
  65. package/dist/core-api/routes/validation/common.js +95 -0
  66. package/dist/core-api/routes/validation/common.js.map +1 -0
  67. package/dist/core-api/routes/validation/common.mjs +93 -0
  68. package/dist/core-api/routes/validation/common.mjs.map +1 -0
  69. package/dist/core-api/routes/validation/component.d.ts +42 -0
  70. package/dist/core-api/routes/validation/component.d.ts.map +1 -0
  71. package/dist/core-api/routes/validation/component.js +59 -0
  72. package/dist/core-api/routes/validation/component.js.map +1 -0
  73. package/dist/core-api/routes/validation/component.mjs +57 -0
  74. package/dist/core-api/routes/validation/component.mjs.map +1 -0
  75. package/dist/core-api/routes/validation/constants.d.ts +2 -0
  76. package/dist/core-api/routes/validation/constants.d.ts.map +1 -0
  77. package/dist/core-api/routes/validation/constants.js +13 -0
  78. package/dist/core-api/routes/validation/constants.js.map +1 -0
  79. package/dist/core-api/routes/validation/constants.mjs +11 -0
  80. package/dist/core-api/routes/validation/constants.mjs.map +1 -0
  81. package/dist/core-api/routes/validation/content-type.d.ts +171 -0
  82. package/dist/core-api/routes/validation/content-type.d.ts.map +1 -0
  83. package/dist/core-api/routes/validation/content-type.js +246 -0
  84. package/dist/core-api/routes/validation/content-type.js.map +1 -0
  85. package/dist/core-api/routes/validation/content-type.mjs +244 -0
  86. package/dist/core-api/routes/validation/content-type.mjs.map +1 -0
  87. package/dist/core-api/routes/validation/index.d.ts +5 -0
  88. package/dist/core-api/routes/validation/index.d.ts.map +1 -0
  89. package/dist/core-api/service/collection-type.d.ts +2 -2
  90. package/dist/core-api/service/collection-type.js +73 -60
  91. package/dist/core-api/service/collection-type.js.map +1 -1
  92. package/dist/core-api/service/collection-type.mjs +72 -62
  93. package/dist/core-api/service/collection-type.mjs.map +1 -1
  94. package/dist/core-api/service/core-service.js +9 -8
  95. package/dist/core-api/service/core-service.js.map +1 -1
  96. package/dist/core-api/service/core-service.mjs +8 -9
  97. package/dist/core-api/service/core-service.mjs.map +1 -1
  98. package/dist/core-api/service/index.js +13 -13
  99. package/dist/core-api/service/index.js.map +1 -1
  100. package/dist/core-api/service/index.mjs +12 -14
  101. package/dist/core-api/service/index.mjs.map +1 -1
  102. package/dist/core-api/service/pagination.js +69 -43
  103. package/dist/core-api/service/pagination.js.map +1 -1
  104. package/dist/core-api/service/pagination.mjs +68 -47
  105. package/dist/core-api/service/pagination.mjs.map +1 -1
  106. package/dist/core-api/service/single-type.js +43 -39
  107. package/dist/core-api/service/single-type.js.map +1 -1
  108. package/dist/core-api/service/single-type.mjs +42 -41
  109. package/dist/core-api/service/single-type.mjs.map +1 -1
  110. package/dist/domain/content-type/index.js +95 -100
  111. package/dist/domain/content-type/index.js.map +1 -1
  112. package/dist/domain/content-type/index.mjs +94 -100
  113. package/dist/domain/content-type/index.mjs.map +1 -1
  114. package/dist/domain/content-type/validator.js +84 -69
  115. package/dist/domain/content-type/validator.js.map +1 -1
  116. package/dist/domain/content-type/validator.mjs +83 -68
  117. package/dist/domain/content-type/validator.mjs.map +1 -1
  118. package/dist/domain/module/index.d.ts.map +1 -1
  119. package/dist/domain/module/index.js +112 -100
  120. package/dist/domain/module/index.js.map +1 -1
  121. package/dist/domain/module/index.mjs +111 -99
  122. package/dist/domain/module/index.mjs.map +1 -1
  123. package/dist/domain/module/validation.js +25 -20
  124. package/dist/domain/module/validation.js.map +1 -1
  125. package/dist/domain/module/validation.mjs +24 -21
  126. package/dist/domain/module/validation.mjs.map +1 -1
  127. package/dist/ee/index.d.ts +1 -0
  128. package/dist/ee/index.d.ts.map +1 -1
  129. package/dist/ee/index.js +171 -132
  130. package/dist/ee/index.js.map +1 -1
  131. package/dist/ee/index.mjs +170 -134
  132. package/dist/ee/index.mjs.map +1 -1
  133. package/dist/ee/license.d.ts.map +1 -1
  134. package/dist/ee/license.js +100 -75
  135. package/dist/ee/license.js.map +1 -1
  136. package/dist/ee/license.mjs +99 -76
  137. package/dist/ee/license.mjs.map +1 -1
  138. package/dist/factories.d.ts +3 -1
  139. package/dist/factories.d.ts.map +1 -1
  140. package/dist/factories.js +80 -67
  141. package/dist/factories.js.map +1 -1
  142. package/dist/factories.mjs +77 -70
  143. package/dist/factories.mjs.map +1 -1
  144. package/dist/index.d.ts +14 -0
  145. package/dist/index.d.ts.map +1 -1
  146. package/dist/index.js +29 -26
  147. package/dist/index.js.map +1 -1
  148. package/dist/index.mjs +29 -29
  149. package/dist/index.mjs.map +1 -1
  150. package/dist/loaders/admin.d.ts.map +1 -1
  151. package/dist/loaders/admin.js +21 -20
  152. package/dist/loaders/admin.js.map +1 -1
  153. package/dist/loaders/admin.mjs +20 -20
  154. package/dist/loaders/admin.mjs.map +1 -1
  155. package/dist/loaders/apis.js +143 -120
  156. package/dist/loaders/apis.js.map +1 -1
  157. package/dist/loaders/apis.mjs +142 -119
  158. package/dist/loaders/apis.mjs.map +1 -1
  159. package/dist/loaders/components.js +33 -34
  160. package/dist/loaders/components.js.map +1 -1
  161. package/dist/loaders/components.mjs +32 -34
  162. package/dist/loaders/components.mjs.map +1 -1
  163. package/dist/loaders/index.js +22 -20
  164. package/dist/loaders/index.js.map +1 -1
  165. package/dist/loaders/index.mjs +21 -21
  166. package/dist/loaders/index.mjs.map +1 -1
  167. package/dist/loaders/middlewares.js +29 -25
  168. package/dist/loaders/middlewares.js.map +1 -1
  169. package/dist/loaders/middlewares.mjs +28 -25
  170. package/dist/loaders/middlewares.mjs.map +1 -1
  171. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  172. package/dist/loaders/plugins/get-enabled-plugins.js +125 -102
  173. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  174. package/dist/loaders/plugins/get-enabled-plugins.mjs +124 -101
  175. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  176. package/dist/loaders/plugins/get-user-plugins-config.js +25 -24
  177. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  178. package/dist/loaders/plugins/get-user-plugins-config.mjs +24 -23
  179. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  180. package/dist/loaders/plugins/index.d.ts.map +1 -1
  181. package/dist/loaders/plugins/index.js +141 -104
  182. package/dist/loaders/plugins/index.js.map +1 -1
  183. package/dist/loaders/plugins/index.mjs +121 -104
  184. package/dist/loaders/plugins/index.mjs.map +1 -1
  185. package/dist/loaders/policies.js +24 -20
  186. package/dist/loaders/policies.js.map +1 -1
  187. package/dist/loaders/policies.mjs +23 -20
  188. package/dist/loaders/policies.mjs.map +1 -1
  189. package/dist/loaders/sanitizers.js +10 -4
  190. package/dist/loaders/sanitizers.js.map +1 -1
  191. package/dist/loaders/sanitizers.mjs +9 -6
  192. package/dist/loaders/sanitizers.mjs.map +1 -1
  193. package/dist/loaders/src-index.js +35 -27
  194. package/dist/loaders/src-index.js.map +1 -1
  195. package/dist/loaders/src-index.mjs +34 -29
  196. package/dist/loaders/src-index.mjs.map +1 -1
  197. package/dist/loaders/validators.js +9 -4
  198. package/dist/loaders/validators.js.map +1 -1
  199. package/dist/loaders/validators.mjs +8 -6
  200. package/dist/loaders/validators.mjs.map +1 -1
  201. package/dist/middlewares/body.d.ts.map +1 -1
  202. package/dist/middlewares/body.js +58 -54
  203. package/dist/middlewares/body.js.map +1 -1
  204. package/dist/middlewares/body.mjs +57 -51
  205. package/dist/middlewares/body.mjs.map +1 -1
  206. package/dist/middlewares/compression.js +6 -6
  207. package/dist/middlewares/compression.js.map +1 -1
  208. package/dist/middlewares/compression.mjs +5 -5
  209. package/dist/middlewares/compression.mjs.map +1 -1
  210. package/dist/middlewares/cors.d.ts.map +1 -1
  211. package/dist/middlewares/cors.js +59 -44
  212. package/dist/middlewares/cors.js.map +1 -1
  213. package/dist/middlewares/cors.mjs +58 -43
  214. package/dist/middlewares/cors.mjs.map +1 -1
  215. package/dist/middlewares/errors.js +32 -30
  216. package/dist/middlewares/errors.js.map +1 -1
  217. package/dist/middlewares/errors.mjs +31 -31
  218. package/dist/middlewares/errors.mjs.map +1 -1
  219. package/dist/middlewares/favicon.js +27 -17
  220. package/dist/middlewares/favicon.js.map +1 -1
  221. package/dist/middlewares/favicon.mjs +26 -16
  222. package/dist/middlewares/favicon.mjs.map +1 -1
  223. package/dist/middlewares/index.js +32 -30
  224. package/dist/middlewares/index.js.map +1 -1
  225. package/dist/middlewares/index.mjs +31 -31
  226. package/dist/middlewares/index.mjs.map +1 -1
  227. package/dist/middlewares/ip.js +6 -6
  228. package/dist/middlewares/ip.js.map +1 -1
  229. package/dist/middlewares/ip.mjs +5 -5
  230. package/dist/middlewares/ip.mjs.map +1 -1
  231. package/dist/middlewares/logger.js +10 -9
  232. package/dist/middlewares/logger.js.map +1 -1
  233. package/dist/middlewares/logger.mjs +9 -10
  234. package/dist/middlewares/logger.mjs.map +1 -1
  235. package/dist/middlewares/powered-by.js +13 -9
  236. package/dist/middlewares/powered-by.js.map +1 -1
  237. package/dist/middlewares/powered-by.mjs +12 -10
  238. package/dist/middlewares/powered-by.mjs.map +1 -1
  239. package/dist/middlewares/public.js +33 -29
  240. package/dist/middlewares/public.js.map +1 -1
  241. package/dist/middlewares/public.mjs +32 -28
  242. package/dist/middlewares/public.mjs.map +1 -1
  243. package/dist/middlewares/query.d.ts.map +1 -1
  244. package/dist/middlewares/query.js +35 -32
  245. package/dist/middlewares/query.js.map +1 -1
  246. package/dist/middlewares/query.mjs +34 -31
  247. package/dist/middlewares/query.mjs.map +1 -1
  248. package/dist/middlewares/response-time.js +10 -9
  249. package/dist/middlewares/response-time.js.map +1 -1
  250. package/dist/middlewares/response-time.mjs +9 -10
  251. package/dist/middlewares/response-time.mjs.map +1 -1
  252. package/dist/middlewares/responses.js +14 -12
  253. package/dist/middlewares/responses.js.map +1 -1
  254. package/dist/middlewares/responses.mjs +13 -13
  255. package/dist/middlewares/responses.mjs.map +1 -1
  256. package/dist/middlewares/security.d.ts.map +1 -1
  257. package/dist/middlewares/security.js +110 -65
  258. package/dist/middlewares/security.js.map +1 -1
  259. package/dist/middlewares/security.mjs +108 -63
  260. package/dist/middlewares/security.mjs.map +1 -1
  261. package/dist/middlewares/session.js +26 -25
  262. package/dist/middlewares/session.js.map +1 -1
  263. package/dist/middlewares/session.mjs +25 -24
  264. package/dist/middlewares/session.mjs.map +1 -1
  265. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +14 -11
  266. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  267. package/dist/migrations/database/5.0.0-discard-drafts.js +153 -42
  268. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
  269. package/dist/migrations/database/5.0.0-discard-drafts.mjs +152 -44
  270. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
  271. package/dist/migrations/draft-publish.d.ts +2 -2
  272. package/dist/migrations/draft-publish.d.ts.map +1 -1
  273. package/dist/migrations/draft-publish.js +61 -34
  274. package/dist/migrations/draft-publish.js.map +1 -1
  275. package/dist/migrations/draft-publish.mjs +60 -36
  276. package/dist/migrations/draft-publish.mjs.map +1 -1
  277. package/dist/migrations/i18n.d.ts +5 -0
  278. package/dist/migrations/i18n.d.ts.map +1 -0
  279. package/dist/migrations/i18n.js +71 -0
  280. package/dist/migrations/i18n.js.map +1 -0
  281. package/dist/migrations/i18n.mjs +68 -0
  282. package/dist/migrations/i18n.mjs.map +1 -0
  283. package/dist/migrations/index.d.ts +5 -0
  284. package/dist/migrations/index.d.ts.map +1 -0
  285. package/dist/migrations/index.js +29 -0
  286. package/dist/migrations/index.js.map +1 -0
  287. package/dist/migrations/index.mjs +26 -0
  288. package/dist/migrations/index.mjs.map +1 -0
  289. package/dist/package.json.js +183 -0
  290. package/dist/package.json.js.map +1 -0
  291. package/dist/package.json.mjs +160 -0
  292. package/dist/package.json.mjs.map +1 -0
  293. package/dist/providers/admin.d.ts.map +1 -1
  294. package/dist/providers/admin.js +27 -17
  295. package/dist/providers/admin.js.map +1 -1
  296. package/dist/providers/admin.mjs +26 -19
  297. package/dist/providers/admin.mjs.map +1 -1
  298. package/dist/providers/coreStore.js +13 -8
  299. package/dist/providers/coreStore.js.map +1 -1
  300. package/dist/providers/coreStore.mjs +12 -10
  301. package/dist/providers/coreStore.mjs.map +1 -1
  302. package/dist/providers/cron.js +19 -16
  303. package/dist/providers/cron.js.map +1 -1
  304. package/dist/providers/cron.mjs +18 -18
  305. package/dist/providers/cron.mjs.map +1 -1
  306. package/dist/providers/index.js +18 -9
  307. package/dist/providers/index.js.map +1 -1
  308. package/dist/providers/index.mjs +17 -10
  309. package/dist/providers/index.mjs.map +1 -1
  310. package/dist/providers/provider.js +4 -3
  311. package/dist/providers/provider.js.map +1 -1
  312. package/dist/providers/provider.mjs +3 -4
  313. package/dist/providers/provider.mjs.map +1 -1
  314. package/dist/providers/registries.js +37 -32
  315. package/dist/providers/registries.js.map +1 -1
  316. package/dist/providers/registries.mjs +36 -34
  317. package/dist/providers/registries.mjs.map +1 -1
  318. package/dist/providers/telemetry.js +19 -16
  319. package/dist/providers/telemetry.js.map +1 -1
  320. package/dist/providers/telemetry.mjs +18 -18
  321. package/dist/providers/telemetry.mjs.map +1 -1
  322. package/dist/providers/webhooks.js +28 -26
  323. package/dist/providers/webhooks.js.map +1 -1
  324. package/dist/providers/webhooks.mjs +27 -28
  325. package/dist/providers/webhooks.mjs.map +1 -1
  326. package/dist/registries/apis.js +23 -20
  327. package/dist/registries/apis.js.map +1 -1
  328. package/dist/registries/apis.mjs +22 -22
  329. package/dist/registries/apis.mjs.map +1 -1
  330. package/dist/registries/components.js +35 -37
  331. package/dist/registries/components.js.map +1 -1
  332. package/dist/registries/components.mjs +34 -39
  333. package/dist/registries/components.mjs.map +1 -1
  334. package/dist/registries/content-types.js +54 -59
  335. package/dist/registries/content-types.js.map +1 -1
  336. package/dist/registries/content-types.mjs +53 -61
  337. package/dist/registries/content-types.mjs.map +1 -1
  338. package/dist/registries/controllers.js +70 -71
  339. package/dist/registries/controllers.js.map +1 -1
  340. package/dist/registries/controllers.mjs +69 -73
  341. package/dist/registries/controllers.mjs.map +1 -1
  342. package/dist/registries/custom-fields.js +75 -65
  343. package/dist/registries/custom-fields.js.map +1 -1
  344. package/dist/registries/custom-fields.mjs +74 -67
  345. package/dist/registries/custom-fields.mjs.map +1 -1
  346. package/dist/registries/hooks.js +46 -49
  347. package/dist/registries/hooks.js.map +1 -1
  348. package/dist/registries/hooks.mjs +45 -51
  349. package/dist/registries/hooks.mjs.map +1 -1
  350. package/dist/registries/middlewares.js +49 -51
  351. package/dist/registries/middlewares.js.map +1 -1
  352. package/dist/registries/middlewares.mjs +48 -53
  353. package/dist/registries/middlewares.mjs.map +1 -1
  354. package/dist/registries/models.js +14 -13
  355. package/dist/registries/models.js.map +1 -1
  356. package/dist/registries/models.mjs +13 -14
  357. package/dist/registries/models.mjs.map +1 -1
  358. package/dist/registries/modules.js +39 -36
  359. package/dist/registries/modules.js.map +1 -1
  360. package/dist/registries/modules.mjs +38 -38
  361. package/dist/registries/modules.mjs.map +1 -1
  362. package/dist/registries/namespace.js +21 -20
  363. package/dist/registries/namespace.js.map +1 -1
  364. package/dist/registries/namespace.mjs +20 -23
  365. package/dist/registries/namespace.mjs.map +1 -1
  366. package/dist/registries/plugins.js +23 -20
  367. package/dist/registries/plugins.js.map +1 -1
  368. package/dist/registries/plugins.mjs +22 -22
  369. package/dist/registries/plugins.mjs.map +1 -1
  370. package/dist/registries/policies.d.ts +1 -1
  371. package/dist/registries/policies.d.ts.map +1 -1
  372. package/dist/registries/policies.js +103 -96
  373. package/dist/registries/policies.js.map +1 -1
  374. package/dist/registries/policies.mjs +102 -98
  375. package/dist/registries/policies.mjs.map +1 -1
  376. package/dist/registries/sanitizers.js +23 -22
  377. package/dist/registries/sanitizers.js.map +1 -1
  378. package/dist/registries/sanitizers.mjs +22 -22
  379. package/dist/registries/sanitizers.mjs.map +1 -1
  380. package/dist/registries/services.js +71 -71
  381. package/dist/registries/services.js.map +1 -1
  382. package/dist/registries/services.mjs +70 -73
  383. package/dist/registries/services.mjs.map +1 -1
  384. package/dist/registries/validators.js +23 -22
  385. package/dist/registries/validators.js.map +1 -1
  386. package/dist/registries/validators.mjs +22 -22
  387. package/dist/registries/validators.mjs.map +1 -1
  388. package/dist/services/auth/index.js +74 -74
  389. package/dist/services/auth/index.js.map +1 -1
  390. package/dist/services/auth/index.mjs +73 -74
  391. package/dist/services/auth/index.mjs.map +1 -1
  392. package/dist/services/config.js +47 -43
  393. package/dist/services/config.js.map +1 -1
  394. package/dist/services/config.mjs +46 -44
  395. package/dist/services/config.mjs.map +1 -1
  396. package/dist/services/content-api/index.d.ts +10 -12
  397. package/dist/services/content-api/index.d.ts.map +1 -1
  398. package/dist/services/content-api/index.js +80 -79
  399. package/dist/services/content-api/index.js.map +1 -1
  400. package/dist/services/content-api/index.mjs +79 -79
  401. package/dist/services/content-api/index.mjs.map +1 -1
  402. package/dist/services/content-api/permissions/engine.js +8 -5
  403. package/dist/services/content-api/permissions/engine.js.map +1 -1
  404. package/dist/services/content-api/permissions/engine.mjs +7 -5
  405. package/dist/services/content-api/permissions/engine.mjs.map +1 -1
  406. package/dist/services/content-api/permissions/index.d.ts +10 -12
  407. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  408. package/dist/services/content-api/permissions/index.js +101 -81
  409. package/dist/services/content-api/permissions/index.js.map +1 -1
  410. package/dist/services/content-api/permissions/index.mjs +100 -81
  411. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  412. package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
  413. package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
  414. package/dist/services/content-api/permissions/providers/action.js +17 -14
  415. package/dist/services/content-api/permissions/providers/action.js.map +1 -1
  416. package/dist/services/content-api/permissions/providers/action.mjs +16 -16
  417. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
  418. package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
  419. package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
  420. package/dist/services/content-api/permissions/providers/condition.js +17 -14
  421. package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
  422. package/dist/services/content-api/permissions/providers/condition.mjs +16 -16
  423. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
  424. package/dist/services/core-store.js +115 -95
  425. package/dist/services/core-store.js.map +1 -1
  426. package/dist/services/core-store.mjs +114 -97
  427. package/dist/services/core-store.mjs.map +1 -1
  428. package/dist/services/cron.d.ts +3 -3
  429. package/dist/services/cron.d.ts.map +1 -1
  430. package/dist/services/cron.js +74 -60
  431. package/dist/services/cron.js.map +1 -1
  432. package/dist/services/cron.mjs +73 -62
  433. package/dist/services/cron.mjs.map +1 -1
  434. package/dist/services/custom-fields.js +9 -7
  435. package/dist/services/custom-fields.js.map +1 -1
  436. package/dist/services/custom-fields.mjs +8 -9
  437. package/dist/services/custom-fields.mjs.map +1 -1
  438. package/dist/services/document-service/attributes/index.js +23 -18
  439. package/dist/services/document-service/attributes/index.js.map +1 -1
  440. package/dist/services/document-service/attributes/index.mjs +22 -19
  441. package/dist/services/document-service/attributes/index.mjs.map +1 -1
  442. package/dist/services/document-service/attributes/transforms.js +16 -15
  443. package/dist/services/document-service/attributes/transforms.js.map +1 -1
  444. package/dist/services/document-service/attributes/transforms.mjs +15 -15
  445. package/dist/services/document-service/attributes/transforms.mjs.map +1 -1
  446. package/dist/services/document-service/common.d.ts +1 -1
  447. package/dist/services/document-service/common.d.ts.map +1 -1
  448. package/dist/services/document-service/common.js +5 -4
  449. package/dist/services/document-service/common.js.map +1 -1
  450. package/dist/services/document-service/common.mjs +4 -5
  451. package/dist/services/document-service/common.mjs.map +1 -1
  452. package/dist/services/document-service/components.d.ts.map +1 -1
  453. package/dist/services/document-service/components.js +257 -259
  454. package/dist/services/document-service/components.js.map +1 -1
  455. package/dist/services/document-service/components.mjs +254 -262
  456. package/dist/services/document-service/components.mjs.map +1 -1
  457. package/dist/services/document-service/draft-and-publish.d.ts +1 -1
  458. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  459. package/dist/services/document-service/draft-and-publish.js +94 -54
  460. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  461. package/dist/services/document-service/draft-and-publish.mjs +87 -54
  462. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  463. package/dist/services/document-service/entries.d.ts +2 -2
  464. package/dist/services/document-service/entries.d.ts.map +1 -1
  465. package/dist/services/document-service/entries.js +109 -92
  466. package/dist/services/document-service/entries.js.map +1 -1
  467. package/dist/services/document-service/entries.mjs +108 -93
  468. package/dist/services/document-service/entries.mjs.map +1 -1
  469. package/dist/services/document-service/events.d.ts +1 -1
  470. package/dist/services/document-service/events.d.ts.map +1 -1
  471. package/dist/services/document-service/events.js +52 -40
  472. package/dist/services/document-service/events.js.map +1 -1
  473. package/dist/services/document-service/events.mjs +51 -41
  474. package/dist/services/document-service/events.mjs.map +1 -1
  475. package/dist/services/document-service/index.d.ts +2 -1
  476. package/dist/services/document-service/index.d.ts.map +1 -1
  477. package/dist/services/document-service/index.js +53 -32
  478. package/dist/services/document-service/index.js.map +1 -1
  479. package/dist/services/document-service/index.mjs +52 -33
  480. package/dist/services/document-service/index.mjs.map +1 -1
  481. package/dist/services/document-service/internationalization.js +66 -50
  482. package/dist/services/document-service/internationalization.js.map +1 -1
  483. package/dist/services/document-service/internationalization.mjs +61 -50
  484. package/dist/services/document-service/internationalization.mjs.map +1 -1
  485. package/dist/services/document-service/middlewares/errors.js +23 -19
  486. package/dist/services/document-service/middlewares/errors.js.map +1 -1
  487. package/dist/services/document-service/middlewares/errors.mjs +22 -20
  488. package/dist/services/document-service/middlewares/errors.mjs.map +1 -1
  489. package/dist/services/document-service/middlewares/middleware-manager.js +46 -44
  490. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -1
  491. package/dist/services/document-service/middlewares/middleware-manager.mjs +45 -45
  492. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -1
  493. package/dist/services/document-service/params.js +11 -5
  494. package/dist/services/document-service/params.js.map +1 -1
  495. package/dist/services/document-service/params.mjs +10 -6
  496. package/dist/services/document-service/params.mjs.map +1 -1
  497. package/dist/services/document-service/repository.d.ts.map +1 -1
  498. package/dist/services/document-service/repository.js +355 -269
  499. package/dist/services/document-service/repository.js.map +1 -1
  500. package/dist/services/document-service/repository.mjs +354 -270
  501. package/dist/services/document-service/repository.mjs.map +1 -1
  502. package/dist/services/document-service/transform/data.js +22 -12
  503. package/dist/services/document-service/transform/data.js.map +1 -1
  504. package/dist/services/document-service/transform/data.mjs +21 -13
  505. package/dist/services/document-service/transform/data.mjs.map +1 -1
  506. package/dist/services/document-service/transform/fields.js +26 -17
  507. package/dist/services/document-service/transform/fields.js.map +1 -1
  508. package/dist/services/document-service/transform/fields.mjs +25 -18
  509. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  510. package/dist/services/document-service/transform/id-map.d.ts +1 -1
  511. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  512. package/dist/services/document-service/transform/id-map.js +116 -69
  513. package/dist/services/document-service/transform/id-map.js.map +1 -1
  514. package/dist/services/document-service/transform/id-map.mjs +115 -70
  515. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  516. package/dist/services/document-service/transform/id-transform.d.ts +1 -1
  517. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  518. package/dist/services/document-service/transform/id-transform.js +38 -30
  519. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  520. package/dist/services/document-service/transform/id-transform.mjs +36 -30
  521. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  522. package/dist/services/document-service/transform/populate.js +23 -18
  523. package/dist/services/document-service/transform/populate.js.map +1 -1
  524. package/dist/services/document-service/transform/populate.mjs +22 -19
  525. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  526. package/dist/services/document-service/transform/query.js +11 -6
  527. package/dist/services/document-service/transform/query.js.map +1 -1
  528. package/dist/services/document-service/transform/query.mjs +10 -7
  529. package/dist/services/document-service/transform/query.mjs.map +1 -1
  530. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  531. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  532. package/dist/services/document-service/transform/relations/extract/data-ids.js +71 -48
  533. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  534. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +70 -49
  535. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  536. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  537. package/dist/services/document-service/transform/relations/transform/data-ids.js +97 -63
  538. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  539. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +96 -64
  540. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  541. package/dist/services/document-service/transform/relations/transform/default-locale.js +47 -29
  542. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -1
  543. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +46 -30
  544. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -1
  545. package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
  546. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  547. package/dist/services/document-service/transform/relations/utils/dp.js +52 -26
  548. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  549. package/dist/services/document-service/transform/relations/utils/dp.mjs +51 -27
  550. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  551. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
  552. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  553. package/dist/services/document-service/transform/relations/utils/i18n.js +20 -18
  554. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  555. package/dist/services/document-service/transform/relations/utils/i18n.mjs +19 -21
  556. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  557. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
  558. package/dist/services/document-service/transform/relations/utils/map-relation.js +118 -79
  559. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -1
  560. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +115 -79
  561. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -1
  562. package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
  563. package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -0
  564. package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
  565. package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
  566. package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
  567. package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
  568. package/dist/services/document-service/utils/populate.d.ts +1 -1
  569. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  570. package/dist/services/document-service/utils/populate.js +67 -37
  571. package/dist/services/document-service/utils/populate.js.map +1 -1
  572. package/dist/services/document-service/utils/populate.mjs +66 -38
  573. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  574. package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
  575. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  576. package/dist/services/document-service/utils/unidirectional-relations.js +116 -0
  577. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
  578. package/dist/services/document-service/utils/unidirectional-relations.mjs +113 -0
  579. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
  580. package/dist/services/entity-service/index.js +230 -161
  581. package/dist/services/entity-service/index.js.map +1 -1
  582. package/dist/services/entity-service/index.mjs +229 -160
  583. package/dist/services/entity-service/index.mjs.map +1 -1
  584. package/dist/services/entity-validator/blocks-validator.d.ts +1 -2
  585. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  586. package/dist/services/entity-validator/blocks-validator.js +137 -104
  587. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  588. package/dist/services/entity-validator/blocks-validator.mjs +135 -105
  589. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  590. package/dist/services/entity-validator/index.d.ts +15 -1
  591. package/dist/services/entity-validator/index.d.ts.map +1 -1
  592. package/dist/services/entity-validator/index.js +362 -311
  593. package/dist/services/entity-validator/index.js.map +1 -1
  594. package/dist/services/entity-validator/index.mjs +358 -308
  595. package/dist/services/entity-validator/index.mjs.map +1 -1
  596. package/dist/services/entity-validator/validators.d.ts +36 -25
  597. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  598. package/dist/services/entity-validator/validators.js +283 -110
  599. package/dist/services/entity-validator/validators.js.map +1 -1
  600. package/dist/services/entity-validator/validators.mjs +274 -108
  601. package/dist/services/entity-validator/validators.mjs.map +1 -1
  602. package/dist/services/errors.js +65 -65
  603. package/dist/services/errors.js.map +1 -1
  604. package/dist/services/errors.mjs +64 -66
  605. package/dist/services/errors.mjs.map +1 -1
  606. package/dist/services/event-hub.js +82 -69
  607. package/dist/services/event-hub.js.map +1 -1
  608. package/dist/services/event-hub.mjs +81 -71
  609. package/dist/services/event-hub.mjs.map +1 -1
  610. package/dist/services/features.js +19 -14
  611. package/dist/services/features.js.map +1 -1
  612. package/dist/services/features.mjs +18 -15
  613. package/dist/services/features.mjs.map +1 -1
  614. package/dist/services/fs.js +41 -40
  615. package/dist/services/fs.js.map +1 -1
  616. package/dist/services/fs.mjs +40 -39
  617. package/dist/services/fs.mjs.map +1 -1
  618. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  619. package/dist/services/metrics/admin-user-hash.js +13 -11
  620. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  621. package/dist/services/metrics/admin-user-hash.mjs +12 -10
  622. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  623. package/dist/services/metrics/index.js +46 -40
  624. package/dist/services/metrics/index.js.map +1 -1
  625. package/dist/services/metrics/index.mjs +45 -42
  626. package/dist/services/metrics/index.mjs.map +1 -1
  627. package/dist/services/metrics/is-truthy.js +13 -6
  628. package/dist/services/metrics/is-truthy.js.map +1 -1
  629. package/dist/services/metrics/is-truthy.mjs +12 -6
  630. package/dist/services/metrics/is-truthy.mjs.map +1 -1
  631. package/dist/services/metrics/middleware.d.ts.map +1 -1
  632. package/dist/services/metrics/middleware.js +37 -22
  633. package/dist/services/metrics/middleware.js.map +1 -1
  634. package/dist/services/metrics/middleware.mjs +36 -24
  635. package/dist/services/metrics/middleware.mjs.map +1 -1
  636. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  637. package/dist/services/metrics/rate-limiter.js +24 -19
  638. package/dist/services/metrics/rate-limiter.js.map +1 -1
  639. package/dist/services/metrics/rate-limiter.mjs +23 -21
  640. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  641. package/dist/services/metrics/sender.d.ts.map +1 -1
  642. package/dist/services/metrics/sender.js +78 -69
  643. package/dist/services/metrics/sender.js.map +1 -1
  644. package/dist/services/metrics/sender.mjs +77 -64
  645. package/dist/services/metrics/sender.mjs.map +1 -1
  646. package/dist/services/query-params.js +13 -10
  647. package/dist/services/query-params.js.map +1 -1
  648. package/dist/services/query-params.mjs +12 -12
  649. package/dist/services/query-params.mjs.map +1 -1
  650. package/dist/services/reloader.js +35 -32
  651. package/dist/services/reloader.js.map +1 -1
  652. package/dist/services/reloader.mjs +34 -33
  653. package/dist/services/reloader.mjs.map +1 -1
  654. package/dist/services/request-context.js +11 -8
  655. package/dist/services/request-context.js.map +1 -1
  656. package/dist/services/request-context.mjs +10 -10
  657. package/dist/services/request-context.mjs.map +1 -1
  658. package/dist/services/server/admin-api.js +11 -10
  659. package/dist/services/server/admin-api.js.map +1 -1
  660. package/dist/services/server/admin-api.mjs +10 -11
  661. package/dist/services/server/admin-api.mjs.map +1 -1
  662. package/dist/services/server/api.js +33 -27
  663. package/dist/services/server/api.js.map +1 -1
  664. package/dist/services/server/api.mjs +32 -26
  665. package/dist/services/server/api.mjs.map +1 -1
  666. package/dist/services/server/compose-endpoint.js +116 -105
  667. package/dist/services/server/compose-endpoint.js.map +1 -1
  668. package/dist/services/server/compose-endpoint.mjs +115 -105
  669. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  670. package/dist/services/server/content-api.js +11 -9
  671. package/dist/services/server/content-api.js.map +1 -1
  672. package/dist/services/server/content-api.mjs +10 -10
  673. package/dist/services/server/content-api.mjs.map +1 -1
  674. package/dist/services/server/http-server.js +48 -44
  675. package/dist/services/server/http-server.js.map +1 -1
  676. package/dist/services/server/http-server.mjs +47 -43
  677. package/dist/services/server/http-server.mjs.map +1 -1
  678. package/dist/services/server/index.js +85 -82
  679. package/dist/services/server/index.js.map +1 -1
  680. package/dist/services/server/index.mjs +84 -81
  681. package/dist/services/server/index.mjs.map +1 -1
  682. package/dist/services/server/koa.js +49 -47
  683. package/dist/services/server/koa.js.map +1 -1
  684. package/dist/services/server/koa.mjs +48 -44
  685. package/dist/services/server/koa.mjs.map +1 -1
  686. package/dist/services/server/middleware.js +86 -82
  687. package/dist/services/server/middleware.js.map +1 -1
  688. package/dist/services/server/middleware.mjs +85 -82
  689. package/dist/services/server/middleware.mjs.map +1 -1
  690. package/dist/services/server/policy.js +24 -17
  691. package/dist/services/server/policy.js.map +1 -1
  692. package/dist/services/server/policy.mjs +23 -18
  693. package/dist/services/server/policy.mjs.map +1 -1
  694. package/dist/services/server/register-middlewares.js +68 -61
  695. package/dist/services/server/register-middlewares.js.map +1 -1
  696. package/dist/services/server/register-middlewares.mjs +67 -63
  697. package/dist/services/server/register-middlewares.mjs.map +1 -1
  698. package/dist/services/server/register-routes.js +109 -66
  699. package/dist/services/server/register-routes.js.map +1 -1
  700. package/dist/services/server/register-routes.mjs +108 -66
  701. package/dist/services/server/register-routes.mjs.map +1 -1
  702. package/dist/services/server/routing.d.ts +10 -0
  703. package/dist/services/server/routing.d.ts.map +1 -1
  704. package/dist/services/server/routing.js +100 -81
  705. package/dist/services/server/routing.js.map +1 -1
  706. package/dist/services/server/routing.mjs +99 -81
  707. package/dist/services/server/routing.mjs.map +1 -1
  708. package/dist/services/utils/dynamic-zones.js +13 -14
  709. package/dist/services/utils/dynamic-zones.js.map +1 -1
  710. package/dist/services/utils/dynamic-zones.mjs +12 -16
  711. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  712. package/dist/services/webhook-runner.js +124 -122
  713. package/dist/services/webhook-runner.js.map +1 -1
  714. package/dist/services/webhook-runner.mjs +123 -121
  715. package/dist/services/webhook-runner.mjs.map +1 -1
  716. package/dist/services/webhook-store.js +132 -99
  717. package/dist/services/webhook-store.js.map +1 -1
  718. package/dist/services/webhook-store.mjs +131 -101
  719. package/dist/services/webhook-store.mjs.map +1 -1
  720. package/dist/services/worker-queue.js +44 -49
  721. package/dist/services/worker-queue.js.map +1 -1
  722. package/dist/services/worker-queue.mjs +43 -49
  723. package/dist/services/worker-queue.mjs.map +1 -1
  724. package/dist/utils/convert-custom-field-type.js +17 -20
  725. package/dist/utils/convert-custom-field-type.js.map +1 -1
  726. package/dist/utils/convert-custom-field-type.mjs +16 -21
  727. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  728. package/dist/utils/cron.js +64 -30
  729. package/dist/utils/cron.js.map +1 -1
  730. package/dist/utils/cron.mjs +63 -31
  731. package/dist/utils/cron.mjs.map +1 -1
  732. package/dist/utils/fetch.d.ts.map +1 -1
  733. package/dist/utils/fetch.js +24 -17
  734. package/dist/utils/fetch.js.map +1 -1
  735. package/dist/utils/fetch.mjs +23 -18
  736. package/dist/utils/fetch.mjs.map +1 -1
  737. package/dist/utils/filepath-to-prop-path.d.ts +1 -1
  738. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
  739. package/dist/utils/filepath-to-prop-path.js +22 -9
  740. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  741. package/dist/utils/filepath-to-prop-path.mjs +20 -7
  742. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  743. package/dist/utils/is-initialized.js +21 -12
  744. package/dist/utils/is-initialized.js.map +1 -1
  745. package/dist/utils/is-initialized.mjs +20 -13
  746. package/dist/utils/is-initialized.mjs.map +1 -1
  747. package/dist/utils/lifecycles.js +6 -5
  748. package/dist/utils/lifecycles.js.map +1 -1
  749. package/dist/utils/lifecycles.mjs +5 -6
  750. package/dist/utils/lifecycles.mjs.map +1 -1
  751. package/dist/utils/load-config-file.js +40 -38
  752. package/dist/utils/load-config-file.js.map +1 -1
  753. package/dist/utils/load-config-file.mjs +39 -36
  754. package/dist/utils/load-config-file.mjs.map +1 -1
  755. package/dist/utils/load-files.js +40 -35
  756. package/dist/utils/load-files.js.map +1 -1
  757. package/dist/utils/load-files.mjs +39 -32
  758. package/dist/utils/load-files.mjs.map +1 -1
  759. package/dist/utils/open-browser.js +8 -8
  760. package/dist/utils/open-browser.js.map +1 -1
  761. package/dist/utils/open-browser.mjs +7 -7
  762. package/dist/utils/open-browser.mjs.map +1 -1
  763. package/dist/utils/resolve-working-dirs.js +23 -10
  764. package/dist/utils/resolve-working-dirs.js.map +1 -1
  765. package/dist/utils/resolve-working-dirs.mjs +22 -9
  766. package/dist/utils/resolve-working-dirs.mjs.map +1 -1
  767. package/dist/utils/signals.js +20 -14
  768. package/dist/utils/signals.js.map +1 -1
  769. package/dist/utils/signals.mjs +19 -15
  770. package/dist/utils/signals.mjs.map +1 -1
  771. package/dist/utils/startup-logger.d.ts.map +1 -1
  772. package/dist/utils/startup-logger.js +107 -78
  773. package/dist/utils/startup-logger.js.map +1 -1
  774. package/dist/utils/startup-logger.mjs +106 -75
  775. package/dist/utils/startup-logger.mjs.map +1 -1
  776. package/dist/utils/transform-content-types-to-models.d.ts +355 -23
  777. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  778. package/dist/utils/transform-content-types-to-models.js +350 -248
  779. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  780. package/dist/utils/transform-content-types-to-models.mjs +349 -256
  781. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  782. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  783. package/dist/utils/update-notifier/index.js +68 -73
  784. package/dist/utils/update-notifier/index.js.map +1 -1
  785. package/dist/utils/update-notifier/index.mjs +67 -67
  786. package/dist/utils/update-notifier/index.mjs.map +1 -1
  787. package/package.json +34 -32
@@ -0,0 +1,583 @@
1
+ 'use strict';
2
+
3
+ var strapiUtils = require('@strapi/utils');
4
+ var zod = require('zod');
5
+ var constants = require('./constants.js');
6
+ var component = require('./component.js');
7
+ var contentType = require('./content-type.js');
8
+
9
+ /**
10
+ * Maps a Strapi attribute definition to a corresponding Zod validation schema.
11
+ * This function handles various Strapi attribute types and converts them into
12
+ * appropriate Zod validation schemas with their respective constraints.
13
+ *
14
+ * @param attribute - The Strapi attribute configuration object. Contains type information
15
+ * and validation rules for the attribute.
16
+ *
17
+ * @returns A Zod schema that corresponds to the input attribute's type and validation rules
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * // String attribute with constraints
22
+ * const stringAttribute = {
23
+ * type: 'string',
24
+ * minLength: 3,
25
+ * maxLength: 50,
26
+ * required: true
27
+ * };
28
+ * const stringSchema = mapAttributeToSchema(stringAttribute);
29
+ *
30
+ * // Enumeration attribute
31
+ * const enumAttribute = {
32
+ * type: 'enumeration',
33
+ * enum: ['draft', 'published', 'archived']
34
+ * };
35
+ * const enumSchema = mapAttributeToSchema(enumAttribute);
36
+ *
37
+ * // Media attribute with multiple files
38
+ * const mediaAttribute = {
39
+ * type: 'media',
40
+ * multiple: true
41
+ * };
42
+ * const mediaSchema = mapAttributeToSchema(mediaAttribute);
43
+ * ```
44
+ *
45
+ * @throws {Error} Throws an error if an unsupported attribute type is provided
46
+ *
47
+ * @remarks
48
+ * - Complex types (component, relation, dynamic zone) use placeholder schemas
49
+ *
50
+ * @todo: Move to @strapi/utils if needed for other validation
51
+ */ const mapAttributeToSchema = (attribute)=>{
52
+ switch(attribute.type){
53
+ case 'biginteger':
54
+ {
55
+ const { writable, required, min, max, default: defaultValue } = attribute;
56
+ const schema = augmentSchema(zod.z.string(), [
57
+ (schema)=>min !== undefined ? schema.min(min) : schema,
58
+ (schema)=>max !== undefined ? schema.max(max) : schema,
59
+ maybeRequired(required),
60
+ maybeWithDefault(defaultValue),
61
+ maybeReadonly(writable)
62
+ ]);
63
+ return schema.describe('A biginteger field');
64
+ }
65
+ case 'blocks':
66
+ {
67
+ // TODO: better support blocks data structure
68
+ return zod.z.array(zod.z.any()).describe('A blocks field');
69
+ }
70
+ case 'boolean':
71
+ {
72
+ const { writable, required, default: defaultValue } = attribute;
73
+ const schema = augmentSchema(zod.z.boolean(), [
74
+ maybeRequired(required),
75
+ maybeWithDefault(defaultValue),
76
+ maybeReadonly(writable)
77
+ ]);
78
+ return schema.describe('A boolean field');
79
+ }
80
+ case 'component':
81
+ {
82
+ const { _idmap } = zod.z.globalRegistry;
83
+ const set = (id, schema)=>{
84
+ if (_idmap.has(id)) {
85
+ _idmap.delete(id);
86
+ }
87
+ zod.z.globalRegistry.add(schema, {
88
+ id
89
+ });
90
+ };
91
+ const { writable, required, min, max, component: component$1, repeatable } = attribute;
92
+ const existsInGlobalRegistry = _idmap.has(component$1);
93
+ let componentSchema;
94
+ if (existsInGlobalRegistry) {
95
+ componentSchema = _idmap.get(component$1);
96
+ } else {
97
+ set(component$1, zod.z.any());
98
+ const validator = new component.CoreComponentRouteValidator(strapi, component$1);
99
+ const schema = validator.entry;
100
+ set(component$1, schema);
101
+ componentSchema = schema;
102
+ }
103
+ const baseSchema = repeatable ? zod.z.array(componentSchema) : componentSchema;
104
+ const schema = augmentSchema(baseSchema, [
105
+ (schema)=>min !== undefined && schema instanceof zod.z.ZodArray ? schema.min(min) : schema,
106
+ (schema)=>max !== undefined && schema instanceof zod.z.ZodArray ? schema.max(max) : schema,
107
+ maybeRequired(required),
108
+ maybeReadonly(writable)
109
+ ]);
110
+ return schema.describe('A component field');
111
+ }
112
+ case 'date':
113
+ {
114
+ const { writable, required, default: defaultValue } = attribute;
115
+ const schema = augmentSchema(zod.z.string(), [
116
+ maybeRequired(required),
117
+ maybeWithDefault(defaultValue),
118
+ maybeReadonly(writable)
119
+ ]);
120
+ return schema.describe('A date field');
121
+ }
122
+ case 'datetime':
123
+ {
124
+ const { writable, required, default: defaultValue } = attribute;
125
+ const baseSchema = zod.z.string();
126
+ const schema = augmentSchema(baseSchema, [
127
+ maybeRequired(required),
128
+ maybeWithDefault(defaultValue),
129
+ maybeReadonly(writable)
130
+ ]);
131
+ return schema.describe('A datetime field');
132
+ }
133
+ case 'decimal':
134
+ {
135
+ const { writable, required, min, max, default: defaultValue } = attribute;
136
+ const schema = augmentSchema(zod.z.number(), [
137
+ maybeWithMinMax(min, max),
138
+ maybeRequired(required),
139
+ maybeWithDefault(defaultValue),
140
+ maybeReadonly(writable)
141
+ ]);
142
+ return schema.describe('A decimal field');
143
+ }
144
+ // TODO(zodV4): use the components' reference type instead of z.any
145
+ // TODO(zodV4): use discriminated unions to handle the different types of components
146
+ case 'dynamiczone':
147
+ {
148
+ const { writable, required, min, max } = attribute;
149
+ const baseSchema = zod.z.array(zod.z.any());
150
+ const schema = augmentSchema(baseSchema, [
151
+ maybeWithMinMax(min, max),
152
+ maybeRequired(required),
153
+ maybeReadonly(writable)
154
+ ]);
155
+ return schema.describe('A dynamic zone field');
156
+ }
157
+ case 'email':
158
+ {
159
+ const { writable, required, default: defaultValue, minLength, maxLength } = attribute;
160
+ const baseSchema = zod.z.string().email();
161
+ const schema = augmentSchema(baseSchema, [
162
+ maybeWithMinMax(minLength, maxLength),
163
+ maybeRequired(required),
164
+ maybeWithDefault(defaultValue),
165
+ maybeReadonly(writable)
166
+ ]);
167
+ return schema.describe('An email field');
168
+ }
169
+ case 'enumeration':
170
+ {
171
+ const { writable, required, default: defaultValue, enum: enumValues } = attribute;
172
+ const baseSchema = zod.z.enum(enumValues);
173
+ const schema = augmentSchema(baseSchema, [
174
+ maybeRequired(required),
175
+ maybeWithDefault(defaultValue),
176
+ maybeReadonly(writable)
177
+ ]);
178
+ return schema.describe('An enum field');
179
+ }
180
+ case 'float':
181
+ {
182
+ const { writable, required, min, max, default: defaultValue } = attribute;
183
+ const schema = augmentSchema(zod.z.number(), [
184
+ maybeWithMinMax(min, max),
185
+ maybeRequired(required),
186
+ maybeReadonly(writable),
187
+ maybeWithDefault(defaultValue)
188
+ ]);
189
+ return schema.describe('A float field');
190
+ }
191
+ case 'integer':
192
+ {
193
+ const { writable, required, min, max, default: defaultValue } = attribute;
194
+ const baseSchema = zod.z.number().int();
195
+ const schema = augmentSchema(baseSchema, [
196
+ maybeWithMinMax(min, max),
197
+ maybeRequired(required),
198
+ maybeReadonly(writable),
199
+ maybeWithDefault(defaultValue)
200
+ ]);
201
+ return schema.describe('A float field');
202
+ }
203
+ // TODO(zodV4): use reference to create fake cyclical JSON values
204
+ // see https://zod.dev/?id=json-type for more info
205
+ case 'json':
206
+ {
207
+ const { writable, required, default: defaultValue } = attribute;
208
+ const schema = augmentSchema(zod.z.any(), [
209
+ maybeRequired(required),
210
+ maybeWithDefault(defaultValue),
211
+ maybeReadonly(writable)
212
+ ]);
213
+ return schema.describe('A JSON field');
214
+ }
215
+ case 'media':
216
+ {
217
+ const { writable, required, multiple } = attribute;
218
+ const baseSchema = multiple ? zod.z.array(zod.z.any()) : zod.z.any();
219
+ const schema = augmentSchema(baseSchema, [
220
+ maybeRequired(required),
221
+ maybeReadonly(writable)
222
+ ]);
223
+ return schema.describe('A media field');
224
+ }
225
+ // TODO(zodV4): handle polymorphic relations using discriminated unions
226
+ case 'relation':
227
+ {
228
+ // Extract writable and required flags from the attribute
229
+ if (!('target' in attribute)) {
230
+ return zod.z.any();
231
+ }
232
+ const { _idmap } = zod.z.globalRegistry;
233
+ const set = (id, schema)=>{
234
+ if (_idmap.has(id)) {
235
+ _idmap.delete(id);
236
+ }
237
+ zod.z.globalRegistry.add(schema, {
238
+ id
239
+ });
240
+ };
241
+ const { writable, required, target } = attribute;
242
+ const existsInGlobalRegistry = _idmap.has(target);
243
+ let targetSchema;
244
+ if (existsInGlobalRegistry) {
245
+ targetSchema = _idmap.get(target);
246
+ } else {
247
+ set(target, zod.z.any());
248
+ const validator = new contentType.CoreContentTypeRouteValidator(strapi, target);
249
+ const schema = validator.document;
250
+ set(target, schema);
251
+ targetSchema = schema;
252
+ }
253
+ const baseSchema = strapiUtils.relations.isAnyToMany(attribute) ? zod.z.array(targetSchema) : targetSchema;
254
+ // Add required and readonly constraints based on attribute flags
255
+ const schema = augmentSchema(baseSchema, [
256
+ maybeRequired(required),
257
+ maybeReadonly(writable)
258
+ ]);
259
+ return schema.describe('A relational field');
260
+ }
261
+ case 'password':
262
+ case 'text':
263
+ case 'richtext':
264
+ case 'string':
265
+ {
266
+ const { writable, required, default: defaultValue, minLength, maxLength } = attribute;
267
+ const schema = augmentSchema(zod.z.string(), [
268
+ maybeWithMinMax(minLength, maxLength),
269
+ maybeRequired(required),
270
+ maybeWithDefault(defaultValue),
271
+ maybeReadonly(writable)
272
+ ]);
273
+ return schema.describe(`A ${attribute.type} field`);
274
+ }
275
+ case 'time':
276
+ {
277
+ const { writable, required, default: defaultValue } = attribute;
278
+ const schema = augmentSchema(zod.z.string(), [
279
+ maybeRequired(required),
280
+ maybeWithDefault(defaultValue),
281
+ maybeReadonly(writable)
282
+ ]);
283
+ return schema.describe('A time field');
284
+ }
285
+ case 'timestamp':
286
+ {
287
+ const { writable, required, default: defaultValue } = attribute;
288
+ const baseSchema = zod.z.union([
289
+ zod.z.string(),
290
+ zod.z.number()
291
+ ]);
292
+ const schema = augmentSchema(baseSchema, [
293
+ maybeRequired(required),
294
+ maybeWithDefault(defaultValue),
295
+ maybeReadonly(writable)
296
+ ]);
297
+ return schema.describe('A timestamp field');
298
+ }
299
+ case 'uid':
300
+ {
301
+ const { writable, required, default: defaultValue, minLength, maxLength } = attribute;
302
+ const schema = augmentSchema(zod.z.string(), [
303
+ maybeWithMinMax(minLength, maxLength),
304
+ maybeRequired(required),
305
+ maybeWithDefault(defaultValue),
306
+ maybeReadonly(writable)
307
+ ]);
308
+ return schema.describe('A UID field');
309
+ }
310
+ default:
311
+ throw new Error(`Unsupported attribute type: ${attribute.type}`);
312
+ }
313
+ };
314
+ /**
315
+ * Maps a Strapi attribute definition to a corresponding Zod validation schema.
316
+ * This function handles various Strapi attribute types and converts them into
317
+ * appropriate Zod validation schemas with their respective constraints.
318
+ *
319
+ * @param attribute - The Strapi attribute configuration object. Contains type information
320
+ * and validation rules for the attribute.
321
+ *
322
+ * @returns A Zod schema that corresponds to the input attribute's type and validation rules
323
+ *
324
+ * @example
325
+ * ```typescript
326
+ * // String attribute with constraints
327
+ * const stringAttribute = {
328
+ * type: 'string',
329
+ * minLength: 3,
330
+ * maxLength: 50,
331
+ * required: true
332
+ * };
333
+ * const stringSchema = mapAttributeToInputSchema(stringAttribute);
334
+ *
335
+ * // Enumeration attribute
336
+ * const enumAttribute = {
337
+ * type: 'enumeration',
338
+ * enum: ['draft', 'published', 'archived']
339
+ * };
340
+ * const enumSchema = mapAttributeToInputSchema(enumAttribute);
341
+ *
342
+ * // Media attribute with multiple files
343
+ * const mediaAttribute = {
344
+ * type: 'media',
345
+ * multiple: true
346
+ * };
347
+ * const mediaSchema = mapAttributeToInputSchema(mediaAttribute);
348
+ * ```
349
+ *
350
+ * @throws {Error} Throws an error if an unsupported attribute type is provided
351
+ *
352
+ * @remarks
353
+ * - Complex types (component, relation, dynamic zone) use placeholder schemas
354
+ *
355
+ * @todo: Move to @strapi/utils if needed for other validation
356
+ */ const mapAttributeToInputSchema = (attribute)=>{
357
+ switch(attribute.type){
358
+ case 'biginteger':
359
+ {
360
+ const { required, min, max, default: defaultValue } = attribute;
361
+ const schema = augmentSchema(zod.z.string(), [
362
+ (schema)=>min !== undefined ? schema.min(min) : schema,
363
+ (schema)=>max !== undefined ? schema.max(max) : schema,
364
+ maybeRequired(required),
365
+ maybeWithDefault(defaultValue)
366
+ ]);
367
+ return schema.describe('A biginteger field');
368
+ }
369
+ case 'blocks':
370
+ {
371
+ // TODO: better support blocks data structure
372
+ return zod.z.array(zod.z.any()).describe('A blocks field');
373
+ }
374
+ case 'boolean':
375
+ {
376
+ const { required, default: defaultValue } = attribute;
377
+ const baseSchema = zod.z.enum(constants.BOOLEAN_LITERAL_VALUES);
378
+ const schema = augmentSchema(baseSchema, [
379
+ maybeRequired(required),
380
+ maybeWithDefault(defaultValue)
381
+ ]);
382
+ return schema.describe('A boolean field');
383
+ }
384
+ // TODO(zodV4): use the component reference type instead of z.any
385
+ case 'component':
386
+ {
387
+ const { required, repeatable, min, max } = attribute;
388
+ const baseSchema = repeatable ? zod.z.array(zod.z.any()) : zod.z.any();
389
+ const schema = augmentSchema(baseSchema, [
390
+ (schema)=>min !== undefined && schema instanceof zod.z.ZodArray ? schema.min(min) : schema,
391
+ (schema)=>max !== undefined && schema instanceof zod.z.ZodArray ? schema.max(max) : schema,
392
+ maybeRequired(required)
393
+ ]);
394
+ return schema.describe('A component field');
395
+ }
396
+ case 'date':
397
+ {
398
+ const { required, default: defaultValue } = attribute;
399
+ const schema = augmentSchema(zod.z.string(), [
400
+ maybeRequired(required),
401
+ maybeWithDefault(defaultValue)
402
+ ]);
403
+ return schema.describe('A date field');
404
+ }
405
+ case 'datetime':
406
+ {
407
+ const { required, default: defaultValue } = attribute;
408
+ const schema = augmentSchema(zod.z.string(), [
409
+ maybeRequired(required),
410
+ maybeWithDefault(defaultValue)
411
+ ]);
412
+ return schema.describe('A datetime field');
413
+ }
414
+ case 'decimal':
415
+ {
416
+ const { required, min, max, default: defaultValue } = attribute;
417
+ const schema = augmentSchema(zod.z.number(), [
418
+ maybeWithMinMax(min, max),
419
+ maybeRequired(required),
420
+ maybeWithDefault(defaultValue)
421
+ ]);
422
+ return schema.describe('A decimal field');
423
+ }
424
+ // TODO(zodV4): use the components' reference type instead of z.any
425
+ // TODO(zodV4): use discriminated unions to handle the different types of components
426
+ case 'dynamiczone':
427
+ {
428
+ const { required, min, max } = attribute;
429
+ const baseSchema = zod.z.array(zod.z.any());
430
+ const schema = augmentSchema(baseSchema, [
431
+ maybeWithMinMax(min, max),
432
+ maybeRequired(required)
433
+ ]);
434
+ return schema.describe('A dynamic zone field');
435
+ }
436
+ case 'email':
437
+ {
438
+ const { required, default: defaultValue, minLength, maxLength } = attribute;
439
+ const baseSchema = zod.z.string().email();
440
+ const schema = augmentSchema(baseSchema, [
441
+ maybeWithMinMax(minLength, maxLength),
442
+ maybeRequired(required),
443
+ maybeWithDefault(defaultValue)
444
+ ]);
445
+ return schema.describe('An email field');
446
+ }
447
+ case 'enumeration':
448
+ {
449
+ const { required, default: defaultValue, enum: enumValues } = attribute;
450
+ const baseSchema = zod.z.enum(enumValues);
451
+ const schema = augmentSchema(baseSchema, [
452
+ maybeRequired(required),
453
+ maybeWithDefault(defaultValue)
454
+ ]);
455
+ return schema.describe('An enum field');
456
+ }
457
+ case 'float':
458
+ {
459
+ const { required, min, max, default: defaultValue } = attribute;
460
+ const schema = augmentSchema(zod.z.number(), [
461
+ maybeWithMinMax(min, max),
462
+ maybeRequired(required),
463
+ maybeWithDefault(defaultValue)
464
+ ]);
465
+ return schema.describe('A float field');
466
+ }
467
+ case 'integer':
468
+ {
469
+ const { required, min, max, default: defaultValue } = attribute;
470
+ const baseSchema = zod.z.number().int();
471
+ const schema = augmentSchema(baseSchema, [
472
+ maybeWithMinMax(min, max),
473
+ maybeRequired(required),
474
+ maybeWithDefault(defaultValue)
475
+ ]);
476
+ return schema.describe('A float field');
477
+ }
478
+ // TODO(zodV4): use reference to create fake cyclical JSON values
479
+ // see https://zod.dev/?id=json-type for more info
480
+ case 'json':
481
+ {
482
+ const { required, default: defaultValue } = attribute;
483
+ const schema = augmentSchema(zod.z.any(), [
484
+ maybeRequired(required),
485
+ maybeWithDefault(defaultValue)
486
+ ]);
487
+ return schema.describe('A JSON field');
488
+ }
489
+ case 'media':
490
+ {
491
+ const { required, multiple } = attribute;
492
+ const baseSchema = multiple ? zod.z.array(zod.z.any()) : zod.z.any();
493
+ const schema = augmentSchema(baseSchema, [
494
+ maybeRequired(required)
495
+ ]);
496
+ return schema.describe('A media field');
497
+ }
498
+ // TODO(zodV4): use reference for relations types
499
+ // TODO(zodV4): handle polymorphic relations using discriminated unions
500
+ // TODO(zodv4): add the relation ordering API https://docs.strapi.io/cms/api/rest/relations
501
+ case 'relation':
502
+ {
503
+ const { required } = attribute;
504
+ const isToMany = strapiUtils.relations.isAnyToMany(attribute);
505
+ const uuid = zod.z.string().uuid();
506
+ const baseSchema = isToMany ? zod.z.array(uuid) : uuid;
507
+ const schema = augmentSchema(baseSchema, [
508
+ maybeRequired(required)
509
+ ]);
510
+ return schema.describe('A relational field');
511
+ }
512
+ case 'password':
513
+ case 'text':
514
+ case 'richtext':
515
+ case 'string':
516
+ {
517
+ const { required, default: defaultValue, minLength, maxLength } = attribute;
518
+ const schema = augmentSchema(zod.z.string(), [
519
+ maybeWithMinMax(minLength, maxLength),
520
+ maybeRequired(required),
521
+ maybeWithDefault(defaultValue)
522
+ ]);
523
+ return schema.describe(`A ${attribute.type} field`);
524
+ }
525
+ case 'time':
526
+ {
527
+ const { required, default: defaultValue } = attribute;
528
+ const schema = augmentSchema(zod.z.string(), [
529
+ maybeRequired(required),
530
+ maybeWithDefault(defaultValue)
531
+ ]);
532
+ return schema.describe('A time field');
533
+ }
534
+ case 'timestamp':
535
+ {
536
+ const { required, default: defaultValue } = attribute;
537
+ const baseSchema = zod.z.union([
538
+ zod.z.string(),
539
+ zod.z.number()
540
+ ]);
541
+ const schema = augmentSchema(baseSchema, [
542
+ maybeRequired(required),
543
+ maybeWithDefault(defaultValue)
544
+ ]);
545
+ return schema.describe('A timestamp field');
546
+ }
547
+ case 'uid':
548
+ {
549
+ const { required, default: defaultValue, minLength, maxLength } = attribute;
550
+ const schema = augmentSchema(zod.z.string(), [
551
+ maybeWithMinMax(minLength, maxLength),
552
+ maybeRequired(required),
553
+ maybeWithDefault(defaultValue)
554
+ ]);
555
+ return schema.describe('A UID field');
556
+ }
557
+ default:
558
+ throw new Error(`Unsupported attribute type: ${attribute.type}`);
559
+ }
560
+ };
561
+ const maybeRequired = (required)=>{
562
+ return (schema)=>required !== true ? schema.optional() : schema;
563
+ };
564
+ const maybeReadonly = (writable)=>{
565
+ return (schema)=>writable !== false ? schema : schema.readonly();
566
+ };
567
+ const maybeWithDefault = (defaultValue)=>{
568
+ return (schema)=>{
569
+ return defaultValue !== undefined ? schema.default(typeof defaultValue === 'function' ? defaultValue() : defaultValue) : schema;
570
+ };
571
+ };
572
+ const maybeWithMinMax = (min, max)=>{
573
+ return (schema)=>{
574
+ return min !== undefined && max !== undefined ? schema.min(min).max(max) : schema;
575
+ };
576
+ };
577
+ const augmentSchema = (schema, modifiers)=>{
578
+ return modifiers.reduce((acc, modifier)=>modifier(acc), schema);
579
+ };
580
+
581
+ exports.mapAttributeToInputSchema = mapAttributeToInputSchema;
582
+ exports.mapAttributeToSchema = mapAttributeToSchema;
583
+ //# sourceMappingURL=attributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attributes.js","sources":["../../../../src/core-api/routes/validation/attributes.ts"],"sourcesContent":["import type { Schema } from '@strapi/types';\n\nimport { relations } from '@strapi/utils';\nimport { z } from 'zod';\n\nimport { BOOLEAN_LITERAL_VALUES } from './constants';\nimport { CoreComponentRouteValidator } from './component';\nimport { CoreContentTypeRouteValidator } from './content-type';\n\n/**\n * Maps a Strapi attribute definition to a corresponding Zod validation schema.\n * This function handles various Strapi attribute types and converts them into\n * appropriate Zod validation schemas with their respective constraints.\n *\n * @param attribute - The Strapi attribute configuration object. Contains type information\n * and validation rules for the attribute.\n *\n * @returns A Zod schema that corresponds to the input attribute's type and validation rules\n *\n * @example\n * ```typescript\n * // String attribute with constraints\n * const stringAttribute = {\n * type: 'string',\n * minLength: 3,\n * maxLength: 50,\n * required: true\n * };\n * const stringSchema = mapAttributeToSchema(stringAttribute);\n *\n * // Enumeration attribute\n * const enumAttribute = {\n * type: 'enumeration',\n * enum: ['draft', 'published', 'archived']\n * };\n * const enumSchema = mapAttributeToSchema(enumAttribute);\n *\n * // Media attribute with multiple files\n * const mediaAttribute = {\n * type: 'media',\n * multiple: true\n * };\n * const mediaSchema = mapAttributeToSchema(mediaAttribute);\n * ```\n *\n * @throws {Error} Throws an error if an unsupported attribute type is provided\n *\n * @remarks\n * - Complex types (component, relation, dynamic zone) use placeholder schemas\n *\n * @todo: Move to @strapi/utils if needed for other validation\n */\nexport const mapAttributeToSchema = (attribute: Schema.Attribute.AnyAttribute): z.Schema => {\n switch (attribute.type) {\n case 'biginteger': {\n const { writable, required, min, max, default: defaultValue } = attribute;\n\n const schema = augmentSchema(z.string(), [\n (schema) => (min !== undefined ? schema.min(min as unknown as number) : schema),\n (schema) => (max !== undefined ? schema.max(max as unknown as number) : schema),\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n maybeReadonly(writable),\n ]);\n\n return schema.describe('A biginteger field');\n }\n case 'blocks': {\n // TODO: better support blocks data structure\n return z.array(z.any()).describe('A blocks field');\n }\n case 'boolean': {\n const { writable, required, default: defaultValue } = attribute;\n\n const schema = augmentSchema(z.boolean(), [\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n maybeReadonly(writable),\n ]);\n\n return schema.describe('A boolean field');\n }\n case 'component': {\n const { _idmap } = z.globalRegistry;\n\n const set = (id: string, schema: z.ZodType) => {\n if (_idmap.has(id)) {\n _idmap.delete(id);\n }\n\n z.globalRegistry.add(schema, { id });\n };\n\n const { writable, required, min, max, component, repeatable } = attribute;\n\n const existsInGlobalRegistry = _idmap.has(component);\n\n let componentSchema: z.ZodType;\n\n if (existsInGlobalRegistry) {\n componentSchema = _idmap.get(component) as z.ZodType;\n } else {\n set(component, z.any());\n\n const validator = new CoreComponentRouteValidator(strapi, component);\n const schema = validator.entry;\n\n set(component, schema);\n\n componentSchema = schema;\n }\n\n const baseSchema = repeatable ? z.array(componentSchema) : componentSchema;\n\n const schema = augmentSchema(baseSchema, [\n (schema) => (min !== undefined && schema instanceof z.ZodArray ? schema.min(min) : schema),\n (schema) => (max !== undefined && schema instanceof z.ZodArray ? schema.max(max) : schema),\n maybeRequired(required),\n maybeReadonly(writable),\n ]);\n\n return schema.describe('A component field');\n }\n case 'date': {\n const { writable, required, default: defaultValue } = attribute;\n\n const schema = augmentSchema(z.string(), [\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n maybeReadonly(writable),\n ]);\n\n return schema.describe('A date field');\n }\n case 'datetime': {\n const { writable, required, default: defaultValue } = attribute;\n\n const baseSchema = z.string();\n\n const schema = augmentSchema(baseSchema, [\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n maybeReadonly(writable),\n ]);\n\n return schema.describe('A datetime field');\n }\n case 'decimal': {\n const { writable, required, min, max, default: defaultValue } = attribute;\n\n const schema = augmentSchema(z.number(), [\n maybeWithMinMax(min, max),\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n maybeReadonly(writable),\n ]);\n\n return schema.describe('A decimal field');\n }\n // TODO(zodV4): use the components' reference type instead of z.any\n // TODO(zodV4): use discriminated unions to handle the different types of components\n case 'dynamiczone': {\n const { writable, required, min, max } = attribute;\n\n const baseSchema = z.array(z.any());\n\n const schema = augmentSchema(baseSchema, [\n maybeWithMinMax(min, max),\n maybeRequired(required),\n maybeReadonly(writable),\n ]);\n\n return schema.describe('A dynamic zone field');\n }\n case 'email': {\n const { writable, required, default: defaultValue, minLength, maxLength } = attribute;\n\n const baseSchema = z.string().email();\n\n const schema = augmentSchema(baseSchema, [\n maybeWithMinMax(minLength, maxLength),\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n maybeReadonly(writable),\n ]);\n\n return schema.describe('An email field');\n }\n case 'enumeration': {\n const { writable, required, default: defaultValue, enum: enumValues } = attribute;\n\n const baseSchema = z.enum(enumValues as [string]);\n\n const schema = augmentSchema(baseSchema, [\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n maybeReadonly(writable),\n ]);\n\n return schema.describe('An enum field');\n }\n case 'float': {\n const { writable, required, min, max, default: defaultValue } = attribute;\n\n const schema = augmentSchema(z.number(), [\n maybeWithMinMax(min, max),\n maybeRequired(required),\n maybeReadonly(writable),\n maybeWithDefault(defaultValue),\n ]);\n\n return schema.describe('A float field');\n }\n case 'integer': {\n const { writable, required, min, max, default: defaultValue } = attribute;\n\n const baseSchema = z.number().int();\n\n const schema = augmentSchema(baseSchema, [\n maybeWithMinMax(min, max),\n maybeRequired(required),\n maybeReadonly(writable),\n maybeWithDefault(defaultValue),\n ]);\n\n return schema.describe('A float field');\n }\n // TODO(zodV4): use reference to create fake cyclical JSON values\n // see https://zod.dev/?id=json-type for more info\n case 'json': {\n const { writable, required, default: defaultValue } = attribute;\n\n const schema = augmentSchema(z.any(), [\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n maybeReadonly(writable),\n ]);\n\n return schema.describe('A JSON field');\n }\n case 'media': {\n const { writable, required, multiple } = attribute;\n\n const baseSchema = multiple ? z.array(z.any()) : z.any();\n\n const schema = augmentSchema(baseSchema, [maybeRequired(required), maybeReadonly(writable)]);\n\n return schema.describe('A media field');\n }\n // TODO(zodV4): handle polymorphic relations using discriminated unions\n case 'relation': {\n // Extract writable and required flags from the attribute\n if (!('target' in attribute)) {\n return z.any();\n }\n\n const { _idmap } = z.globalRegistry;\n\n const set = (id: string, schema: z.ZodType) => {\n if (_idmap.has(id)) {\n _idmap.delete(id);\n }\n\n z.globalRegistry.add(schema, { id });\n };\n\n const { writable, required, target } = attribute as Schema.Attribute.RelationWithTarget;\n\n const existsInGlobalRegistry = _idmap.has(target);\n\n let targetSchema: z.ZodType;\n\n if (existsInGlobalRegistry) {\n targetSchema = _idmap.get(target) as z.ZodType;\n } else {\n set(target, z.any());\n\n const validator = new CoreContentTypeRouteValidator(strapi, target);\n const schema = validator.document;\n\n set(target, schema);\n\n targetSchema = schema;\n }\n\n const baseSchema = relations.isAnyToMany(attribute) ? z.array(targetSchema) : targetSchema;\n\n // Add required and readonly constraints based on attribute flags\n const schema = augmentSchema(baseSchema, [maybeRequired(required), maybeReadonly(writable)]);\n\n return schema.describe('A relational field');\n }\n case 'password':\n case 'text':\n case 'richtext':\n case 'string': {\n const { writable, required, default: defaultValue, minLength, maxLength } = attribute;\n\n const schema = augmentSchema(z.string(), [\n maybeWithMinMax(minLength, maxLength),\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n maybeReadonly(writable),\n ]);\n\n return schema.describe(`A ${attribute.type} field`);\n }\n case 'time': {\n const { writable, required, default: defaultValue } = attribute;\n\n const schema = augmentSchema(z.string(), [\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n maybeReadonly(writable),\n ]);\n\n return schema.describe('A time field');\n }\n case 'timestamp': {\n const { writable, required, default: defaultValue } = attribute;\n\n const baseSchema = z.union([z.string(), z.number()]);\n\n const schema = augmentSchema(baseSchema, [\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n maybeReadonly(writable),\n ]);\n\n return schema.describe('A timestamp field');\n }\n case 'uid': {\n const { writable, required, default: defaultValue, minLength, maxLength } = attribute;\n\n const schema = augmentSchema(z.string(), [\n maybeWithMinMax(minLength, maxLength),\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n maybeReadonly(writable),\n ]);\n\n return schema.describe('A UID field');\n }\n default:\n throw new Error(`Unsupported attribute type: ${(attribute as any).type}`);\n }\n};\n\n/**\n * Maps a Strapi attribute definition to a corresponding Zod validation schema.\n * This function handles various Strapi attribute types and converts them into\n * appropriate Zod validation schemas with their respective constraints.\n *\n * @param attribute - The Strapi attribute configuration object. Contains type information\n * and validation rules for the attribute.\n *\n * @returns A Zod schema that corresponds to the input attribute's type and validation rules\n *\n * @example\n * ```typescript\n * // String attribute with constraints\n * const stringAttribute = {\n * type: 'string',\n * minLength: 3,\n * maxLength: 50,\n * required: true\n * };\n * const stringSchema = mapAttributeToInputSchema(stringAttribute);\n *\n * // Enumeration attribute\n * const enumAttribute = {\n * type: 'enumeration',\n * enum: ['draft', 'published', 'archived']\n * };\n * const enumSchema = mapAttributeToInputSchema(enumAttribute);\n *\n * // Media attribute with multiple files\n * const mediaAttribute = {\n * type: 'media',\n * multiple: true\n * };\n * const mediaSchema = mapAttributeToInputSchema(mediaAttribute);\n * ```\n *\n * @throws {Error} Throws an error if an unsupported attribute type is provided\n *\n * @remarks\n * - Complex types (component, relation, dynamic zone) use placeholder schemas\n *\n * @todo: Move to @strapi/utils if needed for other validation\n */\nexport const mapAttributeToInputSchema = (attribute: Schema.Attribute.AnyAttribute): z.Schema => {\n switch (attribute.type) {\n case 'biginteger': {\n const { required, min, max, default: defaultValue } = attribute;\n\n const schema = augmentSchema(z.string(), [\n (schema) => (min !== undefined ? schema.min(min as unknown as number) : schema),\n (schema) => (max !== undefined ? schema.max(max as unknown as number) : schema),\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n ]);\n\n return schema.describe('A biginteger field');\n }\n case 'blocks': {\n // TODO: better support blocks data structure\n return z.array(z.any()).describe('A blocks field');\n }\n case 'boolean': {\n const { required, default: defaultValue } = attribute;\n\n const baseSchema = z.enum(BOOLEAN_LITERAL_VALUES);\n\n const schema = augmentSchema(baseSchema, [\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n ]);\n\n return schema.describe('A boolean field');\n }\n // TODO(zodV4): use the component reference type instead of z.any\n case 'component': {\n const { required, repeatable, min, max } = attribute;\n\n const baseSchema = repeatable ? z.array(z.any()) : z.any();\n\n const schema = augmentSchema(baseSchema, [\n (schema) => (min !== undefined && schema instanceof z.ZodArray ? schema.min(min) : schema),\n (schema) => (max !== undefined && schema instanceof z.ZodArray ? schema.max(max) : schema),\n maybeRequired(required),\n ]);\n\n return schema.describe('A component field');\n }\n case 'date': {\n const { required, default: defaultValue } = attribute;\n\n const schema = augmentSchema(z.string(), [\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n ]);\n\n return schema.describe('A date field');\n }\n case 'datetime': {\n const { required, default: defaultValue } = attribute;\n\n const schema = augmentSchema(z.string(), [\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n ]);\n\n return schema.describe('A datetime field');\n }\n case 'decimal': {\n const { required, min, max, default: defaultValue } = attribute;\n\n const schema = augmentSchema(z.number(), [\n maybeWithMinMax(min, max),\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n ]);\n\n return schema.describe('A decimal field');\n }\n // TODO(zodV4): use the components' reference type instead of z.any\n // TODO(zodV4): use discriminated unions to handle the different types of components\n case 'dynamiczone': {\n const { required, min, max } = attribute;\n\n const baseSchema = z.array(z.any());\n\n const schema = augmentSchema(baseSchema, [\n maybeWithMinMax(min, max),\n maybeRequired(required),\n ]);\n\n return schema.describe('A dynamic zone field');\n }\n case 'email': {\n const { required, default: defaultValue, minLength, maxLength } = attribute;\n\n const baseSchema = z.string().email();\n\n const schema = augmentSchema(baseSchema, [\n maybeWithMinMax(minLength, maxLength),\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n ]);\n\n return schema.describe('An email field');\n }\n case 'enumeration': {\n const { required, default: defaultValue, enum: enumValues } = attribute;\n\n const baseSchema = z.enum(enumValues as [string]);\n\n const schema = augmentSchema(baseSchema, [\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n ]);\n\n return schema.describe('An enum field');\n }\n case 'float': {\n const { required, min, max, default: defaultValue } = attribute;\n\n const schema = augmentSchema(z.number(), [\n maybeWithMinMax(min, max),\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n ]);\n\n return schema.describe('A float field');\n }\n case 'integer': {\n const { required, min, max, default: defaultValue } = attribute;\n\n const baseSchema = z.number().int();\n\n const schema = augmentSchema(baseSchema, [\n maybeWithMinMax(min, max),\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n ]);\n\n return schema.describe('A float field');\n }\n // TODO(zodV4): use reference to create fake cyclical JSON values\n // see https://zod.dev/?id=json-type for more info\n case 'json': {\n const { required, default: defaultValue } = attribute;\n\n const schema = augmentSchema(z.any(), [\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n ]);\n\n return schema.describe('A JSON field');\n }\n case 'media': {\n const { required, multiple } = attribute;\n\n const baseSchema = multiple ? z.array(z.any()) : z.any();\n\n const schema = augmentSchema(baseSchema, [maybeRequired(required)]);\n\n return schema.describe('A media field');\n }\n // TODO(zodV4): use reference for relations types\n // TODO(zodV4): handle polymorphic relations using discriminated unions\n // TODO(zodv4): add the relation ordering API https://docs.strapi.io/cms/api/rest/relations\n case 'relation': {\n const { required } = attribute;\n\n const isToMany = relations.isAnyToMany(attribute);\n const uuid = z.string().uuid();\n const baseSchema = isToMany ? z.array(uuid) : uuid;\n\n const schema = augmentSchema(baseSchema, [maybeRequired(required)]);\n\n return schema.describe('A relational field');\n }\n case 'password':\n case 'text':\n case 'richtext':\n case 'string': {\n const { required, default: defaultValue, minLength, maxLength } = attribute;\n\n const schema = augmentSchema(z.string(), [\n maybeWithMinMax(minLength, maxLength),\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n ]);\n\n return schema.describe(`A ${attribute.type} field`);\n }\n case 'time': {\n const { required, default: defaultValue } = attribute;\n\n const schema = augmentSchema(z.string(), [\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n ]);\n\n return schema.describe('A time field');\n }\n case 'timestamp': {\n const { required, default: defaultValue } = attribute;\n\n const baseSchema = z.union([z.string(), z.number()]);\n\n const schema = augmentSchema(baseSchema, [\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n ]);\n\n return schema.describe('A timestamp field');\n }\n case 'uid': {\n const { required, default: defaultValue, minLength, maxLength } = attribute;\n\n const schema = augmentSchema(z.string(), [\n maybeWithMinMax(minLength, maxLength),\n maybeRequired(required),\n maybeWithDefault(defaultValue),\n ]);\n\n return schema.describe('A UID field');\n }\n default:\n throw new Error(`Unsupported attribute type: ${(attribute as any).type}`);\n }\n};\n\nconst maybeRequired = (required?: boolean) => {\n return <T extends z.Schema>(schema: T) => (required !== true ? schema.optional() : schema);\n};\n\nconst maybeReadonly = (writable?: boolean) => {\n return <T extends z.Schema>(schema: T) => (writable !== false ? schema : schema.readonly());\n};\n\nconst maybeWithDefault = (defaultValue?: unknown) => {\n return <T extends z.Schema>(schema: T) => {\n return defaultValue !== undefined\n ? schema.default(typeof defaultValue === 'function' ? defaultValue() : defaultValue)\n : schema;\n };\n};\n\nconst maybeWithMinMax = (min?: number, max?: number) => {\n return <R extends z.ZodString | z.ZodNumber | z.ZodArray<z.ZodAny>>(schema: R) => {\n return min !== undefined && max !== undefined ? schema.min(min).max(max) : schema;\n };\n};\n\nconst augmentSchema = <T extends z.Schema>(schema: T, modifiers: ((schema: T) => z.Schema)[]) => {\n return modifiers.reduce((acc, modifier) => modifier(acc) as T, schema);\n};\n"],"names":["mapAttributeToSchema","attribute","type","writable","required","min","max","default","defaultValue","schema","augmentSchema","z","string","undefined","maybeRequired","maybeWithDefault","maybeReadonly","describe","array","any","boolean","_idmap","globalRegistry","set","id","has","delete","add","component","repeatable","existsInGlobalRegistry","componentSchema","get","validator","CoreComponentRouteValidator","strapi","entry","baseSchema","ZodArray","number","maybeWithMinMax","minLength","maxLength","email","enum","enumValues","int","multiple","target","targetSchema","CoreContentTypeRouteValidator","document","relations","isAnyToMany","union","Error","mapAttributeToInputSchema","BOOLEAN_LITERAL_VALUES","isToMany","uuid","optional","readonly","modifiers","reduce","acc","modifier"],"mappings":"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"}