@strapi/core 0.0.0-next.ee56af7ae29770097422de95c0d5500908dce15c → 0.0.0-next.ef9237644b07791c05e1b7edc54d1921e59565ae

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 (692) hide show
  1. package/dist/Strapi.d.ts.map +1 -1
  2. package/dist/configuration/index.d.ts.map +1 -1
  3. package/dist/index.js +10101 -27
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +10079 -29
  6. package/dist/index.mjs.map +1 -1
  7. package/dist/middlewares/body.d.ts.map +1 -1
  8. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +2 -2
  9. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  10. package/dist/migrations/draft-publish.d.ts +1 -1
  11. package/dist/migrations/draft-publish.d.ts.map +1 -1
  12. package/dist/services/document-service/components.d.ts.map +1 -1
  13. package/dist/services/document-service/draft-and-publish.d.ts +1 -1
  14. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  15. package/dist/services/document-service/events.d.ts +1 -1
  16. package/dist/services/document-service/events.d.ts.map +1 -1
  17. package/dist/services/document-service/repository.d.ts.map +1 -1
  18. package/dist/services/document-service/transform/id-map.d.ts +1 -1
  19. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  20. package/dist/services/document-service/transform/id-transform.d.ts +1 -1
  21. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  22. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  23. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  24. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  25. package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
  26. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  27. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
  28. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  29. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
  30. package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
  31. package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -0
  32. package/dist/services/document-service/utils/populate.d.ts +1 -1
  33. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  34. package/dist/services/document-service/utils/unidirectional-relations.d.ts +1 -1
  35. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -1
  36. package/dist/services/entity-validator/index.d.ts +1 -1
  37. package/dist/services/entity-validator/index.d.ts.map +1 -1
  38. package/dist/services/metrics/middleware.d.ts.map +1 -1
  39. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  40. package/dist/utils/startup-logger.d.ts.map +1 -1
  41. package/dist/utils/transform-content-types-to-models.d.ts +28 -0
  42. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  43. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  44. package/package.json +25 -26
  45. package/dist/Strapi.js +0 -431
  46. package/dist/Strapi.js.map +0 -1
  47. package/dist/Strapi.mjs +0 -410
  48. package/dist/Strapi.mjs.map +0 -1
  49. package/dist/compile.js +0 -18
  50. package/dist/compile.js.map +0 -1
  51. package/dist/compile.mjs +0 -17
  52. package/dist/compile.mjs.map +0 -1
  53. package/dist/configuration/config-loader.js +0 -106
  54. package/dist/configuration/config-loader.js.map +0 -1
  55. package/dist/configuration/config-loader.mjs +0 -104
  56. package/dist/configuration/config-loader.mjs.map +0 -1
  57. package/dist/configuration/get-dirs.js +0 -31
  58. package/dist/configuration/get-dirs.js.map +0 -1
  59. package/dist/configuration/get-dirs.mjs +0 -31
  60. package/dist/configuration/get-dirs.mjs.map +0 -1
  61. package/dist/configuration/index.js +0 -80
  62. package/dist/configuration/index.js.map +0 -1
  63. package/dist/configuration/index.mjs +0 -75
  64. package/dist/configuration/index.mjs.map +0 -1
  65. package/dist/configuration/urls.js +0 -68
  66. package/dist/configuration/urls.js.map +0 -1
  67. package/dist/configuration/urls.mjs +0 -66
  68. package/dist/configuration/urls.mjs.map +0 -1
  69. package/dist/container.js +0 -30
  70. package/dist/container.js.map +0 -1
  71. package/dist/container.mjs +0 -30
  72. package/dist/container.mjs.map +0 -1
  73. package/dist/core-api/controller/collection-type.js +0 -84
  74. package/dist/core-api/controller/collection-type.js.map +0 -1
  75. package/dist/core-api/controller/collection-type.mjs +0 -84
  76. package/dist/core-api/controller/collection-type.mjs.map +0 -1
  77. package/dist/core-api/controller/index.js +0 -52
  78. package/dist/core-api/controller/index.js.map +0 -1
  79. package/dist/core-api/controller/index.mjs +0 -52
  80. package/dist/core-api/controller/index.mjs.map +0 -1
  81. package/dist/core-api/controller/single-type.js +0 -46
  82. package/dist/core-api/controller/single-type.js.map +0 -1
  83. package/dist/core-api/controller/single-type.mjs +0 -46
  84. package/dist/core-api/controller/single-type.mjs.map +0 -1
  85. package/dist/core-api/controller/transform.js +0 -76
  86. package/dist/core-api/controller/transform.js.map +0 -1
  87. package/dist/core-api/controller/transform.mjs +0 -76
  88. package/dist/core-api/controller/transform.mjs.map +0 -1
  89. package/dist/core-api/routes/index.js +0 -67
  90. package/dist/core-api/routes/index.js.map +0 -1
  91. package/dist/core-api/routes/index.mjs +0 -67
  92. package/dist/core-api/routes/index.mjs.map +0 -1
  93. package/dist/core-api/service/collection-type.js +0 -67
  94. package/dist/core-api/service/collection-type.js.map +0 -1
  95. package/dist/core-api/service/collection-type.mjs +0 -67
  96. package/dist/core-api/service/collection-type.mjs.map +0 -1
  97. package/dist/core-api/service/core-service.js +0 -12
  98. package/dist/core-api/service/core-service.js.map +0 -1
  99. package/dist/core-api/service/core-service.mjs +0 -12
  100. package/dist/core-api/service/core-service.mjs.map +0 -1
  101. package/dist/core-api/service/index.js +0 -16
  102. package/dist/core-api/service/index.js.map +0 -1
  103. package/dist/core-api/service/index.mjs +0 -16
  104. package/dist/core-api/service/index.mjs.map +0 -1
  105. package/dist/core-api/service/pagination.js +0 -52
  106. package/dist/core-api/service/pagination.js.map +0 -1
  107. package/dist/core-api/service/pagination.mjs +0 -52
  108. package/dist/core-api/service/pagination.mjs.map +0 -1
  109. package/dist/core-api/service/single-type.js +0 -46
  110. package/dist/core-api/service/single-type.js.map +0 -1
  111. package/dist/core-api/service/single-type.mjs +0 -46
  112. package/dist/core-api/service/single-type.mjs.map +0 -1
  113. package/dist/domain/content-type/index.js +0 -111
  114. package/dist/domain/content-type/index.js.map +0 -1
  115. package/dist/domain/content-type/index.mjs +0 -109
  116. package/dist/domain/content-type/index.mjs.map +0 -1
  117. package/dist/domain/content-type/validator.js +0 -77
  118. package/dist/domain/content-type/validator.js.map +0 -1
  119. package/dist/domain/content-type/validator.mjs +0 -75
  120. package/dist/domain/content-type/validator.mjs.map +0 -1
  121. package/dist/domain/module/index.js +0 -107
  122. package/dist/domain/module/index.js.map +0 -1
  123. package/dist/domain/module/index.mjs +0 -105
  124. package/dist/domain/module/index.mjs.map +0 -1
  125. package/dist/domain/module/validation.js +0 -25
  126. package/dist/domain/module/validation.js.map +0 -1
  127. package/dist/domain/module/validation.mjs +0 -25
  128. package/dist/domain/module/validation.mjs.map +0 -1
  129. package/dist/ee/index.js +0 -158
  130. package/dist/ee/index.js.map +0 -1
  131. package/dist/ee/index.mjs +0 -159
  132. package/dist/ee/index.mjs.map +0 -1
  133. package/dist/ee/license.js +0 -91
  134. package/dist/ee/license.js.map +0 -1
  135. package/dist/ee/license.mjs +0 -88
  136. package/dist/ee/license.mjs.map +0 -1
  137. package/dist/factories.js +0 -80
  138. package/dist/factories.js.map +0 -1
  139. package/dist/factories.mjs +0 -80
  140. package/dist/factories.mjs.map +0 -1
  141. package/dist/loaders/admin.js +0 -26
  142. package/dist/loaders/admin.js.map +0 -1
  143. package/dist/loaders/admin.mjs +0 -25
  144. package/dist/loaders/admin.mjs.map +0 -1
  145. package/dist/loaders/apis.js +0 -137
  146. package/dist/loaders/apis.js.map +0 -1
  147. package/dist/loaders/apis.mjs +0 -135
  148. package/dist/loaders/apis.mjs.map +0 -1
  149. package/dist/loaders/components.js +0 -38
  150. package/dist/loaders/components.js.map +0 -1
  151. package/dist/loaders/components.mjs +0 -37
  152. package/dist/loaders/components.mjs.map +0 -1
  153. package/dist/loaders/index.js +0 -24
  154. package/dist/loaders/index.js.map +0 -1
  155. package/dist/loaders/index.mjs +0 -24
  156. package/dist/loaders/index.mjs.map +0 -1
  157. package/dist/loaders/middlewares.js +0 -31
  158. package/dist/loaders/middlewares.js.map +0 -1
  159. package/dist/loaders/middlewares.mjs +0 -30
  160. package/dist/loaders/middlewares.mjs.map +0 -1
  161. package/dist/loaders/plugins/get-enabled-plugins.js +0 -141
  162. package/dist/loaders/plugins/get-enabled-plugins.js.map +0 -1
  163. package/dist/loaders/plugins/get-enabled-plugins.mjs +0 -117
  164. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +0 -1
  165. package/dist/loaders/plugins/get-user-plugins-config.js +0 -27
  166. package/dist/loaders/plugins/get-user-plugins-config.js.map +0 -1
  167. package/dist/loaders/plugins/get-user-plugins-config.mjs +0 -25
  168. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +0 -1
  169. package/dist/loaders/plugins/index.js +0 -145
  170. package/dist/loaders/plugins/index.js.map +0 -1
  171. package/dist/loaders/plugins/index.mjs +0 -125
  172. package/dist/loaders/plugins/index.mjs.map +0 -1
  173. package/dist/loaders/policies.js +0 -25
  174. package/dist/loaders/policies.js.map +0 -1
  175. package/dist/loaders/policies.mjs +0 -24
  176. package/dist/loaders/policies.mjs.map +0 -1
  177. package/dist/loaders/sanitizers.js +0 -6
  178. package/dist/loaders/sanitizers.js.map +0 -1
  179. package/dist/loaders/sanitizers.mjs +0 -7
  180. package/dist/loaders/sanitizers.mjs.map +0 -1
  181. package/dist/loaders/src-index.js +0 -33
  182. package/dist/loaders/src-index.js.map +0 -1
  183. package/dist/loaders/src-index.mjs +0 -34
  184. package/dist/loaders/src-index.mjs.map +0 -1
  185. package/dist/loaders/validators.js +0 -6
  186. package/dist/loaders/validators.js.map +0 -1
  187. package/dist/loaders/validators.mjs +0 -7
  188. package/dist/loaders/validators.mjs.map +0 -1
  189. package/dist/middlewares/body.js +0 -65
  190. package/dist/middlewares/body.js.map +0 -1
  191. package/dist/middlewares/body.mjs +0 -61
  192. package/dist/middlewares/body.mjs.map +0 -1
  193. package/dist/middlewares/compression.js +0 -8
  194. package/dist/middlewares/compression.js.map +0 -1
  195. package/dist/middlewares/compression.mjs +0 -6
  196. package/dist/middlewares/compression.mjs.map +0 -1
  197. package/dist/middlewares/cors.js +0 -53
  198. package/dist/middlewares/cors.js.map +0 -1
  199. package/dist/middlewares/cors.mjs +0 -51
  200. package/dist/middlewares/cors.mjs.map +0 -1
  201. package/dist/middlewares/errors.js +0 -33
  202. package/dist/middlewares/errors.js.map +0 -1
  203. package/dist/middlewares/errors.mjs +0 -33
  204. package/dist/middlewares/errors.mjs.map +0 -1
  205. package/dist/middlewares/favicon.js +0 -22
  206. package/dist/middlewares/favicon.js.map +0 -1
  207. package/dist/middlewares/favicon.mjs +0 -20
  208. package/dist/middlewares/favicon.mjs.map +0 -1
  209. package/dist/middlewares/index.js +0 -34
  210. package/dist/middlewares/index.js.map +0 -1
  211. package/dist/middlewares/index.mjs +0 -34
  212. package/dist/middlewares/index.mjs.map +0 -1
  213. package/dist/middlewares/ip.js +0 -8
  214. package/dist/middlewares/ip.js.map +0 -1
  215. package/dist/middlewares/ip.mjs +0 -6
  216. package/dist/middlewares/ip.mjs.map +0 -1
  217. package/dist/middlewares/logger.js +0 -12
  218. package/dist/middlewares/logger.js.map +0 -1
  219. package/dist/middlewares/logger.mjs +0 -12
  220. package/dist/middlewares/logger.mjs.map +0 -1
  221. package/dist/middlewares/powered-by.js +0 -14
  222. package/dist/middlewares/powered-by.js.map +0 -1
  223. package/dist/middlewares/powered-by.mjs +0 -14
  224. package/dist/middlewares/powered-by.mjs.map +0 -1
  225. package/dist/middlewares/public.js +0 -34
  226. package/dist/middlewares/public.js.map +0 -1
  227. package/dist/middlewares/public.mjs +0 -32
  228. package/dist/middlewares/public.mjs.map +0 -1
  229. package/dist/middlewares/query.js +0 -40
  230. package/dist/middlewares/query.js.map +0 -1
  231. package/dist/middlewares/query.mjs +0 -38
  232. package/dist/middlewares/query.mjs.map +0 -1
  233. package/dist/middlewares/response-time.js +0 -12
  234. package/dist/middlewares/response-time.js.map +0 -1
  235. package/dist/middlewares/response-time.mjs +0 -12
  236. package/dist/middlewares/response-time.mjs.map +0 -1
  237. package/dist/middlewares/responses.js +0 -15
  238. package/dist/middlewares/responses.js.map +0 -1
  239. package/dist/middlewares/responses.mjs +0 -15
  240. package/dist/middlewares/responses.mjs.map +0 -1
  241. package/dist/middlewares/security.js +0 -78
  242. package/dist/middlewares/security.js.map +0 -1
  243. package/dist/middlewares/security.mjs +0 -76
  244. package/dist/middlewares/security.mjs.map +0 -1
  245. package/dist/middlewares/session.js +0 -30
  246. package/dist/middlewares/session.js.map +0 -1
  247. package/dist/middlewares/session.mjs +0 -28
  248. package/dist/middlewares/session.mjs.map +0 -1
  249. package/dist/migrations/database/5.0.0-discard-drafts.js +0 -106
  250. package/dist/migrations/database/5.0.0-discard-drafts.js.map +0 -1
  251. package/dist/migrations/database/5.0.0-discard-drafts.mjs +0 -106
  252. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +0 -1
  253. package/dist/migrations/draft-publish.js +0 -42
  254. package/dist/migrations/draft-publish.js.map +0 -1
  255. package/dist/migrations/draft-publish.mjs +0 -42
  256. package/dist/migrations/draft-publish.mjs.map +0 -1
  257. package/dist/migrations/i18n.js +0 -54
  258. package/dist/migrations/i18n.js.map +0 -1
  259. package/dist/migrations/i18n.mjs +0 -54
  260. package/dist/migrations/i18n.mjs.map +0 -1
  261. package/dist/migrations/index.js +0 -15
  262. package/dist/migrations/index.js.map +0 -1
  263. package/dist/migrations/index.mjs +0 -15
  264. package/dist/migrations/index.mjs.map +0 -1
  265. package/dist/providers/admin.js +0 -20
  266. package/dist/providers/admin.js.map +0 -1
  267. package/dist/providers/admin.mjs +0 -21
  268. package/dist/providers/admin.mjs.map +0 -1
  269. package/dist/providers/coreStore.js +0 -11
  270. package/dist/providers/coreStore.js.map +0 -1
  271. package/dist/providers/coreStore.mjs +0 -12
  272. package/dist/providers/coreStore.mjs.map +0 -1
  273. package/dist/providers/cron.js +0 -20
  274. package/dist/providers/cron.js.map +0 -1
  275. package/dist/providers/cron.mjs +0 -21
  276. package/dist/providers/cron.mjs.map +0 -1
  277. package/dist/providers/index.js +0 -11
  278. package/dist/providers/index.js.map +0 -1
  279. package/dist/providers/index.mjs +0 -11
  280. package/dist/providers/index.mjs.map +0 -1
  281. package/dist/providers/provider.js +0 -5
  282. package/dist/providers/provider.js.map +0 -1
  283. package/dist/providers/provider.mjs +0 -5
  284. package/dist/providers/provider.mjs.map +0 -1
  285. package/dist/providers/registries.js +0 -35
  286. package/dist/providers/registries.js.map +0 -1
  287. package/dist/providers/registries.mjs +0 -36
  288. package/dist/providers/registries.mjs.map +0 -1
  289. package/dist/providers/telemetry.js +0 -19
  290. package/dist/providers/telemetry.js.map +0 -1
  291. package/dist/providers/telemetry.mjs +0 -20
  292. package/dist/providers/telemetry.mjs.map +0 -1
  293. package/dist/providers/webhooks.js +0 -30
  294. package/dist/providers/webhooks.js.map +0 -1
  295. package/dist/providers/webhooks.mjs +0 -31
  296. package/dist/providers/webhooks.mjs.map +0 -1
  297. package/dist/registries/apis.js +0 -23
  298. package/dist/registries/apis.js.map +0 -1
  299. package/dist/registries/apis.mjs +0 -24
  300. package/dist/registries/apis.mjs.map +0 -1
  301. package/dist/registries/components.js +0 -45
  302. package/dist/registries/components.js.map +0 -1
  303. package/dist/registries/components.mjs +0 -46
  304. package/dist/registries/components.mjs.map +0 -1
  305. package/dist/registries/content-types.js +0 -70
  306. package/dist/registries/content-types.js.map +0 -1
  307. package/dist/registries/content-types.mjs +0 -71
  308. package/dist/registries/content-types.mjs.map +0 -1
  309. package/dist/registries/controllers.js +0 -80
  310. package/dist/registries/controllers.js.map +0 -1
  311. package/dist/registries/controllers.mjs +0 -81
  312. package/dist/registries/controllers.mjs.map +0 -1
  313. package/dist/registries/custom-fields.js +0 -71
  314. package/dist/registries/custom-fields.js.map +0 -1
  315. package/dist/registries/custom-fields.mjs +0 -72
  316. package/dist/registries/custom-fields.mjs.map +0 -1
  317. package/dist/registries/hooks.js +0 -58
  318. package/dist/registries/hooks.js.map +0 -1
  319. package/dist/registries/hooks.mjs +0 -59
  320. package/dist/registries/hooks.mjs.map +0 -1
  321. package/dist/registries/middlewares.js +0 -60
  322. package/dist/registries/middlewares.js.map +0 -1
  323. package/dist/registries/middlewares.mjs +0 -61
  324. package/dist/registries/middlewares.mjs.map +0 -1
  325. package/dist/registries/models.js +0 -16
  326. package/dist/registries/models.js.map +0 -1
  327. package/dist/registries/models.mjs +0 -16
  328. package/dist/registries/models.mjs.map +0 -1
  329. package/dist/registries/modules.js +0 -39
  330. package/dist/registries/modules.js.map +0 -1
  331. package/dist/registries/modules.mjs +0 -40
  332. package/dist/registries/modules.mjs.map +0 -1
  333. package/dist/registries/namespace.js +0 -27
  334. package/dist/registries/namespace.js.map +0 -1
  335. package/dist/registries/namespace.mjs +0 -27
  336. package/dist/registries/namespace.mjs.map +0 -1
  337. package/dist/registries/plugins.js +0 -23
  338. package/dist/registries/plugins.js.map +0 -1
  339. package/dist/registries/plugins.mjs +0 -24
  340. package/dist/registries/plugins.mjs.map +0 -1
  341. package/dist/registries/policies.js +0 -108
  342. package/dist/registries/policies.js.map +0 -1
  343. package/dist/registries/policies.mjs +0 -109
  344. package/dist/registries/policies.mjs.map +0 -1
  345. package/dist/registries/sanitizers.js +0 -25
  346. package/dist/registries/sanitizers.js.map +0 -1
  347. package/dist/registries/sanitizers.mjs +0 -24
  348. package/dist/registries/sanitizers.mjs.map +0 -1
  349. package/dist/registries/services.js +0 -80
  350. package/dist/registries/services.js.map +0 -1
  351. package/dist/registries/services.mjs +0 -81
  352. package/dist/registries/services.mjs.map +0 -1
  353. package/dist/registries/validators.js +0 -25
  354. package/dist/registries/validators.js.map +0 -1
  355. package/dist/registries/validators.mjs +0 -24
  356. package/dist/registries/validators.mjs.map +0 -1
  357. package/dist/services/auth/index.js +0 -81
  358. package/dist/services/auth/index.js.map +0 -1
  359. package/dist/services/auth/index.mjs +0 -80
  360. package/dist/services/auth/index.mjs.map +0 -1
  361. package/dist/services/config.js +0 -47
  362. package/dist/services/config.js.map +0 -1
  363. package/dist/services/config.mjs +0 -47
  364. package/dist/services/config.mjs.map +0 -1
  365. package/dist/services/content-api/index.js +0 -85
  366. package/dist/services/content-api/index.js.map +0 -1
  367. package/dist/services/content-api/index.mjs +0 -84
  368. package/dist/services/content-api/index.mjs.map +0 -1
  369. package/dist/services/content-api/permissions/engine.js +0 -7
  370. package/dist/services/content-api/permissions/engine.js.map +0 -1
  371. package/dist/services/content-api/permissions/engine.mjs +0 -6
  372. package/dist/services/content-api/permissions/engine.mjs.map +0 -1
  373. package/dist/services/content-api/permissions/index.js +0 -87
  374. package/dist/services/content-api/permissions/index.js.map +0 -1
  375. package/dist/services/content-api/permissions/index.mjs +0 -86
  376. package/dist/services/content-api/permissions/index.mjs.map +0 -1
  377. package/dist/services/content-api/permissions/providers/action.js +0 -16
  378. package/dist/services/content-api/permissions/providers/action.js.map +0 -1
  379. package/dist/services/content-api/permissions/providers/action.mjs +0 -17
  380. package/dist/services/content-api/permissions/providers/action.mjs.map +0 -1
  381. package/dist/services/content-api/permissions/providers/condition.js +0 -16
  382. package/dist/services/content-api/permissions/providers/condition.js.map +0 -1
  383. package/dist/services/content-api/permissions/providers/condition.mjs +0 -17
  384. package/dist/services/content-api/permissions/providers/condition.mjs.map +0 -1
  385. package/dist/services/core-store.js +0 -107
  386. package/dist/services/core-store.js.map +0 -1
  387. package/dist/services/core-store.mjs +0 -107
  388. package/dist/services/core-store.mjs.map +0 -1
  389. package/dist/services/cron.js +0 -68
  390. package/dist/services/cron.js.map +0 -1
  391. package/dist/services/cron.mjs +0 -69
  392. package/dist/services/cron.mjs.map +0 -1
  393. package/dist/services/custom-fields.js +0 -10
  394. package/dist/services/custom-fields.js.map +0 -1
  395. package/dist/services/custom-fields.mjs +0 -11
  396. package/dist/services/custom-fields.mjs.map +0 -1
  397. package/dist/services/document-service/attributes/index.js +0 -22
  398. package/dist/services/document-service/attributes/index.js.map +0 -1
  399. package/dist/services/document-service/attributes/index.mjs +0 -22
  400. package/dist/services/document-service/attributes/index.mjs.map +0 -1
  401. package/dist/services/document-service/attributes/transforms.js +0 -20
  402. package/dist/services/document-service/attributes/transforms.js.map +0 -1
  403. package/dist/services/document-service/attributes/transforms.mjs +0 -19
  404. package/dist/services/document-service/attributes/transforms.mjs.map +0 -1
  405. package/dist/services/document-service/common.js +0 -7
  406. package/dist/services/document-service/common.js.map +0 -1
  407. package/dist/services/document-service/common.mjs +0 -7
  408. package/dist/services/document-service/common.mjs.map +0 -1
  409. package/dist/services/document-service/components.js +0 -288
  410. package/dist/services/document-service/components.js.map +0 -1
  411. package/dist/services/document-service/components.mjs +0 -286
  412. package/dist/services/document-service/components.mjs.map +0 -1
  413. package/dist/services/document-service/draft-and-publish.js +0 -69
  414. package/dist/services/document-service/draft-and-publish.js.map +0 -1
  415. package/dist/services/document-service/draft-and-publish.mjs +0 -69
  416. package/dist/services/document-service/draft-and-publish.mjs.map +0 -1
  417. package/dist/services/document-service/entries.js +0 -95
  418. package/dist/services/document-service/entries.js.map +0 -1
  419. package/dist/services/document-service/entries.mjs +0 -95
  420. package/dist/services/document-service/entries.mjs.map +0 -1
  421. package/dist/services/document-service/events.js +0 -47
  422. package/dist/services/document-service/events.js.map +0 -1
  423. package/dist/services/document-service/events.mjs +0 -47
  424. package/dist/services/document-service/events.mjs.map +0 -1
  425. package/dist/services/document-service/index.js +0 -36
  426. package/dist/services/document-service/index.js.map +0 -1
  427. package/dist/services/document-service/index.mjs +0 -36
  428. package/dist/services/document-service/index.mjs.map +0 -1
  429. package/dist/services/document-service/internationalization.js +0 -63
  430. package/dist/services/document-service/internationalization.js.map +0 -1
  431. package/dist/services/document-service/internationalization.mjs +0 -63
  432. package/dist/services/document-service/internationalization.mjs.map +0 -1
  433. package/dist/services/document-service/middlewares/errors.js +0 -25
  434. package/dist/services/document-service/middlewares/errors.js.map +0 -1
  435. package/dist/services/document-service/middlewares/errors.mjs +0 -25
  436. package/dist/services/document-service/middlewares/errors.mjs.map +0 -1
  437. package/dist/services/document-service/middlewares/middleware-manager.js +0 -49
  438. package/dist/services/document-service/middlewares/middleware-manager.js.map +0 -1
  439. package/dist/services/document-service/middlewares/middleware-manager.mjs +0 -49
  440. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +0 -1
  441. package/dist/services/document-service/params.js +0 -8
  442. package/dist/services/document-service/params.js.map +0 -1
  443. package/dist/services/document-service/params.mjs +0 -8
  444. package/dist/services/document-service/params.mjs.map +0 -1
  445. package/dist/services/document-service/repository.js +0 -329
  446. package/dist/services/document-service/repository.js.map +0 -1
  447. package/dist/services/document-service/repository.mjs +0 -329
  448. package/dist/services/document-service/repository.mjs.map +0 -1
  449. package/dist/services/document-service/transform/data.js +0 -15
  450. package/dist/services/document-service/transform/data.js.map +0 -1
  451. package/dist/services/document-service/transform/data.mjs +0 -15
  452. package/dist/services/document-service/transform/data.mjs.map +0 -1
  453. package/dist/services/document-service/transform/fields.js +0 -24
  454. package/dist/services/document-service/transform/fields.js.map +0 -1
  455. package/dist/services/document-service/transform/fields.mjs +0 -24
  456. package/dist/services/document-service/transform/fields.mjs.map +0 -1
  457. package/dist/services/document-service/transform/id-map.js +0 -87
  458. package/dist/services/document-service/transform/id-map.js.map +0 -1
  459. package/dist/services/document-service/transform/id-map.mjs +0 -87
  460. package/dist/services/document-service/transform/id-map.mjs.map +0 -1
  461. package/dist/services/document-service/transform/id-transform.js +0 -33
  462. package/dist/services/document-service/transform/id-transform.js.map +0 -1
  463. package/dist/services/document-service/transform/id-transform.mjs +0 -33
  464. package/dist/services/document-service/transform/id-transform.mjs.map +0 -1
  465. package/dist/services/document-service/transform/populate.js +0 -21
  466. package/dist/services/document-service/transform/populate.js.map +0 -1
  467. package/dist/services/document-service/transform/populate.mjs +0 -21
  468. package/dist/services/document-service/transform/populate.mjs.map +0 -1
  469. package/dist/services/document-service/transform/query.js +0 -9
  470. package/dist/services/document-service/transform/query.js.map +0 -1
  471. package/dist/services/document-service/transform/query.mjs +0 -9
  472. package/dist/services/document-service/transform/query.mjs.map +0 -1
  473. package/dist/services/document-service/transform/relations/extract/data-ids.js +0 -57
  474. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +0 -1
  475. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +0 -57
  476. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +0 -1
  477. package/dist/services/document-service/transform/relations/transform/data-ids.js +0 -76
  478. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +0 -1
  479. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +0 -76
  480. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +0 -1
  481. package/dist/services/document-service/transform/relations/transform/default-locale.js +0 -32
  482. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +0 -1
  483. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +0 -32
  484. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +0 -1
  485. package/dist/services/document-service/transform/relations/utils/dp.js +0 -30
  486. package/dist/services/document-service/transform/relations/utils/dp.js.map +0 -1
  487. package/dist/services/document-service/transform/relations/utils/dp.mjs +0 -30
  488. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +0 -1
  489. package/dist/services/document-service/transform/relations/utils/i18n.js +0 -25
  490. package/dist/services/document-service/transform/relations/utils/i18n.js.map +0 -1
  491. package/dist/services/document-service/transform/relations/utils/i18n.mjs +0 -25
  492. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +0 -1
  493. package/dist/services/document-service/transform/relations/utils/map-relation.js +0 -91
  494. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +0 -1
  495. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +0 -91
  496. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +0 -1
  497. package/dist/services/document-service/utils/populate.js +0 -47
  498. package/dist/services/document-service/utils/populate.js.map +0 -1
  499. package/dist/services/document-service/utils/populate.mjs +0 -47
  500. package/dist/services/document-service/utils/populate.mjs.map +0 -1
  501. package/dist/services/document-service/utils/unidirectional-relations.js +0 -69
  502. package/dist/services/document-service/utils/unidirectional-relations.js.map +0 -1
  503. package/dist/services/document-service/utils/unidirectional-relations.mjs +0 -69
  504. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +0 -1
  505. package/dist/services/entity-service/index.js +0 -169
  506. package/dist/services/entity-service/index.js.map +0 -1
  507. package/dist/services/entity-service/index.mjs +0 -167
  508. package/dist/services/entity-service/index.mjs.map +0 -1
  509. package/dist/services/entity-validator/blocks-validator.js +0 -128
  510. package/dist/services/entity-validator/blocks-validator.js.map +0 -1
  511. package/dist/services/entity-validator/blocks-validator.mjs +0 -128
  512. package/dist/services/entity-validator/blocks-validator.mjs.map +0 -1
  513. package/dist/services/entity-validator/index.js +0 -389
  514. package/dist/services/entity-validator/index.js.map +0 -1
  515. package/dist/services/entity-validator/index.mjs +0 -388
  516. package/dist/services/entity-validator/index.mjs.map +0 -1
  517. package/dist/services/entity-validator/validators.js +0 -241
  518. package/dist/services/entity-validator/validators.js.map +0 -1
  519. package/dist/services/entity-validator/validators.mjs +0 -239
  520. package/dist/services/entity-validator/validators.mjs.map +0 -1
  521. package/dist/services/errors.js +0 -76
  522. package/dist/services/errors.js.map +0 -1
  523. package/dist/services/errors.mjs +0 -74
  524. package/dist/services/errors.mjs.map +0 -1
  525. package/dist/services/event-hub.js +0 -72
  526. package/dist/services/event-hub.js.map +0 -1
  527. package/dist/services/event-hub.mjs +0 -73
  528. package/dist/services/event-hub.mjs.map +0 -1
  529. package/dist/services/features.js +0 -17
  530. package/dist/services/features.js.map +0 -1
  531. package/dist/services/features.mjs +0 -17
  532. package/dist/services/features.mjs.map +0 -1
  533. package/dist/services/fs.js +0 -51
  534. package/dist/services/fs.js.map +0 -1
  535. package/dist/services/fs.mjs +0 -49
  536. package/dist/services/fs.mjs.map +0 -1
  537. package/dist/services/metrics/admin-user-hash.js +0 -14
  538. package/dist/services/metrics/admin-user-hash.js.map +0 -1
  539. package/dist/services/metrics/admin-user-hash.mjs +0 -12
  540. package/dist/services/metrics/admin-user-hash.mjs.map +0 -1
  541. package/dist/services/metrics/index.js +0 -45
  542. package/dist/services/metrics/index.js.map +0 -1
  543. package/dist/services/metrics/index.mjs +0 -46
  544. package/dist/services/metrics/index.mjs.map +0 -1
  545. package/dist/services/metrics/is-truthy.js +0 -9
  546. package/dist/services/metrics/is-truthy.js.map +0 -1
  547. package/dist/services/metrics/is-truthy.mjs +0 -8
  548. package/dist/services/metrics/is-truthy.mjs.map +0 -1
  549. package/dist/services/metrics/middleware.js +0 -25
  550. package/dist/services/metrics/middleware.js.map +0 -1
  551. package/dist/services/metrics/middleware.mjs +0 -26
  552. package/dist/services/metrics/middleware.mjs.map +0 -1
  553. package/dist/services/metrics/rate-limiter.js +0 -21
  554. package/dist/services/metrics/rate-limiter.js.map +0 -1
  555. package/dist/services/metrics/rate-limiter.mjs +0 -22
  556. package/dist/services/metrics/rate-limiter.mjs.map +0 -1
  557. package/dist/services/metrics/sender.js +0 -76
  558. package/dist/services/metrics/sender.js.map +0 -1
  559. package/dist/services/metrics/sender.mjs +0 -70
  560. package/dist/services/metrics/sender.mjs.map +0 -1
  561. package/dist/services/query-params.js +0 -12
  562. package/dist/services/query-params.js.map +0 -1
  563. package/dist/services/query-params.mjs +0 -13
  564. package/dist/services/query-params.mjs.map +0 -1
  565. package/dist/services/reloader.js +0 -36
  566. package/dist/services/reloader.js.map +0 -1
  567. package/dist/services/reloader.mjs +0 -36
  568. package/dist/services/reloader.mjs.map +0 -1
  569. package/dist/services/request-context.js +0 -13
  570. package/dist/services/request-context.js.map +0 -1
  571. package/dist/services/request-context.mjs +0 -14
  572. package/dist/services/request-context.mjs.map +0 -1
  573. package/dist/services/server/admin-api.js +0 -13
  574. package/dist/services/server/admin-api.js.map +0 -1
  575. package/dist/services/server/admin-api.mjs +0 -13
  576. package/dist/services/server/admin-api.mjs.map +0 -1
  577. package/dist/services/server/api.js +0 -30
  578. package/dist/services/server/api.js.map +0 -1
  579. package/dist/services/server/api.mjs +0 -28
  580. package/dist/services/server/api.mjs.map +0 -1
  581. package/dist/services/server/compose-endpoint.js +0 -117
  582. package/dist/services/server/compose-endpoint.js.map +0 -1
  583. package/dist/services/server/compose-endpoint.mjs +0 -116
  584. package/dist/services/server/compose-endpoint.mjs.map +0 -1
  585. package/dist/services/server/content-api.js +0 -12
  586. package/dist/services/server/content-api.js.map +0 -1
  587. package/dist/services/server/content-api.mjs +0 -12
  588. package/dist/services/server/content-api.mjs.map +0 -1
  589. package/dist/services/server/http-server.js +0 -50
  590. package/dist/services/server/http-server.js.map +0 -1
  591. package/dist/services/server/http-server.mjs +0 -48
  592. package/dist/services/server/http-server.mjs.map +0 -1
  593. package/dist/services/server/index.js +0 -87
  594. package/dist/services/server/index.js.map +0 -1
  595. package/dist/services/server/index.mjs +0 -85
  596. package/dist/services/server/index.mjs.map +0 -1
  597. package/dist/services/server/koa.js +0 -52
  598. package/dist/services/server/koa.js.map +0 -1
  599. package/dist/services/server/koa.mjs +0 -48
  600. package/dist/services/server/koa.mjs.map +0 -1
  601. package/dist/services/server/middleware.js +0 -92
  602. package/dist/services/server/middleware.js.map +0 -1
  603. package/dist/services/server/middleware.mjs +0 -90
  604. package/dist/services/server/middleware.mjs.map +0 -1
  605. package/dist/services/server/policy.js +0 -20
  606. package/dist/services/server/policy.js.map +0 -1
  607. package/dist/services/server/policy.mjs +0 -20
  608. package/dist/services/server/policy.mjs.map +0 -1
  609. package/dist/services/server/register-middlewares.js +0 -72
  610. package/dist/services/server/register-middlewares.js.map +0 -1
  611. package/dist/services/server/register-middlewares.mjs +0 -73
  612. package/dist/services/server/register-middlewares.mjs.map +0 -1
  613. package/dist/services/server/register-routes.js +0 -76
  614. package/dist/services/server/register-routes.js.map +0 -1
  615. package/dist/services/server/register-routes.mjs +0 -75
  616. package/dist/services/server/register-routes.mjs.map +0 -1
  617. package/dist/services/server/routing.js +0 -91
  618. package/dist/services/server/routing.js.map +0 -1
  619. package/dist/services/server/routing.mjs +0 -89
  620. package/dist/services/server/routing.mjs.map +0 -1
  621. package/dist/services/utils/dynamic-zones.js +0 -17
  622. package/dist/services/utils/dynamic-zones.js.map +0 -1
  623. package/dist/services/utils/dynamic-zones.mjs +0 -18
  624. package/dist/services/utils/dynamic-zones.mjs.map +0 -1
  625. package/dist/services/webhook-runner.js +0 -133
  626. package/dist/services/webhook-runner.js.map +0 -1
  627. package/dist/services/webhook-runner.mjs +0 -131
  628. package/dist/services/webhook-runner.mjs.map +0 -1
  629. package/dist/services/webhook-store.js +0 -110
  630. package/dist/services/webhook-store.js.map +0 -1
  631. package/dist/services/webhook-store.mjs +0 -110
  632. package/dist/services/webhook-store.mjs.map +0 -1
  633. package/dist/services/worker-queue.js +0 -56
  634. package/dist/services/worker-queue.js.map +0 -1
  635. package/dist/services/worker-queue.mjs +0 -55
  636. package/dist/services/worker-queue.mjs.map +0 -1
  637. package/dist/utils/convert-custom-field-type.js +0 -24
  638. package/dist/utils/convert-custom-field-type.js.map +0 -1
  639. package/dist/utils/convert-custom-field-type.mjs +0 -24
  640. package/dist/utils/convert-custom-field-type.mjs.map +0 -1
  641. package/dist/utils/cron.js +0 -38
  642. package/dist/utils/cron.js.map +0 -1
  643. package/dist/utils/cron.mjs +0 -38
  644. package/dist/utils/cron.mjs.map +0 -1
  645. package/dist/utils/fetch.js +0 -21
  646. package/dist/utils/fetch.js.map +0 -1
  647. package/dist/utils/fetch.mjs +0 -21
  648. package/dist/utils/fetch.mjs.map +0 -1
  649. package/dist/utils/filepath-to-prop-path.js +0 -33
  650. package/dist/utils/filepath-to-prop-path.js.map +0 -1
  651. package/dist/utils/filepath-to-prop-path.mjs +0 -30
  652. package/dist/utils/filepath-to-prop-path.mjs.map +0 -1
  653. package/dist/utils/is-initialized.js +0 -16
  654. package/dist/utils/is-initialized.js.map +0 -1
  655. package/dist/utils/is-initialized.mjs +0 -16
  656. package/dist/utils/is-initialized.mjs.map +0 -1
  657. package/dist/utils/lifecycles.js +0 -9
  658. package/dist/utils/lifecycles.js.map +0 -1
  659. package/dist/utils/lifecycles.mjs +0 -9
  660. package/dist/utils/lifecycles.mjs.map +0 -1
  661. package/dist/utils/load-config-file.js +0 -45
  662. package/dist/utils/load-config-file.js.map +0 -1
  663. package/dist/utils/load-config-file.mjs +0 -42
  664. package/dist/utils/load-config-file.mjs.map +0 -1
  665. package/dist/utils/load-files.js +0 -39
  666. package/dist/utils/load-files.js.map +0 -1
  667. package/dist/utils/load-files.mjs +0 -35
  668. package/dist/utils/load-files.mjs.map +0 -1
  669. package/dist/utils/open-browser.js +0 -11
  670. package/dist/utils/open-browser.js.map +0 -1
  671. package/dist/utils/open-browser.mjs +0 -9
  672. package/dist/utils/open-browser.mjs.map +0 -1
  673. package/dist/utils/resolve-working-dirs.js +0 -13
  674. package/dist/utils/resolve-working-dirs.js.map +0 -1
  675. package/dist/utils/resolve-working-dirs.mjs +0 -11
  676. package/dist/utils/resolve-working-dirs.mjs.map +0 -1
  677. package/dist/utils/signals.js +0 -17
  678. package/dist/utils/signals.js.map +0 -1
  679. package/dist/utils/signals.mjs +0 -17
  680. package/dist/utils/signals.mjs.map +0 -1
  681. package/dist/utils/startup-logger.js +0 -81
  682. package/dist/utils/startup-logger.js.map +0 -1
  683. package/dist/utils/startup-logger.mjs +0 -77
  684. package/dist/utils/startup-logger.mjs.map +0 -1
  685. package/dist/utils/transform-content-types-to-models.js +0 -288
  686. package/dist/utils/transform-content-types-to-models.js.map +0 -1
  687. package/dist/utils/transform-content-types-to-models.mjs +0 -285
  688. package/dist/utils/transform-content-types-to-models.mjs.map +0 -1
  689. package/dist/utils/update-notifier/index.js +0 -85
  690. package/dist/utils/update-notifier/index.js.map +0 -1
  691. package/dist/utils/update-notifier/index.mjs +0 -78
  692. package/dist/utils/update-notifier/index.mjs.map +0 -1
