@strapi/core 0.0.0-experimental.fc1ac2acd58c8a5a858679956b6d102ac5ee4011 → 0.0.0-experimental.fca58d9b01ba89012d84a58a20556a6fd716cb92

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 (1014) hide show
  1. package/LICENSE +18 -3
  2. package/dist/Strapi.d.ts +52 -59
  3. package/dist/Strapi.d.ts.map +1 -1
  4. package/dist/Strapi.js +436 -431
  5. package/dist/Strapi.js.map +1 -1
  6. package/dist/Strapi.mjs +427 -442
  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.d.ts.map +1 -1
  13. package/dist/configuration/config-loader.js +110 -93
  14. package/dist/configuration/config-loader.js.map +1 -1
  15. package/dist/configuration/config-loader.mjs +109 -92
  16. package/dist/configuration/config-loader.mjs.map +1 -1
  17. package/dist/configuration/get-dirs.d.ts +10 -0
  18. package/dist/configuration/get-dirs.d.ts.map +1 -0
  19. package/dist/configuration/get-dirs.js +33 -0
  20. package/dist/configuration/get-dirs.js.map +1 -0
  21. package/dist/configuration/get-dirs.mjs +31 -0
  22. package/dist/configuration/get-dirs.mjs.map +1 -0
  23. package/dist/configuration/index.d.ts +5 -7
  24. package/dist/configuration/index.d.ts.map +1 -1
  25. package/dist/configuration/index.js +86 -72
  26. package/dist/configuration/index.js.map +1 -1
  27. package/dist/configuration/index.mjs +84 -68
  28. package/dist/configuration/index.mjs.map +1 -1
  29. package/dist/configuration/urls.d.ts.map +1 -1
  30. package/dist/configuration/urls.js +74 -61
  31. package/dist/configuration/urls.js.map +1 -1
  32. package/dist/configuration/urls.mjs +73 -62
  33. package/dist/configuration/urls.mjs.map +1 -1
  34. package/dist/container.d.ts +2 -2
  35. package/dist/container.d.ts.map +1 -1
  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.d.ts +3 -3
  41. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  42. package/dist/core-api/controller/collection-type.js +77 -73
  43. package/dist/core-api/controller/collection-type.js.map +1 -1
  44. package/dist/core-api/controller/collection-type.mjs +76 -74
  45. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  46. package/dist/core-api/controller/index.d.ts +3 -3
  47. package/dist/core-api/controller/index.d.ts.map +1 -1
  48. package/dist/core-api/controller/index.js +63 -48
  49. package/dist/core-api/controller/index.js.map +1 -1
  50. package/dist/core-api/controller/index.mjs +62 -49
  51. package/dist/core-api/controller/index.mjs.map +1 -1
  52. package/dist/core-api/controller/single-type.d.ts +3 -3
  53. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  54. package/dist/core-api/controller/single-type.js +41 -39
  55. package/dist/core-api/controller/single-type.js.map +1 -1
  56. package/dist/core-api/controller/single-type.mjs +40 -40
  57. package/dist/core-api/controller/single-type.mjs.map +1 -1
  58. package/dist/core-api/controller/transform.d.ts +2 -2
  59. package/dist/core-api/controller/transform.d.ts.map +1 -1
  60. package/dist/core-api/controller/transform.js +72 -66
  61. package/dist/core-api/controller/transform.js.map +1 -1
  62. package/dist/core-api/controller/transform.mjs +71 -67
  63. package/dist/core-api/controller/transform.mjs.map +1 -1
  64. package/dist/core-api/routes/index.d.ts.map +1 -1
  65. package/dist/core-api/routes/index.js +64 -62
  66. package/dist/core-api/routes/index.js.map +1 -1
  67. package/dist/core-api/routes/index.mjs +62 -62
  68. package/dist/core-api/routes/index.mjs.map +1 -1
  69. package/dist/core-api/service/collection-type.d.ts +11 -17
  70. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  71. package/dist/core-api/service/collection-type.js +73 -49
  72. package/dist/core-api/service/collection-type.js.map +1 -1
  73. package/dist/core-api/service/collection-type.mjs +72 -51
  74. package/dist/core-api/service/collection-type.mjs.map +1 -1
  75. package/dist/core-api/service/core-service.js +9 -8
  76. package/dist/core-api/service/core-service.js.map +1 -1
  77. package/dist/core-api/service/core-service.mjs +8 -9
  78. package/dist/core-api/service/core-service.mjs.map +1 -1
  79. package/dist/core-api/service/index.d.ts +3 -3
  80. package/dist/core-api/service/index.d.ts.map +1 -1
  81. package/dist/core-api/service/index.js +13 -13
  82. package/dist/core-api/service/index.js.map +1 -1
  83. package/dist/core-api/service/index.mjs +12 -14
  84. package/dist/core-api/service/index.mjs.map +1 -1
  85. package/dist/core-api/service/pagination.d.ts +4 -11
  86. package/dist/core-api/service/pagination.d.ts.map +1 -1
  87. package/dist/core-api/service/pagination.js +68 -68
  88. package/dist/core-api/service/pagination.js.map +1 -1
  89. package/dist/core-api/service/pagination.mjs +66 -71
  90. package/dist/core-api/service/pagination.mjs.map +1 -1
  91. package/dist/core-api/service/single-type.d.ts +4 -4
  92. package/dist/core-api/service/single-type.d.ts.map +1 -1
  93. package/dist/core-api/service/single-type.js +43 -32
  94. package/dist/core-api/service/single-type.js.map +1 -1
  95. package/dist/core-api/service/single-type.mjs +42 -34
  96. package/dist/core-api/service/single-type.mjs.map +1 -1
  97. package/dist/domain/content-type/index.d.ts +1 -1
  98. package/dist/domain/content-type/index.d.ts.map +1 -1
  99. package/dist/domain/content-type/index.js +95 -100
  100. package/dist/domain/content-type/index.js.map +1 -1
  101. package/dist/domain/content-type/index.mjs +94 -100
  102. package/dist/domain/content-type/index.mjs.map +1 -1
  103. package/dist/domain/content-type/validator.js +84 -69
  104. package/dist/domain/content-type/validator.js.map +1 -1
  105. package/dist/domain/content-type/validator.mjs +83 -68
  106. package/dist/domain/content-type/validator.mjs.map +1 -1
  107. package/dist/domain/module/index.d.ts +24 -23
  108. package/dist/domain/module/index.d.ts.map +1 -1
  109. package/dist/domain/module/index.js +109 -99
  110. package/dist/domain/module/index.js.map +1 -1
  111. package/dist/domain/module/index.mjs +108 -98
  112. package/dist/domain/module/index.mjs.map +1 -1
  113. package/dist/domain/module/validation.js +25 -20
  114. package/dist/domain/module/validation.js.map +1 -1
  115. package/dist/domain/module/validation.mjs +24 -21
  116. package/dist/domain/module/validation.mjs.map +1 -1
  117. package/dist/ee/index.d.ts +5 -2
  118. package/dist/ee/index.d.ts.map +1 -1
  119. package/dist/ee/index.js +171 -132
  120. package/dist/ee/index.js.map +1 -1
  121. package/dist/ee/index.mjs +170 -134
  122. package/dist/ee/index.mjs.map +1 -1
  123. package/dist/ee/license.d.ts +2 -2
  124. package/dist/ee/license.d.ts.map +1 -1
  125. package/dist/ee/license.js +100 -74
  126. package/dist/ee/license.js.map +1 -1
  127. package/dist/ee/license.mjs +99 -75
  128. package/dist/ee/license.mjs.map +1 -1
  129. package/dist/factories.d.ts +10 -10
  130. package/dist/factories.d.ts.map +1 -1
  131. package/dist/factories.js +72 -63
  132. package/dist/factories.js.map +1 -1
  133. package/dist/factories.mjs +71 -67
  134. package/dist/factories.mjs.map +1 -1
  135. package/dist/index.d.ts +18 -2
  136. package/dist/index.d.ts.map +1 -1
  137. package/dist/index.js +32 -5
  138. package/dist/index.js.map +1 -1
  139. package/dist/index.mjs +29 -5
  140. package/dist/index.mjs.map +1 -1
  141. package/dist/loaders/admin.d.ts +2 -2
  142. package/dist/loaders/admin.d.ts.map +1 -1
  143. package/dist/loaders/admin.js +21 -21
  144. package/dist/loaders/admin.js.map +1 -1
  145. package/dist/loaders/admin.mjs +20 -21
  146. package/dist/loaders/admin.mjs.map +1 -1
  147. package/dist/loaders/apis.d.ts +2 -2
  148. package/dist/loaders/apis.d.ts.map +1 -1
  149. package/dist/loaders/apis.js +143 -120
  150. package/dist/loaders/apis.js.map +1 -1
  151. package/dist/loaders/apis.mjs +142 -119
  152. package/dist/loaders/apis.mjs.map +1 -1
  153. package/dist/loaders/components.d.ts +2 -2
  154. package/dist/loaders/components.d.ts.map +1 -1
  155. package/dist/loaders/components.js +33 -34
  156. package/dist/loaders/components.js.map +1 -1
  157. package/dist/loaders/components.mjs +32 -34
  158. package/dist/loaders/components.mjs.map +1 -1
  159. package/dist/loaders/index.d.ts +2 -2
  160. package/dist/loaders/index.d.ts.map +1 -1
  161. package/dist/loaders/index.js +22 -22
  162. package/dist/loaders/index.js.map +1 -1
  163. package/dist/loaders/index.mjs +21 -23
  164. package/dist/loaders/index.mjs.map +1 -1
  165. package/dist/loaders/middlewares.d.ts +2 -2
  166. package/dist/loaders/middlewares.d.ts.map +1 -1
  167. package/dist/loaders/middlewares.js +29 -25
  168. package/dist/loaders/middlewares.js.map +1 -1
  169. package/dist/loaders/middlewares.mjs +28 -25
  170. package/dist/loaders/middlewares.mjs.map +1 -1
  171. package/dist/loaders/plugins/get-enabled-plugins.d.ts +2 -2
  172. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  173. package/dist/loaders/plugins/get-enabled-plugins.js +125 -100
  174. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  175. package/dist/loaders/plugins/get-enabled-plugins.mjs +124 -99
  176. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  177. package/dist/loaders/plugins/get-user-plugins-config.js +25 -24
  178. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  179. package/dist/loaders/plugins/get-user-plugins-config.mjs +24 -23
  180. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  181. package/dist/loaders/plugins/index.d.ts +2 -2
  182. package/dist/loaders/plugins/index.d.ts.map +1 -1
  183. package/dist/loaders/plugins/index.js +141 -104
  184. package/dist/loaders/plugins/index.js.map +1 -1
  185. package/dist/loaders/plugins/index.mjs +121 -104
  186. package/dist/loaders/plugins/index.mjs.map +1 -1
  187. package/dist/loaders/policies.d.ts +2 -2
  188. package/dist/loaders/policies.d.ts.map +1 -1
  189. package/dist/loaders/policies.js +24 -20
  190. package/dist/loaders/policies.js.map +1 -1
  191. package/dist/loaders/policies.mjs +23 -20
  192. package/dist/loaders/policies.mjs.map +1 -1
  193. package/dist/loaders/sanitizers.d.ts +2 -2
  194. package/dist/loaders/sanitizers.d.ts.map +1 -1
  195. package/dist/loaders/sanitizers.js +10 -4
  196. package/dist/loaders/sanitizers.js.map +1 -1
  197. package/dist/loaders/sanitizers.mjs +9 -6
  198. package/dist/loaders/sanitizers.mjs.map +1 -1
  199. package/dist/loaders/src-index.d.ts +2 -2
  200. package/dist/loaders/src-index.d.ts.map +1 -1
  201. package/dist/loaders/src-index.js +35 -27
  202. package/dist/loaders/src-index.js.map +1 -1
  203. package/dist/loaders/src-index.mjs +34 -29
  204. package/dist/loaders/src-index.mjs.map +1 -1
  205. package/dist/loaders/validators.d.ts +2 -2
  206. package/dist/loaders/validators.d.ts.map +1 -1
  207. package/dist/loaders/validators.js +9 -4
  208. package/dist/loaders/validators.js.map +1 -1
  209. package/dist/loaders/validators.mjs +8 -6
  210. package/dist/loaders/validators.mjs.map +1 -1
  211. package/dist/middlewares/body.d.ts +4 -4
  212. package/dist/middlewares/body.d.ts.map +1 -1
  213. package/dist/middlewares/body.js +58 -54
  214. package/dist/middlewares/body.js.map +1 -1
  215. package/dist/middlewares/body.mjs +57 -51
  216. package/dist/middlewares/body.mjs.map +1 -1
  217. package/dist/middlewares/compression.d.ts +2 -2
  218. package/dist/middlewares/compression.d.ts.map +1 -1
  219. package/dist/middlewares/compression.js +6 -6
  220. package/dist/middlewares/compression.js.map +1 -1
  221. package/dist/middlewares/compression.mjs +5 -5
  222. package/dist/middlewares/compression.mjs.map +1 -1
  223. package/dist/middlewares/cors.d.ts +2 -2
  224. package/dist/middlewares/cors.d.ts.map +1 -1
  225. package/dist/middlewares/cors.js +59 -46
  226. package/dist/middlewares/cors.js.map +1 -1
  227. package/dist/middlewares/cors.mjs +58 -45
  228. package/dist/middlewares/cors.mjs.map +1 -1
  229. package/dist/middlewares/errors.d.ts +2 -2
  230. package/dist/middlewares/errors.d.ts.map +1 -1
  231. package/dist/middlewares/errors.js +32 -30
  232. package/dist/middlewares/errors.js.map +1 -1
  233. package/dist/middlewares/errors.mjs +31 -31
  234. package/dist/middlewares/errors.mjs.map +1 -1
  235. package/dist/middlewares/favicon.d.ts +2 -2
  236. package/dist/middlewares/favicon.d.ts.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.d.ts +2 -2
  242. package/dist/middlewares/index.d.ts.map +1 -1
  243. package/dist/middlewares/index.js +32 -30
  244. package/dist/middlewares/index.js.map +1 -1
  245. package/dist/middlewares/index.mjs +31 -31
  246. package/dist/middlewares/index.mjs.map +1 -1
  247. package/dist/middlewares/ip.d.ts +2 -2
  248. package/dist/middlewares/ip.d.ts.map +1 -1
  249. package/dist/middlewares/ip.js +6 -6
  250. package/dist/middlewares/ip.js.map +1 -1
  251. package/dist/middlewares/ip.mjs +5 -5
  252. package/dist/middlewares/ip.mjs.map +1 -1
  253. package/dist/middlewares/logger.d.ts +2 -2
  254. package/dist/middlewares/logger.d.ts.map +1 -1
  255. package/dist/middlewares/logger.js +10 -9
  256. package/dist/middlewares/logger.js.map +1 -1
  257. package/dist/middlewares/logger.mjs +9 -10
  258. package/dist/middlewares/logger.mjs.map +1 -1
  259. package/dist/middlewares/powered-by.d.ts +2 -2
  260. package/dist/middlewares/powered-by.d.ts.map +1 -1
  261. package/dist/middlewares/powered-by.js +13 -9
  262. package/dist/middlewares/powered-by.js.map +1 -1
  263. package/dist/middlewares/powered-by.mjs +12 -10
  264. package/dist/middlewares/powered-by.mjs.map +1 -1
  265. package/dist/middlewares/public.d.ts +2 -2
  266. package/dist/middlewares/public.d.ts.map +1 -1
  267. package/dist/middlewares/public.js +33 -29
  268. package/dist/middlewares/public.js.map +1 -1
  269. package/dist/middlewares/public.mjs +32 -28
  270. package/dist/middlewares/public.mjs.map +1 -1
  271. package/dist/middlewares/query.d.ts +2 -2
  272. package/dist/middlewares/query.d.ts.map +1 -1
  273. package/dist/middlewares/query.js +35 -32
  274. package/dist/middlewares/query.js.map +1 -1
  275. package/dist/middlewares/query.mjs +34 -31
  276. package/dist/middlewares/query.mjs.map +1 -1
  277. package/dist/middlewares/response-time.d.ts +2 -2
  278. package/dist/middlewares/response-time.d.ts.map +1 -1
  279. package/dist/middlewares/response-time.js +10 -9
  280. package/dist/middlewares/response-time.js.map +1 -1
  281. package/dist/middlewares/response-time.mjs +9 -10
  282. package/dist/middlewares/response-time.mjs.map +1 -1
  283. package/dist/middlewares/responses.d.ts +3 -3
  284. package/dist/middlewares/responses.d.ts.map +1 -1
  285. package/dist/middlewares/responses.js +14 -12
  286. package/dist/middlewares/responses.js.map +1 -1
  287. package/dist/middlewares/responses.mjs +13 -13
  288. package/dist/middlewares/responses.mjs.map +1 -1
  289. package/dist/middlewares/security.d.ts +2 -2
  290. package/dist/middlewares/security.d.ts.map +1 -1
  291. package/dist/middlewares/security.js +110 -65
  292. package/dist/middlewares/security.js.map +1 -1
  293. package/dist/middlewares/security.mjs +108 -63
  294. package/dist/middlewares/security.mjs.map +1 -1
  295. package/dist/middlewares/session.d.ts +2 -2
  296. package/dist/middlewares/session.d.ts.map +1 -1
  297. package/dist/middlewares/session.js +26 -25
  298. package/dist/middlewares/session.js.map +1 -1
  299. package/dist/middlewares/session.mjs +25 -24
  300. package/dist/middlewares/session.mjs.map +1 -1
  301. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +33 -0
  302. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -0
  303. package/dist/migrations/database/5.0.0-discard-drafts.js +168 -0
  304. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
  305. package/dist/migrations/database/5.0.0-discard-drafts.mjs +165 -0
  306. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
  307. package/dist/migrations/draft-publish.d.ts +2 -2
  308. package/dist/migrations/draft-publish.d.ts.map +1 -1
  309. package/dist/migrations/draft-publish.js +59 -49
  310. package/dist/migrations/draft-publish.js.map +1 -1
  311. package/dist/migrations/draft-publish.mjs +58 -51
  312. package/dist/migrations/draft-publish.mjs.map +1 -1
  313. package/dist/migrations/i18n.d.ts +5 -0
  314. package/dist/migrations/i18n.d.ts.map +1 -0
  315. package/dist/migrations/i18n.js +71 -0
  316. package/dist/migrations/i18n.js.map +1 -0
  317. package/dist/migrations/i18n.mjs +68 -0
  318. package/dist/migrations/i18n.mjs.map +1 -0
  319. package/dist/migrations/index.d.ts +5 -0
  320. package/dist/migrations/index.d.ts.map +1 -0
  321. package/dist/migrations/index.js +29 -0
  322. package/dist/migrations/index.js.map +1 -0
  323. package/dist/migrations/index.mjs +26 -0
  324. package/dist/migrations/index.mjs.map +1 -0
  325. package/dist/package.json.js +182 -0
  326. package/dist/package.json.js.map +1 -0
  327. package/dist/package.json.mjs +159 -0
  328. package/dist/package.json.mjs.map +1 -0
  329. package/dist/providers/admin.d.ts +3 -0
  330. package/dist/providers/admin.d.ts.map +1 -0
  331. package/dist/providers/admin.js +30 -0
  332. package/dist/providers/admin.js.map +1 -0
  333. package/dist/providers/admin.mjs +28 -0
  334. package/dist/providers/admin.mjs.map +1 -0
  335. package/dist/providers/coreStore.d.ts +3 -0
  336. package/dist/providers/coreStore.d.ts.map +1 -0
  337. package/dist/providers/coreStore.js +16 -0
  338. package/dist/providers/coreStore.js.map +1 -0
  339. package/dist/providers/coreStore.mjs +14 -0
  340. package/dist/providers/coreStore.mjs.map +1 -0
  341. package/dist/providers/cron.d.ts +3 -0
  342. package/dist/providers/cron.d.ts.map +1 -0
  343. package/dist/providers/cron.js +23 -0
  344. package/dist/providers/cron.js.map +1 -0
  345. package/dist/providers/cron.mjs +21 -0
  346. package/dist/providers/cron.mjs.map +1 -0
  347. package/dist/providers/index.d.ts +3 -0
  348. package/dist/providers/index.d.ts.map +1 -0
  349. package/dist/providers/index.js +20 -0
  350. package/dist/providers/index.js.map +1 -0
  351. package/dist/providers/index.mjs +18 -0
  352. package/dist/providers/index.mjs.map +1 -0
  353. package/dist/providers/provider.d.ts +9 -0
  354. package/dist/providers/provider.d.ts.map +1 -0
  355. package/dist/providers/provider.js +6 -0
  356. package/dist/providers/provider.js.map +1 -0
  357. package/dist/providers/provider.mjs +4 -0
  358. package/dist/providers/provider.mjs.map +1 -0
  359. package/dist/providers/registries.d.ts +3 -0
  360. package/dist/providers/registries.d.ts.map +1 -0
  361. package/dist/providers/registries.js +40 -0
  362. package/dist/providers/registries.js.map +1 -0
  363. package/dist/providers/registries.mjs +38 -0
  364. package/dist/providers/registries.mjs.map +1 -0
  365. package/dist/providers/telemetry.d.ts +3 -0
  366. package/dist/providers/telemetry.d.ts.map +1 -0
  367. package/dist/providers/telemetry.js +22 -0
  368. package/dist/providers/telemetry.js.map +1 -0
  369. package/dist/providers/telemetry.mjs +20 -0
  370. package/dist/providers/telemetry.mjs.map +1 -0
  371. package/dist/providers/webhooks.d.ts +3 -0
  372. package/dist/providers/webhooks.d.ts.map +1 -0
  373. package/dist/providers/webhooks.js +32 -0
  374. package/dist/providers/webhooks.js.map +1 -0
  375. package/dist/providers/webhooks.mjs +30 -0
  376. package/dist/providers/webhooks.mjs.map +1 -0
  377. package/dist/registries/apis.d.ts +2 -2
  378. package/dist/registries/apis.d.ts.map +1 -1
  379. package/dist/registries/apis.js +23 -20
  380. package/dist/registries/apis.js.map +1 -1
  381. package/dist/registries/apis.mjs +22 -22
  382. package/dist/registries/apis.mjs.map +1 -1
  383. package/dist/registries/components.d.ts +6 -6
  384. package/dist/registries/components.d.ts.map +1 -1
  385. package/dist/registries/components.js +35 -37
  386. package/dist/registries/components.js.map +1 -1
  387. package/dist/registries/components.mjs +34 -39
  388. package/dist/registries/components.mjs.map +1 -1
  389. package/dist/registries/content-types.d.ts +5 -5
  390. package/dist/registries/content-types.d.ts.map +1 -1
  391. package/dist/registries/content-types.js +54 -59
  392. package/dist/registries/content-types.js.map +1 -1
  393. package/dist/registries/content-types.mjs +53 -61
  394. package/dist/registries/content-types.mjs.map +1 -1
  395. package/dist/registries/controllers.d.ts +10 -10
  396. package/dist/registries/controllers.d.ts.map +1 -1
  397. package/dist/registries/controllers.js +70 -71
  398. package/dist/registries/controllers.js.map +1 -1
  399. package/dist/registries/controllers.mjs +69 -73
  400. package/dist/registries/controllers.mjs.map +1 -1
  401. package/dist/registries/custom-fields.d.ts +3 -3
  402. package/dist/registries/custom-fields.d.ts.map +1 -1
  403. package/dist/registries/custom-fields.js +75 -65
  404. package/dist/registries/custom-fields.js.map +1 -1
  405. package/dist/registries/custom-fields.mjs +74 -67
  406. package/dist/registries/custom-fields.mjs.map +1 -1
  407. package/dist/registries/hooks.js +46 -49
  408. package/dist/registries/hooks.js.map +1 -1
  409. package/dist/registries/hooks.mjs +45 -51
  410. package/dist/registries/hooks.mjs.map +1 -1
  411. package/dist/registries/index.d.ts +0 -1
  412. package/dist/registries/index.d.ts.map +1 -1
  413. package/dist/registries/middlewares.d.ts +6 -6
  414. package/dist/registries/middlewares.d.ts.map +1 -1
  415. package/dist/registries/middlewares.js +49 -51
  416. package/dist/registries/middlewares.js.map +1 -1
  417. package/dist/registries/middlewares.mjs +48 -53
  418. package/dist/registries/middlewares.mjs.map +1 -1
  419. package/dist/registries/models.js +14 -13
  420. package/dist/registries/models.js.map +1 -1
  421. package/dist/registries/models.mjs +13 -14
  422. package/dist/registries/models.mjs.map +1 -1
  423. package/dist/registries/modules.d.ts +2 -2
  424. package/dist/registries/modules.d.ts.map +1 -1
  425. package/dist/registries/modules.js +39 -36
  426. package/dist/registries/modules.js.map +1 -1
  427. package/dist/registries/modules.mjs +38 -38
  428. package/dist/registries/modules.mjs.map +1 -1
  429. package/dist/registries/namespace.js +21 -20
  430. package/dist/registries/namespace.js.map +1 -1
  431. package/dist/registries/namespace.mjs +20 -23
  432. package/dist/registries/namespace.mjs.map +1 -1
  433. package/dist/registries/plugins.d.ts +5 -5
  434. package/dist/registries/plugins.d.ts.map +1 -1
  435. package/dist/registries/plugins.js +23 -20
  436. package/dist/registries/plugins.js.map +1 -1
  437. package/dist/registries/plugins.mjs +22 -22
  438. package/dist/registries/plugins.mjs.map +1 -1
  439. package/dist/registries/policies.d.ts +22 -10
  440. package/dist/registries/policies.d.ts.map +1 -1
  441. package/dist/registries/policies.js +107 -54
  442. package/dist/registries/policies.js.map +1 -1
  443. package/dist/registries/policies.mjs +106 -56
  444. package/dist/registries/policies.mjs.map +1 -1
  445. package/dist/registries/sanitizers.js +23 -22
  446. package/dist/registries/sanitizers.js.map +1 -1
  447. package/dist/registries/sanitizers.mjs +22 -22
  448. package/dist/registries/sanitizers.mjs.map +1 -1
  449. package/dist/registries/services.d.ts +8 -8
  450. package/dist/registries/services.d.ts.map +1 -1
  451. package/dist/registries/services.js +71 -71
  452. package/dist/registries/services.js.map +1 -1
  453. package/dist/registries/services.mjs +70 -73
  454. package/dist/registries/services.mjs.map +1 -1
  455. package/dist/registries/validators.js +23 -22
  456. package/dist/registries/validators.js.map +1 -1
  457. package/dist/registries/validators.mjs +22 -22
  458. package/dist/registries/validators.mjs.map +1 -1
  459. package/dist/services/auth/index.d.ts +4 -4
  460. package/dist/services/auth/index.d.ts.map +1 -1
  461. package/dist/services/auth/index.js +74 -74
  462. package/dist/services/auth/index.js.map +1 -1
  463. package/dist/services/auth/index.mjs +73 -74
  464. package/dist/services/auth/index.mjs.map +1 -1
  465. package/dist/services/config.d.ts +3 -0
  466. package/dist/services/config.d.ts.map +1 -0
  467. package/dist/services/config.js +51 -0
  468. package/dist/services/config.js.map +1 -0
  469. package/dist/services/config.mjs +49 -0
  470. package/dist/services/config.mjs.map +1 -0
  471. package/dist/services/content-api/index.d.ts +31 -15
  472. package/dist/services/content-api/index.d.ts.map +1 -1
  473. package/dist/services/content-api/index.js +80 -53
  474. package/dist/services/content-api/index.js.map +1 -1
  475. package/dist/services/content-api/index.mjs +79 -53
  476. package/dist/services/content-api/index.mjs.map +1 -1
  477. package/dist/services/content-api/permissions/engine.js +8 -5
  478. package/dist/services/content-api/permissions/engine.js.map +1 -1
  479. package/dist/services/content-api/permissions/engine.mjs +7 -5
  480. package/dist/services/content-api/permissions/engine.mjs.map +1 -1
  481. package/dist/services/content-api/permissions/index.d.ts +13 -15
  482. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  483. package/dist/services/content-api/permissions/index.js +101 -81
  484. package/dist/services/content-api/permissions/index.js.map +1 -1
  485. package/dist/services/content-api/permissions/index.mjs +100 -81
  486. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  487. package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
  488. package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
  489. package/dist/services/content-api/permissions/providers/action.js +17 -14
  490. package/dist/services/content-api/permissions/providers/action.js.map +1 -1
  491. package/dist/services/content-api/permissions/providers/action.mjs +16 -16
  492. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
  493. package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
  494. package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
  495. package/dist/services/content-api/permissions/providers/condition.js +17 -14
  496. package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
  497. package/dist/services/content-api/permissions/providers/condition.mjs +16 -16
  498. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
  499. package/dist/services/core-store.d.ts.map +1 -1
  500. package/dist/services/core-store.js +115 -95
  501. package/dist/services/core-store.js.map +1 -1
  502. package/dist/services/core-store.mjs +114 -97
  503. package/dist/services/core-store.mjs.map +1 -1
  504. package/dist/services/cron.d.ts +5 -5
  505. package/dist/services/cron.d.ts.map +1 -1
  506. package/dist/services/cron.js +74 -60
  507. package/dist/services/cron.js.map +1 -1
  508. package/dist/services/cron.mjs +73 -62
  509. package/dist/services/cron.mjs.map +1 -1
  510. package/dist/services/custom-fields.d.ts +2 -2
  511. package/dist/services/custom-fields.d.ts.map +1 -1
  512. package/dist/services/custom-fields.js +9 -7
  513. package/dist/services/custom-fields.js.map +1 -1
  514. package/dist/services/custom-fields.mjs +8 -9
  515. package/dist/services/custom-fields.mjs.map +1 -1
  516. package/dist/services/document-service/attributes/index.d.ts +6 -0
  517. package/dist/services/document-service/attributes/index.d.ts.map +1 -0
  518. package/dist/services/document-service/attributes/index.js +27 -0
  519. package/dist/services/document-service/attributes/index.js.map +1 -0
  520. package/dist/services/document-service/attributes/index.mjs +25 -0
  521. package/dist/services/document-service/attributes/index.mjs.map +1 -0
  522. package/dist/services/document-service/attributes/transforms.d.ts +10 -0
  523. package/dist/services/document-service/attributes/transforms.d.ts.map +1 -0
  524. package/dist/services/document-service/attributes/transforms.js +21 -0
  525. package/dist/services/document-service/attributes/transforms.js.map +1 -0
  526. package/dist/services/document-service/attributes/transforms.mjs +19 -0
  527. package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
  528. package/dist/services/document-service/common.d.ts +2 -2
  529. package/dist/services/document-service/common.d.ts.map +1 -1
  530. package/dist/services/document-service/common.js +5 -4
  531. package/dist/services/document-service/common.js.map +1 -1
  532. package/dist/services/document-service/common.mjs +4 -5
  533. package/dist/services/document-service/common.mjs.map +1 -1
  534. package/dist/services/document-service/components.d.ts +25 -1
  535. package/dist/services/document-service/components.d.ts.map +1 -1
  536. package/dist/services/document-service/components.js +286 -0
  537. package/dist/services/document-service/components.js.map +1 -0
  538. package/dist/services/document-service/components.mjs +278 -0
  539. package/dist/services/document-service/components.mjs.map +1 -0
  540. package/dist/services/document-service/draft-and-publish.d.ts +7 -7
  541. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  542. package/dist/services/document-service/draft-and-publish.js +94 -54
  543. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  544. package/dist/services/document-service/draft-and-publish.mjs +87 -54
  545. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  546. package/dist/services/document-service/entries.d.ts +10 -0
  547. package/dist/services/document-service/entries.d.ts.map +1 -0
  548. package/dist/services/document-service/entries.js +113 -0
  549. package/dist/services/document-service/entries.js.map +1 -0
  550. package/dist/services/document-service/entries.mjs +111 -0
  551. package/dist/services/document-service/entries.mjs.map +1 -0
  552. package/dist/services/document-service/events.d.ts +25 -0
  553. package/dist/services/document-service/events.d.ts.map +1 -0
  554. package/dist/services/document-service/events.js +59 -0
  555. package/dist/services/document-service/events.js.map +1 -0
  556. package/dist/services/document-service/events.mjs +57 -0
  557. package/dist/services/document-service/events.mjs.map +1 -0
  558. package/dist/services/document-service/index.d.ts +3 -4
  559. package/dist/services/document-service/index.d.ts.map +1 -1
  560. package/dist/services/document-service/index.js +53 -19
  561. package/dist/services/document-service/index.js.map +1 -1
  562. package/dist/services/document-service/index.mjs +52 -20
  563. package/dist/services/document-service/index.mjs.map +1 -1
  564. package/dist/services/document-service/internationalization.d.ts +5 -5
  565. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  566. package/dist/services/document-service/internationalization.js +66 -41
  567. package/dist/services/document-service/internationalization.js.map +1 -1
  568. package/dist/services/document-service/internationalization.mjs +61 -41
  569. package/dist/services/document-service/internationalization.mjs.map +1 -1
  570. package/dist/services/document-service/middlewares/errors.d.ts +6 -0
  571. package/dist/services/document-service/middlewares/errors.d.ts.map +1 -0
  572. package/dist/services/document-service/middlewares/errors.js +29 -0
  573. package/dist/services/document-service/middlewares/errors.js.map +1 -0
  574. package/dist/services/document-service/middlewares/errors.mjs +27 -0
  575. package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
  576. package/dist/services/document-service/middlewares/index.d.ts +3 -0
  577. package/dist/services/document-service/middlewares/index.d.ts.map +1 -0
  578. package/dist/services/document-service/middlewares/middleware-manager.d.ts +10 -0
  579. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -0
  580. package/dist/services/document-service/middlewares/middleware-manager.js +51 -0
  581. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
  582. package/dist/services/document-service/middlewares/middleware-manager.mjs +49 -0
  583. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
  584. package/dist/services/document-service/params.d.ts +3 -1
  585. package/dist/services/document-service/params.d.ts.map +1 -1
  586. package/dist/services/document-service/params.js +14 -0
  587. package/dist/services/document-service/params.js.map +1 -0
  588. package/dist/services/document-service/params.mjs +12 -0
  589. package/dist/services/document-service/params.mjs.map +1 -0
  590. package/dist/services/document-service/repository.d.ts.map +1 -1
  591. package/dist/services/document-service/repository.js +353 -293
  592. package/dist/services/document-service/repository.js.map +1 -1
  593. package/dist/services/document-service/repository.mjs +352 -294
  594. package/dist/services/document-service/repository.mjs.map +1 -1
  595. package/dist/services/document-service/transform/data.d.ts.map +1 -1
  596. package/dist/services/document-service/transform/data.js +22 -10
  597. package/dist/services/document-service/transform/data.js.map +1 -1
  598. package/dist/services/document-service/transform/data.mjs +21 -11
  599. package/dist/services/document-service/transform/data.mjs.map +1 -1
  600. package/dist/services/document-service/transform/fields.d.ts +2 -2
  601. package/dist/services/document-service/transform/fields.d.ts.map +1 -1
  602. package/dist/services/document-service/transform/fields.js +26 -17
  603. package/dist/services/document-service/transform/fields.js.map +1 -1
  604. package/dist/services/document-service/transform/fields.mjs +25 -18
  605. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  606. package/dist/services/document-service/transform/id-map.d.ts +3 -3
  607. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  608. package/dist/services/document-service/transform/id-map.js +116 -69
  609. package/dist/services/document-service/transform/id-map.js.map +1 -1
  610. package/dist/services/document-service/transform/id-map.mjs +115 -70
  611. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  612. package/dist/services/document-service/transform/id-transform.d.ts +2 -2
  613. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  614. package/dist/services/document-service/transform/id-transform.js +38 -30
  615. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  616. package/dist/services/document-service/transform/id-transform.mjs +36 -30
  617. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  618. package/dist/services/document-service/transform/populate.d.ts +2 -2
  619. package/dist/services/document-service/transform/populate.d.ts.map +1 -1
  620. package/dist/services/document-service/transform/populate.js +23 -18
  621. package/dist/services/document-service/transform/populate.js.map +1 -1
  622. package/dist/services/document-service/transform/populate.mjs +22 -19
  623. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  624. package/dist/services/document-service/transform/query.d.ts +5 -0
  625. package/dist/services/document-service/transform/query.d.ts.map +1 -0
  626. package/dist/services/document-service/transform/query.js +14 -0
  627. package/dist/services/document-service/transform/query.js.map +1 -0
  628. package/dist/services/document-service/transform/query.mjs +12 -0
  629. package/dist/services/document-service/transform/query.mjs.map +1 -0
  630. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +8 -7
  631. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  632. package/dist/services/document-service/transform/relations/extract/data-ids.js +75 -85
  633. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  634. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +74 -86
  635. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  636. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +8 -4
  637. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  638. package/dist/services/document-service/transform/relations/transform/data-ids.js +103 -134
  639. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  640. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +102 -135
  641. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  642. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts +9 -0
  643. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts.map +1 -0
  644. package/dist/services/document-service/transform/relations/transform/default-locale.js +50 -0
  645. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
  646. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +48 -0
  647. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
  648. package/dist/services/document-service/transform/relations/utils/dp.d.ts +3 -3
  649. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  650. package/dist/services/document-service/transform/relations/utils/dp.js +53 -22
  651. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  652. package/dist/services/document-service/transform/relations/utils/dp.mjs +52 -23
  653. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  654. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +6 -6
  655. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  656. package/dist/services/document-service/transform/relations/utils/i18n.js +19 -23
  657. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  658. package/dist/services/document-service/transform/relations/utils/i18n.mjs +18 -26
  659. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  660. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts +6 -0
  661. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -0
  662. package/dist/services/document-service/transform/relations/utils/map-relation.js +130 -0
  663. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
  664. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +127 -0
  665. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
  666. package/dist/services/document-service/transform/relations/utils/types.d.ts +6 -0
  667. package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -1
  668. package/dist/services/document-service/transform/types.d.ts +3 -3
  669. package/dist/services/document-service/transform/types.d.ts.map +1 -1
  670. package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
  671. package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -0
  672. package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
  673. package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
  674. package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
  675. package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
  676. package/dist/services/document-service/utils/populate.d.ts +9 -2
  677. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  678. package/dist/services/document-service/utils/populate.js +67 -37
  679. package/dist/services/document-service/utils/populate.js.map +1 -1
  680. package/dist/services/document-service/utils/populate.mjs +66 -38
  681. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  682. package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
  683. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  684. package/dist/services/document-service/utils/unidirectional-relations.js +116 -0
  685. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
  686. package/dist/services/document-service/utils/unidirectional-relations.mjs +113 -0
  687. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
  688. package/dist/services/entity-service/index.d.ts +4 -6
  689. package/dist/services/entity-service/index.d.ts.map +1 -1
  690. package/dist/services/entity-service/index.js +229 -319
  691. package/dist/services/entity-service/index.js.map +1 -1
  692. package/dist/services/entity-service/index.mjs +228 -318
  693. package/dist/services/entity-service/index.mjs.map +1 -1
  694. package/dist/services/entity-validator/blocks-validator.d.ts +1 -2
  695. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  696. package/dist/services/entity-validator/blocks-validator.js +137 -104
  697. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  698. package/dist/services/entity-validator/blocks-validator.mjs +135 -105
  699. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  700. package/dist/services/entity-validator/index.d.ts +16 -2
  701. package/dist/services/entity-validator/index.d.ts.map +1 -1
  702. package/dist/services/entity-validator/index.js +362 -300
  703. package/dist/services/entity-validator/index.js.map +1 -1
  704. package/dist/services/entity-validator/index.mjs +358 -297
  705. package/dist/services/entity-validator/index.mjs.map +1 -1
  706. package/dist/services/entity-validator/validators.d.ts +36 -25
  707. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  708. package/dist/services/entity-validator/validators.js +283 -105
  709. package/dist/services/entity-validator/validators.js.map +1 -1
  710. package/dist/services/entity-validator/validators.mjs +274 -103
  711. package/dist/services/entity-validator/validators.mjs.map +1 -1
  712. package/dist/services/errors.js +65 -65
  713. package/dist/services/errors.js.map +1 -1
  714. package/dist/services/errors.mjs +64 -66
  715. package/dist/services/errors.mjs.map +1 -1
  716. package/dist/services/event-hub.d.ts +1 -0
  717. package/dist/services/event-hub.d.ts.map +1 -1
  718. package/dist/services/event-hub.js +82 -64
  719. package/dist/services/event-hub.js.map +1 -1
  720. package/dist/services/event-hub.mjs +81 -66
  721. package/dist/services/event-hub.mjs.map +1 -1
  722. package/dist/services/features.d.ts +3 -3
  723. package/dist/services/features.d.ts.map +1 -1
  724. package/dist/services/features.js +19 -14
  725. package/dist/services/features.js.map +1 -1
  726. package/dist/services/features.mjs +18 -15
  727. package/dist/services/features.mjs.map +1 -1
  728. package/dist/services/fs.d.ts +2 -2
  729. package/dist/services/fs.d.ts.map +1 -1
  730. package/dist/services/fs.js +41 -40
  731. package/dist/services/fs.js.map +1 -1
  732. package/dist/services/fs.mjs +40 -39
  733. package/dist/services/fs.mjs.map +1 -1
  734. package/dist/services/metrics/admin-user-hash.d.ts +2 -2
  735. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  736. package/dist/services/metrics/admin-user-hash.js +13 -11
  737. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  738. package/dist/services/metrics/admin-user-hash.mjs +12 -10
  739. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  740. package/dist/services/metrics/index.d.ts +2 -2
  741. package/dist/services/metrics/index.d.ts.map +1 -1
  742. package/dist/services/metrics/index.js +46 -40
  743. package/dist/services/metrics/index.js.map +1 -1
  744. package/dist/services/metrics/index.mjs +45 -42
  745. package/dist/services/metrics/index.mjs.map +1 -1
  746. package/dist/services/metrics/is-truthy.js +13 -6
  747. package/dist/services/metrics/is-truthy.js.map +1 -1
  748. package/dist/services/metrics/is-truthy.mjs +12 -6
  749. package/dist/services/metrics/is-truthy.mjs.map +1 -1
  750. package/dist/services/metrics/middleware.d.ts +2 -2
  751. package/dist/services/metrics/middleware.d.ts.map +1 -1
  752. package/dist/services/metrics/middleware.js +37 -22
  753. package/dist/services/metrics/middleware.js.map +1 -1
  754. package/dist/services/metrics/middleware.mjs +36 -24
  755. package/dist/services/metrics/middleware.mjs.map +1 -1
  756. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  757. package/dist/services/metrics/rate-limiter.js +24 -19
  758. package/dist/services/metrics/rate-limiter.js.map +1 -1
  759. package/dist/services/metrics/rate-limiter.mjs +23 -21
  760. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  761. package/dist/services/metrics/sender.d.ts +3 -3
  762. package/dist/services/metrics/sender.d.ts.map +1 -1
  763. package/dist/services/metrics/sender.js +78 -69
  764. package/dist/services/metrics/sender.js.map +1 -1
  765. package/dist/services/metrics/sender.mjs +77 -64
  766. package/dist/services/metrics/sender.mjs.map +1 -1
  767. package/dist/services/query-params.d.ts +7 -0
  768. package/dist/services/query-params.d.ts.map +1 -0
  769. package/dist/services/query-params.js +15 -0
  770. package/dist/services/query-params.js.map +1 -0
  771. package/dist/services/query-params.mjs +13 -0
  772. package/dist/services/query-params.mjs.map +1 -0
  773. package/dist/services/reloader.d.ts +7 -0
  774. package/dist/services/reloader.d.ts.map +1 -0
  775. package/dist/services/reloader.js +39 -0
  776. package/dist/services/reloader.js.map +1 -0
  777. package/dist/services/reloader.mjs +37 -0
  778. package/dist/services/reloader.mjs.map +1 -0
  779. package/dist/services/request-context.js +11 -8
  780. package/dist/services/request-context.js.map +1 -1
  781. package/dist/services/request-context.mjs +10 -10
  782. package/dist/services/request-context.mjs.map +1 -1
  783. package/dist/services/server/admin-api.d.ts +3 -3
  784. package/dist/services/server/admin-api.d.ts.map +1 -1
  785. package/dist/services/server/admin-api.js +11 -10
  786. package/dist/services/server/admin-api.js.map +1 -1
  787. package/dist/services/server/admin-api.mjs +10 -11
  788. package/dist/services/server/admin-api.mjs.map +1 -1
  789. package/dist/services/server/api.d.ts +3 -3
  790. package/dist/services/server/api.d.ts.map +1 -1
  791. package/dist/services/server/api.js +33 -27
  792. package/dist/services/server/api.js.map +1 -1
  793. package/dist/services/server/api.mjs +32 -26
  794. package/dist/services/server/api.mjs.map +1 -1
  795. package/dist/services/server/compose-endpoint.d.ts +2 -2
  796. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  797. package/dist/services/server/compose-endpoint.js +116 -106
  798. package/dist/services/server/compose-endpoint.js.map +1 -1
  799. package/dist/services/server/compose-endpoint.mjs +115 -106
  800. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  801. package/dist/services/server/content-api.d.ts +3 -3
  802. package/dist/services/server/content-api.d.ts.map +1 -1
  803. package/dist/services/server/content-api.js +11 -9
  804. package/dist/services/server/content-api.js.map +1 -1
  805. package/dist/services/server/content-api.mjs +10 -10
  806. package/dist/services/server/content-api.mjs.map +1 -1
  807. package/dist/services/server/http-server.d.ts +2 -2
  808. package/dist/services/server/http-server.d.ts.map +1 -1
  809. package/dist/services/server/http-server.js +48 -44
  810. package/dist/services/server/http-server.js.map +1 -1
  811. package/dist/services/server/http-server.mjs +47 -43
  812. package/dist/services/server/http-server.mjs.map +1 -1
  813. package/dist/services/server/index.d.ts +2 -2
  814. package/dist/services/server/index.d.ts.map +1 -1
  815. package/dist/services/server/index.js +85 -83
  816. package/dist/services/server/index.js.map +1 -1
  817. package/dist/services/server/index.mjs +84 -82
  818. package/dist/services/server/index.mjs.map +1 -1
  819. package/dist/services/server/koa.d.ts.map +1 -1
  820. package/dist/services/server/koa.js +49 -47
  821. package/dist/services/server/koa.js.map +1 -1
  822. package/dist/services/server/koa.mjs +48 -44
  823. package/dist/services/server/koa.mjs.map +1 -1
  824. package/dist/services/server/middleware.d.ts +4 -4
  825. package/dist/services/server/middleware.d.ts.map +1 -1
  826. package/dist/services/server/middleware.js +86 -82
  827. package/dist/services/server/middleware.js.map +1 -1
  828. package/dist/services/server/middleware.mjs +85 -82
  829. package/dist/services/server/middleware.mjs.map +1 -1
  830. package/dist/services/server/policy.d.ts +3 -3
  831. package/dist/services/server/policy.d.ts.map +1 -1
  832. package/dist/services/server/policy.js +25 -18
  833. package/dist/services/server/policy.js.map +1 -1
  834. package/dist/services/server/policy.mjs +23 -18
  835. package/dist/services/server/policy.mjs.map +1 -1
  836. package/dist/services/server/register-middlewares.d.ts +2 -2
  837. package/dist/services/server/register-middlewares.d.ts.map +1 -1
  838. package/dist/services/server/register-middlewares.js +68 -61
  839. package/dist/services/server/register-middlewares.js.map +1 -1
  840. package/dist/services/server/register-middlewares.mjs +67 -63
  841. package/dist/services/server/register-middlewares.mjs.map +1 -1
  842. package/dist/services/server/register-routes.d.ts +2 -2
  843. package/dist/services/server/register-routes.d.ts.map +1 -1
  844. package/dist/services/server/register-routes.js +90 -67
  845. package/dist/services/server/register-routes.js.map +1 -1
  846. package/dist/services/server/register-routes.mjs +89 -67
  847. package/dist/services/server/register-routes.mjs.map +1 -1
  848. package/dist/services/server/routing.d.ts +5 -5
  849. package/dist/services/server/routing.d.ts.map +1 -1
  850. package/dist/services/server/routing.js +94 -81
  851. package/dist/services/server/routing.js.map +1 -1
  852. package/dist/services/server/routing.mjs +93 -81
  853. package/dist/services/server/routing.mjs.map +1 -1
  854. package/dist/services/utils/dynamic-zones.d.ts.map +1 -1
  855. package/dist/services/utils/dynamic-zones.js +13 -13
  856. package/dist/services/utils/dynamic-zones.js.map +1 -1
  857. package/dist/services/utils/dynamic-zones.mjs +12 -15
  858. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  859. package/dist/services/webhook-runner.d.ts +2 -1
  860. package/dist/services/webhook-runner.d.ts.map +1 -1
  861. package/dist/services/webhook-runner.js +124 -122
  862. package/dist/services/webhook-runner.js.map +1 -1
  863. package/dist/services/webhook-runner.mjs +123 -121
  864. package/dist/services/webhook-runner.mjs.map +1 -1
  865. package/dist/services/webhook-store.d.ts +2 -8
  866. package/dist/services/webhook-store.d.ts.map +1 -1
  867. package/dist/services/webhook-store.js +132 -93
  868. package/dist/services/webhook-store.js.map +1 -1
  869. package/dist/services/webhook-store.mjs +131 -95
  870. package/dist/services/webhook-store.mjs.map +1 -1
  871. package/dist/services/worker-queue.js +44 -49
  872. package/dist/services/worker-queue.js.map +1 -1
  873. package/dist/services/worker-queue.mjs +43 -49
  874. package/dist/services/worker-queue.mjs.map +1 -1
  875. package/dist/utils/convert-custom-field-type.d.ts +2 -2
  876. package/dist/utils/convert-custom-field-type.d.ts.map +1 -1
  877. package/dist/utils/convert-custom-field-type.js +17 -20
  878. package/dist/utils/convert-custom-field-type.js.map +1 -1
  879. package/dist/utils/convert-custom-field-type.mjs +16 -21
  880. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  881. package/dist/utils/cron.js +64 -30
  882. package/dist/utils/cron.js.map +1 -1
  883. package/dist/utils/cron.mjs +63 -31
  884. package/dist/utils/cron.mjs.map +1 -1
  885. package/dist/utils/fetch.d.ts +3 -3
  886. package/dist/utils/fetch.d.ts.map +1 -1
  887. package/dist/utils/fetch.js +24 -17
  888. package/dist/utils/fetch.js.map +1 -1
  889. package/dist/utils/fetch.mjs +23 -18
  890. package/dist/utils/fetch.mjs.map +1 -1
  891. package/dist/utils/filepath-to-prop-path.d.ts +1 -1
  892. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
  893. package/dist/utils/filepath-to-prop-path.js +22 -9
  894. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  895. package/dist/utils/filepath-to-prop-path.mjs +20 -7
  896. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  897. package/dist/utils/index.d.ts +2 -1
  898. package/dist/utils/index.d.ts.map +1 -1
  899. package/dist/utils/is-initialized.d.ts +2 -2
  900. package/dist/utils/is-initialized.d.ts.map +1 -1
  901. package/dist/utils/is-initialized.js +21 -12
  902. package/dist/utils/is-initialized.js.map +1 -1
  903. package/dist/utils/is-initialized.mjs +20 -13
  904. package/dist/utils/is-initialized.mjs.map +1 -1
  905. package/dist/utils/lifecycles.js +6 -5
  906. package/dist/utils/lifecycles.js.map +1 -1
  907. package/dist/utils/lifecycles.mjs +5 -6
  908. package/dist/utils/lifecycles.mjs.map +1 -1
  909. package/dist/utils/load-config-file.js +40 -38
  910. package/dist/utils/load-config-file.js.map +1 -1
  911. package/dist/utils/load-config-file.mjs +39 -36
  912. package/dist/utils/load-config-file.mjs.map +1 -1
  913. package/dist/utils/load-files.d.ts.map +1 -1
  914. package/dist/utils/load-files.js +40 -35
  915. package/dist/utils/load-files.js.map +1 -1
  916. package/dist/utils/load-files.mjs +39 -32
  917. package/dist/utils/load-files.mjs.map +1 -1
  918. package/dist/utils/open-browser.d.ts +2 -2
  919. package/dist/utils/open-browser.d.ts.map +1 -1
  920. package/dist/utils/open-browser.js +8 -8
  921. package/dist/utils/open-browser.js.map +1 -1
  922. package/dist/utils/open-browser.mjs +7 -7
  923. package/dist/utils/open-browser.mjs.map +1 -1
  924. package/dist/utils/resolve-working-dirs.d.ts +19 -0
  925. package/dist/utils/resolve-working-dirs.d.ts.map +1 -0
  926. package/dist/utils/resolve-working-dirs.js +26 -0
  927. package/dist/utils/resolve-working-dirs.js.map +1 -0
  928. package/dist/utils/resolve-working-dirs.mjs +24 -0
  929. package/dist/utils/resolve-working-dirs.mjs.map +1 -0
  930. package/dist/utils/signals.d.ts +2 -2
  931. package/dist/utils/signals.d.ts.map +1 -1
  932. package/dist/utils/signals.js +20 -14
  933. package/dist/utils/signals.js.map +1 -1
  934. package/dist/utils/signals.mjs +19 -15
  935. package/dist/utils/signals.mjs.map +1 -1
  936. package/dist/utils/startup-logger.d.ts +2 -2
  937. package/dist/utils/startup-logger.d.ts.map +1 -1
  938. package/dist/utils/startup-logger.js +107 -78
  939. package/dist/utils/startup-logger.js.map +1 -1
  940. package/dist/utils/startup-logger.mjs +106 -75
  941. package/dist/utils/startup-logger.mjs.map +1 -1
  942. package/dist/utils/transform-content-types-to-models.d.ts +377 -90
  943. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  944. package/dist/utils/transform-content-types-to-models.js +357 -217
  945. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  946. package/dist/utils/transform-content-types-to-models.mjs +351 -220
  947. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  948. package/dist/utils/update-notifier/index.d.ts +2 -7
  949. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  950. package/dist/utils/update-notifier/index.js +66 -74
  951. package/dist/utils/update-notifier/index.js.map +1 -1
  952. package/dist/utils/update-notifier/index.mjs +65 -68
  953. package/dist/utils/update-notifier/index.mjs.map +1 -1
  954. package/package.json +43 -40
  955. package/dist/registries/config.d.ts +0 -4
  956. package/dist/registries/config.d.ts.map +0 -1
  957. package/dist/registries/config.js +0 -31
  958. package/dist/registries/config.js.map +0 -1
  959. package/dist/registries/config.mjs +0 -32
  960. package/dist/registries/config.mjs.map +0 -1
  961. package/dist/services/document-service/middlewares.d.ts +0 -8
  962. package/dist/services/document-service/middlewares.d.ts.map +0 -1
  963. package/dist/services/document-service/middlewares.js +0 -46
  964. package/dist/services/document-service/middlewares.js.map +0 -1
  965. package/dist/services/document-service/middlewares.mjs +0 -46
  966. package/dist/services/document-service/middlewares.mjs.map +0 -1
  967. package/dist/services/document-service/transform/filters.d.ts +0 -3
  968. package/dist/services/document-service/transform/filters.d.ts.map +0 -1
  969. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +0 -4
  970. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +0 -1
  971. package/dist/services/document-service/transform/relations/utils/data.js +0 -12
  972. package/dist/services/document-service/transform/relations/utils/data.js.map +0 -1
  973. package/dist/services/document-service/transform/relations/utils/data.mjs +0 -12
  974. package/dist/services/document-service/transform/relations/utils/data.mjs.map +0 -1
  975. package/dist/services/document-service/transform/sort.d.ts +0 -5
  976. package/dist/services/document-service/transform/sort.d.ts.map +0 -1
  977. package/dist/services/document-service/transform/utils.d.ts +0 -9
  978. package/dist/services/document-service/transform/utils.d.ts.map +0 -1
  979. package/dist/services/entity-service/attributes/index.d.ts +0 -6
  980. package/dist/services/entity-service/attributes/index.d.ts.map +0 -1
  981. package/dist/services/entity-service/attributes/index.js +0 -22
  982. package/dist/services/entity-service/attributes/index.js.map +0 -1
  983. package/dist/services/entity-service/attributes/index.mjs +0 -22
  984. package/dist/services/entity-service/attributes/index.mjs.map +0 -1
  985. package/dist/services/entity-service/attributes/transforms.d.ts +0 -10
  986. package/dist/services/entity-service/attributes/transforms.d.ts.map +0 -1
  987. package/dist/services/entity-service/attributes/transforms.js +0 -20
  988. package/dist/services/entity-service/attributes/transforms.js.map +0 -1
  989. package/dist/services/entity-service/attributes/transforms.mjs +0 -19
  990. package/dist/services/entity-service/attributes/transforms.mjs.map +0 -1
  991. package/dist/services/entity-service/components.d.ts +0 -23
  992. package/dist/services/entity-service/components.d.ts.map +0 -1
  993. package/dist/services/entity-service/components.js +0 -384
  994. package/dist/services/entity-service/components.js.map +0 -1
  995. package/dist/services/entity-service/components.mjs +0 -382
  996. package/dist/services/entity-service/components.mjs.map +0 -1
  997. package/dist/services/entity-service/params.d.ts +0 -8
  998. package/dist/services/entity-service/params.d.ts.map +0 -1
  999. package/dist/services/entity-service/params.js +0 -8
  1000. package/dist/services/entity-service/params.js.map +0 -1
  1001. package/dist/services/entity-service/params.mjs +0 -8
  1002. package/dist/services/entity-service/params.mjs.map +0 -1
  1003. package/dist/services/utils/upload-files.d.ts +0 -8
  1004. package/dist/services/utils/upload-files.d.ts.map +0 -1
  1005. package/dist/services/utils/upload-files.js +0 -64
  1006. package/dist/services/utils/upload-files.js.map +0 -1
  1007. package/dist/services/utils/upload-files.mjs +0 -63
  1008. package/dist/services/utils/upload-files.mjs.map +0 -1
  1009. package/dist/utils/get-dirs.d.ts +0 -9
  1010. package/dist/utils/get-dirs.d.ts.map +0 -1
  1011. package/dist/utils/get-dirs.js +0 -30
  1012. package/dist/utils/get-dirs.js.map +0 -1
  1013. package/dist/utils/get-dirs.mjs +0 -30
  1014. package/dist/utils/get-dirs.mjs.map +0 -1
