@strapi/core 0.0.0-experimental.997c519cb311bf692e8971f4bbd2e4a92694abee → 0.0.0-experimental.99b554bf993f9c892fcb268ce592bb8c17cabb41

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 (718) hide show
  1. package/dist/Strapi.d.ts.map +1 -1
  2. package/dist/Strapi.js +427 -403
  3. package/dist/Strapi.js.map +1 -1
  4. package/dist/Strapi.mjs +426 -402
  5. package/dist/Strapi.mjs.map +1 -1
  6. package/dist/compile.js +23 -14
  7. package/dist/compile.js.map +1 -1
  8. package/dist/compile.mjs +22 -14
  9. package/dist/compile.mjs.map +1 -1
  10. package/dist/configuration/config-loader.js +110 -97
  11. package/dist/configuration/config-loader.js.map +1 -1
  12. package/dist/configuration/config-loader.mjs +109 -96
  13. package/dist/configuration/config-loader.mjs.map +1 -1
  14. package/dist/configuration/get-dirs.js +31 -29
  15. package/dist/configuration/get-dirs.js.map +1 -1
  16. package/dist/configuration/get-dirs.mjs +30 -30
  17. package/dist/configuration/get-dirs.mjs.map +1 -1
  18. package/dist/configuration/index.d.ts.map +1 -1
  19. package/dist/configuration/index.js +84 -73
  20. package/dist/configuration/index.js.map +1 -1
  21. package/dist/configuration/index.mjs +83 -69
  22. package/dist/configuration/index.mjs.map +1 -1
  23. package/dist/configuration/urls.d.ts.map +1 -1
  24. package/dist/configuration/urls.js +74 -61
  25. package/dist/configuration/urls.js.map +1 -1
  26. package/dist/configuration/urls.mjs +73 -62
  27. package/dist/configuration/urls.mjs.map +1 -1
  28. package/dist/container.js +27 -23
  29. package/dist/container.js.map +1 -1
  30. package/dist/container.mjs +26 -24
  31. package/dist/container.mjs.map +1 -1
  32. package/dist/core-api/controller/collection-type.js +77 -76
  33. package/dist/core-api/controller/collection-type.js.map +1 -1
  34. package/dist/core-api/controller/collection-type.mjs +76 -77
  35. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  36. package/dist/core-api/controller/index.js +63 -48
  37. package/dist/core-api/controller/index.js.map +1 -1
  38. package/dist/core-api/controller/index.mjs +62 -49
  39. package/dist/core-api/controller/index.mjs.map +1 -1
  40. package/dist/core-api/controller/single-type.js +41 -40
  41. package/dist/core-api/controller/single-type.js.map +1 -1
  42. package/dist/core-api/controller/single-type.mjs +40 -41
  43. package/dist/core-api/controller/single-type.mjs.map +1 -1
  44. package/dist/core-api/controller/transform.js +72 -63
  45. package/dist/core-api/controller/transform.js.map +1 -1
  46. package/dist/core-api/controller/transform.mjs +71 -64
  47. package/dist/core-api/controller/transform.mjs.map +1 -1
  48. package/dist/core-api/routes/index.js +64 -62
  49. package/dist/core-api/routes/index.js.map +1 -1
  50. package/dist/core-api/routes/index.mjs +62 -62
  51. package/dist/core-api/routes/index.mjs.map +1 -1
  52. package/dist/core-api/service/collection-type.js +73 -60
  53. package/dist/core-api/service/collection-type.js.map +1 -1
  54. package/dist/core-api/service/collection-type.mjs +72 -62
  55. package/dist/core-api/service/collection-type.mjs.map +1 -1
  56. package/dist/core-api/service/core-service.js +9 -8
  57. package/dist/core-api/service/core-service.js.map +1 -1
  58. package/dist/core-api/service/core-service.mjs +8 -9
  59. package/dist/core-api/service/core-service.mjs.map +1 -1
  60. package/dist/core-api/service/index.js +13 -13
  61. package/dist/core-api/service/index.js.map +1 -1
  62. package/dist/core-api/service/index.mjs +12 -14
  63. package/dist/core-api/service/index.mjs.map +1 -1
  64. package/dist/core-api/service/pagination.js +69 -43
  65. package/dist/core-api/service/pagination.js.map +1 -1
  66. package/dist/core-api/service/pagination.mjs +68 -47
  67. package/dist/core-api/service/pagination.mjs.map +1 -1
  68. package/dist/core-api/service/single-type.js +43 -39
  69. package/dist/core-api/service/single-type.js.map +1 -1
  70. package/dist/core-api/service/single-type.mjs +42 -41
  71. package/dist/core-api/service/single-type.mjs.map +1 -1
  72. package/dist/domain/content-type/index.js +95 -100
  73. package/dist/domain/content-type/index.js.map +1 -1
  74. package/dist/domain/content-type/index.mjs +94 -100
  75. package/dist/domain/content-type/index.mjs.map +1 -1
  76. package/dist/domain/content-type/validator.js +84 -69
  77. package/dist/domain/content-type/validator.js.map +1 -1
  78. package/dist/domain/content-type/validator.mjs +83 -68
  79. package/dist/domain/content-type/validator.mjs.map +1 -1
  80. package/dist/domain/module/index.js +109 -100
  81. package/dist/domain/module/index.js.map +1 -1
  82. package/dist/domain/module/index.mjs +108 -99
  83. package/dist/domain/module/index.mjs.map +1 -1
  84. package/dist/domain/module/validation.js +25 -20
  85. package/dist/domain/module/validation.js.map +1 -1
  86. package/dist/domain/module/validation.mjs +24 -21
  87. package/dist/domain/module/validation.mjs.map +1 -1
  88. package/dist/ee/index.d.ts +1 -0
  89. package/dist/ee/index.d.ts.map +1 -1
  90. package/dist/ee/index.js +171 -132
  91. package/dist/ee/index.js.map +1 -1
  92. package/dist/ee/index.mjs +170 -134
  93. package/dist/ee/index.mjs.map +1 -1
  94. package/dist/ee/license.d.ts.map +1 -1
  95. package/dist/ee/license.js +99 -75
  96. package/dist/ee/license.js.map +1 -1
  97. package/dist/ee/license.mjs +98 -76
  98. package/dist/ee/license.mjs.map +1 -1
  99. package/dist/factories.js +72 -67
  100. package/dist/factories.js.map +1 -1
  101. package/dist/factories.mjs +71 -71
  102. package/dist/factories.mjs.map +1 -1
  103. package/dist/index.js +29 -26
  104. package/dist/index.js.map +1 -1
  105. package/dist/index.mjs +29 -29
  106. package/dist/index.mjs.map +1 -1
  107. package/dist/loaders/admin.d.ts.map +1 -1
  108. package/dist/loaders/admin.js +21 -20
  109. package/dist/loaders/admin.js.map +1 -1
  110. package/dist/loaders/admin.mjs +20 -20
  111. package/dist/loaders/admin.mjs.map +1 -1
  112. package/dist/loaders/apis.js +143 -120
  113. package/dist/loaders/apis.js.map +1 -1
  114. package/dist/loaders/apis.mjs +142 -119
  115. package/dist/loaders/apis.mjs.map +1 -1
  116. package/dist/loaders/components.js +33 -34
  117. package/dist/loaders/components.js.map +1 -1
  118. package/dist/loaders/components.mjs +32 -34
  119. package/dist/loaders/components.mjs.map +1 -1
  120. package/dist/loaders/index.js +22 -20
  121. package/dist/loaders/index.js.map +1 -1
  122. package/dist/loaders/index.mjs +21 -21
  123. package/dist/loaders/index.mjs.map +1 -1
  124. package/dist/loaders/middlewares.js +29 -25
  125. package/dist/loaders/middlewares.js.map +1 -1
  126. package/dist/loaders/middlewares.mjs +28 -25
  127. package/dist/loaders/middlewares.mjs.map +1 -1
  128. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  129. package/dist/loaders/plugins/get-enabled-plugins.js +125 -127
  130. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  131. package/dist/loaders/plugins/get-enabled-plugins.mjs +124 -104
  132. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  133. package/dist/loaders/plugins/get-user-plugins-config.js +25 -24
  134. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  135. package/dist/loaders/plugins/get-user-plugins-config.mjs +24 -23
  136. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  137. package/dist/loaders/plugins/index.d.ts.map +1 -1
  138. package/dist/loaders/plugins/index.js +141 -104
  139. package/dist/loaders/plugins/index.js.map +1 -1
  140. package/dist/loaders/plugins/index.mjs +121 -104
  141. package/dist/loaders/plugins/index.mjs.map +1 -1
  142. package/dist/loaders/policies.js +24 -20
  143. package/dist/loaders/policies.js.map +1 -1
  144. package/dist/loaders/policies.mjs +23 -20
  145. package/dist/loaders/policies.mjs.map +1 -1
  146. package/dist/loaders/sanitizers.js +10 -4
  147. package/dist/loaders/sanitizers.js.map +1 -1
  148. package/dist/loaders/sanitizers.mjs +9 -6
  149. package/dist/loaders/sanitizers.mjs.map +1 -1
  150. package/dist/loaders/src-index.js +35 -27
  151. package/dist/loaders/src-index.js.map +1 -1
  152. package/dist/loaders/src-index.mjs +34 -29
  153. package/dist/loaders/src-index.mjs.map +1 -1
  154. package/dist/loaders/validators.js +9 -4
  155. package/dist/loaders/validators.js.map +1 -1
  156. package/dist/loaders/validators.mjs +8 -6
  157. package/dist/loaders/validators.mjs.map +1 -1
  158. package/dist/middlewares/body.d.ts.map +1 -1
  159. package/dist/middlewares/body.js +58 -54
  160. package/dist/middlewares/body.js.map +1 -1
  161. package/dist/middlewares/body.mjs +57 -51
  162. package/dist/middlewares/body.mjs.map +1 -1
  163. package/dist/middlewares/compression.js +6 -6
  164. package/dist/middlewares/compression.js.map +1 -1
  165. package/dist/middlewares/compression.mjs +5 -5
  166. package/dist/middlewares/compression.mjs.map +1 -1
  167. package/dist/middlewares/cors.js +59 -48
  168. package/dist/middlewares/cors.js.map +1 -1
  169. package/dist/middlewares/cors.mjs +58 -47
  170. package/dist/middlewares/cors.mjs.map +1 -1
  171. package/dist/middlewares/errors.js +32 -30
  172. package/dist/middlewares/errors.js.map +1 -1
  173. package/dist/middlewares/errors.mjs +31 -31
  174. package/dist/middlewares/errors.mjs.map +1 -1
  175. package/dist/middlewares/favicon.js +27 -17
  176. package/dist/middlewares/favicon.js.map +1 -1
  177. package/dist/middlewares/favicon.mjs +26 -16
  178. package/dist/middlewares/favicon.mjs.map +1 -1
  179. package/dist/middlewares/index.js +32 -30
  180. package/dist/middlewares/index.js.map +1 -1
  181. package/dist/middlewares/index.mjs +31 -31
  182. package/dist/middlewares/index.mjs.map +1 -1
  183. package/dist/middlewares/ip.js +6 -6
  184. package/dist/middlewares/ip.js.map +1 -1
  185. package/dist/middlewares/ip.mjs +5 -5
  186. package/dist/middlewares/ip.mjs.map +1 -1
  187. package/dist/middlewares/logger.js +10 -9
  188. package/dist/middlewares/logger.js.map +1 -1
  189. package/dist/middlewares/logger.mjs +9 -10
  190. package/dist/middlewares/logger.mjs.map +1 -1
  191. package/dist/middlewares/powered-by.js +13 -9
  192. package/dist/middlewares/powered-by.js.map +1 -1
  193. package/dist/middlewares/powered-by.mjs +12 -10
  194. package/dist/middlewares/powered-by.mjs.map +1 -1
  195. package/dist/middlewares/public.js +33 -29
  196. package/dist/middlewares/public.js.map +1 -1
  197. package/dist/middlewares/public.mjs +32 -28
  198. package/dist/middlewares/public.mjs.map +1 -1
  199. package/dist/middlewares/query.js +35 -32
  200. package/dist/middlewares/query.js.map +1 -1
  201. package/dist/middlewares/query.mjs +34 -31
  202. package/dist/middlewares/query.mjs.map +1 -1
  203. package/dist/middlewares/response-time.js +10 -9
  204. package/dist/middlewares/response-time.js.map +1 -1
  205. package/dist/middlewares/response-time.mjs +9 -10
  206. package/dist/middlewares/response-time.mjs.map +1 -1
  207. package/dist/middlewares/responses.js +14 -12
  208. package/dist/middlewares/responses.js.map +1 -1
  209. package/dist/middlewares/responses.mjs +13 -13
  210. package/dist/middlewares/responses.mjs.map +1 -1
  211. package/dist/middlewares/security.js +109 -71
  212. package/dist/middlewares/security.js.map +1 -1
  213. package/dist/middlewares/security.mjs +108 -70
  214. package/dist/middlewares/security.mjs.map +1 -1
  215. package/dist/middlewares/session.js +26 -25
  216. package/dist/middlewares/session.js.map +1 -1
  217. package/dist/middlewares/session.mjs +25 -24
  218. package/dist/middlewares/session.mjs.map +1 -1
  219. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +2 -2
  220. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  221. package/dist/migrations/database/5.0.0-discard-drafts.js +154 -75
  222. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
  223. package/dist/migrations/database/5.0.0-discard-drafts.mjs +153 -77
  224. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
  225. package/dist/migrations/draft-publish.d.ts +2 -2
  226. package/dist/migrations/draft-publish.d.ts.map +1 -1
  227. package/dist/migrations/draft-publish.js +61 -34
  228. package/dist/migrations/draft-publish.js.map +1 -1
  229. package/dist/migrations/draft-publish.mjs +60 -36
  230. package/dist/migrations/draft-publish.mjs.map +1 -1
  231. package/dist/migrations/i18n.d.ts +5 -0
  232. package/dist/migrations/i18n.d.ts.map +1 -0
  233. package/dist/migrations/i18n.js +71 -0
  234. package/dist/migrations/i18n.js.map +1 -0
  235. package/dist/migrations/i18n.mjs +68 -0
  236. package/dist/migrations/i18n.mjs.map +1 -0
  237. package/dist/migrations/index.d.ts +5 -0
  238. package/dist/migrations/index.d.ts.map +1 -0
  239. package/dist/migrations/index.js +29 -0
  240. package/dist/migrations/index.js.map +1 -0
  241. package/dist/migrations/index.mjs +26 -0
  242. package/dist/migrations/index.mjs.map +1 -0
  243. package/dist/package.json.js +182 -0
  244. package/dist/package.json.js.map +1 -0
  245. package/dist/package.json.mjs +159 -0
  246. package/dist/package.json.mjs.map +1 -0
  247. package/dist/providers/admin.d.ts.map +1 -1
  248. package/dist/providers/admin.js +27 -17
  249. package/dist/providers/admin.js.map +1 -1
  250. package/dist/providers/admin.mjs +26 -19
  251. package/dist/providers/admin.mjs.map +1 -1
  252. package/dist/providers/coreStore.js +13 -8
  253. package/dist/providers/coreStore.js.map +1 -1
  254. package/dist/providers/coreStore.mjs +12 -10
  255. package/dist/providers/coreStore.mjs.map +1 -1
  256. package/dist/providers/cron.js +19 -16
  257. package/dist/providers/cron.js.map +1 -1
  258. package/dist/providers/cron.mjs +18 -18
  259. package/dist/providers/cron.mjs.map +1 -1
  260. package/dist/providers/index.js +18 -9
  261. package/dist/providers/index.js.map +1 -1
  262. package/dist/providers/index.mjs +17 -10
  263. package/dist/providers/index.mjs.map +1 -1
  264. package/dist/providers/provider.js +4 -3
  265. package/dist/providers/provider.js.map +1 -1
  266. package/dist/providers/provider.mjs +3 -4
  267. package/dist/providers/provider.mjs.map +1 -1
  268. package/dist/providers/registries.js +37 -32
  269. package/dist/providers/registries.js.map +1 -1
  270. package/dist/providers/registries.mjs +36 -34
  271. package/dist/providers/registries.mjs.map +1 -1
  272. package/dist/providers/telemetry.js +19 -16
  273. package/dist/providers/telemetry.js.map +1 -1
  274. package/dist/providers/telemetry.mjs +18 -18
  275. package/dist/providers/telemetry.mjs.map +1 -1
  276. package/dist/providers/webhooks.js +28 -26
  277. package/dist/providers/webhooks.js.map +1 -1
  278. package/dist/providers/webhooks.mjs +27 -28
  279. package/dist/providers/webhooks.mjs.map +1 -1
  280. package/dist/registries/apis.js +23 -20
  281. package/dist/registries/apis.js.map +1 -1
  282. package/dist/registries/apis.mjs +22 -22
  283. package/dist/registries/apis.mjs.map +1 -1
  284. package/dist/registries/components.js +35 -37
  285. package/dist/registries/components.js.map +1 -1
  286. package/dist/registries/components.mjs +34 -39
  287. package/dist/registries/components.mjs.map +1 -1
  288. package/dist/registries/content-types.js +54 -59
  289. package/dist/registries/content-types.js.map +1 -1
  290. package/dist/registries/content-types.mjs +53 -61
  291. package/dist/registries/content-types.mjs.map +1 -1
  292. package/dist/registries/controllers.js +70 -71
  293. package/dist/registries/controllers.js.map +1 -1
  294. package/dist/registries/controllers.mjs +69 -73
  295. package/dist/registries/controllers.mjs.map +1 -1
  296. package/dist/registries/custom-fields.js +75 -65
  297. package/dist/registries/custom-fields.js.map +1 -1
  298. package/dist/registries/custom-fields.mjs +74 -67
  299. package/dist/registries/custom-fields.mjs.map +1 -1
  300. package/dist/registries/hooks.js +46 -49
  301. package/dist/registries/hooks.js.map +1 -1
  302. package/dist/registries/hooks.mjs +45 -51
  303. package/dist/registries/hooks.mjs.map +1 -1
  304. package/dist/registries/middlewares.js +49 -51
  305. package/dist/registries/middlewares.js.map +1 -1
  306. package/dist/registries/middlewares.mjs +48 -53
  307. package/dist/registries/middlewares.mjs.map +1 -1
  308. package/dist/registries/models.js +14 -13
  309. package/dist/registries/models.js.map +1 -1
  310. package/dist/registries/models.mjs +13 -14
  311. package/dist/registries/models.mjs.map +1 -1
  312. package/dist/registries/modules.js +39 -36
  313. package/dist/registries/modules.js.map +1 -1
  314. package/dist/registries/modules.mjs +38 -38
  315. package/dist/registries/modules.mjs.map +1 -1
  316. package/dist/registries/namespace.js +21 -20
  317. package/dist/registries/namespace.js.map +1 -1
  318. package/dist/registries/namespace.mjs +20 -23
  319. package/dist/registries/namespace.mjs.map +1 -1
  320. package/dist/registries/plugins.js +23 -20
  321. package/dist/registries/plugins.js.map +1 -1
  322. package/dist/registries/plugins.mjs +22 -22
  323. package/dist/registries/plugins.mjs.map +1 -1
  324. package/dist/registries/policies.js +103 -96
  325. package/dist/registries/policies.js.map +1 -1
  326. package/dist/registries/policies.mjs +102 -98
  327. package/dist/registries/policies.mjs.map +1 -1
  328. package/dist/registries/sanitizers.js +23 -22
  329. package/dist/registries/sanitizers.js.map +1 -1
  330. package/dist/registries/sanitizers.mjs +22 -22
  331. package/dist/registries/sanitizers.mjs.map +1 -1
  332. package/dist/registries/services.js +71 -71
  333. package/dist/registries/services.js.map +1 -1
  334. package/dist/registries/services.mjs +70 -73
  335. package/dist/registries/services.mjs.map +1 -1
  336. package/dist/registries/validators.js +23 -22
  337. package/dist/registries/validators.js.map +1 -1
  338. package/dist/registries/validators.mjs +22 -22
  339. package/dist/registries/validators.mjs.map +1 -1
  340. package/dist/services/auth/index.js +74 -74
  341. package/dist/services/auth/index.js.map +1 -1
  342. package/dist/services/auth/index.mjs +73 -74
  343. package/dist/services/auth/index.mjs.map +1 -1
  344. package/dist/services/config.js +47 -43
  345. package/dist/services/config.js.map +1 -1
  346. package/dist/services/config.mjs +46 -44
  347. package/dist/services/config.mjs.map +1 -1
  348. package/dist/services/content-api/index.js +80 -79
  349. package/dist/services/content-api/index.js.map +1 -1
  350. package/dist/services/content-api/index.mjs +79 -79
  351. package/dist/services/content-api/index.mjs.map +1 -1
  352. package/dist/services/content-api/permissions/engine.js +8 -5
  353. package/dist/services/content-api/permissions/engine.js.map +1 -1
  354. package/dist/services/content-api/permissions/engine.mjs +7 -5
  355. package/dist/services/content-api/permissions/engine.mjs.map +1 -1
  356. package/dist/services/content-api/permissions/index.js +101 -81
  357. package/dist/services/content-api/permissions/index.js.map +1 -1
  358. package/dist/services/content-api/permissions/index.mjs +100 -81
  359. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  360. package/dist/services/content-api/permissions/providers/action.js +17 -14
  361. package/dist/services/content-api/permissions/providers/action.js.map +1 -1
  362. package/dist/services/content-api/permissions/providers/action.mjs +16 -16
  363. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
  364. package/dist/services/content-api/permissions/providers/condition.js +17 -14
  365. package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
  366. package/dist/services/content-api/permissions/providers/condition.mjs +16 -16
  367. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
  368. package/dist/services/core-store.js +115 -95
  369. package/dist/services/core-store.js.map +1 -1
  370. package/dist/services/core-store.mjs +114 -97
  371. package/dist/services/core-store.mjs.map +1 -1
  372. package/dist/services/cron.js +74 -60
  373. package/dist/services/cron.js.map +1 -1
  374. package/dist/services/cron.mjs +73 -62
  375. package/dist/services/cron.mjs.map +1 -1
  376. package/dist/services/custom-fields.js +9 -7
  377. package/dist/services/custom-fields.js.map +1 -1
  378. package/dist/services/custom-fields.mjs +8 -9
  379. package/dist/services/custom-fields.mjs.map +1 -1
  380. package/dist/services/document-service/attributes/index.js +23 -18
  381. package/dist/services/document-service/attributes/index.js.map +1 -1
  382. package/dist/services/document-service/attributes/index.mjs +22 -19
  383. package/dist/services/document-service/attributes/index.mjs.map +1 -1
  384. package/dist/services/document-service/attributes/transforms.js +16 -15
  385. package/dist/services/document-service/attributes/transforms.js.map +1 -1
  386. package/dist/services/document-service/attributes/transforms.mjs +15 -15
  387. package/dist/services/document-service/attributes/transforms.mjs.map +1 -1
  388. package/dist/services/document-service/common.d.ts +1 -1
  389. package/dist/services/document-service/common.d.ts.map +1 -1
  390. package/dist/services/document-service/common.js +5 -4
  391. package/dist/services/document-service/common.js.map +1 -1
  392. package/dist/services/document-service/common.mjs +4 -5
  393. package/dist/services/document-service/common.mjs.map +1 -1
  394. package/dist/services/document-service/components.d.ts.map +1 -1
  395. package/dist/services/document-service/components.js +255 -257
  396. package/dist/services/document-service/components.js.map +1 -1
  397. package/dist/services/document-service/components.mjs +254 -262
  398. package/dist/services/document-service/components.mjs.map +1 -1
  399. package/dist/services/document-service/draft-and-publish.d.ts +1 -1
  400. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  401. package/dist/services/document-service/draft-and-publish.js +88 -48
  402. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  403. package/dist/services/document-service/draft-and-publish.mjs +87 -54
  404. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  405. package/dist/services/document-service/entries.d.ts +2 -2
  406. package/dist/services/document-service/entries.d.ts.map +1 -1
  407. package/dist/services/document-service/entries.js +109 -92
  408. package/dist/services/document-service/entries.js.map +1 -1
  409. package/dist/services/document-service/entries.mjs +108 -93
  410. package/dist/services/document-service/entries.mjs.map +1 -1
  411. package/dist/services/document-service/events.d.ts +1 -1
  412. package/dist/services/document-service/events.d.ts.map +1 -1
  413. package/dist/services/document-service/events.js +52 -40
  414. package/dist/services/document-service/events.js.map +1 -1
  415. package/dist/services/document-service/events.mjs +51 -41
  416. package/dist/services/document-service/events.mjs.map +1 -1
  417. package/dist/services/document-service/index.d.ts +2 -1
  418. package/dist/services/document-service/index.d.ts.map +1 -1
  419. package/dist/services/document-service/index.js +53 -32
  420. package/dist/services/document-service/index.js.map +1 -1
  421. package/dist/services/document-service/index.mjs +52 -33
  422. package/dist/services/document-service/index.mjs.map +1 -1
  423. package/dist/services/document-service/internationalization.js +62 -46
  424. package/dist/services/document-service/internationalization.js.map +1 -1
  425. package/dist/services/document-service/internationalization.mjs +61 -50
  426. package/dist/services/document-service/internationalization.mjs.map +1 -1
  427. package/dist/services/document-service/middlewares/errors.js +23 -19
  428. package/dist/services/document-service/middlewares/errors.js.map +1 -1
  429. package/dist/services/document-service/middlewares/errors.mjs +22 -20
  430. package/dist/services/document-service/middlewares/errors.mjs.map +1 -1
  431. package/dist/services/document-service/middlewares/middleware-manager.js +46 -44
  432. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -1
  433. package/dist/services/document-service/middlewares/middleware-manager.mjs +45 -45
  434. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -1
  435. package/dist/services/document-service/params.js +11 -5
  436. package/dist/services/document-service/params.js.map +1 -1
  437. package/dist/services/document-service/params.mjs +10 -6
  438. package/dist/services/document-service/params.mjs.map +1 -1
  439. package/dist/services/document-service/repository.d.ts.map +1 -1
  440. package/dist/services/document-service/repository.js +354 -304
  441. package/dist/services/document-service/repository.js.map +1 -1
  442. package/dist/services/document-service/repository.mjs +353 -305
  443. package/dist/services/document-service/repository.mjs.map +1 -1
  444. package/dist/services/document-service/transform/data.js +22 -12
  445. package/dist/services/document-service/transform/data.js.map +1 -1
  446. package/dist/services/document-service/transform/data.mjs +21 -13
  447. package/dist/services/document-service/transform/data.mjs.map +1 -1
  448. package/dist/services/document-service/transform/fields.js +26 -17
  449. package/dist/services/document-service/transform/fields.js.map +1 -1
  450. package/dist/services/document-service/transform/fields.mjs +25 -18
  451. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  452. package/dist/services/document-service/transform/id-map.d.ts +1 -1
  453. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  454. package/dist/services/document-service/transform/id-map.js +116 -69
  455. package/dist/services/document-service/transform/id-map.js.map +1 -1
  456. package/dist/services/document-service/transform/id-map.mjs +115 -70
  457. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  458. package/dist/services/document-service/transform/id-transform.d.ts +1 -1
  459. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  460. package/dist/services/document-service/transform/id-transform.js +37 -29
  461. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  462. package/dist/services/document-service/transform/id-transform.mjs +36 -30
  463. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  464. package/dist/services/document-service/transform/populate.js +23 -18
  465. package/dist/services/document-service/transform/populate.js.map +1 -1
  466. package/dist/services/document-service/transform/populate.mjs +22 -19
  467. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  468. package/dist/services/document-service/transform/query.js +11 -6
  469. package/dist/services/document-service/transform/query.js.map +1 -1
  470. package/dist/services/document-service/transform/query.mjs +10 -7
  471. package/dist/services/document-service/transform/query.mjs.map +1 -1
  472. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  473. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  474. package/dist/services/document-service/transform/relations/extract/data-ids.js +71 -48
  475. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  476. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +70 -49
  477. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  478. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  479. package/dist/services/document-service/transform/relations/transform/data-ids.js +97 -63
  480. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  481. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +96 -64
  482. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  483. package/dist/services/document-service/transform/relations/transform/default-locale.js +47 -29
  484. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -1
  485. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +46 -30
  486. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -1
  487. package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
  488. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  489. package/dist/services/document-service/transform/relations/utils/dp.js +52 -26
  490. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  491. package/dist/services/document-service/transform/relations/utils/dp.mjs +51 -27
  492. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  493. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
  494. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  495. package/dist/services/document-service/transform/relations/utils/i18n.js +20 -18
  496. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  497. package/dist/services/document-service/transform/relations/utils/i18n.mjs +19 -21
  498. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  499. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
  500. package/dist/services/document-service/transform/relations/utils/map-relation.js +116 -77
  501. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -1
  502. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +115 -79
  503. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -1
  504. package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
  505. package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -0
  506. package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
  507. package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
  508. package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
  509. package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
  510. package/dist/services/document-service/utils/populate.d.ts +1 -1
  511. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  512. package/dist/services/document-service/utils/populate.js +67 -41
  513. package/dist/services/document-service/utils/populate.js.map +1 -1
  514. package/dist/services/document-service/utils/populate.mjs +66 -42
  515. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  516. package/dist/services/document-service/utils/unidirectional-relations.d.ts +12 -9
  517. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -1
  518. package/dist/services/document-service/utils/unidirectional-relations.js +110 -52
  519. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -1
  520. package/dist/services/document-service/utils/unidirectional-relations.mjs +109 -54
  521. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -1
  522. package/dist/services/entity-service/index.js +230 -161
  523. package/dist/services/entity-service/index.js.map +1 -1
  524. package/dist/services/entity-service/index.mjs +229 -160
  525. package/dist/services/entity-service/index.mjs.map +1 -1
  526. package/dist/services/entity-validator/blocks-validator.js +135 -103
  527. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  528. package/dist/services/entity-validator/blocks-validator.mjs +134 -104
  529. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  530. package/dist/services/entity-validator/index.d.ts +1 -1
  531. package/dist/services/entity-validator/index.d.ts.map +1 -1
  532. package/dist/services/entity-validator/index.js +362 -363
  533. package/dist/services/entity-validator/index.js.map +1 -1
  534. package/dist/services/entity-validator/index.mjs +358 -360
  535. package/dist/services/entity-validator/index.mjs.map +1 -1
  536. package/dist/services/entity-validator/validators.js +268 -210
  537. package/dist/services/entity-validator/validators.js.map +1 -1
  538. package/dist/services/entity-validator/validators.mjs +267 -216
  539. package/dist/services/entity-validator/validators.mjs.map +1 -1
  540. package/dist/services/errors.js +65 -65
  541. package/dist/services/errors.js.map +1 -1
  542. package/dist/services/errors.mjs +64 -66
  543. package/dist/services/errors.mjs.map +1 -1
  544. package/dist/services/event-hub.js +82 -69
  545. package/dist/services/event-hub.js.map +1 -1
  546. package/dist/services/event-hub.mjs +81 -71
  547. package/dist/services/event-hub.mjs.map +1 -1
  548. package/dist/services/features.js +19 -14
  549. package/dist/services/features.js.map +1 -1
  550. package/dist/services/features.mjs +18 -15
  551. package/dist/services/features.mjs.map +1 -1
  552. package/dist/services/fs.js +41 -40
  553. package/dist/services/fs.js.map +1 -1
  554. package/dist/services/fs.mjs +40 -39
  555. package/dist/services/fs.mjs.map +1 -1
  556. package/dist/services/metrics/admin-user-hash.js +13 -11
  557. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  558. package/dist/services/metrics/admin-user-hash.mjs +12 -10
  559. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  560. package/dist/services/metrics/index.js +46 -40
  561. package/dist/services/metrics/index.js.map +1 -1
  562. package/dist/services/metrics/index.mjs +45 -42
  563. package/dist/services/metrics/index.mjs.map +1 -1
  564. package/dist/services/metrics/is-truthy.js +13 -6
  565. package/dist/services/metrics/is-truthy.js.map +1 -1
  566. package/dist/services/metrics/is-truthy.mjs +12 -6
  567. package/dist/services/metrics/is-truthy.mjs.map +1 -1
  568. package/dist/services/metrics/middleware.d.ts.map +1 -1
  569. package/dist/services/metrics/middleware.js +37 -22
  570. package/dist/services/metrics/middleware.js.map +1 -1
  571. package/dist/services/metrics/middleware.mjs +36 -24
  572. package/dist/services/metrics/middleware.mjs.map +1 -1
  573. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  574. package/dist/services/metrics/rate-limiter.js +24 -19
  575. package/dist/services/metrics/rate-limiter.js.map +1 -1
  576. package/dist/services/metrics/rate-limiter.mjs +23 -21
  577. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  578. package/dist/services/metrics/sender.js +78 -69
  579. package/dist/services/metrics/sender.js.map +1 -1
  580. package/dist/services/metrics/sender.mjs +77 -64
  581. package/dist/services/metrics/sender.mjs.map +1 -1
  582. package/dist/services/query-params.js +13 -10
  583. package/dist/services/query-params.js.map +1 -1
  584. package/dist/services/query-params.mjs +12 -12
  585. package/dist/services/query-params.mjs.map +1 -1
  586. package/dist/services/reloader.js +35 -32
  587. package/dist/services/reloader.js.map +1 -1
  588. package/dist/services/reloader.mjs +34 -33
  589. package/dist/services/reloader.mjs.map +1 -1
  590. package/dist/services/request-context.js +11 -8
  591. package/dist/services/request-context.js.map +1 -1
  592. package/dist/services/request-context.mjs +10 -10
  593. package/dist/services/request-context.mjs.map +1 -1
  594. package/dist/services/server/admin-api.js +11 -10
  595. package/dist/services/server/admin-api.js.map +1 -1
  596. package/dist/services/server/admin-api.mjs +10 -11
  597. package/dist/services/server/admin-api.mjs.map +1 -1
  598. package/dist/services/server/api.js +33 -27
  599. package/dist/services/server/api.js.map +1 -1
  600. package/dist/services/server/api.mjs +32 -26
  601. package/dist/services/server/api.mjs.map +1 -1
  602. package/dist/services/server/compose-endpoint.js +116 -105
  603. package/dist/services/server/compose-endpoint.js.map +1 -1
  604. package/dist/services/server/compose-endpoint.mjs +115 -105
  605. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  606. package/dist/services/server/content-api.js +11 -9
  607. package/dist/services/server/content-api.js.map +1 -1
  608. package/dist/services/server/content-api.mjs +10 -10
  609. package/dist/services/server/content-api.mjs.map +1 -1
  610. package/dist/services/server/http-server.js +48 -44
  611. package/dist/services/server/http-server.js.map +1 -1
  612. package/dist/services/server/http-server.mjs +47 -43
  613. package/dist/services/server/http-server.mjs.map +1 -1
  614. package/dist/services/server/index.js +85 -82
  615. package/dist/services/server/index.js.map +1 -1
  616. package/dist/services/server/index.mjs +84 -81
  617. package/dist/services/server/index.mjs.map +1 -1
  618. package/dist/services/server/koa.js +49 -47
  619. package/dist/services/server/koa.js.map +1 -1
  620. package/dist/services/server/koa.mjs +48 -44
  621. package/dist/services/server/koa.mjs.map +1 -1
  622. package/dist/services/server/middleware.js +86 -82
  623. package/dist/services/server/middleware.js.map +1 -1
  624. package/dist/services/server/middleware.mjs +85 -82
  625. package/dist/services/server/middleware.mjs.map +1 -1
  626. package/dist/services/server/policy.js +24 -17
  627. package/dist/services/server/policy.js.map +1 -1
  628. package/dist/services/server/policy.mjs +23 -18
  629. package/dist/services/server/policy.mjs.map +1 -1
  630. package/dist/services/server/register-middlewares.js +68 -61
  631. package/dist/services/server/register-middlewares.js.map +1 -1
  632. package/dist/services/server/register-middlewares.mjs +67 -63
  633. package/dist/services/server/register-middlewares.mjs.map +1 -1
  634. package/dist/services/server/register-routes.js +90 -67
  635. package/dist/services/server/register-routes.js.map +1 -1
  636. package/dist/services/server/register-routes.mjs +89 -67
  637. package/dist/services/server/register-routes.mjs.map +1 -1
  638. package/dist/services/server/routing.js +94 -81
  639. package/dist/services/server/routing.js.map +1 -1
  640. package/dist/services/server/routing.mjs +93 -81
  641. package/dist/services/server/routing.mjs.map +1 -1
  642. package/dist/services/utils/dynamic-zones.js +13 -14
  643. package/dist/services/utils/dynamic-zones.js.map +1 -1
  644. package/dist/services/utils/dynamic-zones.mjs +12 -16
  645. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  646. package/dist/services/webhook-runner.js +124 -122
  647. package/dist/services/webhook-runner.js.map +1 -1
  648. package/dist/services/webhook-runner.mjs +123 -121
  649. package/dist/services/webhook-runner.mjs.map +1 -1
  650. package/dist/services/webhook-store.js +132 -99
  651. package/dist/services/webhook-store.js.map +1 -1
  652. package/dist/services/webhook-store.mjs +131 -101
  653. package/dist/services/webhook-store.mjs.map +1 -1
  654. package/dist/services/worker-queue.js +44 -49
  655. package/dist/services/worker-queue.js.map +1 -1
  656. package/dist/services/worker-queue.mjs +43 -49
  657. package/dist/services/worker-queue.mjs.map +1 -1
  658. package/dist/utils/convert-custom-field-type.js +17 -20
  659. package/dist/utils/convert-custom-field-type.js.map +1 -1
  660. package/dist/utils/convert-custom-field-type.mjs +16 -21
  661. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  662. package/dist/utils/cron.js +64 -30
  663. package/dist/utils/cron.js.map +1 -1
  664. package/dist/utils/cron.mjs +63 -31
  665. package/dist/utils/cron.mjs.map +1 -1
  666. package/dist/utils/fetch.js +24 -18
  667. package/dist/utils/fetch.js.map +1 -1
  668. package/dist/utils/fetch.mjs +23 -19
  669. package/dist/utils/fetch.mjs.map +1 -1
  670. package/dist/utils/filepath-to-prop-path.js +20 -28
  671. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  672. package/dist/utils/filepath-to-prop-path.mjs +19 -26
  673. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  674. package/dist/utils/is-initialized.js +21 -12
  675. package/dist/utils/is-initialized.js.map +1 -1
  676. package/dist/utils/is-initialized.mjs +20 -13
  677. package/dist/utils/is-initialized.mjs.map +1 -1
  678. package/dist/utils/lifecycles.js +6 -5
  679. package/dist/utils/lifecycles.js.map +1 -1
  680. package/dist/utils/lifecycles.mjs +5 -6
  681. package/dist/utils/lifecycles.mjs.map +1 -1
  682. package/dist/utils/load-config-file.js +40 -38
  683. package/dist/utils/load-config-file.js.map +1 -1
  684. package/dist/utils/load-config-file.mjs +39 -36
  685. package/dist/utils/load-config-file.mjs.map +1 -1
  686. package/dist/utils/load-files.js +40 -35
  687. package/dist/utils/load-files.js.map +1 -1
  688. package/dist/utils/load-files.mjs +39 -32
  689. package/dist/utils/load-files.mjs.map +1 -1
  690. package/dist/utils/open-browser.js +8 -8
  691. package/dist/utils/open-browser.js.map +1 -1
  692. package/dist/utils/open-browser.mjs +7 -7
  693. package/dist/utils/open-browser.mjs.map +1 -1
  694. package/dist/utils/resolve-working-dirs.js +23 -10
  695. package/dist/utils/resolve-working-dirs.js.map +1 -1
  696. package/dist/utils/resolve-working-dirs.mjs +22 -9
  697. package/dist/utils/resolve-working-dirs.mjs.map +1 -1
  698. package/dist/utils/signals.js +20 -14
  699. package/dist/utils/signals.js.map +1 -1
  700. package/dist/utils/signals.mjs +19 -15
  701. package/dist/utils/signals.mjs.map +1 -1
  702. package/dist/utils/startup-logger.d.ts.map +1 -1
  703. package/dist/utils/startup-logger.js +107 -78
  704. package/dist/utils/startup-logger.js.map +1 -1
  705. package/dist/utils/startup-logger.mjs +106 -75
  706. package/dist/utils/startup-logger.mjs.map +1 -1
  707. package/dist/utils/transform-content-types-to-models.d.ts +353 -21
  708. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  709. package/dist/utils/transform-content-types-to-models.js +350 -261
  710. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  711. package/dist/utils/transform-content-types-to-models.mjs +349 -269
  712. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  713. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  714. package/dist/utils/update-notifier/index.js +68 -73
  715. package/dist/utils/update-notifier/index.js.map +1 -1
  716. package/dist/utils/update-notifier/index.mjs +67 -67
  717. package/dist/utils/update-notifier/index.mjs.map +1 -1
  718. package/package.json +28 -28
