@strapi/core 0.0.0-experimental.d362bf200f5f9359a4bbd4a549603de5ee1f04ca → 0.0.0-experimental.d3cdf79a0d5f803dfeb6d0f055bb2f3b913bb015

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 (671) hide show
  1. package/LICENSE +18 -3
  2. package/dist/Strapi.d.ts +37 -46
  3. package/dist/Strapi.d.ts.map +1 -1
  4. package/dist/Strapi.js +197 -226
  5. package/dist/Strapi.js.map +1 -1
  6. package/dist/Strapi.mjs +166 -215
  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.js.map +1 -1
  30. package/dist/container.mjs.map +1 -1
  31. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  32. package/dist/core-api/controller/collection-type.js +6 -3
  33. package/dist/core-api/controller/collection-type.js.map +1 -1
  34. package/dist/core-api/controller/collection-type.mjs +3 -0
  35. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  36. package/dist/core-api/controller/index.js +2 -2
  37. package/dist/core-api/controller/index.js.map +1 -1
  38. package/dist/core-api/controller/index.mjs.map +1 -1
  39. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  40. package/dist/core-api/controller/single-type.js +3 -2
  41. package/dist/core-api/controller/single-type.js.map +1 -1
  42. package/dist/core-api/controller/single-type.mjs +1 -0
  43. package/dist/core-api/controller/single-type.mjs.map +1 -1
  44. package/dist/core-api/controller/transform.js +8 -8
  45. package/dist/core-api/controller/transform.js.map +1 -1
  46. package/dist/core-api/controller/transform.mjs.map +1 -1
  47. package/dist/core-api/routes/index.d.ts.map +1 -1
  48. package/dist/core-api/routes/index.js.map +1 -1
  49. package/dist/core-api/routes/index.mjs.map +1 -1
  50. package/dist/core-api/service/collection-type.d.ts +3 -9
  51. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  52. package/dist/core-api/service/collection-type.js +18 -7
  53. package/dist/core-api/service/collection-type.js.map +1 -1
  54. package/dist/core-api/service/collection-type.mjs +19 -8
  55. package/dist/core-api/service/collection-type.mjs.map +1 -1
  56. package/dist/core-api/service/core-service.js.map +1 -1
  57. package/dist/core-api/service/core-service.mjs.map +1 -1
  58. package/dist/core-api/service/index.js.map +1 -1
  59. package/dist/core-api/service/index.mjs.map +1 -1
  60. package/dist/core-api/service/pagination.d.ts +4 -11
  61. package/dist/core-api/service/pagination.d.ts.map +1 -1
  62. package/dist/core-api/service/pagination.js +18 -44
  63. package/dist/core-api/service/pagination.js.map +1 -1
  64. package/dist/core-api/service/pagination.mjs +16 -42
  65. package/dist/core-api/service/pagination.mjs.map +1 -1
  66. package/dist/core-api/service/single-type.d.ts.map +1 -1
  67. package/dist/core-api/service/single-type.js +10 -4
  68. package/dist/core-api/service/single-type.js.map +1 -1
  69. package/dist/core-api/service/single-type.mjs +10 -4
  70. package/dist/core-api/service/single-type.mjs.map +1 -1
  71. package/dist/domain/content-type/index.js +4 -4
  72. package/dist/domain/content-type/index.js.map +1 -1
  73. package/dist/domain/content-type/index.mjs.map +1 -1
  74. package/dist/domain/content-type/validator.js.map +1 -1
  75. package/dist/domain/content-type/validator.mjs.map +1 -1
  76. package/dist/domain/module/index.js.map +1 -1
  77. package/dist/domain/module/index.mjs.map +1 -1
  78. package/dist/domain/module/validation.js.map +1 -1
  79. package/dist/domain/module/validation.mjs.map +1 -1
  80. package/dist/ee/index.d.ts +2 -0
  81. package/dist/ee/index.d.ts.map +1 -1
  82. package/dist/ee/index.js +9 -4
  83. package/dist/ee/index.js.map +1 -1
  84. package/dist/ee/index.mjs +6 -1
  85. package/dist/ee/index.mjs.map +1 -1
  86. package/dist/ee/license.d.ts.map +1 -1
  87. package/dist/ee/license.js +2 -1
  88. package/dist/ee/license.js.map +1 -1
  89. package/dist/ee/license.mjs +2 -1
  90. package/dist/ee/license.mjs.map +1 -1
  91. package/dist/factories.d.ts +2 -2
  92. package/dist/factories.d.ts.map +1 -1
  93. package/dist/factories.js +4 -4
  94. package/dist/factories.js.map +1 -1
  95. package/dist/factories.mjs.map +1 -1
  96. package/dist/index.d.ts +18 -2
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +25 -1
  99. package/dist/index.js.map +1 -1
  100. package/dist/index.mjs +27 -3
  101. package/dist/index.mjs.map +1 -1
  102. package/dist/loaders/admin.js +0 -1
  103. package/dist/loaders/admin.js.map +1 -1
  104. package/dist/loaders/admin.mjs +0 -1
  105. package/dist/loaders/admin.mjs.map +1 -1
  106. package/dist/loaders/apis.d.ts.map +1 -1
  107. package/dist/loaders/apis.js +12 -12
  108. package/dist/loaders/apis.js.map +1 -1
  109. package/dist/loaders/apis.mjs +10 -10
  110. package/dist/loaders/apis.mjs.map +1 -1
  111. package/dist/loaders/components.js.map +1 -1
  112. package/dist/loaders/components.mjs.map +1 -1
  113. package/dist/loaders/index.d.ts.map +1 -1
  114. package/dist/loaders/index.js +0 -2
  115. package/dist/loaders/index.js.map +1 -1
  116. package/dist/loaders/index.mjs +0 -2
  117. package/dist/loaders/index.mjs.map +1 -1
  118. package/dist/loaders/middlewares.js.map +1 -1
  119. package/dist/loaders/middlewares.mjs.map +1 -1
  120. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  121. package/dist/loaders/plugins/get-enabled-plugins.js +47 -18
  122. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  123. package/dist/loaders/plugins/get-enabled-plugins.mjs +17 -10
  124. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  125. package/dist/loaders/plugins/get-user-plugins-config.js +2 -2
  126. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  127. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  128. package/dist/loaders/plugins/index.d.ts.map +1 -1
  129. package/dist/loaders/plugins/index.js +33 -7
  130. package/dist/loaders/plugins/index.js.map +1 -1
  131. package/dist/loaders/plugins/index.mjs +9 -1
  132. package/dist/loaders/plugins/index.mjs.map +1 -1
  133. package/dist/loaders/policies.js.map +1 -1
  134. package/dist/loaders/policies.mjs.map +1 -1
  135. package/dist/loaders/sanitizers.js.map +1 -1
  136. package/dist/loaders/sanitizers.mjs.map +1 -1
  137. package/dist/loaders/src-index.js.map +1 -1
  138. package/dist/loaders/src-index.mjs.map +1 -1
  139. package/dist/loaders/validators.js.map +1 -1
  140. package/dist/loaders/validators.mjs.map +1 -1
  141. package/dist/middlewares/body.d.ts +2 -2
  142. package/dist/middlewares/body.d.ts.map +1 -1
  143. package/dist/middlewares/body.js +6 -6
  144. package/dist/middlewares/body.js.map +1 -1
  145. package/dist/middlewares/body.mjs +4 -4
  146. package/dist/middlewares/body.mjs.map +1 -1
  147. package/dist/middlewares/cors.d.ts.map +1 -1
  148. package/dist/middlewares/cors.js +9 -7
  149. package/dist/middlewares/cors.js.map +1 -1
  150. package/dist/middlewares/cors.mjs +9 -7
  151. package/dist/middlewares/cors.mjs.map +1 -1
  152. package/dist/middlewares/errors.js.map +1 -1
  153. package/dist/middlewares/errors.mjs.map +1 -1
  154. package/dist/middlewares/favicon.js.map +1 -1
  155. package/dist/middlewares/favicon.mjs.map +1 -1
  156. package/dist/middlewares/index.js.map +1 -1
  157. package/dist/middlewares/logger.js.map +1 -1
  158. package/dist/middlewares/logger.mjs.map +1 -1
  159. package/dist/middlewares/powered-by.js.map +1 -1
  160. package/dist/middlewares/powered-by.mjs.map +1 -1
  161. package/dist/middlewares/public.js +3 -3
  162. package/dist/middlewares/public.js.map +1 -1
  163. package/dist/middlewares/public.mjs +1 -1
  164. package/dist/middlewares/public.mjs.map +1 -1
  165. package/dist/middlewares/query.d.ts.map +1 -1
  166. package/dist/middlewares/query.js.map +1 -1
  167. package/dist/middlewares/query.mjs.map +1 -1
  168. package/dist/middlewares/response-time.js.map +1 -1
  169. package/dist/middlewares/response-time.mjs.map +1 -1
  170. package/dist/middlewares/responses.js +2 -2
  171. package/dist/middlewares/responses.js.map +1 -1
  172. package/dist/middlewares/responses.mjs.map +1 -1
  173. package/dist/middlewares/security.d.ts.map +1 -1
  174. package/dist/middlewares/security.js +12 -5
  175. package/dist/middlewares/security.js.map +1 -1
  176. package/dist/middlewares/security.mjs +11 -4
  177. package/dist/middlewares/security.mjs.map +1 -1
  178. package/dist/middlewares/session.js +2 -2
  179. package/dist/middlewares/session.js.map +1 -1
  180. package/dist/middlewares/session.mjs.map +1 -1
  181. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +33 -0
  182. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -0
  183. package/dist/migrations/database/5.0.0-discard-drafts.js +106 -0
  184. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
  185. package/dist/migrations/database/5.0.0-discard-drafts.mjs +106 -0
  186. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
  187. package/dist/migrations/draft-publish.d.ts +1 -1
  188. package/dist/migrations/draft-publish.d.ts.map +1 -1
  189. package/dist/migrations/draft-publish.js +14 -31
  190. package/dist/migrations/draft-publish.js.map +1 -1
  191. package/dist/migrations/draft-publish.mjs +15 -32
  192. package/dist/migrations/draft-publish.mjs.map +1 -1
  193. package/dist/migrations/i18n.d.ts +5 -0
  194. package/dist/migrations/i18n.d.ts.map +1 -0
  195. package/dist/migrations/i18n.js +54 -0
  196. package/dist/migrations/i18n.js.map +1 -0
  197. package/dist/migrations/i18n.mjs +54 -0
  198. package/dist/migrations/i18n.mjs.map +1 -0
  199. package/dist/migrations/index.d.ts +5 -0
  200. package/dist/migrations/index.d.ts.map +1 -0
  201. package/dist/migrations/index.js +15 -0
  202. package/dist/migrations/index.js.map +1 -0
  203. package/dist/migrations/index.mjs +15 -0
  204. package/dist/migrations/index.mjs.map +1 -0
  205. package/dist/providers/admin.d.ts +3 -0
  206. package/dist/providers/admin.d.ts.map +1 -0
  207. package/dist/providers/admin.js +20 -0
  208. package/dist/providers/admin.js.map +1 -0
  209. package/dist/providers/admin.mjs +21 -0
  210. package/dist/providers/admin.mjs.map +1 -0
  211. package/dist/providers/coreStore.d.ts +3 -0
  212. package/dist/providers/coreStore.d.ts.map +1 -0
  213. package/dist/providers/coreStore.js +11 -0
  214. package/dist/providers/coreStore.js.map +1 -0
  215. package/dist/providers/coreStore.mjs +12 -0
  216. package/dist/providers/coreStore.mjs.map +1 -0
  217. package/dist/providers/cron.d.ts +3 -0
  218. package/dist/providers/cron.d.ts.map +1 -0
  219. package/dist/providers/cron.js +20 -0
  220. package/dist/providers/cron.js.map +1 -0
  221. package/dist/providers/cron.mjs +21 -0
  222. package/dist/providers/cron.mjs.map +1 -0
  223. package/dist/providers/index.d.ts +3 -0
  224. package/dist/providers/index.d.ts.map +1 -0
  225. package/dist/providers/index.js +11 -0
  226. package/dist/providers/index.js.map +1 -0
  227. package/dist/providers/index.mjs +11 -0
  228. package/dist/providers/index.mjs.map +1 -0
  229. package/dist/providers/provider.d.ts +9 -0
  230. package/dist/providers/provider.d.ts.map +1 -0
  231. package/dist/providers/provider.js +5 -0
  232. package/dist/providers/provider.js.map +1 -0
  233. package/dist/providers/provider.mjs +5 -0
  234. package/dist/providers/provider.mjs.map +1 -0
  235. package/dist/providers/registries.d.ts +3 -0
  236. package/dist/providers/registries.d.ts.map +1 -0
  237. package/dist/providers/registries.js +35 -0
  238. package/dist/providers/registries.js.map +1 -0
  239. package/dist/providers/registries.mjs +36 -0
  240. package/dist/providers/registries.mjs.map +1 -0
  241. package/dist/providers/telemetry.d.ts +3 -0
  242. package/dist/providers/telemetry.d.ts.map +1 -0
  243. package/dist/providers/telemetry.js +19 -0
  244. package/dist/providers/telemetry.js.map +1 -0
  245. package/dist/providers/telemetry.mjs +20 -0
  246. package/dist/providers/telemetry.mjs.map +1 -0
  247. package/dist/providers/webhooks.d.ts +3 -0
  248. package/dist/providers/webhooks.d.ts.map +1 -0
  249. package/dist/providers/webhooks.js +30 -0
  250. package/dist/providers/webhooks.js.map +1 -0
  251. package/dist/providers/webhooks.mjs +31 -0
  252. package/dist/providers/webhooks.mjs.map +1 -0
  253. package/dist/registries/apis.js +2 -2
  254. package/dist/registries/apis.js.map +1 -1
  255. package/dist/registries/apis.mjs.map +1 -1
  256. package/dist/registries/components.js +2 -2
  257. package/dist/registries/components.js.map +1 -1
  258. package/dist/registries/components.mjs.map +1 -1
  259. package/dist/registries/content-types.js +3 -3
  260. package/dist/registries/content-types.js.map +1 -1
  261. package/dist/registries/content-types.mjs.map +1 -1
  262. package/dist/registries/controllers.js +3 -3
  263. package/dist/registries/controllers.js.map +1 -1
  264. package/dist/registries/controllers.mjs.map +1 -1
  265. package/dist/registries/custom-fields.js +4 -4
  266. package/dist/registries/custom-fields.js.map +1 -1
  267. package/dist/registries/custom-fields.mjs.map +1 -1
  268. package/dist/registries/hooks.js +2 -2
  269. package/dist/registries/hooks.js.map +1 -1
  270. package/dist/registries/hooks.mjs.map +1 -1
  271. package/dist/registries/index.d.ts +0 -1
  272. package/dist/registries/index.d.ts.map +1 -1
  273. package/dist/registries/middlewares.js +3 -3
  274. package/dist/registries/middlewares.js.map +1 -1
  275. package/dist/registries/middlewares.mjs.map +1 -1
  276. package/dist/registries/models.js.map +1 -1
  277. package/dist/registries/models.mjs.map +1 -1
  278. package/dist/registries/modules.js +3 -3
  279. package/dist/registries/modules.js.map +1 -1
  280. package/dist/registries/modules.mjs.map +1 -1
  281. package/dist/registries/namespace.js.map +1 -1
  282. package/dist/registries/namespace.mjs.map +1 -1
  283. package/dist/registries/plugins.js +2 -2
  284. package/dist/registries/plugins.js.map +1 -1
  285. package/dist/registries/plugins.mjs.map +1 -1
  286. package/dist/registries/policies.d.ts +1 -1
  287. package/dist/registries/policies.d.ts.map +1 -1
  288. package/dist/registries/policies.js +5 -5
  289. package/dist/registries/policies.js.map +1 -1
  290. package/dist/registries/policies.mjs +1 -1
  291. package/dist/registries/policies.mjs.map +1 -1
  292. package/dist/registries/sanitizers.js.map +1 -1
  293. package/dist/registries/sanitizers.mjs.map +1 -1
  294. package/dist/registries/services.js +3 -3
  295. package/dist/registries/services.js.map +1 -1
  296. package/dist/registries/services.mjs.map +1 -1
  297. package/dist/registries/validators.js.map +1 -1
  298. package/dist/registries/validators.mjs.map +1 -1
  299. package/dist/services/auth/index.js +3 -3
  300. package/dist/services/auth/index.js.map +1 -1
  301. package/dist/services/auth/index.mjs.map +1 -1
  302. package/dist/services/config.d.ts +3 -0
  303. package/dist/services/config.d.ts.map +1 -0
  304. package/dist/{registries → services}/config.js +11 -7
  305. package/dist/services/config.js.map +1 -0
  306. package/dist/{registries → services}/config.mjs +10 -7
  307. package/dist/services/config.mjs.map +1 -0
  308. package/dist/services/content-api/index.d.ts +10 -12
  309. package/dist/services/content-api/index.d.ts.map +1 -1
  310. package/dist/services/content-api/index.js +1 -1
  311. package/dist/services/content-api/index.js.map +1 -1
  312. package/dist/services/content-api/index.mjs +1 -1
  313. package/dist/services/content-api/index.mjs.map +1 -1
  314. package/dist/services/content-api/permissions/index.d.ts +10 -12
  315. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  316. package/dist/services/content-api/permissions/index.js +1 -1
  317. package/dist/services/content-api/permissions/index.js.map +1 -1
  318. package/dist/services/content-api/permissions/index.mjs +1 -1
  319. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  320. package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
  321. package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
  322. package/dist/services/content-api/permissions/providers/action.js.map +1 -1
  323. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
  324. package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
  325. package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
  326. package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
  327. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
  328. package/dist/services/core-store.d.ts.map +1 -1
  329. package/dist/services/core-store.js +3 -3
  330. package/dist/services/core-store.js.map +1 -1
  331. package/dist/services/core-store.mjs.map +1 -1
  332. package/dist/services/cron.d.ts +3 -3
  333. package/dist/services/cron.d.ts.map +1 -1
  334. package/dist/services/cron.js +12 -8
  335. package/dist/services/cron.js.map +1 -1
  336. package/dist/services/cron.mjs +9 -5
  337. package/dist/services/cron.mjs.map +1 -1
  338. package/dist/services/custom-fields.js.map +1 -1
  339. package/dist/services/custom-fields.mjs.map +1 -1
  340. package/dist/services/document-service/attributes/index.d.ts +6 -0
  341. package/dist/services/document-service/attributes/index.d.ts.map +1 -0
  342. package/dist/services/{entity-service → document-service}/attributes/index.js +5 -5
  343. package/dist/services/document-service/attributes/index.js.map +1 -0
  344. package/dist/services/{entity-service → document-service}/attributes/index.mjs +5 -5
  345. package/dist/services/document-service/attributes/index.mjs.map +1 -0
  346. package/dist/services/document-service/attributes/transforms.d.ts.map +1 -0
  347. package/dist/services/{entity-service → document-service}/attributes/transforms.js +3 -3
  348. package/dist/services/document-service/attributes/transforms.js.map +1 -0
  349. package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
  350. package/dist/services/document-service/common.d.ts +1 -1
  351. package/dist/services/document-service/common.d.ts.map +1 -1
  352. package/dist/services/document-service/common.js.map +1 -1
  353. package/dist/services/document-service/common.mjs.map +1 -1
  354. package/dist/services/document-service/components.d.ts +25 -1
  355. package/dist/services/document-service/components.d.ts.map +1 -1
  356. package/dist/services/{entity-service → document-service}/components.js +46 -56
  357. package/dist/services/document-service/components.js.map +1 -0
  358. package/dist/services/{entity-service → document-service}/components.mjs +36 -46
  359. package/dist/services/document-service/components.mjs.map +1 -0
  360. package/dist/services/document-service/draft-and-publish.js +16 -16
  361. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  362. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  363. package/dist/services/document-service/entries.d.ts +10 -0
  364. package/dist/services/document-service/entries.d.ts.map +1 -0
  365. package/dist/services/document-service/entries.js +95 -0
  366. package/dist/services/document-service/entries.js.map +1 -0
  367. package/dist/services/document-service/entries.mjs +95 -0
  368. package/dist/services/document-service/entries.mjs.map +1 -0
  369. package/dist/services/document-service/events.d.ts +25 -0
  370. package/dist/services/document-service/events.d.ts.map +1 -0
  371. package/dist/services/document-service/events.js +47 -0
  372. package/dist/services/document-service/events.js.map +1 -0
  373. package/dist/services/document-service/events.mjs +47 -0
  374. package/dist/services/document-service/events.mjs.map +1 -0
  375. package/dist/services/document-service/index.d.ts +2 -3
  376. package/dist/services/document-service/index.d.ts.map +1 -1
  377. package/dist/services/document-service/index.js +16 -4
  378. package/dist/services/document-service/index.js.map +1 -1
  379. package/dist/services/document-service/index.mjs +16 -4
  380. package/dist/services/document-service/index.mjs.map +1 -1
  381. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  382. package/dist/services/document-service/internationalization.js +21 -12
  383. package/dist/services/document-service/internationalization.js.map +1 -1
  384. package/dist/services/document-service/internationalization.mjs +14 -5
  385. package/dist/services/document-service/internationalization.mjs.map +1 -1
  386. package/dist/services/document-service/middlewares/errors.js.map +1 -1
  387. package/dist/services/document-service/middlewares/errors.mjs.map +1 -1
  388. package/dist/services/document-service/middlewares/middleware-manager.d.ts +5 -2
  389. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -1
  390. package/dist/services/document-service/middlewares/middleware-manager.js +8 -5
  391. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -1
  392. package/dist/services/document-service/middlewares/middleware-manager.mjs +8 -5
  393. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -1
  394. package/dist/services/document-service/params.d.ts +3 -1
  395. package/dist/services/document-service/params.d.ts.map +1 -1
  396. package/dist/services/{entity-service → document-service}/params.js +2 -2
  397. package/dist/services/document-service/params.js.map +1 -0
  398. package/dist/services/document-service/params.mjs.map +1 -0
  399. package/dist/services/document-service/repository.d.ts.map +1 -1
  400. package/dist/services/document-service/repository.js +194 -159
  401. package/dist/services/document-service/repository.js.map +1 -1
  402. package/dist/services/document-service/repository.mjs +172 -137
  403. package/dist/services/document-service/repository.mjs.map +1 -1
  404. package/dist/services/document-service/transform/data.d.ts.map +1 -1
  405. package/dist/services/document-service/transform/data.js +4 -2
  406. package/dist/services/document-service/transform/data.js.map +1 -1
  407. package/dist/services/document-service/transform/data.mjs +4 -2
  408. package/dist/services/document-service/transform/data.mjs.map +1 -1
  409. package/dist/services/document-service/transform/fields.js.map +1 -1
  410. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  411. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  412. package/dist/services/document-service/transform/id-map.js +15 -8
  413. package/dist/services/document-service/transform/id-map.js.map +1 -1
  414. package/dist/services/document-service/transform/id-map.mjs +16 -9
  415. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  416. package/dist/services/document-service/transform/id-transform.js +2 -2
  417. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  418. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  419. package/dist/services/document-service/transform/populate.js.map +1 -1
  420. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  421. package/dist/services/document-service/transform/query.d.ts +5 -0
  422. package/dist/services/document-service/transform/query.d.ts.map +1 -0
  423. package/dist/services/document-service/transform/query.js +9 -0
  424. package/dist/services/document-service/transform/query.js.map +1 -0
  425. package/dist/services/document-service/transform/query.mjs +9 -0
  426. package/dist/services/document-service/transform/query.mjs.map +1 -0
  427. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +8 -7
  428. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  429. package/dist/services/document-service/transform/relations/extract/data-ids.js +51 -77
  430. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  431. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +51 -77
  432. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  433. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +7 -3
  434. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  435. package/dist/services/document-service/transform/relations/transform/data-ids.js +69 -125
  436. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  437. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +69 -125
  438. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  439. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts +9 -0
  440. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts.map +1 -0
  441. package/dist/services/document-service/transform/relations/transform/default-locale.js +32 -0
  442. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
  443. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +32 -0
  444. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
  445. package/dist/services/document-service/transform/relations/utils/dp.js +2 -2
  446. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  447. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  448. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +2 -2
  449. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  450. package/dist/services/document-service/transform/relations/utils/i18n.js +3 -9
  451. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  452. package/dist/services/document-service/transform/relations/utils/i18n.mjs +3 -9
  453. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  454. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts +6 -0
  455. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -0
  456. package/dist/services/document-service/transform/relations/utils/map-relation.js +84 -0
  457. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
  458. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +84 -0
  459. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
  460. package/dist/services/document-service/transform/relations/utils/types.d.ts +6 -0
  461. package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -1
  462. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  463. package/dist/services/document-service/utils/populate.js +8 -2
  464. package/dist/services/document-service/utils/populate.js.map +1 -1
  465. package/dist/services/document-service/utils/populate.mjs +8 -2
  466. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  467. package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
  468. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  469. package/dist/services/document-service/utils/unidirectional-relations.js +68 -0
  470. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
  471. package/dist/services/document-service/utils/unidirectional-relations.mjs +68 -0
  472. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
  473. package/dist/services/entity-service/index.d.ts.map +1 -1
  474. package/dist/services/entity-service/index.js +11 -4
  475. package/dist/services/entity-service/index.js.map +1 -1
  476. package/dist/services/entity-service/index.mjs +11 -4
  477. package/dist/services/entity-service/index.mjs.map +1 -1
  478. package/dist/services/entity-validator/blocks-validator.d.ts +1 -2
  479. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  480. package/dist/services/entity-validator/blocks-validator.js +4 -3
  481. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  482. package/dist/services/entity-validator/blocks-validator.mjs +3 -3
  483. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  484. package/dist/services/entity-validator/index.d.ts +15 -1
  485. package/dist/services/entity-validator/index.d.ts.map +1 -1
  486. package/dist/services/entity-validator/index.js +189 -127
  487. package/dist/services/entity-validator/index.js.map +1 -1
  488. package/dist/services/entity-validator/index.mjs +184 -122
  489. package/dist/services/entity-validator/index.mjs.map +1 -1
  490. package/dist/services/entity-validator/validators.d.ts +36 -25
  491. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  492. package/dist/services/entity-validator/validators.js +148 -33
  493. package/dist/services/entity-validator/validators.js.map +1 -1
  494. package/dist/services/entity-validator/validators.mjs +140 -25
  495. package/dist/services/entity-validator/validators.mjs.map +1 -1
  496. package/dist/services/errors.js.map +1 -1
  497. package/dist/services/errors.mjs.map +1 -1
  498. package/dist/services/event-hub.d.ts +1 -0
  499. package/dist/services/event-hub.d.ts.map +1 -1
  500. package/dist/services/event-hub.js +9 -4
  501. package/dist/services/event-hub.js.map +1 -1
  502. package/dist/services/event-hub.mjs +9 -4
  503. package/dist/services/event-hub.mjs.map +1 -1
  504. package/dist/services/features.js.map +1 -1
  505. package/dist/services/features.mjs.map +1 -1
  506. package/dist/services/fs.js.map +1 -1
  507. package/dist/services/fs.mjs.map +1 -1
  508. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  509. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  510. package/dist/services/metrics/index.js +1 -2
  511. package/dist/services/metrics/index.js.map +1 -1
  512. package/dist/services/metrics/index.mjs +1 -2
  513. package/dist/services/metrics/index.mjs.map +1 -1
  514. package/dist/services/metrics/is-truthy.js.map +1 -1
  515. package/dist/services/metrics/middleware.d.ts.map +1 -1
  516. package/dist/services/metrics/middleware.js.map +1 -1
  517. package/dist/services/metrics/middleware.mjs.map +1 -1
  518. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  519. package/dist/services/metrics/rate-limiter.js.map +1 -1
  520. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  521. package/dist/services/metrics/sender.js.map +1 -1
  522. package/dist/services/metrics/sender.mjs.map +1 -1
  523. package/dist/services/query-params.js.map +1 -1
  524. package/dist/services/query-params.mjs.map +1 -1
  525. package/dist/services/reloader.d.ts +7 -0
  526. package/dist/services/reloader.d.ts.map +1 -0
  527. package/dist/services/reloader.js +36 -0
  528. package/dist/services/reloader.js.map +1 -0
  529. package/dist/services/reloader.mjs +36 -0
  530. package/dist/services/reloader.mjs.map +1 -0
  531. package/dist/services/request-context.js.map +1 -1
  532. package/dist/services/request-context.mjs.map +1 -1
  533. package/dist/services/server/admin-api.js.map +1 -1
  534. package/dist/services/server/admin-api.mjs.map +1 -1
  535. package/dist/services/server/api.js.map +1 -1
  536. package/dist/services/server/api.mjs.map +1 -1
  537. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  538. package/dist/services/server/compose-endpoint.js +7 -7
  539. package/dist/services/server/compose-endpoint.js.map +1 -1
  540. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  541. package/dist/services/server/content-api.js.map +1 -1
  542. package/dist/services/server/content-api.mjs.map +1 -1
  543. package/dist/services/server/http-server.js.map +1 -1
  544. package/dist/services/server/http-server.mjs.map +1 -1
  545. package/dist/services/server/index.js +1 -1
  546. package/dist/services/server/index.js.map +1 -1
  547. package/dist/services/server/index.mjs +1 -1
  548. package/dist/services/server/index.mjs.map +1 -1
  549. package/dist/services/server/koa.d.ts.map +1 -1
  550. package/dist/services/server/koa.js +4 -4
  551. package/dist/services/server/koa.js.map +1 -1
  552. package/dist/services/server/koa.mjs +1 -1
  553. package/dist/services/server/koa.mjs.map +1 -1
  554. package/dist/services/server/middleware.js +3 -3
  555. package/dist/services/server/middleware.js.map +1 -1
  556. package/dist/services/server/middleware.mjs.map +1 -1
  557. package/dist/services/server/policy.js.map +1 -1
  558. package/dist/services/server/policy.mjs.map +1 -1
  559. package/dist/services/server/register-middlewares.js.map +1 -1
  560. package/dist/services/server/register-middlewares.mjs.map +1 -1
  561. package/dist/services/server/register-routes.js +3 -3
  562. package/dist/services/server/register-routes.js.map +1 -1
  563. package/dist/services/server/register-routes.mjs +3 -3
  564. package/dist/services/server/register-routes.mjs.map +1 -1
  565. package/dist/services/server/routing.d.ts +1 -1
  566. package/dist/services/server/routing.js +2 -2
  567. package/dist/services/server/routing.js.map +1 -1
  568. package/dist/services/server/routing.mjs.map +1 -1
  569. package/dist/services/utils/dynamic-zones.js +5 -5
  570. package/dist/services/utils/dynamic-zones.js.map +1 -1
  571. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  572. package/dist/services/webhook-runner.d.ts +2 -1
  573. package/dist/services/webhook-runner.d.ts.map +1 -1
  574. package/dist/services/webhook-runner.js.map +1 -1
  575. package/dist/services/webhook-runner.mjs.map +1 -1
  576. package/dist/services/webhook-store.d.ts +2 -8
  577. package/dist/services/webhook-store.d.ts.map +1 -1
  578. package/dist/services/webhook-store.js +14 -8
  579. package/dist/services/webhook-store.js.map +1 -1
  580. package/dist/services/webhook-store.mjs +14 -8
  581. package/dist/services/webhook-store.mjs.map +1 -1
  582. package/dist/services/worker-queue.js.map +1 -1
  583. package/dist/services/worker-queue.mjs.map +1 -1
  584. package/dist/utils/convert-custom-field-type.js.map +1 -1
  585. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  586. package/dist/utils/cron.js +3 -3
  587. package/dist/utils/cron.js.map +1 -1
  588. package/dist/utils/cron.mjs.map +1 -1
  589. package/dist/utils/fetch.d.ts.map +1 -1
  590. package/dist/utils/fetch.js +4 -3
  591. package/dist/utils/fetch.js.map +1 -1
  592. package/dist/utils/fetch.mjs +4 -3
  593. package/dist/utils/fetch.mjs.map +1 -1
  594. package/dist/utils/filepath-to-prop-path.d.ts +1 -1
  595. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
  596. package/dist/utils/filepath-to-prop-path.js +27 -6
  597. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  598. package/dist/utils/filepath-to-prop-path.mjs +25 -5
  599. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  600. package/dist/utils/index.d.ts +2 -1
  601. package/dist/utils/index.d.ts.map +1 -1
  602. package/dist/utils/is-initialized.js +3 -3
  603. package/dist/utils/is-initialized.js.map +1 -1
  604. package/dist/utils/is-initialized.mjs.map +1 -1
  605. package/dist/utils/load-config-file.js.map +1 -1
  606. package/dist/utils/load-config-file.mjs.map +1 -1
  607. package/dist/utils/load-files.d.ts.map +1 -1
  608. package/dist/utils/load-files.js +1 -2
  609. package/dist/utils/load-files.js.map +1 -1
  610. package/dist/utils/load-files.mjs +1 -2
  611. package/dist/utils/load-files.mjs.map +1 -1
  612. package/dist/utils/resolve-working-dirs.d.ts +19 -0
  613. package/dist/utils/resolve-working-dirs.d.ts.map +1 -0
  614. package/dist/utils/resolve-working-dirs.js +13 -0
  615. package/dist/utils/resolve-working-dirs.js.map +1 -0
  616. package/dist/utils/resolve-working-dirs.mjs +11 -0
  617. package/dist/utils/resolve-working-dirs.mjs.map +1 -0
  618. package/dist/utils/signals.js.map +1 -1
  619. package/dist/utils/signals.mjs.map +1 -1
  620. package/dist/utils/startup-logger.d.ts.map +1 -1
  621. package/dist/utils/startup-logger.js +10 -5
  622. package/dist/utils/startup-logger.js.map +1 -1
  623. package/dist/utils/startup-logger.mjs +9 -4
  624. package/dist/utils/startup-logger.mjs.map +1 -1
  625. package/dist/utils/transform-content-types-to-models.d.ts +375 -38
  626. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  627. package/dist/utils/transform-content-types-to-models.js +112 -61
  628. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  629. package/dist/utils/transform-content-types-to-models.mjs +111 -60
  630. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  631. package/dist/utils/update-notifier/index.d.ts +1 -6
  632. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  633. package/dist/utils/update-notifier/index.js +11 -14
  634. package/dist/utils/update-notifier/index.js.map +1 -1
  635. package/dist/utils/update-notifier/index.mjs +11 -14
  636. package/dist/utils/update-notifier/index.mjs.map +1 -1
  637. package/package.json +35 -32
  638. package/dist/registries/config.d.ts +0 -4
  639. package/dist/registries/config.d.ts.map +0 -1
  640. package/dist/registries/config.js.map +0 -1
  641. package/dist/registries/config.mjs.map +0 -1
  642. package/dist/services/document-service/document-engine.d.ts +0 -2
  643. package/dist/services/document-service/document-engine.d.ts.map +0 -1
  644. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +0 -2
  645. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +0 -1
  646. package/dist/services/document-service/transform/relations/utils/data.js +0 -12
  647. package/dist/services/document-service/transform/relations/utils/data.js.map +0 -1
  648. package/dist/services/document-service/transform/relations/utils/data.mjs +0 -12
  649. package/dist/services/document-service/transform/relations/utils/data.mjs.map +0 -1
  650. package/dist/services/entity-service/attributes/index.d.ts +0 -6
  651. package/dist/services/entity-service/attributes/index.d.ts.map +0 -1
  652. package/dist/services/entity-service/attributes/index.js.map +0 -1
  653. package/dist/services/entity-service/attributes/index.mjs.map +0 -1
  654. package/dist/services/entity-service/attributes/transforms.d.ts.map +0 -1
  655. package/dist/services/entity-service/attributes/transforms.js.map +0 -1
  656. package/dist/services/entity-service/attributes/transforms.mjs.map +0 -1
  657. package/dist/services/entity-service/components.d.ts +0 -95
  658. package/dist/services/entity-service/components.d.ts.map +0 -1
  659. package/dist/services/entity-service/components.js.map +0 -1
  660. package/dist/services/entity-service/components.mjs.map +0 -1
  661. package/dist/services/entity-service/params.d.ts +0 -8
  662. package/dist/services/entity-service/params.d.ts.map +0 -1
  663. package/dist/services/entity-service/params.js.map +0 -1
  664. package/dist/services/entity-service/params.mjs.map +0 -1
  665. package/dist/utils/get-dirs.d.ts +0 -9
  666. package/dist/utils/get-dirs.d.ts.map +0 -1
  667. package/dist/utils/get-dirs.js.map +0 -1
  668. package/dist/utils/get-dirs.mjs.map +0 -1
  669. /package/dist/services/{entity-service → document-service}/attributes/transforms.d.ts +0 -0
  670. /package/dist/services/{entity-service → document-service}/attributes/transforms.mjs +0 -0
  671. /package/dist/services/{entity-service → document-service}/params.mjs +0 -0
