@strapi/core 0.0.0-experimental.f75e3c6d67cc47c64ab37479efdbb7b43be50b78 → 0.0.0-experimental.f78dd29ef270559728250589cde1cfb0b9f7343a

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 (749) hide show
  1. package/LICENSE +18 -3
  2. package/dist/Strapi.d.ts +3 -1
  3. package/dist/Strapi.d.ts.map +1 -1
  4. package/dist/Strapi.js +437 -369
  5. package/dist/Strapi.js.map +1 -1
  6. package/dist/Strapi.mjs +426 -377
  7. package/dist/Strapi.mjs.map +1 -1
  8. package/dist/compile.js +23 -14
  9. package/dist/compile.js.map +1 -1
  10. package/dist/compile.mjs +22 -14
  11. package/dist/compile.mjs.map +1 -1
  12. package/dist/configuration/config-loader.js +110 -97
  13. package/dist/configuration/config-loader.js.map +1 -1
  14. package/dist/configuration/config-loader.mjs +109 -96
  15. package/dist/configuration/config-loader.mjs.map +1 -1
  16. package/dist/configuration/get-dirs.js +31 -29
  17. package/dist/configuration/get-dirs.js.map +1 -1
  18. package/dist/configuration/get-dirs.mjs +30 -30
  19. package/dist/configuration/get-dirs.mjs.map +1 -1
  20. package/dist/configuration/index.d.ts.map +1 -1
  21. package/dist/configuration/index.js +84 -73
  22. package/dist/configuration/index.js.map +1 -1
  23. package/dist/configuration/index.mjs +83 -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 +1 -0
  92. package/dist/ee/index.d.ts.map +1 -1
  93. package/dist/ee/index.js +171 -132
  94. package/dist/ee/index.js.map +1 -1
  95. package/dist/ee/index.mjs +170 -134
  96. package/dist/ee/index.mjs.map +1 -1
  97. package/dist/ee/license.d.ts.map +1 -1
  98. package/dist/ee/license.js +99 -75
  99. package/dist/ee/license.js.map +1 -1
  100. package/dist/ee/license.mjs +98 -76
  101. package/dist/ee/license.mjs.map +1 -1
  102. package/dist/factories.js +72 -67
  103. package/dist/factories.js.map +1 -1
  104. package/dist/factories.mjs +71 -71
  105. package/dist/factories.mjs.map +1 -1
  106. package/dist/index.d.ts +14 -0
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +29 -26
  109. package/dist/index.js.map +1 -1
  110. package/dist/index.mjs +29 -29
  111. package/dist/index.mjs.map +1 -1
  112. package/dist/loaders/admin.d.ts.map +1 -1
  113. package/dist/loaders/admin.js +21 -20
  114. package/dist/loaders/admin.js.map +1 -1
  115. package/dist/loaders/admin.mjs +20 -20
  116. package/dist/loaders/admin.mjs.map +1 -1
  117. package/dist/loaders/apis.js +143 -120
  118. package/dist/loaders/apis.js.map +1 -1
  119. package/dist/loaders/apis.mjs +142 -119
  120. package/dist/loaders/apis.mjs.map +1 -1
  121. package/dist/loaders/components.js +33 -34
  122. package/dist/loaders/components.js.map +1 -1
  123. package/dist/loaders/components.mjs +32 -34
  124. package/dist/loaders/components.mjs.map +1 -1
  125. package/dist/loaders/index.js +22 -20
  126. package/dist/loaders/index.js.map +1 -1
  127. package/dist/loaders/index.mjs +21 -21
  128. package/dist/loaders/index.mjs.map +1 -1
  129. package/dist/loaders/middlewares.js +29 -25
  130. package/dist/loaders/middlewares.js.map +1 -1
  131. package/dist/loaders/middlewares.mjs +28 -25
  132. package/dist/loaders/middlewares.mjs.map +1 -1
  133. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  134. package/dist/loaders/plugins/get-enabled-plugins.js +125 -102
  135. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  136. package/dist/loaders/plugins/get-enabled-plugins.mjs +124 -101
  137. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  138. package/dist/loaders/plugins/get-user-plugins-config.js +25 -24
  139. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  140. package/dist/loaders/plugins/get-user-plugins-config.mjs +24 -23
  141. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  142. package/dist/loaders/plugins/index.d.ts.map +1 -1
  143. package/dist/loaders/plugins/index.js +141 -104
  144. package/dist/loaders/plugins/index.js.map +1 -1
  145. package/dist/loaders/plugins/index.mjs +121 -104
  146. package/dist/loaders/plugins/index.mjs.map +1 -1
  147. package/dist/loaders/policies.js +24 -20
  148. package/dist/loaders/policies.js.map +1 -1
  149. package/dist/loaders/policies.mjs +23 -20
  150. package/dist/loaders/policies.mjs.map +1 -1
  151. package/dist/loaders/sanitizers.js +10 -4
  152. package/dist/loaders/sanitizers.js.map +1 -1
  153. package/dist/loaders/sanitizers.mjs +9 -6
  154. package/dist/loaders/sanitizers.mjs.map +1 -1
  155. package/dist/loaders/src-index.js +35 -27
  156. package/dist/loaders/src-index.js.map +1 -1
  157. package/dist/loaders/src-index.mjs +34 -29
  158. package/dist/loaders/src-index.mjs.map +1 -1
  159. package/dist/loaders/validators.js +9 -4
  160. package/dist/loaders/validators.js.map +1 -1
  161. package/dist/loaders/validators.mjs +8 -6
  162. package/dist/loaders/validators.mjs.map +1 -1
  163. package/dist/middlewares/body.d.ts.map +1 -1
  164. package/dist/middlewares/body.js +58 -54
  165. package/dist/middlewares/body.js.map +1 -1
  166. package/dist/middlewares/body.mjs +57 -51
  167. package/dist/middlewares/body.mjs.map +1 -1
  168. package/dist/middlewares/compression.js +6 -6
  169. package/dist/middlewares/compression.js.map +1 -1
  170. package/dist/middlewares/compression.mjs +5 -5
  171. package/dist/middlewares/compression.mjs.map +1 -1
  172. package/dist/middlewares/cors.d.ts.map +1 -1
  173. package/dist/middlewares/cors.js +59 -46
  174. package/dist/middlewares/cors.js.map +1 -1
  175. package/dist/middlewares/cors.mjs +58 -45
  176. package/dist/middlewares/cors.mjs.map +1 -1
  177. package/dist/middlewares/errors.js +32 -30
  178. package/dist/middlewares/errors.js.map +1 -1
  179. package/dist/middlewares/errors.mjs +31 -31
  180. package/dist/middlewares/errors.mjs.map +1 -1
  181. package/dist/middlewares/favicon.js +27 -17
  182. package/dist/middlewares/favicon.js.map +1 -1
  183. package/dist/middlewares/favicon.mjs +26 -16
  184. package/dist/middlewares/favicon.mjs.map +1 -1
  185. package/dist/middlewares/index.js +32 -30
  186. package/dist/middlewares/index.js.map +1 -1
  187. package/dist/middlewares/index.mjs +31 -31
  188. package/dist/middlewares/index.mjs.map +1 -1
  189. package/dist/middlewares/ip.js +6 -6
  190. package/dist/middlewares/ip.js.map +1 -1
  191. package/dist/middlewares/ip.mjs +5 -5
  192. package/dist/middlewares/ip.mjs.map +1 -1
  193. package/dist/middlewares/logger.js +10 -9
  194. package/dist/middlewares/logger.js.map +1 -1
  195. package/dist/middlewares/logger.mjs +9 -10
  196. package/dist/middlewares/logger.mjs.map +1 -1
  197. package/dist/middlewares/powered-by.js +13 -9
  198. package/dist/middlewares/powered-by.js.map +1 -1
  199. package/dist/middlewares/powered-by.mjs +12 -10
  200. package/dist/middlewares/powered-by.mjs.map +1 -1
  201. package/dist/middlewares/public.js +33 -29
  202. package/dist/middlewares/public.js.map +1 -1
  203. package/dist/middlewares/public.mjs +32 -28
  204. package/dist/middlewares/public.mjs.map +1 -1
  205. package/dist/middlewares/query.d.ts.map +1 -1
  206. package/dist/middlewares/query.js +35 -32
  207. package/dist/middlewares/query.js.map +1 -1
  208. package/dist/middlewares/query.mjs +34 -31
  209. package/dist/middlewares/query.mjs.map +1 -1
  210. package/dist/middlewares/response-time.js +10 -9
  211. package/dist/middlewares/response-time.js.map +1 -1
  212. package/dist/middlewares/response-time.mjs +9 -10
  213. package/dist/middlewares/response-time.mjs.map +1 -1
  214. package/dist/middlewares/responses.js +14 -12
  215. package/dist/middlewares/responses.js.map +1 -1
  216. package/dist/middlewares/responses.mjs +13 -13
  217. package/dist/middlewares/responses.mjs.map +1 -1
  218. package/dist/middlewares/security.d.ts.map +1 -1
  219. package/dist/middlewares/security.js +110 -65
  220. package/dist/middlewares/security.js.map +1 -1
  221. package/dist/middlewares/security.mjs +108 -63
  222. package/dist/middlewares/security.mjs.map +1 -1
  223. package/dist/middlewares/session.js +26 -25
  224. package/dist/middlewares/session.js.map +1 -1
  225. package/dist/middlewares/session.mjs +25 -24
  226. package/dist/middlewares/session.mjs.map +1 -1
  227. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +14 -11
  228. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  229. package/dist/migrations/database/5.0.0-discard-drafts.js +153 -35
  230. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
  231. package/dist/migrations/database/5.0.0-discard-drafts.mjs +152 -37
  232. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
  233. package/dist/migrations/draft-publish.d.ts +2 -2
  234. package/dist/migrations/draft-publish.d.ts.map +1 -1
  235. package/dist/migrations/draft-publish.js +61 -34
  236. package/dist/migrations/draft-publish.js.map +1 -1
  237. package/dist/migrations/draft-publish.mjs +60 -36
  238. package/dist/migrations/draft-publish.mjs.map +1 -1
  239. package/dist/migrations/i18n.d.ts +5 -0
  240. package/dist/migrations/i18n.d.ts.map +1 -0
  241. package/dist/migrations/i18n.js +71 -0
  242. package/dist/migrations/i18n.js.map +1 -0
  243. package/dist/migrations/i18n.mjs +68 -0
  244. package/dist/migrations/i18n.mjs.map +1 -0
  245. package/dist/migrations/index.d.ts +5 -0
  246. package/dist/migrations/index.d.ts.map +1 -0
  247. package/dist/migrations/index.js +29 -0
  248. package/dist/migrations/index.js.map +1 -0
  249. package/dist/migrations/index.mjs +26 -0
  250. package/dist/migrations/index.mjs.map +1 -0
  251. package/dist/package.json.js +182 -0
  252. package/dist/package.json.js.map +1 -0
  253. package/dist/package.json.mjs +159 -0
  254. package/dist/package.json.mjs.map +1 -0
  255. package/dist/providers/admin.d.ts.map +1 -1
  256. package/dist/providers/admin.js +27 -17
  257. package/dist/providers/admin.js.map +1 -1
  258. package/dist/providers/admin.mjs +26 -19
  259. package/dist/providers/admin.mjs.map +1 -1
  260. package/dist/providers/coreStore.js +13 -8
  261. package/dist/providers/coreStore.js.map +1 -1
  262. package/dist/providers/coreStore.mjs +12 -10
  263. package/dist/providers/coreStore.mjs.map +1 -1
  264. package/dist/providers/cron.js +19 -16
  265. package/dist/providers/cron.js.map +1 -1
  266. package/dist/providers/cron.mjs +18 -18
  267. package/dist/providers/cron.mjs.map +1 -1
  268. package/dist/providers/index.js +18 -9
  269. package/dist/providers/index.js.map +1 -1
  270. package/dist/providers/index.mjs +17 -10
  271. package/dist/providers/index.mjs.map +1 -1
  272. package/dist/providers/provider.js +4 -3
  273. package/dist/providers/provider.js.map +1 -1
  274. package/dist/providers/provider.mjs +3 -4
  275. package/dist/providers/provider.mjs.map +1 -1
  276. package/dist/providers/registries.js +37 -32
  277. package/dist/providers/registries.js.map +1 -1
  278. package/dist/providers/registries.mjs +36 -34
  279. package/dist/providers/registries.mjs.map +1 -1
  280. package/dist/providers/telemetry.js +19 -16
  281. package/dist/providers/telemetry.js.map +1 -1
  282. package/dist/providers/telemetry.mjs +18 -18
  283. package/dist/providers/telemetry.mjs.map +1 -1
  284. package/dist/providers/webhooks.js +28 -26
  285. package/dist/providers/webhooks.js.map +1 -1
  286. package/dist/providers/webhooks.mjs +27 -28
  287. package/dist/providers/webhooks.mjs.map +1 -1
  288. package/dist/registries/apis.js +23 -20
  289. package/dist/registries/apis.js.map +1 -1
  290. package/dist/registries/apis.mjs +22 -22
  291. package/dist/registries/apis.mjs.map +1 -1
  292. package/dist/registries/components.js +35 -37
  293. package/dist/registries/components.js.map +1 -1
  294. package/dist/registries/components.mjs +34 -39
  295. package/dist/registries/components.mjs.map +1 -1
  296. package/dist/registries/content-types.js +54 -59
  297. package/dist/registries/content-types.js.map +1 -1
  298. package/dist/registries/content-types.mjs +53 -61
  299. package/dist/registries/content-types.mjs.map +1 -1
  300. package/dist/registries/controllers.js +70 -71
  301. package/dist/registries/controllers.js.map +1 -1
  302. package/dist/registries/controllers.mjs +69 -73
  303. package/dist/registries/controllers.mjs.map +1 -1
  304. package/dist/registries/custom-fields.js +75 -65
  305. package/dist/registries/custom-fields.js.map +1 -1
  306. package/dist/registries/custom-fields.mjs +74 -67
  307. package/dist/registries/custom-fields.mjs.map +1 -1
  308. package/dist/registries/hooks.js +46 -49
  309. package/dist/registries/hooks.js.map +1 -1
  310. package/dist/registries/hooks.mjs +45 -51
  311. package/dist/registries/hooks.mjs.map +1 -1
  312. package/dist/registries/middlewares.js +49 -51
  313. package/dist/registries/middlewares.js.map +1 -1
  314. package/dist/registries/middlewares.mjs +48 -53
  315. package/dist/registries/middlewares.mjs.map +1 -1
  316. package/dist/registries/models.js +14 -13
  317. package/dist/registries/models.js.map +1 -1
  318. package/dist/registries/models.mjs +13 -14
  319. package/dist/registries/models.mjs.map +1 -1
  320. package/dist/registries/modules.js +39 -36
  321. package/dist/registries/modules.js.map +1 -1
  322. package/dist/registries/modules.mjs +38 -38
  323. package/dist/registries/modules.mjs.map +1 -1
  324. package/dist/registries/namespace.js +21 -20
  325. package/dist/registries/namespace.js.map +1 -1
  326. package/dist/registries/namespace.mjs +20 -23
  327. package/dist/registries/namespace.mjs.map +1 -1
  328. package/dist/registries/plugins.js +23 -20
  329. package/dist/registries/plugins.js.map +1 -1
  330. package/dist/registries/plugins.mjs +22 -22
  331. package/dist/registries/plugins.mjs.map +1 -1
  332. package/dist/registries/policies.d.ts +1 -1
  333. package/dist/registries/policies.d.ts.map +1 -1
  334. package/dist/registries/policies.js +103 -96
  335. package/dist/registries/policies.js.map +1 -1
  336. package/dist/registries/policies.mjs +102 -98
  337. package/dist/registries/policies.mjs.map +1 -1
  338. package/dist/registries/sanitizers.js +23 -22
  339. package/dist/registries/sanitizers.js.map +1 -1
  340. package/dist/registries/sanitizers.mjs +22 -22
  341. package/dist/registries/sanitizers.mjs.map +1 -1
  342. package/dist/registries/services.js +71 -71
  343. package/dist/registries/services.js.map +1 -1
  344. package/dist/registries/services.mjs +70 -73
  345. package/dist/registries/services.mjs.map +1 -1
  346. package/dist/registries/validators.js +23 -22
  347. package/dist/registries/validators.js.map +1 -1
  348. package/dist/registries/validators.mjs +22 -22
  349. package/dist/registries/validators.mjs.map +1 -1
  350. package/dist/services/auth/index.js +74 -74
  351. package/dist/services/auth/index.js.map +1 -1
  352. package/dist/services/auth/index.mjs +73 -74
  353. package/dist/services/auth/index.mjs.map +1 -1
  354. package/dist/services/config.js +47 -43
  355. package/dist/services/config.js.map +1 -1
  356. package/dist/services/config.mjs +46 -44
  357. package/dist/services/config.mjs.map +1 -1
  358. package/dist/services/content-api/index.d.ts +10 -12
  359. package/dist/services/content-api/index.d.ts.map +1 -1
  360. package/dist/services/content-api/index.js +80 -79
  361. package/dist/services/content-api/index.js.map +1 -1
  362. package/dist/services/content-api/index.mjs +79 -79
  363. package/dist/services/content-api/index.mjs.map +1 -1
  364. package/dist/services/content-api/permissions/engine.js +8 -5
  365. package/dist/services/content-api/permissions/engine.js.map +1 -1
  366. package/dist/services/content-api/permissions/engine.mjs +7 -5
  367. package/dist/services/content-api/permissions/engine.mjs.map +1 -1
  368. package/dist/services/content-api/permissions/index.d.ts +10 -12
  369. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  370. package/dist/services/content-api/permissions/index.js +101 -81
  371. package/dist/services/content-api/permissions/index.js.map +1 -1
  372. package/dist/services/content-api/permissions/index.mjs +100 -81
  373. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  374. package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
  375. package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
  376. package/dist/services/content-api/permissions/providers/action.js +17 -14
  377. package/dist/services/content-api/permissions/providers/action.js.map +1 -1
  378. package/dist/services/content-api/permissions/providers/action.mjs +16 -16
  379. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
  380. package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
  381. package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
  382. package/dist/services/content-api/permissions/providers/condition.js +17 -14
  383. package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
  384. package/dist/services/content-api/permissions/providers/condition.mjs +16 -16
  385. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
  386. package/dist/services/core-store.js +115 -95
  387. package/dist/services/core-store.js.map +1 -1
  388. package/dist/services/core-store.mjs +114 -97
  389. package/dist/services/core-store.mjs.map +1 -1
  390. package/dist/services/cron.d.ts +3 -3
  391. package/dist/services/cron.d.ts.map +1 -1
  392. package/dist/services/cron.js +74 -60
  393. package/dist/services/cron.js.map +1 -1
  394. package/dist/services/cron.mjs +73 -62
  395. package/dist/services/cron.mjs.map +1 -1
  396. package/dist/services/custom-fields.js +9 -7
  397. package/dist/services/custom-fields.js.map +1 -1
  398. package/dist/services/custom-fields.mjs +8 -9
  399. package/dist/services/custom-fields.mjs.map +1 -1
  400. package/dist/services/document-service/attributes/index.js +23 -18
  401. package/dist/services/document-service/attributes/index.js.map +1 -1
  402. package/dist/services/document-service/attributes/index.mjs +22 -19
  403. package/dist/services/document-service/attributes/index.mjs.map +1 -1
  404. package/dist/services/document-service/attributes/transforms.js +16 -15
  405. package/dist/services/document-service/attributes/transforms.js.map +1 -1
  406. package/dist/services/document-service/attributes/transforms.mjs +15 -15
  407. package/dist/services/document-service/attributes/transforms.mjs.map +1 -1
  408. package/dist/services/document-service/common.d.ts +1 -1
  409. package/dist/services/document-service/common.d.ts.map +1 -1
  410. package/dist/services/document-service/common.js +5 -4
  411. package/dist/services/document-service/common.js.map +1 -1
  412. package/dist/services/document-service/common.mjs +4 -5
  413. package/dist/services/document-service/common.mjs.map +1 -1
  414. package/dist/services/document-service/components.d.ts.map +1 -1
  415. package/dist/services/document-service/components.js +257 -259
  416. package/dist/services/document-service/components.js.map +1 -1
  417. package/dist/services/document-service/components.mjs +254 -262
  418. package/dist/services/document-service/components.mjs.map +1 -1
  419. package/dist/services/document-service/draft-and-publish.d.ts +1 -1
  420. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  421. package/dist/services/document-service/draft-and-publish.js +94 -54
  422. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  423. package/dist/services/document-service/draft-and-publish.mjs +87 -54
  424. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  425. package/dist/services/document-service/entries.d.ts +2 -2
  426. package/dist/services/document-service/entries.d.ts.map +1 -1
  427. package/dist/services/document-service/entries.js +109 -92
  428. package/dist/services/document-service/entries.js.map +1 -1
  429. package/dist/services/document-service/entries.mjs +108 -93
  430. package/dist/services/document-service/entries.mjs.map +1 -1
  431. package/dist/services/document-service/events.d.ts +1 -1
  432. package/dist/services/document-service/events.d.ts.map +1 -1
  433. package/dist/services/document-service/events.js +52 -40
  434. package/dist/services/document-service/events.js.map +1 -1
  435. package/dist/services/document-service/events.mjs +51 -41
  436. package/dist/services/document-service/events.mjs.map +1 -1
  437. package/dist/services/document-service/index.d.ts +2 -1
  438. package/dist/services/document-service/index.d.ts.map +1 -1
  439. package/dist/services/document-service/index.js +53 -32
  440. package/dist/services/document-service/index.js.map +1 -1
  441. package/dist/services/document-service/index.mjs +52 -33
  442. package/dist/services/document-service/index.mjs.map +1 -1
  443. package/dist/services/document-service/internationalization.js +66 -50
  444. package/dist/services/document-service/internationalization.js.map +1 -1
  445. package/dist/services/document-service/internationalization.mjs +61 -50
  446. package/dist/services/document-service/internationalization.mjs.map +1 -1
  447. package/dist/services/document-service/middlewares/errors.js +23 -19
  448. package/dist/services/document-service/middlewares/errors.js.map +1 -1
  449. package/dist/services/document-service/middlewares/errors.mjs +22 -20
  450. package/dist/services/document-service/middlewares/errors.mjs.map +1 -1
  451. package/dist/services/document-service/middlewares/middleware-manager.js +46 -44
  452. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -1
  453. package/dist/services/document-service/middlewares/middleware-manager.mjs +45 -45
  454. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -1
  455. package/dist/services/document-service/params.js +11 -5
  456. package/dist/services/document-service/params.js.map +1 -1
  457. package/dist/services/document-service/params.mjs +10 -6
  458. package/dist/services/document-service/params.mjs.map +1 -1
  459. package/dist/services/document-service/repository.d.ts.map +1 -1
  460. package/dist/services/document-service/repository.js +355 -269
  461. package/dist/services/document-service/repository.js.map +1 -1
  462. package/dist/services/document-service/repository.mjs +354 -270
  463. package/dist/services/document-service/repository.mjs.map +1 -1
  464. package/dist/services/document-service/transform/data.js +22 -12
  465. package/dist/services/document-service/transform/data.js.map +1 -1
  466. package/dist/services/document-service/transform/data.mjs +21 -13
  467. package/dist/services/document-service/transform/data.mjs.map +1 -1
  468. package/dist/services/document-service/transform/fields.js +26 -17
  469. package/dist/services/document-service/transform/fields.js.map +1 -1
  470. package/dist/services/document-service/transform/fields.mjs +25 -18
  471. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  472. package/dist/services/document-service/transform/id-map.d.ts +1 -1
  473. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  474. package/dist/services/document-service/transform/id-map.js +116 -69
  475. package/dist/services/document-service/transform/id-map.js.map +1 -1
  476. package/dist/services/document-service/transform/id-map.mjs +115 -70
  477. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  478. package/dist/services/document-service/transform/id-transform.d.ts +1 -1
  479. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  480. package/dist/services/document-service/transform/id-transform.js +38 -30
  481. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  482. package/dist/services/document-service/transform/id-transform.mjs +36 -30
  483. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  484. package/dist/services/document-service/transform/populate.js +23 -18
  485. package/dist/services/document-service/transform/populate.js.map +1 -1
  486. package/dist/services/document-service/transform/populate.mjs +22 -19
  487. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  488. package/dist/services/document-service/transform/query.js +11 -6
  489. package/dist/services/document-service/transform/query.js.map +1 -1
  490. package/dist/services/document-service/transform/query.mjs +10 -7
  491. package/dist/services/document-service/transform/query.mjs.map +1 -1
  492. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  493. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  494. package/dist/services/document-service/transform/relations/extract/data-ids.js +71 -48
  495. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  496. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +70 -49
  497. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  498. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  499. package/dist/services/document-service/transform/relations/transform/data-ids.js +97 -63
  500. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  501. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +96 -64
  502. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  503. package/dist/services/document-service/transform/relations/transform/default-locale.js +47 -29
  504. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -1
  505. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +46 -30
  506. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -1
  507. package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
  508. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  509. package/dist/services/document-service/transform/relations/utils/dp.js +52 -26
  510. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  511. package/dist/services/document-service/transform/relations/utils/dp.mjs +51 -27
  512. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  513. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
  514. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  515. package/dist/services/document-service/transform/relations/utils/i18n.js +20 -18
  516. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  517. package/dist/services/document-service/transform/relations/utils/i18n.mjs +19 -21
  518. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  519. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
  520. package/dist/services/document-service/transform/relations/utils/map-relation.js +118 -79
  521. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -1
  522. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +115 -79
  523. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -1
  524. package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
  525. package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -0
  526. package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
  527. package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
  528. package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
  529. package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
  530. package/dist/services/document-service/utils/populate.d.ts +1 -1
  531. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  532. package/dist/services/document-service/utils/populate.js +67 -37
  533. package/dist/services/document-service/utils/populate.js.map +1 -1
  534. package/dist/services/document-service/utils/populate.mjs +66 -38
  535. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  536. package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
  537. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  538. package/dist/services/document-service/utils/unidirectional-relations.js +116 -0
  539. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
  540. package/dist/services/document-service/utils/unidirectional-relations.mjs +113 -0
  541. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
  542. package/dist/services/entity-service/index.js +230 -161
  543. package/dist/services/entity-service/index.js.map +1 -1
  544. package/dist/services/entity-service/index.mjs +229 -160
  545. package/dist/services/entity-service/index.mjs.map +1 -1
  546. package/dist/services/entity-validator/blocks-validator.d.ts +1 -2
  547. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  548. package/dist/services/entity-validator/blocks-validator.js +137 -104
  549. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  550. package/dist/services/entity-validator/blocks-validator.mjs +135 -105
  551. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  552. package/dist/services/entity-validator/index.d.ts +15 -1
  553. package/dist/services/entity-validator/index.d.ts.map +1 -1
  554. package/dist/services/entity-validator/index.js +362 -311
  555. package/dist/services/entity-validator/index.js.map +1 -1
  556. package/dist/services/entity-validator/index.mjs +358 -308
  557. package/dist/services/entity-validator/index.mjs.map +1 -1
  558. package/dist/services/entity-validator/validators.d.ts +36 -25
  559. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  560. package/dist/services/entity-validator/validators.js +283 -110
  561. package/dist/services/entity-validator/validators.js.map +1 -1
  562. package/dist/services/entity-validator/validators.mjs +274 -108
  563. package/dist/services/entity-validator/validators.mjs.map +1 -1
  564. package/dist/services/errors.js +65 -65
  565. package/dist/services/errors.js.map +1 -1
  566. package/dist/services/errors.mjs +64 -66
  567. package/dist/services/errors.mjs.map +1 -1
  568. package/dist/services/event-hub.js +82 -69
  569. package/dist/services/event-hub.js.map +1 -1
  570. package/dist/services/event-hub.mjs +81 -71
  571. package/dist/services/event-hub.mjs.map +1 -1
  572. package/dist/services/features.js +19 -14
  573. package/dist/services/features.js.map +1 -1
  574. package/dist/services/features.mjs +18 -15
  575. package/dist/services/features.mjs.map +1 -1
  576. package/dist/services/fs.js +41 -40
  577. package/dist/services/fs.js.map +1 -1
  578. package/dist/services/fs.mjs +40 -39
  579. package/dist/services/fs.mjs.map +1 -1
  580. package/dist/services/metrics/admin-user-hash.js +13 -11
  581. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  582. package/dist/services/metrics/admin-user-hash.mjs +12 -10
  583. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  584. package/dist/services/metrics/index.js +46 -40
  585. package/dist/services/metrics/index.js.map +1 -1
  586. package/dist/services/metrics/index.mjs +45 -42
  587. package/dist/services/metrics/index.mjs.map +1 -1
  588. package/dist/services/metrics/is-truthy.js +13 -6
  589. package/dist/services/metrics/is-truthy.js.map +1 -1
  590. package/dist/services/metrics/is-truthy.mjs +12 -6
  591. package/dist/services/metrics/is-truthy.mjs.map +1 -1
  592. package/dist/services/metrics/middleware.d.ts.map +1 -1
  593. package/dist/services/metrics/middleware.js +37 -22
  594. package/dist/services/metrics/middleware.js.map +1 -1
  595. package/dist/services/metrics/middleware.mjs +36 -24
  596. package/dist/services/metrics/middleware.mjs.map +1 -1
  597. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  598. package/dist/services/metrics/rate-limiter.js +24 -19
  599. package/dist/services/metrics/rate-limiter.js.map +1 -1
  600. package/dist/services/metrics/rate-limiter.mjs +23 -21
  601. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  602. package/dist/services/metrics/sender.js +78 -69
  603. package/dist/services/metrics/sender.js.map +1 -1
  604. package/dist/services/metrics/sender.mjs +77 -64
  605. package/dist/services/metrics/sender.mjs.map +1 -1
  606. package/dist/services/query-params.js +13 -10
  607. package/dist/services/query-params.js.map +1 -1
  608. package/dist/services/query-params.mjs +12 -12
  609. package/dist/services/query-params.mjs.map +1 -1
  610. package/dist/services/reloader.js +35 -32
  611. package/dist/services/reloader.js.map +1 -1
  612. package/dist/services/reloader.mjs +34 -33
  613. package/dist/services/reloader.mjs.map +1 -1
  614. package/dist/services/request-context.js +11 -8
  615. package/dist/services/request-context.js.map +1 -1
  616. package/dist/services/request-context.mjs +10 -10
  617. package/dist/services/request-context.mjs.map +1 -1
  618. package/dist/services/server/admin-api.js +11 -10
  619. package/dist/services/server/admin-api.js.map +1 -1
  620. package/dist/services/server/admin-api.mjs +10 -11
  621. package/dist/services/server/admin-api.mjs.map +1 -1
  622. package/dist/services/server/api.js +33 -27
  623. package/dist/services/server/api.js.map +1 -1
  624. package/dist/services/server/api.mjs +32 -26
  625. package/dist/services/server/api.mjs.map +1 -1
  626. package/dist/services/server/compose-endpoint.js +116 -105
  627. package/dist/services/server/compose-endpoint.js.map +1 -1
  628. package/dist/services/server/compose-endpoint.mjs +115 -105
  629. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  630. package/dist/services/server/content-api.js +11 -9
  631. package/dist/services/server/content-api.js.map +1 -1
  632. package/dist/services/server/content-api.mjs +10 -10
  633. package/dist/services/server/content-api.mjs.map +1 -1
  634. package/dist/services/server/http-server.js +48 -44
  635. package/dist/services/server/http-server.js.map +1 -1
  636. package/dist/services/server/http-server.mjs +47 -43
  637. package/dist/services/server/http-server.mjs.map +1 -1
  638. package/dist/services/server/index.js +85 -82
  639. package/dist/services/server/index.js.map +1 -1
  640. package/dist/services/server/index.mjs +84 -81
  641. package/dist/services/server/index.mjs.map +1 -1
  642. package/dist/services/server/koa.js +49 -47
  643. package/dist/services/server/koa.js.map +1 -1
  644. package/dist/services/server/koa.mjs +48 -44
  645. package/dist/services/server/koa.mjs.map +1 -1
  646. package/dist/services/server/middleware.js +86 -82
  647. package/dist/services/server/middleware.js.map +1 -1
  648. package/dist/services/server/middleware.mjs +85 -82
  649. package/dist/services/server/middleware.mjs.map +1 -1
  650. package/dist/services/server/policy.js +24 -17
  651. package/dist/services/server/policy.js.map +1 -1
  652. package/dist/services/server/policy.mjs +23 -18
  653. package/dist/services/server/policy.mjs.map +1 -1
  654. package/dist/services/server/register-middlewares.js +68 -61
  655. package/dist/services/server/register-middlewares.js.map +1 -1
  656. package/dist/services/server/register-middlewares.mjs +67 -63
  657. package/dist/services/server/register-middlewares.mjs.map +1 -1
  658. package/dist/services/server/register-routes.js +90 -67
  659. package/dist/services/server/register-routes.js.map +1 -1
  660. package/dist/services/server/register-routes.mjs +89 -67
  661. package/dist/services/server/register-routes.mjs.map +1 -1
  662. package/dist/services/server/routing.js +94 -81
  663. package/dist/services/server/routing.js.map +1 -1
  664. package/dist/services/server/routing.mjs +93 -81
  665. package/dist/services/server/routing.mjs.map +1 -1
  666. package/dist/services/utils/dynamic-zones.js +13 -14
  667. package/dist/services/utils/dynamic-zones.js.map +1 -1
  668. package/dist/services/utils/dynamic-zones.mjs +12 -16
  669. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  670. package/dist/services/webhook-runner.d.ts +2 -1
  671. package/dist/services/webhook-runner.d.ts.map +1 -1
  672. package/dist/services/webhook-runner.js +124 -122
  673. package/dist/services/webhook-runner.js.map +1 -1
  674. package/dist/services/webhook-runner.mjs +123 -121
  675. package/dist/services/webhook-runner.mjs.map +1 -1
  676. package/dist/services/webhook-store.d.ts +2 -8
  677. package/dist/services/webhook-store.d.ts.map +1 -1
  678. package/dist/services/webhook-store.js +132 -99
  679. package/dist/services/webhook-store.js.map +1 -1
  680. package/dist/services/webhook-store.mjs +131 -101
  681. package/dist/services/webhook-store.mjs.map +1 -1
  682. package/dist/services/worker-queue.js +44 -49
  683. package/dist/services/worker-queue.js.map +1 -1
  684. package/dist/services/worker-queue.mjs +43 -49
  685. package/dist/services/worker-queue.mjs.map +1 -1
  686. package/dist/utils/convert-custom-field-type.js +17 -20
  687. package/dist/utils/convert-custom-field-type.js.map +1 -1
  688. package/dist/utils/convert-custom-field-type.mjs +16 -21
  689. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  690. package/dist/utils/cron.js +64 -30
  691. package/dist/utils/cron.js.map +1 -1
  692. package/dist/utils/cron.mjs +63 -31
  693. package/dist/utils/cron.mjs.map +1 -1
  694. package/dist/utils/fetch.d.ts.map +1 -1
  695. package/dist/utils/fetch.js +24 -17
  696. package/dist/utils/fetch.js.map +1 -1
  697. package/dist/utils/fetch.mjs +23 -18
  698. package/dist/utils/fetch.mjs.map +1 -1
  699. package/dist/utils/filepath-to-prop-path.d.ts +1 -1
  700. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
  701. package/dist/utils/filepath-to-prop-path.js +22 -9
  702. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  703. package/dist/utils/filepath-to-prop-path.mjs +20 -7
  704. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  705. package/dist/utils/is-initialized.js +21 -12
  706. package/dist/utils/is-initialized.js.map +1 -1
  707. package/dist/utils/is-initialized.mjs +20 -13
  708. package/dist/utils/is-initialized.mjs.map +1 -1
  709. package/dist/utils/lifecycles.js +6 -5
  710. package/dist/utils/lifecycles.js.map +1 -1
  711. package/dist/utils/lifecycles.mjs +5 -6
  712. package/dist/utils/lifecycles.mjs.map +1 -1
  713. package/dist/utils/load-config-file.js +40 -38
  714. package/dist/utils/load-config-file.js.map +1 -1
  715. package/dist/utils/load-config-file.mjs +39 -36
  716. package/dist/utils/load-config-file.mjs.map +1 -1
  717. package/dist/utils/load-files.js +40 -35
  718. package/dist/utils/load-files.js.map +1 -1
  719. package/dist/utils/load-files.mjs +39 -32
  720. package/dist/utils/load-files.mjs.map +1 -1
  721. package/dist/utils/open-browser.js +8 -8
  722. package/dist/utils/open-browser.js.map +1 -1
  723. package/dist/utils/open-browser.mjs +7 -7
  724. package/dist/utils/open-browser.mjs.map +1 -1
  725. package/dist/utils/resolve-working-dirs.js +23 -10
  726. package/dist/utils/resolve-working-dirs.js.map +1 -1
  727. package/dist/utils/resolve-working-dirs.mjs +22 -9
  728. package/dist/utils/resolve-working-dirs.mjs.map +1 -1
  729. package/dist/utils/signals.js +20 -14
  730. package/dist/utils/signals.js.map +1 -1
  731. package/dist/utils/signals.mjs +19 -15
  732. package/dist/utils/signals.mjs.map +1 -1
  733. package/dist/utils/startup-logger.d.ts.map +1 -1
  734. package/dist/utils/startup-logger.js +107 -78
  735. package/dist/utils/startup-logger.js.map +1 -1
  736. package/dist/utils/startup-logger.mjs +106 -75
  737. package/dist/utils/startup-logger.mjs.map +1 -1
  738. package/dist/utils/transform-content-types-to-models.d.ts +355 -23
  739. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  740. package/dist/utils/transform-content-types-to-models.js +350 -248
  741. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  742. package/dist/utils/transform-content-types-to-models.mjs +349 -256
  743. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  744. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  745. package/dist/utils/update-notifier/index.js +68 -73
  746. package/dist/utils/update-notifier/index.js.map +1 -1
  747. package/dist/utils/update-notifier/index.mjs +67 -67
  748. package/dist/utils/update-notifier/index.mjs.map +1 -1
  749. package/package.json +32 -31