@@ -0,0 +1,130 @@
1
+ 'use strict';
2
+
3
+ var fp = require('lodash/fp');
4
+ var strapiUtils = require('@strapi/utils');
5
+
6
+ const isNumeric = (value)=>{
7
+ if (Array.isArray(value)) return false; // Handle [1, 'docId'] case
8
+ const parsed = parseInt(value, 10);
9
+ return !Number.isNaN(parsed);
10
+ };
11
+ const toArray = (value)=>{
12
+ // Keep value as it is if it's a nullish value
13
+ if (fp.isNil(value)) return value;
14
+ if (Array.isArray(value)) return value;
15
+ return [
16
+ value
17
+ ];
18
+ };
19
+ /**
20
+ * There are multiple ways to create Strapi relations.
21
+ * This is a utility to traverse and transform relation data
22
+ *
23
+ *
24
+ * For consistency and ease of use, the response will always be an object with the following shape:
25
+ * { set: [{...}], connect: [{...}], disconnect: [{...}] }
26
+ *
27
+ * @example
28
+ * transformRelationData({
29
+ * onLongHand: (relation) => {
30
+ * // Change the id of the relation
31
+ * return { id: 'other' };
32
+ * },
33
+ * }, relation)
34
+ */ const mapRelation = async (callback, rel, isRecursive = false)=>{
35
+ let relation = rel;
36
+ const wrapInSet = (value)=>{
37
+ // Ignore wrapping if it's a recursive call
38
+ if (isRecursive) {
39
+ return value;
40
+ }
41
+ return {
42
+ set: toArray(value)
43
+ };
44
+ };
45
+ // undefined | null
46
+ if (fp.isNil(relation)) {
47
+ return callback(relation);
48
+ }
49
+ // LongHand[] | ShortHand[]
50
+ if (Array.isArray(relation)) {
51
+ return strapiUtils.async.map(relation, (r)=>mapRelation(callback, r, true)).then((result)=>result.flat().filter(Boolean)).then(wrapInSet);
52
+ }
53
+ // LongHand
54
+ if (fp.isObject(relation)) {
55
+ // { id: 1 } || { documentId: 1 }
56
+ if ('id' in relation || 'documentId' in relation) {
57
+ const result = await callback(relation);
58
+ return wrapInSet(result);
59
+ }
60
+ // If not connecting anything, return default visitor
61
+ if (!relation.set && !relation.disconnect && !relation.connect) {
62
+ return callback(relation);
63
+ }
64
+ // { set }
65
+ if (relation.set) {
66
+ const set = await mapRelation(callback, relation.set, true);
67
+ relation = {
68
+ ...relation,
69
+ set: toArray(set)
70
+ };
71
+ }
72
+ // { disconnect}
73
+ if (relation.disconnect) {
74
+ const disconnect = await mapRelation(callback, relation.disconnect, true);
75
+ relation = {
76
+ ...relation,
77
+ disconnect: toArray(disconnect)
78
+ };
79
+ }
80
+ // { connect }
81
+ if (relation.connect) {
82
+ // Transform the relation to connect
83
+ const connect = await mapRelation(callback, relation.connect, true);
84
+ relation = {
85
+ ...relation,
86
+ connect: toArray(connect)
87
+ };
88
+ }
89
+ return relation;
90
+ }
91
+ // ShortHand
92
+ if (isNumeric(relation)) {
93
+ const result = await callback({
94
+ id: relation
95
+ });
96
+ return wrapInSet(result);
97
+ }
98
+ if (typeof relation === 'string') {
99
+ const result = await callback({
100
+ documentId: relation
101
+ });
102
+ return wrapInSet(result);
103
+ }
104
+ // Anything else
105
+ return callback(relation);
106
+ };
107
+ /**
108
+ * Utility function, same as `traverseEntity` but only for relations.
109
+ */ const traverseEntityRelations = async (visitor, options, data)=>{
110
+ return strapiUtils.traverseEntity(async (options, utils)=>{
111
+ const { attribute } = options;
112
+ if (!attribute) {
113
+ return;
114
+ }
115
+ if (attribute.type !== 'relation') {
116
+ return;
117
+ }
118
+ // TODO: Handle join columns
119
+ if (attribute.useJoinTable === false) {
120
+ return;
121
+ }
122
+ return visitor(options, utils);
123
+ }, options, data);
124
+ };
125
+ const mapRelationCurried = fp.curry(mapRelation);
126
+ const traverseEntityRelationsCurried = fp.curry(traverseEntityRelations);
127
+
128
+ exports.mapRelation = mapRelationCurried;
129
+ exports.traverseEntityRelations = traverseEntityRelationsCurried;
130
+ //# sourceMappingURL=map-relation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-relation.js","sources":["../../../../../../src/services/document-service/transform/relations/utils/map-relation.ts"],"sourcesContent":["/* eslint-disable node/no-callback-literal */\nimport { isObject, curry, isNil } from 'lodash/fp';\n\nimport { traverseEntity, async } from '@strapi/utils';\n\nimport { Relation } from './types';\n\nconst isNumeric = (value: any): value is number => {\n if (Array.isArray(value)) return false; // Handle [1, 'docId'] case\n const parsed = parseInt(value, 10);\n return !Number.isNaN(parsed);\n};\n\nconst toArray = (value: any) => {\n // Keep value as it is if it's a nullish value\n if (isNil(value)) return value;\n if (Array.isArray(value)) return value;\n\n return [value];\n};\n\n/**\n * There are multiple ways to create Strapi relations.\n * This is a utility to traverse and transform relation data\n *\n *\n * For consistency and ease of use, the response will always be an object with the following shape:\n * { set: [{...}], connect: [{...}], disconnect: [{...}] }\n *\n * @example\n * transformRelationData({\n * onLongHand: (relation) => {\n * // Change the id of the relation\n * return { id: 'other' };\n * },\n * }, relation)\n */\nconst mapRelation = async (\n callback: (relation: any) => any,\n rel: Relation,\n isRecursive = false\n): Promise<Relation> => {\n let relation: Relation = rel;\n\n const wrapInSet = (value: any) => {\n // Ignore wrapping if it's a recursive call\n if (isRecursive) {\n return value;\n }\n return { set: toArray(value) };\n };\n\n // undefined | null\n if (isNil(relation)) {\n return callback(relation);\n }\n\n // LongHand[] | ShortHand[]\n if (Array.isArray(relation)) {\n return async\n .map(relation, (r: Relation) => mapRelation(callback, r, true))\n .then((result: any) => result.flat().filter(Boolean))\n .then(wrapInSet);\n }\n\n // LongHand\n if (isObject(relation)) {\n // { id: 1 } || { documentId: 1 }\n if ('id' in relation || 'documentId' in relation) {\n const result = await callback(relation);\n return wrapInSet(result);\n }\n\n // If not connecting anything, return default visitor\n if (!relation.set && !relation.disconnect && !relation.connect) {\n return callback(relation);\n }\n\n // { set }\n if (relation.set) {\n const set: any = await mapRelation(callback, relation.set, true);\n relation = { ...relation, set: toArray(set) };\n }\n\n // { disconnect}\n if (relation.disconnect) {\n const disconnect: any = await mapRelation(callback, relation.disconnect, true);\n relation = { ...relation, disconnect: toArray(disconnect) };\n }\n\n // { connect }\n if (relation.connect) {\n // Transform the relation to connect\n const connect: any = await mapRelation(callback, relation.connect, true);\n relation = { ...relation, connect: toArray(connect) };\n }\n\n return relation;\n }\n\n // ShortHand\n if (isNumeric(relation)) {\n const result = await callback({ id: relation });\n return wrapInSet(result);\n }\n\n if (typeof relation === 'string') {\n const result = await callback({ documentId: relation });\n return wrapInSet(result);\n }\n\n // Anything else\n return callback(relation);\n};\n\ntype TraverseEntity = Parameters<typeof traverseEntity>;\n\n/**\n * Utility function, same as `traverseEntity` but only for relations.\n */\nconst traverseEntityRelations = async (\n visitor: TraverseEntity[0],\n options: TraverseEntity[1],\n data: TraverseEntity[2]\n) => {\n return traverseEntity(\n async (options, utils) => {\n const { attribute } = options;\n\n if (!attribute) {\n return;\n }\n\n if (attribute.type !== 'relation') {\n return;\n }\n\n // TODO: Handle join columns\n if (attribute.useJoinTable === false) {\n return;\n }\n\n return visitor(options, utils);\n },\n options,\n data\n );\n};\n\nconst mapRelationCurried = curry(mapRelation);\nconst traverseEntityRelationsCurried = curry(traverseEntityRelations);\n\nexport {\n mapRelationCurried as mapRelation,\n traverseEntityRelationsCurried as traverseEntityRelations,\n};\n"],"names":["isNumeric","value","Array","isArray","parsed","parseInt","Number","isNaN","toArray","isNil","mapRelation","callback","rel","isRecursive","relation","wrapInSet","set","async","map","r","then","result","flat","filter","Boolean","isObject","disconnect","connect","id","documentId","traverseEntityRelations","visitor","options","data","traverseEntity","utils","attribute","type","useJoinTable","mapRelationCurried","curry","traverseEntityRelationsCurried"],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ import { curry, isNil, isObject } from 'lodash/fp';
2
+ import { async, traverseEntity } from '@strapi/utils';
3
+
4
+ const isNumeric = (value)=>{
5
+ if (Array.isArray(value)) return false; // Handle [1, 'docId'] case
6
+ const parsed = parseInt(value, 10);
7
+ return !Number.isNaN(parsed);
8
+ };
9
+ const toArray = (value)=>{
10
+ // Keep value as it is if it's a nullish value
11
+ if (isNil(value)) return value;
12
+ if (Array.isArray(value)) return value;
13
+ return [
14
+ value
15
+ ];
16
+ };
17
+ /**
18
+ * There are multiple ways to create Strapi relations.
19
+ * This is a utility to traverse and transform relation data
20
+ *
21
+ *
22
+ * For consistency and ease of use, the response will always be an object with the following shape:
23
+ * { set: [{...}], connect: [{...}], disconnect: [{...}] }
24
+ *
25
+ * @example
26
+ * transformRelationData({
27
+ * onLongHand: (relation) => {
28
+ * // Change the id of the relation
29
+ * return { id: 'other' };
30
+ * },
31
+ * }, relation)
32
+ */ const mapRelation = async (callback, rel, isRecursive = false)=>{
33
+ let relation = rel;
34
+ const wrapInSet = (value)=>{
35
+ // Ignore wrapping if it's a recursive call
36
+ if (isRecursive) {
37
+ return value;
38
+ }
39
+ return {
40
+ set: toArray(value)
41
+ };
42
+ };
43
+ // undefined | null
44
+ if (isNil(relation)) {
45
+ return callback(relation);
46
+ }
47
+ // LongHand[] | ShortHand[]
48
+ if (Array.isArray(relation)) {
49
+ return async.map(relation, (r)=>mapRelation(callback, r, true)).then((result)=>result.flat().filter(Boolean)).then(wrapInSet);
50
+ }
51
+ // LongHand
52
+ if (isObject(relation)) {
53
+ // { id: 1 } || { documentId: 1 }
54
+ if ('id' in relation || 'documentId' in relation) {
55
+ const result = await callback(relation);
56
+ return wrapInSet(result);
57
+ }
58
+ // If not connecting anything, return default visitor
59
+ if (!relation.set && !relation.disconnect && !relation.connect) {
60
+ return callback(relation);
61
+ }
62
+ // { set }
63
+ if (relation.set) {
64
+ const set = await mapRelation(callback, relation.set, true);
65
+ relation = {
66
+ ...relation,
67
+ set: toArray(set)
68
+ };
69
+ }
70
+ // { disconnect}
71
+ if (relation.disconnect) {
72
+ const disconnect = await mapRelation(callback, relation.disconnect, true);
73
+ relation = {
74
+ ...relation,
75
+ disconnect: toArray(disconnect)
76
+ };
77
+ }
78
+ // { connect }
79
+ if (relation.connect) {
80
+ // Transform the relation to connect
81
+ const connect = await mapRelation(callback, relation.connect, true);
82
+ relation = {
83
+ ...relation,
84
+ connect: toArray(connect)
85
+ };
86
+ }
87
+ return relation;
88
+ }
89
+ // ShortHand
90
+ if (isNumeric(relation)) {
91
+ const result = await callback({
92
+ id: relation
93
+ });
94
+ return wrapInSet(result);
95
+ }
96
+ if (typeof relation === 'string') {
97
+ const result = await callback({
98
+ documentId: relation
99
+ });
100
+ return wrapInSet(result);
101
+ }
102
+ // Anything else
103
+ return callback(relation);
104
+ };
105
+ /**
106
+ * Utility function, same as `traverseEntity` but only for relations.
107
+ */ const traverseEntityRelations = async (visitor, options, data)=>{
108
+ return traverseEntity(async (options, utils)=>{
109
+ const { attribute } = options;
110
+ if (!attribute) {
111
+ return;
112
+ }
113
+ if (attribute.type !== 'relation') {
114
+ return;
115
+ }
116
+ // TODO: Handle join columns
117
+ if (attribute.useJoinTable === false) {
118
+ return;
119
+ }
120
+ return visitor(options, utils);
121
+ }, options, data);
122
+ };
123
+ const mapRelationCurried = curry(mapRelation);
124
+ const traverseEntityRelationsCurried = curry(traverseEntityRelations);
125
+
126
+ export { mapRelationCurried as mapRelation, traverseEntityRelationsCurried as traverseEntityRelations };
127
+ //# sourceMappingURL=map-relation.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-relation.mjs","sources":["../../../../../../src/services/document-service/transform/relations/utils/map-relation.ts"],"sourcesContent":["/* eslint-disable node/no-callback-literal */\nimport { isObject, curry, isNil } from 'lodash/fp';\n\nimport { traverseEntity, async } from '@strapi/utils';\n\nimport { Relation } from './types';\n\nconst isNumeric = (value: any): value is number => {\n if (Array.isArray(value)) return false; // Handle [1, 'docId'] case\n const parsed = parseInt(value, 10);\n return !Number.isNaN(parsed);\n};\n\nconst toArray = (value: any) => {\n // Keep value as it is if it's a nullish value\n if (isNil(value)) return value;\n if (Array.isArray(value)) return value;\n\n return [value];\n};\n\n/**\n * There are multiple ways to create Strapi relations.\n * This is a utility to traverse and transform relation data\n *\n *\n * For consistency and ease of use, the response will always be an object with the following shape:\n * { set: [{...}], connect: [{...}], disconnect: [{...}] }\n *\n * @example\n * transformRelationData({\n * onLongHand: (relation) => {\n * // Change the id of the relation\n * return { id: 'other' };\n * },\n * }, relation)\n */\nconst mapRelation = async (\n callback: (relation: any) => any,\n rel: Relation,\n isRecursive = false\n): Promise<Relation> => {\n let relation: Relation = rel;\n\n const wrapInSet = (value: any) => {\n // Ignore wrapping if it's a recursive call\n if (isRecursive) {\n return value;\n }\n return { set: toArray(value) };\n };\n\n // undefined | null\n if (isNil(relation)) {\n return callback(relation);\n }\n\n // LongHand[] | ShortHand[]\n if (Array.isArray(relation)) {\n return async\n .map(relation, (r: Relation) => mapRelation(callback, r, true))\n .then((result: any) => result.flat().filter(Boolean))\n .then(wrapInSet);\n }\n\n // LongHand\n if (isObject(relation)) {\n // { id: 1 } || { documentId: 1 }\n if ('id' in relation || 'documentId' in relation) {\n const result = await callback(relation);\n return wrapInSet(result);\n }\n\n // If not connecting anything, return default visitor\n if (!relation.set && !relation.disconnect && !relation.connect) {\n return callback(relation);\n }\n\n // { set }\n if (relation.set) {\n const set: any = await mapRelation(callback, relation.set, true);\n relation = { ...relation, set: toArray(set) };\n }\n\n // { disconnect}\n if (relation.disconnect) {\n const disconnect: any = await mapRelation(callback, relation.disconnect, true);\n relation = { ...relation, disconnect: toArray(disconnect) };\n }\n\n // { connect }\n if (relation.connect) {\n // Transform the relation to connect\n const connect: any = await mapRelation(callback, relation.connect, true);\n relation = { ...relation, connect: toArray(connect) };\n }\n\n return relation;\n }\n\n // ShortHand\n if (isNumeric(relation)) {\n const result = await callback({ id: relation });\n return wrapInSet(result);\n }\n\n if (typeof relation === 'string') {\n const result = await callback({ documentId: relation });\n return wrapInSet(result);\n }\n\n // Anything else\n return callback(relation);\n};\n\ntype TraverseEntity = Parameters<typeof traverseEntity>;\n\n/**\n * Utility function, same as `traverseEntity` but only for relations.\n */\nconst traverseEntityRelations = async (\n visitor: TraverseEntity[0],\n options: TraverseEntity[1],\n data: TraverseEntity[2]\n) => {\n return traverseEntity(\n async (options, utils) => {\n const { attribute } = options;\n\n if (!attribute) {\n return;\n }\n\n if (attribute.type !== 'relation') {\n return;\n }\n\n // TODO: Handle join columns\n if (attribute.useJoinTable === false) {\n return;\n }\n\n return visitor(options, utils);\n },\n options,\n data\n );\n};\n\nconst mapRelationCurried = curry(mapRelation);\nconst traverseEntityRelationsCurried = curry(traverseEntityRelations);\n\nexport {\n mapRelationCurried as mapRelation,\n traverseEntityRelationsCurried as traverseEntityRelations,\n};\n"],"names":["isNumeric","value","Array","isArray","parsed","parseInt","Number","isNaN","toArray","isNil","mapRelation","callback","rel","isRecursive","relation","wrapInSet","set","async","map","r","then","result","flat","filter","Boolean","isObject","disconnect","connect","id","documentId","traverseEntityRelations","visitor","options","data","traverseEntity","utils","attribute","type","useJoinTable","mapRelationCurried","curry","traverseEntityRelationsCurried"],"mappings":"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"}
@@ -11,5 +11,11 @@ export type LongHandDocument = {
11
11
  position?: object;
12
12
  };
