@strapi/core 0.0.0-next.c823b10e981295994d8b0733c78fa065aec064ee → 0.0.0-next.cb374d6b06692607bcfbd4d5131bafd4c990aa29

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

Potentially problematic release.


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

Files changed (833) hide show
  1. package/dist/Strapi.d.ts +1 -0
  2. package/dist/Strapi.d.ts.map +1 -1
  3. package/dist/Strapi.js +446 -403
  4. package/dist/Strapi.js.map +1 -1
  5. package/dist/Strapi.mjs +445 -402
  6. package/dist/Strapi.mjs.map +1 -1
  7. package/dist/compile.js +23 -14
  8. package/dist/compile.js.map +1 -1
  9. package/dist/compile.mjs +22 -14
  10. package/dist/compile.mjs.map +1 -1
  11. package/dist/configuration/config-loader.js +110 -97
  12. package/dist/configuration/config-loader.js.map +1 -1
  13. package/dist/configuration/config-loader.mjs +109 -96
  14. package/dist/configuration/config-loader.mjs.map +1 -1
  15. package/dist/configuration/get-dirs.js +31 -29
  16. package/dist/configuration/get-dirs.js.map +1 -1
  17. package/dist/configuration/get-dirs.mjs +30 -30
  18. package/dist/configuration/get-dirs.mjs.map +1 -1
  19. package/dist/configuration/index.d.ts +1 -0
  20. package/dist/configuration/index.d.ts.map +1 -1
  21. package/dist/configuration/index.js +85 -73
  22. package/dist/configuration/index.js.map +1 -1
  23. package/dist/configuration/index.mjs +84 -69
  24. package/dist/configuration/index.mjs.map +1 -1
  25. package/dist/configuration/urls.d.ts.map +1 -1
  26. package/dist/configuration/urls.js +74 -61
  27. package/dist/configuration/urls.js.map +1 -1
  28. package/dist/configuration/urls.mjs +73 -62
  29. package/dist/configuration/urls.mjs.map +1 -1
  30. package/dist/constants.d.ts +3 -0
  31. package/dist/constants.d.ts.map +1 -0
  32. package/dist/constants.js +6 -0
  33. package/dist/constants.js.map +1 -0
  34. package/dist/constants.mjs +4 -0
  35. package/dist/constants.mjs.map +1 -0
  36. package/dist/container.js +27 -23
  37. package/dist/container.js.map +1 -1
  38. package/dist/container.mjs +26 -24
  39. package/dist/container.mjs.map +1 -1
  40. package/dist/core-api/controller/collection-type.js +77 -76
  41. package/dist/core-api/controller/collection-type.js.map +1 -1
  42. package/dist/core-api/controller/collection-type.mjs +76 -77
  43. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  44. package/dist/core-api/controller/index.d.ts.map +1 -1
  45. package/dist/core-api/controller/index.js +64 -48
  46. package/dist/core-api/controller/index.js.map +1 -1
  47. package/dist/core-api/controller/index.mjs +63 -49
  48. package/dist/core-api/controller/index.mjs.map +1 -1
  49. package/dist/core-api/controller/single-type.js +41 -40
  50. package/dist/core-api/controller/single-type.js.map +1 -1
  51. package/dist/core-api/controller/single-type.mjs +40 -41
  52. package/dist/core-api/controller/single-type.mjs.map +1 -1
  53. package/dist/core-api/controller/transform.d.ts +3 -2
  54. package/dist/core-api/controller/transform.d.ts.map +1 -1
  55. package/dist/core-api/controller/transform.js +83 -64
  56. package/dist/core-api/controller/transform.js.map +1 -1
  57. package/dist/core-api/controller/transform.mjs +82 -65
  58. package/dist/core-api/controller/transform.mjs.map +1 -1
  59. package/dist/core-api/routes/index.d.ts +4 -22
  60. package/dist/core-api/routes/index.d.ts.map +1 -1
  61. package/dist/core-api/routes/index.js +205 -61
  62. package/dist/core-api/routes/index.js.map +1 -1
  63. package/dist/core-api/routes/index.mjs +185 -62
  64. package/dist/core-api/routes/index.mjs.map +1 -1
  65. package/dist/core-api/routes/validation/attributes.d.ts +244 -0
  66. package/dist/core-api/routes/validation/attributes.d.ts.map +1 -0
  67. package/dist/core-api/routes/validation/attributes.js +560 -0
  68. package/dist/core-api/routes/validation/attributes.js.map +1 -0
  69. package/dist/core-api/routes/validation/attributes.mjs +521 -0
  70. package/dist/core-api/routes/validation/attributes.mjs.map +1 -0
  71. package/dist/core-api/routes/validation/common.d.ts +105 -0
  72. package/dist/core-api/routes/validation/common.d.ts.map +1 -0
  73. package/dist/core-api/routes/validation/common.js +116 -0
  74. package/dist/core-api/routes/validation/common.js.map +1 -0
  75. package/dist/core-api/routes/validation/common.mjs +95 -0
  76. package/dist/core-api/routes/validation/common.mjs.map +1 -0
  77. package/dist/core-api/routes/validation/component.d.ts +34 -0
  78. package/dist/core-api/routes/validation/component.d.ts.map +1 -0
  79. package/dist/core-api/routes/validation/component.js +45 -0
  80. package/dist/core-api/routes/validation/component.js.map +1 -0
  81. package/dist/core-api/routes/validation/component.mjs +43 -0
  82. package/dist/core-api/routes/validation/component.mjs.map +1 -0
  83. package/dist/core-api/routes/validation/constants.d.ts +8 -0
  84. package/dist/core-api/routes/validation/constants.d.ts.map +1 -0
  85. package/dist/core-api/routes/validation/constants.js +18 -0
  86. package/dist/core-api/routes/validation/constants.js.map +1 -0
  87. package/dist/core-api/routes/validation/constants.mjs +16 -0
  88. package/dist/core-api/routes/validation/constants.mjs.map +1 -0
  89. package/dist/core-api/routes/validation/content-type.d.ts +128 -0
  90. package/dist/core-api/routes/validation/content-type.d.ts.map +1 -0
  91. package/dist/core-api/routes/validation/content-type.js +201 -0
  92. package/dist/core-api/routes/validation/content-type.js.map +1 -0
  93. package/dist/core-api/routes/validation/content-type.mjs +180 -0
  94. package/dist/core-api/routes/validation/content-type.mjs.map +1 -0
  95. package/dist/core-api/routes/validation/index.d.ts +5 -0
  96. package/dist/core-api/routes/validation/index.d.ts.map +1 -0
  97. package/dist/core-api/routes/validation/mappers.d.ts +105 -0
  98. package/dist/core-api/routes/validation/mappers.d.ts.map +1 -0
  99. package/dist/core-api/routes/validation/mappers.js +273 -0
  100. package/dist/core-api/routes/validation/mappers.js.map +1 -0
  101. package/dist/core-api/routes/validation/mappers.mjs +249 -0
  102. package/dist/core-api/routes/validation/mappers.mjs.map +1 -0
  103. package/dist/core-api/routes/validation/utils.d.ts +47 -0
  104. package/dist/core-api/routes/validation/utils.d.ts.map +1 -0
  105. package/dist/core-api/routes/validation/utils.js +128 -0
  106. package/dist/core-api/routes/validation/utils.js.map +1 -0
  107. package/dist/core-api/routes/validation/utils.mjs +106 -0
  108. package/dist/core-api/routes/validation/utils.mjs.map +1 -0
  109. package/dist/core-api/service/collection-type.js +73 -60
  110. package/dist/core-api/service/collection-type.js.map +1 -1
  111. package/dist/core-api/service/collection-type.mjs +72 -62
  112. package/dist/core-api/service/collection-type.mjs.map +1 -1
  113. package/dist/core-api/service/core-service.js +9 -8
  114. package/dist/core-api/service/core-service.js.map +1 -1
  115. package/dist/core-api/service/core-service.mjs +8 -9
  116. package/dist/core-api/service/core-service.mjs.map +1 -1
  117. package/dist/core-api/service/index.js +13 -13
  118. package/dist/core-api/service/index.js.map +1 -1
  119. package/dist/core-api/service/index.mjs +12 -14
  120. package/dist/core-api/service/index.mjs.map +1 -1
  121. package/dist/core-api/service/pagination.js +69 -43
  122. package/dist/core-api/service/pagination.js.map +1 -1
  123. package/dist/core-api/service/pagination.mjs +68 -47
  124. package/dist/core-api/service/pagination.mjs.map +1 -1
  125. package/dist/core-api/service/single-type.js +43 -39
  126. package/dist/core-api/service/single-type.js.map +1 -1
  127. package/dist/core-api/service/single-type.mjs +42 -41
  128. package/dist/core-api/service/single-type.mjs.map +1 -1
  129. package/dist/domain/content-type/index.d.ts.map +1 -1
  130. package/dist/domain/content-type/index.js +110 -99
  131. package/dist/domain/content-type/index.js.map +1 -1
  132. package/dist/domain/content-type/index.mjs +109 -99
  133. package/dist/domain/content-type/index.mjs.map +1 -1
  134. package/dist/domain/content-type/validator.js +84 -69
  135. package/dist/domain/content-type/validator.js.map +1 -1
  136. package/dist/domain/content-type/validator.mjs +83 -68
  137. package/dist/domain/content-type/validator.mjs.map +1 -1
  138. package/dist/domain/module/index.d.ts.map +1 -1
  139. package/dist/domain/module/index.js +112 -100
  140. package/dist/domain/module/index.js.map +1 -1
  141. package/dist/domain/module/index.mjs +111 -99
  142. package/dist/domain/module/index.mjs.map +1 -1
  143. package/dist/domain/module/validation.js +25 -20
  144. package/dist/domain/module/validation.js.map +1 -1
  145. package/dist/domain/module/validation.mjs +24 -21
  146. package/dist/domain/module/validation.mjs.map +1 -1
  147. package/dist/ee/index.d.ts +7 -0
  148. package/dist/ee/index.d.ts.map +1 -1
  149. package/dist/ee/index.js +197 -137
  150. package/dist/ee/index.js.map +1 -1
  151. package/dist/ee/index.mjs +196 -139
  152. package/dist/ee/index.mjs.map +1 -1
  153. package/dist/ee/license.d.ts +3 -1
  154. package/dist/ee/license.d.ts.map +1 -1
  155. package/dist/ee/license.js +104 -75
  156. package/dist/ee/license.js.map +1 -1
  157. package/dist/ee/license.mjs +102 -76
  158. package/dist/ee/license.mjs.map +1 -1
  159. package/dist/factories.d.ts +3 -1
  160. package/dist/factories.d.ts.map +1 -1
  161. package/dist/factories.js +80 -67
  162. package/dist/factories.js.map +1 -1
  163. package/dist/factories.mjs +77 -70
  164. package/dist/factories.mjs.map +1 -1
  165. package/dist/index.js +29 -26
  166. package/dist/index.js.map +1 -1
  167. package/dist/index.mjs +29 -29
  168. package/dist/index.mjs.map +1 -1
  169. package/dist/loaders/admin.d.ts.map +1 -1
  170. package/dist/loaders/admin.js +21 -20
  171. package/dist/loaders/admin.js.map +1 -1
  172. package/dist/loaders/admin.mjs +20 -20
  173. package/dist/loaders/admin.mjs.map +1 -1
  174. package/dist/loaders/apis.js +143 -120
  175. package/dist/loaders/apis.js.map +1 -1
  176. package/dist/loaders/apis.mjs +142 -119
  177. package/dist/loaders/apis.mjs.map +1 -1
  178. package/dist/loaders/components.js +33 -34
  179. package/dist/loaders/components.js.map +1 -1
  180. package/dist/loaders/components.mjs +32 -34
  181. package/dist/loaders/components.mjs.map +1 -1
  182. package/dist/loaders/index.js +22 -20
  183. package/dist/loaders/index.js.map +1 -1
  184. package/dist/loaders/index.mjs +21 -21
  185. package/dist/loaders/index.mjs.map +1 -1
  186. package/dist/loaders/middlewares.js +29 -25
  187. package/dist/loaders/middlewares.js.map +1 -1
  188. package/dist/loaders/middlewares.mjs +28 -25
  189. package/dist/loaders/middlewares.mjs.map +1 -1
  190. package/dist/loaders/plugins/get-enabled-plugins.js +126 -131
  191. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  192. package/dist/loaders/plugins/get-enabled-plugins.mjs +125 -108
  193. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  194. package/dist/loaders/plugins/get-user-plugins-config.js +25 -24
  195. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  196. package/dist/loaders/plugins/get-user-plugins-config.mjs +24 -23
  197. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  198. package/dist/loaders/plugins/index.js +132 -122
  199. package/dist/loaders/plugins/index.js.map +1 -1
  200. package/dist/loaders/plugins/index.mjs +121 -112
  201. package/dist/loaders/plugins/index.mjs.map +1 -1
  202. package/dist/loaders/policies.js +24 -20
  203. package/dist/loaders/policies.js.map +1 -1
  204. package/dist/loaders/policies.mjs +23 -20
  205. package/dist/loaders/policies.mjs.map +1 -1
  206. package/dist/loaders/sanitizers.js +10 -4
  207. package/dist/loaders/sanitizers.js.map +1 -1
  208. package/dist/loaders/sanitizers.mjs +9 -6
  209. package/dist/loaders/sanitizers.mjs.map +1 -1
  210. package/dist/loaders/src-index.js +35 -27
  211. package/dist/loaders/src-index.js.map +1 -1
  212. package/dist/loaders/src-index.mjs +34 -29
  213. package/dist/loaders/src-index.mjs.map +1 -1
  214. package/dist/loaders/validators.js +9 -4
  215. package/dist/loaders/validators.js.map +1 -1
  216. package/dist/loaders/validators.mjs +8 -6
  217. package/dist/loaders/validators.mjs.map +1 -1
  218. package/dist/middlewares/body.d.ts.map +1 -1
  219. package/dist/middlewares/body.js +58 -54
  220. package/dist/middlewares/body.js.map +1 -1
  221. package/dist/middlewares/body.mjs +57 -51
  222. package/dist/middlewares/body.mjs.map +1 -1
  223. package/dist/middlewares/compression.js +6 -6
  224. package/dist/middlewares/compression.js.map +1 -1
  225. package/dist/middlewares/compression.mjs +5 -5
  226. package/dist/middlewares/compression.mjs.map +1 -1
  227. package/dist/middlewares/cors.d.ts +9 -1
  228. package/dist/middlewares/cors.d.ts.map +1 -1
  229. package/dist/middlewares/cors.js +81 -48
  230. package/dist/middlewares/cors.js.map +1 -1
  231. package/dist/middlewares/cors.mjs +78 -46
  232. package/dist/middlewares/cors.mjs.map +1 -1
  233. package/dist/middlewares/errors.js +32 -30
  234. package/dist/middlewares/errors.js.map +1 -1
  235. package/dist/middlewares/errors.mjs +31 -31
  236. package/dist/middlewares/errors.mjs.map +1 -1
  237. package/dist/middlewares/favicon.js +27 -17
  238. package/dist/middlewares/favicon.js.map +1 -1
  239. package/dist/middlewares/favicon.mjs +26 -16
  240. package/dist/middlewares/favicon.mjs.map +1 -1
  241. package/dist/middlewares/index.js +32 -30
  242. package/dist/middlewares/index.js.map +1 -1
  243. package/dist/middlewares/index.mjs +31 -31
  244. package/dist/middlewares/index.mjs.map +1 -1
  245. package/dist/middlewares/ip.js +6 -6
  246. package/dist/middlewares/ip.js.map +1 -1
  247. package/dist/middlewares/ip.mjs +5 -5
  248. package/dist/middlewares/ip.mjs.map +1 -1
  249. package/dist/middlewares/logger.js +10 -9
  250. package/dist/middlewares/logger.js.map +1 -1
  251. package/dist/middlewares/logger.mjs +9 -10
  252. package/dist/middlewares/logger.mjs.map +1 -1
  253. package/dist/middlewares/powered-by.js +13 -9
  254. package/dist/middlewares/powered-by.js.map +1 -1
  255. package/dist/middlewares/powered-by.mjs +12 -10
  256. package/dist/middlewares/powered-by.mjs.map +1 -1
  257. package/dist/middlewares/public.js +33 -29
  258. package/dist/middlewares/public.js.map +1 -1
  259. package/dist/middlewares/public.mjs +32 -28
  260. package/dist/middlewares/public.mjs.map +1 -1
  261. package/dist/middlewares/query.js +35 -32
  262. package/dist/middlewares/query.js.map +1 -1
  263. package/dist/middlewares/query.mjs +34 -31
  264. package/dist/middlewares/query.mjs.map +1 -1
  265. package/dist/middlewares/response-time.js +10 -9
  266. package/dist/middlewares/response-time.js.map +1 -1
  267. package/dist/middlewares/response-time.mjs +9 -10
  268. package/dist/middlewares/response-time.mjs.map +1 -1
  269. package/dist/middlewares/responses.js +14 -12
  270. package/dist/middlewares/responses.js.map +1 -1
  271. package/dist/middlewares/responses.mjs +13 -13
  272. package/dist/middlewares/responses.mjs.map +1 -1
  273. package/dist/middlewares/security.d.ts.map +1 -1
  274. package/dist/middlewares/security.js +96 -71
  275. package/dist/middlewares/security.js.map +1 -1
  276. package/dist/middlewares/security.mjs +95 -70
  277. package/dist/middlewares/security.mjs.map +1 -1
  278. package/dist/middlewares/session.js +26 -25
  279. package/dist/middlewares/session.js.map +1 -1
  280. package/dist/middlewares/session.mjs +25 -24
  281. package/dist/middlewares/session.mjs.map +1 -1
  282. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +23 -9
  283. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  284. package/dist/migrations/database/5.0.0-discard-drafts.js +1603 -98
  285. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
  286. package/dist/migrations/database/5.0.0-discard-drafts.mjs +1602 -100
  287. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
  288. package/dist/migrations/draft-publish.d.ts +1 -1
  289. package/dist/migrations/draft-publish.d.ts.map +1 -1
  290. package/dist/migrations/draft-publish.js +61 -34
  291. package/dist/migrations/draft-publish.js.map +1 -1
  292. package/dist/migrations/draft-publish.mjs +60 -36
  293. package/dist/migrations/draft-publish.mjs.map +1 -1
  294. package/dist/migrations/first-published-at.d.ts +4 -0
  295. package/dist/migrations/first-published-at.d.ts.map +1 -0
  296. package/dist/migrations/first-published-at.js +51 -0
  297. package/dist/migrations/first-published-at.js.map +1 -0
  298. package/dist/migrations/first-published-at.mjs +49 -0
  299. package/dist/migrations/first-published-at.mjs.map +1 -0
  300. package/dist/migrations/i18n.js +62 -45
  301. package/dist/migrations/i18n.js.map +1 -1
  302. package/dist/migrations/i18n.mjs +61 -47
  303. package/dist/migrations/i18n.mjs.map +1 -1
  304. package/dist/migrations/index.d.ts.map +1 -1
  305. package/dist/migrations/index.js +29 -10
  306. package/dist/migrations/index.js.map +1 -1
  307. package/dist/migrations/index.mjs +28 -12
  308. package/dist/migrations/index.mjs.map +1 -1
  309. package/dist/package.json.js +187 -0
  310. package/dist/package.json.js.map +1 -0
  311. package/dist/package.json.mjs +164 -0
  312. package/dist/package.json.mjs.map +1 -0
  313. package/dist/providers/admin.js +27 -17
  314. package/dist/providers/admin.js.map +1 -1
  315. package/dist/providers/admin.mjs +26 -19
  316. package/dist/providers/admin.mjs.map +1 -1
  317. package/dist/providers/coreStore.js +13 -8
  318. package/dist/providers/coreStore.js.map +1 -1
  319. package/dist/providers/coreStore.mjs +12 -10
  320. package/dist/providers/coreStore.mjs.map +1 -1
  321. package/dist/providers/cron.js +19 -16
  322. package/dist/providers/cron.js.map +1 -1
  323. package/dist/providers/cron.mjs +18 -18
  324. package/dist/providers/cron.mjs.map +1 -1
  325. package/dist/providers/index.d.ts.map +1 -1
  326. package/dist/providers/index.js +20 -9
  327. package/dist/providers/index.js.map +1 -1
  328. package/dist/providers/index.mjs +19 -10
  329. package/dist/providers/index.mjs.map +1 -1
  330. package/dist/providers/provider.js +4 -3
  331. package/dist/providers/provider.js.map +1 -1
  332. package/dist/providers/provider.mjs +3 -4
  333. package/dist/providers/provider.mjs.map +1 -1
  334. package/dist/providers/registries.js +37 -32
  335. package/dist/providers/registries.js.map +1 -1
  336. package/dist/providers/registries.mjs +36 -34
  337. package/dist/providers/registries.mjs.map +1 -1
  338. package/dist/providers/session-manager.d.ts +3 -0
  339. package/dist/providers/session-manager.d.ts.map +1 -0
  340. package/dist/providers/session-manager.js +23 -0
  341. package/dist/providers/session-manager.js.map +1 -0
  342. package/dist/providers/session-manager.mjs +21 -0
  343. package/dist/providers/session-manager.mjs.map +1 -0
  344. package/dist/providers/telemetry.js +19 -16
  345. package/dist/providers/telemetry.js.map +1 -1
  346. package/dist/providers/telemetry.mjs +18 -18
  347. package/dist/providers/telemetry.mjs.map +1 -1
  348. package/dist/providers/webhooks.js +28 -26
  349. package/dist/providers/webhooks.js.map +1 -1
  350. package/dist/providers/webhooks.mjs +27 -28
  351. package/dist/providers/webhooks.mjs.map +1 -1
  352. package/dist/registries/apis.js +23 -20
  353. package/dist/registries/apis.js.map +1 -1
  354. package/dist/registries/apis.mjs +22 -22
  355. package/dist/registries/apis.mjs.map +1 -1
  356. package/dist/registries/components.js +35 -37
  357. package/dist/registries/components.js.map +1 -1
  358. package/dist/registries/components.mjs +34 -39
  359. package/dist/registries/components.mjs.map +1 -1
  360. package/dist/registries/content-types.js +54 -59
  361. package/dist/registries/content-types.js.map +1 -1
  362. package/dist/registries/content-types.mjs +53 -61
  363. package/dist/registries/content-types.mjs.map +1 -1
  364. package/dist/registries/controllers.js +70 -71
  365. package/dist/registries/controllers.js.map +1 -1
  366. package/dist/registries/controllers.mjs +69 -73
  367. package/dist/registries/controllers.mjs.map +1 -1
  368. package/dist/registries/custom-fields.js +75 -65
  369. package/dist/registries/custom-fields.js.map +1 -1
  370. package/dist/registries/custom-fields.mjs +74 -67
  371. package/dist/registries/custom-fields.mjs.map +1 -1
  372. package/dist/registries/hooks.js +46 -49
  373. package/dist/registries/hooks.js.map +1 -1
  374. package/dist/registries/hooks.mjs +45 -51
  375. package/dist/registries/hooks.mjs.map +1 -1
  376. package/dist/registries/middlewares.js +49 -51
  377. package/dist/registries/middlewares.js.map +1 -1
  378. package/dist/registries/middlewares.mjs +48 -53
  379. package/dist/registries/middlewares.mjs.map +1 -1
  380. package/dist/registries/models.js +14 -13
  381. package/dist/registries/models.js.map +1 -1
  382. package/dist/registries/models.mjs +13 -14
  383. package/dist/registries/models.mjs.map +1 -1
  384. package/dist/registries/modules.js +39 -36
  385. package/dist/registries/modules.js.map +1 -1
  386. package/dist/registries/modules.mjs +38 -38
  387. package/dist/registries/modules.mjs.map +1 -1
  388. package/dist/registries/namespace.js +21 -20
  389. package/dist/registries/namespace.js.map +1 -1
  390. package/dist/registries/namespace.mjs +20 -23
  391. package/dist/registries/namespace.mjs.map +1 -1
  392. package/dist/registries/plugins.js +23 -20
  393. package/dist/registries/plugins.js.map +1 -1
  394. package/dist/registries/plugins.mjs +22 -22
  395. package/dist/registries/plugins.mjs.map +1 -1
  396. package/dist/registries/policies.js +103 -96
  397. package/dist/registries/policies.js.map +1 -1
  398. package/dist/registries/policies.mjs +102 -98
  399. package/dist/registries/policies.mjs.map +1 -1
  400. package/dist/registries/sanitizers.js +23 -22
  401. package/dist/registries/sanitizers.js.map +1 -1
  402. package/dist/registries/sanitizers.mjs +22 -22
  403. package/dist/registries/sanitizers.mjs.map +1 -1
  404. package/dist/registries/services.js +71 -71
  405. package/dist/registries/services.js.map +1 -1
  406. package/dist/registries/services.mjs +70 -73
  407. package/dist/registries/services.mjs.map +1 -1
  408. package/dist/registries/validators.js +23 -22
  409. package/dist/registries/validators.js.map +1 -1
  410. package/dist/registries/validators.mjs +22 -22
  411. package/dist/registries/validators.mjs.map +1 -1
  412. package/dist/services/auth/index.js +74 -74
  413. package/dist/services/auth/index.js.map +1 -1
  414. package/dist/services/auth/index.mjs +73 -74
  415. package/dist/services/auth/index.mjs.map +1 -1
  416. package/dist/services/config.js +47 -43
  417. package/dist/services/config.js.map +1 -1
  418. package/dist/services/config.mjs +46 -44
  419. package/dist/services/config.mjs.map +1 -1
  420. package/dist/services/content-api/index.d.ts +1 -1
  421. package/dist/services/content-api/index.d.ts.map +1 -1
  422. package/dist/services/content-api/index.js +80 -79
  423. package/dist/services/content-api/index.js.map +1 -1
  424. package/dist/services/content-api/index.mjs +79 -79
  425. package/dist/services/content-api/index.mjs.map +1 -1
  426. package/dist/services/content-api/permissions/engine.js +8 -5
  427. package/dist/services/content-api/permissions/engine.js.map +1 -1
  428. package/dist/services/content-api/permissions/engine.mjs +7 -5
  429. package/dist/services/content-api/permissions/engine.mjs.map +1 -1
  430. package/dist/services/content-api/permissions/index.js +101 -81
  431. package/dist/services/content-api/permissions/index.js.map +1 -1
  432. package/dist/services/content-api/permissions/index.mjs +100 -81
  433. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  434. package/dist/services/content-api/permissions/providers/action.js +17 -14
  435. package/dist/services/content-api/permissions/providers/action.js.map +1 -1
  436. package/dist/services/content-api/permissions/providers/action.mjs +16 -16
  437. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
  438. package/dist/services/content-api/permissions/providers/condition.js +17 -14
  439. package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
  440. package/dist/services/content-api/permissions/providers/condition.mjs +16 -16
  441. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
  442. package/dist/services/content-source-maps.d.ts +13 -0
  443. package/dist/services/content-source-maps.d.ts.map +1 -0
  444. package/dist/services/content-source-maps.js +108 -0
  445. package/dist/services/content-source-maps.js.map +1 -0
  446. package/dist/services/content-source-maps.mjs +106 -0
  447. package/dist/services/content-source-maps.mjs.map +1 -0
  448. package/dist/services/core-store.d.ts +2 -2
  449. package/dist/services/core-store.d.ts.map +1 -1
  450. package/dist/services/core-store.js +115 -95
  451. package/dist/services/core-store.js.map +1 -1
  452. package/dist/services/core-store.mjs +114 -97
  453. package/dist/services/core-store.mjs.map +1 -1
  454. package/dist/services/cron.js +74 -65
  455. package/dist/services/cron.js.map +1 -1
  456. package/dist/services/cron.mjs +73 -67
  457. package/dist/services/cron.mjs.map +1 -1
  458. package/dist/services/custom-fields.js +9 -7
  459. package/dist/services/custom-fields.js.map +1 -1
  460. package/dist/services/custom-fields.mjs +8 -9
  461. package/dist/services/custom-fields.mjs.map +1 -1
  462. package/dist/services/document-service/attributes/index.js +23 -18
  463. package/dist/services/document-service/attributes/index.js.map +1 -1
  464. package/dist/services/document-service/attributes/index.mjs +22 -19
  465. package/dist/services/document-service/attributes/index.mjs.map +1 -1
  466. package/dist/services/document-service/attributes/transforms.js +16 -15
  467. package/dist/services/document-service/attributes/transforms.js.map +1 -1
  468. package/dist/services/document-service/attributes/transforms.mjs +15 -15
  469. package/dist/services/document-service/attributes/transforms.mjs.map +1 -1
  470. package/dist/services/document-service/common.js +5 -4
  471. package/dist/services/document-service/common.js.map +1 -1
  472. package/dist/services/document-service/common.mjs +4 -5
  473. package/dist/services/document-service/common.mjs.map +1 -1
  474. package/dist/services/document-service/components.d.ts +31 -1
  475. package/dist/services/document-service/components.d.ts.map +1 -1
  476. package/dist/services/document-service/components.js +363 -256
  477. package/dist/services/document-service/components.js.map +1 -1
  478. package/dist/services/document-service/components.mjs +359 -261
  479. package/dist/services/document-service/components.mjs.map +1 -1
  480. package/dist/services/document-service/draft-and-publish.d.ts +1 -1
  481. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  482. package/dist/services/document-service/draft-and-publish.js +88 -48
  483. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  484. package/dist/services/document-service/draft-and-publish.mjs +87 -54
  485. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  486. package/dist/services/document-service/entries.d.ts.map +1 -1
  487. package/dist/services/document-service/entries.js +151 -91
  488. package/dist/services/document-service/entries.js.map +1 -1
  489. package/dist/services/document-service/entries.mjs +150 -92
  490. package/dist/services/document-service/entries.mjs.map +1 -1
  491. package/dist/services/document-service/events.d.ts +1 -1
  492. package/dist/services/document-service/events.d.ts.map +1 -1
  493. package/dist/services/document-service/events.js +52 -40
  494. package/dist/services/document-service/events.js.map +1 -1
  495. package/dist/services/document-service/events.mjs +51 -41
  496. package/dist/services/document-service/events.mjs.map +1 -1
  497. package/dist/services/document-service/first-published-at.d.ts +7 -0
  498. package/dist/services/document-service/first-published-at.d.ts.map +1 -0
  499. package/dist/services/document-service/first-published-at.js +31 -0
  500. package/dist/services/document-service/first-published-at.js.map +1 -0
  501. package/dist/services/document-service/first-published-at.mjs +28 -0
  502. package/dist/services/document-service/first-published-at.mjs.map +1 -0
  503. package/dist/services/document-service/index.js +53 -33
  504. package/dist/services/document-service/index.js.map +1 -1
  505. package/dist/services/document-service/index.mjs +52 -34
  506. package/dist/services/document-service/index.mjs.map +1 -1
  507. package/dist/services/document-service/internationalization.d.ts +6 -1
  508. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  509. package/dist/services/document-service/internationalization.js +94 -46
  510. package/dist/services/document-service/internationalization.js.map +1 -1
  511. package/dist/services/document-service/internationalization.mjs +92 -50
  512. package/dist/services/document-service/internationalization.mjs.map +1 -1
  513. package/dist/services/document-service/middlewares/errors.js +23 -19
  514. package/dist/services/document-service/middlewares/errors.js.map +1 -1
  515. package/dist/services/document-service/middlewares/errors.mjs +22 -20
  516. package/dist/services/document-service/middlewares/errors.mjs.map +1 -1
  517. package/dist/services/document-service/middlewares/middleware-manager.js +46 -44
  518. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -1
  519. package/dist/services/document-service/middlewares/middleware-manager.mjs +45 -45
  520. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -1
  521. package/dist/services/document-service/params.js +11 -5
  522. package/dist/services/document-service/params.js.map +1 -1
  523. package/dist/services/document-service/params.mjs +10 -6
  524. package/dist/services/document-service/params.mjs.map +1 -1
  525. package/dist/services/document-service/repository.d.ts.map +1 -1
  526. package/dist/services/document-service/repository.js +362 -319
  527. package/dist/services/document-service/repository.js.map +1 -1
  528. package/dist/services/document-service/repository.mjs +361 -320
  529. package/dist/services/document-service/repository.mjs.map +1 -1
  530. package/dist/services/document-service/transform/data.js +22 -12
  531. package/dist/services/document-service/transform/data.js.map +1 -1
  532. package/dist/services/document-service/transform/data.mjs +21 -13
  533. package/dist/services/document-service/transform/data.mjs.map +1 -1
  534. package/dist/services/document-service/transform/fields.js +26 -17
  535. package/dist/services/document-service/transform/fields.js.map +1 -1
  536. package/dist/services/document-service/transform/fields.mjs +25 -18
  537. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  538. package/dist/services/document-service/transform/id-map.d.ts +1 -1
  539. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  540. package/dist/services/document-service/transform/id-map.js +115 -77
  541. package/dist/services/document-service/transform/id-map.js.map +1 -1
  542. package/dist/services/document-service/transform/id-map.mjs +114 -78
  543. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  544. package/dist/services/document-service/transform/id-transform.d.ts +1 -1
  545. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  546. package/dist/services/document-service/transform/id-transform.js +37 -29
  547. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  548. package/dist/services/document-service/transform/id-transform.mjs +36 -30
  549. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  550. package/dist/services/document-service/transform/populate.js +23 -18
  551. package/dist/services/document-service/transform/populate.js.map +1 -1
  552. package/dist/services/document-service/transform/populate.mjs +22 -19
  553. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  554. package/dist/services/document-service/transform/query.js +11 -6
  555. package/dist/services/document-service/transform/query.js.map +1 -1
  556. package/dist/services/document-service/transform/query.mjs +10 -7
  557. package/dist/services/document-service/transform/query.mjs.map +1 -1
  558. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  559. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  560. package/dist/services/document-service/transform/relations/extract/data-ids.js +71 -48
  561. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  562. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +70 -49
  563. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  564. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  565. package/dist/services/document-service/transform/relations/transform/data-ids.js +97 -63
  566. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  567. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +96 -64
  568. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  569. package/dist/services/document-service/transform/relations/transform/default-locale.js +47 -29
  570. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -1
  571. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +46 -30
  572. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -1
  573. package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
  574. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  575. package/dist/services/document-service/transform/relations/utils/dp.js +52 -26
  576. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  577. package/dist/services/document-service/transform/relations/utils/dp.mjs +51 -27
  578. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  579. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
  580. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  581. package/dist/services/document-service/transform/relations/utils/i18n.js +20 -18
  582. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  583. package/dist/services/document-service/transform/relations/utils/i18n.mjs +19 -21
  584. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  585. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
  586. package/dist/services/document-service/transform/relations/utils/map-relation.js +116 -77
  587. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -1
  588. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +115 -79
  589. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -1
  590. package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
  591. package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -0
  592. package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
  593. package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
  594. package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
  595. package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
  596. package/dist/services/document-service/utils/clean-component-join-table.d.ts +7 -0
  597. package/dist/services/document-service/utils/clean-component-join-table.d.ts.map +1 -0
  598. package/dist/services/document-service/utils/clean-component-join-table.js +145 -0
  599. package/dist/services/document-service/utils/clean-component-join-table.js.map +1 -0
  600. package/dist/services/document-service/utils/clean-component-join-table.mjs +143 -0
  601. package/dist/services/document-service/utils/clean-component-join-table.mjs.map +1 -0
  602. package/dist/services/document-service/utils/populate.d.ts +1 -1
  603. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  604. package/dist/services/document-service/utils/populate.js +66 -42
  605. package/dist/services/document-service/utils/populate.js.map +1 -1
  606. package/dist/services/document-service/utils/populate.mjs +65 -43
  607. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  608. package/dist/services/document-service/utils/unidirectional-relations.d.ts +19 -2
  609. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -1
  610. package/dist/services/document-service/utils/unidirectional-relations.js +124 -62
  611. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -1
  612. package/dist/services/document-service/utils/unidirectional-relations.mjs +123 -64
  613. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -1
  614. package/dist/services/entity-service/index.js +230 -161
  615. package/dist/services/entity-service/index.js.map +1 -1
  616. package/dist/services/entity-service/index.mjs +229 -160
  617. package/dist/services/entity-service/index.mjs.map +1 -1
  618. package/dist/services/entity-validator/blocks-validator.js +135 -103
  619. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  620. package/dist/services/entity-validator/blocks-validator.mjs +134 -104
  621. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  622. package/dist/services/entity-validator/index.d.ts +1 -1
  623. package/dist/services/entity-validator/index.d.ts.map +1 -1
  624. package/dist/services/entity-validator/index.js +370 -366
  625. package/dist/services/entity-validator/index.js.map +1 -1
  626. package/dist/services/entity-validator/index.mjs +366 -363
  627. package/dist/services/entity-validator/index.mjs.map +1 -1
  628. package/dist/services/entity-validator/validators.d.ts +1 -0
  629. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  630. package/dist/services/entity-validator/validators.js +270 -209
  631. package/dist/services/entity-validator/validators.js.map +1 -1
  632. package/dist/services/entity-validator/validators.mjs +269 -215
  633. package/dist/services/entity-validator/validators.mjs.map +1 -1
  634. package/dist/services/errors.js +65 -65
  635. package/dist/services/errors.js.map +1 -1
  636. package/dist/services/errors.mjs +64 -66
  637. package/dist/services/errors.mjs.map +1 -1
  638. package/dist/services/event-hub.js +82 -69
  639. package/dist/services/event-hub.js.map +1 -1
  640. package/dist/services/event-hub.mjs +81 -71
  641. package/dist/services/event-hub.mjs.map +1 -1
  642. package/dist/services/features.js +19 -14
  643. package/dist/services/features.js.map +1 -1
  644. package/dist/services/features.mjs +18 -15
  645. package/dist/services/features.mjs.map +1 -1
  646. package/dist/services/fs.js +41 -40
  647. package/dist/services/fs.js.map +1 -1
  648. package/dist/services/fs.mjs +40 -39
  649. package/dist/services/fs.mjs.map +1 -1
  650. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  651. package/dist/services/metrics/admin-user-hash.js +13 -11
  652. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  653. package/dist/services/metrics/admin-user-hash.mjs +12 -10
  654. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  655. package/dist/services/metrics/index.d.ts +1 -1
  656. package/dist/services/metrics/index.d.ts.map +1 -1
  657. package/dist/services/metrics/index.js +48 -40
  658. package/dist/services/metrics/index.js.map +1 -1
  659. package/dist/services/metrics/index.mjs +47 -42
  660. package/dist/services/metrics/index.mjs.map +1 -1
  661. package/dist/services/metrics/is-truthy.js +13 -6
  662. package/dist/services/metrics/is-truthy.js.map +1 -1
  663. package/dist/services/metrics/is-truthy.mjs +12 -6
  664. package/dist/services/metrics/is-truthy.mjs.map +1 -1
  665. package/dist/services/metrics/middleware.d.ts +2 -1
  666. package/dist/services/metrics/middleware.d.ts.map +1 -1
  667. package/dist/services/metrics/middleware.js +37 -22
  668. package/dist/services/metrics/middleware.js.map +1 -1
  669. package/dist/services/metrics/middleware.mjs +36 -24
  670. package/dist/services/metrics/middleware.mjs.map +1 -1
  671. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  672. package/dist/services/metrics/rate-limiter.js +24 -19
  673. package/dist/services/metrics/rate-limiter.js.map +1 -1
  674. package/dist/services/metrics/rate-limiter.mjs +23 -21
  675. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  676. package/dist/services/metrics/sender.d.ts.map +1 -1
  677. package/dist/services/metrics/sender.js +79 -69
  678. package/dist/services/metrics/sender.js.map +1 -1
  679. package/dist/services/metrics/sender.mjs +78 -64
  680. package/dist/services/metrics/sender.mjs.map +1 -1
  681. package/dist/services/query-params.js +13 -10
  682. package/dist/services/query-params.js.map +1 -1
  683. package/dist/services/query-params.mjs +12 -12
  684. package/dist/services/query-params.mjs.map +1 -1
  685. package/dist/services/reloader.js +35 -32
  686. package/dist/services/reloader.js.map +1 -1
  687. package/dist/services/reloader.mjs +34 -33
  688. package/dist/services/reloader.mjs.map +1 -1
  689. package/dist/services/request-context.js +11 -8
  690. package/dist/services/request-context.js.map +1 -1
  691. package/dist/services/request-context.mjs +10 -10
  692. package/dist/services/request-context.mjs.map +1 -1
  693. package/dist/services/server/admin-api.js +11 -10
  694. package/dist/services/server/admin-api.js.map +1 -1
  695. package/dist/services/server/admin-api.mjs +10 -11
  696. package/dist/services/server/admin-api.mjs.map +1 -1
  697. package/dist/services/server/api.js +33 -27
  698. package/dist/services/server/api.js.map +1 -1
  699. package/dist/services/server/api.mjs +32 -26
  700. package/dist/services/server/api.mjs.map +1 -1
  701. package/dist/services/server/compose-endpoint.js +116 -105
  702. package/dist/services/server/compose-endpoint.js.map +1 -1
  703. package/dist/services/server/compose-endpoint.mjs +115 -105
  704. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  705. package/dist/services/server/content-api.js +11 -9
  706. package/dist/services/server/content-api.js.map +1 -1
  707. package/dist/services/server/content-api.mjs +10 -10
  708. package/dist/services/server/content-api.mjs.map +1 -1
  709. package/dist/services/server/http-server.js +48 -44
  710. package/dist/services/server/http-server.js.map +1 -1
  711. package/dist/services/server/http-server.mjs +47 -43
  712. package/dist/services/server/http-server.mjs.map +1 -1
  713. package/dist/services/server/index.js +85 -82
  714. package/dist/services/server/index.js.map +1 -1
  715. package/dist/services/server/index.mjs +84 -81
  716. package/dist/services/server/index.mjs.map +1 -1
  717. package/dist/services/server/koa.js +49 -47
  718. package/dist/services/server/koa.js.map +1 -1
  719. package/dist/services/server/koa.mjs +48 -44
  720. package/dist/services/server/koa.mjs.map +1 -1
  721. package/dist/services/server/middleware.js +86 -82
  722. package/dist/services/server/middleware.js.map +1 -1
  723. package/dist/services/server/middleware.mjs +85 -82
  724. package/dist/services/server/middleware.mjs.map +1 -1
  725. package/dist/services/server/policy.js +24 -17
  726. package/dist/services/server/policy.js.map +1 -1
  727. package/dist/services/server/policy.mjs +23 -18
  728. package/dist/services/server/policy.mjs.map +1 -1
  729. package/dist/services/server/register-middlewares.js +68 -61
  730. package/dist/services/server/register-middlewares.js.map +1 -1
  731. package/dist/services/server/register-middlewares.mjs +67 -63
  732. package/dist/services/server/register-middlewares.mjs.map +1 -1
  733. package/dist/services/server/register-routes.js +109 -66
  734. package/dist/services/server/register-routes.js.map +1 -1
  735. package/dist/services/server/register-routes.mjs +108 -66
  736. package/dist/services/server/register-routes.mjs.map +1 -1
  737. package/dist/services/server/routing.d.ts +10 -0
  738. package/dist/services/server/routing.d.ts.map +1 -1
  739. package/dist/services/server/routing.js +100 -81
  740. package/dist/services/server/routing.js.map +1 -1
  741. package/dist/services/server/routing.mjs +99 -81
  742. package/dist/services/server/routing.mjs.map +1 -1
  743. package/dist/services/session-manager.d.ts +167 -0
  744. package/dist/services/session-manager.d.ts.map +1 -0
  745. package/dist/services/session-manager.js +529 -0
  746. package/dist/services/session-manager.js.map +1 -0
  747. package/dist/services/session-manager.mjs +526 -0
  748. package/dist/services/session-manager.mjs.map +1 -0
  749. package/dist/services/utils/conditional-fields.d.ts +3 -0
  750. package/dist/services/utils/conditional-fields.d.ts.map +1 -0
  751. package/dist/services/utils/conditional-fields.js +22 -0
  752. package/dist/services/utils/conditional-fields.js.map +1 -0
  753. package/dist/services/utils/conditional-fields.mjs +20 -0
  754. package/dist/services/utils/conditional-fields.mjs.map +1 -0
  755. package/dist/services/utils/dynamic-zones.js +13 -14
  756. package/dist/services/utils/dynamic-zones.js.map +1 -1
  757. package/dist/services/utils/dynamic-zones.mjs +12 -16
  758. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  759. package/dist/services/webhook-runner.js +124 -122
  760. package/dist/services/webhook-runner.js.map +1 -1
  761. package/dist/services/webhook-runner.mjs +123 -121
  762. package/dist/services/webhook-runner.mjs.map +1 -1
  763. package/dist/services/webhook-store.js +132 -99
  764. package/dist/services/webhook-store.js.map +1 -1
  765. package/dist/services/webhook-store.mjs +131 -101
  766. package/dist/services/webhook-store.mjs.map +1 -1
  767. package/dist/services/worker-queue.js +44 -49
  768. package/dist/services/worker-queue.js.map +1 -1
  769. package/dist/services/worker-queue.mjs +43 -49
  770. package/dist/services/worker-queue.mjs.map +1 -1
  771. package/dist/utils/convert-custom-field-type.js +17 -20
  772. package/dist/utils/convert-custom-field-type.js.map +1 -1
  773. package/dist/utils/convert-custom-field-type.mjs +16 -21
  774. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  775. package/dist/utils/cron.js +64 -30
  776. package/dist/utils/cron.js.map +1 -1
  777. package/dist/utils/cron.mjs +63 -31
  778. package/dist/utils/cron.mjs.map +1 -1
  779. package/dist/utils/fetch.d.ts +5 -1
  780. package/dist/utils/fetch.d.ts.map +1 -1
  781. package/dist/utils/fetch.js +28 -18
  782. package/dist/utils/fetch.js.map +1 -1
  783. package/dist/utils/fetch.mjs +27 -19
  784. package/dist/utils/fetch.mjs.map +1 -1
  785. package/dist/utils/filepath-to-prop-path.js +20 -28
  786. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  787. package/dist/utils/filepath-to-prop-path.mjs +19 -26
  788. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  789. package/dist/utils/is-initialized.js +21 -12
  790. package/dist/utils/is-initialized.js.map +1 -1
  791. package/dist/utils/is-initialized.mjs +20 -13
  792. package/dist/utils/is-initialized.mjs.map +1 -1
  793. package/dist/utils/lifecycles.js +6 -5
  794. package/dist/utils/lifecycles.js.map +1 -1
  795. package/dist/utils/lifecycles.mjs +5 -6
  796. package/dist/utils/lifecycles.mjs.map +1 -1
  797. package/dist/utils/load-config-file.js +40 -38
  798. package/dist/utils/load-config-file.js.map +1 -1
  799. package/dist/utils/load-config-file.mjs +39 -36
  800. package/dist/utils/load-config-file.mjs.map +1 -1
  801. package/dist/utils/load-files.js +40 -35
  802. package/dist/utils/load-files.js.map +1 -1
  803. package/dist/utils/load-files.mjs +39 -32
  804. package/dist/utils/load-files.mjs.map +1 -1
  805. package/dist/utils/open-browser.js +8 -8
  806. package/dist/utils/open-browser.js.map +1 -1
  807. package/dist/utils/open-browser.mjs +7 -7
  808. package/dist/utils/open-browser.mjs.map +1 -1
  809. package/dist/utils/resolve-working-dirs.js +23 -10
  810. package/dist/utils/resolve-working-dirs.js.map +1 -1
  811. package/dist/utils/resolve-working-dirs.mjs +22 -9
  812. package/dist/utils/resolve-working-dirs.mjs.map +1 -1
  813. package/dist/utils/signals.js +20 -14
  814. package/dist/utils/signals.js.map +1 -1
  815. package/dist/utils/signals.mjs +19 -15
  816. package/dist/utils/signals.mjs.map +1 -1
  817. package/dist/utils/startup-logger.d.ts.map +1 -1
  818. package/dist/utils/startup-logger.js +107 -78
  819. package/dist/utils/startup-logger.js.map +1 -1
  820. package/dist/utils/startup-logger.mjs +106 -75
  821. package/dist/utils/startup-logger.mjs.map +1 -1
  822. package/dist/utils/transform-content-types-to-models.d.ts +225 -0
  823. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  824. package/dist/utils/transform-content-types-to-models.js +350 -261
  825. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  826. package/dist/utils/transform-content-types-to-models.mjs +349 -269
  827. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  828. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  829. package/dist/utils/update-notifier/index.js +68 -73
  830. package/dist/utils/update-notifier/index.js.map +1 -1
  831. package/dist/utils/update-notifier/index.mjs +67 -67
  832. package/dist/utils/update-notifier/index.mjs.map +1 -1
  833. package/package.json +33 -29