@@ -1,385 +1,384 @@
1
- "use strict";
2
- const _ = require("lodash");
3
- const fp = require("lodash/fp");
4
- const strapiUtils = require("@strapi/utils");
5
- const validators = require("./validators.js");
6
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
7
- const strapiUtils__default = /* @__PURE__ */ _interopDefault(strapiUtils);
8
- const { yup, validateYupSchema } = strapiUtils__default.default;
9
- const { isMediaAttribute, isScalarAttribute, getWritableAttributes } = strapiUtils__default.default.contentTypes;
10
- const { ValidationError } = strapiUtils__default.default.errors;
11
- const isInteger = (value) => Number.isInteger(value);
12
- const addMinMax = (validator, {
13
- attr,
14
- updatedAttribute
15
- }) => {
16
- let nextValidator = validator;
17
- if (isInteger(attr.min) && ("required" in attr && attr.required || Array.isArray(updatedAttribute.value) && updatedAttribute.value.length > 0)) {
18
- nextValidator = nextValidator.min(attr.min);
19
- }
20
- if (isInteger(attr.max)) {
21
- nextValidator = nextValidator.max(attr.max);
22
- }
23
- return nextValidator;
24
- };
25
- const addRequiredValidation = (createOrUpdate) => {
26
- return (validator, {
27
- attr: { required }
28
- }) => {
1
+ 'use strict';
2
+
3
+ var _ = require('lodash');
4
+ var fp = require('lodash/fp');
5
+ var strapiUtils = require('@strapi/utils');
6
+ var validators = require('./validators.js');
7
+
8
+ const { yup, validateYupSchema } = strapiUtils;
9
+ const { isMediaAttribute, isScalarAttribute, getWritableAttributes } = strapiUtils.contentTypes;
10
+ const { ValidationError } = strapiUtils.errors;
11
+ const isInteger = (value)=>Number.isInteger(value);
12
+ const addMinMax = (validator, { attr, updatedAttribute })=>{
29
13
  let nextValidator = validator;
30
- if (required) {
31
- if (createOrUpdate === "creation") {
32
- nextValidator = nextValidator.notNil();
33
- } else if (createOrUpdate === "update") {
34
- nextValidator = nextValidator.notNull();
35
- }
36
- } else {
37
- nextValidator = nextValidator.nullable();
14
+ if (isInteger(attr.min) && ('required' in attr && attr.required || Array.isArray(updatedAttribute.value) && updatedAttribute.value.length > 0)) {
15
+ nextValidator = nextValidator.min(attr.min);
38
16
  }
39
- return nextValidator;
40
- };
41
- };
42
- const addDefault = (createOrUpdate) => {
43
- return (validator, { attr }) => {
44
- let nextValidator = validator;
45
- if (createOrUpdate === "creation") {
46
- if ((attr.type === "component" && attr.repeatable || attr.type === "dynamiczone") && !attr.required) {
47
- nextValidator = nextValidator.default([]);
48
- } else {
49
- nextValidator = nextValidator.default(attr.default);
50
- }
51
- } else {
52
- nextValidator = nextValidator.default(void 0);
17
+ if (isInteger(attr.max)) {
18
+ nextValidator = nextValidator.max(attr.max);
53
19
  }
54
20
  return nextValidator;
55
- };
56
- };
57
- const preventCast = (validator) => validator.transform((val, originalVal) => originalVal);
58
- const createComponentValidator = (createOrUpdate) => ({
59
- attr,
60
- updatedAttribute,
61
- componentContext
62
- }, { isDraft }) => {
63
- const model = strapi.getModel(attr.component);
64
- if (!model) {
65
- throw new Error("Validation failed: Model not found");
66
- }
67
- if (attr?.repeatable) {
68
- let validator2 = yup.array().of(
69
- yup.lazy(
70
- (item) => createModelValidator(createOrUpdate)(
71
- { componentContext, model, data: item },
72
- { isDraft }
73
- ).notNull()
74
- )
75
- );
76
- validator2 = addRequiredValidation(createOrUpdate)(validator2, {
77
- attr: { required: true },
78
- updatedAttribute
79
- });
80
- validator2 = addMinMax(validator2, { attr, updatedAttribute });
81
- return validator2;
82
- }
83
- let validator = createModelValidator(createOrUpdate)(
84
- {
85
- model,
86
- data: updatedAttribute.value,
87
- componentContext
88
- },
89
- { isDraft }
90
- );
91
- validator = addRequiredValidation(createOrUpdate)(validator, {
92
- attr: { required: !isDraft && attr.required },
93
- updatedAttribute
94
- });
95
- return validator;
96
21
  };
97
- const createDzValidator = (createOrUpdate) => ({ attr, updatedAttribute, componentContext }, { isDraft }) => {
98
- let validator;
99
- validator = yup.array().of(
100
- yup.lazy((item) => {
101
- const model = strapi.getModel(fp.prop("__component", item));
102
- const schema = yup.object().shape({
103
- __component: yup.string().required().oneOf(Object.keys(strapi.components))
104
- }).notNull();
105
- return model ? schema.concat(
106
- createModelValidator(createOrUpdate)(
107
- { model, data: item, componentContext },
108
- { isDraft }
109
- )
110
- ) : schema;
111
- })
112
- // FIXME: yup v1
113
- );
114
- validator = addRequiredValidation(createOrUpdate)(validator, {
115
- attr: { required: true },
116
- updatedAttribute
117
- });
118
- validator = addMinMax(validator, { attr, updatedAttribute });
119
- return validator;
120
- };
121
- const createRelationValidator = ({
122
- updatedAttribute
123
- }) => {
124
- let validator;
125
- if (Array.isArray(updatedAttribute.value)) {
126
- validator = yup.array().of(yup.mixed());
127
- } else {
128
- validator = yup.mixed();
129
- }
130
- return validator;
131
- };
132
- const createScalarAttributeValidator = (createOrUpdate) => (metas, options) => {
133
- let validator;
134
- if (fp.has(metas.attr.type, validators.Validators)) {
135
- validator = validators.Validators[metas.attr.type](metas, options);
136
- } else {
137
- validator = yup.mixed();
138
- }
139
- validator = addRequiredValidation(createOrUpdate)(validator, {
140
- attr: { required: !options.isDraft && metas.attr.required },
141
- updatedAttribute: metas.updatedAttribute
142
- });
143
- return validator;
144
- };
145
- const createAttributeValidator = (createOrUpdate) => (metas, options) => {
146
- let validator = yup.mixed();
147
- if (isMediaAttribute(metas.attr)) {
148
- validator = yup.mixed();
149
- } else if (isScalarAttribute(metas.attr)) {
150
- validator = createScalarAttributeValidator(createOrUpdate)(metas, options);
151
- } else {
152
- if (metas.attr.type === "component" && metas.componentContext) {
153
- const pathToComponent = [
154
- ...metas?.componentContext?.pathToComponent ?? [],
155
- metas.updatedAttribute.name
156
- ];
157
- const repeatableData = metas.attr.repeatable && pathToComponent.length === 1 ? metas.updatedAttribute.value : metas.componentContext?.repeatableData;
158
- const newComponentContext = {
159
- ...metas.componentContext,
160
- pathToComponent,
161
- repeatableData
162
- };
163
- validator = createComponentValidator(createOrUpdate)(
164
- {
165
- componentContext: newComponentContext,
166
- attr: metas.attr,
167
- updatedAttribute: metas.updatedAttribute
168
- },
169
- options
170
- );
171
- } else if (metas.attr.type === "dynamiczone" && metas.componentContext) {
172
- const newComponentContext = {
173
- ...metas.componentContext,
174
- fullDynamicZoneContent: metas.updatedAttribute.value,
175
- pathToComponent: [...metas.componentContext.pathToComponent, metas.updatedAttribute.name]
176
- };
177
- Object.assign(metas, { componentContext: newComponentContext });
178
- validator = createDzValidator(createOrUpdate)(metas, options);
179
- } else if (metas.attr.type === "relation") {
180
- validator = createRelationValidator({
181
- attr: metas.attr,
182
- updatedAttribute: metas.updatedAttribute
183
- });
184
- }
185
- validator = preventCast(validator);
186
- }
187
- validator = addDefault(createOrUpdate)(validator, metas);
188
- return validator;
22
+ const addRequiredValidation = (createOrUpdate)=>{
23
+ return (validator, { attr: { required } })=>{
24
+ let nextValidator = validator;
25
+ if (required) {
26
+ if (createOrUpdate === 'creation') {
27
+ nextValidator = nextValidator.notNil();
28
+ } else if (createOrUpdate === 'update') {
29
+ nextValidator = nextValidator.notNull();
30
+ }
31
+ } else {
32
+ nextValidator = nextValidator.nullable();
33
+ }
34
+ return nextValidator;
35
+ };
189
36
  };
190
- const createModelValidator = (createOrUpdate) => ({ componentContext, model, data, entity }, options) => {
191
- const writableAttributes = model ? getWritableAttributes(model) : [];
192
- const schema = writableAttributes.reduce(
193
- (validators2, attributeName) => {
194
- const metas = {
195
- attr: model.attributes[attributeName],
196
- updatedAttribute: { name: attributeName, value: fp.prop(attributeName, data) },
197
- model,
198
- entity,
199
- componentContext
200
- };
201
- const validator = createAttributeValidator(createOrUpdate)(metas, options);
202
- validators2[attributeName] = validator;
203
- return validators2;
204
- },
205
- {}
206
- );
207
- return yup.object().shape(schema);
37
+ const addDefault = (createOrUpdate)=>{
38
+ return (validator, { attr })=>{
39
+ let nextValidator = validator;
40
+ if (createOrUpdate === 'creation') {
41
+ if ((attr.type === 'component' && attr.repeatable || attr.type === 'dynamiczone') && !attr.required) {
42
+ nextValidator = nextValidator.default([]);
43
+ } else {
44
+ nextValidator = nextValidator.default(attr.default);
45
+ }
46
+ } else {
47
+ nextValidator = nextValidator.default(undefined);
48
+ }
49
+ return nextValidator;
50
+ };
208
51
  };
209
- const createValidateEntity = (createOrUpdate) => {
210
- return async (model, data, options, entity) => {
211
- if (!fp.isObject(data)) {
212
- const { displayName } = model.info;
213
- throw new ValidationError(
214
- `Invalid payload submitted for the ${createOrUpdate} of an entity of type ${displayName}. Expected an object, but got ${typeof data}`
215
- );
216
- }
217
- const validator = createModelValidator(createOrUpdate)(
218
- {
219
- model,
220
- data,
221
- entity,
222
- componentContext: {
223
- // Set up the initial component context.
224
- // Keeping track of parent content type context in which a component will be used.
225
- // This is necessary to validate component field constraints such as uniqueness.
226
- parentContent: {
227
- id: entity?.id,
228
- model,
229
- options
230
- },
231
- pathToComponent: [],
232
- repeatableData: []
52
+ const preventCast = (validator)=>validator.transform((val, originalVal)=>originalVal);
53
+ const createComponentValidator = (createOrUpdate)=>({ attr, updatedAttribute, componentContext }, { isDraft })=>{
54
+ const model = strapi.getModel(attr.component);
55
+ if (!model) {
56
+ throw new Error('Validation failed: Model not found');
57
+ }
58
+ if (attr?.repeatable) {
59
+ // FIXME: yup v1
60
+ let validator = yup.array().of(yup.lazy((item)=>createModelValidator(createOrUpdate)({
61
+ componentContext,
62
+ model,
63
+ data: item
64
+ }, {
65
+ isDraft
66
+ }).notNull()));
67
+ validator = addRequiredValidation(createOrUpdate)(validator, {
68
+ attr: {
69
+ required: true
70
+ },
71
+ updatedAttribute
72
+ });
73
+ if (!isDraft) {
74
+ validator = addMinMax(validator, {
75
+ attr,
76
+ updatedAttribute
77
+ });
78
+ }
79
+ return validator;
233
80
  }
234
- },
235
- {
236
- isDraft: options?.isDraft ?? false,
237
- locale: options?.locale ?? null
238
- }
239
- ).test(
240
- "relations-test",
241
- "check that all relations exist",
242
- async function relationsValidation(data2) {
243
- try {
244
- await checkRelationsExist(buildRelationsStore({ uid: model.uid, data: data2 }));
245
- } catch (e) {
246
- return this.createError({
247
- path: this.path,
248
- message: e instanceof ValidationError && e.message || "Invalid relations"
249
- });
81
+ let validator = createModelValidator(createOrUpdate)({
82
+ model,
83
+ data: updatedAttribute.value,
84
+ componentContext
85
+ }, {
86
+ isDraft
87
+ });
88
+ validator = addRequiredValidation(createOrUpdate)(validator, {
89
+ attr: {
90
+ required: !isDraft && attr.required
91
+ },
92
+ updatedAttribute
93
+ });
94
+ return validator;
95
+ };
96
+ const createDzValidator = (createOrUpdate)=>({ attr, updatedAttribute, componentContext }, { isDraft })=>{
97
+ let validator;
98
+ validator = yup.array().of(yup.lazy((item)=>{
99
+ const model = strapi.getModel(fp.prop('__component', item));
100
+ const schema = yup.object().shape({
101
+ __component: yup.string().required().oneOf(Object.keys(strapi.components))
102
+ }).notNull();
103
+ return model ? schema.concat(createModelValidator(createOrUpdate)({
104
+ model,
105
+ data: item,
106
+ componentContext
107
+ }, {
108
+ isDraft
109
+ })) : schema;
110
+ }));
111
+ validator = addRequiredValidation(createOrUpdate)(validator, {
112
+ attr: {
113
+ required: true
114
+ },
115
+ updatedAttribute
116
+ });
117
+ if (!isDraft) {
118
+ validator = addMinMax(validator, {
119
+ attr,
120
+ updatedAttribute
121
+ });
250
122
  }
251
- return true;
252
- }
253
- ).required();
254
- return validateYupSchema(validator, {
255
- strict: false,
256
- abortEarly: false
257
- })(data);
258
- };
123
+ return validator;
124
+ };
125
+ const createRelationValidator = ({ updatedAttribute })=>{
126
+ let validator;
127
+ if (Array.isArray(updatedAttribute.value)) {
128
+ validator = yup.array().of(yup.mixed());
129
+ } else {
130
+ validator = yup.mixed();
131
+ }
132
+ return validator;
259
133
  };
260
- const buildRelationsStore = ({
261
- uid,
262
- data
263
- }) => {
264
- if (!uid) {
265
- throw new ValidationError(`Cannot build relations store: "uid" is undefined`);
266
- }
267
- if (fp.isEmpty(data)) {
268
- return {};
269
- }
270
- const currentModel = strapi.getModel(uid);
271
- return Object.keys(currentModel.attributes).reduce(
272
- (result, attributeName) => {
273
- const attribute = currentModel.attributes[attributeName];
274
- const value = data[attributeName];
275
- if (_.isNil(value)) {
276
- return result;
277
- }
278
- switch (attribute.type) {
279
- case "relation":
280
- case "media": {
281
- if (attribute.type === "relation" && (attribute.relation === "morphToMany" || attribute.relation === "morphToOne")) {
282
- break;
283
- }
284
- const target = (
285
- // eslint-disable-next-line no-nested-ternary
286
- attribute.type === "media" ? "plugin::upload.file" : attribute.target
287
- );
288
- let source;
289
- if (Array.isArray(value)) {
290
- source = value;
291
- } else if (fp.isObject(value)) {
292
- if ("connect" in value && !_.isNil(value.connect)) {
293
- source = value.connect;
294
- } else if ("set" in value && !_.isNil(value.set)) {
295
- source = value.set;
296
- } else {
297
- source = [];
298
- }
299
- } else {
300
- source = _.castArray(value);
301
- }
302
- const idArray = source.map((v) => ({
303
- id: typeof v === "object" ? v.id : v
304
- }));
305
- result[target] = result[target] || [];
306
- result[target].push(...idArray);
307
- break;
134
+ const createScalarAttributeValidator = (createOrUpdate)=>(metas, options)=>{
135
+ let validator;
136
+ if (fp.has(metas.attr.type, validators.Validators)) {
137
+ validator = validators.Validators[metas.attr.type](metas, options);
138
+ } else {
139
+ // No validators specified - fall back to mixed
140
+ validator = yup.mixed();
308
141
  }
309
- case "component": {
310
- return _.castArray(value).reduce((relationsStore, componentValue) => {
311
- if (!attribute.component) {
312
- throw new ValidationError(
313
- `Cannot build relations store from component, component identifier is undefined`
314
- );
142
+ validator = addRequiredValidation(createOrUpdate)(validator, {
143
+ attr: {
144
+ required: !options.isDraft && metas.attr.required
145
+ },
146
+ updatedAttribute: metas.updatedAttribute
147
+ });
148
+ return validator;
149
+ };
150
+ const createAttributeValidator = (createOrUpdate)=>(metas, options)=>{
151
+ let validator = yup.mixed();
152
+ if (isMediaAttribute(metas.attr)) {
153
+ validator = yup.mixed();
154
+ } else if (isScalarAttribute(metas.attr)) {
155
+ validator = createScalarAttributeValidator(createOrUpdate)(metas, options);
156
+ } else {
157
+ if (metas.attr.type === 'component' && metas.componentContext) {
158
+ // Build the path to the component within the parent content type schema.
159
+ const pathToComponent = [
160
+ ...metas?.componentContext?.pathToComponent ?? [],
161
+ metas.updatedAttribute.name
162
+ ];
163
+ // If working with a repeatable component, determine the repeatable data
164
+ // based on the component's path.
165
+ // In order to validate the repeatable within this entity we need
166
+ // access to the full repeatable data. In case we are validating a
167
+ // nested component within a repeatable.
168
+ // Hence why we set this up when the path to the component is only one level deep.
169
+ const repeatableData = metas.attr.repeatable && pathToComponent.length === 1 ? metas.updatedAttribute.value : metas.componentContext?.repeatableData;
170
+ const newComponentContext = {
171
+ ...metas.componentContext,
172
+ pathToComponent,
173
+ repeatableData
174
+ };
175
+ validator = createComponentValidator(createOrUpdate)({
176
+ componentContext: newComponentContext,
177
+ attr: metas.attr,
178
+ updatedAttribute: metas.updatedAttribute
179
+ }, options);
180
+ } else if (metas.attr.type === 'dynamiczone' && metas.componentContext) {
181
+ const newComponentContext = {
182
+ ...metas.componentContext,
183
+ fullDynamicZoneContent: metas.updatedAttribute.value,
184
+ pathToComponent: [
185
+ ...metas.componentContext.pathToComponent,
186
+ metas.updatedAttribute.name
187
+ ]
188
+ };
189
+ Object.assign(metas, {
190
+ componentContext: newComponentContext
191
+ });
192
+ validator = createDzValidator(createOrUpdate)(metas, options);
193
+ } else if (metas.attr.type === 'relation') {
194
+ validator = createRelationValidator({
195
+ attr: metas.attr,
196
+ updatedAttribute: metas.updatedAttribute
197
+ });
315
198
  }
316
- return _.mergeWith(
317
- relationsStore,
318
- buildRelationsStore({
319
- uid: attribute.component,
320
- data: componentValue
321
- }),
322
- (objValue, srcValue) => {
323
- if (_.isArray(objValue)) {
324
- return objValue.concat(srcValue);
325
- }
326
- }
327
- );
328
- }, result);
199
+ validator = preventCast(validator);
329
200
  }
330
- case "dynamiczone": {
331
- return _.castArray(value).reduce((relationsStore, dzValue) => {
332
- const value2 = dzValue;
333
- if (!value2.__component) {
334
- throw new ValidationError(
335
- `Cannot build relations store from dynamiczone, component identifier is undefined`
336
- );
201
+ validator = addDefault(createOrUpdate)(validator, metas);
202
+ return validator;
203
+ };
204
+ const createModelValidator = (createOrUpdate)=>({ componentContext, model, data, entity }, options)=>{
205
+ const writableAttributes = model ? getWritableAttributes(model) : [];
206
+ const schema = writableAttributes.reduce((validators, attributeName)=>{
207
+ const metas = {
208
+ attr: model.attributes[attributeName],
209
+ updatedAttribute: {
210
+ name: attributeName,
211
+ value: fp.prop(attributeName, data)
212
+ },
213
+ model,
214
+ entity,
215
+ componentContext
216
+ };
217
+ const validator = createAttributeValidator(createOrUpdate)(metas, options);
218
+ validators[attributeName] = validator;
219
+ return validators;
220
+ }, {});
221
+ return yup.object().shape(schema);
222
+ };
223
+ const createValidateEntity = (createOrUpdate)=>{
224
+ return async (model, data, options, entity)=>{
225
+ if (!fp.isObject(data)) {
226
+ const { displayName } = model.info;
227
+ throw new ValidationError(`Invalid payload submitted for the ${createOrUpdate} of an entity of type ${displayName}. Expected an object, but got ${typeof data}`);
228
+ }
229
+ const validator = createModelValidator(createOrUpdate)({
230
+ model,
231
+ data,
232
+ entity,
233
+ componentContext: {
234
+ // Set up the initial component context.
235
+ // Keeping track of parent content type context in which a component will be used.
236
+ // This is necessary to validate component field constraints such as uniqueness.
237
+ parentContent: {
238
+ id: entity?.id,
239
+ model,
240
+ options
241
+ },
242
+ pathToComponent: [],
243
+ repeatableData: []
244
+ }
245
+ }, {
246
+ isDraft: options?.isDraft ?? false,
247
+ locale: options?.locale ?? null
248
+ }).test('relations-test', 'check that all relations exist', async function relationsValidation(data) {
249
+ try {
250
+ await checkRelationsExist(buildRelationsStore({
251
+ uid: model.uid,
252
+ data
253
+ }));
254
+ } catch (e) {
255
+ return this.createError({
256
+ path: this.path,
257
+ message: e instanceof ValidationError && e.message || 'Invalid relations'
258
+ });
337
259
  }
338
- return _.mergeWith(
339
- relationsStore,
340
- buildRelationsStore({
341
- uid: value2.__component,
342
- data: value2
343
- }),
344
- (objValue, srcValue) => {
345
- if (_.isArray(objValue)) {
346
- return objValue.concat(srcValue);
260
+ return true;
261
+ }).required();
262
+ return validateYupSchema(validator, {
263
+ strict: false,
264
+ abortEarly: false
265
+ })(data);
266
+ };
267
+ };
268
+ /**
269
+ * Builds an object containing all the media and relations being associated with an entity
270
+ */ const buildRelationsStore = ({ uid, data })=>{
271
+ if (!uid) {
272
+ throw new ValidationError(`Cannot build relations store: "uid" is undefined`);
273
+ }
274
+ if (fp.isEmpty(data)) {
275
+ return {};
276
+ }
277
+ const currentModel = strapi.getModel(uid);
278
+ return Object.keys(currentModel.attributes).reduce((result, attributeName)=>{
279
+ const attribute = currentModel.attributes[attributeName];
280
+ const value = data[attributeName];
281
+ if (_.isNil(value)) {
282
+ return result;
283
+ }
284
+ switch(attribute.type){
285
+ case 'relation':
286
+ case 'media':
287
+ {
288
+ if (attribute.type === 'relation' && (attribute.relation === 'morphToMany' || attribute.relation === 'morphToOne')) {
289
+ break;
290
+ }
291
+ const target = // eslint-disable-next-line no-nested-ternary
292
+ attribute.type === 'media' ? 'plugin::upload.file' : attribute.target;
293
+ // As there are multiple formats supported for associating relations
294
+ // with an entity, the value here can be an: array, object or number.
295
+ let source;
296
+ if (Array.isArray(value)) {
297
+ source = value;
298
+ } else if (fp.isObject(value)) {
299
+ if ('connect' in value && !_.isNil(value.connect)) {
300
+ source = value.connect;
301
+ } else if ('set' in value && !_.isNil(value.set)) {
302
+ source = value.set;
303
+ } else {
304
+ source = [];
305
+ }
306
+ } else {
307
+ source = _.castArray(value);
308
+ }
309
+ const idArray = source.map((v)=>({
310
+ id: typeof v === 'object' ? v.id : v
311
+ }));
312
+ // Update the relationStore to keep track of all associations being made
313
+ // with relations and media.
314
+ result[target] = result[target] || [];
315
+ result[target].push(...idArray);
316
+ break;
317
+ }
318
+ case 'component':
319
+ {
320
+ return _.castArray(value).reduce((relationsStore, componentValue)=>{
321
+ if (!attribute.component) {
322
+ throw new ValidationError(`Cannot build relations store from component, component identifier is undefined`);
323
+ }
324
+ return _.mergeWith(relationsStore, buildRelationsStore({
325
+ uid: attribute.component,
326
+ data: componentValue
327
+ }), (objValue, srcValue)=>{
328
+ if (_.isArray(objValue)) {
329
+ return objValue.concat(srcValue);
330
+ }
331
+ });
332
+ }, result);
333
+ }
334
+ case 'dynamiczone':
335
+ {
336
+ return _.castArray(value).reduce((relationsStore, dzValue)=>{
337
+ const value = dzValue;
338
+ if (!value.__component) {
339
+ throw new ValidationError(`Cannot build relations store from dynamiczone, component identifier is undefined`);
340
+ }
341
+ return _.mergeWith(relationsStore, buildRelationsStore({
342
+ uid: value.__component,
343
+ data: value
344
+ }), (objValue, srcValue)=>{
345
+ if (_.isArray(objValue)) {
346
+ return objValue.concat(srcValue);
347
+ }
348
+ });
349
+ }, result);
347
350
  }
348
- }
349
- );
350
- }, result);
351
351
  }
352
- }
353
- return result;
354
- },
355
- {}
356
- );
352
+ return result;
353
+ }, {});
357
354
  };
358
- const checkRelationsExist = async (relationsStore = {}) => {
359
- const promises = [];
360
- for (const [key, value] of Object.entries(relationsStore)) {
361
- const evaluate = async () => {
362
- const uniqueValues = _.uniqBy(value, `id`);
363
- const count = await strapi.db.query(key).count({
364
- where: {
365
- id: {
366
- $in: uniqueValues.map((v) => v.id)
367
- }
368
- }
369
- });
370
- if (count !== uniqueValues.length) {
371
- throw new ValidationError(
372
- `${uniqueValues.length - count} relation(s) of type ${key} associated with this entity do not exist`
373
- );
374
- }
375
- };
376
- promises.push(evaluate());
377
- }
378
- return Promise.all(promises);
355
+ /**
356
+ * Iterate through the relations store and validates that every relation or media
357
+ * mentioned exists
358
+ */ const checkRelationsExist = async (relationsStore = {})=>{
359
+ const promises = [];
360
+ for (const [key, value] of Object.entries(relationsStore)){
361
+ const evaluate = async ()=>{
362
+ const uniqueValues = _.uniqBy(value, `id`);
363
+ const count = await strapi.db.query(key).count({
364
+ where: {
365
+ id: {
366
+ $in: uniqueValues.map((v)=>v.id)
367
+ }
368
+ }
369
+ });
370
+ if (count !== uniqueValues.length) {
371
+ throw new ValidationError(`${uniqueValues.length - count} relation(s) of type ${key} associated with this entity do not exist`);
372
+ }
373
+ };
374
+ promises.push(evaluate());
375
+ }
376
+ return Promise.all(promises);
379
377
  };
380
378
  const entityValidator = {
381
- validateEntityCreation: createValidateEntity("creation"),
382
- validateEntityUpdate: createValidateEntity("update")
379
+ validateEntityCreation: createValidateEntity('creation'),
380
+ validateEntityUpdate: createValidateEntity('update')
383
381
  };
382
+
384
383
  module.exports = entityValidator;
385
384
  //# sourceMappingURL=index.js.map