@strapi/core 0.0.0-experimental.e3e48deb89bd0a1b6cc69b698696566fa7854a95 → 0.0.0-experimental.e8d8fc824d0f6a695b2a9ebaa4680ed21c3645ca

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 (850) hide show
  1. package/LICENSE +18 -3
  2. package/dist/Strapi.d.ts +49 -58
  3. package/dist/Strapi.d.ts.map +1 -1
  4. package/dist/Strapi.js +199 -221
  5. package/dist/Strapi.js.map +1 -1
  6. package/dist/Strapi.mjs +168 -210
  7. package/dist/Strapi.mjs.map +1 -1
  8. package/dist/compile.js.map +1 -1
  9. package/dist/compile.mjs.map +1 -1
  10. package/dist/configuration/config-loader.d.ts.map +1 -1
  11. package/dist/configuration/config-loader.js +10 -7
  12. package/dist/configuration/config-loader.js.map +1 -1
  13. package/dist/configuration/config-loader.mjs +10 -7
  14. package/dist/configuration/config-loader.mjs.map +1 -1
  15. package/dist/configuration/get-dirs.d.ts +10 -0
  16. package/dist/configuration/get-dirs.d.ts.map +1 -0
  17. package/dist/{utils → configuration}/get-dirs.js +3 -2
  18. package/dist/configuration/get-dirs.js.map +1 -0
  19. package/dist/{utils → configuration}/get-dirs.mjs +3 -2
  20. package/dist/configuration/get-dirs.mjs.map +1 -0
  21. package/dist/configuration/index.d.ts +4 -7
  22. package/dist/configuration/index.d.ts.map +1 -1
  23. package/dist/configuration/index.js +16 -9
  24. package/dist/configuration/index.js.map +1 -1
  25. package/dist/configuration/index.mjs +13 -7
  26. package/dist/configuration/index.mjs.map +1 -1
  27. package/dist/configuration/urls.js.map +1 -1
  28. package/dist/configuration/urls.mjs.map +1 -1
  29. package/dist/container.d.ts +2 -2
  30. package/dist/container.d.ts.map +1 -1
  31. package/dist/container.js.map +1 -1
  32. package/dist/container.mjs.map +1 -1
  33. package/dist/core-api/controller/collection-type.d.ts +3 -3
  34. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  35. package/dist/core-api/controller/collection-type.js +6 -3
  36. package/dist/core-api/controller/collection-type.js.map +1 -1
  37. package/dist/core-api/controller/collection-type.mjs +3 -0
  38. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  39. package/dist/core-api/controller/index.d.ts +3 -3
  40. package/dist/core-api/controller/index.d.ts.map +1 -1
  41. package/dist/core-api/controller/index.js +7 -7
  42. package/dist/core-api/controller/index.js.map +1 -1
  43. package/dist/core-api/controller/index.mjs +6 -6
  44. package/dist/core-api/controller/index.mjs.map +1 -1
  45. package/dist/core-api/controller/single-type.d.ts +3 -3
  46. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  47. package/dist/core-api/controller/single-type.js +3 -2
  48. package/dist/core-api/controller/single-type.js.map +1 -1
  49. package/dist/core-api/controller/single-type.mjs +1 -0
  50. package/dist/core-api/controller/single-type.mjs.map +1 -1
  51. package/dist/core-api/controller/transform.d.ts +2 -2
  52. package/dist/core-api/controller/transform.d.ts.map +1 -1
  53. package/dist/core-api/controller/transform.js +10 -13
  54. package/dist/core-api/controller/transform.js.map +1 -1
  55. package/dist/core-api/controller/transform.mjs +2 -5
  56. package/dist/core-api/controller/transform.mjs.map +1 -1
  57. package/dist/core-api/routes/index.d.ts.map +1 -1
  58. package/dist/core-api/routes/index.js.map +1 -1
  59. package/dist/core-api/routes/index.mjs.map +1 -1
  60. package/dist/core-api/service/collection-type.d.ts +11 -17
  61. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  62. package/dist/core-api/service/collection-type.js +18 -7
  63. package/dist/core-api/service/collection-type.js.map +1 -1
  64. package/dist/core-api/service/collection-type.mjs +19 -8
  65. package/dist/core-api/service/collection-type.mjs.map +1 -1
  66. package/dist/core-api/service/core-service.js.map +1 -1
  67. package/dist/core-api/service/core-service.mjs.map +1 -1
  68. package/dist/core-api/service/index.d.ts +3 -3
  69. package/dist/core-api/service/index.d.ts.map +1 -1
  70. package/dist/core-api/service/index.js.map +1 -1
  71. package/dist/core-api/service/index.mjs.map +1 -1
  72. package/dist/core-api/service/pagination.d.ts +4 -11
  73. package/dist/core-api/service/pagination.d.ts.map +1 -1
  74. package/dist/core-api/service/pagination.js +18 -44
  75. package/dist/core-api/service/pagination.js.map +1 -1
  76. package/dist/core-api/service/pagination.mjs +16 -42
  77. package/dist/core-api/service/pagination.mjs.map +1 -1
  78. package/dist/core-api/service/single-type.d.ts +4 -4
  79. package/dist/core-api/service/single-type.d.ts.map +1 -1
  80. package/dist/core-api/service/single-type.js +10 -4
  81. package/dist/core-api/service/single-type.js.map +1 -1
  82. package/dist/core-api/service/single-type.mjs +10 -4
  83. package/dist/core-api/service/single-type.mjs.map +1 -1
  84. package/dist/domain/content-type/index.d.ts +1 -1
  85. package/dist/domain/content-type/index.d.ts.map +1 -1
  86. package/dist/domain/content-type/index.js +4 -4
  87. package/dist/domain/content-type/index.js.map +1 -1
  88. package/dist/domain/content-type/index.mjs.map +1 -1
  89. package/dist/domain/content-type/validator.js.map +1 -1
  90. package/dist/domain/content-type/validator.mjs.map +1 -1
  91. package/dist/domain/module/index.d.ts +24 -23
  92. package/dist/domain/module/index.d.ts.map +1 -1
  93. package/dist/domain/module/index.js +2 -1
  94. package/dist/domain/module/index.js.map +1 -1
  95. package/dist/domain/module/index.mjs +3 -2
  96. package/dist/domain/module/index.mjs.map +1 -1
  97. package/dist/domain/module/validation.js.map +1 -1
  98. package/dist/domain/module/validation.mjs.map +1 -1
  99. package/dist/ee/index.d.ts +4 -2
  100. package/dist/ee/index.d.ts.map +1 -1
  101. package/dist/ee/index.js +9 -4
  102. package/dist/ee/index.js.map +1 -1
  103. package/dist/ee/index.mjs +6 -1
  104. package/dist/ee/index.mjs.map +1 -1
  105. package/dist/ee/license.d.ts +2 -2
  106. package/dist/ee/license.d.ts.map +1 -1
  107. package/dist/ee/license.js +2 -1
  108. package/dist/ee/license.js.map +1 -1
  109. package/dist/ee/license.mjs +2 -1
  110. package/dist/ee/license.mjs.map +1 -1
  111. package/dist/factories.d.ts +10 -10
  112. package/dist/factories.d.ts.map +1 -1
  113. package/dist/factories.js +10 -6
  114. package/dist/factories.js.map +1 -1
  115. package/dist/factories.mjs +6 -2
  116. package/dist/factories.mjs.map +1 -1
  117. package/dist/index.d.ts +18 -2
  118. package/dist/index.d.ts.map +1 -1
  119. package/dist/index.js +25 -1
  120. package/dist/index.js.map +1 -1
  121. package/dist/index.mjs +27 -3
  122. package/dist/index.mjs.map +1 -1
  123. package/dist/loaders/admin.d.ts +2 -2
  124. package/dist/loaders/admin.d.ts.map +1 -1
  125. package/dist/loaders/admin.js +0 -1
  126. package/dist/loaders/admin.js.map +1 -1
  127. package/dist/loaders/admin.mjs +0 -1
  128. package/dist/loaders/admin.mjs.map +1 -1
  129. package/dist/loaders/apis.d.ts +2 -2
  130. package/dist/loaders/apis.d.ts.map +1 -1
  131. package/dist/loaders/apis.js +12 -12
  132. package/dist/loaders/apis.js.map +1 -1
  133. package/dist/loaders/apis.mjs +10 -10
  134. package/dist/loaders/apis.mjs.map +1 -1
  135. package/dist/loaders/components.d.ts +2 -2
  136. package/dist/loaders/components.d.ts.map +1 -1
  137. package/dist/loaders/components.js.map +1 -1
  138. package/dist/loaders/components.mjs.map +1 -1
  139. package/dist/loaders/index.d.ts +2 -2
  140. package/dist/loaders/index.d.ts.map +1 -1
  141. package/dist/loaders/index.js +0 -2
  142. package/dist/loaders/index.js.map +1 -1
  143. package/dist/loaders/index.mjs +0 -2
  144. package/dist/loaders/index.mjs.map +1 -1
  145. package/dist/loaders/middlewares.d.ts +2 -2
  146. package/dist/loaders/middlewares.d.ts.map +1 -1
  147. package/dist/loaders/middlewares.js.map +1 -1
  148. package/dist/loaders/middlewares.mjs.map +1 -1
  149. package/dist/loaders/plugins/get-enabled-plugins.d.ts +2 -2
  150. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  151. package/dist/loaders/plugins/get-enabled-plugins.js +47 -17
  152. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  153. package/dist/loaders/plugins/get-enabled-plugins.mjs +17 -9
  154. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  155. package/dist/loaders/plugins/get-user-plugins-config.js +2 -2
  156. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  157. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  158. package/dist/loaders/plugins/index.d.ts +2 -2
  159. package/dist/loaders/plugins/index.d.ts.map +1 -1
  160. package/dist/loaders/plugins/index.js +33 -7
  161. package/dist/loaders/plugins/index.js.map +1 -1
  162. package/dist/loaders/plugins/index.mjs +9 -1
  163. package/dist/loaders/plugins/index.mjs.map +1 -1
  164. package/dist/loaders/policies.d.ts +2 -2
  165. package/dist/loaders/policies.d.ts.map +1 -1
  166. package/dist/loaders/policies.js.map +1 -1
  167. package/dist/loaders/policies.mjs.map +1 -1
  168. package/dist/loaders/sanitizers.d.ts +2 -2
  169. package/dist/loaders/sanitizers.d.ts.map +1 -1
  170. package/dist/loaders/sanitizers.js.map +1 -1
  171. package/dist/loaders/sanitizers.mjs.map +1 -1
  172. package/dist/loaders/src-index.d.ts +2 -2
  173. package/dist/loaders/src-index.d.ts.map +1 -1
  174. package/dist/loaders/src-index.js.map +1 -1
  175. package/dist/loaders/src-index.mjs.map +1 -1
  176. package/dist/loaders/validators.d.ts +2 -2
  177. package/dist/loaders/validators.d.ts.map +1 -1
  178. package/dist/loaders/validators.js.map +1 -1
  179. package/dist/loaders/validators.mjs.map +1 -1
  180. package/dist/middlewares/body.d.ts +4 -4
  181. package/dist/middlewares/body.d.ts.map +1 -1
  182. package/dist/middlewares/body.js +6 -6
  183. package/dist/middlewares/body.js.map +1 -1
  184. package/dist/middlewares/body.mjs +4 -4
  185. package/dist/middlewares/body.mjs.map +1 -1
  186. package/dist/middlewares/compression.d.ts +2 -2
  187. package/dist/middlewares/compression.d.ts.map +1 -1
  188. package/dist/middlewares/compression.js.map +1 -1
  189. package/dist/middlewares/compression.mjs.map +1 -1
  190. package/dist/middlewares/cors.d.ts +2 -2
  191. package/dist/middlewares/cors.d.ts.map +1 -1
  192. package/dist/middlewares/cors.js +9 -7
  193. package/dist/middlewares/cors.js.map +1 -1
  194. package/dist/middlewares/cors.mjs +9 -7
  195. package/dist/middlewares/cors.mjs.map +1 -1
  196. package/dist/middlewares/errors.d.ts +2 -2
  197. package/dist/middlewares/errors.d.ts.map +1 -1
  198. package/dist/middlewares/errors.js.map +1 -1
  199. package/dist/middlewares/errors.mjs.map +1 -1
  200. package/dist/middlewares/favicon.d.ts +2 -2
  201. package/dist/middlewares/favicon.d.ts.map +1 -1
  202. package/dist/middlewares/favicon.js.map +1 -1
  203. package/dist/middlewares/favicon.mjs.map +1 -1
  204. package/dist/middlewares/index.d.ts +2 -2
  205. package/dist/middlewares/index.d.ts.map +1 -1
  206. package/dist/middlewares/index.js.map +1 -1
  207. package/dist/middlewares/index.mjs.map +1 -1
  208. package/dist/middlewares/ip.d.ts +2 -2
  209. package/dist/middlewares/ip.d.ts.map +1 -1
  210. package/dist/middlewares/ip.js.map +1 -1
  211. package/dist/middlewares/ip.mjs.map +1 -1
  212. package/dist/middlewares/logger.d.ts +2 -2
  213. package/dist/middlewares/logger.d.ts.map +1 -1
  214. package/dist/middlewares/logger.js.map +1 -1
  215. package/dist/middlewares/logger.mjs.map +1 -1
  216. package/dist/middlewares/powered-by.d.ts +2 -2
  217. package/dist/middlewares/powered-by.d.ts.map +1 -1
  218. package/dist/middlewares/powered-by.js.map +1 -1
  219. package/dist/middlewares/powered-by.mjs.map +1 -1
  220. package/dist/middlewares/public.d.ts +2 -2
  221. package/dist/middlewares/public.d.ts.map +1 -1
  222. package/dist/middlewares/public.js +3 -3
  223. package/dist/middlewares/public.js.map +1 -1
  224. package/dist/middlewares/public.mjs +1 -1
  225. package/dist/middlewares/public.mjs.map +1 -1
  226. package/dist/middlewares/query.d.ts +2 -2
  227. package/dist/middlewares/query.d.ts.map +1 -1
  228. package/dist/middlewares/query.js.map +1 -1
  229. package/dist/middlewares/query.mjs.map +1 -1
  230. package/dist/middlewares/response-time.d.ts +2 -2
  231. package/dist/middlewares/response-time.d.ts.map +1 -1
  232. package/dist/middlewares/response-time.js.map +1 -1
  233. package/dist/middlewares/response-time.mjs.map +1 -1
  234. package/dist/middlewares/responses.d.ts +3 -3
  235. package/dist/middlewares/responses.d.ts.map +1 -1
  236. package/dist/middlewares/responses.js +2 -2
  237. package/dist/middlewares/responses.js.map +1 -1
  238. package/dist/middlewares/responses.mjs.map +1 -1
  239. package/dist/middlewares/security.d.ts +2 -2
  240. package/dist/middlewares/security.d.ts.map +1 -1
  241. package/dist/middlewares/security.js +12 -5
  242. package/dist/middlewares/security.js.map +1 -1
  243. package/dist/middlewares/security.mjs +11 -4
  244. package/dist/middlewares/security.mjs.map +1 -1
  245. package/dist/middlewares/session.d.ts +2 -2
  246. package/dist/middlewares/session.d.ts.map +1 -1
  247. package/dist/middlewares/session.js +2 -2
  248. package/dist/middlewares/session.js.map +1 -1
  249. package/dist/middlewares/session.mjs.map +1 -1
  250. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +33 -0
  251. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -0
  252. package/dist/migrations/database/5.0.0-discard-drafts.js +106 -0
  253. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
  254. package/dist/migrations/database/5.0.0-discard-drafts.mjs +106 -0
  255. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
  256. package/dist/migrations/draft-publish.d.ts +1 -1
  257. package/dist/migrations/draft-publish.d.ts.map +1 -1
  258. package/dist/migrations/draft-publish.js +14 -31
  259. package/dist/migrations/draft-publish.js.map +1 -1
  260. package/dist/migrations/draft-publish.mjs +15 -32
  261. package/dist/migrations/draft-publish.mjs.map +1 -1
  262. package/dist/migrations/i18n.d.ts +5 -0
  263. package/dist/migrations/i18n.d.ts.map +1 -0
  264. package/dist/migrations/i18n.js +54 -0
  265. package/dist/migrations/i18n.js.map +1 -0
  266. package/dist/migrations/i18n.mjs +54 -0
  267. package/dist/migrations/i18n.mjs.map +1 -0
  268. package/dist/migrations/index.d.ts +5 -0
  269. package/dist/migrations/index.d.ts.map +1 -0
  270. package/dist/migrations/index.js +15 -0
  271. package/dist/migrations/index.js.map +1 -0
  272. package/dist/migrations/index.mjs +15 -0
  273. package/dist/migrations/index.mjs.map +1 -0
  274. package/dist/providers/admin.d.ts +3 -0
  275. package/dist/providers/admin.d.ts.map +1 -0
  276. package/dist/providers/admin.js +20 -0
  277. package/dist/providers/admin.js.map +1 -0
  278. package/dist/providers/admin.mjs +21 -0
  279. package/dist/providers/admin.mjs.map +1 -0
  280. package/dist/providers/coreStore.d.ts +3 -0
  281. package/dist/providers/coreStore.d.ts.map +1 -0
  282. package/dist/providers/coreStore.js +11 -0
  283. package/dist/providers/coreStore.js.map +1 -0
  284. package/dist/providers/coreStore.mjs +12 -0
  285. package/dist/providers/coreStore.mjs.map +1 -0
  286. package/dist/providers/cron.d.ts +3 -0
  287. package/dist/providers/cron.d.ts.map +1 -0
  288. package/dist/providers/cron.js +20 -0
  289. package/dist/providers/cron.js.map +1 -0
  290. package/dist/providers/cron.mjs +21 -0
  291. package/dist/providers/cron.mjs.map +1 -0
  292. package/dist/providers/index.d.ts +3 -0
  293. package/dist/providers/index.d.ts.map +1 -0
  294. package/dist/providers/index.js +11 -0
  295. package/dist/providers/index.js.map +1 -0
  296. package/dist/providers/index.mjs +11 -0
  297. package/dist/providers/index.mjs.map +1 -0
  298. package/dist/providers/provider.d.ts +9 -0
  299. package/dist/providers/provider.d.ts.map +1 -0
  300. package/dist/providers/provider.js +5 -0
  301. package/dist/providers/provider.js.map +1 -0
  302. package/dist/providers/provider.mjs +5 -0
  303. package/dist/providers/provider.mjs.map +1 -0
  304. package/dist/providers/registries.d.ts +3 -0
  305. package/dist/providers/registries.d.ts.map +1 -0
  306. package/dist/providers/registries.js +35 -0
  307. package/dist/providers/registries.js.map +1 -0
  308. package/dist/providers/registries.mjs +36 -0
  309. package/dist/providers/registries.mjs.map +1 -0
  310. package/dist/providers/telemetry.d.ts +3 -0
  311. package/dist/providers/telemetry.d.ts.map +1 -0
  312. package/dist/providers/telemetry.js +19 -0
  313. package/dist/providers/telemetry.js.map +1 -0
  314. package/dist/providers/telemetry.mjs +20 -0
  315. package/dist/providers/telemetry.mjs.map +1 -0
  316. package/dist/providers/webhooks.d.ts +3 -0
  317. package/dist/providers/webhooks.d.ts.map +1 -0
  318. package/dist/providers/webhooks.js +30 -0
  319. package/dist/providers/webhooks.js.map +1 -0
  320. package/dist/providers/webhooks.mjs +31 -0
  321. package/dist/providers/webhooks.mjs.map +1 -0
  322. package/dist/registries/apis.d.ts +2 -2
  323. package/dist/registries/apis.d.ts.map +1 -1
  324. package/dist/registries/apis.js +2 -2
  325. package/dist/registries/apis.js.map +1 -1
  326. package/dist/registries/apis.mjs.map +1 -1
  327. package/dist/registries/components.d.ts +6 -6
  328. package/dist/registries/components.d.ts.map +1 -1
  329. package/dist/registries/components.js +2 -2
  330. package/dist/registries/components.js.map +1 -1
  331. package/dist/registries/components.mjs.map +1 -1
  332. package/dist/registries/content-types.d.ts +5 -5
  333. package/dist/registries/content-types.d.ts.map +1 -1
  334. package/dist/registries/content-types.js +3 -3
  335. package/dist/registries/content-types.js.map +1 -1
  336. package/dist/registries/content-types.mjs.map +1 -1
  337. package/dist/registries/controllers.d.ts +10 -10
  338. package/dist/registries/controllers.d.ts.map +1 -1
  339. package/dist/registries/controllers.js +3 -3
  340. package/dist/registries/controllers.js.map +1 -1
  341. package/dist/registries/controllers.mjs.map +1 -1
  342. package/dist/registries/custom-fields.d.ts +3 -3
  343. package/dist/registries/custom-fields.d.ts.map +1 -1
  344. package/dist/registries/custom-fields.js +4 -4
  345. package/dist/registries/custom-fields.js.map +1 -1
  346. package/dist/registries/custom-fields.mjs.map +1 -1
  347. package/dist/registries/hooks.js +2 -2
  348. package/dist/registries/hooks.js.map +1 -1
  349. package/dist/registries/hooks.mjs.map +1 -1
  350. package/dist/registries/index.d.ts +0 -1
  351. package/dist/registries/index.d.ts.map +1 -1
  352. package/dist/registries/middlewares.d.ts +6 -6
  353. package/dist/registries/middlewares.d.ts.map +1 -1
  354. package/dist/registries/middlewares.js +3 -3
  355. package/dist/registries/middlewares.js.map +1 -1
  356. package/dist/registries/middlewares.mjs.map +1 -1
  357. package/dist/registries/models.js.map +1 -1
  358. package/dist/registries/models.mjs.map +1 -1
  359. package/dist/registries/modules.d.ts +2 -2
  360. package/dist/registries/modules.d.ts.map +1 -1
  361. package/dist/registries/modules.js +3 -3
  362. package/dist/registries/modules.js.map +1 -1
  363. package/dist/registries/modules.mjs.map +1 -1
  364. package/dist/registries/namespace.js.map +1 -1
  365. package/dist/registries/namespace.mjs.map +1 -1
  366. package/dist/registries/plugins.d.ts +5 -5
  367. package/dist/registries/plugins.d.ts.map +1 -1
  368. package/dist/registries/plugins.js +2 -2
  369. package/dist/registries/plugins.js.map +1 -1
  370. package/dist/registries/plugins.mjs.map +1 -1
  371. package/dist/registries/policies.d.ts +22 -10
  372. package/dist/registries/policies.d.ts.map +1 -1
  373. package/dist/registries/policies.js +66 -20
  374. package/dist/registries/policies.js.map +1 -1
  375. package/dist/registries/policies.mjs +65 -19
  376. package/dist/registries/policies.mjs.map +1 -1
  377. package/dist/registries/sanitizers.js.map +1 -1
  378. package/dist/registries/sanitizers.mjs.map +1 -1
  379. package/dist/registries/services.d.ts +8 -8
  380. package/dist/registries/services.d.ts.map +1 -1
  381. package/dist/registries/services.js +3 -3
  382. package/dist/registries/services.js.map +1 -1
  383. package/dist/registries/services.mjs.map +1 -1
  384. package/dist/registries/validators.js.map +1 -1
  385. package/dist/registries/validators.mjs.map +1 -1
  386. package/dist/services/auth/index.d.ts +4 -4
  387. package/dist/services/auth/index.d.ts.map +1 -1
  388. package/dist/services/auth/index.js +3 -3
  389. package/dist/services/auth/index.js.map +1 -1
  390. package/dist/services/auth/index.mjs.map +1 -1
  391. package/dist/services/config.d.ts +3 -0
  392. package/dist/services/config.d.ts.map +1 -0
  393. package/dist/services/config.js +47 -0
  394. package/dist/services/config.js.map +1 -0
  395. package/dist/services/config.mjs +47 -0
  396. package/dist/services/config.mjs.map +1 -0
  397. package/dist/services/content-api/index.d.ts +31 -15
  398. package/dist/services/content-api/index.d.ts.map +1 -1
  399. package/dist/services/content-api/index.js +28 -2
  400. package/dist/services/content-api/index.js.map +1 -1
  401. package/dist/services/content-api/index.mjs +28 -2
  402. package/dist/services/content-api/index.mjs.map +1 -1
  403. package/dist/services/content-api/permissions/index.d.ts +13 -15
  404. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  405. package/dist/services/content-api/permissions/index.js +1 -1
  406. package/dist/services/content-api/permissions/index.js.map +1 -1
  407. package/dist/services/content-api/permissions/index.mjs +1 -1
  408. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  409. package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
  410. package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
  411. package/dist/services/content-api/permissions/providers/action.js.map +1 -1
  412. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
  413. package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
  414. package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
  415. package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
  416. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
  417. package/dist/services/core-store.d.ts.map +1 -1
  418. package/dist/services/core-store.js +3 -3
  419. package/dist/services/core-store.js.map +1 -1
  420. package/dist/services/core-store.mjs.map +1 -1
  421. package/dist/services/cron.d.ts +5 -5
  422. package/dist/services/cron.d.ts.map +1 -1
  423. package/dist/services/cron.js +12 -8
  424. package/dist/services/cron.js.map +1 -1
  425. package/dist/services/cron.mjs +9 -5
  426. package/dist/services/cron.mjs.map +1 -1
  427. package/dist/services/custom-fields.d.ts +2 -2
  428. package/dist/services/custom-fields.d.ts.map +1 -1
  429. package/dist/services/custom-fields.js.map +1 -1
  430. package/dist/services/custom-fields.mjs.map +1 -1
  431. package/dist/services/document-service/attributes/index.d.ts +6 -0
  432. package/dist/services/document-service/attributes/index.d.ts.map +1 -0
  433. package/dist/services/{entity-service → document-service}/attributes/index.js +5 -5
  434. package/dist/services/document-service/attributes/index.js.map +1 -0
  435. package/dist/services/{entity-service → document-service}/attributes/index.mjs +5 -5
  436. package/dist/services/document-service/attributes/index.mjs.map +1 -0
  437. package/dist/services/document-service/attributes/transforms.d.ts +10 -0
  438. package/dist/services/document-service/attributes/transforms.d.ts.map +1 -0
  439. package/dist/services/{entity-service → document-service}/attributes/transforms.js +3 -3
  440. package/dist/services/document-service/attributes/transforms.js.map +1 -0
  441. package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
  442. package/dist/services/document-service/common.d.ts +2 -2
  443. package/dist/services/document-service/common.d.ts.map +1 -1
  444. package/dist/services/document-service/common.js.map +1 -1
  445. package/dist/services/document-service/common.mjs.map +1 -1
  446. package/dist/services/document-service/components.d.ts +25 -1
  447. package/dist/services/document-service/components.d.ts.map +1 -1
  448. package/dist/services/{entity-service → document-service}/components.js +46 -56
  449. package/dist/services/document-service/components.js.map +1 -0
  450. package/dist/services/{entity-service → document-service}/components.mjs +36 -46
  451. package/dist/services/document-service/components.mjs.map +1 -0
  452. package/dist/services/document-service/draft-and-publish.d.ts +7 -7
  453. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  454. package/dist/services/document-service/draft-and-publish.js +16 -16
  455. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  456. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  457. package/dist/services/document-service/entries.d.ts +10 -0
  458. package/dist/services/document-service/entries.d.ts.map +1 -0
  459. package/dist/services/document-service/entries.js +95 -0
  460. package/dist/services/document-service/entries.js.map +1 -0
  461. package/dist/services/document-service/entries.mjs +95 -0
  462. package/dist/services/document-service/entries.mjs.map +1 -0
  463. package/dist/services/document-service/events.d.ts +25 -0
  464. package/dist/services/document-service/events.d.ts.map +1 -0
  465. package/dist/services/document-service/events.js +47 -0
  466. package/dist/services/document-service/events.js.map +1 -0
  467. package/dist/services/document-service/events.mjs +47 -0
  468. package/dist/services/document-service/events.mjs.map +1 -0
  469. package/dist/services/document-service/index.d.ts +3 -4
  470. package/dist/services/document-service/index.d.ts.map +1 -1
  471. package/dist/services/document-service/index.js +21 -7
  472. package/dist/services/document-service/index.js.map +1 -1
  473. package/dist/services/document-service/index.mjs +19 -5
  474. package/dist/services/document-service/index.mjs.map +1 -1
  475. package/dist/services/document-service/internationalization.d.ts +5 -5
  476. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  477. package/dist/services/document-service/internationalization.js +21 -12
  478. package/dist/services/document-service/internationalization.js.map +1 -1
  479. package/dist/services/document-service/internationalization.mjs +14 -5
  480. package/dist/services/document-service/internationalization.mjs.map +1 -1
  481. package/dist/services/document-service/middlewares/errors.d.ts +6 -0
  482. package/dist/services/document-service/middlewares/errors.d.ts.map +1 -0
  483. package/dist/services/document-service/middlewares/errors.js +25 -0
  484. package/dist/services/document-service/middlewares/errors.js.map +1 -0
  485. package/dist/services/document-service/middlewares/errors.mjs +25 -0
  486. package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
  487. package/dist/services/document-service/middlewares/index.d.ts +3 -0
  488. package/dist/services/document-service/middlewares/index.d.ts.map +1 -0
  489. package/dist/services/document-service/middlewares/middleware-manager.d.ts +10 -0
  490. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -0
  491. package/dist/services/document-service/{middlewares.js → middlewares/middleware-manager.js} +9 -6
  492. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
  493. package/dist/services/document-service/{middlewares.mjs → middlewares/middleware-manager.mjs} +9 -6
  494. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
  495. package/dist/services/document-service/params.d.ts +3 -1
  496. package/dist/services/document-service/params.d.ts.map +1 -1
  497. package/dist/services/{entity-service → document-service}/params.js +2 -2
  498. package/dist/services/document-service/params.js.map +1 -0
  499. package/dist/services/document-service/params.mjs.map +1 -0
  500. package/dist/services/document-service/repository.d.ts.map +1 -1
  501. package/dist/services/document-service/repository.js +194 -157
  502. package/dist/services/document-service/repository.js.map +1 -1
  503. package/dist/services/document-service/repository.mjs +172 -135
  504. package/dist/services/document-service/repository.mjs.map +1 -1
  505. package/dist/services/document-service/transform/data.d.ts.map +1 -1
  506. package/dist/services/document-service/transform/data.js +4 -2
  507. package/dist/services/document-service/transform/data.js.map +1 -1
  508. package/dist/services/document-service/transform/data.mjs +4 -2
  509. package/dist/services/document-service/transform/data.mjs.map +1 -1
  510. package/dist/services/document-service/transform/fields.d.ts +2 -2
  511. package/dist/services/document-service/transform/fields.d.ts.map +1 -1
  512. package/dist/services/document-service/transform/fields.js.map +1 -1
  513. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  514. package/dist/services/document-service/transform/id-map.d.ts +3 -3
  515. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  516. package/dist/services/document-service/transform/id-map.js +15 -8
  517. package/dist/services/document-service/transform/id-map.js.map +1 -1
  518. package/dist/services/document-service/transform/id-map.mjs +16 -9
  519. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  520. package/dist/services/document-service/transform/id-transform.d.ts +2 -2
  521. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  522. package/dist/services/document-service/transform/id-transform.js +2 -2
  523. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  524. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  525. package/dist/services/document-service/transform/populate.d.ts +2 -2
  526. package/dist/services/document-service/transform/populate.d.ts.map +1 -1
  527. package/dist/services/document-service/transform/populate.js +1 -1
  528. package/dist/services/document-service/transform/populate.js.map +1 -1
  529. package/dist/services/document-service/transform/populate.mjs +1 -1
  530. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  531. package/dist/services/document-service/transform/query.d.ts +5 -0
  532. package/dist/services/document-service/transform/query.d.ts.map +1 -0
  533. package/dist/services/document-service/transform/query.js +9 -0
  534. package/dist/services/document-service/transform/query.js.map +1 -0
  535. package/dist/services/document-service/transform/query.mjs +9 -0
  536. package/dist/services/document-service/transform/query.mjs.map +1 -0
  537. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +8 -7
  538. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  539. package/dist/services/document-service/transform/relations/extract/data-ids.js +51 -77
  540. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  541. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +51 -77
  542. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  543. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +8 -4
  544. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  545. package/dist/services/document-service/transform/relations/transform/data-ids.js +69 -125
  546. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  547. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +69 -125
  548. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  549. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts +9 -0
  550. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts.map +1 -0
  551. package/dist/services/document-service/transform/relations/transform/default-locale.js +32 -0
  552. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
  553. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +32 -0
  554. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
  555. package/dist/services/document-service/transform/relations/utils/dp.d.ts +3 -3
  556. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  557. package/dist/services/document-service/transform/relations/utils/dp.js +10 -5
  558. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  559. package/dist/services/document-service/transform/relations/utils/dp.mjs +9 -4
  560. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  561. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +6 -6
  562. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  563. package/dist/services/document-service/transform/relations/utils/i18n.js +3 -9
  564. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  565. package/dist/services/document-service/transform/relations/utils/i18n.mjs +3 -9
  566. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  567. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts +6 -0
  568. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -0
  569. package/dist/services/document-service/transform/relations/utils/map-relation.js +84 -0
  570. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
  571. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +84 -0
  572. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
  573. package/dist/services/document-service/transform/relations/utils/types.d.ts +6 -0
  574. package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -1
  575. package/dist/services/document-service/transform/types.d.ts +3 -3
  576. package/dist/services/document-service/transform/types.d.ts.map +1 -1
  577. package/dist/services/document-service/utils/populate.d.ts +2 -2
  578. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  579. package/dist/services/document-service/utils/populate.js +8 -2
  580. package/dist/services/document-service/utils/populate.js.map +1 -1
  581. package/dist/services/document-service/utils/populate.mjs +8 -2
  582. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  583. package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
  584. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  585. package/dist/services/document-service/utils/unidirectional-relations.js +68 -0
  586. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
  587. package/dist/services/document-service/utils/unidirectional-relations.mjs +68 -0
  588. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
  589. package/dist/services/entity-service/index.d.ts +4 -4
  590. package/dist/services/entity-service/index.d.ts.map +1 -1
  591. package/dist/services/entity-service/index.js +22 -16
  592. package/dist/services/entity-service/index.js.map +1 -1
  593. package/dist/services/entity-service/index.mjs +23 -17
  594. package/dist/services/entity-service/index.mjs.map +1 -1
  595. package/dist/services/entity-validator/blocks-validator.d.ts +1 -2
  596. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  597. package/dist/services/entity-validator/blocks-validator.js +4 -3
  598. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  599. package/dist/services/entity-validator/blocks-validator.mjs +3 -3
  600. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  601. package/dist/services/entity-validator/index.d.ts +16 -2
  602. package/dist/services/entity-validator/index.d.ts.map +1 -1
  603. package/dist/services/entity-validator/index.js +196 -129
  604. package/dist/services/entity-validator/index.js.map +1 -1
  605. package/dist/services/entity-validator/index.mjs +191 -124
  606. package/dist/services/entity-validator/index.mjs.map +1 -1
  607. package/dist/services/entity-validator/validators.d.ts +36 -25
  608. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  609. package/dist/services/entity-validator/validators.js +153 -33
  610. package/dist/services/entity-validator/validators.js.map +1 -1
  611. package/dist/services/entity-validator/validators.mjs +145 -25
  612. package/dist/services/entity-validator/validators.mjs.map +1 -1
  613. package/dist/services/errors.js.map +1 -1
  614. package/dist/services/errors.mjs.map +1 -1
  615. package/dist/services/event-hub.d.ts +1 -0
  616. package/dist/services/event-hub.d.ts.map +1 -1
  617. package/dist/services/event-hub.js +9 -4
  618. package/dist/services/event-hub.js.map +1 -1
  619. package/dist/services/event-hub.mjs +9 -4
  620. package/dist/services/event-hub.mjs.map +1 -1
  621. package/dist/services/features.d.ts +3 -3
  622. package/dist/services/features.d.ts.map +1 -1
  623. package/dist/services/features.js.map +1 -1
  624. package/dist/services/features.mjs.map +1 -1
  625. package/dist/services/fs.d.ts +2 -2
  626. package/dist/services/fs.d.ts.map +1 -1
  627. package/dist/services/fs.js.map +1 -1
  628. package/dist/services/fs.mjs.map +1 -1
  629. package/dist/services/metrics/admin-user-hash.d.ts +2 -2
  630. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  631. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  632. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  633. package/dist/services/metrics/index.d.ts +2 -2
  634. package/dist/services/metrics/index.d.ts.map +1 -1
  635. package/dist/services/metrics/index.js +1 -2
  636. package/dist/services/metrics/index.js.map +1 -1
  637. package/dist/services/metrics/index.mjs +1 -2
  638. package/dist/services/metrics/index.mjs.map +1 -1
  639. package/dist/services/metrics/is-truthy.js.map +1 -1
  640. package/dist/services/metrics/middleware.d.ts +2 -2
  641. package/dist/services/metrics/middleware.d.ts.map +1 -1
  642. package/dist/services/metrics/middleware.js.map +1 -1
  643. package/dist/services/metrics/middleware.mjs.map +1 -1
  644. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  645. package/dist/services/metrics/rate-limiter.js.map +1 -1
  646. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  647. package/dist/services/metrics/sender.d.ts +3 -3
  648. package/dist/services/metrics/sender.d.ts.map +1 -1
  649. package/dist/services/metrics/sender.js.map +1 -1
  650. package/dist/services/metrics/sender.mjs.map +1 -1
  651. package/dist/services/query-params.d.ts +7 -0
  652. package/dist/services/query-params.d.ts.map +1 -0
  653. package/dist/services/query-params.js +12 -0
  654. package/dist/services/query-params.js.map +1 -0
  655. package/dist/services/query-params.mjs +13 -0
  656. package/dist/services/query-params.mjs.map +1 -0
  657. package/dist/services/reloader.d.ts +7 -0
  658. package/dist/services/reloader.d.ts.map +1 -0
  659. package/dist/services/reloader.js +36 -0
  660. package/dist/services/reloader.js.map +1 -0
  661. package/dist/services/reloader.mjs +36 -0
  662. package/dist/services/reloader.mjs.map +1 -0
  663. package/dist/services/request-context.js.map +1 -1
  664. package/dist/services/request-context.mjs.map +1 -1
  665. package/dist/services/server/admin-api.d.ts +3 -3
  666. package/dist/services/server/admin-api.d.ts.map +1 -1
  667. package/dist/services/server/admin-api.js.map +1 -1
  668. package/dist/services/server/admin-api.mjs.map +1 -1
  669. package/dist/services/server/api.d.ts +3 -3
  670. package/dist/services/server/api.d.ts.map +1 -1
  671. package/dist/services/server/api.js.map +1 -1
  672. package/dist/services/server/api.mjs.map +1 -1
  673. package/dist/services/server/compose-endpoint.d.ts +2 -2
  674. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  675. package/dist/services/server/compose-endpoint.js +8 -9
  676. package/dist/services/server/compose-endpoint.js.map +1 -1
  677. package/dist/services/server/compose-endpoint.mjs +2 -3
  678. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  679. package/dist/services/server/content-api.d.ts +3 -3
  680. package/dist/services/server/content-api.d.ts.map +1 -1
  681. package/dist/services/server/content-api.js.map +1 -1
  682. package/dist/services/server/content-api.mjs.map +1 -1
  683. package/dist/services/server/http-server.d.ts +2 -2
  684. package/dist/services/server/http-server.d.ts.map +1 -1
  685. package/dist/services/server/http-server.js.map +1 -1
  686. package/dist/services/server/http-server.mjs.map +1 -1
  687. package/dist/services/server/index.d.ts +2 -2
  688. package/dist/services/server/index.d.ts.map +1 -1
  689. package/dist/services/server/index.js +2 -3
  690. package/dist/services/server/index.js.map +1 -1
  691. package/dist/services/server/index.mjs +2 -3
  692. package/dist/services/server/index.mjs.map +1 -1
  693. package/dist/services/server/koa.d.ts.map +1 -1
  694. package/dist/services/server/koa.js +4 -4
  695. package/dist/services/server/koa.js.map +1 -1
  696. package/dist/services/server/koa.mjs +1 -1
  697. package/dist/services/server/koa.mjs.map +1 -1
  698. package/dist/services/server/middleware.d.ts +4 -4
  699. package/dist/services/server/middleware.d.ts.map +1 -1
  700. package/dist/services/server/middleware.js +3 -3
  701. package/dist/services/server/middleware.js.map +1 -1
  702. package/dist/services/server/middleware.mjs.map +1 -1
  703. package/dist/services/server/policy.d.ts +3 -3
  704. package/dist/services/server/policy.d.ts.map +1 -1
  705. package/dist/services/server/policy.js +4 -4
  706. package/dist/services/server/policy.js.map +1 -1
  707. package/dist/services/server/policy.mjs +4 -4
  708. package/dist/services/server/policy.mjs.map +1 -1
  709. package/dist/services/server/register-middlewares.d.ts +2 -2
  710. package/dist/services/server/register-middlewares.d.ts.map +1 -1
  711. package/dist/services/server/register-middlewares.js.map +1 -1
  712. package/dist/services/server/register-middlewares.mjs.map +1 -1
  713. package/dist/services/server/register-routes.d.ts +2 -2
  714. package/dist/services/server/register-routes.d.ts.map +1 -1
  715. package/dist/services/server/register-routes.js +3 -3
  716. package/dist/services/server/register-routes.js.map +1 -1
  717. package/dist/services/server/register-routes.mjs +3 -3
  718. package/dist/services/server/register-routes.mjs.map +1 -1
  719. package/dist/services/server/routing.d.ts +5 -5
  720. package/dist/services/server/routing.d.ts.map +1 -1
  721. package/dist/services/server/routing.js +2 -2
  722. package/dist/services/server/routing.js.map +1 -1
  723. package/dist/services/server/routing.mjs.map +1 -1
  724. package/dist/services/utils/dynamic-zones.d.ts.map +1 -1
  725. package/dist/services/utils/dynamic-zones.js +7 -6
  726. package/dist/services/utils/dynamic-zones.js.map +1 -1
  727. package/dist/services/utils/dynamic-zones.mjs +2 -1
  728. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  729. package/dist/services/webhook-runner.d.ts +2 -1
  730. package/dist/services/webhook-runner.d.ts.map +1 -1
  731. package/dist/services/webhook-runner.js.map +1 -1
  732. package/dist/services/webhook-runner.mjs.map +1 -1
  733. package/dist/services/webhook-store.d.ts +2 -8
  734. package/dist/services/webhook-store.d.ts.map +1 -1
  735. package/dist/services/webhook-store.js +14 -8
  736. package/dist/services/webhook-store.js.map +1 -1
  737. package/dist/services/webhook-store.mjs +14 -8
  738. package/dist/services/webhook-store.mjs.map +1 -1
  739. package/dist/services/worker-queue.js.map +1 -1
  740. package/dist/services/worker-queue.mjs.map +1 -1
  741. package/dist/utils/convert-custom-field-type.d.ts +2 -2
  742. package/dist/utils/convert-custom-field-type.d.ts.map +1 -1
  743. package/dist/utils/convert-custom-field-type.js.map +1 -1
  744. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  745. package/dist/utils/cron.js +3 -3
  746. package/dist/utils/cron.js.map +1 -1
  747. package/dist/utils/cron.mjs.map +1 -1
  748. package/dist/utils/fetch.d.ts +3 -3
  749. package/dist/utils/fetch.d.ts.map +1 -1
  750. package/dist/utils/fetch.js +4 -3
  751. package/dist/utils/fetch.js.map +1 -1
  752. package/dist/utils/fetch.mjs +4 -3
  753. package/dist/utils/fetch.mjs.map +1 -1
  754. package/dist/utils/filepath-to-prop-path.d.ts +1 -1
  755. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
  756. package/dist/utils/filepath-to-prop-path.js +27 -6
  757. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  758. package/dist/utils/filepath-to-prop-path.mjs +25 -5
  759. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  760. package/dist/utils/index.d.ts +2 -1
  761. package/dist/utils/index.d.ts.map +1 -1
  762. package/dist/utils/is-initialized.d.ts +2 -2
  763. package/dist/utils/is-initialized.d.ts.map +1 -1
  764. package/dist/utils/is-initialized.js +3 -3
  765. package/dist/utils/is-initialized.js.map +1 -1
  766. package/dist/utils/is-initialized.mjs.map +1 -1
  767. package/dist/utils/load-config-file.js.map +1 -1
  768. package/dist/utils/load-config-file.mjs.map +1 -1
  769. package/dist/utils/load-files.d.ts.map +1 -1
  770. package/dist/utils/load-files.js +1 -2
  771. package/dist/utils/load-files.js.map +1 -1
  772. package/dist/utils/load-files.mjs +1 -2
  773. package/dist/utils/load-files.mjs.map +1 -1
  774. package/dist/utils/open-browser.d.ts +2 -2
  775. package/dist/utils/open-browser.d.ts.map +1 -1
  776. package/dist/utils/open-browser.js.map +1 -1
  777. package/dist/utils/open-browser.mjs.map +1 -1
  778. package/dist/utils/resolve-working-dirs.d.ts +19 -0
  779. package/dist/utils/resolve-working-dirs.d.ts.map +1 -0
  780. package/dist/utils/resolve-working-dirs.js +13 -0
  781. package/dist/utils/resolve-working-dirs.js.map +1 -0
  782. package/dist/utils/resolve-working-dirs.mjs +11 -0
  783. package/dist/utils/resolve-working-dirs.mjs.map +1 -0
  784. package/dist/utils/signals.d.ts +2 -2
  785. package/dist/utils/signals.d.ts.map +1 -1
  786. package/dist/utils/signals.js.map +1 -1
  787. package/dist/utils/signals.mjs.map +1 -1
  788. package/dist/utils/startup-logger.d.ts +2 -2
  789. package/dist/utils/startup-logger.d.ts.map +1 -1
  790. package/dist/utils/startup-logger.js +10 -5
  791. package/dist/utils/startup-logger.js.map +1 -1
  792. package/dist/utils/startup-logger.mjs +9 -4
  793. package/dist/utils/startup-logger.mjs.map +1 -1
  794. package/dist/utils/transform-content-types-to-models.d.ts +377 -90
  795. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  796. package/dist/utils/transform-content-types-to-models.js +112 -61
  797. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  798. package/dist/utils/transform-content-types-to-models.mjs +111 -60
  799. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  800. package/dist/utils/update-notifier/index.d.ts +2 -7
  801. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  802. package/dist/utils/update-notifier/index.js +11 -14
  803. package/dist/utils/update-notifier/index.js.map +1 -1
  804. package/dist/utils/update-notifier/index.mjs +11 -14
  805. package/dist/utils/update-notifier/index.mjs.map +1 -1
  806. package/package.json +36 -32
  807. package/dist/registries/config.d.ts +0 -4
  808. package/dist/registries/config.d.ts.map +0 -1
  809. package/dist/registries/config.js +0 -31
  810. package/dist/registries/config.js.map +0 -1
  811. package/dist/registries/config.mjs +0 -32
  812. package/dist/registries/config.mjs.map +0 -1
  813. package/dist/services/document-service/middlewares.d.ts +0 -8
  814. package/dist/services/document-service/middlewares.d.ts.map +0 -1
  815. package/dist/services/document-service/middlewares.js.map +0 -1
  816. package/dist/services/document-service/middlewares.mjs.map +0 -1
  817. package/dist/services/document-service/transform/filters.d.ts +0 -3
  818. package/dist/services/document-service/transform/filters.d.ts.map +0 -1
  819. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +0 -4
  820. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +0 -1
  821. package/dist/services/document-service/transform/relations/utils/data.js +0 -12
  822. package/dist/services/document-service/transform/relations/utils/data.js.map +0 -1
  823. package/dist/services/document-service/transform/relations/utils/data.mjs +0 -12
  824. package/dist/services/document-service/transform/relations/utils/data.mjs.map +0 -1
  825. package/dist/services/document-service/transform/sort.d.ts +0 -5
  826. package/dist/services/document-service/transform/sort.d.ts.map +0 -1
  827. package/dist/services/document-service/transform/utils.d.ts +0 -9
  828. package/dist/services/document-service/transform/utils.d.ts.map +0 -1
  829. package/dist/services/entity-service/attributes/index.d.ts +0 -6
  830. package/dist/services/entity-service/attributes/index.d.ts.map +0 -1
  831. package/dist/services/entity-service/attributes/index.js.map +0 -1
  832. package/dist/services/entity-service/attributes/index.mjs.map +0 -1
  833. package/dist/services/entity-service/attributes/transforms.d.ts +0 -10
  834. package/dist/services/entity-service/attributes/transforms.d.ts.map +0 -1
  835. package/dist/services/entity-service/attributes/transforms.js.map +0 -1
  836. package/dist/services/entity-service/attributes/transforms.mjs.map +0 -1
  837. package/dist/services/entity-service/components.d.ts +0 -20
  838. package/dist/services/entity-service/components.d.ts.map +0 -1
  839. package/dist/services/entity-service/components.js.map +0 -1
  840. package/dist/services/entity-service/components.mjs.map +0 -1
  841. package/dist/services/entity-service/params.d.ts +0 -8
  842. package/dist/services/entity-service/params.d.ts.map +0 -1
  843. package/dist/services/entity-service/params.js.map +0 -1
  844. package/dist/services/entity-service/params.mjs.map +0 -1
  845. package/dist/utils/get-dirs.d.ts +0 -9
  846. package/dist/utils/get-dirs.d.ts.map +0 -1
  847. package/dist/utils/get-dirs.js.map +0 -1
  848. package/dist/utils/get-dirs.mjs.map +0 -1
  849. /package/dist/services/{entity-service → document-service}/attributes/transforms.mjs +0 -0
  850. /package/dist/services/{entity-service → document-service}/params.mjs +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"fields.js","sources":["../../../../src/services/document-service/transform/fields.ts"],"sourcesContent":["import { Documents, Common } from '@strapi/types';\n\ntype Fields = Documents.Params.Pick<Common.UID.Schema, 'fields'>['fields'];\n\nexport const transformFields = (fields: Fields): Fields => {\n // If it's a string, and it doesn't contain documentId, should be an array\n if (typeof fields === 'string') {\n // '*' => '*'\n if (fields === '*') {\n return fields;\n }\n\n // '' => 'documentId'\n if (fields === '') {\n return 'documentId';\n }\n\n // 'name,description' => 'name,description,documentId'\n if (!fields.split(',').includes('documentId')) {\n return `${fields},documentId`;\n }\n }\n\n // It's not an array, ignore it\n if (!fields || !Array.isArray(fields)) {\n // If fields is empty, return it as is\n return fields;\n }\n\n // Ensure we are always selecting the documentId\n // ['name', 'description'] => ['name', 'description', 'documentId']\n if (!fields.includes('documentId')) {\n fields.push('documentId');\n }\n\n return fields;\n};\n"],"names":[],"mappings":";;AAIa,MAAA,kBAAkB,CAAC,WAA2B;AAErD,MAAA,OAAO,WAAW,UAAU;AAE9B,QAAI,WAAW,KAAK;AACX,aAAA;AAAA,IACT;AAGA,QAAI,WAAW,IAAI;AACV,aAAA;AAAA,IACT;AAGA,QAAI,CAAC,OAAO,MAAM,GAAG,EAAE,SAAS,YAAY,GAAG;AAC7C,aAAO,GAAG,MAAM;AAAA,IAClB;AAAA,EACF;AAGA,MAAI,CAAC,UAAU,CAAC,MAAM,QAAQ,MAAM,GAAG;AAE9B,WAAA;AAAA,EACT;AAIA,MAAI,CAAC,OAAO,SAAS,YAAY,GAAG;AAClC,WAAO,KAAK,YAAY;AAAA,EAC1B;AAEO,SAAA;AACT;;"}
