@strapi/core 0.0.0-experimental.a9a5a36dd73072c19eadeff5f387e8286b2a4d22 → 0.0.0-experimental.aa8f064c5e2c0138b780746dc4455c060da87829

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