@strapi/core 0.0.0-experimental.a28002c793bc4de2a8b3c6c5b9c2336c5a6db7a9 → 0.0.0-experimental.a40985766ab04e433896342630dbc2832adeb389

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