@@ -1,87 +0,0 @@
1
- import { async, contentTypes } from "@strapi/utils";
2
- const hasDraftAndPublish = (uid) => {
3
- const model = strapi.getModel(uid);
4
- return contentTypes.hasDraftAndPublish(model);
5
- };
6
- const encodeKey = (obj) => {
7
- if (!hasDraftAndPublish(obj.uid)) {
8
- delete obj.status;
9
- }
10
- const keys = Object.keys(obj).sort();
11
- return keys.map((key) => `${key}:::${obj[key]}`).join("&&");
12
- };
13
- const createIdMap = ({ strapi: strapi2 }) => {
14
- const loadedIds = /* @__PURE__ */ new Map();
15
- const toLoadIds = /* @__PURE__ */ new Map();
16
- return {
17
- loadedIds,
18
- toLoadIds,
19
- /**
20
- * Register a new document id and its corresponding entity id.
21
- */
22
- add(keyFields) {
23
- const key = encodeKey({ status: "published", locale: null, ...keyFields });
24
- if (loadedIds.has(key))
25
- return;
26
- if (toLoadIds.has(key))
27
- return;
28
- toLoadIds.set(key, keyFields);
29
- },
30
- /**
31
- * Load all ids from the registry.
32
- */
33
- async load() {
34
- const loadIdValues = Array.from(toLoadIds.values());
35
- const idsByUidAndLocale = loadIdValues.reduce((acc, { documentId, ...rest }) => {
36
- const key = encodeKey(rest);
37
- const ids = acc[key] || { ...rest, documentIds: [] };
38
- ids.documentIds.push(documentId);
39
- return { ...acc, [key]: ids };
40
- }, {});
41
- await async.map(
42
- Object.values(idsByUidAndLocale),
43
- async ({ uid, locale, documentIds, status }) => {
44
- const findParams = {
45
- select: ["id", "documentId", "locale", "publishedAt"],
46
- where: {
47
- documentId: { $in: documentIds },
48
- locale: locale || null
49
- }
50
- };
51
- if (hasDraftAndPublish(uid)) {
52
- findParams.where.publishedAt = status === "draft" ? null : { $ne: null };
53
- }
54
- const result = await strapi2?.db?.query(uid).findMany(findParams);
55
- result?.forEach(({ documentId, id, locale: locale2, publishedAt }) => {
56
- const key = encodeKey({
57
- documentId,
58
- uid,
59
- locale: locale2,
60
- status: publishedAt ? "published" : "draft"
61
- });
62
- loadedIds.set(key, id);
63
- });
64
- }
65
- );
66
- toLoadIds.clear();
67
- },
68
- /**
69
- * Get the entity id for a given document id.
70
- */
71
- get(keys) {
72
- const key = encodeKey({ status: "published", locale: null, ...keys });
73
- return loadedIds.get(key);
74
- },
75
- /**
76
- * Clear the registry.
77
- */
78
- clear() {
79
- loadedIds.clear();
80
- toLoadIds.clear();
81
- }
82
- };
83
- };
84
- export {
85
- createIdMap
86
- };
87
- //# sourceMappingURL=id-map.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"id-map.mjs","sources":["../../../../src/services/document-service/transform/id-map.ts"],"sourcesContent":["import { Core, Data, UID } from '@strapi/types';\nimport { async, contentTypes } from '@strapi/utils';\n\nconst hasDraftAndPublish = (uid: UID.CollectionType) => {\n const model = strapi.getModel(uid);\n return contentTypes.hasDraftAndPublish(model);\n};\n\n/**\n * TODO: Find a better way to encode keys than this\n * This converts an object into a string by joining its keys and values,\n * so it can be used as a key in a Map.\n *\n * @example\n * const obj = { a: 1, b: 2 };\n * const key = encodeKey(obj);\n * ^ \"a:::1&&b:::2\"\n */\nconst encodeKey = (obj: any) => {\n // Ignore status field for models without draft and publish\n if (!hasDraftAndPublish(obj.uid)) {\n delete obj.status;\n }\n\n // Sort keys to always keep the same order when encoding\n const keys = Object.keys(obj).sort();\n return keys.map((key) => `${key}:::${obj[key]}`).join('&&');\n};\n\ninterface KeyFields {\n uid: string;\n documentId: Data.ID;\n locale?: string | null;\n status?: 'draft' | 'published';\n}\n\nexport interface IdMap {\n loadedIds: Map<string, string>;\n toLoadIds: Map<string, KeyFields>;\n // Make the Keys type to be the params of add\n add(keys: KeyFields): void;\n load(): Promise<void>;\n get(keys: KeyFields): string | undefined;\n clear(): void;\n}\n\n/**\n * Holds a registry of document ids and their corresponding entity ids.\n */\nconst createIdMap = ({ strapi }: { strapi: Core.Strapi }): IdMap => {\n const loadedIds = new Map();\n const toLoadIds = new Map();\n\n return {\n loadedIds,\n toLoadIds,\n /**\n * Register a new document id and its corresponding entity id.\n */\n add(keyFields: KeyFields) {\n const key = encodeKey({ status: 'published', locale: null, ...keyFields });\n\n // If the id is already loaded, do nothing\n if (loadedIds.has(key)) return;\n // If the id is already in the toLoadIds, do nothing\n if (toLoadIds.has(key)) return;\n\n // Add the id to the toLoadIds\n toLoadIds.set(key, keyFields);\n },\n\n /**\n * Load all ids from the registry.\n */\n async load() {\n // Document Id to Entry Id queries are batched by its uid and locale\n // TODO: Add publication state too\n const loadIdValues = Array.from(toLoadIds.values());\n\n // 1. Group ids to query together\n const idsByUidAndLocale = loadIdValues.reduce((acc, { documentId, ...rest }) => {\n const key = encodeKey(rest);\n const ids = acc[key] || { ...rest, documentIds: [] };\n ids.documentIds.push(documentId);\n return { ...acc, [key]: ids };\n }, {});\n\n // 2. Query ids\n await async.map(\n Object.values(idsByUidAndLocale),\n async ({ uid, locale, documentIds, status }: any) => {\n const findParams = {\n select: ['id', 'documentId', 'locale', 'publishedAt'],\n where: {\n documentId: { $in: documentIds },\n locale: locale || null,\n },\n } as any;\n\n if (hasDraftAndPublish(uid)) {\n findParams.where.publishedAt = status === 'draft' ? null : { $ne: null };\n }\n\n const result = await strapi?.db?.query(uid).findMany(findParams);\n\n // 3. Store result in loadedIds\n result?.forEach(({ documentId, id, locale, publishedAt }: any) => {\n const key = encodeKey({\n documentId,\n uid,\n locale,\n status: publishedAt ? 'published' : 'draft',\n });\n loadedIds.set(key, id);\n });\n }\n );\n\n // 4. Clear toLoadIds\n toLoadIds.clear();\n },\n\n /**\n * Get the entity id for a given document id.\n */\n get(keys: KeyFields) {\n const key = encodeKey({ status: 'published', locale: null, ...keys });\n return loadedIds.get(key);\n },\n\n /**\n * Clear the registry.\n */\n clear() {\n loadedIds.clear();\n toLoadIds.clear();\n },\n };\n};\n\nexport { createIdMap };\n"],"names":["strapi","locale"],"mappings":";AAGA,MAAM,qBAAqB,CAAC,QAA4B;AAChD,QAAA,QAAQ,OAAO,SAAS,GAAG;AAC1B,SAAA,aAAa,mBAAmB,KAAK;AAC9C;AAYA,MAAM,YAAY,CAAC,QAAa;AAE9B,MAAI,CAAC,mBAAmB,IAAI,GAAG,GAAG;AAChC,WAAO,IAAI;AAAA,EACb;AAGA,QAAM,OAAO,OAAO,KAAK,GAAG,EAAE,KAAK;AACnC,SAAO,KAAK,IAAI,CAAC,QAAQ,GAAG,GAAG,MAAM,IAAI,GAAG,CAAC,EAAE,EAAE,KAAK,IAAI;AAC5D;AAsBA,MAAM,cAAc,CAAC,EAAE,QAAAA,cAA6C;AAC5D,QAAA,gCAAgB;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,YACpB;AAAA,UAAA;AAGE,cAAA,mBAAmB,GAAG,GAAG;AAC3B,uBAAW,MAAM,cAAc,WAAW,UAAU,OAAO,EAAE,KAAK;UACpE;AAEM,gBAAA,SAAS,MAAMA,SAAQ,IAAI,MAAM,GAAG,EAAE,SAAS,UAAU;AAGvD,kBAAA,QAAQ,CAAC,EAAE,YAAY,IAAI,QAAAC,SAAQ,kBAAuB;AAChE,kBAAM,MAAM,UAAU;AAAA,cACpB;AAAA,cACA;AAAA,cACA,QAAAA;AAAAA,cACA,QAAQ,cAAc,cAAc;AAAA,YAAA,CACrC;AACS,sBAAA,IAAI,KAAK,EAAE;AAAA,UAAA,CACtB;AAAA,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,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const fp = require("lodash/fp");
4
- const data = require("./data.js");
5
- const fields = require("./fields.js");
6
- const populate = require("./populate.js");
7
- async function transformParamsDocumentId(uid, query) {
8
- let data$1 = query.data;
9
- if (query.data) {
10
- data$1 = await data.transformData(query.data, {
11
- locale: query.locale,
12
- status: query.status,
13
- uid
14
- });
15
- }
16
- let fields$1 = query.fields;
17
- if (query.fields) {
18
- fields$1 = fields.transformFields(query.fields);
19
- }
20
- let populate$1 = query.populate;
21
- if (query.populate) {
22
- populate$1 = await populate.transformPopulate(query.populate, { uid });
23
- }
24
- return {
25
- ...query,
26
- data: data$1,
27
- fields: fields$1,
28
- populate: populate$1
29
- };
30
- }
31
- const curriedTransformParamsDocumentId = fp.curry(transformParamsDocumentId);
32
- exports.transformParamsDocumentId = curriedTransformParamsDocumentId;
33
- //# sourceMappingURL=id-transform.js.map
@@ -1 +0,0 @@
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,SAAM,yBAAyB;;"}
@@ -1,33 +0,0 @@
1
- import { curry } from "lodash/fp";
2
- import { transformData } from "./data.mjs";
3
- import { transformFields } from "./fields.mjs";
4
- import { transformPopulate } from "./populate.mjs";
5
- async function transformParamsDocumentId(uid, query) {
6
- let data = query.data;
7
- if (query.data) {
8
- data = await transformData(query.data, {
9
- locale: query.locale,
10
- status: query.status,
11
- uid
12
- });
13
- }
14
- let fields = query.fields;
15
- if (query.fields) {
16
- fields = transformFields(query.fields);
17
- }
18
- let populate = query.populate;
19
- if (query.populate) {
20
- populate = await transformPopulate(query.populate, { uid });
21
- }
22
- return {
23
- ...query,
24
- data,
25
- fields,
26
- populate
27
- };
28
- }
29
- const curriedTransformParamsDocumentId = curry(transformParamsDocumentId);
30
- export {
31
- curriedTransformParamsDocumentId as transformParamsDocumentId
32
- };
33
- //# sourceMappingURL=id-transform.mjs.map
@@ -1 +0,0 @@
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,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const strapiUtils = require("@strapi/utils");
4
- const fields = require("./fields.js");
5
- const transformPopulate = async (data, opts) => {
6
- return strapiUtils.traverse.traverseQueryPopulate(
7
- async ({ attribute, key, value }, { set }) => {
8
- if (!value || typeof value !== "object" || attribute?.type !== "relation") {
9
- return;
10
- }
11
- if ("fields" in value && Array.isArray(value.fields)) {
12
- value.fields = fields.transformFields(value.fields);
13
- }
14
- set(key, value);
15
- },
16
- { schema: strapi.getModel(opts.uid), getModel: strapi.getModel.bind(strapi) },
17
- data
18
- );
19
- };
20
- exports.transformPopulate = transformPopulate;
21
- //# sourceMappingURL=populate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"populate.js","sources":["../../../../src/services/document-service/transform/populate.ts"],"sourcesContent":["import { traverse } from '@strapi/utils';\nimport type { UID } from '@strapi/types';\n\nimport { type Data } from './types';\nimport { transformFields } from './fields';\n\nexport const transformPopulate = async (data: Data, opts: { uid: UID.Schema }) => {\n return traverse.traverseQueryPopulate(\n async ({ attribute, key, value }, { set }) => {\n if (!value || typeof value !== 'object' || attribute?.type !== 'relation') {\n return;\n }\n\n /*\n If the attribute is a relation\n Look for fields in the value\n and apply the relevant transformation to these objects\n */\n if ('fields' in value && Array.isArray(value.fields)) {\n value.fields = transformFields(value.fields);\n }\n\n set(key, value);\n },\n { schema: strapi.getModel(opts.uid), getModel: strapi.getModel.bind(strapi) },\n data\n );\n};\n"],"names":["traverse","transformFields"],"mappings":";;;;AAMa,MAAA,oBAAoB,OAAO,MAAY,SAA8B;AAChF,SAAOA,YAAS,SAAA;AAAA,IACd,OAAO,EAAE,WAAW,KAAK,SAAS,EAAE,UAAU;AAC5C,UAAI,CAAC,SAAS,OAAO,UAAU,YAAY,WAAW,SAAS,YAAY;AACzE;AAAA,MACF;AAOA,UAAI,YAAY,SAAS,MAAM,QAAQ,MAAM,MAAM,GAAG;AAC9C,cAAA,SAASC,OAAAA,gBAAgB,MAAM,MAAM;AAAA,MAC7C;AAEA,UAAI,KAAK,KAAK;AAAA,IAChB;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,KAAK,GAAG,GAAG,UAAU,OAAO,SAAS,KAAK,MAAM,EAAE;AAAA,IAC5E;AAAA,EAAA;AAEJ;;"}
@@ -1,21 +0,0 @@
1
- import { traverse } from "@strapi/utils";
2
- import { transformFields } from "./fields.mjs";
3
- const transformPopulate = async (data, opts) => {
4
- return traverse.traverseQueryPopulate(
5
- async ({ attribute, key, value }, { set }) => {
6
- if (!value || typeof value !== "object" || attribute?.type !== "relation") {
7
- return;
8
- }
9
- if ("fields" in value && Array.isArray(value.fields)) {
10
- value.fields = transformFields(value.fields);
11
- }
12
- set(key, value);
13
- },
14
- { schema: strapi.getModel(opts.uid), getModel: strapi.getModel.bind(strapi) },
15
- data
16
- );
17
- };
18
- export {
19
- transformPopulate
20
- };
21
- //# sourceMappingURL=populate.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"populate.mjs","sources":["../../../../src/services/document-service/transform/populate.ts"],"sourcesContent":["import { traverse } from '@strapi/utils';\nimport type { UID } from '@strapi/types';\n\nimport { type Data } from './types';\nimport { transformFields } from './fields';\n\nexport const transformPopulate = async (data: Data, opts: { uid: UID.Schema }) => {\n return traverse.traverseQueryPopulate(\n async ({ attribute, key, value }, { set }) => {\n if (!value || typeof value !== 'object' || attribute?.type !== 'relation') {\n return;\n }\n\n /*\n If the attribute is a relation\n Look for fields in the value\n and apply the relevant transformation to these objects\n */\n if ('fields' in value && Array.isArray(value.fields)) {\n value.fields = transformFields(value.fields);\n }\n\n set(key, value);\n },\n { schema: strapi.getModel(opts.uid), getModel: strapi.getModel.bind(strapi) },\n data\n );\n};\n"],"names":[],"mappings":";;AAMa,MAAA,oBAAoB,OAAO,MAAY,SAA8B;AAChF,SAAO,SAAS;AAAA,IACd,OAAO,EAAE,WAAW,KAAK,SAAS,EAAE,UAAU;AAC5C,UAAI,CAAC,SAAS,OAAO,UAAU,YAAY,WAAW,SAAS,YAAY;AACzE;AAAA,MACF;AAOA,UAAI,YAAY,SAAS,MAAM,QAAQ,MAAM,MAAM,GAAG;AAC9C,cAAA,SAAS,gBAAgB,MAAM,MAAM;AAAA,MAC7C;AAEA,UAAI,KAAK,KAAK;AAAA,IAChB;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,KAAK,GAAG,GAAG,UAAU,OAAO,SAAS,KAAK,MAAM,EAAE;AAAA,IAC5E;AAAA,EAAA;AAEJ;"}
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const fp = require("lodash/fp");
4
- const transformParamsToQuery = fp.curry((uid, params) => {
5
- const query = strapi.get("query-params").transform(uid, params);
6
- return fp.assoc("where", { ...params?.lookup, ...query.where }, query);
7
- });
8
- exports.transformParamsToQuery = transformParamsToQuery;
9
- //# sourceMappingURL=query.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query.js","sources":["../../../../src/services/document-service/transform/query.ts"],"sourcesContent":["import type { UID } from '@strapi/types';\n\nimport { curry, assoc } from 'lodash/fp';\n\nconst transformParamsToQuery = curry((uid: UID.Schema, params: any) => {\n const query = strapi.get('query-params').transform(uid, params);\n\n return assoc('where', { ...params?.lookup, ...query.where }, query);\n});\n\nexport { transformParamsToQuery };\n"],"names":["curry","assoc"],"mappings":";;;AAIA,MAAM,yBAAyBA,GAAA,MAAM,CAAC,KAAiB,WAAgB;AACrE,QAAM,QAAQ,OAAO,IAAI,cAAc,EAAE,UAAU,KAAK,MAAM;AAEvD,SAAAC,GAAA,MAAM,SAAS,EAAE,GAAG,QAAQ,QAAQ,GAAG,MAAM,SAAS,KAAK;AACpE,CAAC;;"}
@@ -1,9 +0,0 @@
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
@@ -1 +0,0 @@
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,57 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const fp = require("lodash/fp");
4
- const i18n = require("../utils/i18n.js");
5
- const dp = require("../utils/dp.js");
6
- const mapRelation = require("../utils/map-relation.js");
7
- const addRelationDocId = fp.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
- });
26
- });
27
- }
28
- );
29
- const extractDataIds = (idMap, data, source) => {
30
- return mapRelation.traverseEntityRelations(
31
- async ({ attribute, value }) => {
32
- if (!attribute) {
33
- return;
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);
51
- },
52
- { schema: strapi.getModel(source.uid), getModel: strapi.getModel.bind(strapi) },
53
- data
54
- );
55
- };
56
- exports.extractDataIds = extractDataIds;
57
- //# sourceMappingURL=data-ids.js.map
@@ -1 +0,0 @@
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,GAAA;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,57 +0,0 @@
1
- import { curry } from "lodash/fp";
2
- import { getRelationTargetLocale } from "../utils/i18n.mjs";
3
- import { getRelationTargetStatus } from "../utils/dp.mjs";
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
- });
24
- });
25
- }
26
- );
27
- const extractDataIds = (idMap, data, source) => {
28
- return traverseEntityRelationsCurried(
29
- async ({ attribute, value }) => {
30
- if (!attribute) {
31
- return;
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);
49
- },
50
- { schema: strapi.getModel(source.uid), getModel: strapi.getModel.bind(strapi) },
51
- data
52
- );
53
- };
54
- export {
55
- extractDataIds
56
- };
57
- //# sourceMappingURL=data-ids.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-ids.mjs","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":["traverseEntityRelations","mapRelation"],"mappings":";;;;AAmBA,MAAM,mBAAmB;AAAA,EACvB,CAAC,OAAc,WAAuB,QAAiB,aAA+B;AAC9E,UAAA,eAAe,wBAAwB,UAAU;AAAA,MACrD;AAAA,MACA,WAAW,OAAO;AAAA,MAClB,cAAc,OAAO;AAAA,IAAA,CACtB;AAEK,UAAA,eAAe,wBAAwB,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,SAAAA;AAAAA,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,mBAAY,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,76 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const fp = require("lodash/fp");
4
- const strapiUtils = require("@strapi/utils");
5
- const i18n = require("../utils/i18n.js");
6
- const dp = require("../utils/dp.js");
7
- const mapRelation = require("../utils/map-relation.js");
8
- const getRelationIds = fp.curry(
9
- (idMap, targetUid, source, relation) => {
10
- const targetLocale = i18n.getRelationTargetLocale(relation, {
11
- targetUid,
12
- sourceUid: source.uid,
13
- sourceLocale: source.locale
14
- });
15
- const targetStatus = dp.getRelationTargetStatus(relation, {
16
- targetUid,
17
- sourceUid: source.uid,
18
- sourceStatus: source.status
19
- });
20
- const ids = [];
21
- for (const tStatus of targetStatus) {
22
- const entryId = idMap.get({
23
- uid: targetUid,
24
- documentId: relation.documentId,
25
- locale: targetLocale,
26
- status: tStatus
27
- });
28
- if (entryId)
29
- ids.push(entryId);
30
- }
31
- if (!ids.length && !source.allowMissingId) {
32
- throw new strapiUtils.errors.ValidationError(
33
- `Document with id "${relation.documentId}", locale "${targetLocale}" not found`
34
- );
35
- }
36
- return ids;
37
- }
38
- );
39
- const transformDataIdsVisitor = (idMap, data, source) => {
40
- return mapRelation.traverseEntityRelations(
41
- async ({ key, value, attribute }, { set }) => {
42
- if (!attribute) {
43
- return;
44
- }
45
- const targetUid = attribute.target;
46
- const getIds = getRelationIds(idMap, targetUid, source);
47
- const newRelation = await mapRelation.mapRelation((relation) => {
48
- if (!relation || !relation.documentId) {
49
- return relation;
50
- }
51
- const ids = getIds(relation);
52
- const position = { ...relation.position };
53
- if (position.before) {
54
- const beforeRelation = { ...relation, ...position, documentId: position.before };
55
- position.before = getIds(beforeRelation).at(0);
56
- }
57
- if (position.after) {
58
- const afterRelation = { ...relation, ...position, documentId: position.after };
59
- position.after = getIds(afterRelation).at(0);
60
- }
61
- return ids?.map((id) => {
62
- const newRelation2 = { id };
63
- if (relation.position) {
64
- newRelation2.position = position;
65
- }
66
- return newRelation2;
67
- });
68
- }, value);
69
- set(key, newRelation);
70
- },
71
- { schema: strapi.getModel(source.uid), getModel: strapi.getModel.bind(strapi) },
72
- data
73
- );
74
- };
75
- exports.transformDataIdsVisitor = transformDataIdsVisitor;
76
- //# sourceMappingURL=data-ids.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-ids.js","sources":["../../../../../../src/services/document-service/transform/relations/transform/data-ids.ts"],"sourcesContent":["import { curry } from 'lodash/fp';\n\nimport type { UID } from '@strapi/types';\nimport { errors } from '@strapi/utils';\n\nimport { ID, LongHandDocument } from '../utils/types';\nimport { IdMap } from '../../id-map';\nimport { getRelationTargetLocale } from '../utils/i18n';\nimport { getRelationTargetStatus } from '../utils/dp';\nimport { mapRelation, traverseEntityRelations } from '../utils/map-relation';\n\ninterface Options {\n uid: UID.Schema;\n locale?: string | null;\n status?: 'draft' | 'published';\n allowMissingId?: boolean; // Whether to ignore missing ids and not throw any error\n}\n\n/**\n * Get the entry ids for a given documentId.\n */\nconst getRelationIds = curry(\n (idMap: IdMap, targetUid: UID.Schema, source: Options, relation: LongHandDocument) => {\n // locale to connect to\n const targetLocale = getRelationTargetLocale(relation, {\n targetUid,\n sourceUid: source.uid,\n sourceLocale: source.locale,\n });\n\n // status(es) to connect to\n const targetStatus = getRelationTargetStatus(relation, {\n targetUid,\n sourceUid: source.uid,\n sourceStatus: source.status,\n });\n\n const ids: ID[] = [];\n\n // Find mapping between documentID -> id(s).\n // There are scenarios where a single documentID can map to multiple ids.\n // e.g when connecting Non DP -> DP and connecting to both the draft and publish version at the same time\n for (const tStatus of targetStatus) {\n const entryId = idMap.get({\n uid: targetUid,\n documentId: relation.documentId,\n locale: targetLocale,\n status: tStatus,\n });\n\n if (entryId) ids.push(entryId);\n }\n\n if (!ids.length && !source.allowMissingId) {\n throw new errors.ValidationError(\n `Document with id \"${relation.documentId}\", locale \"${targetLocale}\" not found`\n );\n }\n\n return ids;\n }\n);\n\n/**\n * Iterate over all relations of a data object and transform all relational document ids to entity ids.\n */\nconst transformDataIdsVisitor = (idMap: IdMap, data: Record<string, any>, source: Options) => {\n return traverseEntityRelations(\n async ({ key, value, attribute }, { set }) => {\n if (!attribute) {\n return;\n }\n\n // Find relational attributes, and return the document ids\n const targetUid = attribute.target!;\n const getIds = getRelationIds(idMap, targetUid, source);\n\n // Transform the relation documentId to entity id\n const newRelation = await mapRelation((relation) => {\n if (!relation || !relation.documentId) {\n return relation;\n }\n\n const ids = getIds(relation);\n\n // Handle positional arguments\n const position = { ...relation.position };\n\n if (position.before) {\n const beforeRelation = { ...relation, ...position, documentId: position.before };\n position.before = getIds(beforeRelation).at(0);\n }\n\n if (position.after) {\n const afterRelation = { ...relation, ...position, documentId: position.after };\n position.after = getIds(afterRelation).at(0);\n }\n\n // Transform all ids to new relations\n return ids?.map((id) => {\n const newRelation = { id } as typeof relation;\n if (relation.position) {\n newRelation.position = position;\n }\n\n return newRelation;\n });\n }, value as any);\n\n set(key, newRelation as any);\n },\n { schema: strapi.getModel(source.uid), getModel: strapi.getModel.bind(strapi) },\n data\n );\n};\n\nexport { transformDataIdsVisitor };\n"],"names":["curry","getRelationTargetLocale","getRelationTargetStatus","errors","traverseEntityRelations","mapRelation","newRelation"],"mappings":";;;;;;;AAqBA,MAAM,iBAAiBA,GAAA;AAAA,EACrB,CAAC,OAAc,WAAuB,QAAiB,aAA+B;AAE9E,UAAA,eAAeC,6BAAwB,UAAU;AAAA,MACrD;AAAA,MACA,WAAW,OAAO;AAAA,MAClB,cAAc,OAAO;AAAA,IAAA,CACtB;AAGK,UAAA,eAAeC,2BAAwB,UAAU;AAAA,MACrD;AAAA,MACA,WAAW,OAAO;AAAA,MAClB,cAAc,OAAO;AAAA,IAAA,CACtB;AAED,UAAM,MAAY,CAAA;AAKlB,eAAW,WAAW,cAAc;AAC5B,YAAA,UAAU,MAAM,IAAI;AAAA,QACxB,KAAK;AAAA,QACL,YAAY,SAAS;AAAA,QACrB,QAAQ;AAAA,QACR,QAAQ;AAAA,MAAA,CACT;AAEG,UAAA;AAAS,YAAI,KAAK,OAAO;AAAA,IAC/B;AAEA,QAAI,CAAC,IAAI,UAAU,CAAC,OAAO,gBAAgB;AACzC,YAAM,IAAIC,YAAO,OAAA;AAAA,QACf,qBAAqB,SAAS,UAAU,cAAc,YAAY;AAAA,MAAA;AAAA,IAEtE;AAEO,WAAA;AAAA,EACT;AACF;AAKA,MAAM,0BAA0B,CAAC,OAAc,MAA2B,WAAoB;AACrF,SAAAC,YAAA;AAAA,IACL,OAAO,EAAE,KAAK,OAAO,aAAa,EAAE,UAAU;AAC5C,UAAI,CAAC,WAAW;AACd;AAAA,MACF;AAGA,YAAM,YAAY,UAAU;AAC5B,YAAM,SAAS,eAAe,OAAO,WAAW,MAAM;AAGtD,YAAM,cAAc,MAAMC,wBAAY,CAAC,aAAa;AAClD,YAAI,CAAC,YAAY,CAAC,SAAS,YAAY;AAC9B,iBAAA;AAAA,QACT;AAEM,cAAA,MAAM,OAAO,QAAQ;AAG3B,cAAM,WAAW,EAAE,GAAG,SAAS,SAAS;AAExC,YAAI,SAAS,QAAQ;AACb,gBAAA,iBAAiB,EAAE,GAAG,UAAU,GAAG,UAAU,YAAY,SAAS;AACxE,mBAAS,SAAS,OAAO,cAAc,EAAE,GAAG,CAAC;AAAA,QAC/C;AAEA,YAAI,SAAS,OAAO;AACZ,gBAAA,gBAAgB,EAAE,GAAG,UAAU,GAAG,UAAU,YAAY,SAAS;AACvE,mBAAS,QAAQ,OAAO,aAAa,EAAE,GAAG,CAAC;AAAA,QAC7C;AAGO,eAAA,KAAK,IAAI,CAAC,OAAO;AAChBC,gBAAAA,eAAc,EAAE;AACtB,cAAI,SAAS,UAAU;AACrBA,yBAAY,WAAW;AAAA,UACzB;AAEOA,iBAAAA;AAAAA,QAAA,CACR;AAAA,SACA,KAAY;AAEf,UAAI,KAAK,WAAkB;AAAA,IAC7B;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,OAAO,GAAG,GAAG,UAAU,OAAO,SAAS,KAAK,MAAM,EAAE;AAAA,IAC9E;AAAA,EAAA;AAEJ;;"}
@@ -1,76 +0,0 @@
1
- import { curry } from "lodash/fp";
2
- import { errors } from "@strapi/utils";
3
- import { getRelationTargetLocale } from "../utils/i18n.mjs";
4
- import { getRelationTargetStatus } from "../utils/dp.mjs";
5
- import { traverseEntityRelations as traverseEntityRelationsCurried, mapRelation as mapRelationCurried } from "../utils/map-relation.mjs";
6
- const getRelationIds = curry(
7
- (idMap, targetUid, source, relation) => {
8
- const targetLocale = getRelationTargetLocale(relation, {
9
- targetUid,
10
- sourceUid: source.uid,
11
- sourceLocale: source.locale
12
- });
13
- const targetStatus = getRelationTargetStatus(relation, {
14
- targetUid,
15
- sourceUid: source.uid,
16
- sourceStatus: source.status
17
- });
18
- const ids = [];
19
- for (const tStatus of targetStatus) {
20
- const entryId = idMap.get({
21
- uid: targetUid,
22
- documentId: relation.documentId,
23
- locale: targetLocale,
24
- status: tStatus
25
- });
26
- if (entryId)
27
- ids.push(entryId);
28
- }
29
- if (!ids.length && !source.allowMissingId) {
30
- throw new errors.ValidationError(
31
- `Document with id "${relation.documentId}", locale "${targetLocale}" not found`
32
- );
33
- }
34
- return ids;
35
- }
36
- );
37
- const transformDataIdsVisitor = (idMap, data, source) => {
38
- return traverseEntityRelationsCurried(
39
- async ({ key, value, attribute }, { set }) => {
40
- if (!attribute) {
41
- return;
42
- }
43
- const targetUid = attribute.target;
44
- const getIds = getRelationIds(idMap, targetUid, source);
45
- const newRelation = await mapRelationCurried((relation) => {
46
- if (!relation || !relation.documentId) {
47
- return relation;
48
- }
49
- const ids = getIds(relation);
50
- const position = { ...relation.position };
51
- if (position.before) {
52
- const beforeRelation = { ...relation, ...position, documentId: position.before };
53
- position.before = getIds(beforeRelation).at(0);
54
- }
55
- if (position.after) {
56
- const afterRelation = { ...relation, ...position, documentId: position.after };
57
- position.after = getIds(afterRelation).at(0);
58
- }
59
- return ids?.map((id) => {
60
- const newRelation2 = { id };
61
- if (relation.position) {
62
- newRelation2.position = position;
63
- }
64
- return newRelation2;
65
- });
66
- }, value);
67
- set(key, newRelation);
68
- },
69
- { schema: strapi.getModel(source.uid), getModel: strapi.getModel.bind(strapi) },
70
- data
71
- );
72
- };
73
- export {
74
- transformDataIdsVisitor
75
- };
76
- //# sourceMappingURL=data-ids.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-ids.mjs","sources":["../../../../../../src/services/document-service/transform/relations/transform/data-ids.ts"],"sourcesContent":["import { curry } from 'lodash/fp';\n\nimport type { UID } from '@strapi/types';\nimport { errors } from '@strapi/utils';\n\nimport { ID, LongHandDocument } from '../utils/types';\nimport { IdMap } from '../../id-map';\nimport { getRelationTargetLocale } from '../utils/i18n';\nimport { getRelationTargetStatus } from '../utils/dp';\nimport { mapRelation, traverseEntityRelations } from '../utils/map-relation';\n\ninterface Options {\n uid: UID.Schema;\n locale?: string | null;\n status?: 'draft' | 'published';\n allowMissingId?: boolean; // Whether to ignore missing ids and not throw any error\n}\n\n/**\n * Get the entry ids for a given documentId.\n */\nconst getRelationIds = curry(\n (idMap: IdMap, targetUid: UID.Schema, source: Options, relation: LongHandDocument) => {\n // locale to connect to\n const targetLocale = getRelationTargetLocale(relation, {\n targetUid,\n sourceUid: source.uid,\n sourceLocale: source.locale,\n });\n\n // status(es) to connect to\n const targetStatus = getRelationTargetStatus(relation, {\n targetUid,\n sourceUid: source.uid,\n sourceStatus: source.status,\n });\n\n const ids: ID[] = [];\n\n // Find mapping between documentID -> id(s).\n // There are scenarios where a single documentID can map to multiple ids.\n // e.g when connecting Non DP -> DP and connecting to both the draft and publish version at the same time\n for (const tStatus of targetStatus) {\n const entryId = idMap.get({\n uid: targetUid,\n documentId: relation.documentId,\n locale: targetLocale,\n status: tStatus,\n });\n\n if (entryId) ids.push(entryId);\n }\n\n if (!ids.length && !source.allowMissingId) {\n throw new errors.ValidationError(\n `Document with id \"${relation.documentId}\", locale \"${targetLocale}\" not found`\n );\n }\n\n return ids;\n }\n);\n\n/**\n * Iterate over all relations of a data object and transform all relational document ids to entity ids.\n */\nconst transformDataIdsVisitor = (idMap: IdMap, data: Record<string, any>, source: Options) => {\n return traverseEntityRelations(\n async ({ key, value, attribute }, { set }) => {\n if (!attribute) {\n return;\n }\n\n // Find relational attributes, and return the document ids\n const targetUid = attribute.target!;\n const getIds = getRelationIds(idMap, targetUid, source);\n\n // Transform the relation documentId to entity id\n const newRelation = await mapRelation((relation) => {\n if (!relation || !relation.documentId) {\n return relation;\n }\n\n const ids = getIds(relation);\n\n // Handle positional arguments\n const position = { ...relation.position };\n\n if (position.before) {\n const beforeRelation = { ...relation, ...position, documentId: position.before };\n position.before = getIds(beforeRelation).at(0);\n }\n\n if (position.after) {\n const afterRelation = { ...relation, ...position, documentId: position.after };\n position.after = getIds(afterRelation).at(0);\n }\n\n // Transform all ids to new relations\n return ids?.map((id) => {\n const newRelation = { id } as typeof relation;\n if (relation.position) {\n newRelation.position = position;\n }\n\n return newRelation;\n });\n }, value as any);\n\n set(key, newRelation as any);\n },\n { schema: strapi.getModel(source.uid), getModel: strapi.getModel.bind(strapi) },\n data\n );\n};\n\nexport { transformDataIdsVisitor };\n"],"names":["traverseEntityRelations","mapRelation","newRelation"],"mappings":";;;;;AAqBA,MAAM,iBAAiB;AAAA,EACrB,CAAC,OAAc,WAAuB,QAAiB,aAA+B;AAE9E,UAAA,eAAe,wBAAwB,UAAU;AAAA,MACrD;AAAA,MACA,WAAW,OAAO;AAAA,MAClB,cAAc,OAAO;AAAA,IAAA,CACtB;AAGK,UAAA,eAAe,wBAAwB,UAAU;AAAA,MACrD;AAAA,MACA,WAAW,OAAO;AAAA,MAClB,cAAc,OAAO;AAAA,IAAA,CACtB;AAED,UAAM,MAAY,CAAA;AAKlB,eAAW,WAAW,cAAc;AAC5B,YAAA,UAAU,MAAM,IAAI;AAAA,QACxB,KAAK;AAAA,QACL,YAAY,SAAS;AAAA,QACrB,QAAQ;AAAA,QACR,QAAQ;AAAA,MAAA,CACT;AAEG,UAAA;AAAS,YAAI,KAAK,OAAO;AAAA,IAC/B;AAEA,QAAI,CAAC,IAAI,UAAU,CAAC,OAAO,gBAAgB;AACzC,YAAM,IAAI,OAAO;AAAA,QACf,qBAAqB,SAAS,UAAU,cAAc,YAAY;AAAA,MAAA;AAAA,IAEtE;AAEO,WAAA;AAAA,EACT;AACF;AAKA,MAAM,0BAA0B,CAAC,OAAc,MAA2B,WAAoB;AACrF,SAAAA;AAAAA,IACL,OAAO,EAAE,KAAK,OAAO,aAAa,EAAE,UAAU;AAC5C,UAAI,CAAC,WAAW;AACd;AAAA,MACF;AAGA,YAAM,YAAY,UAAU;AAC5B,YAAM,SAAS,eAAe,OAAO,WAAW,MAAM;AAGtD,YAAM,cAAc,MAAMC,mBAAY,CAAC,aAAa;AAClD,YAAI,CAAC,YAAY,CAAC,SAAS,YAAY;AAC9B,iBAAA;AAAA,QACT;AAEM,cAAA,MAAM,OAAO,QAAQ;AAG3B,cAAM,WAAW,EAAE,GAAG,SAAS,SAAS;AAExC,YAAI,SAAS,QAAQ;AACb,gBAAA,iBAAiB,EAAE,GAAG,UAAU,GAAG,UAAU,YAAY,SAAS;AACxE,mBAAS,SAAS,OAAO,cAAc,EAAE,GAAG,CAAC;AAAA,QAC/C;AAEA,YAAI,SAAS,OAAO;AACZ,gBAAA,gBAAgB,EAAE,GAAG,UAAU,GAAG,UAAU,YAAY,SAAS;AACvE,mBAAS,QAAQ,OAAO,aAAa,EAAE,GAAG,CAAC;AAAA,QAC7C;AAGO,eAAA,KAAK,IAAI,CAAC,OAAO;AAChBC,gBAAAA,eAAc,EAAE;AACtB,cAAI,SAAS,UAAU;AACrBA,yBAAY,WAAW;AAAA,UACzB;AAEOA,iBAAAA;AAAAA,QAAA,CACR;AAAA,SACA,KAAY;AAEf,UAAI,KAAK,WAAkB;AAAA,IAC7B;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,OAAO,GAAG,GAAG,UAAU,OAAO,SAAS,KAAK,MAAM,EAAE;AAAA,IAC9E;AAAA,EAAA;AAEJ;"}
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const i18n = require("../utils/i18n.js");
4
- const mapRelation = require("../utils/map-relation.js");
5
- const setDefaultLocaleToRelations = (data, uid) => {
6
- if (i18n.isLocalizedContentType(uid)) {
7
- return data;
8
- }
9
- let defaultLocale;
10
- return mapRelation.traverseEntityRelations(
11
- async ({ key, value }, { set }) => {
12
- const relation = await mapRelation.mapRelation(async (relation2) => {
13
- if (!relation2 || !relation2?.documentId || relation2?.locale) {
14
- return relation2;
15
- }
16
- if (!defaultLocale) {
17
- defaultLocale = await i18n.getDefaultLocale();
18
- }
19
- const position = relation2.position;
20
- if (position && typeof position === "object" && !position.locale) {
21
- relation2.position.locale = defaultLocale;
22
- }
23
- return { ...relation2, locale: defaultLocale };
24
- }, value);
25
- set(key, relation);
26
- },
27
- { schema: strapi.getModel(uid), getModel: strapi.getModel.bind(strapi) },
28
- data
29
- );
30
- };
31
- exports.setDefaultLocaleToRelations = setDefaultLocaleToRelations;
32
- //# sourceMappingURL=default-locale.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"default-locale.js","sources":["../../../../../../src/services/document-service/transform/relations/transform/default-locale.ts"],"sourcesContent":["import type { UID } from '@strapi/types';\n\nimport { getDefaultLocale, isLocalizedContentType } from '../utils/i18n';\nimport { mapRelation, traverseEntityRelations } from '../utils/map-relation';\n\n/**\n * In scenarios like Non i18n CT -> i18n CT\n * relations can be connected to multiple locales,\n * in case user does not provide the locale, this sets it to the default one.\n */\nconst setDefaultLocaleToRelations = (data: Record<string, any>, uid: UID.Schema) => {\n // I18n CT -> anything will already have a locale set (source locale)\n if (isLocalizedContentType(uid)) {\n return data;\n }\n\n // Store the default locale to avoid multiple calls\n let defaultLocale: string;\n\n /**\n * Traverse the entity input data and set the default locale to relations\n */\n return traverseEntityRelations(\n async ({ key, value }, { set }) => {\n /**\n * Assign default locale on long hand expressed relations\n * e.g { documentId } -> { documentId, locale }\n */\n const relation = await mapRelation(async (relation) => {\n if (!relation || !relation?.documentId || relation?.locale) {\n return relation;\n }\n\n // Set default locale if not provided\n if (!defaultLocale) {\n defaultLocale = await getDefaultLocale();\n }\n\n // Assign default locale to the positional argument\n const position = relation.position;\n if (position && typeof position === 'object' && !position.locale) {\n relation.position.locale = defaultLocale;\n }\n\n return { ...relation, locale: defaultLocale };\n }, value as any);\n\n // @ts-expect-error - fix type\n set(key, relation);\n },\n { schema: strapi.getModel(uid), getModel: strapi.getModel.bind(strapi) },\n data\n );\n};\n\nexport { setDefaultLocaleToRelations };\n"],"names":["isLocalizedContentType","traverseEntityRelations","mapRelation","relation","getDefaultLocale"],"mappings":";;;;AAUM,MAAA,8BAA8B,CAAC,MAA2B,QAAoB;AAE9E,MAAAA,KAAAA,uBAAuB,GAAG,GAAG;AACxB,WAAA;AAAA,EACT;AAGI,MAAA;AAKG,SAAAC,YAAA;AAAA,IACL,OAAO,EAAE,KAAK,SAAS,EAAE,UAAU;AAKjC,YAAM,WAAW,MAAMC,wBAAY,OAAOC,cAAa;AACrD,YAAI,CAACA,aAAY,CAACA,WAAU,cAAcA,WAAU,QAAQ;AACnDA,iBAAAA;AAAAA,QACT;AAGA,YAAI,CAAC,eAAe;AAClB,0BAAgB,MAAMC,KAAAA;QACxB;AAGA,cAAM,WAAWD,UAAS;AAC1B,YAAI,YAAY,OAAO,aAAa,YAAY,CAAC,SAAS,QAAQ;AAChEA,oBAAS,SAAS,SAAS;AAAA,QAC7B;AAEA,eAAO,EAAE,GAAGA,WAAU,QAAQ,cAAc;AAAA,SAC3C,KAAY;AAGf,UAAI,KAAK,QAAQ;AAAA,IACnB;AAAA,IACA,EAAE,QAAQ,OAAO,SAAS,GAAG,GAAG,UAAU,OAAO,SAAS,KAAK,MAAM,EAAE;AAAA,IACvE;AAAA,EAAA;AAEJ;;"}