@strapi/core 5.0.0-beta.0 → 5.0.0-beta.10

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