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

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 (810) 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 +195 -214
  5. package/dist/Strapi.js.map +1 -1
  6. package/dist/Strapi.mjs +165 -204
  7. package/dist/Strapi.mjs.map +1 -1
  8. package/dist/configuration/config-loader.d.ts.map +1 -1
  9. package/dist/configuration/config-loader.js +9 -5
  10. package/dist/configuration/config-loader.js.map +1 -1
  11. package/dist/configuration/config-loader.mjs +9 -5
  12. package/dist/configuration/config-loader.mjs.map +1 -1
  13. package/dist/configuration/get-dirs.d.ts +10 -0
  14. package/dist/configuration/get-dirs.d.ts.map +1 -0
  15. package/dist/{utils → configuration}/get-dirs.js +3 -2
  16. package/dist/configuration/get-dirs.js.map +1 -0
  17. package/dist/{utils → configuration}/get-dirs.mjs +3 -2
  18. package/dist/configuration/get-dirs.mjs.map +1 -0
  19. package/dist/configuration/index.d.ts +4 -7
  20. package/dist/configuration/index.d.ts.map +1 -1
  21. package/dist/configuration/index.js +8 -6
  22. package/dist/configuration/index.js.map +1 -1
  23. package/dist/configuration/index.mjs +5 -4
  24. package/dist/configuration/index.mjs.map +1 -1
  25. package/dist/container.d.ts +2 -2
  26. package/dist/container.d.ts.map +1 -1
  27. package/dist/container.js.map +1 -1
  28. package/dist/container.mjs.map +1 -1
  29. package/dist/core-api/controller/collection-type.d.ts +3 -3
  30. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  31. package/dist/core-api/controller/collection-type.js +6 -3
  32. package/dist/core-api/controller/collection-type.js.map +1 -1
  33. package/dist/core-api/controller/collection-type.mjs +3 -0
  34. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  35. package/dist/core-api/controller/index.d.ts +3 -3
  36. package/dist/core-api/controller/index.d.ts.map +1 -1
  37. package/dist/core-api/controller/index.js +7 -7
  38. package/dist/core-api/controller/index.js.map +1 -1
  39. package/dist/core-api/controller/index.mjs +6 -6
  40. package/dist/core-api/controller/index.mjs.map +1 -1
  41. package/dist/core-api/controller/single-type.d.ts +3 -3
  42. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  43. package/dist/core-api/controller/single-type.js +3 -2
  44. package/dist/core-api/controller/single-type.js.map +1 -1
  45. package/dist/core-api/controller/single-type.mjs +1 -0
  46. package/dist/core-api/controller/single-type.mjs.map +1 -1
  47. package/dist/core-api/controller/transform.d.ts +2 -2
  48. package/dist/core-api/controller/transform.d.ts.map +1 -1
  49. package/dist/core-api/controller/transform.js +10 -13
  50. package/dist/core-api/controller/transform.js.map +1 -1
  51. package/dist/core-api/controller/transform.mjs +2 -5
  52. package/dist/core-api/controller/transform.mjs.map +1 -1
  53. package/dist/core-api/routes/index.d.ts.map +1 -1
  54. package/dist/core-api/service/collection-type.d.ts +11 -17
  55. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  56. package/dist/core-api/service/collection-type.js +18 -7
  57. package/dist/core-api/service/collection-type.js.map +1 -1
  58. package/dist/core-api/service/collection-type.mjs +19 -8
  59. package/dist/core-api/service/collection-type.mjs.map +1 -1
  60. package/dist/core-api/service/index.d.ts +3 -3
  61. package/dist/core-api/service/index.d.ts.map +1 -1
  62. package/dist/core-api/service/index.js.map +1 -1
  63. package/dist/core-api/service/index.mjs.map +1 -1
  64. package/dist/core-api/service/pagination.d.ts +4 -11
  65. package/dist/core-api/service/pagination.d.ts.map +1 -1
  66. package/dist/core-api/service/pagination.js +18 -44
  67. package/dist/core-api/service/pagination.js.map +1 -1
  68. package/dist/core-api/service/pagination.mjs +16 -42
  69. package/dist/core-api/service/pagination.mjs.map +1 -1
  70. package/dist/core-api/service/single-type.d.ts +4 -4
  71. package/dist/core-api/service/single-type.d.ts.map +1 -1
  72. package/dist/core-api/service/single-type.js +9 -2
  73. package/dist/core-api/service/single-type.js.map +1 -1
  74. package/dist/core-api/service/single-type.mjs +9 -2
  75. package/dist/core-api/service/single-type.mjs.map +1 -1
  76. package/dist/domain/content-type/index.d.ts +1 -1
  77. package/dist/domain/content-type/index.d.ts.map +1 -1
  78. package/dist/domain/content-type/index.js +4 -4
  79. package/dist/domain/content-type/index.js.map +1 -1
  80. package/dist/domain/module/index.d.ts +24 -23
  81. package/dist/domain/module/index.d.ts.map +1 -1
  82. package/dist/domain/module/index.js +2 -1
  83. package/dist/domain/module/index.js.map +1 -1
  84. package/dist/domain/module/index.mjs +3 -2
  85. package/dist/domain/module/index.mjs.map +1 -1
  86. package/dist/ee/index.d.ts +4 -2
  87. package/dist/ee/index.d.ts.map +1 -1
  88. package/dist/ee/index.js +9 -4
  89. package/dist/ee/index.js.map +1 -1
  90. package/dist/ee/index.mjs +6 -1
  91. package/dist/ee/index.mjs.map +1 -1
  92. package/dist/ee/license.d.ts +2 -2
  93. package/dist/ee/license.d.ts.map +1 -1
  94. package/dist/ee/license.js +2 -1
  95. package/dist/ee/license.js.map +1 -1
  96. package/dist/ee/license.mjs +2 -1
  97. package/dist/ee/license.mjs.map +1 -1
  98. package/dist/factories.d.ts +10 -10
  99. package/dist/factories.d.ts.map +1 -1
  100. package/dist/factories.js +10 -6
  101. package/dist/factories.js.map +1 -1
  102. package/dist/factories.mjs +6 -2
  103. package/dist/factories.mjs.map +1 -1
  104. package/dist/index.d.ts +18 -2
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js +25 -1
  107. package/dist/index.js.map +1 -1
  108. package/dist/index.mjs +27 -3
  109. package/dist/index.mjs.map +1 -1
  110. package/dist/loaders/admin.d.ts +2 -2
  111. package/dist/loaders/admin.d.ts.map +1 -1
  112. package/dist/loaders/admin.js +0 -1
  113. package/dist/loaders/admin.js.map +1 -1
  114. package/dist/loaders/admin.mjs +0 -1
  115. package/dist/loaders/admin.mjs.map +1 -1
  116. package/dist/loaders/apis.d.ts +2 -2
  117. package/dist/loaders/apis.d.ts.map +1 -1
  118. package/dist/loaders/apis.js +12 -12
  119. package/dist/loaders/apis.js.map +1 -1
  120. package/dist/loaders/apis.mjs +10 -10
  121. package/dist/loaders/apis.mjs.map +1 -1
  122. package/dist/loaders/components.d.ts +2 -2
  123. package/dist/loaders/components.d.ts.map +1 -1
  124. package/dist/loaders/components.js.map +1 -1
  125. package/dist/loaders/components.mjs.map +1 -1
  126. package/dist/loaders/index.d.ts +2 -2
  127. package/dist/loaders/index.d.ts.map +1 -1
  128. package/dist/loaders/index.js +0 -2
  129. package/dist/loaders/index.js.map +1 -1
  130. package/dist/loaders/index.mjs +0 -2
  131. package/dist/loaders/index.mjs.map +1 -1
  132. package/dist/loaders/middlewares.d.ts +2 -2
  133. package/dist/loaders/middlewares.d.ts.map +1 -1
  134. package/dist/loaders/middlewares.js.map +1 -1
  135. package/dist/loaders/middlewares.mjs.map +1 -1
  136. package/dist/loaders/plugins/get-enabled-plugins.d.ts +2 -2
  137. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  138. package/dist/loaders/plugins/get-enabled-plugins.js +46 -16
  139. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  140. package/dist/loaders/plugins/get-enabled-plugins.mjs +16 -8
  141. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  142. package/dist/loaders/plugins/get-user-plugins-config.js +2 -2
  143. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  144. package/dist/loaders/plugins/index.d.ts +2 -2
  145. package/dist/loaders/plugins/index.d.ts.map +1 -1
  146. package/dist/loaders/plugins/index.js +34 -7
  147. package/dist/loaders/plugins/index.js.map +1 -1
  148. package/dist/loaders/plugins/index.mjs +9 -1
  149. package/dist/loaders/plugins/index.mjs.map +1 -1
  150. package/dist/loaders/policies.d.ts +2 -2
  151. package/dist/loaders/policies.d.ts.map +1 -1
  152. package/dist/loaders/policies.js.map +1 -1
  153. package/dist/loaders/policies.mjs.map +1 -1
  154. package/dist/loaders/sanitizers.d.ts +2 -2
  155. package/dist/loaders/sanitizers.d.ts.map +1 -1
  156. package/dist/loaders/sanitizers.js.map +1 -1
  157. package/dist/loaders/sanitizers.mjs.map +1 -1
  158. package/dist/loaders/src-index.d.ts +2 -2
  159. package/dist/loaders/src-index.d.ts.map +1 -1
  160. package/dist/loaders/src-index.js.map +1 -1
  161. package/dist/loaders/src-index.mjs.map +1 -1
  162. package/dist/loaders/validators.d.ts +2 -2
  163. package/dist/loaders/validators.d.ts.map +1 -1
  164. package/dist/loaders/validators.js.map +1 -1
  165. package/dist/loaders/validators.mjs.map +1 -1
  166. package/dist/middlewares/body.d.ts +4 -4
  167. package/dist/middlewares/body.d.ts.map +1 -1
  168. package/dist/middlewares/body.js +6 -6
  169. package/dist/middlewares/body.js.map +1 -1
  170. package/dist/middlewares/body.mjs +4 -4
  171. package/dist/middlewares/body.mjs.map +1 -1
  172. package/dist/middlewares/compression.d.ts +2 -2
  173. package/dist/middlewares/compression.d.ts.map +1 -1
  174. package/dist/middlewares/compression.js.map +1 -1
  175. package/dist/middlewares/compression.mjs.map +1 -1
  176. package/dist/middlewares/cors.d.ts +2 -2
  177. package/dist/middlewares/cors.d.ts.map +1 -1
  178. package/dist/middlewares/cors.js +9 -7
  179. package/dist/middlewares/cors.js.map +1 -1
  180. package/dist/middlewares/cors.mjs +9 -7
  181. package/dist/middlewares/cors.mjs.map +1 -1
  182. package/dist/middlewares/errors.d.ts +2 -2
  183. package/dist/middlewares/errors.d.ts.map +1 -1
  184. package/dist/middlewares/errors.js.map +1 -1
  185. package/dist/middlewares/errors.mjs.map +1 -1
  186. package/dist/middlewares/favicon.d.ts +2 -2
  187. package/dist/middlewares/favicon.d.ts.map +1 -1
  188. package/dist/middlewares/favicon.js.map +1 -1
  189. package/dist/middlewares/favicon.mjs.map +1 -1
  190. package/dist/middlewares/index.d.ts +2 -2
  191. package/dist/middlewares/index.d.ts.map +1 -1
  192. package/dist/middlewares/index.js.map +1 -1
  193. package/dist/middlewares/index.mjs.map +1 -1
  194. package/dist/middlewares/ip.d.ts +2 -2
  195. package/dist/middlewares/ip.d.ts.map +1 -1
  196. package/dist/middlewares/ip.js.map +1 -1
  197. package/dist/middlewares/ip.mjs.map +1 -1
  198. package/dist/middlewares/logger.d.ts +2 -2
  199. package/dist/middlewares/logger.d.ts.map +1 -1
  200. package/dist/middlewares/logger.js.map +1 -1
  201. package/dist/middlewares/logger.mjs.map +1 -1
  202. package/dist/middlewares/powered-by.d.ts +2 -2
  203. package/dist/middlewares/powered-by.d.ts.map +1 -1
  204. package/dist/middlewares/powered-by.js.map +1 -1
  205. package/dist/middlewares/powered-by.mjs.map +1 -1
  206. package/dist/middlewares/public.d.ts +2 -2
  207. package/dist/middlewares/public.d.ts.map +1 -1
  208. package/dist/middlewares/public.js +3 -3
  209. package/dist/middlewares/public.js.map +1 -1
  210. package/dist/middlewares/public.mjs +1 -1
  211. package/dist/middlewares/public.mjs.map +1 -1
  212. package/dist/middlewares/query.d.ts +2 -2
  213. package/dist/middlewares/query.d.ts.map +1 -1
  214. package/dist/middlewares/query.js.map +1 -1
  215. package/dist/middlewares/query.mjs.map +1 -1
  216. package/dist/middlewares/response-time.d.ts +2 -2
  217. package/dist/middlewares/response-time.d.ts.map +1 -1
  218. package/dist/middlewares/response-time.js.map +1 -1
  219. package/dist/middlewares/response-time.mjs.map +1 -1
  220. package/dist/middlewares/responses.d.ts +3 -3
  221. package/dist/middlewares/responses.d.ts.map +1 -1
  222. package/dist/middlewares/responses.js +2 -2
  223. package/dist/middlewares/responses.js.map +1 -1
  224. package/dist/middlewares/responses.mjs.map +1 -1
  225. package/dist/middlewares/security.d.ts +2 -2
  226. package/dist/middlewares/security.d.ts.map +1 -1
  227. package/dist/middlewares/security.js +13 -6
  228. package/dist/middlewares/security.js.map +1 -1
  229. package/dist/middlewares/security.mjs +12 -5
  230. package/dist/middlewares/security.mjs.map +1 -1
  231. package/dist/middlewares/session.d.ts +2 -2
  232. package/dist/middlewares/session.d.ts.map +1 -1
  233. package/dist/middlewares/session.js +2 -2
  234. package/dist/middlewares/session.js.map +1 -1
  235. package/dist/middlewares/session.mjs.map +1 -1
  236. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +33 -0
  237. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -0
  238. package/dist/migrations/database/5.0.0-discard-drafts.js +94 -0
  239. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
  240. package/dist/migrations/database/5.0.0-discard-drafts.mjs +94 -0
  241. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
  242. package/dist/migrations/draft-publish.d.ts +1 -1
  243. package/dist/migrations/draft-publish.d.ts.map +1 -1
  244. package/dist/migrations/draft-publish.js +14 -31
  245. package/dist/migrations/draft-publish.js.map +1 -1
  246. package/dist/migrations/draft-publish.mjs +15 -32
  247. package/dist/migrations/draft-publish.mjs.map +1 -1
  248. package/dist/migrations/i18n.d.ts +5 -0
  249. package/dist/migrations/i18n.d.ts.map +1 -0
  250. package/dist/migrations/i18n.js +54 -0
  251. package/dist/migrations/i18n.js.map +1 -0
  252. package/dist/migrations/i18n.mjs +54 -0
  253. package/dist/migrations/i18n.mjs.map +1 -0
  254. package/dist/migrations/index.d.ts +5 -0
  255. package/dist/migrations/index.d.ts.map +1 -0
  256. package/dist/migrations/index.js +15 -0
  257. package/dist/migrations/index.js.map +1 -0
  258. package/dist/migrations/index.mjs +15 -0
  259. package/dist/migrations/index.mjs.map +1 -0
  260. package/dist/providers/admin.d.ts +3 -0
  261. package/dist/providers/admin.d.ts.map +1 -0
  262. package/dist/providers/admin.js +20 -0
  263. package/dist/providers/admin.js.map +1 -0
  264. package/dist/providers/admin.mjs +21 -0
  265. package/dist/providers/admin.mjs.map +1 -0
  266. package/dist/providers/coreStore.d.ts +3 -0
  267. package/dist/providers/coreStore.d.ts.map +1 -0
  268. package/dist/providers/coreStore.js +11 -0
  269. package/dist/providers/coreStore.js.map +1 -0
  270. package/dist/providers/coreStore.mjs +12 -0
  271. package/dist/providers/coreStore.mjs.map +1 -0
  272. package/dist/providers/cron.d.ts +3 -0
  273. package/dist/providers/cron.d.ts.map +1 -0
  274. package/dist/providers/cron.js +20 -0
  275. package/dist/providers/cron.js.map +1 -0
  276. package/dist/providers/cron.mjs +21 -0
  277. package/dist/providers/cron.mjs.map +1 -0
  278. package/dist/providers/index.d.ts +3 -0
  279. package/dist/providers/index.d.ts.map +1 -0
  280. package/dist/providers/index.js +11 -0
  281. package/dist/providers/index.js.map +1 -0
  282. package/dist/providers/index.mjs +11 -0
  283. package/dist/providers/index.mjs.map +1 -0
  284. package/dist/providers/provider.d.ts +9 -0
  285. package/dist/providers/provider.d.ts.map +1 -0
  286. package/dist/providers/provider.js +5 -0
  287. package/dist/providers/provider.js.map +1 -0
  288. package/dist/providers/provider.mjs +5 -0
  289. package/dist/providers/provider.mjs.map +1 -0
  290. package/dist/providers/registries.d.ts +3 -0
  291. package/dist/providers/registries.d.ts.map +1 -0
  292. package/dist/providers/registries.js +35 -0
  293. package/dist/providers/registries.js.map +1 -0
  294. package/dist/providers/registries.mjs +36 -0
  295. package/dist/providers/registries.mjs.map +1 -0
  296. package/dist/providers/telemetry.d.ts +3 -0
  297. package/dist/providers/telemetry.d.ts.map +1 -0
  298. package/dist/providers/telemetry.js +19 -0
  299. package/dist/providers/telemetry.js.map +1 -0
  300. package/dist/providers/telemetry.mjs +20 -0
  301. package/dist/providers/telemetry.mjs.map +1 -0
  302. package/dist/providers/webhooks.d.ts +3 -0
  303. package/dist/providers/webhooks.d.ts.map +1 -0
  304. package/dist/providers/webhooks.js +30 -0
  305. package/dist/providers/webhooks.js.map +1 -0
  306. package/dist/providers/webhooks.mjs +31 -0
  307. package/dist/providers/webhooks.mjs.map +1 -0
  308. package/dist/registries/apis.d.ts +2 -2
  309. package/dist/registries/apis.d.ts.map +1 -1
  310. package/dist/registries/apis.js +2 -2
  311. package/dist/registries/apis.js.map +1 -1
  312. package/dist/registries/apis.mjs.map +1 -1
  313. package/dist/registries/components.d.ts +6 -6
  314. package/dist/registries/components.d.ts.map +1 -1
  315. package/dist/registries/components.js +2 -2
  316. package/dist/registries/components.js.map +1 -1
  317. package/dist/registries/components.mjs.map +1 -1
  318. package/dist/registries/content-types.d.ts +5 -5
  319. package/dist/registries/content-types.d.ts.map +1 -1
  320. package/dist/registries/content-types.js +3 -3
  321. package/dist/registries/content-types.js.map +1 -1
  322. package/dist/registries/content-types.mjs.map +1 -1
  323. package/dist/registries/controllers.d.ts +10 -10
  324. package/dist/registries/controllers.d.ts.map +1 -1
  325. package/dist/registries/controllers.js +3 -3
  326. package/dist/registries/controllers.js.map +1 -1
  327. package/dist/registries/controllers.mjs.map +1 -1
  328. package/dist/registries/custom-fields.d.ts +3 -3
  329. package/dist/registries/custom-fields.d.ts.map +1 -1
  330. package/dist/registries/custom-fields.js +4 -4
  331. package/dist/registries/custom-fields.js.map +1 -1
  332. package/dist/registries/custom-fields.mjs.map +1 -1
  333. package/dist/registries/hooks.js +2 -2
  334. package/dist/registries/hooks.js.map +1 -1
  335. package/dist/registries/index.d.ts +0 -1
  336. package/dist/registries/index.d.ts.map +1 -1
  337. package/dist/registries/middlewares.d.ts +6 -6
  338. package/dist/registries/middlewares.d.ts.map +1 -1
  339. package/dist/registries/middlewares.js +3 -3
  340. package/dist/registries/middlewares.js.map +1 -1
  341. package/dist/registries/middlewares.mjs.map +1 -1
  342. package/dist/registries/modules.d.ts +2 -2
  343. package/dist/registries/modules.d.ts.map +1 -1
  344. package/dist/registries/modules.js +3 -3
  345. package/dist/registries/modules.js.map +1 -1
  346. package/dist/registries/modules.mjs.map +1 -1
  347. package/dist/registries/plugins.d.ts +5 -5
  348. package/dist/registries/plugins.d.ts.map +1 -1
  349. package/dist/registries/plugins.js +2 -2
  350. package/dist/registries/plugins.js.map +1 -1
  351. package/dist/registries/plugins.mjs.map +1 -1
  352. package/dist/registries/policies.d.ts +22 -10
  353. package/dist/registries/policies.d.ts.map +1 -1
  354. package/dist/registries/policies.js +66 -20
  355. package/dist/registries/policies.js.map +1 -1
  356. package/dist/registries/policies.mjs +65 -19
  357. package/dist/registries/policies.mjs.map +1 -1
  358. package/dist/registries/services.d.ts +8 -8
  359. package/dist/registries/services.d.ts.map +1 -1
  360. package/dist/registries/services.js +3 -3
  361. package/dist/registries/services.js.map +1 -1
  362. package/dist/registries/services.mjs.map +1 -1
  363. package/dist/services/auth/index.d.ts +4 -4
  364. package/dist/services/auth/index.d.ts.map +1 -1
  365. package/dist/services/auth/index.js +3 -3
  366. package/dist/services/auth/index.js.map +1 -1
  367. package/dist/services/auth/index.mjs.map +1 -1
  368. package/dist/services/config.d.ts +3 -0
  369. package/dist/services/config.d.ts.map +1 -0
  370. package/dist/services/config.js +47 -0
  371. package/dist/services/config.js.map +1 -0
  372. package/dist/services/config.mjs +47 -0
  373. package/dist/services/config.mjs.map +1 -0
  374. package/dist/services/content-api/index.d.ts +31 -15
  375. package/dist/services/content-api/index.d.ts.map +1 -1
  376. package/dist/services/content-api/index.js +28 -2
  377. package/dist/services/content-api/index.js.map +1 -1
  378. package/dist/services/content-api/index.mjs +28 -2
  379. package/dist/services/content-api/index.mjs.map +1 -1
  380. package/dist/services/content-api/permissions/index.d.ts +13 -15
  381. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  382. package/dist/services/content-api/permissions/index.js +1 -1
  383. package/dist/services/content-api/permissions/index.js.map +1 -1
  384. package/dist/services/content-api/permissions/index.mjs +1 -1
  385. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  386. package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
  387. package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
  388. package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
  389. package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
  390. package/dist/services/core-store.d.ts.map +1 -1
  391. package/dist/services/core-store.js +3 -3
  392. package/dist/services/core-store.js.map +1 -1
  393. package/dist/services/cron.d.ts +5 -5
  394. package/dist/services/cron.d.ts.map +1 -1
  395. package/dist/services/cron.js +3 -3
  396. package/dist/services/cron.js.map +1 -1
  397. package/dist/services/cron.mjs.map +1 -1
  398. package/dist/services/custom-fields.d.ts +2 -2
  399. package/dist/services/custom-fields.d.ts.map +1 -1
  400. package/dist/services/custom-fields.js.map +1 -1
  401. package/dist/services/custom-fields.mjs.map +1 -1
  402. package/dist/services/document-service/attributes/index.d.ts +6 -0
  403. package/dist/services/document-service/attributes/index.d.ts.map +1 -0
  404. package/dist/services/{entity-service → document-service}/attributes/index.js +5 -5
  405. package/dist/services/document-service/attributes/index.js.map +1 -0
  406. package/dist/services/{entity-service → document-service}/attributes/index.mjs +5 -5
  407. package/dist/services/document-service/attributes/index.mjs.map +1 -0
  408. package/dist/services/document-service/attributes/transforms.d.ts +10 -0
  409. package/dist/services/document-service/attributes/transforms.d.ts.map +1 -0
  410. package/dist/services/{entity-service → document-service}/attributes/transforms.js +3 -3
  411. package/dist/services/document-service/attributes/transforms.js.map +1 -0
  412. package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
  413. package/dist/services/document-service/common.d.ts +2 -2
  414. package/dist/services/document-service/common.d.ts.map +1 -1
  415. package/dist/services/document-service/common.js.map +1 -1
  416. package/dist/services/document-service/common.mjs.map +1 -1
  417. package/dist/services/document-service/components.d.ts +25 -1
  418. package/dist/services/document-service/components.d.ts.map +1 -1
  419. package/dist/services/{entity-service → document-service}/components.js +52 -148
  420. package/dist/services/document-service/components.js.map +1 -0
  421. package/dist/services/{entity-service → document-service}/components.mjs +42 -138
  422. package/dist/services/document-service/components.mjs.map +1 -0
  423. package/dist/services/document-service/draft-and-publish.d.ts +7 -7
  424. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  425. package/dist/services/document-service/draft-and-publish.js +16 -16
  426. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  427. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  428. package/dist/services/document-service/entries.d.ts +10 -0
  429. package/dist/services/document-service/entries.d.ts.map +1 -0
  430. package/dist/services/document-service/entries.js +96 -0
  431. package/dist/services/document-service/entries.js.map +1 -0
  432. package/dist/services/document-service/entries.mjs +96 -0
  433. package/dist/services/document-service/entries.mjs.map +1 -0
  434. package/dist/services/document-service/events.d.ts +25 -0
  435. package/dist/services/document-service/events.d.ts.map +1 -0
  436. package/dist/services/document-service/events.js +47 -0
  437. package/dist/services/document-service/events.js.map +1 -0
  438. package/dist/services/document-service/events.mjs +47 -0
  439. package/dist/services/document-service/events.mjs.map +1 -0
  440. package/dist/services/document-service/index.d.ts +2 -4
  441. package/dist/services/document-service/index.d.ts.map +1 -1
  442. package/dist/services/document-service/index.js +18 -5
  443. package/dist/services/document-service/index.js.map +1 -1
  444. package/dist/services/document-service/index.mjs +16 -3
  445. package/dist/services/document-service/index.mjs.map +1 -1
  446. package/dist/services/document-service/internationalization.d.ts +5 -5
  447. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  448. package/dist/services/document-service/internationalization.js +21 -12
  449. package/dist/services/document-service/internationalization.js.map +1 -1
  450. package/dist/services/document-service/internationalization.mjs +14 -5
  451. package/dist/services/document-service/internationalization.mjs.map +1 -1
  452. package/dist/services/document-service/middlewares/errors.d.ts +6 -0
  453. package/dist/services/document-service/middlewares/errors.d.ts.map +1 -0
  454. package/dist/services/document-service/middlewares/errors.js +25 -0
  455. package/dist/services/document-service/middlewares/errors.js.map +1 -0
  456. package/dist/services/document-service/middlewares/errors.mjs +25 -0
  457. package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
  458. package/dist/services/document-service/middlewares/index.d.ts +3 -0
  459. package/dist/services/document-service/middlewares/index.d.ts.map +1 -0
  460. package/dist/services/document-service/middlewares/middleware-manager.d.ts +10 -0
  461. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -0
  462. package/dist/services/document-service/{middlewares.js → middlewares/middleware-manager.js} +9 -6
  463. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
  464. package/dist/services/document-service/{middlewares.mjs → middlewares/middleware-manager.mjs} +9 -6
  465. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
  466. package/dist/services/document-service/params.d.ts +3 -1
  467. package/dist/services/document-service/params.d.ts.map +1 -1
  468. package/dist/services/{entity-service → document-service}/params.js +2 -2
  469. package/dist/services/document-service/params.js.map +1 -0
  470. package/dist/services/document-service/params.mjs.map +1 -0
  471. package/dist/services/document-service/repository.d.ts.map +1 -1
  472. package/dist/services/document-service/repository.js +207 -183
  473. package/dist/services/document-service/repository.js.map +1 -1
  474. package/dist/services/document-service/repository.mjs +187 -163
  475. package/dist/services/document-service/repository.mjs.map +1 -1
  476. package/dist/services/document-service/transform/data.d.ts.map +1 -1
  477. package/dist/services/document-service/transform/data.js +4 -2
  478. package/dist/services/document-service/transform/data.js.map +1 -1
  479. package/dist/services/document-service/transform/data.mjs +4 -2
  480. package/dist/services/document-service/transform/data.mjs.map +1 -1
  481. package/dist/services/document-service/transform/fields.d.ts +2 -2
  482. package/dist/services/document-service/transform/fields.d.ts.map +1 -1
  483. package/dist/services/document-service/transform/fields.js.map +1 -1
  484. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  485. package/dist/services/document-service/transform/id-map.d.ts +3 -3
  486. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  487. package/dist/services/document-service/transform/id-map.js.map +1 -1
  488. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  489. package/dist/services/document-service/transform/id-transform.d.ts +2 -2
  490. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  491. package/dist/services/document-service/transform/id-transform.js +2 -2
  492. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  493. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  494. package/dist/services/document-service/transform/populate.d.ts +2 -2
  495. package/dist/services/document-service/transform/populate.d.ts.map +1 -1
  496. package/dist/services/document-service/transform/populate.js +1 -1
  497. package/dist/services/document-service/transform/populate.js.map +1 -1
  498. package/dist/services/document-service/transform/populate.mjs +1 -1
  499. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  500. package/dist/services/document-service/transform/query.d.ts +5 -0
  501. package/dist/services/document-service/transform/query.d.ts.map +1 -0
  502. package/dist/services/document-service/transform/query.js +9 -0
  503. package/dist/services/document-service/transform/query.js.map +1 -0
  504. package/dist/services/document-service/transform/query.mjs +9 -0
  505. package/dist/services/document-service/transform/query.mjs.map +1 -0
  506. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +8 -7
  507. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  508. package/dist/services/document-service/transform/relations/extract/data-ids.js +45 -78
  509. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  510. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +44 -77
  511. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  512. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +8 -4
  513. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  514. package/dist/services/document-service/transform/relations/transform/data-ids.js +61 -126
  515. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  516. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +61 -126
  517. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  518. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts +9 -0
  519. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts.map +1 -0
  520. package/dist/services/document-service/transform/relations/transform/default-locale.js +32 -0
  521. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
  522. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +32 -0
  523. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
  524. package/dist/services/document-service/transform/relations/utils/dp.d.ts +3 -3
  525. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  526. package/dist/services/document-service/transform/relations/utils/dp.js +10 -5
  527. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  528. package/dist/services/document-service/transform/relations/utils/dp.mjs +9 -4
  529. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  530. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +6 -6
  531. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  532. package/dist/services/document-service/transform/relations/utils/i18n.js +3 -9
  533. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  534. package/dist/services/document-service/transform/relations/utils/i18n.mjs +3 -9
  535. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  536. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts +6 -0
  537. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -0
  538. package/dist/services/document-service/transform/relations/utils/map-relation.js +91 -0
  539. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
  540. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +91 -0
  541. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
  542. package/dist/services/document-service/transform/relations/utils/types.d.ts +6 -0
  543. package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -1
  544. package/dist/services/document-service/transform/types.d.ts +3 -3
  545. package/dist/services/document-service/transform/types.d.ts.map +1 -1
  546. package/dist/services/document-service/utils/populate.d.ts +9 -2
  547. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  548. package/dist/services/document-service/utils/populate.js +11 -5
  549. package/dist/services/document-service/utils/populate.js.map +1 -1
  550. package/dist/services/document-service/utils/populate.mjs +11 -5
  551. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  552. package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
  553. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  554. package/dist/services/document-service/utils/unidirectional-relations.js +69 -0
  555. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
  556. package/dist/services/document-service/utils/unidirectional-relations.mjs +69 -0
  557. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
  558. package/dist/services/entity-service/index.d.ts +4 -6
  559. package/dist/services/entity-service/index.d.ts.map +1 -1
  560. package/dist/services/entity-service/index.js +44 -203
  561. package/dist/services/entity-service/index.js.map +1 -1
  562. package/dist/services/entity-service/index.mjs +38 -197
  563. package/dist/services/entity-service/index.mjs.map +1 -1
  564. package/dist/services/entity-validator/blocks-validator.d.ts +1 -2
  565. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  566. package/dist/services/entity-validator/blocks-validator.js +4 -3
  567. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  568. package/dist/services/entity-validator/blocks-validator.mjs +3 -3
  569. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  570. package/dist/services/entity-validator/index.d.ts +16 -2
  571. package/dist/services/entity-validator/index.d.ts.map +1 -1
  572. package/dist/services/entity-validator/index.js +197 -130
  573. package/dist/services/entity-validator/index.js.map +1 -1
  574. package/dist/services/entity-validator/index.mjs +192 -125
  575. package/dist/services/entity-validator/index.mjs.map +1 -1
  576. package/dist/services/entity-validator/validators.d.ts +36 -25
  577. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  578. package/dist/services/entity-validator/validators.js +153 -33
  579. package/dist/services/entity-validator/validators.js.map +1 -1
  580. package/dist/services/entity-validator/validators.mjs +145 -25
  581. package/dist/services/entity-validator/validators.mjs.map +1 -1
  582. package/dist/services/event-hub.d.ts +1 -0
  583. package/dist/services/event-hub.d.ts.map +1 -1
  584. package/dist/services/event-hub.js +9 -4
  585. package/dist/services/event-hub.js.map +1 -1
  586. package/dist/services/event-hub.mjs +9 -4
  587. package/dist/services/event-hub.mjs.map +1 -1
  588. package/dist/services/features.d.ts +3 -3
  589. package/dist/services/features.d.ts.map +1 -1
  590. package/dist/services/features.js.map +1 -1
  591. package/dist/services/features.mjs.map +1 -1
  592. package/dist/services/fs.d.ts +2 -2
  593. package/dist/services/fs.d.ts.map +1 -1
  594. package/dist/services/fs.js.map +1 -1
  595. package/dist/services/fs.mjs.map +1 -1
  596. package/dist/services/metrics/admin-user-hash.d.ts +2 -2
  597. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  598. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  599. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  600. package/dist/services/metrics/index.d.ts +2 -2
  601. package/dist/services/metrics/index.d.ts.map +1 -1
  602. package/dist/services/metrics/index.js.map +1 -1
  603. package/dist/services/metrics/index.mjs.map +1 -1
  604. package/dist/services/metrics/middleware.d.ts +2 -2
  605. package/dist/services/metrics/middleware.d.ts.map +1 -1
  606. package/dist/services/metrics/middleware.js.map +1 -1
  607. package/dist/services/metrics/middleware.mjs.map +1 -1
  608. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  609. package/dist/services/metrics/rate-limiter.js.map +1 -1
  610. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  611. package/dist/services/metrics/sender.d.ts +3 -3
  612. package/dist/services/metrics/sender.d.ts.map +1 -1
  613. package/dist/services/metrics/sender.js.map +1 -1
  614. package/dist/services/metrics/sender.mjs.map +1 -1
  615. package/dist/services/query-params.d.ts +7 -0
  616. package/dist/services/query-params.d.ts.map +1 -0
  617. package/dist/services/query-params.js +12 -0
  618. package/dist/services/query-params.js.map +1 -0
  619. package/dist/services/query-params.mjs +13 -0
  620. package/dist/services/query-params.mjs.map +1 -0
  621. package/dist/services/reloader.d.ts +7 -0
  622. package/dist/services/reloader.d.ts.map +1 -0
  623. package/dist/services/reloader.js +36 -0
  624. package/dist/services/reloader.js.map +1 -0
  625. package/dist/services/reloader.mjs +36 -0
  626. package/dist/services/reloader.mjs.map +1 -0
  627. package/dist/services/server/admin-api.d.ts +3 -3
  628. package/dist/services/server/admin-api.d.ts.map +1 -1
  629. package/dist/services/server/admin-api.js.map +1 -1
  630. package/dist/services/server/admin-api.mjs.map +1 -1
  631. package/dist/services/server/api.d.ts +3 -3
  632. package/dist/services/server/api.d.ts.map +1 -1
  633. package/dist/services/server/api.js.map +1 -1
  634. package/dist/services/server/api.mjs.map +1 -1
  635. package/dist/services/server/compose-endpoint.d.ts +2 -2
  636. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  637. package/dist/services/server/compose-endpoint.js +8 -9
  638. package/dist/services/server/compose-endpoint.js.map +1 -1
  639. package/dist/services/server/compose-endpoint.mjs +2 -3
  640. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  641. package/dist/services/server/content-api.d.ts +3 -3
  642. package/dist/services/server/content-api.d.ts.map +1 -1
  643. package/dist/services/server/content-api.js.map +1 -1
  644. package/dist/services/server/content-api.mjs.map +1 -1
  645. package/dist/services/server/http-server.d.ts +2 -2
  646. package/dist/services/server/http-server.d.ts.map +1 -1
  647. package/dist/services/server/http-server.js.map +1 -1
  648. package/dist/services/server/http-server.mjs.map +1 -1
  649. package/dist/services/server/index.d.ts +2 -2
  650. package/dist/services/server/index.d.ts.map +1 -1
  651. package/dist/services/server/index.js +2 -3
  652. package/dist/services/server/index.js.map +1 -1
  653. package/dist/services/server/index.mjs +2 -3
  654. package/dist/services/server/index.mjs.map +1 -1
  655. package/dist/services/server/koa.d.ts.map +1 -1
  656. package/dist/services/server/koa.js +4 -4
  657. package/dist/services/server/koa.js.map +1 -1
  658. package/dist/services/server/koa.mjs +1 -1
  659. package/dist/services/server/koa.mjs.map +1 -1
  660. package/dist/services/server/middleware.d.ts +4 -4
  661. package/dist/services/server/middleware.d.ts.map +1 -1
  662. package/dist/services/server/middleware.js +3 -3
  663. package/dist/services/server/middleware.js.map +1 -1
  664. package/dist/services/server/middleware.mjs.map +1 -1
  665. package/dist/services/server/policy.d.ts +3 -3
  666. package/dist/services/server/policy.d.ts.map +1 -1
  667. package/dist/services/server/policy.js +4 -4
  668. package/dist/services/server/policy.js.map +1 -1
  669. package/dist/services/server/policy.mjs +4 -4
  670. package/dist/services/server/policy.mjs.map +1 -1
  671. package/dist/services/server/register-middlewares.d.ts +2 -2
  672. package/dist/services/server/register-middlewares.d.ts.map +1 -1
  673. package/dist/services/server/register-middlewares.js.map +1 -1
  674. package/dist/services/server/register-middlewares.mjs.map +1 -1
  675. package/dist/services/server/register-routes.d.ts +2 -2
  676. package/dist/services/server/register-routes.d.ts.map +1 -1
  677. package/dist/services/server/register-routes.js +3 -3
  678. package/dist/services/server/register-routes.js.map +1 -1
  679. package/dist/services/server/register-routes.mjs +3 -3
  680. package/dist/services/server/register-routes.mjs.map +1 -1
  681. package/dist/services/server/routing.d.ts +5 -5
  682. package/dist/services/server/routing.d.ts.map +1 -1
  683. package/dist/services/server/routing.js +2 -2
  684. package/dist/services/server/routing.js.map +1 -1
  685. package/dist/services/server/routing.mjs.map +1 -1
  686. package/dist/services/utils/dynamic-zones.d.ts.map +1 -1
  687. package/dist/services/utils/dynamic-zones.js +7 -6
  688. package/dist/services/utils/dynamic-zones.js.map +1 -1
  689. package/dist/services/utils/dynamic-zones.mjs +2 -1
  690. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  691. package/dist/services/webhook-runner.d.ts +2 -1
  692. package/dist/services/webhook-runner.d.ts.map +1 -1
  693. package/dist/services/webhook-runner.js.map +1 -1
  694. package/dist/services/webhook-runner.mjs.map +1 -1
  695. package/dist/services/webhook-store.d.ts +2 -8
  696. package/dist/services/webhook-store.d.ts.map +1 -1
  697. package/dist/services/webhook-store.js +14 -8
  698. package/dist/services/webhook-store.js.map +1 -1
  699. package/dist/services/webhook-store.mjs +14 -8
  700. package/dist/services/webhook-store.mjs.map +1 -1
  701. package/dist/utils/convert-custom-field-type.d.ts +2 -2
  702. package/dist/utils/convert-custom-field-type.d.ts.map +1 -1
  703. package/dist/utils/convert-custom-field-type.js.map +1 -1
  704. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  705. package/dist/utils/cron.js +3 -3
  706. package/dist/utils/cron.js.map +1 -1
  707. package/dist/utils/fetch.d.ts +3 -3
  708. package/dist/utils/fetch.d.ts.map +1 -1
  709. package/dist/utils/fetch.js +4 -3
  710. package/dist/utils/fetch.js.map +1 -1
  711. package/dist/utils/fetch.mjs +4 -3
  712. package/dist/utils/fetch.mjs.map +1 -1
  713. package/dist/utils/filepath-to-prop-path.d.ts +1 -1
  714. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
  715. package/dist/utils/filepath-to-prop-path.js +27 -6
  716. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  717. package/dist/utils/filepath-to-prop-path.mjs +25 -5
  718. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  719. package/dist/utils/index.d.ts +2 -1
  720. package/dist/utils/index.d.ts.map +1 -1
  721. package/dist/utils/is-initialized.d.ts +2 -2
  722. package/dist/utils/is-initialized.d.ts.map +1 -1
  723. package/dist/utils/is-initialized.js +4 -4
  724. package/dist/utils/is-initialized.js.map +1 -1
  725. package/dist/utils/is-initialized.mjs +1 -1
  726. package/dist/utils/is-initialized.mjs.map +1 -1
  727. package/dist/utils/load-files.d.ts.map +1 -1
  728. package/dist/utils/open-browser.d.ts +2 -2
  729. package/dist/utils/open-browser.d.ts.map +1 -1
  730. package/dist/utils/open-browser.js.map +1 -1
  731. package/dist/utils/open-browser.mjs.map +1 -1
  732. package/dist/utils/resolve-working-dirs.d.ts +19 -0
  733. package/dist/utils/resolve-working-dirs.d.ts.map +1 -0
  734. package/dist/utils/resolve-working-dirs.js +13 -0
  735. package/dist/utils/resolve-working-dirs.js.map +1 -0
  736. package/dist/utils/resolve-working-dirs.mjs +11 -0
  737. package/dist/utils/resolve-working-dirs.mjs.map +1 -0
  738. package/dist/utils/signals.d.ts +2 -2
  739. package/dist/utils/signals.d.ts.map +1 -1
  740. package/dist/utils/signals.js.map +1 -1
  741. package/dist/utils/signals.mjs.map +1 -1
  742. package/dist/utils/startup-logger.d.ts +2 -2
  743. package/dist/utils/startup-logger.d.ts.map +1 -1
  744. package/dist/utils/startup-logger.js +4 -4
  745. package/dist/utils/startup-logger.js.map +1 -1
  746. package/dist/utils/startup-logger.mjs +3 -3
  747. package/dist/utils/startup-logger.mjs.map +1 -1
  748. package/dist/utils/transform-content-types-to-models.d.ts +54 -99
  749. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  750. package/dist/utils/transform-content-types-to-models.js +112 -61
  751. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  752. package/dist/utils/transform-content-types-to-models.mjs +111 -60
  753. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  754. package/dist/utils/update-notifier/index.d.ts +2 -7
  755. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  756. package/dist/utils/update-notifier/index.js +11 -14
  757. package/dist/utils/update-notifier/index.js.map +1 -1
  758. package/dist/utils/update-notifier/index.mjs +11 -14
  759. package/dist/utils/update-notifier/index.mjs.map +1 -1
  760. package/package.json +35 -31
  761. package/dist/registries/config.d.ts +0 -4
  762. package/dist/registries/config.d.ts.map +0 -1
  763. package/dist/registries/config.js +0 -31
  764. package/dist/registries/config.js.map +0 -1
  765. package/dist/registries/config.mjs +0 -32
  766. package/dist/registries/config.mjs.map +0 -1
  767. package/dist/services/document-service/middlewares.d.ts +0 -8
  768. package/dist/services/document-service/middlewares.d.ts.map +0 -1
  769. package/dist/services/document-service/middlewares.js.map +0 -1
  770. package/dist/services/document-service/middlewares.mjs.map +0 -1
  771. package/dist/services/document-service/transform/filters.d.ts +0 -3
  772. package/dist/services/document-service/transform/filters.d.ts.map +0 -1
  773. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +0 -4
  774. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +0 -1
  775. package/dist/services/document-service/transform/relations/utils/data.js +0 -12
  776. package/dist/services/document-service/transform/relations/utils/data.js.map +0 -1
  777. package/dist/services/document-service/transform/relations/utils/data.mjs +0 -12
  778. package/dist/services/document-service/transform/relations/utils/data.mjs.map +0 -1
  779. package/dist/services/document-service/transform/sort.d.ts +0 -5
  780. package/dist/services/document-service/transform/sort.d.ts.map +0 -1
  781. package/dist/services/document-service/transform/utils.d.ts +0 -9
  782. package/dist/services/document-service/transform/utils.d.ts.map +0 -1
  783. package/dist/services/entity-service/attributes/index.d.ts +0 -6
  784. package/dist/services/entity-service/attributes/index.d.ts.map +0 -1
  785. package/dist/services/entity-service/attributes/index.js.map +0 -1
  786. package/dist/services/entity-service/attributes/index.mjs.map +0 -1
  787. package/dist/services/entity-service/attributes/transforms.d.ts +0 -10
  788. package/dist/services/entity-service/attributes/transforms.d.ts.map +0 -1
  789. package/dist/services/entity-service/attributes/transforms.js.map +0 -1
  790. package/dist/services/entity-service/attributes/transforms.mjs.map +0 -1
  791. package/dist/services/entity-service/components.d.ts +0 -23
  792. package/dist/services/entity-service/components.d.ts.map +0 -1
  793. package/dist/services/entity-service/components.js.map +0 -1
  794. package/dist/services/entity-service/components.mjs.map +0 -1
  795. package/dist/services/entity-service/params.d.ts +0 -8
  796. package/dist/services/entity-service/params.d.ts.map +0 -1
  797. package/dist/services/entity-service/params.js.map +0 -1
  798. package/dist/services/entity-service/params.mjs.map +0 -1
  799. package/dist/services/utils/upload-files.d.ts +0 -8
  800. package/dist/services/utils/upload-files.d.ts.map +0 -1
  801. package/dist/services/utils/upload-files.js +0 -64
  802. package/dist/services/utils/upload-files.js.map +0 -1
  803. package/dist/services/utils/upload-files.mjs +0 -63
  804. package/dist/services/utils/upload-files.mjs.map +0 -1
  805. package/dist/utils/get-dirs.d.ts +0 -9
  806. package/dist/utils/get-dirs.d.ts.map +0 -1
  807. package/dist/utils/get-dirs.js.map +0 -1
  808. package/dist/utils/get-dirs.mjs.map +0 -1
  809. /package/dist/services/{entity-service → document-service}/attributes/transforms.mjs +0 -0
  810. /package/dist/services/{entity-service → document-service}/params.mjs +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"data-ids.mjs","sources":["../../../../../../src/services/document-service/transform/relations/transform/data-ids.ts"],"sourcesContent":["import { isObject, isNil, pick } from 'lodash/fp';\n\nimport { EntityService, Attribute, Common } from '@strapi/types';\nimport { traverseEntity, errors } from '@strapi/utils';\n\nimport { ShortHand, LongHand, ID, GetIds } from '../utils/types';\nimport { isShortHand, isLongHand } from '../utils/data';\nimport { IdMap } from '../../id-map';\nimport { getRelationTargetLocale } from '../utils/i18n';\nimport { getRelationTargetStatus } from '../utils/dp';\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\n/**\n * Transform primitive relation representation to entry ids\n *\n * docId -> id\n * [docId] -> [id]\n * { documentID, locale, status } -> { id }\n * [{ documentID, locale, status }] -> [{ id }]\n *\n * Note: There are scenarios where a single documentID can map to multiple ids.\n * By default the returned format will match the input format.\n * Only when the docID maps to multiple ids, an array will always be returned, regardless of the input format.\n */\nconst transformPrimitive = <T extends ShortHand | LongHand>(\n relation: T | T[] | null | undefined,\n getIds: GetIds\n): T | T[] | undefined => {\n // TODO: Remove this, we should use the long hand version with 'id' for this case\n // If id value is a number, return it as is, it's already an entry id\n if (isNumeric(relation)) {\n return relation;\n }\n\n // null\n if (isNil(relation)) {\n return relation as T | undefined;\n }\n\n // id\n if (isShortHand(relation)) {\n const ids = getIds(relation) as T[];\n\n // Return it with the same format for consistency\n if (ids?.length === 1) return ids[0];\n\n // Return an array if multiple ids are found\n return ids;\n }\n\n // { id }\n if (isLongHand(relation)) {\n // If the id is already an entry id, return it as is\n if (!('documentId' in relation)) return relation;\n\n // @ts-expect-error - TODO: Add relation type\n const ids = getIds(relation.documentId, relation.locale, relation.status);\n\n // No ids to connect\n if (!ids?.length) return undefined;\n\n // Return it with the same format for consistency\n if (ids.length === 1) return { id: ids[0], ...pick(['position'], relation) } as T;\n\n // Return an array if it multiple ids are found\n return ids.map((id: ID) => ({ id, ...pick(['position'], relation) })) as T[];\n }\n\n // id[]\n if (Array.isArray(relation)) {\n return relation.flatMap((item) => transformPrimitive(item, getIds)).filter(Boolean) as T[];\n }\n\n return undefined;\n};\n\n/**\n * Transform ids in any type of relation input value\n * - set: [docId]\n * - disconnect: [docId]\n * - connect: [docId]\n * Or using any of the other primitive representations\n */\nconst transformRelationIdsVisitor = <T extends Attribute.RelationKind.Any>(\n relation: EntityService.Params.Attribute.RelationInputValue<T>,\n getIds: GetIds\n): EntityService.Params.Attribute.RelationInputValue<T> | undefined => {\n const map = transformPrimitive(relation as any, getIds);\n if (map) return map;\n\n if (!isObject(relation)) return relation;\n\n if (!('set' in relation) && !('disconnect' in relation) && !('connect' in relation)) {\n // The entry id couldn't be found and there are no connection properties in\n // the relation, therefore we want to remove the relation\n return;\n }\n\n // set: id[]\n // what if result of mapPrimitive is undefined?\n if ('set' in relation) {\n relation.set = transformPrimitive(relation.set as any, getIds);\n }\n\n if ('disconnect' in relation) {\n relation.disconnect = transformPrimitive(relation.disconnect as any, getIds);\n }\n\n if ('connect' in relation) {\n // connect: id[] | { id } | ...\n relation.connect = transformPrimitive(relation.connect as any, getIds);\n\n const mapPosition = (relation: any) => {\n if (isShortHand(relation) || !('position' in relation)) return relation;\n\n const position = { ...relation?.position };\n\n // { connect: { id: id, position: { before: id } } }\n if (position?.before) {\n const result = transformPrimitive({ ...position, documentId: position.before }, getIds);\n\n if (Array.isArray(result)) {\n position.before = result[0]?.id;\n } else {\n position.before = result?.id;\n }\n }\n\n // { connect: { id: id, position: { after: id } } }\n if (position?.after) {\n const result = transformPrimitive({ ...position, documentId: position.after }, getIds);\n\n if (Array.isArray(result)) {\n position.after = result[0]?.id;\n } else {\n position.after = result?.id;\n }\n }\n\n return { ...relation, position };\n };\n\n if (Array.isArray(relation.connect)) {\n relation.connect = relation.connect.map(mapPosition);\n } else {\n relation.connect = mapPosition(relation.connect);\n }\n }\n\n return relation;\n};\n\nconst EXCLUDED_FIELDS = [\n 'createdBy',\n 'updatedBy',\n 'localizations',\n 'strapi_stage',\n 'strapi_assignee',\n];\n\nconst transformDataIdsVisitor = (\n idMap: IdMap,\n data: Record<string, any>,\n opts: {\n uid: Common.UID.Schema;\n locale?: string | null;\n status?: 'draft' | 'published';\n allowMissingId?: boolean; // Whether to ignore missing ids and not throw any error\n }\n) => {\n return traverseEntity(\n ({ key, value, attribute }, { set }) => {\n // Find relational attributes, and return the document ids\n if (attribute.type === 'relation') {\n const target = attribute.target as Common.UID.Schema | undefined;\n // TODO: Handle polymorphic relations\n if (!target) return;\n // TODO: V5 remove excluded fields and use { id: } syntax for those relations\n if (EXCLUDED_FIELDS.includes(key)) return;\n\n const getIds = (\n documentId: ID,\n locale?: string,\n status?: 'draft' | 'published'\n ): ID[] | null => {\n // locale to connect to\n const targetLocale = getRelationTargetLocale(\n { documentId, locale },\n { targetUid: target, sourceUid: opts.uid, sourceLocale: opts.locale }\n );\n\n // status(es) to connect to\n const targetStatuses = getRelationTargetStatus(\n { documentId, status },\n { targetUid: target, sourceUid: opts.uid, sourceStatus: opts.status }\n );\n\n const ids = [];\n\n // Find mapping between documentID -> id(s).\n // There are scenarios where a single documentID can map to multiple ids.\n // e.g when connecting Non DP -> DP and connecting to both the draft and publish version at the same time\n for (const targetStatus of targetStatuses) {\n const entryId = idMap.get({\n uid: target,\n documentId,\n locale: targetLocale,\n status: targetStatus,\n });\n\n if (entryId) ids.push(entryId);\n }\n\n if (!ids.length && !opts.allowMissingId) {\n throw new errors.ValidationError(\n `Document with id \"${documentId}\", locale \"${targetLocale}\" not found`\n );\n }\n\n return ids;\n };\n\n const newRelation = transformRelationIdsVisitor(value as any, getIds);\n set(key, newRelation as any);\n }\n },\n { schema: strapi.getModel(opts.uid) },\n data\n );\n};\n\nexport { transformDataIdsVisitor };\n"],"names":["relation"],"mappings":";;;;;AAWA,MAAM,YAAY,CAAC,UAAgC;AAC7C,MAAA,MAAM,QAAQ,KAAK;AAAU,WAAA;AAC3B,QAAA,SAAS,SAAS,OAAO,EAAE;AAC1B,SAAA,CAAC,OAAO,MAAM,MAAM;AAC7B;AAcA,MAAM,qBAAqB,CACzB,UACA,WACwB;AAGpB,MAAA,UAAU,QAAQ,GAAG;AAChB,WAAA;AAAA,EACT;AAGI,MAAA,MAAM,QAAQ,GAAG;AACZ,WAAA;AAAA,EACT;AAGI,MAAA,YAAY,QAAQ,GAAG;AACnB,UAAA,MAAM,OAAO,QAAQ;AAG3B,QAAI,KAAK,WAAW;AAAG,aAAO,IAAI,CAAC;AAG5B,WAAA;AAAA,EACT;AAGI,MAAA,WAAW,QAAQ,GAAG;AAExB,QAAI,EAAE,gBAAgB;AAAkB,aAAA;AAGxC,UAAM,MAAM,OAAO,SAAS,YAAY,SAAS,QAAQ,SAAS,MAAM;AAGxE,QAAI,CAAC,KAAK;AAAe,aAAA;AAGzB,QAAI,IAAI,WAAW;AAAU,aAAA,EAAE,IAAI,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,UAAU,GAAG,QAAQ;AAGzE,WAAO,IAAI,IAAI,CAAC,QAAY,EAAE,IAAI,GAAG,KAAK,CAAC,UAAU,GAAG,QAAQ,IAAI;AAAA,EACtE;AAGI,MAAA,MAAM,QAAQ,QAAQ,GAAG;AACpB,WAAA,SAAS,QAAQ,CAAC,SAAS,mBAAmB,MAAM,MAAM,CAAC,EAAE,OAAO,OAAO;AAAA,EACpF;AAEO,SAAA;AACT;AASA,MAAM,8BAA8B,CAClC,UACA,WACqE;AAC/D,QAAA,MAAM,mBAAmB,UAAiB,MAAM;AAClD,MAAA;AAAY,WAAA;AAEZ,MAAA,CAAC,SAAS,QAAQ;AAAU,WAAA;AAE5B,MAAA,EAAE,SAAS,aAAa,EAAE,gBAAgB,aAAa,EAAE,aAAa,WAAW;AAGnF;AAAA,EACF;AAIA,MAAI,SAAS,UAAU;AACrB,aAAS,MAAM,mBAAmB,SAAS,KAAY,MAAM;AAAA,EAC/D;AAEA,MAAI,gBAAgB,UAAU;AAC5B,aAAS,aAAa,mBAAmB,SAAS,YAAmB,MAAM;AAAA,EAC7E;AAEA,MAAI,aAAa,UAAU;AAEzB,aAAS,UAAU,mBAAmB,SAAS,SAAgB,MAAM;AAE/D,UAAA,cAAc,CAACA,cAAkB;AACrC,UAAI,YAAYA,SAAQ,KAAK,EAAE,cAAcA;AAAkBA,eAAAA;AAE/D,YAAM,WAAW,EAAE,GAAGA,WAAU,SAAS;AAGzC,UAAI,UAAU,QAAQ;AACd,cAAA,SAAS,mBAAmB,EAAE,GAAG,UAAU,YAAY,SAAS,UAAU,MAAM;AAElF,YAAA,MAAM,QAAQ,MAAM,GAAG;AAChB,mBAAA,SAAS,OAAO,CAAC,GAAG;AAAA,QAAA,OACxB;AACL,mBAAS,SAAS,QAAQ;AAAA,QAC5B;AAAA,MACF;AAGA,UAAI,UAAU,OAAO;AACb,cAAA,SAAS,mBAAmB,EAAE,GAAG,UAAU,YAAY,SAAS,SAAS,MAAM;AAEjF,YAAA,MAAM,QAAQ,MAAM,GAAG;AAChB,mBAAA,QAAQ,OAAO,CAAC,GAAG;AAAA,QAAA,OACvB;AACL,mBAAS,QAAQ,QAAQ;AAAA,QAC3B;AAAA,MACF;AAEO,aAAA,EAAE,GAAGA,WAAU;IAAS;AAGjC,QAAI,MAAM,QAAQ,SAAS,OAAO,GAAG;AACnC,eAAS,UAAU,SAAS,QAAQ,IAAI,WAAW;AAAA,IAAA,OAC9C;AACI,eAAA,UAAU,YAAY,SAAS,OAAO;AAAA,IACjD;AAAA,EACF;AAEO,SAAA;AACT;AAEA,MAAM,kBAAkB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,MAAM,0BAA0B,CAC9B,OACA,MACA,SAMG;AACI,SAAA;AAAA,IACL,CAAC,EAAE,KAAK,OAAO,aAAa,EAAE,UAAU;AAElC,UAAA,UAAU,SAAS,YAAY;AACjC,cAAM,SAAS,UAAU;AAEzB,YAAI,CAAC;AAAQ;AAET,YAAA,gBAAgB,SAAS,GAAG;AAAG;AAEnC,cAAM,SAAS,CACb,YACA,QACA,WACgB;AAEhB,gBAAM,eAAe;AAAA,YACnB,EAAE,YAAY,OAAO;AAAA,YACrB,EAAE,WAAW,QAAQ,WAAW,KAAK,KAAK,cAAc,KAAK,OAAO;AAAA,UAAA;AAItE,gBAAM,iBAAiB;AAAA,YACrB,EAAE,YAAY,OAAO;AAAA,YACrB,EAAE,WAAW,QAAQ,WAAW,KAAK,KAAK,cAAc,KAAK,OAAO;AAAA,UAAA;AAGtE,gBAAM,MAAM,CAAA;AAKZ,qBAAW,gBAAgB,gBAAgB;AACnC,kBAAA,UAAU,MAAM,IAAI;AAAA,cACxB,KAAK;AAAA,cACL;AAAA,cACA,QAAQ;AAAA,cACR,QAAQ;AAAA,YAAA,CACT;AAEG,gBAAA;AAAS,kBAAI,KAAK,OAAO;AAAA,UAC/B;AAEA,cAAI,CAAC,IAAI,UAAU,CAAC,KAAK,gBAAgB;AACvC,kBAAM,IAAI,OAAO;AAAA,cACf,qBAAqB,UAAU,cAAc,YAAY;AAAA,YAAA;AAAA,UAE7D;AAEO,iBAAA;AAAA,QAAA;AAGH,cAAA,cAAc,4BAA4B,OAAc,MAAM;AACpE,YAAI,KAAK,WAAkB;AAAA,MAC7B;AAAA,IACF;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,KAAK,GAAG,EAAE;AAAA,IACpC;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"data-ids.mjs","sources":["../../../../../../src/services/document-service/transform/relations/transform/data-ids.ts"],"sourcesContent":["import { curry } from 'lodash/fp';\n\nimport type { UID } from '@strapi/types';\nimport { errors } from '@strapi/utils';\n\nimport { ID, LongHandDocument } from '../utils/types';\nimport { IdMap } from '../../id-map';\nimport { getRelationTargetLocale } from '../utils/i18n';\nimport { getRelationTargetStatus } from '../utils/dp';\nimport { mapRelation, traverseEntityRelations } from '../utils/map-relation';\n\ninterface Options {\n uid: UID.Schema;\n locale?: string | null;\n status?: 'draft' | 'published';\n allowMissingId?: boolean; // Whether to ignore missing ids and not throw any error\n}\n\n/**\n * Get the entry ids for a given documentId.\n */\nconst getRelationIds = curry(\n (idMap: IdMap, targetUid: UID.Schema, source: Options, relation: LongHandDocument) => {\n // locale to connect to\n const targetLocale = getRelationTargetLocale(relation, {\n targetUid,\n sourceUid: source.uid,\n sourceLocale: source.locale,\n });\n\n // status(es) to connect to\n const targetStatus = getRelationTargetStatus(relation, {\n targetUid,\n sourceUid: source.uid,\n sourceStatus: source.status,\n });\n\n const ids: ID[] = [];\n\n // Find mapping between documentID -> id(s).\n // There are scenarios where a single documentID can map to multiple ids.\n // e.g when connecting Non DP -> DP and connecting to both the draft and publish version at the same time\n for (const tStatus of targetStatus) {\n const entryId = idMap.get({\n uid: targetUid,\n documentId: relation.documentId,\n locale: targetLocale,\n status: tStatus,\n });\n\n if (entryId) ids.push(entryId);\n }\n\n if (!ids.length && !source.allowMissingId) {\n throw new errors.ValidationError(\n `Document with id \"${relation.documentId}\", locale \"${targetLocale}\" not found`\n );\n }\n\n return ids;\n }\n);\n\n/**\n * Iterate over all relations of a data object and transform all relational document ids to entity ids.\n */\nconst transformDataIdsVisitor = (idMap: IdMap, data: Record<string, any>, source: Options) => {\n return traverseEntityRelations(\n async ({ key, value, attribute }, { set }) => {\n if (!attribute) {\n return;\n }\n\n // Find relational attributes, and return the document ids\n const targetUid = attribute.target!;\n const getIds = getRelationIds(idMap, targetUid, source);\n\n // Transform the relation documentId to entity id\n const newRelation = await mapRelation((relation) => {\n if (!relation || !relation.documentId) {\n return relation;\n }\n\n const ids = getIds(relation);\n\n // Handle positional arguments\n const position = { ...relation.position };\n\n if (position.before) {\n const beforeRelation = { ...relation, ...position, documentId: position.before };\n position.before = getIds(beforeRelation).at(0);\n }\n\n if (position.after) {\n const afterRelation = { ...relation, ...position, documentId: position.after };\n position.after = getIds(afterRelation).at(0);\n }\n\n // Transform all ids to new relations\n return ids?.map((id) => {\n const newRelation = { id } as typeof relation;\n if (relation.position) {\n newRelation.position = position;\n }\n\n return newRelation;\n });\n }, value as any);\n\n set(key, newRelation as any);\n },\n { schema: strapi.getModel(source.uid), getModel: strapi.getModel.bind(strapi) },\n data\n );\n};\n\nexport { transformDataIdsVisitor };\n"],"names":["traverseEntityRelations","mapRelation","newRelation"],"mappings":";;;;;AAqBA,MAAM,iBAAiB;AAAA,EACrB,CAAC,OAAc,WAAuB,QAAiB,aAA+B;AAE9E,UAAA,eAAe,wBAAwB,UAAU;AAAA,MACrD;AAAA,MACA,WAAW,OAAO;AAAA,MAClB,cAAc,OAAO;AAAA,IAAA,CACtB;AAGK,UAAA,eAAe,wBAAwB,UAAU;AAAA,MACrD;AAAA,MACA,WAAW,OAAO;AAAA,MAClB,cAAc,OAAO;AAAA,IAAA,CACtB;AAED,UAAM,MAAY,CAAA;AAKlB,eAAW,WAAW,cAAc;AAC5B,YAAA,UAAU,MAAM,IAAI;AAAA,QACxB,KAAK;AAAA,QACL,YAAY,SAAS;AAAA,QACrB,QAAQ;AAAA,QACR,QAAQ;AAAA,MAAA,CACT;AAEG,UAAA;AAAS,YAAI,KAAK,OAAO;AAAA,IAC/B;AAEA,QAAI,CAAC,IAAI,UAAU,CAAC,OAAO,gBAAgB;AACzC,YAAM,IAAI,OAAO;AAAA,QACf,qBAAqB,SAAS,UAAU,cAAc,YAAY;AAAA,MAAA;AAAA,IAEtE;AAEO,WAAA;AAAA,EACT;AACF;AAKA,MAAM,0BAA0B,CAAC,OAAc,MAA2B,WAAoB;AACrF,SAAAA;AAAAA,IACL,OAAO,EAAE,KAAK,OAAO,aAAa,EAAE,UAAU;AAC5C,UAAI,CAAC,WAAW;AACd;AAAA,MACF;AAGA,YAAM,YAAY,UAAU;AAC5B,YAAM,SAAS,eAAe,OAAO,WAAW,MAAM;AAGtD,YAAM,cAAc,MAAMC,mBAAY,CAAC,aAAa;AAClD,YAAI,CAAC,YAAY,CAAC,SAAS,YAAY;AAC9B,iBAAA;AAAA,QACT;AAEM,cAAA,MAAM,OAAO,QAAQ;AAG3B,cAAM,WAAW,EAAE,GAAG,SAAS,SAAS;AAExC,YAAI,SAAS,QAAQ;AACb,gBAAA,iBAAiB,EAAE,GAAG,UAAU,GAAG,UAAU,YAAY,SAAS;AACxE,mBAAS,SAAS,OAAO,cAAc,EAAE,GAAG,CAAC;AAAA,QAC/C;AAEA,YAAI,SAAS,OAAO;AACZ,gBAAA,gBAAgB,EAAE,GAAG,UAAU,GAAG,UAAU,YAAY,SAAS;AACvE,mBAAS,QAAQ,OAAO,aAAa,EAAE,GAAG,CAAC;AAAA,QAC7C;AAGO,eAAA,KAAK,IAAI,CAAC,OAAO;AAChBC,gBAAAA,eAAc,EAAE;AACtB,cAAI,SAAS,UAAU;AACrBA,yBAAY,WAAW;AAAA,UACzB;AAEOA,iBAAAA;AAAAA,QAAA,CACR;AAAA,SACA,KAAY;AAEf,UAAI,KAAK,WAAkB;AAAA,IAC7B;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,OAAO,GAAG,GAAG,UAAU,OAAO,SAAS,KAAK,MAAM,EAAE;AAAA,IAC9E;AAAA,EAAA;AAEJ;"}
@@ -0,0 +1,9 @@
1
+ import type { UID } from '@strapi/types';
2
+ /**
3
+ * In scenarios like Non i18n CT -> i18n CT
4
+ * relations can be connected to multiple locales,
5
+ * in case user does not provide the locale, this sets it to the default one.
6
+ */
7
+ declare const setDefaultLocaleToRelations: (data: Record<string, any>, uid: UID.Schema) => Record<string, any> | Promise<import("@strapi/utils/dist/types").Data>;
8
+ export { setDefaultLocaleToRelations };
9
+ //# sourceMappingURL=default-locale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-locale.d.ts","sourceRoot":"","sources":["../../../../../../src/services/document-service/transform/relations/transform/default-locale.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAKzC;;;;GAIG;AACH,QAAA,MAAM,2BAA2B,SAAU,OAAO,MAAM,EAAE,GAAG,CAAC,OAAO,IAAI,MAAM,2EA2C9E,CAAC;AAEF,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const i18n = require("../utils/i18n.js");
4
+ const mapRelation = require("../utils/map-relation.js");
5
+ const setDefaultLocaleToRelations = (data, uid) => {
6
+ if (i18n.isLocalizedContentType(uid)) {
7
+ return data;
8
+ }
9
+ let defaultLocale;
10
+ return mapRelation.traverseEntityRelations(
11
+ async ({ key, value }, { set }) => {
12
+ const relation = await mapRelation.mapRelation(async (relation2) => {
13
+ if (!relation2 || !relation2?.documentId || relation2?.locale) {
14
+ return relation2;
15
+ }
16
+ if (!defaultLocale) {
17
+ defaultLocale = await i18n.getDefaultLocale();
18
+ }
19
+ const position = relation2.position;
20
+ if (position && typeof position === "object" && !position.locale) {
21
+ relation2.position.locale = defaultLocale;
22
+ }
23
+ return { ...relation2, locale: defaultLocale };
24
+ }, value);
25
+ set(key, relation);
26
+ },
27
+ { schema: strapi.getModel(uid), getModel: strapi.getModel.bind(strapi) },
28
+ data
29
+ );
30
+ };
31
+ exports.setDefaultLocaleToRelations = setDefaultLocaleToRelations;
32
+ //# sourceMappingURL=default-locale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-locale.js","sources":["../../../../../../src/services/document-service/transform/relations/transform/default-locale.ts"],"sourcesContent":["import type { UID } from '@strapi/types';\n\nimport { getDefaultLocale, isLocalizedContentType } from '../utils/i18n';\nimport { mapRelation, traverseEntityRelations } from '../utils/map-relation';\n\n/**\n * In scenarios like Non i18n CT -> i18n CT\n * relations can be connected to multiple locales,\n * in case user does not provide the locale, this sets it to the default one.\n */\nconst setDefaultLocaleToRelations = (data: Record<string, any>, uid: UID.Schema) => {\n // I18n CT -> anything will already have a locale set (source locale)\n if (isLocalizedContentType(uid)) {\n return data;\n }\n\n // Store the default locale to avoid multiple calls\n let defaultLocale: string;\n\n /**\n * Traverse the entity input data and set the default locale to relations\n */\n return traverseEntityRelations(\n async ({ key, value }, { set }) => {\n /**\n * Assign default locale on long hand expressed relations\n * e.g { documentId } -> { documentId, locale }\n */\n const relation = await mapRelation(async (relation) => {\n if (!relation || !relation?.documentId || relation?.locale) {\n return relation;\n }\n\n // Set default locale if not provided\n if (!defaultLocale) {\n defaultLocale = await getDefaultLocale();\n }\n\n // Assign default locale to the positional argument\n const position = relation.position;\n if (position && typeof position === 'object' && !position.locale) {\n relation.position.locale = defaultLocale;\n }\n\n return { ...relation, locale: defaultLocale };\n }, value as any);\n\n // @ts-expect-error - fix type\n set(key, relation);\n },\n { schema: strapi.getModel(uid), getModel: strapi.getModel.bind(strapi) },\n data\n );\n};\n\nexport { setDefaultLocaleToRelations };\n"],"names":["isLocalizedContentType","traverseEntityRelations","mapRelation","relation","getDefaultLocale"],"mappings":";;;;AAUM,MAAA,8BAA8B,CAAC,MAA2B,QAAoB;AAE9E,MAAAA,KAAAA,uBAAuB,GAAG,GAAG;AACxB,WAAA;AAAA,EACT;AAGI,MAAA;AAKG,SAAAC,YAAA;AAAA,IACL,OAAO,EAAE,KAAK,SAAS,EAAE,UAAU;AAKjC,YAAM,WAAW,MAAMC,wBAAY,OAAOC,cAAa;AACrD,YAAI,CAACA,aAAY,CAACA,WAAU,cAAcA,WAAU,QAAQ;AACnDA,iBAAAA;AAAAA,QACT;AAGA,YAAI,CAAC,eAAe;AAClB,0BAAgB,MAAMC,KAAAA;QACxB;AAGA,cAAM,WAAWD,UAAS;AAC1B,YAAI,YAAY,OAAO,aAAa,YAAY,CAAC,SAAS,QAAQ;AAChEA,oBAAS,SAAS,SAAS;AAAA,QAC7B;AAEA,eAAO,EAAE,GAAGA,WAAU,QAAQ,cAAc;AAAA,SAC3C,KAAY;AAGf,UAAI,KAAK,QAAQ;AAAA,IACnB;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,GAAG,GAAG,UAAU,OAAO,SAAS,KAAK,MAAM,EAAE;AAAA,IACvE;AAAA,EAAA;AAEJ;;"}
@@ -0,0 +1,32 @@
1
+ import { isLocalizedContentType, getDefaultLocale } from "../utils/i18n.mjs";
2
+ import { traverseEntityRelations as traverseEntityRelationsCurried, mapRelation as mapRelationCurried } from "../utils/map-relation.mjs";
3
+ const setDefaultLocaleToRelations = (data, uid) => {
4
+ if (isLocalizedContentType(uid)) {
5
+ return data;
6
+ }
7
+ let defaultLocale;
8
+ return traverseEntityRelationsCurried(
9
+ async ({ key, value }, { set }) => {
10
+ const relation = await mapRelationCurried(async (relation2) => {
11
+ if (!relation2 || !relation2?.documentId || relation2?.locale) {
12
+ return relation2;
13
+ }
14
+ if (!defaultLocale) {
15
+ defaultLocale = await getDefaultLocale();
16
+ }
17
+ const position = relation2.position;
18
+ if (position && typeof position === "object" && !position.locale) {
19
+ relation2.position.locale = defaultLocale;
20
+ }
21
+ return { ...relation2, locale: defaultLocale };
22
+ }, value);
23
+ set(key, relation);
24
+ },
25
+ { schema: strapi.getModel(uid), getModel: strapi.getModel.bind(strapi) },
26
+ data
27
+ );
28
+ };
29
+ export {
30
+ setDefaultLocaleToRelations
31
+ };
32
+ //# sourceMappingURL=default-locale.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-locale.mjs","sources":["../../../../../../src/services/document-service/transform/relations/transform/default-locale.ts"],"sourcesContent":["import type { UID } from '@strapi/types';\n\nimport { getDefaultLocale, isLocalizedContentType } from '../utils/i18n';\nimport { mapRelation, traverseEntityRelations } from '../utils/map-relation';\n\n/**\n * In scenarios like Non i18n CT -> i18n CT\n * relations can be connected to multiple locales,\n * in case user does not provide the locale, this sets it to the default one.\n */\nconst setDefaultLocaleToRelations = (data: Record<string, any>, uid: UID.Schema) => {\n // I18n CT -> anything will already have a locale set (source locale)\n if (isLocalizedContentType(uid)) {\n return data;\n }\n\n // Store the default locale to avoid multiple calls\n let defaultLocale: string;\n\n /**\n * Traverse the entity input data and set the default locale to relations\n */\n return traverseEntityRelations(\n async ({ key, value }, { set }) => {\n /**\n * Assign default locale on long hand expressed relations\n * e.g { documentId } -> { documentId, locale }\n */\n const relation = await mapRelation(async (relation) => {\n if (!relation || !relation?.documentId || relation?.locale) {\n return relation;\n }\n\n // Set default locale if not provided\n if (!defaultLocale) {\n defaultLocale = await getDefaultLocale();\n }\n\n // Assign default locale to the positional argument\n const position = relation.position;\n if (position && typeof position === 'object' && !position.locale) {\n relation.position.locale = defaultLocale;\n }\n\n return { ...relation, locale: defaultLocale };\n }, value as any);\n\n // @ts-expect-error - fix type\n set(key, relation);\n },\n { schema: strapi.getModel(uid), getModel: strapi.getModel.bind(strapi) },\n data\n );\n};\n\nexport { setDefaultLocaleToRelations };\n"],"names":["traverseEntityRelations","mapRelation","relation"],"mappings":";;AAUM,MAAA,8BAA8B,CAAC,MAA2B,QAAoB;AAE9E,MAAA,uBAAuB,GAAG,GAAG;AACxB,WAAA;AAAA,EACT;AAGI,MAAA;AAKG,SAAAA;AAAAA,IACL,OAAO,EAAE,KAAK,SAAS,EAAE,UAAU;AAKjC,YAAM,WAAW,MAAMC,mBAAY,OAAOC,cAAa;AACrD,YAAI,CAACA,aAAY,CAACA,WAAU,cAAcA,WAAU,QAAQ;AACnDA,iBAAAA;AAAAA,QACT;AAGA,YAAI,CAAC,eAAe;AAClB,0BAAgB,MAAM;QACxB;AAGA,cAAM,WAAWA,UAAS;AAC1B,YAAI,YAAY,OAAO,aAAa,YAAY,CAAC,SAAS,QAAQ;AAChEA,oBAAS,SAAS,SAAS;AAAA,QAC7B;AAEA,eAAO,EAAE,GAAGA,WAAU,QAAQ,cAAc;AAAA,SAC3C,KAAY;AAGf,UAAI,KAAK,QAAQ;AAAA,IACnB;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,GAAG,GAAG,UAAU,OAAO,SAAS,KAAK,MAAM,EAAE;AAAA,IACvE;AAAA,EAAA;AAEJ;"}
@@ -1,9 +1,9 @@
1
- import { Common } from '@strapi/types';
1
+ import { UID } from '@strapi/types';
2
2
  import { LongHandDocument } from './types';
3
3
  type Status = 'draft' | 'published';
4
4
  export declare const getRelationTargetStatus: (relation: Pick<LongHandDocument, 'documentId' | 'status'>, opts: {
5
- targetUid: Common.UID.Schema;
6
- sourceUid: Common.UID.Schema;
5
+ targetUid: UID.Schema;
6
+ sourceUid: UID.Schema;
7
7
  sourceStatus?: Status;
8
8
  }) => Status[];
9
9
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"dp.d.ts","sourceRoot":"","sources":["../../../../../../src/services/document-service/transform/relations/utils/dp.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,KAAK,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;AAEpC,eAAO,MAAM,uBAAuB,aACxB,KAAK,gBAAgB,EAAE,YAAY,GAAG,QAAQ,CAAC,QACnD;IACJ,SAAS,EAAE,OAAO,GAAG,CAAC,MAAM,CAAC;IAC7B,SAAS,EAAE,OAAO,GAAG,CAAC,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KACA,MAAM,EA6BR,CAAC"}
1
+ {"version":3,"file":"dp.d.ts","sourceRoot":"","sources":["../../../../../../src/services/document-service/transform/relations/utils/dp.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,KAAK,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;AAEpC,eAAO,MAAM,uBAAuB,aACxB,KAAK,gBAAgB,EAAE,YAAY,GAAG,QAAQ,CAAC,QACnD;IACJ,SAAS,EAAE,IAAI,MAAM,CAAC;IACtB,SAAS,EAAE,IAAI,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KACA,MAAM,EA2CR,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const _ = require("lodash/fp");
3
+ const fp = require("lodash/fp");
4
4
  const strapiUtils = require("@strapi/utils");
5
5
  const getRelationTargetStatus = (relation, opts) => {
6
6
  const targetContentType = strapi.getModel(opts.targetUid);
@@ -10,15 +10,20 @@ const getRelationTargetStatus = (relation, opts) => {
10
10
  if (!targetHasDP) {
11
11
  return ["published"];
12
12
  }
13
+ if (sourceHasDP && !fp.isNil(opts.sourceStatus)) {
14
+ return [opts.sourceStatus];
15
+ }
13
16
  if (relation.status) {
14
- return [relation.status];
17
+ switch (relation.status) {
18
+ case "published":
19
+ return ["published"];
20
+ default:
21
+ return ["draft"];
22
+ }
15
23
  }
16
24
  if (!sourceHasDP) {
17
25
  return ["draft", "published"];
18
26
  }
19
- if (!_.isNil(opts.sourceStatus)) {
20
- return [opts.sourceStatus];
21
- }
22
27
  return ["draft"];
23
28
  };
24
29
  exports.getRelationTargetStatus = getRelationTargetStatus;
@@ -1 +1 @@
1
- {"version":3,"file":"dp.js","sources":["../../../../../../src/services/document-service/transform/relations/utils/dp.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\n\nimport { contentTypes } from '@strapi/utils';\nimport { Common } from '@strapi/types';\n\nimport { LongHandDocument } from './types';\n\ntype Status = 'draft' | 'published';\n\nexport const getRelationTargetStatus = (\n relation: Pick<LongHandDocument, 'documentId' | 'status'>,\n opts: {\n targetUid: Common.UID.Schema;\n sourceUid: Common.UID.Schema;\n sourceStatus?: Status;\n }\n): Status[] => {\n // Ignore if the target content type does not have draft and publish enabled\n const targetContentType = strapi.getModel(opts.targetUid);\n const sourceContentType = strapi.getModel(opts.sourceUid);\n\n const targetHasDP = contentTypes.hasDraftAndPublish(targetContentType);\n const sourceHasDP = contentTypes.hasDraftAndPublish(sourceContentType);\n\n if (!targetHasDP) {\n return ['published'];\n }\n\n // priority:\n // DP Enabled 'relation status' -> 'source status' -> 'draft'\n // DP Disabled 'relation status' -> 'draft' and 'published'\n if (relation.status) {\n return [relation.status];\n }\n\n // Connect to both draft and published versions if dp is disabled and relation does not specify a status\n if (!sourceHasDP) {\n return ['draft', 'published'];\n }\n\n if (!isNil(opts.sourceStatus)) {\n return [opts.sourceStatus];\n }\n\n return ['draft'];\n};\n"],"names":["contentTypes","isNil"],"mappings":";;;;AASa,MAAA,0BAA0B,CACrC,UACA,SAKa;AAEb,QAAM,oBAAoB,OAAO,SAAS,KAAK,SAAS;AACxD,QAAM,oBAAoB,OAAO,SAAS,KAAK,SAAS;AAElD,QAAA,cAAcA,YAAAA,aAAa,mBAAmB,iBAAiB;AAC/D,QAAA,cAAcA,YAAAA,aAAa,mBAAmB,iBAAiB;AAErE,MAAI,CAAC,aAAa;AAChB,WAAO,CAAC,WAAW;AAAA,EACrB;AAKA,MAAI,SAAS,QAAQ;AACZ,WAAA,CAAC,SAAS,MAAM;AAAA,EACzB;AAGA,MAAI,CAAC,aAAa;AACT,WAAA,CAAC,SAAS,WAAW;AAAA,EAC9B;AAEA,MAAI,CAACC,EAAA,MAAM,KAAK,YAAY,GAAG;AACtB,WAAA,CAAC,KAAK,YAAY;AAAA,EAC3B;AAEA,SAAO,CAAC,OAAO;AACjB;;"}
1
+ {"version":3,"file":"dp.js","sources":["../../../../../../src/services/document-service/transform/relations/utils/dp.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\n\nimport { contentTypes } from '@strapi/utils';\nimport { UID } from '@strapi/types';\n\nimport { LongHandDocument } from './types';\n\ntype Status = 'draft' | 'published';\n\nexport const getRelationTargetStatus = (\n relation: Pick<LongHandDocument, 'documentId' | 'status'>,\n opts: {\n targetUid: UID.Schema;\n sourceUid: UID.Schema;\n sourceStatus?: Status;\n }\n): Status[] => {\n // Ignore if the target content type does not have draft and publish enabled\n const targetContentType = strapi.getModel(opts.targetUid);\n const sourceContentType = strapi.getModel(opts.sourceUid);\n\n const targetHasDP = contentTypes.hasDraftAndPublish(targetContentType);\n const sourceHasDP = contentTypes.hasDraftAndPublish(sourceContentType);\n\n if (!targetHasDP) {\n return ['published'];\n }\n\n /**\n * If both source and target have DP enabled,\n * connect it to the same status as the source status\n */\n if (sourceHasDP && !isNil(opts.sourceStatus)) {\n return [opts.sourceStatus];\n }\n\n /**\n * Use the status from the relation if it's set\n */\n if (relation.status) {\n switch (relation.status) {\n case 'published':\n return ['published'];\n default:\n // Default to draft if it's an invalid status (e.g. modified)\n return ['draft'];\n }\n }\n\n /**\n * If DP is disabled and relation does not specify any status\n * Connect to both draft and published versions\n */\n if (!sourceHasDP) {\n return ['draft', 'published'];\n }\n\n // Default to draft as a fallback\n return ['draft'];\n};\n"],"names":["contentTypes","isNil"],"mappings":";;;;AASa,MAAA,0BAA0B,CACrC,UACA,SAKa;AAEb,QAAM,oBAAoB,OAAO,SAAS,KAAK,SAAS;AACxD,QAAM,oBAAoB,OAAO,SAAS,KAAK,SAAS;AAElD,QAAA,cAAcA,YAAAA,aAAa,mBAAmB,iBAAiB;AAC/D,QAAA,cAAcA,YAAAA,aAAa,mBAAmB,iBAAiB;AAErE,MAAI,CAAC,aAAa;AAChB,WAAO,CAAC,WAAW;AAAA,EACrB;AAMA,MAAI,eAAe,CAACC,GAAAA,MAAM,KAAK,YAAY,GAAG;AACrC,WAAA,CAAC,KAAK,YAAY;AAAA,EAC3B;AAKA,MAAI,SAAS,QAAQ;AACnB,YAAQ,SAAS,QAAQ;AAAA,MACvB,KAAK;AACH,eAAO,CAAC,WAAW;AAAA,MACrB;AAEE,eAAO,CAAC,OAAO;AAAA,IACnB;AAAA,EACF;AAMA,MAAI,CAAC,aAAa;AACT,WAAA,CAAC,SAAS,WAAW;AAAA,EAC9B;AAGA,SAAO,CAAC,OAAO;AACjB;;"}
@@ -8,15 +8,20 @@ const getRelationTargetStatus = (relation, opts) => {
8
8
  if (!targetHasDP) {
9
9
  return ["published"];
10
10
  }
11
+ if (sourceHasDP && !isNil(opts.sourceStatus)) {
12
+ return [opts.sourceStatus];
13
+ }
11
14
  if (relation.status) {
12
- return [relation.status];
15
+ switch (relation.status) {
16
+ case "published":
17
+ return ["published"];
18
+ default:
19
+ return ["draft"];
20
+ }
13
21
  }
14
22
  if (!sourceHasDP) {
15
23
  return ["draft", "published"];
16
24
  }
17
- if (!isNil(opts.sourceStatus)) {
18
- return [opts.sourceStatus];
19
- }
20
25
  return ["draft"];
21
26
  };
22
27
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"dp.mjs","sources":["../../../../../../src/services/document-service/transform/relations/utils/dp.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\n\nimport { contentTypes } from '@strapi/utils';\nimport { Common } from '@strapi/types';\n\nimport { LongHandDocument } from './types';\n\ntype Status = 'draft' | 'published';\n\nexport const getRelationTargetStatus = (\n relation: Pick<LongHandDocument, 'documentId' | 'status'>,\n opts: {\n targetUid: Common.UID.Schema;\n sourceUid: Common.UID.Schema;\n sourceStatus?: Status;\n }\n): Status[] => {\n // Ignore if the target content type does not have draft and publish enabled\n const targetContentType = strapi.getModel(opts.targetUid);\n const sourceContentType = strapi.getModel(opts.sourceUid);\n\n const targetHasDP = contentTypes.hasDraftAndPublish(targetContentType);\n const sourceHasDP = contentTypes.hasDraftAndPublish(sourceContentType);\n\n if (!targetHasDP) {\n return ['published'];\n }\n\n // priority:\n // DP Enabled 'relation status' -> 'source status' -> 'draft'\n // DP Disabled 'relation status' -> 'draft' and 'published'\n if (relation.status) {\n return [relation.status];\n }\n\n // Connect to both draft and published versions if dp is disabled and relation does not specify a status\n if (!sourceHasDP) {\n return ['draft', 'published'];\n }\n\n if (!isNil(opts.sourceStatus)) {\n return [opts.sourceStatus];\n }\n\n return ['draft'];\n};\n"],"names":[],"mappings":";;AASa,MAAA,0BAA0B,CACrC,UACA,SAKa;AAEb,QAAM,oBAAoB,OAAO,SAAS,KAAK,SAAS;AACxD,QAAM,oBAAoB,OAAO,SAAS,KAAK,SAAS;AAElD,QAAA,cAAc,aAAa,mBAAmB,iBAAiB;AAC/D,QAAA,cAAc,aAAa,mBAAmB,iBAAiB;AAErE,MAAI,CAAC,aAAa;AAChB,WAAO,CAAC,WAAW;AAAA,EACrB;AAKA,MAAI,SAAS,QAAQ;AACZ,WAAA,CAAC,SAAS,MAAM;AAAA,EACzB;AAGA,MAAI,CAAC,aAAa;AACT,WAAA,CAAC,SAAS,WAAW;AAAA,EAC9B;AAEA,MAAI,CAAC,MAAM,KAAK,YAAY,GAAG;AACtB,WAAA,CAAC,KAAK,YAAY;AAAA,EAC3B;AAEA,SAAO,CAAC,OAAO;AACjB;"}
1
+ {"version":3,"file":"dp.mjs","sources":["../../../../../../src/services/document-service/transform/relations/utils/dp.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\n\nimport { contentTypes } from '@strapi/utils';\nimport { UID } from '@strapi/types';\n\nimport { LongHandDocument } from './types';\n\ntype Status = 'draft' | 'published';\n\nexport const getRelationTargetStatus = (\n relation: Pick<LongHandDocument, 'documentId' | 'status'>,\n opts: {\n targetUid: UID.Schema;\n sourceUid: UID.Schema;\n sourceStatus?: Status;\n }\n): Status[] => {\n // Ignore if the target content type does not have draft and publish enabled\n const targetContentType = strapi.getModel(opts.targetUid);\n const sourceContentType = strapi.getModel(opts.sourceUid);\n\n const targetHasDP = contentTypes.hasDraftAndPublish(targetContentType);\n const sourceHasDP = contentTypes.hasDraftAndPublish(sourceContentType);\n\n if (!targetHasDP) {\n return ['published'];\n }\n\n /**\n * If both source and target have DP enabled,\n * connect it to the same status as the source status\n */\n if (sourceHasDP && !isNil(opts.sourceStatus)) {\n return [opts.sourceStatus];\n }\n\n /**\n * Use the status from the relation if it's set\n */\n if (relation.status) {\n switch (relation.status) {\n case 'published':\n return ['published'];\n default:\n // Default to draft if it's an invalid status (e.g. modified)\n return ['draft'];\n }\n }\n\n /**\n * If DP is disabled and relation does not specify any status\n * Connect to both draft and published versions\n */\n if (!sourceHasDP) {\n return ['draft', 'published'];\n }\n\n // Default to draft as a fallback\n return ['draft'];\n};\n"],"names":[],"mappings":";;AASa,MAAA,0BAA0B,CACrC,UACA,SAKa;AAEb,QAAM,oBAAoB,OAAO,SAAS,KAAK,SAAS;AACxD,QAAM,oBAAoB,OAAO,SAAS,KAAK,SAAS;AAElD,QAAA,cAAc,aAAa,mBAAmB,iBAAiB;AAC/D,QAAA,cAAc,aAAa,mBAAmB,iBAAiB;AAErE,MAAI,CAAC,aAAa;AAChB,WAAO,CAAC,WAAW;AAAA,EACrB;AAMA,MAAI,eAAe,CAAC,MAAM,KAAK,YAAY,GAAG;AACrC,WAAA,CAAC,KAAK,YAAY;AAAA,EAC3B;AAKA,MAAI,SAAS,QAAQ;AACnB,YAAQ,SAAS,QAAQ;AAAA,MACvB,KAAK;AACH,eAAO,CAAC,WAAW;AAAA,MACrB;AAEE,eAAO,CAAC,OAAO;AAAA,IACnB;AAAA,EACF;AAMA,MAAI,CAAC,aAAa;AACT,WAAA,CAAC,SAAS,WAAW;AAAA,EAC9B;AAGA,SAAO,CAAC,OAAO;AACjB;"}
@@ -1,10 +1,10 @@
1
- import { Common } from '@strapi/types';
1
+ import { UID } from '@strapi/types';
2
2
  import { LongHandDocument } from './types';
3
- export declare const isLocalizedContentType: (uid: Common.UID.Schema) => any;
4
- export declare const getDefaultLocale: () => string;
3
+ export declare const isLocalizedContentType: (uid: UID.Schema) => any;
4
+ export declare const getDefaultLocale: () => any;
5
5
  export declare const getRelationTargetLocale: (relation: LongHandDocument, opts: {
6
- targetUid: Common.UID.Schema;
7
- sourceUid: Common.UID.Schema;
6
+ targetUid: UID.Schema;
7
+ sourceUid: UID.Schema;
8
8
  sourceLocale?: string | null;
9
- }) => string | null;
9
+ }) => string | null | undefined;
10
10
  //# sourceMappingURL=i18n.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../../../src/services/document-service/transform/relations/utils/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,sBAAsB,QAAS,OAAO,GAAG,CAAC,MAAM,QAG5D,CAAC;AAEF,eAAO,MAAM,gBAAgB,cAI5B,CAAC;AAEF,eAAO,MAAM,uBAAuB,aACxB,gBAAgB,QACpB;IACJ,SAAS,EAAE,OAAO,GAAG,CAAC,MAAM,CAAC;IAC7B,SAAS,EAAE,OAAO,GAAG,CAAC,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,kBAuBF,CAAC"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../../../src/services/document-service/transform/relations/utils/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,sBAAsB,QAAS,IAAI,MAAM,QAGrD,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAE5B,CAAC;AAEF,eAAO,MAAM,uBAAuB,aACxB,gBAAgB,QACpB;IACJ,SAAS,EAAE,IAAI,MAAM,CAAC;IACtB,SAAS,EAAE,IAAI,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,8BAiBF,CAAC"}
@@ -1,24 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const strapiUtils = require("@strapi/utils");
4
3
  const isLocalizedContentType = (uid) => {
5
4
  const model = strapi.getModel(uid);
6
5
  return strapi.plugin("i18n").service("content-types").isLocalizedContentType(model);
7
6
  };
8
7
  const getDefaultLocale = () => {
9
- return "en";
8
+ return strapi.plugin("i18n").service("locales").getDefaultLocale();
10
9
  };
11
10
  const getRelationTargetLocale = (relation, opts) => {
12
- const defaultLocale = getDefaultLocale();
13
- const targetLocale = relation.locale || opts.sourceLocale || defaultLocale;
11
+ const targetLocale = relation.locale || opts.sourceLocale;
14
12
  const isTargetLocalized = isLocalizedContentType(opts.targetUid);
15
13
  const isSourceLocalized = isLocalizedContentType(opts.sourceUid);
16
14
  if (isSourceLocalized && isTargetLocalized) {
17
- if (targetLocale !== opts.sourceLocale) {
18
- throw new strapiUtils.errors.ValidationError(
19
- `Relation locale does not match the source locale ${JSON.stringify(relation)}`
20
- );
21
- }
15
+ return opts.sourceLocale;
22
16
  }
23
17
  if (isTargetLocalized) {
24
18
  return targetLocale;
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sources":["../../../../../../src/services/document-service/transform/relations/utils/i18n.ts"],"sourcesContent":["import { Common } from '@strapi/types';\nimport { errors } from '@strapi/utils';\nimport { LongHandDocument } from './types';\n\nexport const isLocalizedContentType = (uid: Common.UID.Schema) => {\n const model = strapi.getModel(uid);\n return strapi.plugin('i18n').service('content-types').isLocalizedContentType(model);\n};\n\nexport const getDefaultLocale = () => {\n // TODO: Fix this\n // return strapi.plugin('i18n').service('locales').getDefaultLocale();\n return 'en';\n};\n\nexport const getRelationTargetLocale = (\n relation: LongHandDocument,\n opts: {\n targetUid: Common.UID.Schema;\n sourceUid: Common.UID.Schema;\n sourceLocale?: string | null;\n }\n) => {\n const defaultLocale = getDefaultLocale();\n const targetLocale = relation.locale || opts.sourceLocale || defaultLocale;\n\n const isTargetLocalized = isLocalizedContentType(opts.targetUid);\n const isSourceLocalized = isLocalizedContentType(opts.sourceUid);\n\n // Locale validations\n if (isSourceLocalized && isTargetLocalized) {\n // Check the targetLocale matches\n if (targetLocale !== opts.sourceLocale) {\n throw new errors.ValidationError(\n `Relation locale does not match the source locale ${JSON.stringify(relation)}`\n );\n }\n }\n\n if (isTargetLocalized) {\n return targetLocale;\n }\n\n return null;\n};\n"],"names":["errors"],"mappings":";;;AAIa,MAAA,yBAAyB,CAAC,QAA2B;AAC1D,QAAA,QAAQ,OAAO,SAAS,GAAG;AAC1B,SAAA,OAAO,OAAO,MAAM,EAAE,QAAQ,eAAe,EAAE,uBAAuB,KAAK;AACpF;AAEO,MAAM,mBAAmB,MAAM;AAG7B,SAAA;AACT;AAEa,MAAA,0BAA0B,CACrC,UACA,SAKG;AACH,QAAM,gBAAgB;AACtB,QAAM,eAAe,SAAS,UAAU,KAAK,gBAAgB;AAEvD,QAAA,oBAAoB,uBAAuB,KAAK,SAAS;AACzD,QAAA,oBAAoB,uBAAuB,KAAK,SAAS;AAG/D,MAAI,qBAAqB,mBAAmB;AAEtC,QAAA,iBAAiB,KAAK,cAAc;AACtC,YAAM,IAAIA,YAAO,OAAA;AAAA,QACf,oDAAoD,KAAK,UAAU,QAAQ,CAAC;AAAA,MAAA;AAAA,IAEhF;AAAA,EACF;AAEA,MAAI,mBAAmB;AACd,WAAA;AAAA,EACT;AAEO,SAAA;AACT;;;;"}
1
+ {"version":3,"file":"i18n.js","sources":["../../../../../../src/services/document-service/transform/relations/utils/i18n.ts"],"sourcesContent":["import { UID } from '@strapi/types';\nimport { LongHandDocument } from './types';\n\nexport const isLocalizedContentType = (uid: UID.Schema) => {\n const model = strapi.getModel(uid);\n return strapi.plugin('i18n').service('content-types').isLocalizedContentType(model);\n};\n\nexport const getDefaultLocale = () => {\n return strapi.plugin('i18n').service('locales').getDefaultLocale();\n};\n\nexport const getRelationTargetLocale = (\n relation: LongHandDocument,\n opts: {\n targetUid: UID.Schema;\n sourceUid: UID.Schema;\n sourceLocale?: string | null;\n }\n) => {\n const targetLocale = relation.locale || opts.sourceLocale;\n\n const isTargetLocalized = isLocalizedContentType(opts.targetUid);\n const isSourceLocalized = isLocalizedContentType(opts.sourceUid);\n\n // Both source and target locales should match\n if (isSourceLocalized && isTargetLocalized) {\n return opts.sourceLocale;\n }\n\n if (isTargetLocalized) {\n return targetLocale;\n }\n\n return null;\n};\n"],"names":[],"mappings":";;AAGa,MAAA,yBAAyB,CAAC,QAAoB;AACnD,QAAA,QAAQ,OAAO,SAAS,GAAG;AAC1B,SAAA,OAAO,OAAO,MAAM,EAAE,QAAQ,eAAe,EAAE,uBAAuB,KAAK;AACpF;AAEO,MAAM,mBAAmB,MAAM;AACpC,SAAO,OAAO,OAAO,MAAM,EAAE,QAAQ,SAAS,EAAE;AAClD;AAEa,MAAA,0BAA0B,CACrC,UACA,SAKG;AACG,QAAA,eAAe,SAAS,UAAU,KAAK;AAEvC,QAAA,oBAAoB,uBAAuB,KAAK,SAAS;AACzD,QAAA,oBAAoB,uBAAuB,KAAK,SAAS;AAG/D,MAAI,qBAAqB,mBAAmB;AAC1C,WAAO,KAAK;AAAA,EACd;AAEA,MAAI,mBAAmB;AACd,WAAA;AAAA,EACT;AAEO,SAAA;AACT;;;;"}
@@ -1,22 +1,16 @@
1
- import { errors } from "@strapi/utils";
2
1
  const isLocalizedContentType = (uid) => {
3
2
  const model = strapi.getModel(uid);
4
3
  return strapi.plugin("i18n").service("content-types").isLocalizedContentType(model);
5
4
  };
6
5
  const getDefaultLocale = () => {
7
- return "en";
6
+ return strapi.plugin("i18n").service("locales").getDefaultLocale();
8
7
  };
9
8
  const getRelationTargetLocale = (relation, opts) => {
10
- const defaultLocale = getDefaultLocale();
11
- const targetLocale = relation.locale || opts.sourceLocale || defaultLocale;
9
+ const targetLocale = relation.locale || opts.sourceLocale;
12
10
  const isTargetLocalized = isLocalizedContentType(opts.targetUid);
13
11
  const isSourceLocalized = isLocalizedContentType(opts.sourceUid);
14
12
  if (isSourceLocalized && isTargetLocalized) {
15
- if (targetLocale !== opts.sourceLocale) {
16
- throw new errors.ValidationError(
17
- `Relation locale does not match the source locale ${JSON.stringify(relation)}`
18
- );
19
- }
13
+ return opts.sourceLocale;
20
14
  }
21
15
  if (isTargetLocalized) {
22
16
  return targetLocale;
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.mjs","sources":["../../../../../../src/services/document-service/transform/relations/utils/i18n.ts"],"sourcesContent":["import { Common } from '@strapi/types';\nimport { errors } from '@strapi/utils';\nimport { LongHandDocument } from './types';\n\nexport const isLocalizedContentType = (uid: Common.UID.Schema) => {\n const model = strapi.getModel(uid);\n return strapi.plugin('i18n').service('content-types').isLocalizedContentType(model);\n};\n\nexport const getDefaultLocale = () => {\n // TODO: Fix this\n // return strapi.plugin('i18n').service('locales').getDefaultLocale();\n return 'en';\n};\n\nexport const getRelationTargetLocale = (\n relation: LongHandDocument,\n opts: {\n targetUid: Common.UID.Schema;\n sourceUid: Common.UID.Schema;\n sourceLocale?: string | null;\n }\n) => {\n const defaultLocale = getDefaultLocale();\n const targetLocale = relation.locale || opts.sourceLocale || defaultLocale;\n\n const isTargetLocalized = isLocalizedContentType(opts.targetUid);\n const isSourceLocalized = isLocalizedContentType(opts.sourceUid);\n\n // Locale validations\n if (isSourceLocalized && isTargetLocalized) {\n // Check the targetLocale matches\n if (targetLocale !== opts.sourceLocale) {\n throw new errors.ValidationError(\n `Relation locale does not match the source locale ${JSON.stringify(relation)}`\n );\n }\n }\n\n if (isTargetLocalized) {\n return targetLocale;\n }\n\n return null;\n};\n"],"names":[],"mappings":";AAIa,MAAA,yBAAyB,CAAC,QAA2B;AAC1D,QAAA,QAAQ,OAAO,SAAS,GAAG;AAC1B,SAAA,OAAO,OAAO,MAAM,EAAE,QAAQ,eAAe,EAAE,uBAAuB,KAAK;AACpF;AAEO,MAAM,mBAAmB,MAAM;AAG7B,SAAA;AACT;AAEa,MAAA,0BAA0B,CACrC,UACA,SAKG;AACH,QAAM,gBAAgB;AACtB,QAAM,eAAe,SAAS,UAAU,KAAK,gBAAgB;AAEvD,QAAA,oBAAoB,uBAAuB,KAAK,SAAS;AACzD,QAAA,oBAAoB,uBAAuB,KAAK,SAAS;AAG/D,MAAI,qBAAqB,mBAAmB;AAEtC,QAAA,iBAAiB,KAAK,cAAc;AACtC,YAAM,IAAI,OAAO;AAAA,QACf,oDAAoD,KAAK,UAAU,QAAQ,CAAC;AAAA,MAAA;AAAA,IAEhF;AAAA,EACF;AAEA,MAAI,mBAAmB;AACd,WAAA;AAAA,EACT;AAEO,SAAA;AACT;"}
1
+ {"version":3,"file":"i18n.mjs","sources":["../../../../../../src/services/document-service/transform/relations/utils/i18n.ts"],"sourcesContent":["import { UID } from '@strapi/types';\nimport { LongHandDocument } from './types';\n\nexport const isLocalizedContentType = (uid: UID.Schema) => {\n const model = strapi.getModel(uid);\n return strapi.plugin('i18n').service('content-types').isLocalizedContentType(model);\n};\n\nexport const getDefaultLocale = () => {\n return strapi.plugin('i18n').service('locales').getDefaultLocale();\n};\n\nexport const getRelationTargetLocale = (\n relation: LongHandDocument,\n opts: {\n targetUid: UID.Schema;\n sourceUid: UID.Schema;\n sourceLocale?: string | null;\n }\n) => {\n const targetLocale = relation.locale || opts.sourceLocale;\n\n const isTargetLocalized = isLocalizedContentType(opts.targetUid);\n const isSourceLocalized = isLocalizedContentType(opts.sourceUid);\n\n // Both source and target locales should match\n if (isSourceLocalized && isTargetLocalized) {\n return opts.sourceLocale;\n }\n\n if (isTargetLocalized) {\n return targetLocale;\n }\n\n return null;\n};\n"],"names":[],"mappings":"AAGa,MAAA,yBAAyB,CAAC,QAAoB;AACnD,QAAA,QAAQ,OAAO,SAAS,GAAG;AAC1B,SAAA,OAAO,OAAO,MAAM,EAAE,QAAQ,eAAe,EAAE,uBAAuB,KAAK;AACpF;AAEO,MAAM,mBAAmB,MAAM;AACpC,SAAO,OAAO,OAAO,MAAM,EAAE,QAAQ,SAAS,EAAE;AAClD;AAEa,MAAA,0BAA0B,CACrC,UACA,SAKG;AACG,QAAA,eAAe,SAAS,UAAU,KAAK;AAEvC,QAAA,oBAAoB,uBAAuB,KAAK,SAAS;AACzD,QAAA,oBAAoB,uBAAuB,KAAK,SAAS;AAG/D,MAAI,qBAAqB,mBAAmB;AAC1C,WAAO,KAAK;AAAA,EACd;AAEA,MAAI,mBAAmB;AACd,WAAA;AAAA,EACT;AAEO,SAAA;AACT;"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="lodash" />
2
+ import { Relation } from './types';
3
+ declare const mapRelationCurried: import("lodash").CurriedFunction2<(relation: any) => any, Relation, Promise<Relation>>;
4
+ declare const traverseEntityRelationsCurried: import("lodash").CurriedFunction3<import("@strapi/utils/dist/traverse-entity").Visitor, import("@strapi/utils/dist/traverse-entity").TraverseOptions, import("@strapi/utils/dist/types").Data, Promise<import("@strapi/utils/dist/types").Data>>;
5
+ export { mapRelationCurried as mapRelation, traverseEntityRelationsCurried as traverseEntityRelations, };
6
+ //# sourceMappingURL=map-relation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-relation.d.ts","sourceRoot":"","sources":["../../../../../../src/services/document-service/transform/relations/utils/map-relation.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAsJnC,QAAA,MAAM,kBAAkB,+CArHD,GAAG,KAAK,GAAG,8BAqHW,CAAC;AAC9C,QAAA,MAAM,8BAA8B,kPAAiC,CAAC;AAEtE,OAAO,EACL,kBAAkB,IAAI,WAAW,EACjC,8BAA8B,IAAI,uBAAuB,GAC1D,CAAC"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const fp = require("lodash/fp");
4
+ const strapiUtils = require("@strapi/utils");
5
+ const isNumeric = (value) => {
6
+ if (Array.isArray(value))
7
+ return false;
8
+ const parsed = parseInt(value, 10);
9
+ return !Number.isNaN(parsed);
10
+ };
11
+ const toArray = (value) => {
12
+ if (fp.isNil(value))
13
+ return value;
14
+ if (Array.isArray(value))
15
+ return value;
16
+ return [value];
17
+ };
18
+ const mapRelation = async (callback, rel, isRecursive = false) => {
19
+ let relation = rel;
20
+ const wrapInSet = (value) => {
21
+ if (isRecursive) {
22
+ return value;
23
+ }
24
+ return { set: toArray(value) };
25
+ };
26
+ if (fp.isNil(relation)) {
27
+ return callback(relation);
28
+ }
29
+ if (Array.isArray(relation)) {
30
+ return strapiUtils.async.map(relation, (r) => mapRelation(callback, r, true)).then((result) => result.flat().filter(Boolean)).then(wrapInSet);
31
+ }
32
+ if (fp.isObject(relation)) {
33
+ if ("id" in relation || "documentId" in relation) {
34
+ const result = await callback(relation);
35
+ return wrapInSet(result);
36
+ }
37
+ if (!relation.set && !relation.disconnect && !relation.connect) {
38
+ return callback(relation);
39
+ }
40
+ if (relation.set) {
41
+ const set = await mapRelation(callback, relation.set, true);
42
+ relation = { ...relation, set: toArray(set) };
43
+ }
44
+ if (relation.disconnect) {
45
+ const disconnect = await mapRelation(callback, relation.disconnect, true);
46
+ relation = { ...relation, disconnect: toArray(disconnect) };
47
+ }
48
+ if (relation.connect) {
49
+ const connect = await mapRelation(callback, relation.connect, true);
50
+ relation = { ...relation, connect: toArray(connect) };
51
+ }
52
+ return relation;
53
+ }
54
+ if (isNumeric(relation)) {
55
+ const result = await callback({ id: relation });
56
+ return wrapInSet(result);
57
+ }
58
+ if (typeof relation === "string") {
59
+ const result = await callback({ documentId: relation });
60
+ return wrapInSet(result);
61
+ }
62
+ return callback(relation);
63
+ };
64
+ const traverseEntityRelations = async (visitor, options, data) => {
65
+ return strapiUtils.traverseEntity(
66
+ async (options2, utils) => {
67
+ const { attribute } = options2;
68
+ if (!attribute) {
69
+ return;
70
+ }
71
+ if (attribute.type !== "relation") {
72
+ return;
73
+ }
74
+ if (attribute.useJoinTable === false) {
75
+ return;
76
+ }
77
+ const target = attribute.target;
78
+ if (!target) {
79
+ return;
80
+ }
81
+ return visitor(options2, utils);
82
+ },
83
+ options,
84
+ data
85
+ );
86
+ };
87
+ const mapRelationCurried = fp.curry(mapRelation);
88
+ const traverseEntityRelationsCurried = fp.curry(traverseEntityRelations);
89
+ exports.mapRelation = mapRelationCurried;
90
+ exports.traverseEntityRelations = traverseEntityRelationsCurried;
91
+ //# 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 type { UID } from '@strapi/types';\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 // TODO: Handle morph relations (they have multiple targets)\n const target = attribute.target as UID.Schema | undefined;\n if (!target) {\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":["isNil","async","isObject","traverseEntity","options","curry"],"mappings":";;;;AAQA,MAAM,YAAY,CAAC,UAAgC;AAC7C,MAAA,MAAM,QAAQ,KAAK;AAAU,WAAA;AAC3B,QAAA,SAAS,SAAS,OAAO,EAAE;AAC1B,SAAA,CAAC,OAAO,MAAM,MAAM;AAC7B;AAEA,MAAM,UAAU,CAAC,UAAe;AAE9B,MAAIA,GAAAA,MAAM,KAAK;AAAU,WAAA;AACrB,MAAA,MAAM,QAAQ,KAAK;AAAU,WAAA;AAEjC,SAAO,CAAC,KAAK;AACf;AAkBA,MAAM,cAAc,OAClB,UACA,KACA,cAAc,UACQ;AACtB,MAAI,WAAqB;AAEnB,QAAA,YAAY,CAAC,UAAe;AAEhC,QAAI,aAAa;AACR,aAAA;AAAA,IACT;AACA,WAAO,EAAE,KAAK,QAAQ,KAAK,EAAE;AAAA,EAAA;AAI3B,MAAAA,GAAAA,MAAM,QAAQ,GAAG;AACnB,WAAO,SAAS,QAAQ;AAAA,EAC1B;AAGI,MAAA,MAAM,QAAQ,QAAQ,GAAG;AACpB,WAAAC,YAAA,MACJ,IAAI,UAAU,CAAC,MAAgB,YAAY,UAAU,GAAG,IAAI,CAAC,EAC7D,KAAK,CAAC,WAAgB,OAAO,OAAO,OAAO,OAAO,CAAC,EACnD,KAAK,SAAS;AAAA,EACnB;AAGI,MAAAC,GAAAA,SAAS,QAAQ,GAAG;AAElB,QAAA,QAAQ,YAAY,gBAAgB,UAAU;AAC1C,YAAA,SAAS,MAAM,SAAS,QAAQ;AACtC,aAAO,UAAU,MAAM;AAAA,IACzB;AAGI,QAAA,CAAC,SAAS,OAAO,CAAC,SAAS,cAAc,CAAC,SAAS,SAAS;AAC9D,aAAO,SAAS,QAAQ;AAAA,IAC1B;AAGA,QAAI,SAAS,KAAK;AAChB,YAAM,MAAW,MAAM,YAAY,UAAU,SAAS,KAAK,IAAI;AAC/D,iBAAW,EAAE,GAAG,UAAU,KAAK,QAAQ,GAAG;IAC5C;AAGA,QAAI,SAAS,YAAY;AACvB,YAAM,aAAkB,MAAM,YAAY,UAAU,SAAS,YAAY,IAAI;AAC7E,iBAAW,EAAE,GAAG,UAAU,YAAY,QAAQ,UAAU;IAC1D;AAGA,QAAI,SAAS,SAAS;AAEpB,YAAM,UAAe,MAAM,YAAY,UAAU,SAAS,SAAS,IAAI;AACvE,iBAAW,EAAE,GAAG,UAAU,SAAS,QAAQ,OAAO;IACpD;AAEO,WAAA;AAAA,EACT;AAGI,MAAA,UAAU,QAAQ,GAAG;AACvB,UAAM,SAAS,MAAM,SAAS,EAAE,IAAI,SAAU,CAAA;AAC9C,WAAO,UAAU,MAAM;AAAA,EACzB;AAEI,MAAA,OAAO,aAAa,UAAU;AAChC,UAAM,SAAS,MAAM,SAAS,EAAE,YAAY,SAAU,CAAA;AACtD,WAAO,UAAU,MAAM;AAAA,EACzB;AAGA,SAAO,SAAS,QAAQ;AAC1B;AAOA,MAAM,0BAA0B,OAC9B,SACA,SACA,SACG;AACI,SAAAC,YAAA;AAAA,IACL,OAAOC,UAAS,UAAU;AAClB,YAAA,EAAE,UAAcA,IAAAA;AAEtB,UAAI,CAAC,WAAW;AACd;AAAA,MACF;AAEI,UAAA,UAAU,SAAS,YAAY;AACjC;AAAA,MACF;AAGI,UAAA,UAAU,iBAAiB,OAAO;AACpC;AAAA,MACF;AAGA,YAAM,SAAS,UAAU;AACzB,UAAI,CAAC,QAAQ;AACX;AAAA,MACF;AAEO,aAAA,QAAQA,UAAS,KAAK;AAAA,IAC/B;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEM,MAAA,qBAAqBC,SAAM,WAAW;AACtC,MAAA,iCAAiCA,SAAM,uBAAuB;;;"}
@@ -0,0 +1,91 @@
1
+ import { curry, isNil, isObject } from "lodash/fp";
2
+ import { async, traverseEntity } from "@strapi/utils";
3
+ const isNumeric = (value) => {
4
+ if (Array.isArray(value))
5
+ return false;
6
+ const parsed = parseInt(value, 10);
7
+ return !Number.isNaN(parsed);
8
+ };
9
+ const toArray = (value) => {
10
+ if (isNil(value))
11
+ return value;
12
+ if (Array.isArray(value))
13
+ return value;
14
+ return [value];
15
+ };
16
+ const mapRelation = async (callback, rel, isRecursive = false) => {
17
+ let relation = rel;
18
+ const wrapInSet = (value) => {
19
+ if (isRecursive) {
20
+ return value;
21
+ }
22
+ return { set: toArray(value) };
23
+ };
24
+ if (isNil(relation)) {
25
+ return callback(relation);
26
+ }
27
+ if (Array.isArray(relation)) {
28
+ return async.map(relation, (r) => mapRelation(callback, r, true)).then((result) => result.flat().filter(Boolean)).then(wrapInSet);
29
+ }
30
+ if (isObject(relation)) {
31
+ if ("id" in relation || "documentId" in relation) {
32
+ const result = await callback(relation);
33
+ return wrapInSet(result);
34
+ }
35
+ if (!relation.set && !relation.disconnect && !relation.connect) {
36
+ return callback(relation);
37
+ }
38
+ if (relation.set) {
39
+ const set = await mapRelation(callback, relation.set, true);
40
+ relation = { ...relation, set: toArray(set) };
41
+ }
42
+ if (relation.disconnect) {
43
+ const disconnect = await mapRelation(callback, relation.disconnect, true);
44
+ relation = { ...relation, disconnect: toArray(disconnect) };
45
+ }
46
+ if (relation.connect) {
47
+ const connect = await mapRelation(callback, relation.connect, true);
48
+ relation = { ...relation, connect: toArray(connect) };
49
+ }
50
+ return relation;
51
+ }
52
+ if (isNumeric(relation)) {
53
+ const result = await callback({ id: relation });
54
+ return wrapInSet(result);
55
+ }
56
+ if (typeof relation === "string") {
57
+ const result = await callback({ documentId: relation });
58
+ return wrapInSet(result);
59
+ }
60
+ return callback(relation);
61
+ };
62
+ const traverseEntityRelations = async (visitor, options, data) => {
63
+ return traverseEntity(
64
+ async (options2, utils) => {
65
+ const { attribute } = options2;
66
+ if (!attribute) {
67
+ return;
68
+ }
69
+ if (attribute.type !== "relation") {
70
+ return;
71
+ }
72
+ if (attribute.useJoinTable === false) {
73
+ return;
74
+ }
75
+ const target = attribute.target;
76
+ if (!target) {
77
+ return;
78
+ }
79
+ return visitor(options2, utils);
80
+ },
81
+ options,
82
+ data
83
+ );
84
+ };
85
+ const mapRelationCurried = curry(mapRelation);
86
+ const traverseEntityRelationsCurried = curry(traverseEntityRelations);
87
+ export {
88
+ mapRelationCurried as mapRelation,
89
+ traverseEntityRelationsCurried as traverseEntityRelations
90
+ };
91
+ //# 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 type { UID } from '@strapi/types';\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 // TODO: Handle morph relations (they have multiple targets)\n const target = attribute.target as UID.Schema | undefined;\n if (!target) {\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":["options"],"mappings":";;AAQA,MAAM,YAAY,CAAC,UAAgC;AAC7C,MAAA,MAAM,QAAQ,KAAK;AAAU,WAAA;AAC3B,QAAA,SAAS,SAAS,OAAO,EAAE;AAC1B,SAAA,CAAC,OAAO,MAAM,MAAM;AAC7B;AAEA,MAAM,UAAU,CAAC,UAAe;AAE9B,MAAI,MAAM,KAAK;AAAU,WAAA;AACrB,MAAA,MAAM,QAAQ,KAAK;AAAU,WAAA;AAEjC,SAAO,CAAC,KAAK;AACf;AAkBA,MAAM,cAAc,OAClB,UACA,KACA,cAAc,UACQ;AACtB,MAAI,WAAqB;AAEnB,QAAA,YAAY,CAAC,UAAe;AAEhC,QAAI,aAAa;AACR,aAAA;AAAA,IACT;AACA,WAAO,EAAE,KAAK,QAAQ,KAAK,EAAE;AAAA,EAAA;AAI3B,MAAA,MAAM,QAAQ,GAAG;AACnB,WAAO,SAAS,QAAQ;AAAA,EAC1B;AAGI,MAAA,MAAM,QAAQ,QAAQ,GAAG;AACpB,WAAA,MACJ,IAAI,UAAU,CAAC,MAAgB,YAAY,UAAU,GAAG,IAAI,CAAC,EAC7D,KAAK,CAAC,WAAgB,OAAO,OAAO,OAAO,OAAO,CAAC,EACnD,KAAK,SAAS;AAAA,EACnB;AAGI,MAAA,SAAS,QAAQ,GAAG;AAElB,QAAA,QAAQ,YAAY,gBAAgB,UAAU;AAC1C,YAAA,SAAS,MAAM,SAAS,QAAQ;AACtC,aAAO,UAAU,MAAM;AAAA,IACzB;AAGI,QAAA,CAAC,SAAS,OAAO,CAAC,SAAS,cAAc,CAAC,SAAS,SAAS;AAC9D,aAAO,SAAS,QAAQ;AAAA,IAC1B;AAGA,QAAI,SAAS,KAAK;AAChB,YAAM,MAAW,MAAM,YAAY,UAAU,SAAS,KAAK,IAAI;AAC/D,iBAAW,EAAE,GAAG,UAAU,KAAK,QAAQ,GAAG;IAC5C;AAGA,QAAI,SAAS,YAAY;AACvB,YAAM,aAAkB,MAAM,YAAY,UAAU,SAAS,YAAY,IAAI;AAC7E,iBAAW,EAAE,GAAG,UAAU,YAAY,QAAQ,UAAU;IAC1D;AAGA,QAAI,SAAS,SAAS;AAEpB,YAAM,UAAe,MAAM,YAAY,UAAU,SAAS,SAAS,IAAI;AACvE,iBAAW,EAAE,GAAG,UAAU,SAAS,QAAQ,OAAO;IACpD;AAEO,WAAA;AAAA,EACT;AAGI,MAAA,UAAU,QAAQ,GAAG;AACvB,UAAM,SAAS,MAAM,SAAS,EAAE,IAAI,SAAU,CAAA;AAC9C,WAAO,UAAU,MAAM;AAAA,EACzB;AAEI,MAAA,OAAO,aAAa,UAAU;AAChC,UAAM,SAAS,MAAM,SAAS,EAAE,YAAY,SAAU,CAAA;AACtD,WAAO,UAAU,MAAM;AAAA,EACzB;AAGA,SAAO,SAAS,QAAQ;AAC1B;AAOA,MAAM,0BAA0B,OAC9B,SACA,SACA,SACG;AACI,SAAA;AAAA,IACL,OAAOA,UAAS,UAAU;AAClB,YAAA,EAAE,UAAcA,IAAAA;AAEtB,UAAI,CAAC,WAAW;AACd;AAAA,MACF;AAEI,UAAA,UAAU,SAAS,YAAY;AACjC;AAAA,MACF;AAGI,UAAA,UAAU,iBAAiB,OAAO;AACpC;AAAA,MACF;AAGA,YAAM,SAAS,UAAU;AACzB,UAAI,CAAC,QAAQ;AACX;AAAA,MACF;AAEO,aAAA,QAAQA,UAAS,KAAK;AAAA,IAC/B;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEM,MAAA,qBAAqB,MAAM,WAAW;AACtC,MAAA,iCAAiC,MAAM,uBAAuB;"}
@@ -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"}