13
13
  export type LongHand = LongHandEntity | LongHandDocument;
14
+ export type RelationPrimitives = ShortHand | LongHand | ShortHand[] | LongHand[] | null | undefined;
15
+ export type Relation = RelationPrimitives | {
16
+ connect?: RelationPrimitives;
17
+ disconnect?: RelationPrimitives;
18
+ set?: RelationPrimitives;
19
+ };
14
20
  export type GetIds = (relation: ID) => ID[] | null;
15
21
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/services/document-service/transform/relations/utils/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;AACjC,MAAM,MAAM,SAAS,GAAG,EAAE,CAAC;AAE3B,MAAM,MAAM,cAAc,GAAG;IAAE,EAAE,EAAE,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAEzD,MAAM,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/services/document-service/transform/relations/utils/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;AACjC,MAAM,MAAM,SAAS,GAAG,EAAE,CAAC;AAE3B,MAAM,MAAM,cAAc,GAAG;IAAE,EAAE,EAAE,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,gBAAgB,CAAC;AACzD,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;AACpG,MAAM,MAAM,QAAQ,GAChB,kBAAkB,GAClB;IAAE,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAAC,GAAG,CAAC,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAEhG,MAAM,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC"}
@@ -1,12 +1,12 @@
1
- import { Common } from '@strapi/types';
2
- import { type ID } from './relations/utils/types';
1
+ import type { UID } from '@strapi/types';
2
+ import type { ID } from './relations/utils/types';
3
3
  export type Data = {
4
4
  id?: ID | object;
5
5
  documentId?: ID | object;
6
6
  [key: string]: any;
7
7
  };