1
+ {"version":3,"file":"fields.js","sources":["../../../../src/services/document-service/transform/fields.ts"],"sourcesContent":["import type { Modules, UID } from '@strapi/types';\n\ntype Fields = Modules.Documents.Params.Pick<UID.Schema, 'fields'>['fields'];\n\nexport const transformFields = (fields: Fields): Fields => {\n // If it's a string, and it doesn't contain documentId, should be an array\n if (typeof fields === 'string') {\n // '*' => '*'\n if (fields === '*') {\n return fields;\n }\n\n // '' => 'documentId'\n if (fields === '') {\n return 'documentId';\n }\n\n // 'name,description' => 'name,description,documentId'\n if (!fields.split(',').includes('documentId')) {\n return `${fields},documentId`;\n }\n }\n\n // It's not an array, ignore it\n if (!fields || !Array.isArray(fields)) {\n // If fields is empty, return it as is\n return fields;\n }\n\n // Ensure we are always selecting the documentId\n // ['name', 'description'] => ['name', 'description', 'documentId']\n if (!fields.includes('documentId')) {\n fields.push('documentId');\n }\n\n return fields;\n};\n"],"names":[],"mappings":";;AAIa,MAAA,kBAAkB,CAAC,WAA2B;AAErD,MAAA,OAAO,WAAW,UAAU;AAE9B,QAAI,WAAW,KAAK;AACX,aAAA;AAAA,IAAA;AAIT,QAAI,WAAW,IAAI;AACV,aAAA;AAAA,IAAA;AAIT,QAAI,CAAC,OAAO,MAAM,GAAG,EAAE,SAAS,YAAY,GAAG;AAC7C,aAAO,GAAG,MAAM;AAAA,IAAA;AAAA,EAClB;AAIF,MAAI,CAAC,UAAU,CAAC,MAAM,QAAQ,MAAM,GAAG;AAE9B,WAAA;AAAA,EAAA;AAKT,MAAI,CAAC,OAAO,SAAS,YAAY,GAAG;AAClC,WAAO,KAAK,YAAY;AAAA,EAAA;AAGnB,SAAA;AACT;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"fields.mjs","sources":["../../../../src/services/document-service/transform/fields.ts"],"sourcesContent":["import { Documents, Common } from '@strapi/types';\n\ntype Fields = Documents.Params.Pick<Common.UID.Schema, 'fields'>['fields'];\n\nexport const transformFields = (fields: Fields): Fields => {\n // If it's a string, and it doesn't contain documentId, should be an array\n if (typeof fields === 'string') {\n // '*' => '*'\n if (fields === '*') {\n return fields;\n }\n\n // '' => 'documentId'\n if (fields === '') {\n return 'documentId';\n }\n\n // 'name,description' => 'name,description,documentId'\n if (!fields.split(',').includes('documentId')) {\n return `${fields},documentId`;\n }\n }\n\n // It's not an array, ignore it\n if (!fields || !Array.isArray(fields)) {\n // If fields is empty, return it as is\n return fields;\n }\n\n // Ensure we are always selecting the documentId\n // ['name', 'description'] => ['name', 'description', 'documentId']\n if (!fields.includes('documentId')) {\n fields.push('documentId');\n }\n\n return fields;\n};\n"],"names":[],"mappings":"AAIa,MAAA,kBAAkB,CAAC,WAA2B;AAErD,MAAA,OAAO,WAAW,UAAU;AAE9B,QAAI,WAAW,KAAK;AACX,aAAA;AAAA,IACT;AAGA,QAAI,WAAW,IAAI;AACV,aAAA;AAAA,IACT;AAGA,QAAI,CAAC,OAAO,MAAM,GAAG,EAAE,SAAS,YAAY,GAAG;AAC7C,aAAO,GAAG,MAAM;AAAA,IAClB;AAAA,EACF;AAGA,MAAI,CAAC,UAAU,CAAC,MAAM,QAAQ,MAAM,GAAG;AAE9B,WAAA;AAAA,EACT;AAIA,MAAI,CAAC,OAAO,SAAS,YAAY,GAAG;AAClC,WAAO,KAAK,YAAY;AAAA,EAC1B;AAEO,SAAA;AACT;"}
1
+ {"version":3,"file":"fields.mjs","sources":["../../../../src/services/document-service/transform/fields.ts"],"sourcesContent":["import type { Modules, UID } from '@strapi/types';\n\ntype Fields = Modules.Documents.Params.Pick<UID.Schema, 'fields'>['fields'];\n\nexport const transformFields = (fields: Fields): Fields => {\n // If it's a string, and it doesn't contain documentId, should be an array\n if (typeof fields === 'string') {\n // '*' => '*'\n if (fields === '*') {\n return fields;\n }\n\n // '' => 'documentId'\n if (fields === '') {\n return 'documentId';\n }\n\n // 'name,description' => 'name,description,documentId'\n if (!fields.split(',').includes('documentId')) {\n return `${fields},documentId`;\n }\n }\n\n // It's not an array, ignore it\n if (!fields || !Array.isArray(fields)) {\n // If fields is empty, return it as is\n return fields;\n }\n\n // Ensure we are always selecting the documentId\n // ['name', 'description'] => ['name', 'description', 'documentId']\n if (!fields.includes('documentId')) {\n fields.push('documentId');\n }\n\n return fields;\n};\n"],"names":[],"mappings":"AAIa,MAAA,kBAAkB,CAAC,WAA2B;AAErD,MAAA,OAAO,WAAW,UAAU;AAE9B,QAAI,WAAW,KAAK;AACX,aAAA;AAAA,IAAA;AAIT,QAAI,WAAW,IAAI;AACV,aAAA;AAAA,IAAA;AAIT,QAAI,CAAC,OAAO,MAAM,GAAG,EAAE,SAAS,YAAY,GAAG;AAC7C,aAAO,GAAG,MAAM;AAAA,IAAA;AAAA,EAClB;AAIF,MAAI,CAAC,UAAU,CAAC,MAAM,QAAQ,MAAM,GAAG;AAE9B,WAAA;AAAA,EAAA;AAKT,MAAI,CAAC,OAAO,SAAS,YAAY,GAAG;AAClC,WAAO,KAAK,YAAY;AAAA,EAAA;AAGnB,SAAA;AACT;"}
@@ -1,7 +1,7 @@
1
- import { Strapi, Entity } from '@strapi/types';
1
+ import { Core, Data } from '@strapi/types';
2
2
  interface KeyFields {
3
3
  uid: string;
4
- documentId: Entity.ID;
4
+ documentId: Data.ID;
5
5
  locale?: string | null;
6
6
  status?: 'draft' | 'published';
7
7
  }
@@ -17,7 +17,7 @@ export interface IdMap {
17
17
  * Holds a registry of document ids and their corresponding entity ids.
18
18
  */
19
19
  declare const createIdMap: ({ strapi }: {
20
- strapi: Strapi;
20
+ strapi: Core.Strapi;
21
21
  }) => IdMap;
22
22
  export { createIdMap };
23
23
  //# sourceMappingURL=id-map.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"id-map.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/id-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAmB/C,UAAU,SAAS;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;CAChC;AAED,MAAM,WAAW,KAAK;IACpB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAElC,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IACzC,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;GAEG;AACH,QAAA,MAAM,WAAW;YAA0B,MAAM;MAAK,KAsFrD,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"id-map.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/id-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAO,MAAM,eAAe,CAAC;AA6BhD,UAAU,SAAS;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;CAChC;AAED,MAAM,WAAW,KAAK;IACpB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAElC,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IACzC,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;GAEG;AACH,QAAA,MAAM,WAAW,eAAgB;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE,KAAG,KAyF1D,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -1,11 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const strapiUtils = require("@strapi/utils");
4
+ const hasDraftAndPublish = (uid) => {
5
+ const model = strapi.getModel(uid);
6
+ return strapiUtils.contentTypes.hasDraftAndPublish(model);
7
+ };
4
8
  const encodeKey = (obj) => {
9
+ if (!hasDraftAndPublish(obj.uid)) {
10
+ delete obj.status;
11
+ }
5
12
  const keys = Object.keys(obj).sort();
6
13
  return keys.map((key) => `${key}:::${obj[key]}`).join("&&");
7
14
  };
8
- const createIdMap = ({ strapi }) => {
15
+ const createIdMap = ({ strapi: strapi2 }) => {
9
16
  const loadedIds = /* @__PURE__ */ new Map();
10
17
  const toLoadIds = /* @__PURE__ */ new Map();
11
18
  return {
@@ -16,10 +23,8 @@ const createIdMap = ({ strapi }) => {
16
23
  */
17
24
  add(keyFields) {
18
25
  const key = encodeKey({ status: "published", locale: null, ...keyFields });
19
- if (loadedIds.has(key))
20
- return;
21
- if (toLoadIds.has(key))
22
- return;
26
+ if (loadedIds.has(key)) return;
27
+ if (toLoadIds.has(key)) return;
23
28
  toLoadIds.set(key, keyFields);
24
29
  },
25
30
  /**
@@ -40,11 +45,13 @@ const createIdMap = ({ strapi }) => {
40
45
  select: ["id", "documentId", "locale", "publishedAt"],
41
46
  where: {
42
47
  documentId: { $in: documentIds },
43
- locale: locale || null,
44
- publishedAt: status === "draft" ? null : { $ne: null }
48
+ locale: locale || null
45
49
  }
46
50
  };
47
- const result = await strapi?.db?.query(uid).findMany(findParams);
51
+ if (hasDraftAndPublish(uid)) {
52
+ findParams.where.publishedAt = status === "draft" ? null : { $ne: null };
53
+ }
54
+ const result = await strapi2?.db?.query(uid).findMany(findParams);
48
55
  result?.forEach(({ documentId, id, locale: locale2, publishedAt }) => {
49
56
  const key = encodeKey({
50
57
  documentId,
@@ -1 +1 @@
1
- {"version":3,"file":"id-map.js","sources":["../../../../src/services/document-service/transform/id-map.ts"],"sourcesContent":["import { Strapi, Entity } from '@strapi/types';\nimport { async } from '@strapi/utils';\n\n/**\n * TODO: Find a better way to encode keys than this\n * This converts an object into a string by joining its keys and values,\n * so it can be used as a key in a Map.\n *\n * @example\n * const obj = { a: 1, b: 2 };\n * const key = encodeKey(obj);\n * ^ \"a:::1&&b:::2\"\n */\nconst encodeKey = (obj: any) => {\n // Sort keys to always keep the same order when encoding\n const keys = Object.keys(obj).sort();\n return keys.map((key) => `${key}:::${obj[key]}`).join('&&');\n};\n\ninterface KeyFields {\n uid: string;\n documentId: Entity.ID;\n locale?: string | null;\n status?: 'draft' | 'published';\n}\n\nexport interface IdMap {\n loadedIds: Map<string, string>;\n toLoadIds: Map<string, KeyFields>;\n // Make the Keys type to be the params of add\n add(keys: KeyFields): void;\n load(): Promise<void>;\n get(keys: KeyFields): string | undefined;\n clear(): void;\n}\n\n/**\n * Holds a registry of document ids and their corresponding entity ids.\n */\nconst createIdMap = ({ strapi }: { strapi: Strapi }): IdMap => {\n const loadedIds = new Map();\n const toLoadIds = new Map();\n\n return {\n loadedIds,\n toLoadIds,\n /**\n * Register a new document id and its corresponding entity id.\n */\n add(keyFields: KeyFields) {\n const key = encodeKey({ status: 'published', locale: null, ...keyFields });\n\n // If the id is already loaded, do nothing\n if (loadedIds.has(key)) return;\n // If the id is already in the toLoadIds, do nothing\n if (toLoadIds.has(key)) return;\n\n // Add the id to the toLoadIds\n toLoadIds.set(key, keyFields);\n },\n\n /**\n * Load all ids from the registry.\n */\n async load() {\n // Document Id to Entry Id queries are batched by its uid and locale\n // TODO: Add publication state too\n const loadIdValues = Array.from(toLoadIds.values());\n\n // 1. Group ids to query together\n const idsByUidAndLocale = loadIdValues.reduce((acc, { documentId, ...rest }) => {\n const key = encodeKey(rest);\n const ids = acc[key] || { ...rest, documentIds: [] };\n ids.documentIds.push(documentId);\n return { ...acc, [key]: ids };\n }, {});\n\n // 2. Query ids\n await async.map(\n Object.values(idsByUidAndLocale),\n async ({ uid, locale, documentIds, status }: any) => {\n const findParams = {\n select: ['id', 'documentId', 'locale', 'publishedAt'],\n where: {\n documentId: { $in: documentIds },\n locale: locale || null,\n publishedAt: status === 'draft' ? null : { $ne: null },\n },\n } as any;\n\n const result = await strapi?.db?.query(uid).findMany(findParams);\n\n // 3. Store result in loadedIds\n result?.forEach(({ documentId, id, locale, publishedAt }: any) => {\n const key = encodeKey({\n documentId,\n uid,\n locale,\n status: publishedAt ? 'published' : 'draft',\n });\n loadedIds.set(key, id);\n });\n }\n );\n\n // 4. Clear toLoadIds\n toLoadIds.clear();\n },\n\n /**\n * Get the entity id for a given document id.\n */\n get(keys: KeyFields) {\n const key = encodeKey({ status: 'published', locale: null, ...keys });\n return loadedIds.get(key);\n },\n\n /**\n * Clear the registry.\n */\n clear() {\n loadedIds.clear();\n toLoadIds.clear();\n },\n };\n};\n\nexport { createIdMap };\n"],"names":["async","locale"],"mappings":";;;AAaA,MAAM,YAAY,CAAC,QAAa;AAE9B,QAAM,OAAO,OAAO,KAAK,GAAG,EAAE,KAAK;AACnC,SAAO,KAAK,IAAI,CAAC,QAAQ,GAAG,GAAG,MAAM,IAAI,GAAG,CAAC,EAAE,EAAE,KAAK,IAAI;AAC5D;AAsBA,MAAM,cAAc,CAAC,EAAE,aAAwC;AACvD,QAAA,gCAAgB;AAChB,QAAA,gCAAgB;AAEf,SAAA;AAAA,IACL;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,IAAI,WAAsB;AAClB,YAAA,MAAM,UAAU,EAAE,QAAQ,aAAa,QAAQ,MAAM,GAAG,UAAA,CAAW;AAGrE,UAAA,UAAU,IAAI,GAAG;AAAG;AAEpB,UAAA,UAAU,IAAI,GAAG;AAAG;AAGd,gBAAA,IAAI,KAAK,SAAS;AAAA,IAC9B;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAO;AAGX,YAAM,eAAe,MAAM,KAAK,UAAU,OAAQ,CAAA;AAG5C,YAAA,oBAAoB,aAAa,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW;AACxE,cAAA,MAAM,UAAU,IAAI;AACpB,cAAA,MAAM,IAAI,GAAG,KAAK,EAAE,GAAG,MAAM,aAAa,CAAA;AAC5C,YAAA,YAAY,KAAK,UAAU;AAC/B,eAAO,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI;AAAA,MAC9B,GAAG,CAAE,CAAA;AAGL,YAAMA,YAAM,MAAA;AAAA,QACV,OAAO,OAAO,iBAAiB;AAAA,QAC/B,OAAO,EAAE,KAAK,QAAQ,aAAa,aAAkB;AACnD,gBAAM,aAAa;AAAA,YACjB,QAAQ,CAAC,MAAM,cAAc,UAAU,aAAa;AAAA,YACpD,OAAO;AAAA,cACL,YAAY,EAAE,KAAK,YAAY;AAAA,cAC/B,QAAQ,UAAU;AAAA,cAClB,aAAa,WAAW,UAAU,OAAO,EAAE,KAAK,KAAK;AAAA,YACvD;AAAA,UAAA;AAGI,gBAAA,SAAS,MAAM,QAAQ,IAAI,MAAM,GAAG,EAAE,SAAS,UAAU;AAGvD,kBAAA,QAAQ,CAAC,EAAE,YAAY,IAAI,QAAAC,SAAQ,kBAAuB;AAChE,kBAAM,MAAM,UAAU;AAAA,cACpB;AAAA,cACA;AAAA,cACA,QAAAA;AAAAA,cACA,QAAQ,cAAc,cAAc;AAAA,YAAA,CACrC;AACS,sBAAA,IAAI,KAAK,EAAE;AAAA,UAAA,CACtB;AAAA,QACH;AAAA,MAAA;AAIF,gBAAU,MAAM;AAAA,IAClB;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,MAAiB;AACb,YAAA,MAAM,UAAU,EAAE,QAAQ,aAAa,QAAQ,MAAM,GAAG,KAAA,CAAM;AAC7D,aAAA,UAAU,IAAI,GAAG;AAAA,IAC1B;AAAA;AAAA;AAAA;AAAA,IAKA,QAAQ;AACN,gBAAU,MAAM;AAChB,gBAAU,MAAM;AAAA,IAClB;AAAA,EAAA;AAEJ;;"}
1
+ {"version":3,"file":"id-map.js","sources":["../../../../src/services/document-service/transform/id-map.ts"],"sourcesContent":["import { Core, Data, UID } from '@strapi/types';\nimport { async, contentTypes } from '@strapi/utils';\n\nconst hasDraftAndPublish = (uid: UID.CollectionType) => {\n const model = strapi.getModel(uid);\n return contentTypes.hasDraftAndPublish(model);\n};\n\n/**\n * TODO: Find a better way to encode keys than this\n * This converts an object into a string by joining its keys and values,\n * so it can be used as a key in a Map.\n *\n * @example\n * const obj = { a: 1, b: 2 };\n * const key = encodeKey(obj);\n * ^ \"a:::1&&b:::2\"\n */\nconst encodeKey = (obj: any) => {\n // Ignore status field for models without draft and publish\n if (!hasDraftAndPublish(obj.uid)) {\n delete obj.status;\n }\n\n // Sort keys to always keep the same order when encoding\n const keys = Object.keys(obj).sort();\n return keys.map((key) => `${key}:::${obj[key]}`).join('&&');\n};\n\ninterface KeyFields {\n uid: string;\n documentId: Data.ID;\n locale?: string | null;\n status?: 'draft' | 'published';\n}\n\nexport interface IdMap {\n loadedIds: Map<string, string>;\n toLoadIds: Map<string, KeyFields>;\n // Make the Keys type to be the params of add\n add(keys: KeyFields): void;\n load(): Promise<void>;\n get(keys: KeyFields): string | undefined;\n clear(): void;\n}\n\n/**\n * Holds a registry of document ids and their corresponding entity ids.\n */\nconst createIdMap = ({ strapi }: { strapi: Core.Strapi }): IdMap => {\n const loadedIds = new Map();\n const toLoadIds = new Map();\n\n return {\n loadedIds,\n toLoadIds,\n /**\n * Register a new document id and its corresponding entity id.\n */\n add(keyFields: KeyFields) {\n const key = encodeKey({ status: 'published', locale: null, ...keyFields });\n\n // If the id is already loaded, do nothing\n if (loadedIds.has(key)) return;\n // If the id is already in the toLoadIds, do nothing\n if (toLoadIds.has(key)) return;\n\n // Add the id to the toLoadIds\n toLoadIds.set(key, keyFields);\n },\n\n /**\n * Load all ids from the registry.\n */\n async load() {\n // Document Id to Entry Id queries are batched by its uid and locale\n // TODO: Add publication state too\n const loadIdValues = Array.from(toLoadIds.values());\n\n // 1. Group ids to query together\n const idsByUidAndLocale = loadIdValues.reduce((acc, { documentId, ...rest }) => {\n const key = encodeKey(rest);\n const ids = acc[key] || { ...rest, documentIds: [] };\n ids.documentIds.push(documentId);\n return { ...acc, [key]: ids };\n }, {});\n\n // 2. Query ids\n await async.map(\n Object.values(idsByUidAndLocale),\n async ({ uid, locale, documentIds, status }: any) => {\n const findParams = {\n select: ['id', 'documentId', 'locale', 'publishedAt'],\n where: {\n documentId: { $in: documentIds },\n locale: locale || null,\n },\n } as any;\n\n if (hasDraftAndPublish(uid)) {\n findParams.where.publishedAt = status === 'draft' ? null : { $ne: null };\n }\n\n const result = await strapi?.db?.query(uid).findMany(findParams);\n\n // 3. Store result in loadedIds\n result?.forEach(({ documentId, id, locale, publishedAt }: any) => {\n const key = encodeKey({\n documentId,\n uid,\n locale,\n status: publishedAt ? 'published' : 'draft',\n });\n loadedIds.set(key, id);\n });\n }\n );\n\n // 4. Clear toLoadIds\n toLoadIds.clear();\n },\n\n /**\n * Get the entity id for a given document id.\n */\n get(keys: KeyFields) {\n const key = encodeKey({ status: 'published', locale: null, ...keys });\n return loadedIds.get(key);\n },\n\n /**\n * Clear the registry.\n */\n clear() {\n loadedIds.clear();\n toLoadIds.clear();\n },\n };\n};\n\nexport { createIdMap };\n"],"names":["contentTypes","strapi","async","locale"],"mappings":";;;AAGA,MAAM,qBAAqB,CAAC,QAA4B;AAChD,QAAA,QAAQ,OAAO,SAAS,GAAG;AAC1B,SAAAA,YAAA,aAAa,mBAAmB,KAAK;AAC9C;AAYA,MAAM,YAAY,CAAC,QAAa;AAE9B,MAAI,CAAC,mBAAmB,IAAI,GAAG,GAAG;AAChC,WAAO,IAAI;AAAA,EAAA;AAIb,QAAM,OAAO,OAAO,KAAK,GAAG,EAAE,KAAK;AACnC,SAAO,KAAK,IAAI,CAAC,QAAQ,GAAG,GAAG,MAAM,IAAI,GAAG,CAAC,EAAE,EAAE,KAAK,IAAI;AAC5D;AAsBA,MAAM,cAAc,CAAC,EAAE,QAAAC,cAA6C;AAC5D,QAAA,gCAAgB,IAAI;AACpB,QAAA,gCAAgB,IAAI;AAEnB,SAAA;AAAA,IACL;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,IAAI,WAAsB;AAClB,YAAA,MAAM,UAAU,EAAE,QAAQ,aAAa,QAAQ,MAAM,GAAG,WAAW;AAGrE,UAAA,UAAU,IAAI,GAAG,EAAG;AAEpB,UAAA,UAAU,IAAI,GAAG,EAAG;AAGd,gBAAA,IAAI,KAAK,SAAS;AAAA,IAC9B;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAO;AAGX,YAAM,eAAe,MAAM,KAAK,UAAU,QAAQ;AAG5C,YAAA,oBAAoB,aAAa,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW;AACxE,cAAA,MAAM,UAAU,IAAI;AACpB,cAAA,MAAM,IAAI,GAAG,KAAK,EAAE,GAAG,MAAM,aAAa,GAAG;AAC/C,YAAA,YAAY,KAAK,UAAU;AAC/B,eAAO,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI;AAAA,MAC9B,GAAG,EAAE;AAGL,YAAMC,YAAM,MAAA;AAAA,QACV,OAAO,OAAO,iBAAiB;AAAA,QAC/B,OAAO,EAAE,KAAK,QAAQ,aAAa,aAAkB;AACnD,gBAAM,aAAa;AAAA,YACjB,QAAQ,CAAC,MAAM,cAAc,UAAU,aAAa;AAAA,YACpD,OAAO;AAAA,cACL,YAAY,EAAE,KAAK,YAAY;AAAA,cAC/B,QAAQ,UAAU;AAAA,YAAA;AAAA,UAEtB;AAEI,cAAA,mBAAmB,GAAG,GAAG;AAC3B,uBAAW,MAAM,cAAc,WAAW,UAAU,OAAO,EAAE,KAAK,KAAK;AAAA,UAAA;AAGnE,gBAAA,SAAS,MAAMD,SAAQ,IAAI,MAAM,GAAG,EAAE,SAAS,UAAU;AAGvD,kBAAA,QAAQ,CAAC,EAAE,YAAY,IAAI,QAAAE,SAAQ,kBAAuB;AAChE,kBAAM,MAAM,UAAU;AAAA,cACpB;AAAA,cACA;AAAA,cACA,QAAAA;AAAAA,cACA,QAAQ,cAAc,cAAc;AAAA,YAAA,CACrC;AACS,sBAAA,IAAI,KAAK,EAAE;AAAA,UAAA,CACtB;AAAA,QAAA;AAAA,MAEL;AAGA,gBAAU,MAAM;AAAA,IAClB;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,MAAiB;AACb,YAAA,MAAM,UAAU,EAAE,QAAQ,aAAa,QAAQ,MAAM,GAAG,MAAM;AAC7D,aAAA,UAAU,IAAI,GAAG;AAAA,IAC1B;AAAA;AAAA;AAAA;AAAA,IAKA,QAAQ;AACN,gBAAU,MAAM;AAChB,gBAAU,MAAM;AAAA,IAAA;AAAA,EAEpB;AACF;;"}
@@ -1,9 +1,16 @@
1
- import { async } from "@strapi/utils";
1
+ import { async, contentTypes } from "@strapi/utils";
2
+ const hasDraftAndPublish = (uid) => {
3
+ const model = strapi.getModel(uid);
4
+ return contentTypes.hasDraftAndPublish(model);
5
+ };
2
6
  const encodeKey = (obj) => {
7
+ if (!hasDraftAndPublish(obj.uid)) {
8
+ delete obj.status;
9
+ }
3
10
  const keys = Object.keys(obj).sort();
4
11
  return keys.map((key) => `${key}:::${obj[key]}`).join("&&");
5
12
  };
6
- const createIdMap = ({ strapi }) => {
13
+ const createIdMap = ({ strapi: strapi2 }) => {
7
14
  const loadedIds = /* @__PURE__ */ new Map();
8
15
  const toLoadIds = /* @__PURE__ */ new Map();
9
16
  return {
@@ -14,10 +21,8 @@ const createIdMap = ({ strapi }) => {
14
21
  */
15
22
  add(keyFields) {
16
23
  const key = encodeKey({ status: "published", locale: null, ...keyFields });
17
- if (loadedIds.has(key))
18
- return;
19
- if (toLoadIds.has(key))
20
- return;
24
+ if (loadedIds.has(key)) return;
25
+ if (toLoadIds.has(key)) return;
21
26
  toLoadIds.set(key, keyFields);
22
27
  },
23
28
  /**
@@ -38,11 +43,13 @@ const createIdMap = ({ strapi }) => {
38
43
  select: ["id", "documentId", "locale", "publishedAt"],
39
44
  where: {
40
45
  documentId: { $in: documentIds },
41
- locale: locale || null,
42
- publishedAt: status === "draft" ? null : { $ne: null }
46
+ locale: locale || null
43
47
  }
44
48
  };
45
- const result = await strapi?.db?.query(uid).findMany(findParams);
49
+ if (hasDraftAndPublish(uid)) {
50
+ findParams.where.publishedAt = status === "draft" ? null : { $ne: null };
51
+ }
52
+ const result = await strapi2?.db?.query(uid).findMany(findParams);
46
53
  result?.forEach(({ documentId, id, locale: locale2, publishedAt }) => {
47
54
  const key = encodeKey({
48
55
  documentId,
@@ -1 +1 @@
1
- {"version":3,"file":"id-map.mjs","sources":["../../../../src/services/document-service/transform/id-map.ts"],"sourcesContent":["import { Strapi, Entity } from '@strapi/types';\nimport { async } from '@strapi/utils';\n\n/**\n * TODO: Find a better way to encode keys than this\n * This converts an object into a string by joining its keys and values,\n * so it can be used as a key in a Map.\n *\n * @example\n * const obj = { a: 1, b: 2 };\n * const key = encodeKey(obj);\n * ^ \"a:::1&&b:::2\"\n */\nconst encodeKey = (obj: any) => {\n // Sort keys to always keep the same order when encoding\n const keys = Object.keys(obj).sort();\n return keys.map((key) => `${key}:::${obj[key]}`).join('&&');\n};\n\ninterface KeyFields {\n uid: string;\n documentId: Entity.ID;\n locale?: string | null;\n status?: 'draft' | 'published';\n}\n\nexport interface IdMap {\n loadedIds: Map<string, string>;\n toLoadIds: Map<string, KeyFields>;\n // Make the Keys type to be the params of add\n add(keys: KeyFields): void;\n load(): Promise<void>;\n get(keys: KeyFields): string | undefined;\n clear(): void;\n}\n\n/**\n * Holds a registry of document ids and their corresponding entity ids.\n */\nconst createIdMap = ({ strapi }: { strapi: Strapi }): IdMap => {\n const loadedIds = new Map();\n const toLoadIds = new Map();\n\n return {\n loadedIds,\n toLoadIds,\n /**\n * Register a new document id and its corresponding entity id.\n */\n add(keyFields: KeyFields) {\n const key = encodeKey({ status: 'published', locale: null, ...keyFields });\n\n // If the id is already loaded, do nothing\n if (loadedIds.has(key)) return;\n // If the id is already in the toLoadIds, do nothing\n if (toLoadIds.has(key)) return;\n\n // Add the id to the toLoadIds\n toLoadIds.set(key, keyFields);\n },\n\n /**\n * Load all ids from the registry.\n */\n async load() {\n // Document Id to Entry Id queries are batched by its uid and locale\n // TODO: Add publication state too\n const loadIdValues = Array.from(toLoadIds.values());\n\n // 1. Group ids to query together\n const idsByUidAndLocale = loadIdValues.reduce((acc, { documentId, ...rest }) => {\n const key = encodeKey(rest);\n const ids = acc[key] || { ...rest, documentIds: [] };\n ids.documentIds.push(documentId);\n return { ...acc, [key]: ids };\n }, {});\n\n // 2. Query ids\n await async.map(\n Object.values(idsByUidAndLocale),\n async ({ uid, locale, documentIds, status }: any) => {\n const findParams = {\n select: ['id', 'documentId', 'locale', 'publishedAt'],\n where: {\n documentId: { $in: documentIds },\n locale: locale || null,\n publishedAt: status === 'draft' ? null : { $ne: null },\n },\n } as any;\n\n const result = await strapi?.db?.query(uid).findMany(findParams);\n\n // 3. Store result in loadedIds\n result?.forEach(({ documentId, id, locale, publishedAt }: any) => {\n const key = encodeKey({\n documentId,\n uid,\n locale,\n status: publishedAt ? 'published' : 'draft',\n });\n loadedIds.set(key, id);\n });\n }\n );\n\n // 4. Clear toLoadIds\n toLoadIds.clear();\n },\n\n /**\n * Get the entity id for a given document id.\n */\n get(keys: KeyFields) {\n const key = encodeKey({ status: 'published', locale: null, ...keys });\n return loadedIds.get(key);\n },\n\n /**\n * Clear the registry.\n */\n clear() {\n loadedIds.clear();\n toLoadIds.clear();\n },\n };\n};\n\nexport { createIdMap };\n"],"names":["locale"],"mappings":";AAaA,MAAM,YAAY,CAAC,QAAa;AAE9B,QAAM,OAAO,OAAO,KAAK,GAAG,EAAE,KAAK;AACnC,SAAO,KAAK,IAAI,CAAC,QAAQ,GAAG,GAAG,MAAM,IAAI,GAAG,CAAC,EAAE,EAAE,KAAK,IAAI;AAC5D;AAsBA,MAAM,cAAc,CAAC,EAAE,aAAwC;AACvD,QAAA,gCAAgB;AAChB,QAAA,gCAAgB;AAEf,SAAA;AAAA,IACL;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,IAAI,WAAsB;AAClB,YAAA,MAAM,UAAU,EAAE,QAAQ,aAAa,QAAQ,MAAM,GAAG,UAAA,CAAW;AAGrE,UAAA,UAAU,IAAI,GAAG;AAAG;AAEpB,UAAA,UAAU,IAAI,GAAG;AAAG;AAGd,gBAAA,IAAI,KAAK,SAAS;AAAA,IAC9B;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAO;AAGX,YAAM,eAAe,MAAM,KAAK,UAAU,OAAQ,CAAA;AAG5C,YAAA,oBAAoB,aAAa,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW;AACxE,cAAA,MAAM,UAAU,IAAI;AACpB,cAAA,MAAM,IAAI,GAAG,KAAK,EAAE,GAAG,MAAM,aAAa,CAAA;AAC5C,YAAA,YAAY,KAAK,UAAU;AAC/B,eAAO,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI;AAAA,MAC9B,GAAG,CAAE,CAAA;AAGL,YAAM,MAAM;AAAA,QACV,OAAO,OAAO,iBAAiB;AAAA,QAC/B,OAAO,EAAE,KAAK,QAAQ,aAAa,aAAkB;AACnD,gBAAM,aAAa;AAAA,YACjB,QAAQ,CAAC,MAAM,cAAc,UAAU,aAAa;AAAA,YACpD,OAAO;AAAA,cACL,YAAY,EAAE,KAAK,YAAY;AAAA,cAC/B,QAAQ,UAAU;AAAA,cAClB,aAAa,WAAW,UAAU,OAAO,EAAE,KAAK,KAAK;AAAA,YACvD;AAAA,UAAA;AAGI,gBAAA,SAAS,MAAM,QAAQ,IAAI,MAAM,GAAG,EAAE,SAAS,UAAU;AAGvD,kBAAA,QAAQ,CAAC,EAAE,YAAY,IAAI,QAAAA,SAAQ,kBAAuB;AAChE,kBAAM,MAAM,UAAU;AAAA,cACpB;AAAA,cACA;AAAA,cACA,QAAAA;AAAAA,cACA,QAAQ,cAAc,cAAc;AAAA,YAAA,CACrC;AACS,sBAAA,IAAI,KAAK,EAAE;AAAA,UAAA,CACtB;AAAA,QACH;AAAA,MAAA;AAIF,gBAAU,MAAM;AAAA,IAClB;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,MAAiB;AACb,YAAA,MAAM,UAAU,EAAE,QAAQ,aAAa,QAAQ,MAAM,GAAG,KAAA,CAAM;AAC7D,aAAA,UAAU,IAAI,GAAG;AAAA,IAC1B;AAAA;AAAA;AAAA;AAAA,IAKA,QAAQ;AACN,gBAAU,MAAM;AAChB,gBAAU,MAAM;AAAA,IAClB;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"id-map.mjs","sources":["../../../../src/services/document-service/transform/id-map.ts"],"sourcesContent":["import { Core, Data, UID } from '@strapi/types';\nimport { async, contentTypes } from '@strapi/utils';\n\nconst hasDraftAndPublish = (uid: UID.CollectionType) => {\n const model = strapi.getModel(uid);\n return contentTypes.hasDraftAndPublish(model);\n};\n\n/**\n * TODO: Find a better way to encode keys than this\n * This converts an object into a string by joining its keys and values,\n * so it can be used as a key in a Map.\n *\n * @example\n * const obj = { a: 1, b: 2 };\n * const key = encodeKey(obj);\n * ^ \"a:::1&&b:::2\"\n */\nconst encodeKey = (obj: any) => {\n // Ignore status field for models without draft and publish\n if (!hasDraftAndPublish(obj.uid)) {\n delete obj.status;\n }\n\n // Sort keys to always keep the same order when encoding\n const keys = Object.keys(obj).sort();\n return keys.map((key) => `${key}:::${obj[key]}`).join('&&');\n};\n\ninterface KeyFields {\n uid: string;\n documentId: Data.ID;\n locale?: string | null;\n status?: 'draft' | 'published';\n}\n\nexport interface IdMap {\n loadedIds: Map<string, string>;\n toLoadIds: Map<string, KeyFields>;\n // Make the Keys type to be the params of add\n add(keys: KeyFields): void;\n load(): Promise<void>;\n get(keys: KeyFields): string | undefined;\n clear(): void;\n}\n\n/**\n * Holds a registry of document ids and their corresponding entity ids.\n */\nconst createIdMap = ({ strapi }: { strapi: Core.Strapi }): IdMap => {\n const loadedIds = new Map();\n const toLoadIds = new Map();\n\n return {\n loadedIds,\n toLoadIds,\n /**\n * Register a new document id and its corresponding entity id.\n */\n add(keyFields: KeyFields) {\n const key = encodeKey({ status: 'published', locale: null, ...keyFields });\n\n // If the id is already loaded, do nothing\n if (loadedIds.has(key)) return;\n // If the id is already in the toLoadIds, do nothing\n if (toLoadIds.has(key)) return;\n\n // Add the id to the toLoadIds\n toLoadIds.set(key, keyFields);\n },\n\n /**\n * Load all ids from the registry.\n */\n async load() {\n // Document Id to Entry Id queries are batched by its uid and locale\n // TODO: Add publication state too\n const loadIdValues = Array.from(toLoadIds.values());\n\n // 1. Group ids to query together\n const idsByUidAndLocale = loadIdValues.reduce((acc, { documentId, ...rest }) => {\n const key = encodeKey(rest);\n const ids = acc[key] || { ...rest, documentIds: [] };\n ids.documentIds.push(documentId);\n return { ...acc, [key]: ids };\n }, {});\n\n // 2. Query ids\n await async.map(\n Object.values(idsByUidAndLocale),\n async ({ uid, locale, documentIds, status }: any) => {\n const findParams = {\n select: ['id', 'documentId', 'locale', 'publishedAt'],\n where: {\n documentId: { $in: documentIds },\n locale: locale || null,\n },\n } as any;\n\n if (hasDraftAndPublish(uid)) {\n findParams.where.publishedAt = status === 'draft' ? null : { $ne: null };\n }\n\n const result = await strapi?.db?.query(uid).findMany(findParams);\n\n // 3. Store result in loadedIds\n result?.forEach(({ documentId, id, locale, publishedAt }: any) => {\n const key = encodeKey({\n documentId,\n uid,\n locale,\n status: publishedAt ? 'published' : 'draft',\n });\n loadedIds.set(key, id);\n });\n }\n );\n\n // 4. Clear toLoadIds\n toLoadIds.clear();\n },\n\n /**\n * Get the entity id for a given document id.\n */\n get(keys: KeyFields) {\n const key = encodeKey({ status: 'published', locale: null, ...keys });\n return loadedIds.get(key);\n },\n\n /**\n * Clear the registry.\n */\n clear() {\n loadedIds.clear();\n toLoadIds.clear();\n },\n };\n};\n\nexport { createIdMap };\n"],"names":["strapi","locale"],"mappings":";AAGA,MAAM,qBAAqB,CAAC,QAA4B;AAChD,QAAA,QAAQ,OAAO,SAAS,GAAG;AAC1B,SAAA,aAAa,mBAAmB,KAAK;AAC9C;AAYA,MAAM,YAAY,CAAC,QAAa;AAE9B,MAAI,CAAC,mBAAmB,IAAI,GAAG,GAAG;AAChC,WAAO,IAAI;AAAA,EAAA;AAIb,QAAM,OAAO,OAAO,KAAK,GAAG,EAAE,KAAK;AACnC,SAAO,KAAK,IAAI,CAAC,QAAQ,GAAG,GAAG,MAAM,IAAI,GAAG,CAAC,EAAE,EAAE,KAAK,IAAI;AAC5D;AAsBA,MAAM,cAAc,CAAC,EAAE,QAAAA,cAA6C;AAC5D,QAAA,gCAAgB,IAAI;AACpB,QAAA,gCAAgB,IAAI;AAEnB,SAAA;AAAA,IACL;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,IAAI,WAAsB;AAClB,YAAA,MAAM,UAAU,EAAE,QAAQ,aAAa,QAAQ,MAAM,GAAG,WAAW;AAGrE,UAAA,UAAU,IAAI,GAAG,EAAG;AAEpB,UAAA,UAAU,IAAI,GAAG,EAAG;AAGd,gBAAA,IAAI,KAAK,SAAS;AAAA,IAC9B;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAO;AAGX,YAAM,eAAe,MAAM,KAAK,UAAU,QAAQ;AAG5C,YAAA,oBAAoB,aAAa,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW;AACxE,cAAA,MAAM,UAAU,IAAI;AACpB,cAAA,MAAM,IAAI,GAAG,KAAK,EAAE,GAAG,MAAM,aAAa,GAAG;AAC/C,YAAA,YAAY,KAAK,UAAU;AAC/B,eAAO,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI;AAAA,MAC9B,GAAG,EAAE;AAGL,YAAM,MAAM;AAAA,QACV,OAAO,OAAO,iBAAiB;AAAA,QAC/B,OAAO,EAAE,KAAK,QAAQ,aAAa,aAAkB;AACnD,gBAAM,aAAa;AAAA,YACjB,QAAQ,CAAC,MAAM,cAAc,UAAU,aAAa;AAAA,YACpD,OAAO;AAAA,cACL,YAAY,EAAE,KAAK,YAAY;AAAA,cAC/B,QAAQ,UAAU;AAAA,YAAA;AAAA,UAEtB;AAEI,cAAA,mBAAmB,GAAG,GAAG;AAC3B,uBAAW,MAAM,cAAc,WAAW,UAAU,OAAO,EAAE,KAAK,KAAK;AAAA,UAAA;AAGnE,gBAAA,SAAS,MAAMA,SAAQ,IAAI,MAAM,GAAG,EAAE,SAAS,UAAU;AAGvD,kBAAA,QAAQ,CAAC,EAAE,YAAY,IAAI,QAAAC,SAAQ,kBAAuB;AAChE,kBAAM,MAAM,UAAU;AAAA,cACpB;AAAA,cACA;AAAA,cACA,QAAAA;AAAAA,cACA,QAAQ,cAAc,cAAc;AAAA,YAAA,CACrC;AACS,sBAAA,IAAI,KAAK,EAAE;AAAA,UAAA,CACtB;AAAA,QAAA;AAAA,MAEL;AAGA,gBAAU,MAAM;AAAA,IAClB;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,MAAiB;AACb,YAAA,MAAM,UAAU,EAAE,QAAQ,aAAa,QAAQ,MAAM,GAAG,MAAM;AAC7D,aAAA,UAAU,IAAI,GAAG;AAAA,IAC1B;AAAA;AAAA;AAAA;AAAA,IAKA,QAAQ;AACN,gBAAU,MAAM;AAChB,gBAAU,MAAM;AAAA,IAAA;AAAA,EAEpB;AACF;"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="lodash" />
2
- import { Common, Documents } from '@strapi/types';
3
- declare const curriedTransformParamsDocumentId: import("lodash").CurriedFunction2<Common.UID.Schema, Documents.Params.All, Promise<Documents.Params.All>>;
2
+ import { UID, Modules } from '@strapi/types';
3
+ declare const curriedTransformParamsDocumentId: import("lodash").CurriedFunction2<UID.Schema, Modules.Documents.Params.All, Promise<Modules.Documents.Params.All>>;
4
4
  export { curriedTransformParamsDocumentId as transformParamsDocumentId };
5
5
  //# sourceMappingURL=id-transform.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"id-transform.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/id-transform.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AA0ClD,QAAA,MAAM,gCAAgC,2GAAmC,CAAC;AAE1E,OAAO,EAAE,gCAAgC,IAAI,yBAAyB,EAAE,CAAC"}
1
+ {"version":3,"file":"id-transform.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/id-transform.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AA0C7C,QAAA,MAAM,gCAAgC,oHAAmC,CAAC;AAE1E,OAAO,EAAE,gCAAgC,IAAI,yBAAyB,EAAE,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 data = require("./data.js");
5
5
  const fields = require("./fields.js");
6
6
  const populate = require("./populate.js");
@@ -28,6 +28,6 @@ async function transformParamsDocumentId(uid, query) {
28
28
  populate: populate$1
29
29
  };
30
30
  }
31
- const curriedTransformParamsDocumentId = _.curry(transformParamsDocumentId);
31
+ const curriedTransformParamsDocumentId = fp.curry(transformParamsDocumentId);
32
32
  exports.transformParamsDocumentId = curriedTransformParamsDocumentId;
33
33
  //# sourceMappingURL=id-transform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"id-transform.js","sources":["../../../../src/services/document-service/transform/id-transform.ts"],"sourcesContent":["import { curry } from 'lodash/fp';\n\nimport { Common, Documents } from '@strapi/types';\n\nimport { transformData } from './data';\nimport { transformFields } from './fields';\nimport { transformPopulate } from './populate';\n\n/**\n * Transform input of a query to map document ids to entity ids.\n */\nasync function transformParamsDocumentId(\n uid: Common.UID.Schema,\n query: Documents.Params.All\n): Promise<Documents.Params.All> {\n // Transform relational documentIds to entity ids\n let data = query.data;\n if (query.data) {\n data = await transformData(query.data, {\n locale: query.locale,\n status: query.status,\n uid,\n });\n }\n\n // Make sure documentId is always present in the response\n let fields = query.fields;\n if (query.fields) {\n fields = transformFields(query.fields) as typeof query.fields;\n }\n\n let populate = query.populate;\n if (query.populate) {\n populate = (await transformPopulate(query.populate, { uid })) as typeof query.populate;\n }\n\n return {\n ...query,\n data,\n fields,\n populate,\n };\n}\n\nconst curriedTransformParamsDocumentId = curry(transformParamsDocumentId);\n\nexport { curriedTransformParamsDocumentId as transformParamsDocumentId };\n"],"names":["data","transformData","fields","transformFields","populate","transformPopulate","curry"],"mappings":";;;;;;AAWA,eAAe,0BACb,KACA,OAC+B;AAE/B,MAAIA,SAAO,MAAM;AACjB,MAAI,MAAM,MAAM;AACPA,aAAA,MAAMC,KAAAA,cAAc,MAAM,MAAM;AAAA,MACrC,QAAQ,MAAM;AAAA,MACd,QAAQ,MAAM;AAAA,MACd;AAAA,IAAA,CACD;AAAA,EACH;AAGA,MAAIC,WAAS,MAAM;AACnB,MAAI,MAAM,QAAQ;AACPA,eAAAC,OAAA,gBAAgB,MAAM,MAAM;AAAA,EACvC;AAEA,MAAIC,aAAW,MAAM;AACrB,MAAI,MAAM,UAAU;AAClBA,iBAAY,MAAMC,SAAAA,kBAAkB,MAAM,UAAU,EAAE,KAAK;AAAA,EAC7D;AAEO,SAAA;AAAA,IACL,GAAG;AAAA,IAAA,MACHL;AAAAA,IAAA,QACAE;AAAAA,IAAA,UACAE;AAAAA,EAAA;AAEJ;AAEM,MAAA,mCAAmCE,QAAM,yBAAyB;;"}
1
+ {"version":3,"file":"id-transform.js","sources":["../../../../src/services/document-service/transform/id-transform.ts"],"sourcesContent":["import { curry } from 'lodash/fp';\n\nimport { UID, Modules } from '@strapi/types';\n\nimport { transformData } from './data';\nimport { transformFields } from './fields';\nimport { transformPopulate } from './populate';\n\n/**\n * Transform input of a query to map document ids to entity ids.\n */\nasync function transformParamsDocumentId(\n uid: UID.Schema,\n query: Modules.Documents.Params.All\n): Promise<Modules.Documents.Params.All> {\n // Transform relational documentIds to entity ids\n let data = query.data;\n if (query.data) {\n data = await transformData(query.data, {\n locale: query.locale,\n status: query.status,\n uid,\n });\n }\n\n // Make sure documentId is always present in the response\n let fields = query.fields;\n if (query.fields) {\n fields = transformFields(query.fields) as typeof query.fields;\n }\n\n let populate = query.populate;\n if (query.populate) {\n populate = (await transformPopulate(query.populate, { uid })) as typeof query.populate;\n }\n\n return {\n ...query,\n data,\n fields,\n populate,\n };\n}\n\nconst curriedTransformParamsDocumentId = curry(transformParamsDocumentId);\n\nexport { curriedTransformParamsDocumentId as transformParamsDocumentId };\n"],"names":["data","transformData","fields","transformFields","populate","transformPopulate","curry"],"mappings":";;;;;;AAWA,eAAe,0BACb,KACA,OACuC;AAEvC,MAAIA,SAAO,MAAM;AACjB,MAAI,MAAM,MAAM;AACPA,aAAA,MAAMC,KAAAA,cAAc,MAAM,MAAM;AAAA,MACrC,QAAQ,MAAM;AAAA,MACd,QAAQ,MAAM;AAAA,MACd;AAAA,IAAA,CACD;AAAA,EAAA;AAIH,MAAIC,WAAS,MAAM;AACnB,MAAI,MAAM,QAAQ;AACPA,eAAAC,OAAAA,gBAAgB,MAAM,MAAM;AAAA,EAAA;AAGvC,MAAIC,aAAW,MAAM;AACrB,MAAI,MAAM,UAAU;AAClBA,iBAAY,MAAMC,SAAAA,kBAAkB,MAAM,UAAU,EAAE,KAAK;AAAA,EAAA;AAGtD,SAAA;AAAA,IACL,GAAG;AAAA,IAAA,MACHL;AAAAA,IAAA,QACAE;AAAAA,IACAE,UAAAA;AAAAA,EACF;AACF;AAEM,MAAA,mCAAmCE,SAAM,yBAAyB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"id-transform.mjs","sources":["../../../../src/services/document-service/transform/id-transform.ts"],"sourcesContent":["import { curry } from 'lodash/fp';\n\nimport { Common, Documents } from '@strapi/types';\n\nimport { transformData } from './data';\nimport { transformFields } from './fields';\nimport { transformPopulate } from './populate';\n\n/**\n * Transform input of a query to map document ids to entity ids.\n */\nasync function transformParamsDocumentId(\n uid: Common.UID.Schema,\n query: Documents.Params.All\n): Promise<Documents.Params.All> {\n // Transform relational documentIds to entity ids\n let data = query.data;\n if (query.data) {\n data = await transformData(query.data, {\n locale: query.locale,\n status: query.status,\n uid,\n });\n }\n\n // Make sure documentId is always present in the response\n let fields = query.fields;\n if (query.fields) {\n fields = transformFields(query.fields) as typeof query.fields;\n }\n\n let populate = query.populate;\n if (query.populate) {\n populate = (await transformPopulate(query.populate, { uid })) as typeof query.populate;\n }\n\n return {\n ...query,\n data,\n fields,\n populate,\n };\n}\n\nconst curriedTransformParamsDocumentId = curry(transformParamsDocumentId);\n\nexport { curriedTransformParamsDocumentId as transformParamsDocumentId };\n"],"names":[],"mappings":";;;;AAWA,eAAe,0BACb,KACA,OAC+B;AAE/B,MAAI,OAAO,MAAM;AACjB,MAAI,MAAM,MAAM;AACP,WAAA,MAAM,cAAc,MAAM,MAAM;AAAA,MACrC,QAAQ,MAAM;AAAA,MACd,QAAQ,MAAM;AAAA,MACd;AAAA,IAAA,CACD;AAAA,EACH;AAGA,MAAI,SAAS,MAAM;AACnB,MAAI,MAAM,QAAQ;AACP,aAAA,gBAAgB,MAAM,MAAM;AAAA,EACvC;AAEA,MAAI,WAAW,MAAM;AACrB,MAAI,MAAM,UAAU;AAClB,eAAY,MAAM,kBAAkB,MAAM,UAAU,EAAE,KAAK;AAAA,EAC7D;AAEO,SAAA;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEM,MAAA,mCAAmC,MAAM,yBAAyB;"}
1
+ {"version":3,"file":"id-transform.mjs","sources":["../../../../src/services/document-service/transform/id-transform.ts"],"sourcesContent":["import { curry } from 'lodash/fp';\n\nimport { UID, Modules } from '@strapi/types';\n\nimport { transformData } from './data';\nimport { transformFields } from './fields';\nimport { transformPopulate } from './populate';\n\n/**\n * Transform input of a query to map document ids to entity ids.\n */\nasync function transformParamsDocumentId(\n uid: UID.Schema,\n query: Modules.Documents.Params.All\n): Promise<Modules.Documents.Params.All> {\n // Transform relational documentIds to entity ids\n let data = query.data;\n if (query.data) {\n data = await transformData(query.data, {\n locale: query.locale,\n status: query.status,\n uid,\n });\n }\n\n // Make sure documentId is always present in the response\n let fields = query.fields;\n if (query.fields) {\n fields = transformFields(query.fields) as typeof query.fields;\n }\n\n let populate = query.populate;\n if (query.populate) {\n populate = (await transformPopulate(query.populate, { uid })) as typeof query.populate;\n }\n\n return {\n ...query,\n data,\n fields,\n populate,\n };\n}\n\nconst curriedTransformParamsDocumentId = curry(transformParamsDocumentId);\n\nexport { curriedTransformParamsDocumentId as transformParamsDocumentId };\n"],"names":[],"mappings":";;;;AAWA,eAAe,0BACb,KACA,OACuC;AAEvC,MAAI,OAAO,MAAM;AACjB,MAAI,MAAM,MAAM;AACP,WAAA,MAAM,cAAc,MAAM,MAAM;AAAA,MACrC,QAAQ,MAAM;AAAA,MACd,QAAQ,MAAM;AAAA,MACd;AAAA,IAAA,CACD;AAAA,EAAA;AAIH,MAAI,SAAS,MAAM;AACnB,MAAI,MAAM,QAAQ;AACP,aAAA,gBAAgB,MAAM,MAAM;AAAA,EAAA;AAGvC,MAAI,WAAW,MAAM;AACrB,MAAI,MAAM,UAAU;AAClB,eAAY,MAAM,kBAAkB,MAAM,UAAU,EAAE,KAAK;AAAA,EAAA;AAGtD,SAAA;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEM,MAAA,mCAAmC,MAAM,yBAAyB;"}
@@ -1,6 +1,6 @@
1
- import type { Common } from '@strapi/types';
1
+ import type { UID } from '@strapi/types';
2
2
  import { type Data } from './types';
3
3
  export declare const transformPopulate: (data: Data, opts: {
4
- uid: Common.UID.Schema;
4
+ uid: UID.Schema;
5
5
  }) => Promise<unknown>;
6
6
  //# sourceMappingURL=populate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"populate.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/populate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AAGpC,eAAO,MAAM,iBAAiB,SAAgB,IAAI,QAAQ;IAAE,GAAG,EAAE,OAAO,GAAG,CAAC,MAAM,CAAA;CAAE,qBAqBnF,CAAC"}
1
+ {"version":3,"file":"populate.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/populate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AAGpC,eAAO,MAAM,iBAAiB,SAAgB,IAAI,QAAQ;IAAE,GAAG,EAAE,IAAI,MAAM,CAAA;CAAE,qBAqB5E,CAAC"}
@@ -13,7 +13,7 @@ const transformPopulate = async (data, opts) => {
13
13
  }
14
14
  set(key, value);
15
15
  },
16
- { schema: strapi.getModel(opts.uid) },
16
+ { schema: strapi.getModel(opts.uid), getModel: strapi.getModel.bind(strapi) },
17
17
  data
18
18
  );
19
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"populate.js","sources":["../../../../src/services/document-service/transform/populate.ts"],"sourcesContent":["import { traverse } from '@strapi/utils';\nimport type { Common } from '@strapi/types';\n\nimport { type Data } from './types';\nimport { transformFields } from './fields';\n\nexport const transformPopulate = async (data: Data, opts: { uid: Common.UID.Schema }) => {\n return traverse.traverseQueryPopulate(\n async ({ attribute, key, value }, { set }) => {\n if (!value || typeof value !== 'object' || attribute?.type !== 'relation') {\n return;\n }\n\n /*\n If the attribute is a relation\n Look for fields in the value\n and apply the relevant transformation to these objects\n */\n if ('fields' in value && Array.isArray(value.fields)) {\n value.fields = transformFields(value.fields);\n }\n\n set(key, value);\n },\n { schema: strapi.getModel(opts.uid) },\n data\n );\n};\n"],"names":["traverse","transformFields"],"mappings":";;;;AAMa,MAAA,oBAAoB,OAAO,MAAY,SAAqC;AACvF,SAAOA,YAAS,SAAA;AAAA,IACd,OAAO,EAAE,WAAW,KAAK,SAAS,EAAE,UAAU;AAC5C,UAAI,CAAC,SAAS,OAAO,UAAU,YAAY,WAAW,SAAS,YAAY;AACzE;AAAA,MACF;AAOA,UAAI,YAAY,SAAS,MAAM,QAAQ,MAAM,MAAM,GAAG;AAC9C,cAAA,SAASC,OAAAA,gBAAgB,MAAM,MAAM;AAAA,MAC7C;AAEA,UAAI,KAAK,KAAK;AAAA,IAChB;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,KAAK,GAAG,EAAE;AAAA,IACpC;AAAA,EAAA;AAEJ;;"}
1
+ {"version":3,"file":"populate.js","sources":["../../../../src/services/document-service/transform/populate.ts"],"sourcesContent":["import { traverse } from '@strapi/utils';\nimport type { UID } from '@strapi/types';\n\nimport { type Data } from './types';\nimport { transformFields } from './fields';\n\nexport const transformPopulate = async (data: Data, opts: { uid: UID.Schema }) => {\n return traverse.traverseQueryPopulate(\n async ({ attribute, key, value }, { set }) => {\n if (!value || typeof value !== 'object' || attribute?.type !== 'relation') {\n return;\n }\n\n /*\n If the attribute is a relation\n Look for fields in the value\n and apply the relevant transformation to these objects\n */\n if ('fields' in value && Array.isArray(value.fields)) {\n value.fields = transformFields(value.fields);\n }\n\n set(key, value);\n },\n { schema: strapi.getModel(opts.uid), getModel: strapi.getModel.bind(strapi) },\n data\n );\n};\n"],"names":["traverse","transformFields"],"mappings":";;;;AAMa,MAAA,oBAAoB,OAAO,MAAY,SAA8B;AAChF,SAAOA,YAAS,SAAA;AAAA,IACd,OAAO,EAAE,WAAW,KAAK,SAAS,EAAE,UAAU;AAC5C,UAAI,CAAC,SAAS,OAAO,UAAU,YAAY,WAAW,SAAS,YAAY;AACzE;AAAA,MAAA;AAQF,UAAI,YAAY,SAAS,MAAM,QAAQ,MAAM,MAAM,GAAG;AAC9C,cAAA,SAASC,uBAAgB,MAAM,MAAM;AAAA,MAAA;AAG7C,UAAI,KAAK,KAAK;AAAA,IAChB;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,KAAK,GAAG,GAAG,UAAU,OAAO,SAAS,KAAK,MAAM,EAAE;AAAA,IAC5E;AAAA,EACF;AACF;;"}
@@ -11,7 +11,7 @@ const transformPopulate = async (data, opts) => {
11
11
  }
12
12
  set(key, value);
13
13
  },
14
- { schema: strapi.getModel(opts.uid) },
14
+ { schema: strapi.getModel(opts.uid), getModel: strapi.getModel.bind(strapi) },
15
15
  data
16
16
  );
17
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"populate.mjs","sources":["../../../../src/services/document-service/transform/populate.ts"],"sourcesContent":["import { traverse } from '@strapi/utils';\nimport type { Common } from '@strapi/types';\n\nimport { type Data } from './types';\nimport { transformFields } from './fields';\n\nexport const transformPopulate = async (data: Data, opts: { uid: Common.UID.Schema }) => {\n return traverse.traverseQueryPopulate(\n async ({ attribute, key, value }, { set }) => {\n if (!value || typeof value !== 'object' || attribute?.type !== 'relation') {\n return;\n }\n\n /*\n If the attribute is a relation\n Look for fields in the value\n and apply the relevant transformation to these objects\n */\n if ('fields' in value && Array.isArray(value.fields)) {\n value.fields = transformFields(value.fields);\n }\n\n set(key, value);\n },\n { schema: strapi.getModel(opts.uid) },\n data\n );\n};\n"],"names":[],"mappings":";;AAMa,MAAA,oBAAoB,OAAO,MAAY,SAAqC;AACvF,SAAO,SAAS;AAAA,IACd,OAAO,EAAE,WAAW,KAAK,SAAS,EAAE,UAAU;AAC5C,UAAI,CAAC,SAAS,OAAO,UAAU,YAAY,WAAW,SAAS,YAAY;AACzE;AAAA,MACF;AAOA,UAAI,YAAY,SAAS,MAAM,QAAQ,MAAM,MAAM,GAAG;AAC9C,cAAA,SAAS,gBAAgB,MAAM,MAAM;AAAA,MAC7C;AAEA,UAAI,KAAK,KAAK;AAAA,IAChB;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,KAAK,GAAG,EAAE;AAAA,IACpC;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"populate.mjs","sources":["../../../../src/services/document-service/transform/populate.ts"],"sourcesContent":["import { traverse } from '@strapi/utils';\nimport type { UID } from '@strapi/types';\n\nimport { type Data } from './types';\nimport { transformFields } from './fields';\n\nexport const transformPopulate = async (data: Data, opts: { uid: UID.Schema }) => {\n return traverse.traverseQueryPopulate(\n async ({ attribute, key, value }, { set }) => {\n if (!value || typeof value !== 'object' || attribute?.type !== 'relation') {\n return;\n }\n\n /*\n If the attribute is a relation\n Look for fields in the value\n and apply the relevant transformation to these objects\n */\n if ('fields' in value && Array.isArray(value.fields)) {\n value.fields = transformFields(value.fields);\n }\n\n set(key, value);\n },\n { schema: strapi.getModel(opts.uid), getModel: strapi.getModel.bind(strapi) },\n data\n );\n};\n"],"names":[],"mappings":";;AAMa,MAAA,oBAAoB,OAAO,MAAY,SAA8B;AAChF,SAAO,SAAS;AAAA,IACd,OAAO,EAAE,WAAW,KAAK,SAAS,EAAE,UAAU;AAC5C,UAAI,CAAC,SAAS,OAAO,UAAU,YAAY,WAAW,SAAS,YAAY;AACzE;AAAA,MAAA;AAQF,UAAI,YAAY,SAAS,MAAM,QAAQ,MAAM,MAAM,GAAG;AAC9C,cAAA,SAAS,gBAAgB,MAAM,MAAM;AAAA,MAAA;AAG7C,UAAI,KAAK,KAAK;AAAA,IAChB;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,KAAK,GAAG,GAAG,UAAU,OAAO,SAAS,KAAK,MAAM,EAAE;AAAA,IAC5E;AAAA,EACF;AACF;"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="lodash" />
2
+ import type { UID } from '@strapi/types';
3
+ declare const transformParamsToQuery: import("lodash").CurriedFunction2<UID.Schema, any, any>;
4
+ export { transformParamsToQuery };
5
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/query.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAIzC,QAAA,MAAM,sBAAsB,yDAI1B,CAAC;AAEH,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const fp = require("lodash/fp");
4
+ const transformParamsToQuery = fp.curry((uid, params) => {
5
+ const query = strapi.get("query-params").transform(uid, params);
6
+ return fp.assoc("where", { ...params?.lookup, ...query.where }, query);
7
+ });
8
+ exports.transformParamsToQuery = transformParamsToQuery;
9
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sources":["../../../../src/services/document-service/transform/query.ts"],"sourcesContent":["import type { UID } from '@strapi/types';\n\nimport { curry, assoc } from 'lodash/fp';\n\nconst transformParamsToQuery = curry((uid: UID.Schema, params: any) => {\n const query = strapi.get('query-params').transform(uid, params);\n\n return assoc('where', { ...params?.lookup, ...query.where }, query);\n});\n\nexport { transformParamsToQuery };\n"],"names":["curry","assoc"],"mappings":";;;AAIA,MAAM,yBAAyBA,GAAA,MAAM,CAAC,KAAiB,WAAgB;AACrE,QAAM,QAAQ,OAAO,IAAI,cAAc,EAAE,UAAU,KAAK,MAAM;AAEvD,SAAAC,GAAA,MAAM,SAAS,EAAE,GAAG,QAAQ,QAAQ,GAAG,MAAM,MAAM,GAAG,KAAK;AACpE,CAAC;;"}
@@ -0,0 +1,9 @@
1
+ import { curry, assoc } from "lodash/fp";
2
+ const transformParamsToQuery = curry((uid, params) => {
3
+ const query = strapi.get("query-params").transform(uid, params);
4
+ return assoc("where", { ...params?.lookup, ...query.where }, query);
5
+ });
6
+ export {
7
+ transformParamsToQuery
8
+ };
9
+ //# sourceMappingURL=query.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.mjs","sources":["../../../../src/services/document-service/transform/query.ts"],"sourcesContent":["import type { UID } from '@strapi/types';\n\nimport { curry, assoc } from 'lodash/fp';\n\nconst transformParamsToQuery = curry((uid: UID.Schema, params: any) => {\n const query = strapi.get('query-params').transform(uid, params);\n\n return assoc('where', { ...params?.lookup, ...query.where }, query);\n});\n\nexport { transformParamsToQuery };\n"],"names":[],"mappings":";AAIA,MAAM,yBAAyB,MAAM,CAAC,KAAiB,WAAgB;AACrE,QAAM,QAAQ,OAAO,IAAI,cAAc,EAAE,UAAU,KAAK,MAAM;AAEvD,SAAA,MAAM,SAAS,EAAE,GAAG,QAAQ,QAAQ,GAAG,MAAM,MAAM,GAAG,KAAK;AACpE,CAAC;"}
@@ -1,13 +1,14 @@
1
- import { Common } from '@strapi/types';
1
+ import { UID } from '@strapi/types';
2
2
  import { IdMap } from '../../id-map';
3
+ interface Options {
4
+ uid: UID.Schema;
5
+ locale?: string | null;
6
+ status?: 'draft' | 'published';
7
+ }
3
8
  /**
4
- * Iterate over all attributes of a Data object and extract all relational document ids.
9
+ * Iterate over all relations of a data object and extract all relational document ids.
5
10
  * Those will later be transformed to entity ids.
6
11
  */
7
- declare const extractDataIds: (idMap: IdMap, data: Record<string, any>, opts: {
8
- uid: Common.UID.Schema;
9
- locale?: string | null;
10
- status?: 'draft' | 'published';
11
- }) => Promise<import("@strapi/utils/dist/types").Data>;
12
+ declare const extractDataIds: (idMap: IdMap, data: Record<string, any>, source: Options) => Promise<import("@strapi/utils/dist/types").Data>;
12
13
  export { extractDataIds };
13
14
  //# sourceMappingURL=data-ids.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-ids.d.ts","sourceRoot":"","sources":["../../../../../../src/services/document-service/transform/relations/extract/data-ids.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,MAAM,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AA4ErC;;;GAGG;AACH,QAAA,MAAM,cAAc,UACX,KAAK,QACN,OAAO,MAAM,EAAE,GAAG,CAAC,QACnB;IAAE,GAAG,EAAE,OAAO,GAAG,CAAC,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAAA;CAAE,qDAwCzF,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"data-ids.d.ts","sourceRoot":"","sources":["../../../../../../src/services/document-service/transform/relations/extract/data-ids.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAQrC,UAAU,OAAO;IACf,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;CAChC;AA8BD;;;GAGG;AACH,QAAA,MAAM,cAAc,UAAW,KAAK,QAAQ,OAAO,MAAM,EAAE,GAAG,CAAC,UAAU,OAAO,qDA2C/E,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -1,89 +1,63 @@
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
- const data = require("../utils/data.js");
6
5
  const i18n = require("../utils/i18n.js");
7
6
  const dp = require("../utils/dp.js");
8
- const handlePrimitive = (relation) => {
9
- if (!relation) {
10
- return [];
11
- }
12
- if (data.isShortHand(relation)) {
13
- return [{ documentId: relation }];
14
- }
15
- if (data.isLongHand(relation)) {
16
- if ("documentId" in relation) {
17
- return [
18
- { documentId: relation.documentId, locale: relation.locale, status: relation.status }
19
- ];
20
- }
21
- return [];
22
- }
23
- if (Array.isArray(relation)) {
24
- return relation.map((item) => data.isShortHand(item) ? { documentId: item } : item);
25
- }
26
- return [];
27
- };
28
- const extractRelationIds = (relation) => {
29
- const ids = handlePrimitive(relation);
30
- if (!_.isObject(relation))
31
- return ids;
32
- if ("set" in relation)
33
- ids.push(...handlePrimitive(relation.set));
34
- if ("disconnect" in relation)
35
- ids.push(...handlePrimitive(relation.disconnect));
36
- if ("connect" in relation) {
37
- if (!relation.connect)
38
- return [];
39
- ids.push(...handlePrimitive(relation.connect));
40
- const connect = Array.isArray(relation.connect) ? relation.connect : [relation.connect];
41
- connect.forEach((relation2) => {
42
- if (data.isShortHand(relation2) || !("position" in relation2))
43
- return;
44
- const { position } = relation2;
45
- if (position?.before) {
46
- ids.push(...handlePrimitive({ ...position, documentId: position.before }));
47
- }
48
- if (position?.after) {
49
- ids.push(...handlePrimitive({ ...position, documentId: position.after }));
50
- }
7
+ const mapRelation = require("../utils/map-relation.js");
8
+ const { isPolymorphic } = strapiUtils.relations;
9
+ const addRelationDocId = fp.curry(
10
+ (idMap, source, targetUid, relation) => {
11
+ const targetLocale = i18n.getRelationTargetLocale(relation, {
12
+ targetUid,
13
+ sourceUid: source.uid,
14
+ sourceLocale: source.locale
15
+ });
16
+ const targetStatus = dp.getRelationTargetStatus(relation, {
17
+ targetUid,
18
+ sourceUid: source.uid,
19
+ sourceStatus: source.status
20
+ });
21
+ targetStatus.forEach((status) => {
22
+ idMap.add({
23
+ uid: targetUid,
24
+ documentId: relation.documentId,
25
+ locale: targetLocale,
26
+ status
27
+ });
51
28
  });
52
29
  }
53
- return ids;
54
- };
55
- const extractDataIds = (idMap, data2, opts) => {
56
- return strapiUtils.traverseEntity(
57
- ({ value, attribute }) => {
58
- if (attribute.type === "relation") {
59
- const extractedIds = extractRelationIds(value);
60
- const target = attribute.target;
61
- if (!target)
62
- return;
63
- extractedIds.forEach((relation) => {
64
- const targetLocale = i18n.getRelationTargetLocale(relation, {
65
- targetUid: target,
66
- sourceUid: opts.uid,
67
- sourceLocale: opts.locale
68
- });
69
- const targetStatus = dp.getRelationTargetStatus(relation, {
70
- targetUid: target,
71
- sourceUid: opts.uid,
72
- sourceStatus: opts.status
73
- });
74
- targetStatus.forEach((status) => {
75
- idMap.add({
76
- uid: target,
77
- documentId: relation.documentId,
78
- locale: targetLocale,
79
- status
80
- });
81
- });
82
- });
30
+ );
31
+ const extractDataIds = (idMap, data, source) => {
32
+ return mapRelation.traverseEntityRelations(
33
+ async ({ attribute, value }) => {
34
+ if (!attribute) {
35
+ return;
83
36
  }
37
+ const isPolymorphicRelation = isPolymorphic(attribute);
38
+ const addDocId = addRelationDocId(idMap, source);
39
+ return mapRelation.mapRelation((relation) => {
40
+ if (!relation || !relation.documentId) {
41
+ return relation;
42
+ }
43
+ const targetUid = isPolymorphicRelation ? relation.__type : attribute.target;
44
+ addDocId(targetUid, relation);
45
+ const position = relation.position;
46
+ let positionTargetUid = targetUid;
47
+ if (isPolymorphicRelation && position?.__type) {
48
+ positionTargetUid = position.__type;
49
+ }
50
+ if (position?.before) {
51
+ addDocId(positionTargetUid, { ...relation, ...position, documentId: position.before });
52
+ }
53
+ if (position?.after) {
54
+ addDocId(positionTargetUid, { ...relation, ...position, documentId: position.after });
55
+ }
56
+ return relation;
57
+ }, value);
84
58
  },
85
- { schema: strapi.getModel(opts.uid) },
86
- data2
59
+ { schema: strapi.getModel(source.uid), getModel: strapi.getModel.bind(strapi) },
60
+ data
87
61
  );
88
62
  };
89
63
  exports.extractDataIds = extractDataIds;
@@ -1 +1 @@
1
- {"version":3,"file":"data-ids.js","sources":["../../../../../../src/services/document-service/transform/relations/extract/data-ids.ts"],"sourcesContent":["import { isObject } from 'lodash/fp';\nimport { EntityService, Attribute, Common } from '@strapi/types';\nimport { traverseEntity } from '@strapi/utils';\nimport { IdMap } from '../../id-map';\nimport { ShortHand, LongHand, LongHandDocument } from '../utils/types';\nimport { isShortHand, isLongHand } from '../utils/data';\nimport { getRelationTargetLocale } from '../utils/i18n';\nimport { getRelationTargetStatus } from '../utils/dp';\n\n/**\n * Get relation ids from primitive representation (id, id[], {id}, {id}[])\n */\nconst handlePrimitive = (\n relation: ShortHand | LongHand | ShortHand[] | LongHand[] | null | undefined | any\n): LongHandDocument[] => {\n if (!relation) {\n return []; // null\n }\n\n if (isShortHand(relation)) {\n return [{ documentId: relation }]; // id\n }\n\n if (isLongHand(relation)) {\n // { documentId, locale? }\n if ('documentId' in relation) {\n return [\n { documentId: relation.documentId, locale: relation.locale, status: relation.status },\n ];\n }\n // { id }\n return [];\n }\n\n if (Array.isArray(relation)) {\n return relation.map((item) => (isShortHand(item) ? { documentId: item } : item)); // id[]\n }\n\n return [];\n};\n\n/**\n * Get all relations document ids from a relation input value\n */\nconst extractRelationIds = <T extends Attribute.RelationKind.Any>(\n relation: EntityService.Params.Attribute.RelationInputValue<T>\n): LongHandDocument[] => {\n const ids = handlePrimitive(relation);\n if (!isObject(relation)) return ids;\n\n if ('set' in relation) ids.push(...handlePrimitive(relation.set)); // set: id[]\n if ('disconnect' in relation) ids.push(...handlePrimitive(relation.disconnect)); // disconnect: id[]\n if ('connect' in relation) {\n // connect: id[] | { id } | ...\n if (!relation.connect) return [];\n ids.push(...handlePrimitive(relation.connect));\n\n // handle positional arguments\n const connect = Array.isArray(relation.connect) ? relation.connect : [relation.connect];\n connect.forEach((relation) => {\n if (isShortHand(relation) || !('position' in relation)) return;\n\n const { position } = relation;\n\n // { connect: { id: id, position: { before: id } } }\n if (position?.before) {\n ids.push(...handlePrimitive({ ...position, documentId: position.before }));\n }\n\n // { connect: { id: id, position: { after: id } } }\n if (position?.after) {\n ids.push(...handlePrimitive({ ...position, documentId: position.after }));\n }\n });\n }\n\n return ids;\n};\n\n/**\n * Iterate over all attributes of a Data object and extract all relational document ids.\n * Those will later be transformed to entity ids.\n */\nconst extractDataIds = (\n idMap: IdMap,\n data: Record<string, any>,\n opts: { uid: Common.UID.Schema; locale?: string | null; status?: 'draft' | 'published' }\n) => {\n return traverseEntity(\n ({ value, attribute }) => {\n // Find relational attributes, and return the document ids\n if (attribute.type === 'relation') {\n const extractedIds = extractRelationIds(value as any);\n\n // TODO: Handle morph relations (they have multiple targets)\n const target = attribute.target;\n if (!target) return;\n\n // If not connecting to any version on disabled d&p, we should connect to both draft and published relations at the same time\n extractedIds.forEach((relation) => {\n const targetLocale = getRelationTargetLocale(relation, {\n targetUid: target as Common.UID.Schema,\n sourceUid: opts.uid,\n sourceLocale: opts.locale,\n });\n\n const targetStatus = getRelationTargetStatus(relation, {\n targetUid: target as Common.UID.Schema,\n sourceUid: opts.uid,\n sourceStatus: opts.status,\n });\n\n targetStatus.forEach((status) => {\n idMap.add({\n uid: target,\n documentId: relation.documentId,\n locale: targetLocale,\n status,\n });\n });\n });\n }\n },\n { schema: strapi.getModel(opts.uid) },\n data\n );\n};\n\nexport { extractDataIds };\n"],"names":["isShortHand","isLongHand","isObject","relation","data","traverseEntity","getRelationTargetLocale","getRelationTargetStatus"],"mappings":";;;;;;;AAYA,MAAM,kBAAkB,CACtB,aACuB;AACvB,MAAI,CAAC,UAAU;AACb,WAAO;EACT;AAEI,MAAAA,KAAAA,YAAY,QAAQ,GAAG;AACzB,WAAO,CAAC,EAAE,YAAY,SAAA,CAAU;AAAA,EAClC;AAEI,MAAAC,KAAAA,WAAW,QAAQ,GAAG;AAExB,QAAI,gBAAgB,UAAU;AACrB,aAAA;AAAA,QACL,EAAE,YAAY,SAAS,YAAY,QAAQ,SAAS,QAAQ,QAAQ,SAAS,OAAO;AAAA,MAAA;AAAA,IAExF;AAEA,WAAO;EACT;AAEI,MAAA,MAAM,QAAQ,QAAQ,GAAG;AACpB,WAAA,SAAS,IAAI,CAAC,SAAUD,KAAA,YAAY,IAAI,IAAI,EAAE,YAAY,KAAK,IAAI,IAAK;AAAA,EACjF;AAEA,SAAO;AACT;AAKA,MAAM,qBAAqB,CACzB,aACuB;AACjB,QAAA,MAAM,gBAAgB,QAAQ;AAChC,MAAA,CAACE,WAAS,QAAQ;AAAU,WAAA;AAEhC,MAAI,SAAS;AAAU,QAAI,KAAK,GAAG,gBAAgB,SAAS,GAAG,CAAC;AAChE,MAAI,gBAAgB;AAAU,QAAI,KAAK,GAAG,gBAAgB,SAAS,UAAU,CAAC;AAC9E,MAAI,aAAa,UAAU;AAEzB,QAAI,CAAC,SAAS;AAAS,aAAO;AAC9B,QAAI,KAAK,GAAG,gBAAgB,SAAS,OAAO,CAAC;AAGvC,UAAA,UAAU,MAAM,QAAQ,SAAS,OAAO,IAAI,SAAS,UAAU,CAAC,SAAS,OAAO;AAC9E,YAAA,QAAQ,CAACC,cAAa;AAC5B,UAAIH,KAAYG,YAAAA,SAAQ,KAAK,EAAE,cAAcA;AAAW;AAElD,YAAA,EAAE,SAAaA,IAAAA;AAGrB,UAAI,UAAU,QAAQ;AAChB,YAAA,KAAK,GAAG,gBAAgB,EAAE,GAAG,UAAU,YAAY,SAAS,OAAQ,CAAA,CAAC;AAAA,MAC3E;AAGA,UAAI,UAAU,OAAO;AACf,YAAA,KAAK,GAAG,gBAAgB,EAAE,GAAG,UAAU,YAAY,SAAS,MAAO,CAAA,CAAC;AAAA,MAC1E;AAAA,IAAA,CACD;AAAA,EACH;AAEO,SAAA;AACT;AAMA,MAAM,iBAAiB,CACrB,OACAC,OACA,SACG;AACI,SAAAC,YAAA;AAAA,IACL,CAAC,EAAE,OAAO,gBAAgB;AAEpB,UAAA,UAAU,SAAS,YAAY;AAC3B,cAAA,eAAe,mBAAmB,KAAY;AAGpD,cAAM,SAAS,UAAU;AACzB,YAAI,CAAC;AAAQ;AAGA,qBAAA,QAAQ,CAAC,aAAa;AAC3B,gBAAA,eAAeC,6BAAwB,UAAU;AAAA,YACrD,WAAW;AAAA,YACX,WAAW,KAAK;AAAA,YAChB,cAAc,KAAK;AAAA,UAAA,CACpB;AAEK,gBAAA,eAAeC,2BAAwB,UAAU;AAAA,YACrD,WAAW;AAAA,YACX,WAAW,KAAK;AAAA,YAChB,cAAc,KAAK;AAAA,UAAA,CACpB;AAEY,uBAAA,QAAQ,CAAC,WAAW;AAC/B,kBAAM,IAAI;AAAA,cACR,KAAK;AAAA,cACL,YAAY,SAAS;AAAA,cACrB,QAAQ;AAAA,cACR;AAAA,YAAA,CACD;AAAA,UAAA,CACF;AAAA,QAAA,CACF;AAAA,MACH;AAAA,IACF;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,KAAK,GAAG,EAAE;AAAA,IACpCH;AAAA,EAAA;AAEJ;;"}
1
+ {"version":3,"file":"data-ids.js","sources":["../../../../../../src/services/document-service/transform/relations/extract/data-ids.ts"],"sourcesContent":["import { curry } from 'lodash/fp';\n\nimport { UID } from '@strapi/types';\nimport { relations } from '@strapi/utils';\nimport { IdMap } from '../../id-map';\nimport { getRelationTargetLocale } from '../utils/i18n';\nimport { getRelationTargetStatus } from '../utils/dp';\nimport { mapRelation, traverseEntityRelations } from '../utils/map-relation';\nimport { LongHandDocument } from '../utils/types';\n\nconst { isPolymorphic } = relations;\n\ninterface Options {\n uid: UID.Schema;\n locale?: string | null;\n status?: 'draft' | 'published';\n}\n\n/**\n * Load a relation documentId into the idMap.\n */\nconst addRelationDocId = curry(\n (idMap: IdMap, source: Options, targetUid: UID.Schema, relation: LongHandDocument) => {\n const targetLocale = getRelationTargetLocale(relation, {\n targetUid,\n sourceUid: source.uid,\n sourceLocale: source.locale,\n });\n\n const targetStatus = getRelationTargetStatus(relation, {\n targetUid,\n sourceUid: source.uid,\n sourceStatus: source.status,\n });\n\n targetStatus.forEach((status) => {\n idMap.add({\n uid: targetUid,\n documentId: relation.documentId,\n locale: targetLocale,\n status,\n });\n });\n }\n);\n\n/**\n * Iterate over all relations of a data object and extract all relational document ids.\n * Those will later be transformed to entity ids.\n */\nconst extractDataIds = (idMap: IdMap, data: Record<string, any>, source: Options) => {\n return traverseEntityRelations(\n async ({ attribute, value }) => {\n if (!attribute) {\n return;\n }\n const isPolymorphicRelation = isPolymorphic(attribute);\n const addDocId = addRelationDocId(idMap, source);\n\n return mapRelation((relation) => {\n if (!relation || !relation.documentId) {\n return relation;\n }\n\n // Regular relations will always target the same target\n // if its a polymorphic relation we need to get it from the data itself\n const targetUid = isPolymorphicRelation ? relation.__type : attribute.target;\n\n addDocId(targetUid, relation);\n\n // Handle positional arguments\n const position = relation.position;\n\n // The positional relation target uid can be different for polymorphic relations\n let positionTargetUid = targetUid;\n if (isPolymorphicRelation && position?.__type) {\n positionTargetUid = position.__type;\n }\n\n if (position?.before) {\n addDocId(positionTargetUid, { ...relation, ...position, documentId: position.before });\n }\n\n if (position?.after) {\n addDocId(positionTargetUid, { ...relation, ...position, documentId: position.after });\n }\n\n return relation;\n }, value as any);\n },\n { schema: strapi.getModel(source.uid), getModel: strapi.getModel.bind(strapi) },\n data\n );\n};\n\nexport { extractDataIds };\n"],"names":["relations","curry","getRelationTargetLocale","getRelationTargetStatus","traverseEntityRelations","mapRelation"],"mappings":";;;;;;;AAUA,MAAM,EAAE,cAAkB,IAAAA,YAAA;AAW1B,MAAM,mBAAmBC,GAAA;AAAA,EACvB,CAAC,OAAc,QAAiB,WAAuB,aAA+B;AAC9E,UAAA,eAAeC,6BAAwB,UAAU;AAAA,MACrD;AAAA,MACA,WAAW,OAAO;AAAA,MAClB,cAAc,OAAO;AAAA,IAAA,CACtB;AAEK,UAAA,eAAeC,2BAAwB,UAAU;AAAA,MACrD;AAAA,MACA,WAAW,OAAO;AAAA,MAClB,cAAc,OAAO;AAAA,IAAA,CACtB;AAEY,iBAAA,QAAQ,CAAC,WAAW;AAC/B,YAAM,IAAI;AAAA,QACR,KAAK;AAAA,QACL,YAAY,SAAS;AAAA,QACrB,QAAQ;AAAA,QACR;AAAA,MAAA,CACD;AAAA,IAAA,CACF;AAAA,EAAA;AAEL;AAMA,MAAM,iBAAiB,CAAC,OAAc,MAA2B,WAAoB;AAC5E,SAAAC,YAAA;AAAA,IACL,OAAO,EAAE,WAAW,YAAY;AAC9B,UAAI,CAAC,WAAW;AACd;AAAA,MAAA;AAEI,YAAA,wBAAwB,cAAc,SAAS;AAC/C,YAAA,WAAW,iBAAiB,OAAO,MAAM;AAExC,aAAAC,YAAAA,YAAY,CAAC,aAAa;AAC/B,YAAI,CAAC,YAAY,CAAC,SAAS,YAAY;AAC9B,iBAAA;AAAA,QAAA;AAKT,cAAM,YAAY,wBAAwB,SAAS,SAAS,UAAU;AAEtE,iBAAS,WAAW,QAAQ;AAG5B,cAAM,WAAW,SAAS;AAG1B,YAAI,oBAAoB;AACpB,YAAA,yBAAyB,UAAU,QAAQ;AAC7C,8BAAoB,SAAS;AAAA,QAAA;AAG/B,YAAI,UAAU,QAAQ;AACX,mBAAA,mBAAmB,EAAE,GAAG,UAAU,GAAG,UAAU,YAAY,SAAS,QAAQ;AAAA,QAAA;AAGvF,YAAI,UAAU,OAAO;AACV,mBAAA,mBAAmB,EAAE,GAAG,UAAU,GAAG,UAAU,YAAY,SAAS,OAAO;AAAA,QAAA;AAG/E,eAAA;AAAA,SACN,KAAY;AAAA,IACjB;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,OAAO,GAAG,GAAG,UAAU,OAAO,SAAS,KAAK,MAAM,EAAE;AAAA,IAC9E;AAAA,EACF;AACF;;"}