@@ -1,69 +1,128 @@
1
- import { omit, keyBy } from "lodash/fp";
2
- const load = async (uid, { oldVersions, newVersions }) => {
3
- const updates = [];
4
- await strapi.db.transaction(async ({ trx }) => {
5
- const contentTypes = Object.values(strapi.contentTypes);
6
- const components = Object.values(strapi.components);
7
- for (const model of [...contentTypes, ...components]) {
8
- const dbModel = strapi.db.metadata.get(model.uid);
9
- for (const attribute of Object.values(dbModel.attributes)) {
10
- if (attribute.type !== "relation" || attribute.target !== uid || attribute.inversedBy || attribute.mappedBy) {
11
- continue;
1
+ import { omit, keyBy } from 'lodash/fp';
2
+
3
+ /**
4
+ * Loads lingering relations that need to be updated when overriding a published or draft entry.
5
+ * This is necessary because the relations are uni-directional and the target entry is not aware of the source entry.
6
+ * This is not the case for bi-directional relations, where the target entry is also linked to the source entry.
7
+ */ const load = async (uid, { oldVersions, newVersions }, options = {})=>{
8
+ const updates = [];
9
+ // Iterate all components and content types to find relations that need to be updated
10
+ await strapi.db.transaction(async ({ trx })=>{
11
+ const contentTypes = Object.values(strapi.contentTypes);
12
+ const components = Object.values(strapi.components);
13
+ for (const model of [
14
+ ...contentTypes,
15
+ ...components
16
+ ]){
17
+ const dbModel = strapi.db.metadata.get(model.uid);
18
+ for (const attribute of Object.values(dbModel.attributes)){
19
+ /**
20
+ * Only consider unidirectional relations
21
+ */ if (attribute.type !== 'relation' || attribute.target !== uid || attribute.inversedBy || attribute.mappedBy) {
22
+ continue;
23
+ }
24
+ // TODO: joinColumn relations
25
+ const joinTable = attribute.joinTable;
26
+ if (!joinTable) {
27
+ continue;
28
+ }
29
+ const { name: sourceColumnName } = joinTable.joinColumn;
30
+ const { name: targetColumnName } = joinTable.inverseJoinColumn;
31
+ /**
32
+ * Load all relations that need to be updated
33
+ */ // NOTE: when the model has draft and publish, we can assume relation are only draft to draft & published to published
34
+ const ids = oldVersions.map((entry)=>entry.id);
35
+ const oldVersionsRelations = await strapi.db.getConnection().select('*').from(joinTable.name).whereIn(targetColumnName, ids).transacting(trx);
36
+ if (oldVersionsRelations.length > 0) {
37
+ updates.push({
38
+ joinTable,
39
+ relations: oldVersionsRelations
40
+ });
41
+ }
42
+ /**
43
+ * if publishing
44
+ * if published version exists
45
+ * updated published versions links
46
+ * else
47
+ * create link to newly published version
48
+ *
49
+ * if discarding
50
+ * if published version link exists & not draft version link
51
+ * create link to new draft version
52
+ */ if (!model.options?.draftAndPublish) {
53
+ const ids = newVersions.map((entry)=>entry.id);
54
+ // This is the step were we query the join table based on the id of the document
55
+ const newVersionsRelations = await strapi.db.getConnection().select('*').from(joinTable.name).whereIn(targetColumnName, ids).transacting(trx);
56
+ let versionRelations = newVersionsRelations;
57
+ if (options.shouldPropagateRelation) {
58
+ const relationsToPropagate = [];
59
+ for (const relation of newVersionsRelations){
60
+ if (await options.shouldPropagateRelation(relation, model, trx)) {
61
+ relationsToPropagate.push(relation);
62
+ }
63
+ }
64
+ versionRelations = relationsToPropagate;
65
+ }
66
+ if (versionRelations.length > 0) {
67
+ // when publishing a draft that doesn't have a published version yet,
68
+ // copy the links to the draft over to the published version
69
+ // when discarding a published version, if no drafts exists
70
+ const discardToAdd = versionRelations.filter((relation)=>{
71
+ const matchingOldVersion = oldVersionsRelations.find((oldRelation)=>{
72
+ return oldRelation[sourceColumnName] === relation[sourceColumnName];
73
+ });
74
+ return !matchingOldVersion;
75
+ }).map(omit(strapi.db.metadata.identifiers.ID_COLUMN));
76
+ updates.push({
77
+ joinTable,
78
+ relations: discardToAdd
79
+ });
80
+ }
81
+ }
82
+ }
12
83
  }
13
- const joinTable = attribute.joinTable;
14
- if (!joinTable) {
15
- continue;
16
- }
17
- const { name: sourceColumnName } = joinTable.joinColumn;
18
- const { name: targetColumnName } = joinTable.inverseJoinColumn;
19
- const ids = oldVersions.map((entry) => entry.id);
20
- const oldVersionsRelations = await strapi.db.getConnection().select("*").from(joinTable.name).whereIn(targetColumnName, ids).transacting(trx);
21
- if (oldVersionsRelations.length > 0) {
22
- updates.push({ joinTable, relations: oldVersionsRelations });
23
- }
24
- if (!model.options?.draftAndPublish) {
25
- const ids2 = newVersions.map((entry) => entry.id);
26
- const newVersionsRelations = await strapi.db.getConnection().select("*").from(joinTable.name).whereIn(targetColumnName, ids2).transacting(trx);
27
- if (newVersionsRelations.length > 0) {
28
- const discardToAdd = newVersionsRelations.filter((relation) => {
29
- const matchingOldVerion = oldVersionsRelations.find((oldRelation) => {
30
- return oldRelation[sourceColumnName] === relation[sourceColumnName];
31
- });
32
- return !matchingOldVerion;
33
- }).map(omit("id"));
34
- updates.push({ joinTable, relations: discardToAdd });
35
- }
36
- }
37
- }
38
- }
39
- });
40
- return updates;
84
+ });
85
+ return updates;
41
86
  };
42
- const sync = async (oldEntries, newEntries, oldRelations) => {
43
- const newEntryByLocale = keyBy("locale", newEntries);
44
- const oldEntriesMap = oldEntries.reduce(
45
- (acc, entry) => {
46
- const newEntry = newEntryByLocale[entry.locale];
47
- if (!newEntry)
87
+ /**
88
+ * Updates uni directional relations to target the right entries when overriding published or draft entries.
89
+ *
90
+ * This function:
91
+ * 1. Creates new relations pointing to the new entry versions
92
+ * 2. Precisely deletes only the old relations being replaced to prevent orphaned links
93
+ *
94
+ * @param oldEntries The old entries that are being overridden
95
+ * @param newEntries The new entries that are overriding the old ones
96
+ * @param oldRelations The relations that were previously loaded with `load` @see load
97
+ */ const sync = async (oldEntries, newEntries, oldRelations)=>{
98
+ /**
99
+ * Create a map of old entry ids to new entry ids
100
+ *
101
+ * Will be used to update the relation target ids
102
+ */ const newEntryByLocale = keyBy('locale', newEntries);
103
+ const oldEntriesMap = oldEntries.reduce((acc, entry)=>{
104
+ const newEntry = newEntryByLocale[entry.locale];
105
+ if (!newEntry) return acc;
106
+ acc[entry.id] = newEntry.id;
48
107
  return acc;
49
- acc[entry.id] = newEntry.id;
50
- return acc;
51
- },
52
- {}
53
- );
54
- await strapi.db.transaction(async ({ trx }) => {
55
- for (const { joinTable, relations } of oldRelations) {
56
- const column = joinTable.inverseJoinColumn.name;
57
- const newRelations = relations.map((relation) => {
58
- const newId = oldEntriesMap[relation[column]];
59
- return { ...relation, [column]: newId };
60
- });
61
- await trx.batchInsert(joinTable.name, newRelations, 1e3);
62
- }
63
- });
64
- };
65
- export {
66
- load,
67
- sync
108
+ }, {});
109
+ await strapi.db.transaction(async ({ trx })=>{
110
+ // Iterate old relations that are deleted and insert the new ones
111
+ for (const { joinTable, relations } of oldRelations){
112
+ // Update old ids with the new ones
113
+ const column = joinTable.inverseJoinColumn.name;
114
+ const newRelations = relations.map((relation)=>{
115
+ const newId = oldEntriesMap[relation[column]];
116
+ return {
117
+ ...relation,
118
+ [column]: newId
119
+ };
120
+ });
121
+ // Insert those relations into the join table
122
+ await trx.batchInsert(joinTable.name, newRelations, 1000);
123
+ }
124
+ });
68
125
  };
126
+
127
+ export { load, sync };
69
128
  //# sourceMappingURL=unidirectional-relations.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"unidirectional-relations.mjs","sources":["../../../../src/services/document-service/utils/unidirectional-relations.ts"],"sourcesContent":["/* eslint-disable no-continue */\nimport { keyBy, omit } from 'lodash/fp';\n\nimport { UID, Schema } from '@strapi/types';\n\ninterface LoadContext {\n oldVersions: { id: string; locale: string }[];\n newVersions: { id: string; locale: string }[];\n}\n\n/**\n * Loads lingering relations that need to be updated when overriding a published or draft entry.\n * This is necessary because the relations are uni-directional and the target entry is not aware of the source entry.\n * This is not the case for bi-directional relations, where the target entry is also linked to the source entry.\n */\nconst load = async (uid: UID.ContentType, { oldVersions, newVersions }: LoadContext) => {\n const updates = [] as any;\n\n // Iterate all components and content types to find relations that need to be updated\n await strapi.db.transaction(async ({ trx }) => {\n const contentTypes = Object.values(strapi.contentTypes) as Schema.ContentType[];\n const components = Object.values(strapi.components) as Schema.Component[];\n\n for (const model of [...contentTypes, ...components]) {\n const dbModel = strapi.db.metadata.get(model.uid);\n\n for (const attribute of Object.values(dbModel.attributes) as any) {\n /**\n * Only consider unidirectional relations\n */\n if (\n attribute.type !== 'relation' ||\n attribute.target !== uid ||\n attribute.inversedBy ||\n attribute.mappedBy\n ) {\n continue;\n }\n\n // TODO: joinColumn relations\n const joinTable = attribute.joinTable;\n if (!joinTable) {\n continue;\n }\n\n const { name: sourceColumnName } = joinTable.joinColumn;\n const { name: targetColumnName } = joinTable.inverseJoinColumn;\n\n /**\n * Load all relations that need to be updated\n */\n // NOTE: when the model has draft and publish, we can assume relation are only draft to draft & published to published\n const ids = oldVersions.map((entry) => entry.id);\n\n const oldVersionsRelations = await strapi.db\n .getConnection()\n .select('*')\n .from(joinTable.name)\n .whereIn(targetColumnName, ids)\n .transacting(trx);\n\n if (oldVersionsRelations.length > 0) {\n updates.push({ joinTable, relations: oldVersionsRelations });\n }\n\n /**\n * if publishing\n * if published version exists\n * updated published versions links\n * else\n * create link to newly published version\n *\n * if discarding\n * if published version link exists & not draft version link\n * create link to new draft version\n */\n\n if (!model.options?.draftAndPublish) {\n const ids = newVersions.map((entry) => entry.id);\n\n const newVersionsRelations = await strapi.db\n .getConnection()\n .select('*')\n .from(joinTable.name)\n .whereIn(targetColumnName, ids)\n .transacting(trx);\n\n if (newVersionsRelations.length > 0) {\n // when publishing a draft that doesn't have a published version yet,\n // copy the links to the draft over to the published version\n // when discarding a published version, if no drafts exists\n const discardToAdd = newVersionsRelations\n .filter((relation) => {\n const matchingOldVerion = oldVersionsRelations.find((oldRelation) => {\n return oldRelation[sourceColumnName] === relation[sourceColumnName];\n });\n\n return !matchingOldVerion;\n })\n .map(omit('id'));\n\n updates.push({ joinTable, relations: discardToAdd });\n }\n }\n }\n }\n });\n\n return updates;\n};\n\n/**\n * Updates uni directional relations to target the right entries when overriding published or draft entries.\n *\n * @param oldEntries The old entries that are being overridden\n * @param newEntries The new entries that are overriding the old ones\n * @param oldRelations The relations that were previously loaded with `load` @see load\n */\nconst sync = async (\n oldEntries: { id: string; locale: string }[],\n newEntries: { id: string; locale: string }[],\n oldRelations: { joinTable: any; relations: any[] }[]\n) => {\n /**\n * Create a map of old entry ids to new entry ids\n *\n * Will be used to update the relation target ids\n */\n const newEntryByLocale = keyBy('locale', newEntries);\n const oldEntriesMap = oldEntries.reduce(\n (acc, entry) => {\n const newEntry = newEntryByLocale[entry.locale];\n if (!newEntry) return acc;\n acc[entry.id] = newEntry.id;\n return acc;\n },\n {} as Record<string, string>\n );\n\n await strapi.db.transaction(async ({ trx }) => {\n // Iterate old relations that are deleted and insert the new ones\n for (const { joinTable, relations } of oldRelations) {\n // Update old ids with the new ones\n const column = joinTable.inverseJoinColumn.name;\n\n const newRelations = relations.map((relation) => {\n const newId = oldEntriesMap[relation[column]];\n return { ...relation, [column]: newId };\n });\n\n // Insert those relations into the join table\n await trx.batchInsert(joinTable.name, newRelations, 1000);\n }\n });\n};\n\nexport { load, sync };\n"],"names":["ids"],"mappings":";AAeA,MAAM,OAAO,OAAO,KAAsB,EAAE,aAAa,kBAA+B;AACtF,QAAM,UAAU,CAAA;AAGhB,QAAM,OAAO,GAAG,YAAY,OAAO,EAAE,UAAU;AAC7C,UAAM,eAAe,OAAO,OAAO,OAAO,YAAY;AACtD,UAAM,aAAa,OAAO,OAAO,OAAO,UAAU;AAElD,eAAW,SAAS,CAAC,GAAG,cAAc,GAAG,UAAU,GAAG;AACpD,YAAM,UAAU,OAAO,GAAG,SAAS,IAAI,MAAM,GAAG;AAEhD,iBAAW,aAAa,OAAO,OAAO,QAAQ,UAAU,GAAU;AAK9D,YAAA,UAAU,SAAS,cACnB,UAAU,WAAW,OACrB,UAAU,cACV,UAAU,UACV;AACA;AAAA,QACF;AAGA,cAAM,YAAY,UAAU;AAC5B,YAAI,CAAC,WAAW;AACd;AAAA,QACF;AAEA,cAAM,EAAE,MAAM,qBAAqB,UAAU;AAC7C,cAAM,EAAE,MAAM,qBAAqB,UAAU;AAM7C,cAAM,MAAM,YAAY,IAAI,CAAC,UAAU,MAAM,EAAE;AAE/C,cAAM,uBAAuB,MAAM,OAAO,GACvC,gBACA,OAAO,GAAG,EACV,KAAK,UAAU,IAAI,EACnB,QAAQ,kBAAkB,GAAG,EAC7B,YAAY,GAAG;AAEd,YAAA,qBAAqB,SAAS,GAAG;AACnC,kBAAQ,KAAK,EAAE,WAAW,WAAW,qBAAsB,CAAA;AAAA,QAC7D;AAcI,YAAA,CAAC,MAAM,SAAS,iBAAiB;AACnC,gBAAMA,OAAM,YAAY,IAAI,CAAC,UAAU,MAAM,EAAE;AAE/C,gBAAM,uBAAuB,MAAM,OAAO,GACvC,gBACA,OAAO,GAAG,EACV,KAAK,UAAU,IAAI,EACnB,QAAQ,kBAAkBA,IAAG,EAC7B,YAAY,GAAG;AAEd,cAAA,qBAAqB,SAAS,GAAG;AAInC,kBAAM,eAAe,qBAClB,OAAO,CAAC,aAAa;AACpB,oBAAM,oBAAoB,qBAAqB,KAAK,CAAC,gBAAgB;AACnE,uBAAO,YAAY,gBAAgB,MAAM,SAAS,gBAAgB;AAAA,cAAA,CACnE;AAED,qBAAO,CAAC;AAAA,YACT,CAAA,EACA,IAAI,KAAK,IAAI,CAAC;AAEjB,oBAAQ,KAAK,EAAE,WAAW,WAAW,aAAc,CAAA;AAAA,UACrD;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EAAA,CACD;AAEM,SAAA;AACT;AASA,MAAM,OAAO,OACX,YACA,YACA,iBACG;AAMG,QAAA,mBAAmB,MAAM,UAAU,UAAU;AACnD,QAAM,gBAAgB,WAAW;AAAA,IAC/B,CAAC,KAAK,UAAU;AACR,YAAA,WAAW,iBAAiB,MAAM,MAAM;AAC9C,UAAI,CAAC;AAAiB,eAAA;AAClB,UAAA,MAAM,EAAE,IAAI,SAAS;AAClB,aAAA;AAAA,IACT;AAAA,IACA,CAAC;AAAA,EAAA;AAGH,QAAM,OAAO,GAAG,YAAY,OAAO,EAAE,UAAU;AAE7C,eAAW,EAAE,WAAW,UAAU,KAAK,cAAc;AAE7C,YAAA,SAAS,UAAU,kBAAkB;AAE3C,YAAM,eAAe,UAAU,IAAI,CAAC,aAAa;AAC/C,cAAM,QAAQ,cAAc,SAAS,MAAM,CAAC;AAC5C,eAAO,EAAE,GAAG,UAAU,CAAC,MAAM,GAAG,MAAM;AAAA,MAAA,CACvC;AAGD,YAAM,IAAI,YAAY,UAAU,MAAM,cAAc,GAAI;AAAA,IAC1D;AAAA,EAAA,CACD;AACH;"}
1
+ {"version":3,"file":"unidirectional-relations.mjs","sources":["../../../../src/services/document-service/utils/unidirectional-relations.ts"],"sourcesContent":["/* eslint-disable no-continue */\nimport { keyBy, omit } from 'lodash/fp';\n\nimport type { UID, Schema } from '@strapi/types';\n\nimport type { JoinTable } from '@strapi/database';\n\ninterface LoadContext {\n oldVersions: { id: string; locale: string }[];\n newVersions: { id: string; locale: string }[];\n}\n\ninterface RelationUpdate {\n joinTable: JoinTable;\n relations: Record<string, any>[];\n}\n\ninterface RelationFilterOptions {\n /**\n * Function to determine if a relation should be propagated to new document versions\n * This replaces the hardcoded component-specific logic\n */\n shouldPropagateRelation?: (\n relation: Record<string, any>,\n model: Schema.Component | Schema.ContentType,\n trx: any\n ) => Promise<boolean>;\n}\n\n/**\n * Loads lingering relations that need to be updated when overriding a published or draft entry.\n * This is necessary because the relations are uni-directional and the target entry is not aware of the source entry.\n * This is not the case for bi-directional relations, where the target entry is also linked to the source entry.\n */\nconst load = async (\n uid: UID.ContentType,\n { oldVersions, newVersions }: LoadContext,\n options: RelationFilterOptions = {}\n): Promise<RelationUpdate[]> => {\n const updates: RelationUpdate[] = [];\n\n // Iterate all components and content types to find relations that need to be updated\n await strapi.db.transaction(async ({ trx }) => {\n const contentTypes = Object.values(strapi.contentTypes) as Schema.ContentType[];\n const components = Object.values(strapi.components) as Schema.Component[];\n\n for (const model of [...contentTypes, ...components]) {\n const dbModel = strapi.db.metadata.get(model.uid);\n\n for (const attribute of Object.values(dbModel.attributes) as any) {\n /**\n * Only consider unidirectional relations\n */\n if (\n attribute.type !== 'relation' ||\n attribute.target !== uid ||\n attribute.inversedBy ||\n attribute.mappedBy\n ) {\n continue;\n }\n\n // TODO: joinColumn relations\n const joinTable = attribute.joinTable;\n if (!joinTable) {\n continue;\n }\n\n const { name: sourceColumnName } = joinTable.joinColumn;\n const { name: targetColumnName } = joinTable.inverseJoinColumn;\n\n /**\n * Load all relations that need to be updated\n */\n // NOTE: when the model has draft and publish, we can assume relation are only draft to draft & published to published\n const ids = oldVersions.map((entry) => entry.id);\n\n const oldVersionsRelations = await strapi.db\n .getConnection()\n .select('*')\n .from(joinTable.name)\n .whereIn(targetColumnName, ids)\n .transacting(trx);\n\n if (oldVersionsRelations.length > 0) {\n updates.push({ joinTable, relations: oldVersionsRelations });\n }\n\n /**\n * if publishing\n * if published version exists\n * updated published versions links\n * else\n * create link to newly published version\n *\n * if discarding\n * if published version link exists & not draft version link\n * create link to new draft version\n */\n if (!model.options?.draftAndPublish) {\n const ids = newVersions.map((entry) => entry.id);\n\n // This is the step were we query the join table based on the id of the document\n const newVersionsRelations = await strapi.db\n .getConnection()\n .select('*')\n .from(joinTable.name)\n .whereIn(targetColumnName, ids)\n .transacting(trx);\n\n let versionRelations = newVersionsRelations;\n if (options.shouldPropagateRelation) {\n const relationsToPropagate = [];\n for (const relation of newVersionsRelations) {\n if (await options.shouldPropagateRelation(relation, model, trx)) {\n relationsToPropagate.push(relation);\n }\n }\n versionRelations = relationsToPropagate;\n }\n\n if (versionRelations.length > 0) {\n // when publishing a draft that doesn't have a published version yet,\n // copy the links to the draft over to the published version\n // when discarding a published version, if no drafts exists\n const discardToAdd = versionRelations\n .filter((relation) => {\n const matchingOldVersion = oldVersionsRelations.find((oldRelation) => {\n return oldRelation[sourceColumnName] === relation[sourceColumnName];\n });\n\n return !matchingOldVersion;\n })\n .map(omit(strapi.db.metadata.identifiers.ID_COLUMN));\n\n updates.push({ joinTable, relations: discardToAdd });\n }\n }\n }\n }\n });\n\n return updates;\n};\n\n/**\n * Updates uni directional relations to target the right entries when overriding published or draft entries.\n *\n * This function:\n * 1. Creates new relations pointing to the new entry versions\n * 2. Precisely deletes only the old relations being replaced to prevent orphaned links\n *\n * @param oldEntries The old entries that are being overridden\n * @param newEntries The new entries that are overriding the old ones\n * @param oldRelations The relations that were previously loaded with `load` @see load\n */\nconst sync = async (\n oldEntries: { id: string; locale: string }[],\n newEntries: { id: string; locale: string }[],\n oldRelations: { joinTable: any; relations: any[] }[]\n) => {\n /**\n * Create a map of old entry ids to new entry ids\n *\n * Will be used to update the relation target ids\n */\n const newEntryByLocale = keyBy('locale', newEntries);\n const oldEntriesMap = oldEntries.reduce(\n (acc, entry) => {\n const newEntry = newEntryByLocale[entry.locale];\n if (!newEntry) return acc;\n acc[entry.id] = newEntry.id;\n return acc;\n },\n {} as Record<string, string>\n );\n\n await strapi.db.transaction(async ({ trx }) => {\n // Iterate old relations that are deleted and insert the new ones\n for (const { joinTable, relations } of oldRelations) {\n // Update old ids with the new ones\n const column = joinTable.inverseJoinColumn.name;\n\n const newRelations = relations.map((relation) => {\n const newId = oldEntriesMap[relation[column]];\n return { ...relation, [column]: newId };\n });\n\n // Insert those relations into the join table\n await trx.batchInsert(joinTable.name, newRelations, 1000);\n }\n });\n};\n\nexport { load, sync };\nexport type { RelationFilterOptions };\n"],"names":["load","uid","oldVersions","newVersions","options","updates","strapi","db","transaction","trx","contentTypes","Object","values","components","model","dbModel","metadata","get","attribute","attributes","type","target","inversedBy","mappedBy","joinTable","name","sourceColumnName","joinColumn","targetColumnName","inverseJoinColumn","ids","map","entry","id","oldVersionsRelations","getConnection","select","from","whereIn","transacting","length","push","relations","draftAndPublish","newVersionsRelations","versionRelations","shouldPropagateRelation","relationsToPropagate","relation","discardToAdd","filter","matchingOldVersion","find","oldRelation","omit","identifiers","ID_COLUMN","sync","oldEntries","newEntries","oldRelations","newEntryByLocale","keyBy","oldEntriesMap","reduce","acc","newEntry","locale","column","newRelations","newId","batchInsert"],"mappings":"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"}
@@ -1,169 +1,238 @@
1
- "use strict";
2
- const _ = require("lodash");
3
- const delegate = require("delegates");
4
- const database = require("@strapi/database");
5
- const strapiUtils = require("@strapi/utils");
6
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
7
- const ___default = /* @__PURE__ */ _interopDefault(_);
8
- const delegate__default = /* @__PURE__ */ _interopDefault(delegate);
9
- const transformLoadParamsToQuery = (uid, field, params, pagination = {}) => {
10
- const query = strapi.get("query-params").transform(uid, { populate: { [field]: params } });
11
- const res = {
12
- ...query.populate[field],
13
- ...pagination
14
- };
15
- return res;
1
+ 'use strict';
2
+
3
+ var _ = require('lodash');
4
+ var delegate = require('delegates');
5
+ var database = require('@strapi/database');
6
+ var strapiUtils = require('@strapi/utils');
7
+
8
+ const transformLoadParamsToQuery = (uid, field, params, pagination = {})=>{
9
+ const query = strapi.get('query-params').transform(uid, {
10
+ populate: {
11
+ [field]: params
12
+ }
13
+ });
14
+ const res = {
15
+ ...query.populate[field],
16
+ ...pagination
17
+ };
18
+ return res;
16
19
  };
17
20
  const databaseErrorsToTransform = [
18
- database.errors.InvalidTimeError,
19
- database.errors.InvalidDateTimeError,
20
- database.errors.InvalidDateError,
21
- database.errors.InvalidRelationError
21
+ database.errors.InvalidTimeError,
22
+ database.errors.InvalidDateTimeError,
23
+ database.errors.InvalidDateError,
24
+ database.errors.InvalidRelationError
22
25
  ];
23
- const createDefaultImplementation = ({
24
- strapi: strapi2,
25
- db
26
- }) => ({
27
- async wrapParams(options = {}) {
28
- return options;
29
- },
30
- async wrapResult(result = {}) {
31
- return result;
32
- },
33
- async findMany(uid, opts) {
34
- const { kind } = strapi2.getModel(uid);
35
- const wrappedParams = await this.wrapParams(opts, { uid, action: "findMany" });
36
- if (kind === "singleType") {
37
- const entity = strapi2.documents(uid).findFirst(wrappedParams);
38
- return this.wrapResult(entity, { uid, action: "findOne" });
39
- }
40
- const entities = await strapi2.documents(uid).findMany(wrappedParams);
41
- return this.wrapResult(entities, { uid, action: "findMany" });
42
- },
43
- async findPage(uid, opts) {
44
- const wrappedParams = await this.wrapParams(opts, { uid, action: "findPage" });
45
- const query = strapi2.get("query-params").transform(uid, wrappedParams);
46
- const entities = await db.query(uid).findPage(query);
47
- return this.wrapResult(entities, { uid, action: "findMany" });
48
- },
49
- async findOne(uid, entityId, opts) {
50
- const wrappedParams = await this.wrapParams(opts, { uid, action: "findOne" });
51
- const res = await db.query(uid).findOne({ where: { id: entityId } });
52
- if (!res) {
53
- return this.wrapResult(null, { uid, action: "findOne" });
54
- }
55
- const entity = await strapi2.documents(uid).findOne({
56
- ...wrappedParams,
57
- documentId: res.documentId
58
- });
59
- return this.wrapResult(entity, { uid, action: "findOne" });
60
- },
61
- async count(uid, opts) {
62
- const wrappedParams = await this.wrapParams(opts, { uid, action: "count" });
63
- return strapi2.documents(uid).count(wrappedParams);
64
- },
65
- async create(uid, params) {
66
- const wrappedParams = await this.wrapParams(params, { uid, action: "create" });
67
- const { data } = wrappedParams;
68
- if (!data) {
69
- throw new Error("cannot create");
70
- }
71
- const shouldPublish = !strapiUtils.contentTypes.isDraft(data, strapi2.getModel(uid));
72
- const entity = await strapi2.documents(uid).create({
73
- ...wrappedParams,
74
- status: shouldPublish ? "published" : "draft"
75
- });
76
- return this.wrapResult(entity, { uid, action: "create" });
77
- },
78
- async update(uid, entityId, opts) {
79
- const wrappedParams = await this.wrapParams(opts, {
80
- uid,
81
- action: "update"
82
- });
83
- const entityToUpdate = await db.query(uid).findOne({ where: { id: entityId } });
84
- if (!entityToUpdate) {
85
- return this.wrapResult(null, { uid, action: "update" });
86
- }
87
- const shouldPublish = !strapiUtils.contentTypes.isDraft(entityToUpdate, strapi2.getModel(uid));
88
- const entity = strapi2.documents(uid).update({
89
- ...wrappedParams,
90
- status: shouldPublish ? "published" : "draft",
91
- documentId: entityToUpdate.documentId
92
- });
93
- return this.wrapResult(entity, { uid, action: "update" });
94
- },
95
- async delete(uid, entityId, opts) {
96
- const wrappedParams = await this.wrapParams(opts, { uid, action: "delete" });
97
- const entityToDelete = await db.query(uid).findOne({ where: { id: entityId } });
98
- if (!entityToDelete) {
99
- return this.wrapResult(null, { uid, action: "delete" });
100
- }
101
- await strapi2.documents(uid).delete({
102
- ...wrappedParams,
103
- documentId: entityToDelete.documentId
26
+ const createDefaultImplementation = ({ strapi: strapi1, db })=>({
27
+ async wrapParams (options = {}) {
28
+ return options;
29
+ },
30
+ async wrapResult (result = {}) {
31
+ return result;
32
+ },
33
+ async findMany (uid, opts) {
34
+ const { kind } = strapi1.getModel(uid);
35
+ const wrappedParams = await this.wrapParams(opts, {
36
+ uid,
37
+ action: 'findMany'
38
+ });
39
+ if (kind === 'singleType') {
40
+ const entity = strapi1.documents(uid).findFirst(wrappedParams);
41
+ return this.wrapResult(entity, {
42
+ uid,
43
+ action: 'findOne'
44
+ });
45
+ }
46
+ const entities = await strapi1.documents(uid).findMany(wrappedParams);
47
+ return this.wrapResult(entities, {
48
+ uid,
49
+ action: 'findMany'
50
+ });
51
+ },
52
+ async findPage (uid, opts) {
53
+ const wrappedParams = await this.wrapParams(opts, {
54
+ uid,
55
+ action: 'findPage'
56
+ });
57
+ const query = strapi1.get('query-params').transform(uid, wrappedParams);
58
+ const entities = await db.query(uid).findPage(query);
59
+ return this.wrapResult(entities, {
60
+ uid,
61
+ action: 'findMany'
62
+ });
63
+ },
64
+ async findOne (uid, entityId, opts) {
65
+ const wrappedParams = await this.wrapParams(opts, {
66
+ uid,
67
+ action: 'findOne'
68
+ });
69
+ const res = await db.query(uid).findOne({
70
+ where: {
71
+ id: entityId
72
+ }
73
+ });
74
+ if (!res) {
75
+ return this.wrapResult(null, {
76
+ uid,
77
+ action: 'findOne'
78
+ });
79
+ }
80
+ const entity = await strapi1.documents(uid).findOne({
81
+ ...wrappedParams,
82
+ documentId: res.documentId
83
+ });
84
+ return this.wrapResult(entity, {
85
+ uid,
86
+ action: 'findOne'
87
+ });
88
+ },
89
+ async count (uid, opts) {
90
+ const wrappedParams = await this.wrapParams(opts, {
91
+ uid,
92
+ action: 'count'
93
+ });
94
+ return strapi1.documents(uid).count(wrappedParams);
95
+ },
96
+ async create (uid, params) {
97
+ const wrappedParams = await this.wrapParams(params, {
98
+ uid,
99
+ action: 'create'
100
+ });
101
+ const { data } = wrappedParams;
102
+ if (!data) {
103
+ throw new Error('cannot create');
104
+ }
105
+ const shouldPublish = !strapiUtils.contentTypes.isDraft(data, strapi1.getModel(uid));
106
+ const entity = await strapi1.documents(uid).create({
107
+ ...wrappedParams,
108
+ status: shouldPublish ? 'published' : 'draft'
109
+ });
110
+ return this.wrapResult(entity, {
111
+ uid,
112
+ action: 'create'
113
+ });
114
+ },
115
+ async update (uid, entityId, opts) {
116
+ const wrappedParams = await this.wrapParams(opts, {
117
+ uid,
118
+ action: 'update'
119
+ });
120
+ const entityToUpdate = await db.query(uid).findOne({
121
+ where: {
122
+ id: entityId
123
+ }
124
+ });
125
+ if (!entityToUpdate) {
126
+ return this.wrapResult(null, {
127
+ uid,
128
+ action: 'update'
129
+ });
130
+ }
131
+ const shouldPublish = !strapiUtils.contentTypes.isDraft(entityToUpdate, strapi1.getModel(uid));
132
+ const entity = strapi1.documents(uid).update({
133
+ ...wrappedParams,
134
+ status: shouldPublish ? 'published' : 'draft',
135
+ documentId: entityToUpdate.documentId
136
+ });
137
+ return this.wrapResult(entity, {
138
+ uid,
139
+ action: 'update'
140
+ });
141
+ },
142
+ async delete (uid, entityId, opts) {
143
+ const wrappedParams = await this.wrapParams(opts, {
144
+ uid,
145
+ action: 'delete'
146
+ });
147
+ const entityToDelete = await db.query(uid).findOne({
148
+ where: {
149
+ id: entityId
150
+ }
151
+ });
152
+ if (!entityToDelete) {
153
+ return this.wrapResult(null, {
154
+ uid,
155
+ action: 'delete'
156
+ });
157
+ }
158
+ await strapi1.documents(uid).delete({
159
+ ...wrappedParams,
160
+ documentId: entityToDelete.documentId
161
+ });
162
+ return this.wrapResult(entityToDelete, {
163
+ uid,
164
+ action: 'delete'
165
+ });
166
+ },
167
+ async load (uid, entity, field, params) {
168
+ if (!_.isString(field)) {
169
+ throw new Error(`Invalid load. Expected "${field}" to be a string`);
170
+ }
171
+ const loadedEntity = await db.query(uid).load(entity, field, transformLoadParamsToQuery(uid, field, params ?? {}));
172
+ return this.wrapResult(loadedEntity, {
173
+ uid,
174
+ field,
175
+ action: 'load'
176
+ });
177
+ },
178
+ async loadPages (uid, entity, field, params, pagination = {}) {
179
+ if (!_.isString(field)) {
180
+ throw new Error(`Invalid load. Expected "${field}" to be a string`);
181
+ }
182
+ const { attributes } = strapi1.getModel(uid);
183
+ const attribute = attributes[field];
184
+ if (!strapiUtils.relations.isAnyToMany(attribute)) {
185
+ throw new Error(`Invalid load. Expected "${field}" to be an anyToMany relational attribute`);
186
+ }
187
+ const query = transformLoadParamsToQuery(uid, field, params ?? {}, pagination);
188
+ const loadedPage = await db.query(uid).loadPages(entity, field, query);
189
+ return {
190
+ ...loadedPage,
191
+ results: await this.wrapResult(loadedPage.results, {
192
+ uid,
193
+ field,
194
+ action: 'load'
195
+ })
196
+ };
197
+ }
104
198
  });
105
- return this.wrapResult(entityToDelete, { uid, action: "delete" });
106
- },
107
- async load(uid, entity, field, params) {
108
- if (!___default.default.isString(field)) {
109
- throw new Error(`Invalid load. Expected "${field}" to be a string`);
110
- }
111
- const loadedEntity = await db.query(uid).load(entity, field, transformLoadParamsToQuery(uid, field, params ?? {}));
112
- return this.wrapResult(loadedEntity, { uid, field, action: "load" });
113
- },
114
- async loadPages(uid, entity, field, params, pagination = {}) {
115
- if (!___default.default.isString(field)) {
116
- throw new Error(`Invalid load. Expected "${field}" to be a string`);
117
- }
118
- const { attributes } = strapi2.getModel(uid);
119
- const attribute = attributes[field];
120
- if (!strapiUtils.relations.isAnyToMany(attribute)) {
121
- throw new Error(`Invalid load. Expected "${field}" to be an anyToMany relational attribute`);
122
- }
123
- const query = transformLoadParamsToQuery(uid, field, params ?? {}, pagination);
124
- const loadedPage = await db.query(uid).loadPages(entity, field, query);
125
- return {
126
- ...loadedPage,
127
- results: await this.wrapResult(loadedPage.results, { uid, field, action: "load" })
128
- };
129
- }
130
- });
131
- const createEntityService = (ctx) => {
132
- const implementation = createDefaultImplementation(ctx);
133
- const service = {
134
- implementation,
135
- decorate(decorator) {
136
- if (typeof decorator !== "function") {
137
- throw new Error(`Decorator must be a function, received ${typeof decorator}`);
138
- }
139
- this.implementation = { ...this.implementation, ...decorator(this.implementation) };
140
- return this;
141
- }
142
- };
143
- const delegator = delegate__default.default(service, "implementation");
144
- Object.keys(service.implementation).forEach((key) => delegator.method(key));
145
- service.decorate((oldService) => {
146
- const newService = ___default.default.mapValues(
147
- oldService,
148
- (method, methodName) => async function(...args) {
149
- try {
150
- return await oldService[methodName].call(this, ...args);
151
- } catch (error) {
152
- if (databaseErrorsToTransform.some(
153
- (errorToTransform) => error instanceof errorToTransform
154
- )) {
155
- if (error instanceof Error) {
156
- throw new strapiUtils.errors.ValidationError(error.message);
199
+ var createEntityService = ((ctx)=>{
200
+ const implementation = createDefaultImplementation(ctx);
201
+ const service = {
202
+ implementation,
203
+ decorate (decorator) {
204
+ if (typeof decorator !== 'function') {
205
+ throw new Error(`Decorator must be a function, received ${typeof decorator}`);
157
206
  }
158
- throw error;
159
- }
160
- throw error;
207
+ this.implementation = {
208
+ ...this.implementation,
209
+ ...decorator(this.implementation)
210
+ };
211
+ return this;
161
212
  }
162
- }
163
- );
164
- return newService;
165
- });
166
- return service;
167
- };
213
+ };
214
+ const delegator = delegate(service, 'implementation');
215
+ // delegate every method in implementation
216
+ Object.keys(service.implementation).forEach((key)=>delegator.method(key));
217
+ // wrap methods to handle Database Errors
218
+ service.decorate((oldService)=>{
219
+ const newService = _.mapValues(oldService, (method, methodName)=>async function(...args) {
220
+ try {
221
+ return await oldService[methodName].call(this, ...args);
222
+ } catch (error) {
223
+ if (databaseErrorsToTransform.some((errorToTransform)=>error instanceof errorToTransform)) {
224
+ if (error instanceof Error) {
225
+ throw new strapiUtils.errors.ValidationError(error.message);
226
+ }
227
+ throw error;
228
+ }
229
+ throw error;
230
+ }
231
+ });
232
+ return newService;
233
+ });
234
+ return service;
235
+ });
236
+
168
237
  module.exports = createEntityService;
169
238
  //# sourceMappingURL=index.js.map