8
8
  export type Options = {
9
- uid: Common.UID.Schema;
9
+ uid: UID.Schema;
10
10
  locale?: string | null;
11
11
  status: 'draft' | 'published';
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,yBAAyB,CAAC;AAElD,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,GAAG,WAAW,CAAC;CAC/B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,yBAAyB,CAAC;AAElD,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,GAAG,WAAW,CAAC;CAC/B,CAAC"}
@@ -0,0 +1,95 @@
1
+ import type { UID } from '@strapi/types';
2
+ interface LoadContext {
3
+ oldVersions: {
4
+ id: string;
5
+ locale: string;
6
+ }[];
7
+ newVersions: {
8
+ id: string;
9
+ locale: string;
10
+ }[];
11
+ }
12
+ /**
13
+ * Loads all bidirectional relations that need to be synchronized when content entries change state
14
+ * (e.g., during publish/unpublish operations).
15
+ *
16
+ * In Strapi, bidirectional relations allow maintaining order from both sides of the relation.
17
+ * When an entry is published, the following occurs:
18
+ *
19
+ * 1. The old published entry is deleted
20
+ * 2. A new entry is created with all its relations
21
+ *
22
+ * This process affects relation ordering in the following way:
23
+ *
24
+ * Initial state (Entry A related to X, Y, Z):
25
+ * ```
26
+ * Entry A (draft) Entry A (published)
27
+ * │ │
28
+ * ├──(1)→ X ├──(1)→ X
29
+ * ├──(2)→ Y ├──(2)→ Y
30
+ * └──(3)→ Z └──(3)→ Z
31
+ *
32
+ * X's perspective: Y's perspective: Z's perspective:
33
+ * └──(2)→ Entry A └──(1)→ Entry A └──(3)→ Entry A
34
+ * ```
35
+ *
36
+ * After publishing Entry A (without relation order sync):
37
+ * ```
38
+ * Entry A (draft) Entry A (new published)
39
+ * │ │
40
+ * ├──(1)→ X ├──(1)→ X
41
+ * ├──(2)→ Y ├──(2)→ Y
42
+ * └──(3)→ Z └──(3)→ Z
43
+ *
44
+ * X's perspective: Y's perspective: Z's perspective:
45
+ * └──(3)→ Entry A └──(3)→ Entry A └──(3)→ Entry A
46
+ * (all relations appear last in order)
47
+ * ```
48
+ *
49
+ * This module preserves the original ordering from both perspectives by:
50
+ * 1. Capturing the relation order before the entry state changes
51
+ * 2. Restoring this order after the new relations are created
52
+ *
53
+ * @param uid - The unique identifier of the content type being processed
54
+ * @param context - Object containing arrays of old and new entry versions
55
+ * @returns Array of objects containing join table metadata and relations to be updated
56
+ */
57
+ declare const load: (uid: UID.ContentType, { oldVersions }: LoadContext) => Promise<any>;
58
+ /**
59
+ * Synchronizes the order of bidirectional relations after content entries have changed state.
60
+ *
61
+ * When entries change state (e.g., draft → published), their IDs change and all relations are recreated.
62
+ * While the order of relations from the entry's perspective is maintained (as they're created in order),
63
+ * the inverse relations (from related entries' perspective) would all appear last in order since they're new.
64
+ *
65
+ * Example:
66
+ * ```
67
+ * Before publish:
68
+ * Article(id:1) →(order:1)→ Category(id:5)
69
+ * Category(id:5) →(order:3)→ Article(id:1)
70
+ *
71
+ * After publish (without sync):
72
+ * Article(id:2) →(order:1)→ Category(id:5) [order preserved]
73
+ * Category(id:5) →(order:99)→ Article(id:2) [order lost - appears last]
74
+ *
75
+ * After sync:
76
+ * Article(id:2) →(order:1)→ Category(id:5) [order preserved]
77
+ * Category(id:5) →(order:3)→ Article(id:2) [order restored]
78
+ * ```
79
+ *
80
+ * @param oldEntries - Array of previous entry versions with their IDs and locales
81
+ * @param newEntries - Array of new entry versions with their IDs and locales
82
+ * @param existingRelations - Array of join table data containing the relations to be updated
83
+ */
84
+ declare const sync: (oldEntries: {
85
+ id: string;
86
+ locale: string;
87
+ }[], newEntries: {
88
+ id: string;
89
+ locale: string;
90
+ }[], existingRelations: {
91
+ joinTable: any;
92
+ relations: any[];
93
+ }[]) => Promise<void>;
94
+ export { load, sync };
95
+ //# sourceMappingURL=bidirectional-relations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bidirectional-relations.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/utils/bidirectional-relations.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAU,MAAM,eAAe,CAAC;AAEjD,UAAU,WAAW;IACnB,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9C,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,QAAA,MAAM,IAAI,QAAe,IAAI,WAAW,mBAAmB,WAAW,iBAmDrE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,QAAA,MAAM,IAAI,eACI;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,cAChC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,qBACzB;IAAE,SAAS,EAAE,GAAG,CAAC;IAAC,SAAS,EAAE,GAAG,EAAE,CAAA;CAAE,EAAE,kBA6C1D,CAAC;AAEF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,148 @@
1
+ 'use strict';
2
+
3
+ var fp = require('lodash/fp');
4
+ var strapiUtils = require('@strapi/utils');
5
+
6
+ /**
7
+ * Loads all bidirectional relations that need to be synchronized when content entries change state
8
+ * (e.g., during publish/unpublish operations).
9
+ *
10
+ * In Strapi, bidirectional relations allow maintaining order from both sides of the relation.
11
+ * When an entry is published, the following occurs:
12
+ *
13
+ * 1. The old published entry is deleted
14
+ * 2. A new entry is created with all its relations
15
+ *
16
+ * This process affects relation ordering in the following way:
17
+ *
18
+ * Initial state (Entry A related to X, Y, Z):
19
+ * ```
20
+ * Entry A (draft) Entry A (published)
21
+ * │ │
22
+ * ├──(1)→ X ├──(1)→ X
23
+ * ├──(2)→ Y ├──(2)→ Y
24
+ * └──(3)→ Z └──(3)→ Z
25
+ *
26
+ * X's perspective: Y's perspective: Z's perspective:
27
+ * └──(2)→ Entry A └──(1)→ Entry A └──(3)→ Entry A
28
+ * ```
29
+ *
30
+ * After publishing Entry A (without relation order sync):
31
+ * ```
32
+ * Entry A (draft) Entry A (new published)
33
+ * │ │
34
+ * ├──(1)→ X ├──(1)→ X
35
+ * ├──(2)→ Y ├──(2)→ Y
36
+ * └──(3)→ Z └──(3)→ Z
37
+ *
38
+ * X's perspective: Y's perspective: Z's perspective:
39
+ * └──(3)→ Entry A └──(3)→ Entry A └──(3)→ Entry A
40
+ * (all relations appear last in order)
41
+ * ```
42
+ *
43
+ * This module preserves the original ordering from both perspectives by:
44
+ * 1. Capturing the relation order before the entry state changes
45
+ * 2. Restoring this order after the new relations are created
46
+ *
47
+ * @param uid - The unique identifier of the content type being processed
48
+ * @param context - Object containing arrays of old and new entry versions
49
+ * @returns Array of objects containing join table metadata and relations to be updated
50
+ */ const load = async (uid, { oldVersions })=>{
51
+ const relationsToUpdate = [];
52
+ await strapi.db.transaction(async ({ trx })=>{
53
+ const contentTypes = Object.values(strapi.contentTypes);
54
+ const components = Object.values(strapi.components);
55
+ for (const model of [
56
+ ...contentTypes,
57
+ ...components
58
+ ]){
59
+ const dbModel = strapi.db.metadata.get(model.uid);
60
+ for (const attribute of Object.values(dbModel.attributes)){
61
+ // Skip if not a bidirectional relation targeting our content type
62
+ if (attribute.type !== 'relation' || attribute.target !== uid || !(attribute.inversedBy || attribute.mappedBy)) {
63
+ continue;
64
+ }
65
+ // If it's a self referencing relation, there is no need to sync any relation
66
+ // The order will already be handled as both sides are inside the same content type
67
+ if (model.uid === uid) {
68
+ continue;
69
+ }
70
+ const joinTable = attribute.joinTable;
71
+ if (!joinTable) {
72
+ continue;
73
+ }
74
+ const { name: targetColumnName } = joinTable.inverseJoinColumn;
75
+ // Load all relations that need their order preserved
76
+ const oldEntryIds = oldVersions.map((entry)=>entry.id);
77
+ const existingRelations = await strapi.db.getConnection().select('*').from(joinTable.name).whereIn(targetColumnName, oldEntryIds).transacting(trx);
78
+ if (existingRelations.length > 0) {
79
+ relationsToUpdate.push({
80
+ joinTable,
81
+ relations: existingRelations
82
+ });
83
+ }
84
+ }
85
+ }
86
+ });
87
+ return relationsToUpdate;
88
+ };
89
+ /**
90
+ * Synchronizes the order of bidirectional relations after content entries have changed state.
91
+ *
92
+ * When entries change state (e.g., draft → published), their IDs change and all relations are recreated.
93
+ * While the order of relations from the entry's perspective is maintained (as they're created in order),
94
+ * the inverse relations (from related entries' perspective) would all appear last in order since they're new.
95
+ *
96
+ * Example:
97
+ * ```
98
+ * Before publish:
99
+ * Article(id:1) →(order:1)→ Category(id:5)
100
+ * Category(id:5) →(order:3)→ Article(id:1)
101
+ *
102
+ * After publish (without sync):
103
+ * Article(id:2) →(order:1)→ Category(id:5) [order preserved]
104
+ * Category(id:5) →(order:99)→ Article(id:2) [order lost - appears last]
105
+ *
106
+ * After sync:
107
+ * Article(id:2) →(order:1)→ Category(id:5) [order preserved]
108
+ * Category(id:5) →(order:3)→ Article(id:2) [order restored]
109
+ * ```
110
+ *
111
+ * @param oldEntries - Array of previous entry versions with their IDs and locales
112
+ * @param newEntries - Array of new entry versions with their IDs and locales
113
+ * @param existingRelations - Array of join table data containing the relations to be updated
114
+ */ const sync = async (oldEntries, newEntries, existingRelations)=>{
115
+ // Group new entries by locale for easier lookup
116
+ const newEntriesByLocale = fp.keyBy('locale', newEntries);
117
+ // Create a mapping of old entry IDs to new entry IDs based on locale
118
+ const entryIdMapping = oldEntries.reduce((acc, oldEntry)=>{
119
+ const newEntry = newEntriesByLocale[oldEntry.locale];
120
+ if (!newEntry) return acc;
121
+ acc[oldEntry.id] = newEntry.id;
122
+ return acc;
123
+ }, {});
124
+ await strapi.db.transaction(async ({ trx })=>{
125
+ for (const { joinTable, relations } of existingRelations){
126
+ const sourceColumn = joinTable.inverseJoinColumn.name;
127
+ const targetColumn = joinTable.joinColumn.name;
128
+ const orderColumn = joinTable.orderColumnName;
129
+ // Failsafe in case those don't exist
130
+ if (!sourceColumn || !targetColumn || !orderColumn) {
131
+ continue;
132
+ }
133
+ // Update order values for each relation
134
+ // TODO: Find a way to batch it more efficiently
135
+ await strapiUtils.async.map(relations, (relation)=>{
136
+ const { [sourceColumn]: oldSourceId, [targetColumn]: targetId, [orderColumn]: originalOrder } = relation;
137
+ // Update the order column for the new relation entry
138
+ return trx.from(joinTable.name).where(sourceColumn, entryIdMapping[oldSourceId]).where(targetColumn, targetId).update({
139
+ [orderColumn]: originalOrder
140
+ });
141
+ });
142
+ }
143
+ });
144
+ };
145
+
146
+ exports.load = load;
147
+ exports.sync = sync;
148
+ //# sourceMappingURL=bidirectional-relations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bidirectional-relations.js","sources":["../../../../src/services/document-service/utils/bidirectional-relations.ts"],"sourcesContent":["/* eslint-disable no-continue */\nimport { keyBy } from 'lodash/fp';\nimport { async } from '@strapi/utils';\nimport type { 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 all bidirectional relations that need to be synchronized when content entries change state\n * (e.g., during publish/unpublish operations).\n *\n * In Strapi, bidirectional relations allow maintaining order from both sides of the relation.\n * When an entry is published, the following occurs:\n *\n * 1. The old published entry is deleted\n * 2. A new entry is created with all its relations\n *\n * This process affects relation ordering in the following way:\n *\n * Initial state (Entry A related to X, Y, Z):\n * ```\n * Entry A (draft) Entry A (published)\n * │ │\n * ├──(1)→ X ├──(1)→ X\n * ├──(2)→ Y ├──(2)→ Y\n * └──(3)→ Z └──(3)→ Z\n *\n * X's perspective: Y's perspective: Z's perspective:\n * └──(2)→ Entry A └──(1)→ Entry A └──(3)→ Entry A\n * ```\n *\n * After publishing Entry A (without relation order sync):\n * ```\n * Entry A (draft) Entry A (new published)\n * │ │\n * ├──(1)→ X ├──(1)→ X\n * ├──(2)→ Y ├──(2)→ Y\n * └──(3)→ Z └──(3)→ Z\n *\n * X's perspective: Y's perspective: Z's perspective:\n * └──(3)→ Entry A └──(3)→ Entry A └──(3)→ Entry A\n * (all relations appear last in order)\n * ```\n *\n * This module preserves the original ordering from both perspectives by:\n * 1. Capturing the relation order before the entry state changes\n * 2. Restoring this order after the new relations are created\n *\n * @param uid - The unique identifier of the content type being processed\n * @param context - Object containing arrays of old and new entry versions\n * @returns Array of objects containing join table metadata and relations to be updated\n */\nconst load = async (uid: UID.ContentType, { oldVersions }: LoadContext) => {\n const relationsToUpdate = [] as any;\n\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 // Skip if not a bidirectional relation targeting our content type\n if (\n attribute.type !== 'relation' ||\n attribute.target !== uid ||\n !(attribute.inversedBy || attribute.mappedBy)\n ) {\n continue;\n }\n\n // If it's a self referencing relation, there is no need to sync any relation\n // The order will already be handled as both sides are inside the same content type\n if (model.uid === uid) {\n continue;\n }\n\n const joinTable = attribute.joinTable;\n if (!joinTable) {\n continue;\n }\n\n const { name: targetColumnName } = joinTable.inverseJoinColumn;\n\n // Load all relations that need their order preserved\n const oldEntryIds = oldVersions.map((entry) => entry.id);\n\n const existingRelations = await strapi.db\n .getConnection()\n .select('*')\n .from(joinTable.name)\n .whereIn(targetColumnName, oldEntryIds)\n .transacting(trx);\n\n if (existingRelations.length > 0) {\n relationsToUpdate.push({ joinTable, relations: existingRelations });\n }\n }\n }\n });\n\n return relationsToUpdate;\n};\n\n/**\n * Synchronizes the order of bidirectional relations after content entries have changed state.\n *\n * When entries change state (e.g., draft → published), their IDs change and all relations are recreated.\n * While the order of relations from the entry's perspective is maintained (as they're created in order),\n * the inverse relations (from related entries' perspective) would all appear last in order since they're new.\n *\n * Example:\n * ```\n * Before publish:\n * Article(id:1) →(order:1)→ Category(id:5)\n * Category(id:5) →(order:3)→ Article(id:1)\n *\n * After publish (without sync):\n * Article(id:2) →(order:1)→ Category(id:5) [order preserved]\n * Category(id:5) →(order:99)→ Article(id:2) [order lost - appears last]\n *\n * After sync:\n * Article(id:2) →(order:1)→ Category(id:5) [order preserved]\n * Category(id:5) →(order:3)→ Article(id:2) [order restored]\n * ```\n *\n * @param oldEntries - Array of previous entry versions with their IDs and locales\n * @param newEntries - Array of new entry versions with their IDs and locales\n * @param existingRelations - Array of join table data containing the relations to be updated\n */\nconst sync = async (\n oldEntries: { id: string; locale: string }[],\n newEntries: { id: string; locale: string }[],\n existingRelations: { joinTable: any; relations: any[] }[]\n) => {\n // Group new entries by locale for easier lookup\n const newEntriesByLocale = keyBy('locale', newEntries);\n\n // Create a mapping of old entry IDs to new entry IDs based on locale\n const entryIdMapping = oldEntries.reduce(\n (acc, oldEntry) => {\n const newEntry = newEntriesByLocale[oldEntry.locale];\n if (!newEntry) return acc;\n acc[oldEntry.id] = newEntry.id;\n return acc;\n },\n {} as Record<string, string>\n );\n\n await strapi.db.transaction(async ({ trx }) => {\n for (const { joinTable, relations } of existingRelations) {\n const sourceColumn = joinTable.inverseJoinColumn.name;\n const targetColumn = joinTable.joinColumn.name;\n const orderColumn = joinTable.orderColumnName;\n\n // Failsafe in case those don't exist\n if (!sourceColumn || !targetColumn || !orderColumn) {\n continue;\n }\n\n // Update order values for each relation\n // TODO: Find a way to batch it more efficiently\n await async.map(relations, (relation: any) => {\n const {\n [sourceColumn]: oldSourceId,\n [targetColumn]: targetId,\n [orderColumn]: originalOrder,\n } = relation;\n\n // Update the order column for the new relation entry\n return trx\n .from(joinTable.name)\n .where(sourceColumn, entryIdMapping[oldSourceId])\n .where(targetColumn, targetId)\n .update({ [orderColumn]: originalOrder });\n });\n }\n });\n};\n\nexport { load, sync };\n"],"names":["load","uid","oldVersions","relationsToUpdate","strapi","db","transaction","trx","contentTypes","Object","values","components","model","dbModel","metadata","get","attribute","attributes","type","target","inversedBy","mappedBy","joinTable","name","targetColumnName","inverseJoinColumn","oldEntryIds","map","entry","id","existingRelations","getConnection","select","from","whereIn","transacting","length","push","relations","sync","oldEntries","newEntries","newEntriesByLocale","keyBy","entryIdMapping","reduce","acc","oldEntry","newEntry","locale","sourceColumn","targetColumn","joinColumn","orderColumn","orderColumnName","async","relation","oldSourceId","targetId","originalOrder","where","update"],"mappings":";;;;;AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CC,UACKA,IAAO,GAAA,OAAOC,GAAsB,EAAA,EAAEC,WAAW,EAAe,GAAA;AACpE,IAAA,MAAMC,oBAAoB,EAAE;IAE5B,MAAMC,MAAAA,CAAOC,EAAE,CAACC,WAAW,CAAC,OAAO,EAAEC,GAAG,EAAE,GAAA;AACxC,QAAA,MAAMC,YAAeC,GAAAA,MAAAA,CAAOC,MAAM,CAACN,OAAOI,YAAY,CAAA;AACtD,QAAA,MAAMG,UAAaF,GAAAA,MAAAA,CAAOC,MAAM,CAACN,OAAOO,UAAU,CAAA;AAElD,QAAA,KAAK,MAAMC,KAAS,IAAA;AAAIJ,YAAAA,GAAAA,YAAAA;AAAiBG,YAAAA,GAAAA;SAAW,CAAE;YACpD,MAAME,OAAAA,GAAUT,OAAOC,EAAE,CAACS,QAAQ,CAACC,GAAG,CAACH,KAAAA,CAAMX,GAAG,CAAA;AAEhD,YAAA,KAAK,MAAMe,SAAaP,IAAAA,MAAAA,CAAOC,MAAM,CAACG,OAAAA,CAAQI,UAAU,CAAU,CAAA;;AAEhE,gBAAA,IACED,UAAUE,IAAI,KAAK,UACnBF,IAAAA,SAAAA,CAAUG,MAAM,KAAKlB,GAAAA,IACrB,EAAEe,UAAUI,UAAU,IAAIJ,SAAUK,CAAAA,QAAQ,CAC5C,EAAA;AACA,oBAAA;AACF;;;gBAIA,IAAIT,KAAAA,CAAMX,GAAG,KAAKA,GAAK,EAAA;AACrB,oBAAA;AACF;gBAEA,MAAMqB,SAAAA,GAAYN,UAAUM,SAAS;AACrC,gBAAA,IAAI,CAACA,SAAW,EAAA;AACd,oBAAA;AACF;AAEA,gBAAA,MAAM,EAAEC,IAAMC,EAAAA,gBAAgB,EAAE,GAAGF,UAAUG,iBAAiB;;AAG9D,gBAAA,MAAMC,cAAcxB,WAAYyB,CAAAA,GAAG,CAAC,CAACC,KAAAA,GAAUA,MAAMC,EAAE,CAAA;gBAEvD,MAAMC,iBAAAA,GAAoB,MAAM1B,MAAOC,CAAAA,EAAE,CACtC0B,aAAa,EAAA,CACbC,MAAM,CAAC,GAAA,CAAA,CACPC,IAAI,CAACX,SAAAA,CAAUC,IAAI,CACnBW,CAAAA,OAAO,CAACV,gBAAkBE,EAAAA,WAAAA,CAAAA,CAC1BS,WAAW,CAAC5B,GAAAA,CAAAA;gBAEf,IAAIuB,iBAAAA,CAAkBM,MAAM,GAAG,CAAG,EAAA;AAChCjC,oBAAAA,iBAAAA,CAAkBkC,IAAI,CAAC;AAAEf,wBAAAA,SAAAA;wBAAWgB,SAAWR,EAAAA;AAAkB,qBAAA,CAAA;AACnE;AACF;AACF;AACF,KAAA,CAAA;IAEA,OAAO3B,iBAAAA;AACT;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBC,IACKoC,MAAAA,IAAAA,GAAO,OACXC,UAAAA,EACAC,UACAX,EAAAA,iBAAAA,GAAAA;;IAGA,MAAMY,kBAAAA,GAAqBC,SAAM,QAAUF,EAAAA,UAAAA,CAAAA;;AAG3C,IAAA,MAAMG,cAAiBJ,GAAAA,UAAAA,CAAWK,MAAM,CACtC,CAACC,GAAKC,EAAAA,QAAAA,GAAAA;AACJ,QAAA,MAAMC,QAAWN,GAAAA,kBAAkB,CAACK,QAAAA,CAASE,MAAM,CAAC;QACpD,IAAI,CAACD,UAAU,OAAOF,GAAAA;AACtBA,QAAAA,GAAG,CAACC,QAASlB,CAAAA,EAAE,CAAC,GAAGmB,SAASnB,EAAE;QAC9B,OAAOiB,GAAAA;AACT,KAAA,EACA,EAAC,CAAA;IAGH,MAAM1C,MAAAA,CAAOC,EAAE,CAACC,WAAW,CAAC,OAAO,EAAEC,GAAG,EAAE,GAAA;AACxC,QAAA,KAAK,MAAM,EAAEe,SAAS,EAAEgB,SAAS,EAAE,IAAIR,iBAAmB,CAAA;AACxD,YAAA,MAAMoB,YAAe5B,GAAAA,SAAAA,CAAUG,iBAAiB,CAACF,IAAI;AACrD,YAAA,MAAM4B,YAAe7B,GAAAA,SAAAA,CAAU8B,UAAU,CAAC7B,IAAI;YAC9C,MAAM8B,WAAAA,GAAc/B,UAAUgC,eAAe;;AAG7C,YAAA,IAAI,CAACJ,YAAAA,IAAgB,CAACC,YAAAA,IAAgB,CAACE,WAAa,EAAA;AAClD,gBAAA;AACF;;;AAIA,YAAA,MAAME,iBAAM5B,CAAAA,GAAG,CAACW,SAAAA,EAAW,CAACkB,QAAAA,GAAAA;AAC1B,gBAAA,MAAM,EACJ,CAACN,YAAAA,GAAeO,WAAW,EAC3B,CAACN,YAAAA,GAAeO,QAAQ,EACxB,CAACL,WAAAA,GAAcM,aAAa,EAC7B,GAAGH,QAAAA;;AAGJ,gBAAA,OAAOjD,IACJ0B,IAAI,CAACX,UAAUC,IAAI,CAAA,CACnBqC,KAAK,CAACV,YAAAA,EAAcN,cAAc,CAACa,YAAY,CAC/CG,CAAAA,KAAK,CAACT,YAAcO,EAAAA,QAAAA,CAAAA,CACpBG,MAAM,CAAC;AAAE,oBAAA,CAACR,cAAcM;AAAc,iBAAA,CAAA;AAC3C,aAAA,CAAA;AACF;AACF,KAAA,CAAA;AACF;;;;;"}