@@ -1 +1 @@
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,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 +1 @@
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,EAAE,MAAM,eAAe,CAAC;AAmB3C,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;YAA0B,KAAK,MAAM;MAAK,KAsF1D,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 { Core, Data } 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: 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 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,aAA6C;AAC5D,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 { Core, Data } 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: 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 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,aAA6C;AAC5D,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,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 { 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,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 { 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,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 +1 @@
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,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,GAAG,UAAU,OAAO,SAAS,KAAK,MAAM,EAAE;AAAA,IAC5E;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;;"}
@@ -1 +1 @@
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,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,GAAG,UAAU,OAAO,SAAS,KAAK,MAAM,EAAE;AAAA,IAC5E;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 { Schema, UID } from '@strapi/types';
1
+ import { UID } from '@strapi/types';
2
2
  import { IdMap } from '../../id-map';
3
- /**
4
- * Iterate over all attributes of a Data object and extract all relational document ids.
5
- * Those will later be transformed to entity ids.
6
- */
7
- declare const extractDataIds: (idMap: IdMap, data: Record<string, any>, opts: {
3
+ interface Options {
8
4
  uid: UID.Schema;
9
5
  locale?: string | null;
10
6
  status?: 'draft' | 'published';
11
- }) => Promise<import("@strapi/utils/dist/types").Data>;
7
+ }
8
+ /**
9
+ * Iterate over all relations of a data object and extract all relational document ids.
10
+ * Those will later be transformed to entity ids.
11
+ */
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,EAAW,MAAM,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AA2ErC;;;GAGG;AACH,QAAA,MAAM,cAAc,UACX,KAAK,QACN,OAAO,MAAM,EAAE,GAAG,CAAC,QACnB;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAAA;CAAE,qDAwClF,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), getModel: strapi.getModel.bind(strapi) },
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 { Modules, Schema, UID } 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 * 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 Schema.Attribute.RelationKind.Any>(\n relation: Modules.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: 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 UID.Schema,\n sourceUid: opts.uid,\n sourceLocale: opts.locale,\n });\n\n const targetStatus = getRelationTargetStatus(relation, {\n targetUid: target as 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), getModel: strapi.getModel.bind(strapi) },\n data\n );\n};\n\nexport { extractDataIds };\n"],"names":["isShortHand","isLongHand","isObject","relation","data","traverseEntity","getRelationTargetLocale","getRelationTargetStatus"],"mappings":";;;;;;;AAWA,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,GAAG,UAAU,OAAO,SAAS,KAAK,MAAM,EAAE;AAAA,IAC5EH;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;;"}