@@ -1,77 +1,92 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const _ = require("lodash");
4
- const strapiUtils = require("@strapi/utils");
5
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
6
- const ___default = /* @__PURE__ */ _interopDefault(_);
1
+ 'use strict';
2
+
3
+ var _ = require('lodash');
4
+ var strapiUtils = require('@strapi/utils');
5
+
7
6
  const LIFECYCLES = [
8
- "beforeCreate",
9
- "afterCreate",
10
- "beforeFindOne",
11
- "afterFindOne",
12
- "beforeFindMany",
13
- "afterFindMany",
14
- "beforeCount",
15
- "afterCount",
16
- "beforeCreateMany",
17
- "afterCreateMany",
18
- "beforeUpdate",
19
- "afterUpdate",
20
- "beforeUpdateMany",
21
- "afterUpdateMany",
22
- "beforeDelete",
23
- "afterDelete",
24
- "beforeDeleteMany",
25
- "afterDeleteMany"
7
+ 'beforeCreate',
8
+ 'afterCreate',
9
+ 'beforeFindOne',
10
+ 'afterFindOne',
11
+ 'beforeFindMany',
12
+ 'afterFindMany',
13
+ 'beforeCount',
14
+ 'afterCount',
15
+ 'beforeCreateMany',
16
+ 'afterCreateMany',
17
+ 'beforeUpdate',
18
+ 'afterUpdate',
19
+ 'beforeUpdateMany',
20
+ 'afterUpdateMany',
21
+ 'beforeDelete',
22
+ 'afterDelete',
23
+ 'beforeDeleteMany',
24
+ 'afterDeleteMany'
26
25
  ];
27
- const GRAPHQL_ENUM_REGEX = /^[_A-Za-z][_0-9A-Za-z]*$/;
28
- const lifecyclesShape = ___default.default.mapValues(___default.default.keyBy(LIFECYCLES), () => strapiUtils.yup.mixed().nullable().isFunction());
26
+ /**
27
+ * For enumerations the least common denomiator is GraphQL, where
28
+ * values needs to match the secure name regex:
29
+ * GraphQL Spec https://spec.graphql.org/June2018/#sec-Names
30
+ *
31
+ * Therefore we need to make sure our users only use values, which
32
+ * can be returned by GraphQL, by checking the regressed values
33
+ * agains the GraphQL regex.
34
+ *
35
+ * TODO V5: check if we can avoid this coupling by moving this logic
36
+ * into the GraphQL plugin.
37
+ */ const GRAPHQL_ENUM_REGEX = /^[_A-Za-z][_0-9A-Za-z]*$/;
38
+ const lifecyclesShape = _.mapValues(_.keyBy(LIFECYCLES), ()=>strapiUtils.yup.mixed().nullable().isFunction());
29
39
  const contentTypeSchemaValidator = strapiUtils.yup.object().shape({
30
- schema: strapiUtils.yup.object().shape({
31
- info: strapiUtils.yup.object().shape({
32
- displayName: strapiUtils.yup.string().required(),
33
- singularName: strapiUtils.yup.string().isKebabCase().required(),
34
- pluralName: strapiUtils.yup.string().isKebabCase().required()
35
- }).required(),
36
- attributes: strapiUtils.yup.object().test({
37
- name: "valuesCollide",
38
- message: "Some values collide when normalized",
39
- test(attributes) {
40
- for (const attrName of Object.keys(attributes)) {
41
- const attr = attributes[attrName];
42
- if (attr.type === "enumeration") {
43
- const regressedValues = attr.enum.map(strapiUtils.strings.toRegressedEnumValue);
44
- if (!regressedValues.every((value) => GRAPHQL_ENUM_REGEX.test(value))) {
45
- const message = `Invalid enumeration value. Values should have at least one alphabetical character preceding the first occurence of a number. Update your enumeration '${attrName}'.`;
46
- return this.createError({ message });
40
+ schema: strapiUtils.yup.object().shape({
41
+ info: strapiUtils.yup.object().shape({
42
+ displayName: strapiUtils.yup.string().required(),
43
+ singularName: strapiUtils.yup.string().isKebabCase().required(),
44
+ pluralName: strapiUtils.yup.string().isKebabCase().required()
45
+ }).required(),
46
+ attributes: strapiUtils.yup.object().test({
47
+ name: 'valuesCollide',
48
+ message: 'Some values collide when normalized',
49
+ test (attributes) {
50
+ for (const attrName of Object.keys(attributes)){
51
+ const attr = attributes[attrName];
52
+ if (attr.type === 'enumeration') {
53
+ const regressedValues = attr.enum.map(strapiUtils.strings.toRegressedEnumValue);
54
+ // should match the GraphQL regex
55
+ if (!regressedValues.every((value)=>GRAPHQL_ENUM_REGEX.test(value))) {
56
+ const message = `Invalid enumeration value. Values should have at least one alphabetical character preceding the first occurence of a number. Update your enumeration '${attrName}'.`;
57
+ return this.createError({
58
+ message
59
+ });
60
+ }
61
+ // should not contain empty values
62
+ if (regressedValues.some((value)=>value === '')) {
63
+ return this.createError({
64
+ message: `At least one value of the enumeration '${attrName}' appears to be empty. Only alphanumerical characters are taken into account.`
65
+ });
66
+ }
67
+ // should not collide
68
+ const duplicates = _.uniq(regressedValues.filter((value, index, values)=>values.indexOf(value) !== index));
69
+ if (duplicates.length) {
70
+ const message = `Some enumeration values of the field '${attrName}' collide when normalized: ${duplicates.join(', ')}. Please modify your enumeration.`;
71
+ return this.createError({
72
+ message
73
+ });
74
+ }
75
+ }
76
+ }
77
+ return true;
47
78
  }
48
- if (regressedValues.some((value) => value === "")) {
49
- return this.createError({
50
- message: `At least one value of the enumeration '${attrName}' appears to be empty. Only alphanumerical characters are taken into account.`
51
- });
52
- }
53
- const duplicates = ___default.default.uniq(
54
- regressedValues.filter(
55
- (value, index, values) => values.indexOf(value) !== index
56
- )
57
- );
58
- if (duplicates.length) {
59
- const message = `Some enumeration values of the field '${attrName}' collide when normalized: ${duplicates.join(
60
- ", "
61
- )}. Please modify your enumeration.`;
62
- return this.createError({ message });
63
- }
64
- }
65
- }
66
- return true;
67
- }
68
- })
69
- }),
70
- actions: strapiUtils.yup.object().onlyContainsFunctions(),
71
- lifecycles: strapiUtils.yup.object().shape(lifecyclesShape).noUnknown()
79
+ })
80
+ }),
81
+ actions: strapiUtils.yup.object().onlyContainsFunctions(),
82
+ lifecycles: strapiUtils.yup.object().shape(lifecyclesShape).noUnknown()
72
83
  });
73
- const validateContentTypeDefinition = (data) => {
74
- return contentTypeSchemaValidator.validateSync(data, { strict: true, abortEarly: false });
84
+ const validateContentTypeDefinition = (data)=>{
85
+ return contentTypeSchemaValidator.validateSync(data, {
86
+ strict: true,
87
+ abortEarly: false
88
+ });
75
89
  };
90
+
76
91
  exports.validateContentTypeDefinition = validateContentTypeDefinition;
77
92
  //# sourceMappingURL=validator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sources":["../../../src/domain/content-type/validator.ts"],"sourcesContent":["import _ from 'lodash';\nimport { yup, strings } from '@strapi/utils';\nimport type { Schema } from '@strapi/types';\n\nconst LIFECYCLES = [\n 'beforeCreate',\n 'afterCreate',\n 'beforeFindOne',\n 'afterFindOne',\n 'beforeFindMany',\n 'afterFindMany',\n 'beforeCount',\n 'afterCount',\n 'beforeCreateMany',\n 'afterCreateMany',\n 'beforeUpdate',\n 'afterUpdate',\n 'beforeUpdateMany',\n 'afterUpdateMany',\n 'beforeDelete',\n 'afterDelete',\n 'beforeDeleteMany',\n 'afterDeleteMany',\n] as const;\n\n/**\n * For enumerations the least common denomiator is GraphQL, where\n * values needs to match the secure name regex:\n * GraphQL Spec https://spec.graphql.org/June2018/#sec-Names\n *\n * Therefore we need to make sure our users only use values, which\n * can be returned by GraphQL, by checking the regressed values\n * agains the GraphQL regex.\n *\n * TODO V5: check if we can avoid this coupling by moving this logic\n * into the GraphQL plugin.\n */\nconst GRAPHQL_ENUM_REGEX = /^[_A-Za-z][_0-9A-Za-z]*$/;\n\nconst lifecyclesShape = _.mapValues(_.keyBy(LIFECYCLES), () => yup.mixed().nullable().isFunction());\n\nconst contentTypeSchemaValidator = yup.object().shape({\n schema: yup.object().shape({\n info: yup\n .object()\n .shape({\n displayName: yup.string().required(),\n singularName: yup.string().isKebabCase().required(),\n pluralName: yup.string().isKebabCase().required(),\n })\n .required(),\n attributes: yup.object().test({\n name: 'valuesCollide',\n message: 'Some values collide when normalized',\n test(attributes: Schema.ContentType['attributes']) {\n for (const attrName of Object.keys(attributes)) {\n const attr = attributes[attrName];\n if (attr.type === 'enumeration') {\n const regressedValues = attr.enum.map(strings.toRegressedEnumValue);\n\n // should match the GraphQL regex\n if (!regressedValues.every((value: string) => GRAPHQL_ENUM_REGEX.test(value))) {\n const message = `Invalid enumeration value. Values should have at least one alphabetical character preceding the first occurence of a number. Update your enumeration '${attrName}'.`;\n\n return this.createError({ message });\n }\n\n // should not contain empty values\n if (regressedValues.some((value: string) => value === '')) {\n return this.createError({\n message: `At least one value of the enumeration '${attrName}' appears to be empty. Only alphanumerical characters are taken into account.`,\n });\n }\n\n // should not collide\n const duplicates = _.uniq(\n regressedValues.filter(\n (value: string, index: number, values: string[]) => values.indexOf(value) !== index\n )\n );\n\n if (duplicates.length) {\n const message = `Some enumeration values of the field '${attrName}' collide when normalized: ${duplicates.join(\n ', '\n )}. Please modify your enumeration.`;\n\n return this.createError({ message });\n }\n }\n }\n\n return true;\n },\n }),\n }),\n actions: yup.object().onlyContainsFunctions(),\n lifecycles: yup.object().shape(lifecyclesShape).noUnknown(),\n});\n\nconst validateContentTypeDefinition = (data: unknown) => {\n return contentTypeSchemaValidator.validateSync(data, { strict: true, abortEarly: false });\n};\n\nexport { validateContentTypeDefinition };\n"],"names":["_","yup","strings"],"mappings":";;;;;;AAIA,MAAM,aAAa;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAcA,MAAM,qBAAqB;AAE3B,MAAM,kBAAkBA,WAAAA,QAAE,UAAUA,WAAA,QAAE,MAAM,UAAU,GAAG,MAAMC,YAAAA,IAAI,MAAM,EAAE,SAAS,EAAE,WAAY,CAAA;AAElG,MAAM,6BAA6BA,YAAA,IAAI,OAAO,EAAE,MAAM;AAAA,EACpD,QAAQA,YAAA,IAAI,OAAO,EAAE,MAAM;AAAA,IACzB,MAAMA,YAAA,IACH,OAAO,EACP,MAAM;AAAA,MACL,aAAaA,YAAA,IAAI,OAAO,EAAE,SAAS;AAAA,MACnC,cAAcA,YAAAA,IAAI,OAAS,EAAA,YAAA,EAAc,SAAS;AAAA,MAClD,YAAYA,YAAAA,IAAI,OAAS,EAAA,YAAA,EAAc,SAAS;AAAA,IACjD,CAAA,EACA,SAAS;AAAA,IACZ,YAAYA,YAAA,IAAI,OAAO,EAAE,KAAK;AAAA,MAC5B,MAAM;AAAA,MACN,SAAS;AAAA,MACT,KAAK,YAA8C;AACjD,mBAAW,YAAY,OAAO,KAAK,UAAU,GAAG;AACxC,gBAAA,OAAO,WAAW,QAAQ;AAC5B,cAAA,KAAK,SAAS,eAAe;AAC/B,kBAAM,kBAAkB,KAAK,KAAK,IAAIC,YAAAA,QAAQ,oBAAoB;AAG9D,gBAAA,CAAC,gBAAgB,MAAM,CAAC,UAAkB,mBAAmB,KAAK,KAAK,CAAC,GAAG;AACvE,oBAAA,UAAU,yJAAyJ,QAAQ;AAEjL,qBAAO,KAAK,YAAY,EAAE,QAAS,CAAA;AAAA,YACrC;AAGA,gBAAI,gBAAgB,KAAK,CAAC,UAAkB,UAAU,EAAE,GAAG;AACzD,qBAAO,KAAK,YAAY;AAAA,gBACtB,SAAS,0CAA0C,QAAQ;AAAA,cAAA,CAC5D;AAAA,YACH;AAGA,kBAAM,aAAaF,WAAAA,QAAE;AAAA,cACnB,gBAAgB;AAAA,gBACd,CAAC,OAAe,OAAe,WAAqB,OAAO,QAAQ,KAAK,MAAM;AAAA,cAChF;AAAA,YAAA;AAGF,gBAAI,WAAW,QAAQ;AACrB,oBAAM,UAAU,yCAAyC,QAAQ,8BAA8B,WAAW;AAAA,gBACxG;AAAA,cACD,CAAA;AAED,qBAAO,KAAK,YAAY,EAAE,QAAS,CAAA;AAAA,YACrC;AAAA,UACF;AAAA,QACF;AAEO,eAAA;AAAA,MACT;AAAA,IAAA,CACD;AAAA,EAAA,CACF;AAAA,EACD,SAASC,YAAA,IAAI,OAAO,EAAE,sBAAsB;AAAA,EAC5C,YAAYA,YAAI,IAAA,OAAA,EAAS,MAAM,eAAe,EAAE,UAAU;AAC5D,CAAC;AAEK,MAAA,gCAAgC,CAAC,SAAkB;AAChD,SAAA,2BAA2B,aAAa,MAAM,EAAE,QAAQ,MAAM,YAAY,OAAO;AAC1F;;"}
1
+ {"version":3,"file":"validator.js","sources":["../../../src/domain/content-type/validator.ts"],"sourcesContent":["import _ from 'lodash';\nimport { yup, strings } from '@strapi/utils';\nimport type { Schema } from '@strapi/types';\n\nconst LIFECYCLES = [\n 'beforeCreate',\n 'afterCreate',\n 'beforeFindOne',\n 'afterFindOne',\n 'beforeFindMany',\n 'afterFindMany',\n 'beforeCount',\n 'afterCount',\n 'beforeCreateMany',\n 'afterCreateMany',\n 'beforeUpdate',\n 'afterUpdate',\n 'beforeUpdateMany',\n 'afterUpdateMany',\n 'beforeDelete',\n 'afterDelete',\n 'beforeDeleteMany',\n 'afterDeleteMany',\n] as const;\n\n/**\n * For enumerations the least common denomiator is GraphQL, where\n * values needs to match the secure name regex:\n * GraphQL Spec https://spec.graphql.org/June2018/#sec-Names\n *\n * Therefore we need to make sure our users only use values, which\n * can be returned by GraphQL, by checking the regressed values\n * agains the GraphQL regex.\n *\n * TODO V5: check if we can avoid this coupling by moving this logic\n * into the GraphQL plugin.\n */\nconst GRAPHQL_ENUM_REGEX = /^[_A-Za-z][_0-9A-Za-z]*$/;\n\nconst lifecyclesShape = _.mapValues(_.keyBy(LIFECYCLES), () => yup.mixed().nullable().isFunction());\n\nconst contentTypeSchemaValidator = yup.object().shape({\n schema: yup.object().shape({\n info: yup\n .object()\n .shape({\n displayName: yup.string().required(),\n singularName: yup.string().isKebabCase().required(),\n pluralName: yup.string().isKebabCase().required(),\n })\n .required(),\n attributes: yup.object().test({\n name: 'valuesCollide',\n message: 'Some values collide when normalized',\n test(attributes: Schema.ContentType['attributes']) {\n for (const attrName of Object.keys(attributes)) {\n const attr = attributes[attrName];\n if (attr.type === 'enumeration') {\n const regressedValues = attr.enum.map(strings.toRegressedEnumValue);\n\n // should match the GraphQL regex\n if (!regressedValues.every((value: string) => GRAPHQL_ENUM_REGEX.test(value))) {\n const message = `Invalid enumeration value. Values should have at least one alphabetical character preceding the first occurence of a number. Update your enumeration '${attrName}'.`;\n\n return this.createError({ message });\n }\n\n // should not contain empty values\n if (regressedValues.some((value: string) => value === '')) {\n return this.createError({\n message: `At least one value of the enumeration '${attrName}' appears to be empty. Only alphanumerical characters are taken into account.`,\n });\n }\n\n // should not collide\n const duplicates = _.uniq(\n regressedValues.filter(\n (value: string, index: number, values: string[]) => values.indexOf(value) !== index\n )\n );\n\n if (duplicates.length) {\n const message = `Some enumeration values of the field '${attrName}' collide when normalized: ${duplicates.join(\n ', '\n )}. Please modify your enumeration.`;\n\n return this.createError({ message });\n }\n }\n }\n\n return true;\n },\n }),\n }),\n actions: yup.object().onlyContainsFunctions(),\n lifecycles: yup.object().shape(lifecyclesShape).noUnknown(),\n});\n\nconst validateContentTypeDefinition = (data: unknown) => {\n return contentTypeSchemaValidator.validateSync(data, { strict: true, abortEarly: false });\n};\n\nexport { validateContentTypeDefinition };\n"],"names":["LIFECYCLES","GRAPHQL_ENUM_REGEX","lifecyclesShape","_","mapValues","keyBy","yup","mixed","nullable","isFunction","contentTypeSchemaValidator","object","shape","schema","info","displayName","string","required","singularName","isKebabCase","pluralName","attributes","test","name","message","attrName","Object","keys","attr","type","regressedValues","enum","map","strings","toRegressedEnumValue","every","value","createError","some","duplicates","uniq","filter","index","values","indexOf","length","join","actions","onlyContainsFunctions","lifecycles","noUnknown","validateContentTypeDefinition","data","validateSync","strict","abortEarly"],"mappings":"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"}
@@ -1,75 +1,90 @@
1
- import _ from "lodash";
2
- import { yup, strings } from "@strapi/utils";
1
+ import _ from 'lodash';
2
+ import { yup, strings } from '@strapi/utils';
3
+
3
4
  const LIFECYCLES = [
4
- "beforeCreate",
5
- "afterCreate",
6
- "beforeFindOne",
7
- "afterFindOne",
8
- "beforeFindMany",
9
- "afterFindMany",
10
- "beforeCount",
11
- "afterCount",
12
- "beforeCreateMany",
13
- "afterCreateMany",
14
- "beforeUpdate",
15
- "afterUpdate",
16
- "beforeUpdateMany",
17
- "afterUpdateMany",
18
- "beforeDelete",
19
- "afterDelete",
20
- "beforeDeleteMany",
21
- "afterDeleteMany"
5
+ 'beforeCreate',
6
+ 'afterCreate',
7
+ 'beforeFindOne',
8
+ 'afterFindOne',
9
+ 'beforeFindMany',
10
+ 'afterFindMany',
11
+ 'beforeCount',
12
+ 'afterCount',
13
+ 'beforeCreateMany',
14
+ 'afterCreateMany',
15
+ 'beforeUpdate',
16
+ 'afterUpdate',
17
+ 'beforeUpdateMany',
18
+ 'afterUpdateMany',
19
+ 'beforeDelete',
20
+ 'afterDelete',
21
+ 'beforeDeleteMany',
22
+ 'afterDeleteMany'
22
23
  ];
23
- const GRAPHQL_ENUM_REGEX = /^[_A-Za-z][_0-9A-Za-z]*$/;
24
- const lifecyclesShape = _.mapValues(_.keyBy(LIFECYCLES), () => yup.mixed().nullable().isFunction());
24
+ /**
25
+ * For enumerations the least common denomiator is GraphQL, where
26
+ * values needs to match the secure name regex:
27
+ * GraphQL Spec https://spec.graphql.org/June2018/#sec-Names
28
+ *
29
+ * Therefore we need to make sure our users only use values, which
30
+ * can be returned by GraphQL, by checking the regressed values
31
+ * agains the GraphQL regex.
32
+ *
33
+ * TODO V5: check if we can avoid this coupling by moving this logic
34
+ * into the GraphQL plugin.
35
+ */ const GRAPHQL_ENUM_REGEX = /^[_A-Za-z][_0-9A-Za-z]*$/;
36
+ const lifecyclesShape = _.mapValues(_.keyBy(LIFECYCLES), ()=>yup.mixed().nullable().isFunction());
25
37
  const contentTypeSchemaValidator = yup.object().shape({
26
- schema: yup.object().shape({
27
- info: yup.object().shape({
28
- displayName: yup.string().required(),
29
- singularName: yup.string().isKebabCase().required(),
30
- pluralName: yup.string().isKebabCase().required()
31
- }).required(),
32
- attributes: yup.object().test({
33
- name: "valuesCollide",
34
- message: "Some values collide when normalized",
35
- test(attributes) {
36
- for (const attrName of Object.keys(attributes)) {
37
- const attr = attributes[attrName];
38
- if (attr.type === "enumeration") {
39
- const regressedValues = attr.enum.map(strings.toRegressedEnumValue);
40
- if (!regressedValues.every((value) => GRAPHQL_ENUM_REGEX.test(value))) {
41
- const message = `Invalid enumeration value. Values should have at least one alphabetical character preceding the first occurence of a number. Update your enumeration '${attrName}'.`;
42
- return this.createError({ message });
38
+ schema: yup.object().shape({
39
+ info: yup.object().shape({
40
+ displayName: yup.string().required(),
41
+ singularName: yup.string().isKebabCase().required(),
42
+ pluralName: yup.string().isKebabCase().required()
43
+ }).required(),
44
+ attributes: yup.object().test({
45
+ name: 'valuesCollide',
46
+ message: 'Some values collide when normalized',
47
+ test (attributes) {
48
+ for (const attrName of Object.keys(attributes)){
49
+ const attr = attributes[attrName];
50
+ if (attr.type === 'enumeration') {
51
+ const regressedValues = attr.enum.map(strings.toRegressedEnumValue);
52
+ // should match the GraphQL regex
53
+ if (!regressedValues.every((value)=>GRAPHQL_ENUM_REGEX.test(value))) {
54
+ const message = `Invalid enumeration value. Values should have at least one alphabetical character preceding the first occurence of a number. Update your enumeration '${attrName}'.`;
55
+ return this.createError({
56
+ message
57
+ });
58
+ }
59
+ // should not contain empty values
60
+ if (regressedValues.some((value)=>value === '')) {
61
+ return this.createError({
62
+ message: `At least one value of the enumeration '${attrName}' appears to be empty. Only alphanumerical characters are taken into account.`
63
+ });
64
+ }
65
+ // should not collide
66
+ const duplicates = _.uniq(regressedValues.filter((value, index, values)=>values.indexOf(value) !== index));
67
+ if (duplicates.length) {
68
+ const message = `Some enumeration values of the field '${attrName}' collide when normalized: ${duplicates.join(', ')}. Please modify your enumeration.`;
69
+ return this.createError({
70
+ message
71
+ });
72
+ }
73
+ }
74
+ }
75
+ return true;
43
76
  }
44
- if (regressedValues.some((value) => value === "")) {
45
- return this.createError({
46
- message: `At least one value of the enumeration '${attrName}' appears to be empty. Only alphanumerical characters are taken into account.`
47
- });
48
- }
49
- const duplicates = _.uniq(
50
- regressedValues.filter(
51
- (value, index, values) => values.indexOf(value) !== index
52
- )
53
- );
54
- if (duplicates.length) {
55
- const message = `Some enumeration values of the field '${attrName}' collide when normalized: ${duplicates.join(
56
- ", "
57
- )}. Please modify your enumeration.`;
58
- return this.createError({ message });
59
- }
60
- }
61
- }
62
- return true;
63
- }
64
- })
65
- }),
66
- actions: yup.object().onlyContainsFunctions(),
67
- lifecycles: yup.object().shape(lifecyclesShape).noUnknown()
77
+ })
78
+ }),
79
+ actions: yup.object().onlyContainsFunctions(),
80
+ lifecycles: yup.object().shape(lifecyclesShape).noUnknown()
68
81
  });
69
- const validateContentTypeDefinition = (data) => {
70
- return contentTypeSchemaValidator.validateSync(data, { strict: true, abortEarly: false });
71
- };
72
- export {
73
- validateContentTypeDefinition
82
+ const validateContentTypeDefinition = (data)=>{
83
+ return contentTypeSchemaValidator.validateSync(data, {
84
+ strict: true,
85
+ abortEarly: false
86
+ });
74
87
  };
88
+
89
+ export { validateContentTypeDefinition };
75
90
  //# sourceMappingURL=validator.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator.mjs","sources":["../../../src/domain/content-type/validator.ts"],"sourcesContent":["import _ from 'lodash';\nimport { yup, strings } from '@strapi/utils';\nimport type { Schema } from '@strapi/types';\n\nconst LIFECYCLES = [\n 'beforeCreate',\n 'afterCreate',\n 'beforeFindOne',\n 'afterFindOne',\n 'beforeFindMany',\n 'afterFindMany',\n 'beforeCount',\n 'afterCount',\n 'beforeCreateMany',\n 'afterCreateMany',\n 'beforeUpdate',\n 'afterUpdate',\n 'beforeUpdateMany',\n 'afterUpdateMany',\n 'beforeDelete',\n 'afterDelete',\n 'beforeDeleteMany',\n 'afterDeleteMany',\n] as const;\n\n/**\n * For enumerations the least common denomiator is GraphQL, where\n * values needs to match the secure name regex:\n * GraphQL Spec https://spec.graphql.org/June2018/#sec-Names\n *\n * Therefore we need to make sure our users only use values, which\n * can be returned by GraphQL, by checking the regressed values\n * agains the GraphQL regex.\n *\n * TODO V5: check if we can avoid this coupling by moving this logic\n * into the GraphQL plugin.\n */\nconst GRAPHQL_ENUM_REGEX = /^[_A-Za-z][_0-9A-Za-z]*$/;\n\nconst lifecyclesShape = _.mapValues(_.keyBy(LIFECYCLES), () => yup.mixed().nullable().isFunction());\n\nconst contentTypeSchemaValidator = yup.object().shape({\n schema: yup.object().shape({\n info: yup\n .object()\n .shape({\n displayName: yup.string().required(),\n singularName: yup.string().isKebabCase().required(),\n pluralName: yup.string().isKebabCase().required(),\n })\n .required(),\n attributes: yup.object().test({\n name: 'valuesCollide',\n message: 'Some values collide when normalized',\n test(attributes: Schema.ContentType['attributes']) {\n for (const attrName of Object.keys(attributes)) {\n const attr = attributes[attrName];\n if (attr.type === 'enumeration') {\n const regressedValues = attr.enum.map(strings.toRegressedEnumValue);\n\n // should match the GraphQL regex\n if (!regressedValues.every((value: string) => GRAPHQL_ENUM_REGEX.test(value))) {\n const message = `Invalid enumeration value. Values should have at least one alphabetical character preceding the first occurence of a number. Update your enumeration '${attrName}'.`;\n\n return this.createError({ message });\n }\n\n // should not contain empty values\n if (regressedValues.some((value: string) => value === '')) {\n return this.createError({\n message: `At least one value of the enumeration '${attrName}' appears to be empty. Only alphanumerical characters are taken into account.`,\n });\n }\n\n // should not collide\n const duplicates = _.uniq(\n regressedValues.filter(\n (value: string, index: number, values: string[]) => values.indexOf(value) !== index\n )\n );\n\n if (duplicates.length) {\n const message = `Some enumeration values of the field '${attrName}' collide when normalized: ${duplicates.join(\n ', '\n )}. Please modify your enumeration.`;\n\n return this.createError({ message });\n }\n }\n }\n\n return true;\n },\n }),\n }),\n actions: yup.object().onlyContainsFunctions(),\n lifecycles: yup.object().shape(lifecyclesShape).noUnknown(),\n});\n\nconst validateContentTypeDefinition = (data: unknown) => {\n return contentTypeSchemaValidator.validateSync(data, { strict: true, abortEarly: false });\n};\n\nexport { validateContentTypeDefinition };\n"],"names":[],"mappings":";;AAIA,MAAM,aAAa;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAcA,MAAM,qBAAqB;AAE3B,MAAM,kBAAkB,EAAE,UAAU,EAAE,MAAM,UAAU,GAAG,MAAM,IAAI,MAAM,EAAE,SAAS,EAAE,WAAY,CAAA;AAElG,MAAM,6BAA6B,IAAI,OAAO,EAAE,MAAM;AAAA,EACpD,QAAQ,IAAI,OAAO,EAAE,MAAM;AAAA,IACzB,MAAM,IACH,OAAO,EACP,MAAM;AAAA,MACL,aAAa,IAAI,OAAO,EAAE,SAAS;AAAA,MACnC,cAAc,IAAI,OAAS,EAAA,YAAA,EAAc,SAAS;AAAA,MAClD,YAAY,IAAI,OAAS,EAAA,YAAA,EAAc,SAAS;AAAA,IACjD,CAAA,EACA,SAAS;AAAA,IACZ,YAAY,IAAI,OAAO,EAAE,KAAK;AAAA,MAC5B,MAAM;AAAA,MACN,SAAS;AAAA,MACT,KAAK,YAA8C;AACjD,mBAAW,YAAY,OAAO,KAAK,UAAU,GAAG;AACxC,gBAAA,OAAO,WAAW,QAAQ;AAC5B,cAAA,KAAK,SAAS,eAAe;AAC/B,kBAAM,kBAAkB,KAAK,KAAK,IAAI,QAAQ,oBAAoB;AAG9D,gBAAA,CAAC,gBAAgB,MAAM,CAAC,UAAkB,mBAAmB,KAAK,KAAK,CAAC,GAAG;AACvE,oBAAA,UAAU,yJAAyJ,QAAQ;AAEjL,qBAAO,KAAK,YAAY,EAAE,QAAS,CAAA;AAAA,YACrC;AAGA,gBAAI,gBAAgB,KAAK,CAAC,UAAkB,UAAU,EAAE,GAAG;AACzD,qBAAO,KAAK,YAAY;AAAA,gBACtB,SAAS,0CAA0C,QAAQ;AAAA,cAAA,CAC5D;AAAA,YACH;AAGA,kBAAM,aAAa,EAAE;AAAA,cACnB,gBAAgB;AAAA,gBACd,CAAC,OAAe,OAAe,WAAqB,OAAO,QAAQ,KAAK,MAAM;AAAA,cAChF;AAAA,YAAA;AAGF,gBAAI,WAAW,QAAQ;AACrB,oBAAM,UAAU,yCAAyC,QAAQ,8BAA8B,WAAW;AAAA,gBACxG;AAAA,cACD,CAAA;AAED,qBAAO,KAAK,YAAY,EAAE,QAAS,CAAA;AAAA,YACrC;AAAA,UACF;AAAA,QACF;AAEO,eAAA;AAAA,MACT;AAAA,IAAA,CACD;AAAA,EAAA,CACF;AAAA,EACD,SAAS,IAAI,OAAO,EAAE,sBAAsB;AAAA,EAC5C,YAAY,IAAI,OAAA,EAAS,MAAM,eAAe,EAAE,UAAU;AAC5D,CAAC;AAEK,MAAA,gCAAgC,CAAC,SAAkB;AAChD,SAAA,2BAA2B,aAAa,MAAM,EAAE,QAAQ,MAAM,YAAY,OAAO;AAC1F;"}
1
+ {"version":3,"file":"validator.mjs","sources":["../../../src/domain/content-type/validator.ts"],"sourcesContent":["import _ from 'lodash';\nimport { yup, strings } from '@strapi/utils';\nimport type { Schema } from '@strapi/types';\n\nconst LIFECYCLES = [\n 'beforeCreate',\n 'afterCreate',\n 'beforeFindOne',\n 'afterFindOne',\n 'beforeFindMany',\n 'afterFindMany',\n 'beforeCount',\n 'afterCount',\n 'beforeCreateMany',\n 'afterCreateMany',\n 'beforeUpdate',\n 'afterUpdate',\n 'beforeUpdateMany',\n 'afterUpdateMany',\n 'beforeDelete',\n 'afterDelete',\n 'beforeDeleteMany',\n 'afterDeleteMany',\n] as const;\n\n/**\n * For enumerations the least common denomiator is GraphQL, where\n * values needs to match the secure name regex:\n * GraphQL Spec https://spec.graphql.org/June2018/#sec-Names\n *\n * Therefore we need to make sure our users only use values, which\n * can be returned by GraphQL, by checking the regressed values\n * agains the GraphQL regex.\n *\n * TODO V5: check if we can avoid this coupling by moving this logic\n * into the GraphQL plugin.\n */\nconst GRAPHQL_ENUM_REGEX = /^[_A-Za-z][_0-9A-Za-z]*$/;\n\nconst lifecyclesShape = _.mapValues(_.keyBy(LIFECYCLES), () => yup.mixed().nullable().isFunction());\n\nconst contentTypeSchemaValidator = yup.object().shape({\n schema: yup.object().shape({\n info: yup\n .object()\n .shape({\n displayName: yup.string().required(),\n singularName: yup.string().isKebabCase().required(),\n pluralName: yup.string().isKebabCase().required(),\n })\n .required(),\n attributes: yup.object().test({\n name: 'valuesCollide',\n message: 'Some values collide when normalized',\n test(attributes: Schema.ContentType['attributes']) {\n for (const attrName of Object.keys(attributes)) {\n const attr = attributes[attrName];\n if (attr.type === 'enumeration') {\n const regressedValues = attr.enum.map(strings.toRegressedEnumValue);\n\n // should match the GraphQL regex\n if (!regressedValues.every((value: string) => GRAPHQL_ENUM_REGEX.test(value))) {\n const message = `Invalid enumeration value. Values should have at least one alphabetical character preceding the first occurence of a number. Update your enumeration '${attrName}'.`;\n\n return this.createError({ message });\n }\n\n // should not contain empty values\n if (regressedValues.some((value: string) => value === '')) {\n return this.createError({\n message: `At least one value of the enumeration '${attrName}' appears to be empty. Only alphanumerical characters are taken into account.`,\n });\n }\n\n // should not collide\n const duplicates = _.uniq(\n regressedValues.filter(\n (value: string, index: number, values: string[]) => values.indexOf(value) !== index\n )\n );\n\n if (duplicates.length) {\n const message = `Some enumeration values of the field '${attrName}' collide when normalized: ${duplicates.join(\n ', '\n )}. Please modify your enumeration.`;\n\n return this.createError({ message });\n }\n }\n }\n\n return true;\n },\n }),\n }),\n actions: yup.object().onlyContainsFunctions(),\n lifecycles: yup.object().shape(lifecyclesShape).noUnknown(),\n});\n\nconst validateContentTypeDefinition = (data: unknown) => {\n return contentTypeSchemaValidator.validateSync(data, { strict: true, abortEarly: false });\n};\n\nexport { validateContentTypeDefinition };\n"],"names":["LIFECYCLES","GRAPHQL_ENUM_REGEX","lifecyclesShape","_","mapValues","keyBy","yup","mixed","nullable","isFunction","contentTypeSchemaValidator","object","shape","schema","info","displayName","string","required","singularName","isKebabCase","pluralName","attributes","test","name","message","attrName","Object","keys","attr","type","regressedValues","enum","map","strings","toRegressedEnumValue","every","value","createError","some","duplicates","uniq","filter","index","values","indexOf","length","join","actions","onlyContainsFunctions","lifecycles","noUnknown","validateContentTypeDefinition","data","validateSync","strict","abortEarly"],"mappings":"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"}