@strapi/core 0.0.0-experimental.2363945b79274c79e6505e5a6c3cdec876ed8cec → 0.0.0-experimental.25041a58cd2af628963c29620b4657416a4d772e

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.

Potentially problematic release.


This version of @strapi/core might be problematic. Click here for more details.

Files changed (832) hide show
  1. package/LICENSE +18 -3
  2. package/dist/Strapi.d.ts +52 -59
  3. package/dist/Strapi.d.ts.map +1 -1
  4. package/dist/Strapi.js +199 -211
  5. package/dist/Strapi.js.map +1 -1
  6. package/dist/Strapi.mjs +168 -201
  7. package/dist/Strapi.mjs.map +1 -1
  8. package/dist/configuration/config-loader.d.ts.map +1 -1
  9. package/dist/configuration/config-loader.js +9 -5
  10. package/dist/configuration/config-loader.js.map +1 -1
  11. package/dist/configuration/config-loader.mjs +9 -5
  12. package/dist/configuration/config-loader.mjs.map +1 -1
  13. package/dist/configuration/get-dirs.d.ts +10 -0
  14. package/dist/configuration/get-dirs.d.ts.map +1 -0
  15. package/dist/{utils → configuration}/get-dirs.js +3 -2
  16. package/dist/configuration/get-dirs.js.map +1 -0
  17. package/dist/{utils → configuration}/get-dirs.mjs +3 -2
  18. package/dist/configuration/get-dirs.mjs.map +1 -0
  19. package/dist/configuration/index.d.ts +4 -7
  20. package/dist/configuration/index.d.ts.map +1 -1
  21. package/dist/configuration/index.js +14 -10
  22. package/dist/configuration/index.js.map +1 -1
  23. package/dist/configuration/index.mjs +10 -7
  24. package/dist/configuration/index.mjs.map +1 -1
  25. package/dist/configuration/urls.d.ts +8 -0
  26. package/dist/configuration/urls.d.ts.map +1 -0
  27. package/dist/configuration/urls.js +68 -0
  28. package/dist/configuration/urls.js.map +1 -0
  29. package/dist/configuration/urls.mjs +66 -0
  30. package/dist/configuration/urls.mjs.map +1 -0
  31. package/dist/container.d.ts +2 -2
  32. package/dist/container.d.ts.map +1 -1
  33. package/dist/container.js.map +1 -1
  34. package/dist/container.mjs.map +1 -1
  35. package/dist/core-api/controller/collection-type.d.ts +3 -3
  36. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  37. package/dist/core-api/controller/collection-type.js +6 -3
  38. package/dist/core-api/controller/collection-type.js.map +1 -1
  39. package/dist/core-api/controller/collection-type.mjs +3 -0
  40. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  41. package/dist/core-api/controller/index.d.ts +3 -3
  42. package/dist/core-api/controller/index.d.ts.map +1 -1
  43. package/dist/core-api/controller/index.js +7 -7
  44. package/dist/core-api/controller/index.js.map +1 -1
  45. package/dist/core-api/controller/index.mjs +6 -6
  46. package/dist/core-api/controller/index.mjs.map +1 -1
  47. package/dist/core-api/controller/single-type.d.ts +3 -3
  48. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  49. package/dist/core-api/controller/single-type.js +3 -2
  50. package/dist/core-api/controller/single-type.js.map +1 -1
  51. package/dist/core-api/controller/single-type.mjs +1 -0
  52. package/dist/core-api/controller/single-type.mjs.map +1 -1
  53. package/dist/core-api/controller/transform.d.ts +2 -2
  54. package/dist/core-api/controller/transform.d.ts.map +1 -1
  55. package/dist/core-api/controller/transform.js +10 -13
  56. package/dist/core-api/controller/transform.js.map +1 -1
  57. package/dist/core-api/controller/transform.mjs +2 -5
  58. package/dist/core-api/controller/transform.mjs.map +1 -1
  59. package/dist/core-api/routes/index.d.ts.map +1 -1
  60. package/dist/core-api/service/collection-type.d.ts +11 -17
  61. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  62. package/dist/core-api/service/collection-type.js +18 -7
  63. package/dist/core-api/service/collection-type.js.map +1 -1
  64. package/dist/core-api/service/collection-type.mjs +19 -8
  65. package/dist/core-api/service/collection-type.mjs.map +1 -1
  66. package/dist/core-api/service/index.d.ts +3 -3
  67. package/dist/core-api/service/index.d.ts.map +1 -1
  68. package/dist/core-api/service/index.js.map +1 -1
  69. package/dist/core-api/service/index.mjs.map +1 -1
  70. package/dist/core-api/service/pagination.d.ts +4 -11
  71. package/dist/core-api/service/pagination.d.ts.map +1 -1
  72. package/dist/core-api/service/pagination.js +18 -44
  73. package/dist/core-api/service/pagination.js.map +1 -1
  74. package/dist/core-api/service/pagination.mjs +16 -42
  75. package/dist/core-api/service/pagination.mjs.map +1 -1
  76. package/dist/core-api/service/single-type.d.ts +5 -5
  77. package/dist/core-api/service/single-type.d.ts.map +1 -1
  78. package/dist/core-api/service/single-type.js +12 -6
  79. package/dist/core-api/service/single-type.js.map +1 -1
  80. package/dist/core-api/service/single-type.mjs +12 -6
  81. package/dist/core-api/service/single-type.mjs.map +1 -1
  82. package/dist/domain/content-type/index.d.ts +1 -1
  83. package/dist/domain/content-type/index.d.ts.map +1 -1
  84. package/dist/domain/content-type/index.js +7 -4
  85. package/dist/domain/content-type/index.js.map +1 -1
  86. package/dist/domain/content-type/index.mjs +3 -0
  87. package/dist/domain/content-type/index.mjs.map +1 -1
  88. package/dist/domain/content-type/validator.d.ts.map +1 -1
  89. package/dist/domain/content-type/validator.js +1 -1
  90. package/dist/domain/content-type/validator.js.map +1 -1
  91. package/dist/domain/content-type/validator.mjs +2 -2
  92. package/dist/domain/content-type/validator.mjs.map +1 -1
  93. package/dist/domain/module/index.d.ts +24 -23
  94. package/dist/domain/module/index.d.ts.map +1 -1
  95. package/dist/domain/module/index.js +3 -3
  96. package/dist/domain/module/index.js.map +1 -1
  97. package/dist/domain/module/index.mjs +4 -4
  98. package/dist/domain/module/index.mjs.map +1 -1
  99. package/dist/ee/index.d.ts +4 -2
  100. package/dist/ee/index.d.ts.map +1 -1
  101. package/dist/ee/index.js +9 -4
  102. package/dist/ee/index.js.map +1 -1
  103. package/dist/ee/index.mjs +6 -1
  104. package/dist/ee/index.mjs.map +1 -1
  105. package/dist/ee/license.d.ts +2 -2
  106. package/dist/ee/license.d.ts.map +1 -1
  107. package/dist/ee/license.js +2 -1
  108. package/dist/ee/license.js.map +1 -1
  109. package/dist/ee/license.mjs +2 -1
  110. package/dist/ee/license.mjs.map +1 -1
  111. package/dist/factories.d.ts +10 -10
  112. package/dist/factories.d.ts.map +1 -1
  113. package/dist/factories.js +10 -6
  114. package/dist/factories.js.map +1 -1
  115. package/dist/factories.mjs +6 -2
  116. package/dist/factories.mjs.map +1 -1
  117. package/dist/index.d.ts +18 -2
  118. package/dist/index.d.ts.map +1 -1
  119. package/dist/index.js +25 -1
  120. package/dist/index.js.map +1 -1
  121. package/dist/index.mjs +27 -3
  122. package/dist/index.mjs.map +1 -1
  123. package/dist/loaders/admin.d.ts +2 -2
  124. package/dist/loaders/admin.d.ts.map +1 -1
  125. package/dist/loaders/admin.js +0 -1
  126. package/dist/loaders/admin.js.map +1 -1
  127. package/dist/loaders/admin.mjs +0 -1
  128. package/dist/loaders/admin.mjs.map +1 -1
  129. package/dist/loaders/apis.d.ts +2 -2
  130. package/dist/loaders/apis.d.ts.map +1 -1
  131. package/dist/loaders/apis.js +13 -13
  132. package/dist/loaders/apis.js.map +1 -1
  133. package/dist/loaders/apis.mjs +12 -12
  134. package/dist/loaders/apis.mjs.map +1 -1
  135. package/dist/loaders/components.d.ts +2 -2
  136. package/dist/loaders/components.d.ts.map +1 -1
  137. package/dist/loaders/components.js.map +1 -1
  138. package/dist/loaders/components.mjs.map +1 -1
  139. package/dist/loaders/index.d.ts +2 -2
  140. package/dist/loaders/index.d.ts.map +1 -1
  141. package/dist/loaders/index.js +0 -2
  142. package/dist/loaders/index.js.map +1 -1
  143. package/dist/loaders/index.mjs +0 -2
  144. package/dist/loaders/index.mjs.map +1 -1
  145. package/dist/loaders/middlewares.d.ts +2 -2
  146. package/dist/loaders/middlewares.d.ts.map +1 -1
  147. package/dist/loaders/middlewares.js.map +1 -1
  148. package/dist/loaders/middlewares.mjs.map +1 -1
  149. package/dist/loaders/plugins/get-enabled-plugins.d.ts +2 -2
  150. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  151. package/dist/loaders/plugins/get-enabled-plugins.js +48 -18
  152. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  153. package/dist/loaders/plugins/get-enabled-plugins.mjs +19 -11
  154. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  155. package/dist/loaders/plugins/get-user-plugins-config.js +2 -2
  156. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  157. package/dist/loaders/plugins/index.d.ts +2 -2
  158. package/dist/loaders/plugins/index.d.ts.map +1 -1
  159. package/dist/loaders/plugins/index.js +34 -7
  160. package/dist/loaders/plugins/index.js.map +1 -1
  161. package/dist/loaders/plugins/index.mjs +9 -1
  162. package/dist/loaders/plugins/index.mjs.map +1 -1
  163. package/dist/loaders/policies.d.ts +2 -2
  164. package/dist/loaders/policies.d.ts.map +1 -1
  165. package/dist/loaders/policies.js.map +1 -1
  166. package/dist/loaders/policies.mjs.map +1 -1
  167. package/dist/loaders/sanitizers.d.ts +2 -2
  168. package/dist/loaders/sanitizers.d.ts.map +1 -1
  169. package/dist/loaders/sanitizers.js.map +1 -1
  170. package/dist/loaders/sanitizers.mjs.map +1 -1
  171. package/dist/loaders/src-index.d.ts +2 -2
  172. package/dist/loaders/src-index.d.ts.map +1 -1
  173. package/dist/loaders/src-index.js.map +1 -1
  174. package/dist/loaders/src-index.mjs.map +1 -1
  175. package/dist/loaders/validators.d.ts +2 -2
  176. package/dist/loaders/validators.d.ts.map +1 -1
  177. package/dist/loaders/validators.js.map +1 -1
  178. package/dist/loaders/validators.mjs.map +1 -1
  179. package/dist/middlewares/body.d.ts +4 -4
  180. package/dist/middlewares/body.d.ts.map +1 -1
  181. package/dist/middlewares/body.js +6 -6
  182. package/dist/middlewares/body.js.map +1 -1
  183. package/dist/middlewares/body.mjs +4 -4
  184. package/dist/middlewares/body.mjs.map +1 -1
  185. package/dist/middlewares/compression.d.ts +2 -2
  186. package/dist/middlewares/compression.d.ts.map +1 -1
  187. package/dist/middlewares/compression.js.map +1 -1
  188. package/dist/middlewares/compression.mjs.map +1 -1
  189. package/dist/middlewares/cors.d.ts +2 -2
  190. package/dist/middlewares/cors.d.ts.map +1 -1
  191. package/dist/middlewares/cors.js +9 -7
  192. package/dist/middlewares/cors.js.map +1 -1
  193. package/dist/middlewares/cors.mjs +9 -7
  194. package/dist/middlewares/cors.mjs.map +1 -1
  195. package/dist/middlewares/errors.d.ts +2 -2
  196. package/dist/middlewares/errors.d.ts.map +1 -1
  197. package/dist/middlewares/errors.js.map +1 -1
  198. package/dist/middlewares/errors.mjs.map +1 -1
  199. package/dist/middlewares/favicon.d.ts +2 -2
  200. package/dist/middlewares/favicon.d.ts.map +1 -1
  201. package/dist/middlewares/favicon.js.map +1 -1
  202. package/dist/middlewares/favicon.mjs.map +1 -1
  203. package/dist/middlewares/index.d.ts +2 -2
  204. package/dist/middlewares/index.d.ts.map +1 -1
  205. package/dist/middlewares/index.js.map +1 -1
  206. package/dist/middlewares/index.mjs.map +1 -1
  207. package/dist/middlewares/ip.d.ts +2 -2
  208. package/dist/middlewares/ip.d.ts.map +1 -1
  209. package/dist/middlewares/ip.js.map +1 -1
  210. package/dist/middlewares/ip.mjs.map +1 -1
  211. package/dist/middlewares/logger.d.ts +2 -2
  212. package/dist/middlewares/logger.d.ts.map +1 -1
  213. package/dist/middlewares/logger.js.map +1 -1
  214. package/dist/middlewares/logger.mjs.map +1 -1
  215. package/dist/middlewares/powered-by.d.ts +2 -2
  216. package/dist/middlewares/powered-by.d.ts.map +1 -1
  217. package/dist/middlewares/powered-by.js.map +1 -1
  218. package/dist/middlewares/powered-by.mjs.map +1 -1
  219. package/dist/middlewares/public.d.ts +2 -2
  220. package/dist/middlewares/public.d.ts.map +1 -1
  221. package/dist/middlewares/public.js +3 -3
  222. package/dist/middlewares/public.js.map +1 -1
  223. package/dist/middlewares/public.mjs +1 -1
  224. package/dist/middlewares/public.mjs.map +1 -1
  225. package/dist/middlewares/query.d.ts +2 -2
  226. package/dist/middlewares/query.d.ts.map +1 -1
  227. package/dist/middlewares/query.js.map +1 -1
  228. package/dist/middlewares/query.mjs.map +1 -1
  229. package/dist/middlewares/response-time.d.ts +2 -2
  230. package/dist/middlewares/response-time.d.ts.map +1 -1
  231. package/dist/middlewares/response-time.js.map +1 -1
  232. package/dist/middlewares/response-time.mjs.map +1 -1
  233. package/dist/middlewares/responses.d.ts +3 -3
  234. package/dist/middlewares/responses.d.ts.map +1 -1
  235. package/dist/middlewares/responses.js +2 -2
  236. package/dist/middlewares/responses.js.map +1 -1
  237. package/dist/middlewares/responses.mjs.map +1 -1
  238. package/dist/middlewares/security.d.ts +2 -2
  239. package/dist/middlewares/security.d.ts.map +1 -1
  240. package/dist/middlewares/security.js +13 -6
  241. package/dist/middlewares/security.js.map +1 -1
  242. package/dist/middlewares/security.mjs +12 -5
  243. package/dist/middlewares/security.mjs.map +1 -1
  244. package/dist/middlewares/session.d.ts +2 -2
  245. package/dist/middlewares/session.d.ts.map +1 -1
  246. package/dist/middlewares/session.js +2 -2
  247. package/dist/middlewares/session.js.map +1 -1
  248. package/dist/middlewares/session.mjs.map +1 -1
  249. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +33 -0
  250. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -0
  251. package/dist/migrations/database/5.0.0-discard-drafts.js +106 -0
  252. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
  253. package/dist/migrations/database/5.0.0-discard-drafts.mjs +106 -0
  254. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
  255. package/dist/migrations/draft-publish.d.ts +17 -0
  256. package/dist/migrations/draft-publish.d.ts.map +1 -0
  257. package/dist/migrations/draft-publish.js +42 -0
  258. package/dist/migrations/draft-publish.js.map +1 -0
  259. package/dist/migrations/draft-publish.mjs +42 -0
  260. package/dist/migrations/draft-publish.mjs.map +1 -0
  261. package/dist/migrations/i18n.d.ts +5 -0
  262. package/dist/migrations/i18n.d.ts.map +1 -0
  263. package/dist/migrations/i18n.js +54 -0
  264. package/dist/migrations/i18n.js.map +1 -0
  265. package/dist/migrations/i18n.mjs +54 -0
  266. package/dist/migrations/i18n.mjs.map +1 -0
  267. package/dist/migrations/index.d.ts +5 -0
  268. package/dist/migrations/index.d.ts.map +1 -0
  269. package/dist/migrations/index.js +15 -0
  270. package/dist/migrations/index.js.map +1 -0
  271. package/dist/migrations/index.mjs +15 -0
  272. package/dist/migrations/index.mjs.map +1 -0
  273. package/dist/providers/admin.d.ts +3 -0
  274. package/dist/providers/admin.d.ts.map +1 -0
  275. package/dist/providers/admin.js +20 -0
  276. package/dist/providers/admin.js.map +1 -0
  277. package/dist/providers/admin.mjs +21 -0
  278. package/dist/providers/admin.mjs.map +1 -0
  279. package/dist/providers/coreStore.d.ts +3 -0
  280. package/dist/providers/coreStore.d.ts.map +1 -0
  281. package/dist/providers/coreStore.js +11 -0
  282. package/dist/providers/coreStore.js.map +1 -0
  283. package/dist/providers/coreStore.mjs +12 -0
  284. package/dist/providers/coreStore.mjs.map +1 -0
  285. package/dist/providers/cron.d.ts +3 -0
  286. package/dist/providers/cron.d.ts.map +1 -0
  287. package/dist/providers/cron.js +20 -0
  288. package/dist/providers/cron.js.map +1 -0
  289. package/dist/providers/cron.mjs +21 -0
  290. package/dist/providers/cron.mjs.map +1 -0
  291. package/dist/providers/index.d.ts +3 -0
  292. package/dist/providers/index.d.ts.map +1 -0
  293. package/dist/providers/index.js +11 -0
  294. package/dist/providers/index.js.map +1 -0
  295. package/dist/providers/index.mjs +11 -0
  296. package/dist/providers/index.mjs.map +1 -0
  297. package/dist/providers/provider.d.ts +9 -0
  298. package/dist/providers/provider.d.ts.map +1 -0
  299. package/dist/providers/provider.js +5 -0
  300. package/dist/providers/provider.js.map +1 -0
  301. package/dist/providers/provider.mjs +5 -0
  302. package/dist/providers/provider.mjs.map +1 -0
  303. package/dist/providers/registries.d.ts +3 -0
  304. package/dist/providers/registries.d.ts.map +1 -0
  305. package/dist/providers/registries.js +35 -0
  306. package/dist/providers/registries.js.map +1 -0
  307. package/dist/providers/registries.mjs +36 -0
  308. package/dist/providers/registries.mjs.map +1 -0
  309. package/dist/providers/telemetry.d.ts +3 -0
  310. package/dist/providers/telemetry.d.ts.map +1 -0
  311. package/dist/providers/telemetry.js +19 -0
  312. package/dist/providers/telemetry.js.map +1 -0
  313. package/dist/providers/telemetry.mjs +20 -0
  314. package/dist/providers/telemetry.mjs.map +1 -0
  315. package/dist/providers/webhooks.d.ts +3 -0
  316. package/dist/providers/webhooks.d.ts.map +1 -0
  317. package/dist/providers/webhooks.js +30 -0
  318. package/dist/providers/webhooks.js.map +1 -0
  319. package/dist/providers/webhooks.mjs +31 -0
  320. package/dist/providers/webhooks.mjs.map +1 -0
  321. package/dist/registries/apis.d.ts +2 -2
  322. package/dist/registries/apis.d.ts.map +1 -1
  323. package/dist/registries/apis.js +2 -2
  324. package/dist/registries/apis.js.map +1 -1
  325. package/dist/registries/apis.mjs.map +1 -1
  326. package/dist/registries/components.d.ts +6 -6
  327. package/dist/registries/components.d.ts.map +1 -1
  328. package/dist/registries/components.js +2 -2
  329. package/dist/registries/components.js.map +1 -1
  330. package/dist/registries/components.mjs.map +1 -1
  331. package/dist/registries/content-types.d.ts +5 -5
  332. package/dist/registries/content-types.d.ts.map +1 -1
  333. package/dist/registries/content-types.js +3 -3
  334. package/dist/registries/content-types.js.map +1 -1
  335. package/dist/registries/content-types.mjs.map +1 -1
  336. package/dist/registries/controllers.d.ts +10 -10
  337. package/dist/registries/controllers.d.ts.map +1 -1
  338. package/dist/registries/controllers.js +3 -3
  339. package/dist/registries/controllers.js.map +1 -1
  340. package/dist/registries/controllers.mjs.map +1 -1
  341. package/dist/registries/custom-fields.d.ts +3 -3
  342. package/dist/registries/custom-fields.d.ts.map +1 -1
  343. package/dist/registries/custom-fields.js +4 -4
  344. package/dist/registries/custom-fields.js.map +1 -1
  345. package/dist/registries/custom-fields.mjs.map +1 -1
  346. package/dist/registries/hooks.js +2 -2
  347. package/dist/registries/hooks.js.map +1 -1
  348. package/dist/registries/index.d.ts +0 -1
  349. package/dist/registries/index.d.ts.map +1 -1
  350. package/dist/registries/middlewares.d.ts +6 -6
  351. package/dist/registries/middlewares.d.ts.map +1 -1
  352. package/dist/registries/middlewares.js +3 -3
  353. package/dist/registries/middlewares.js.map +1 -1
  354. package/dist/registries/middlewares.mjs.map +1 -1
  355. package/dist/registries/modules.d.ts +2 -2
  356. package/dist/registries/modules.d.ts.map +1 -1
  357. package/dist/registries/modules.js +3 -3
  358. package/dist/registries/modules.js.map +1 -1
  359. package/dist/registries/modules.mjs.map +1 -1
  360. package/dist/registries/plugins.d.ts +5 -5
  361. package/dist/registries/plugins.d.ts.map +1 -1
  362. package/dist/registries/plugins.js +2 -2
  363. package/dist/registries/plugins.js.map +1 -1
  364. package/dist/registries/plugins.mjs.map +1 -1
  365. package/dist/registries/policies.d.ts +22 -10
  366. package/dist/registries/policies.d.ts.map +1 -1
  367. package/dist/registries/policies.js +66 -20
  368. package/dist/registries/policies.js.map +1 -1
  369. package/dist/registries/policies.mjs +65 -19
  370. package/dist/registries/policies.mjs.map +1 -1
  371. package/dist/registries/services.d.ts +8 -8
  372. package/dist/registries/services.d.ts.map +1 -1
  373. package/dist/registries/services.js +3 -3
  374. package/dist/registries/services.js.map +1 -1
  375. package/dist/registries/services.mjs.map +1 -1
  376. package/dist/services/auth/index.d.ts +4 -4
  377. package/dist/services/auth/index.d.ts.map +1 -1
  378. package/dist/services/auth/index.js +3 -3
  379. package/dist/services/auth/index.js.map +1 -1
  380. package/dist/services/auth/index.mjs.map +1 -1
  381. package/dist/services/config.d.ts +3 -0
  382. package/dist/services/config.d.ts.map +1 -0
  383. package/dist/services/config.js +47 -0
  384. package/dist/services/config.js.map +1 -0
  385. package/dist/services/config.mjs +47 -0
  386. package/dist/services/config.mjs.map +1 -0
  387. package/dist/services/content-api/index.d.ts +31 -15
  388. package/dist/services/content-api/index.d.ts.map +1 -1
  389. package/dist/services/content-api/index.js +28 -2
  390. package/dist/services/content-api/index.js.map +1 -1
  391. package/dist/services/content-api/index.mjs +28 -2
  392. package/dist/services/content-api/index.mjs.map +1 -1
  393. package/dist/services/content-api/permissions/index.d.ts +13 -15
  394. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  395. package/dist/services/content-api/permissions/index.js +1 -1
  396. package/dist/services/content-api/permissions/index.js.map +1 -1
  397. package/dist/services/content-api/permissions/index.mjs +1 -1
  398. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  399. package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
  400. package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
  401. package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
  402. package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
  403. package/dist/services/core-store.d.ts.map +1 -1
  404. package/dist/services/core-store.js +3 -3
  405. package/dist/services/core-store.js.map +1 -1
  406. package/dist/services/cron.d.ts +5 -5
  407. package/dist/services/cron.d.ts.map +1 -1
  408. package/dist/services/cron.js +12 -7
  409. package/dist/services/cron.js.map +1 -1
  410. package/dist/services/cron.mjs +9 -4
  411. package/dist/services/cron.mjs.map +1 -1
  412. package/dist/services/custom-fields.d.ts +2 -2
  413. package/dist/services/custom-fields.d.ts.map +1 -1
  414. package/dist/services/custom-fields.js.map +1 -1
  415. package/dist/services/custom-fields.mjs.map +1 -1
  416. package/dist/services/document-service/attributes/index.d.ts +6 -0
  417. package/dist/services/document-service/attributes/index.d.ts.map +1 -0
  418. package/dist/services/{entity-service → document-service}/attributes/index.js +5 -5
  419. package/dist/services/document-service/attributes/index.js.map +1 -0
  420. package/dist/services/{entity-service → document-service}/attributes/index.mjs +5 -5
  421. package/dist/services/document-service/attributes/index.mjs.map +1 -0
  422. package/dist/services/document-service/attributes/transforms.d.ts +10 -0
  423. package/dist/services/document-service/attributes/transforms.d.ts.map +1 -0
  424. package/dist/services/{entity-service → document-service}/attributes/transforms.js +3 -3
  425. package/dist/services/document-service/attributes/transforms.js.map +1 -0
  426. package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
  427. package/dist/services/document-service/common.d.ts +2 -2
  428. package/dist/services/document-service/common.d.ts.map +1 -1
  429. package/dist/services/document-service/common.js.map +1 -1
  430. package/dist/services/document-service/common.mjs.map +1 -1
  431. package/dist/services/document-service/components.d.ts +25 -1
  432. package/dist/services/document-service/components.d.ts.map +1 -1
  433. package/dist/services/{entity-service → document-service}/components.js +57 -153
  434. package/dist/services/document-service/components.js.map +1 -0
  435. package/dist/services/{entity-service → document-service}/components.mjs +48 -144
  436. package/dist/services/document-service/components.mjs.map +1 -0
  437. package/dist/services/document-service/draft-and-publish.d.ts +9 -23
  438. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  439. package/dist/services/document-service/draft-and-publish.js +44 -16
  440. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  441. package/dist/services/document-service/draft-and-publish.mjs +38 -10
  442. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  443. package/dist/services/document-service/entries.d.ts +10 -0
  444. package/dist/services/document-service/entries.d.ts.map +1 -0
  445. package/dist/services/document-service/entries.js +95 -0
  446. package/dist/services/document-service/entries.js.map +1 -0
  447. package/dist/services/document-service/entries.mjs +95 -0
  448. package/dist/services/document-service/entries.mjs.map +1 -0
  449. package/dist/services/document-service/events.d.ts +25 -0
  450. package/dist/services/document-service/events.d.ts.map +1 -0
  451. package/dist/services/document-service/events.js +47 -0
  452. package/dist/services/document-service/events.js.map +1 -0
  453. package/dist/services/document-service/events.mjs +47 -0
  454. package/dist/services/document-service/events.mjs.map +1 -0
  455. package/dist/services/document-service/index.d.ts +3 -4
  456. package/dist/services/document-service/index.d.ts.map +1 -1
  457. package/dist/services/document-service/index.js +21 -7
  458. package/dist/services/document-service/index.js.map +1 -1
  459. package/dist/services/document-service/index.mjs +19 -5
  460. package/dist/services/document-service/index.mjs.map +1 -1
  461. package/dist/services/document-service/internationalization.d.ts +5 -5
  462. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  463. package/dist/services/document-service/internationalization.js +21 -12
  464. package/dist/services/document-service/internationalization.js.map +1 -1
  465. package/dist/services/document-service/internationalization.mjs +14 -5
  466. package/dist/services/document-service/internationalization.mjs.map +1 -1
  467. package/dist/services/document-service/middlewares/errors.d.ts +6 -0
  468. package/dist/services/document-service/middlewares/errors.d.ts.map +1 -0
  469. package/dist/services/document-service/middlewares/errors.js +25 -0
  470. package/dist/services/document-service/middlewares/errors.js.map +1 -0
  471. package/dist/services/document-service/middlewares/errors.mjs +25 -0
  472. package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
  473. package/dist/services/document-service/middlewares/index.d.ts +3 -0
  474. package/dist/services/document-service/middlewares/index.d.ts.map +1 -0
  475. package/dist/services/document-service/middlewares/middleware-manager.d.ts +10 -0
  476. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -0
  477. package/dist/services/document-service/{middlewares.js → middlewares/middleware-manager.js} +9 -6
  478. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
  479. package/dist/services/document-service/{middlewares.mjs → middlewares/middleware-manager.mjs} +9 -6
  480. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
  481. package/dist/services/document-service/params.d.ts +3 -1
  482. package/dist/services/document-service/params.d.ts.map +1 -1
  483. package/dist/services/{entity-service → document-service}/params.js +2 -2
  484. package/dist/services/document-service/params.js.map +1 -0
  485. package/dist/services/{entity-service → document-service}/params.mjs +1 -1
  486. package/dist/services/document-service/params.mjs.map +1 -0
  487. package/dist/services/document-service/repository.d.ts.map +1 -1
  488. package/dist/services/document-service/repository.js +234 -214
  489. package/dist/services/document-service/repository.js.map +1 -1
  490. package/dist/services/document-service/repository.mjs +227 -207
  491. package/dist/services/document-service/repository.mjs.map +1 -1
  492. package/dist/services/document-service/transform/data.d.ts.map +1 -1
  493. package/dist/services/document-service/transform/data.js +4 -2
  494. package/dist/services/document-service/transform/data.js.map +1 -1
  495. package/dist/services/document-service/transform/data.mjs +4 -2
  496. package/dist/services/document-service/transform/data.mjs.map +1 -1
  497. package/dist/services/document-service/transform/fields.d.ts +2 -2
  498. package/dist/services/document-service/transform/fields.d.ts.map +1 -1
  499. package/dist/services/document-service/transform/fields.js.map +1 -1
  500. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  501. package/dist/services/document-service/transform/id-map.d.ts +4 -4
  502. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  503. package/dist/services/document-service/transform/id-map.js +25 -10
  504. package/dist/services/document-service/transform/id-map.js.map +1 -1
  505. package/dist/services/document-service/transform/id-map.mjs +26 -11
  506. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  507. package/dist/services/document-service/transform/id-transform.d.ts +4 -18
  508. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  509. package/dist/services/document-service/transform/id-transform.js +18 -12
  510. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  511. package/dist/services/document-service/transform/id-transform.mjs +18 -12
  512. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  513. package/dist/services/document-service/transform/populate.d.ts +5 -2
  514. package/dist/services/document-service/transform/populate.d.ts.map +1 -1
  515. package/dist/services/document-service/transform/populate.js +1 -1
  516. package/dist/services/document-service/transform/populate.js.map +1 -1
  517. package/dist/services/document-service/transform/populate.mjs +1 -1
  518. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  519. package/dist/services/document-service/transform/query.d.ts +5 -0
  520. package/dist/services/document-service/transform/query.d.ts.map +1 -0
  521. package/dist/services/document-service/transform/query.js +9 -0
  522. package/dist/services/document-service/transform/query.js.map +1 -0
  523. package/dist/services/document-service/transform/query.mjs +9 -0
  524. package/dist/services/document-service/transform/query.mjs.map +1 -0
  525. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +8 -7
  526. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  527. package/dist/services/document-service/transform/relations/extract/data-ids.js +52 -67
  528. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  529. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +52 -67
  530. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  531. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +9 -5
  532. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  533. package/dist/services/document-service/transform/relations/transform/data-ids.js +74 -105
  534. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  535. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +74 -105
  536. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  537. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts +9 -0
  538. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts.map +1 -0
  539. package/dist/services/document-service/transform/relations/transform/default-locale.js +32 -0
  540. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
  541. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +32 -0
  542. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
  543. package/dist/services/document-service/transform/relations/utils/dp.d.ts +10 -0
  544. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -0
  545. package/dist/services/document-service/transform/relations/utils/dp.js +30 -0
  546. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -0
  547. package/dist/services/document-service/transform/relations/utils/dp.mjs +30 -0
  548. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -0
  549. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +6 -6
  550. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  551. package/dist/services/document-service/transform/relations/utils/i18n.js +3 -9
  552. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  553. package/dist/services/document-service/transform/relations/utils/i18n.mjs +3 -9
  554. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  555. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts +6 -0
  556. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -0
  557. package/dist/services/document-service/transform/relations/utils/map-relation.js +87 -0
  558. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
  559. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +87 -0
  560. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
  561. package/dist/services/document-service/transform/relations/utils/types.d.ts +10 -1
  562. package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -1
  563. package/dist/services/document-service/transform/types.d.ts +4 -4
  564. package/dist/services/document-service/transform/types.d.ts.map +1 -1
  565. package/dist/services/document-service/utils/populate.d.ts +9 -2
  566. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  567. package/dist/services/document-service/utils/populate.js +12 -6
  568. package/dist/services/document-service/utils/populate.js.map +1 -1
  569. package/dist/services/document-service/utils/populate.mjs +12 -6
  570. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  571. package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
  572. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  573. package/dist/services/document-service/utils/unidirectional-relations.js +69 -0
  574. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
  575. package/dist/services/document-service/utils/unidirectional-relations.mjs +69 -0
  576. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
  577. package/dist/services/entity-service/index.d.ts +4 -6
  578. package/dist/services/entity-service/index.d.ts.map +1 -1
  579. package/dist/services/entity-service/index.js +44 -203
  580. package/dist/services/entity-service/index.js.map +1 -1
  581. package/dist/services/entity-service/index.mjs +38 -197
  582. package/dist/services/entity-service/index.mjs.map +1 -1
  583. package/dist/services/entity-validator/blocks-validator.d.ts +1 -2
  584. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  585. package/dist/services/entity-validator/blocks-validator.js +4 -3
  586. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  587. package/dist/services/entity-validator/blocks-validator.mjs +3 -3
  588. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  589. package/dist/services/entity-validator/index.d.ts +16 -2
  590. package/dist/services/entity-validator/index.d.ts.map +1 -1
  591. package/dist/services/entity-validator/index.js +197 -130
  592. package/dist/services/entity-validator/index.js.map +1 -1
  593. package/dist/services/entity-validator/index.mjs +192 -125
  594. package/dist/services/entity-validator/index.mjs.map +1 -1
  595. package/dist/services/entity-validator/validators.d.ts +36 -25
  596. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  597. package/dist/services/entity-validator/validators.js +153 -33
  598. package/dist/services/entity-validator/validators.js.map +1 -1
  599. package/dist/services/entity-validator/validators.mjs +145 -25
  600. package/dist/services/entity-validator/validators.mjs.map +1 -1
  601. package/dist/services/event-hub.d.ts +1 -0
  602. package/dist/services/event-hub.d.ts.map +1 -1
  603. package/dist/services/event-hub.js +9 -4
  604. package/dist/services/event-hub.js.map +1 -1
  605. package/dist/services/event-hub.mjs +9 -4
  606. package/dist/services/event-hub.mjs.map +1 -1
  607. package/dist/services/features.d.ts +3 -3
  608. package/dist/services/features.d.ts.map +1 -1
  609. package/dist/services/features.js.map +1 -1
  610. package/dist/services/features.mjs.map +1 -1
  611. package/dist/services/fs.d.ts +2 -2
  612. package/dist/services/fs.d.ts.map +1 -1
  613. package/dist/services/fs.js.map +1 -1
  614. package/dist/services/fs.mjs.map +1 -1
  615. package/dist/services/metrics/admin-user-hash.d.ts +2 -2
  616. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  617. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  618. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  619. package/dist/services/metrics/index.d.ts +2 -2
  620. package/dist/services/metrics/index.d.ts.map +1 -1
  621. package/dist/services/metrics/index.js.map +1 -1
  622. package/dist/services/metrics/index.mjs.map +1 -1
  623. package/dist/services/metrics/middleware.d.ts +2 -2
  624. package/dist/services/metrics/middleware.d.ts.map +1 -1
  625. package/dist/services/metrics/middleware.js.map +1 -1
  626. package/dist/services/metrics/middleware.mjs.map +1 -1
  627. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  628. package/dist/services/metrics/rate-limiter.js.map +1 -1
  629. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  630. package/dist/services/metrics/sender.d.ts +3 -3
  631. package/dist/services/metrics/sender.d.ts.map +1 -1
  632. package/dist/services/metrics/sender.js.map +1 -1
  633. package/dist/services/metrics/sender.mjs.map +1 -1
  634. package/dist/services/query-params.d.ts +7 -0
  635. package/dist/services/query-params.d.ts.map +1 -0
  636. package/dist/services/query-params.js +12 -0
  637. package/dist/services/query-params.js.map +1 -0
  638. package/dist/services/query-params.mjs +13 -0
  639. package/dist/services/query-params.mjs.map +1 -0
  640. package/dist/services/reloader.d.ts +7 -0
  641. package/dist/services/reloader.d.ts.map +1 -0
  642. package/dist/services/reloader.js +36 -0
  643. package/dist/services/reloader.js.map +1 -0
  644. package/dist/services/reloader.mjs +36 -0
  645. package/dist/services/reloader.mjs.map +1 -0
  646. package/dist/services/server/admin-api.d.ts +3 -3
  647. package/dist/services/server/admin-api.d.ts.map +1 -1
  648. package/dist/services/server/admin-api.js.map +1 -1
  649. package/dist/services/server/admin-api.mjs.map +1 -1
  650. package/dist/services/server/api.d.ts +3 -3
  651. package/dist/services/server/api.d.ts.map +1 -1
  652. package/dist/services/server/api.js.map +1 -1
  653. package/dist/services/server/api.mjs.map +1 -1
  654. package/dist/services/server/compose-endpoint.d.ts +2 -2
  655. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  656. package/dist/services/server/compose-endpoint.js +8 -9
  657. package/dist/services/server/compose-endpoint.js.map +1 -1
  658. package/dist/services/server/compose-endpoint.mjs +2 -3
  659. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  660. package/dist/services/server/content-api.d.ts +3 -3
  661. package/dist/services/server/content-api.d.ts.map +1 -1
  662. package/dist/services/server/content-api.js.map +1 -1
  663. package/dist/services/server/content-api.mjs.map +1 -1
  664. package/dist/services/server/http-server.d.ts +2 -2
  665. package/dist/services/server/http-server.d.ts.map +1 -1
  666. package/dist/services/server/http-server.js.map +1 -1
  667. package/dist/services/server/http-server.mjs.map +1 -1
  668. package/dist/services/server/index.d.ts +2 -2
  669. package/dist/services/server/index.d.ts.map +1 -1
  670. package/dist/services/server/index.js +2 -3
  671. package/dist/services/server/index.js.map +1 -1
  672. package/dist/services/server/index.mjs +2 -3
  673. package/dist/services/server/index.mjs.map +1 -1
  674. package/dist/services/server/koa.d.ts.map +1 -1
  675. package/dist/services/server/koa.js +4 -4
  676. package/dist/services/server/koa.js.map +1 -1
  677. package/dist/services/server/koa.mjs +1 -1
  678. package/dist/services/server/koa.mjs.map +1 -1
  679. package/dist/services/server/middleware.d.ts +4 -4
  680. package/dist/services/server/middleware.d.ts.map +1 -1
  681. package/dist/services/server/middleware.js +3 -3
  682. package/dist/services/server/middleware.js.map +1 -1
  683. package/dist/services/server/middleware.mjs.map +1 -1
  684. package/dist/services/server/policy.d.ts +3 -3
  685. package/dist/services/server/policy.d.ts.map +1 -1
  686. package/dist/services/server/policy.js +4 -4
  687. package/dist/services/server/policy.js.map +1 -1
  688. package/dist/services/server/policy.mjs +4 -4
  689. package/dist/services/server/policy.mjs.map +1 -1
  690. package/dist/services/server/register-middlewares.d.ts +2 -2
  691. package/dist/services/server/register-middlewares.d.ts.map +1 -1
  692. package/dist/services/server/register-middlewares.js.map +1 -1
  693. package/dist/services/server/register-middlewares.mjs.map +1 -1
  694. package/dist/services/server/register-routes.d.ts +2 -2
  695. package/dist/services/server/register-routes.d.ts.map +1 -1
  696. package/dist/services/server/register-routes.js +3 -3
  697. package/dist/services/server/register-routes.js.map +1 -1
  698. package/dist/services/server/register-routes.mjs +3 -3
  699. package/dist/services/server/register-routes.mjs.map +1 -1
  700. package/dist/services/server/routing.d.ts +5 -5
  701. package/dist/services/server/routing.d.ts.map +1 -1
  702. package/dist/services/server/routing.js +2 -2
  703. package/dist/services/server/routing.js.map +1 -1
  704. package/dist/services/server/routing.mjs.map +1 -1
  705. package/dist/services/utils/dynamic-zones.d.ts.map +1 -1
  706. package/dist/services/utils/dynamic-zones.js +7 -6
  707. package/dist/services/utils/dynamic-zones.js.map +1 -1
  708. package/dist/services/utils/dynamic-zones.mjs +2 -1
  709. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  710. package/dist/services/webhook-runner.d.ts +2 -1
  711. package/dist/services/webhook-runner.d.ts.map +1 -1
  712. package/dist/services/webhook-runner.js.map +1 -1
  713. package/dist/services/webhook-runner.mjs.map +1 -1
  714. package/dist/services/webhook-store.d.ts +2 -8
  715. package/dist/services/webhook-store.d.ts.map +1 -1
  716. package/dist/services/webhook-store.js +14 -8
  717. package/dist/services/webhook-store.js.map +1 -1
  718. package/dist/services/webhook-store.mjs +14 -8
  719. package/dist/services/webhook-store.mjs.map +1 -1
  720. package/dist/utils/convert-custom-field-type.d.ts +2 -2
  721. package/dist/utils/convert-custom-field-type.d.ts.map +1 -1
  722. package/dist/utils/convert-custom-field-type.js.map +1 -1
  723. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  724. package/dist/utils/cron.js +3 -3
  725. package/dist/utils/cron.js.map +1 -1
  726. package/dist/utils/fetch.d.ts +3 -3
  727. package/dist/utils/fetch.d.ts.map +1 -1
  728. package/dist/utils/fetch.js +4 -3
  729. package/dist/utils/fetch.js.map +1 -1
  730. package/dist/utils/fetch.mjs +4 -3
  731. package/dist/utils/fetch.mjs.map +1 -1
  732. package/dist/utils/filepath-to-prop-path.d.ts +1 -1
  733. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
  734. package/dist/utils/filepath-to-prop-path.js +27 -6
  735. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  736. package/dist/utils/filepath-to-prop-path.mjs +25 -5
  737. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  738. package/dist/utils/index.d.ts +2 -1
  739. package/dist/utils/index.d.ts.map +1 -1
  740. package/dist/utils/is-initialized.d.ts +2 -2
  741. package/dist/utils/is-initialized.d.ts.map +1 -1
  742. package/dist/utils/is-initialized.js +4 -4
  743. package/dist/utils/is-initialized.js.map +1 -1
  744. package/dist/utils/is-initialized.mjs +1 -1
  745. package/dist/utils/is-initialized.mjs.map +1 -1
  746. package/dist/utils/load-config-file.js +1 -1
  747. package/dist/utils/load-config-file.js.map +1 -1
  748. package/dist/utils/load-config-file.mjs +2 -2
  749. package/dist/utils/load-config-file.mjs.map +1 -1
  750. package/dist/utils/load-files.d.ts.map +1 -1
  751. package/dist/utils/open-browser.d.ts +2 -2
  752. package/dist/utils/open-browser.d.ts.map +1 -1
  753. package/dist/utils/open-browser.js.map +1 -1
  754. package/dist/utils/open-browser.mjs.map +1 -1
  755. package/dist/utils/resolve-working-dirs.d.ts +19 -0
  756. package/dist/utils/resolve-working-dirs.d.ts.map +1 -0
  757. package/dist/utils/resolve-working-dirs.js +13 -0
  758. package/dist/utils/resolve-working-dirs.js.map +1 -0
  759. package/dist/utils/resolve-working-dirs.mjs +11 -0
  760. package/dist/utils/resolve-working-dirs.mjs.map +1 -0
  761. package/dist/utils/signals.d.ts +2 -2
  762. package/dist/utils/signals.d.ts.map +1 -1
  763. package/dist/utils/signals.js.map +1 -1
  764. package/dist/utils/signals.mjs.map +1 -1
  765. package/dist/utils/startup-logger.d.ts +2 -2
  766. package/dist/utils/startup-logger.d.ts.map +1 -1
  767. package/dist/utils/startup-logger.js +4 -4
  768. package/dist/utils/startup-logger.js.map +1 -1
  769. package/dist/utils/startup-logger.mjs +3 -3
  770. package/dist/utils/startup-logger.mjs.map +1 -1
  771. package/dist/utils/transform-content-types-to-models.d.ts +377 -90
  772. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  773. package/dist/utils/transform-content-types-to-models.js +112 -61
  774. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  775. package/dist/utils/transform-content-types-to-models.mjs +111 -60
  776. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  777. package/dist/utils/update-notifier/index.d.ts +2 -7
  778. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  779. package/dist/utils/update-notifier/index.js +11 -14
  780. package/dist/utils/update-notifier/index.js.map +1 -1
  781. package/dist/utils/update-notifier/index.mjs +11 -14
  782. package/dist/utils/update-notifier/index.mjs.map +1 -1
  783. package/package.json +36 -32
  784. package/dist/registries/config.d.ts +0 -4
  785. package/dist/registries/config.d.ts.map +0 -1
  786. package/dist/registries/config.js +0 -23
  787. package/dist/registries/config.js.map +0 -1
  788. package/dist/registries/config.mjs +0 -22
  789. package/dist/registries/config.mjs.map +0 -1
  790. package/dist/services/document-service/middlewares.d.ts +0 -8
  791. package/dist/services/document-service/middlewares.d.ts.map +0 -1
  792. package/dist/services/document-service/middlewares.js.map +0 -1
  793. package/dist/services/document-service/middlewares.mjs.map +0 -1
  794. package/dist/services/document-service/transform/filters.d.ts +0 -3
  795. package/dist/services/document-service/transform/filters.d.ts.map +0 -1
  796. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +0 -4
  797. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +0 -1
  798. package/dist/services/document-service/transform/relations/utils/data.js +0 -12
  799. package/dist/services/document-service/transform/relations/utils/data.js.map +0 -1
  800. package/dist/services/document-service/transform/relations/utils/data.mjs +0 -12
  801. package/dist/services/document-service/transform/relations/utils/data.mjs.map +0 -1
  802. package/dist/services/document-service/transform/sort.d.ts +0 -5
  803. package/dist/services/document-service/transform/sort.d.ts.map +0 -1
  804. package/dist/services/document-service/transform/utils.d.ts +0 -9
  805. package/dist/services/document-service/transform/utils.d.ts.map +0 -1
  806. package/dist/services/entity-service/attributes/index.d.ts +0 -6
  807. package/dist/services/entity-service/attributes/index.d.ts.map +0 -1
  808. package/dist/services/entity-service/attributes/index.js.map +0 -1
  809. package/dist/services/entity-service/attributes/index.mjs.map +0 -1
  810. package/dist/services/entity-service/attributes/transforms.d.ts +0 -10
  811. package/dist/services/entity-service/attributes/transforms.d.ts.map +0 -1
  812. package/dist/services/entity-service/attributes/transforms.js.map +0 -1
  813. package/dist/services/entity-service/attributes/transforms.mjs.map +0 -1
  814. package/dist/services/entity-service/components.d.ts +0 -23
  815. package/dist/services/entity-service/components.d.ts.map +0 -1
  816. package/dist/services/entity-service/components.js.map +0 -1
  817. package/dist/services/entity-service/components.mjs.map +0 -1
  818. package/dist/services/entity-service/params.d.ts +0 -8
  819. package/dist/services/entity-service/params.d.ts.map +0 -1
  820. package/dist/services/entity-service/params.js.map +0 -1
  821. package/dist/services/entity-service/params.mjs.map +0 -1
  822. package/dist/services/utils/upload-files.d.ts +0 -8
  823. package/dist/services/utils/upload-files.d.ts.map +0 -1
  824. package/dist/services/utils/upload-files.js +0 -64
  825. package/dist/services/utils/upload-files.js.map +0 -1
  826. package/dist/services/utils/upload-files.mjs +0 -63
  827. package/dist/services/utils/upload-files.mjs.map +0 -1
  828. package/dist/utils/get-dirs.d.ts +0 -9
  829. package/dist/utils/get-dirs.d.ts.map +0 -1
  830. package/dist/utils/get-dirs.js.map +0 -1
  831. package/dist/utils/get-dirs.mjs.map +0 -1
  832. /package/dist/services/{entity-service → document-service}/attributes/transforms.mjs +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sources":["../../../src/services/document-service/repository.ts"],"sourcesContent":["import { omit, assoc, curry } from 'lodash/fp';\n\nimport {\n pipeAsync,\n mapAsync,\n convertQueryParams,\n contentTypes as contentTypesUtils,\n} from '@strapi/utils';\nimport { Common } from '@strapi/types';\n\nimport { wrapInTransaction, type RepositoryFactoryMethod } from './common';\nimport * as DP from './draft-and-publish';\nimport * as i18n from './internationalization';\nimport { transformParamsDocumentId } from './transform/id-transform';\n\nimport {\n cloneComponents,\n createComponents,\n deleteComponents,\n getComponents,\n omitComponentData,\n updateComponents,\n} from '../entity-service/components';\n\nimport { pickSelectionParams } from './params';\nimport entityValidator from '../entity-validator';\nimport { applyTransforms } from '../entity-service/attributes';\nimport { createDocumentId } from '../../utils/transform-content-types-to-models';\nimport { getDeepPopulate } from './utils/populate';\nimport { transformData } from './transform/data';\n\nconst transformParamsToQuery = curry((uid: Common.UID.Schema, params: any) => {\n const query = convertQueryParams.transformParamsToQuery(uid, params);\n\n return assoc('where', { ...params?.lookup, ...query.where }, query);\n});\n\nexport const createContentTypeRepository: RepositoryFactoryMethod = (uid) => {\n const contentType = strapi.contentType(uid);\n\n async function findMany(params = {} as any) {\n const query = await pipeAsync(\n DP.defaultToDraft,\n DP.statusToLookup,\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n (queryParams) =>\n transformParamsDocumentId(uid, queryParams, { isDraft: queryParams.status === 'draft' }),\n transformParamsToQuery(uid)\n )(params || {});\n\n return strapi.db.query(uid).findMany(query);\n }\n\n async function findFirst(params = {} as any) {\n const query = await pipeAsync(\n DP.defaultToDraft,\n DP.statusToLookup,\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n (queryParams) =>\n transformParamsDocumentId(uid, queryParams, { isDraft: queryParams.status === 'draft' }),\n transformParamsToQuery(uid)\n )(params);\n\n return strapi.db.query(uid).findOne(query);\n }\n\n // TODO: do we really want to add filters on the findOne now that we have findFirst ?\n async function findOne(documentId: string, params = {} as any) {\n const query = await pipeAsync(\n DP.defaultToDraft,\n DP.statusToLookup,\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n (queryParams) =>\n transformParamsDocumentId(uid, queryParams, { isDraft: queryParams.status === 'draft' }),\n transformParamsToQuery(uid),\n (query) => assoc('where', { ...query.where, documentId }, query)\n )(params);\n\n return strapi.db.query(uid).findOne(query);\n }\n\n async function deleteEntry(id: number) {\n const componentsToDelete = await getComponents(uid, { id });\n\n await strapi.db.query(uid).delete({ where: { id } });\n\n await deleteComponents(uid, componentsToDelete as any, { loadComponents: false });\n }\n\n async function deleteFn(documentId: string, params = {} as any) {\n const query = await pipeAsync(\n omit('status'),\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType),\n transformParamsToQuery(uid),\n (query) => assoc('where', { ...query.where, documentId }, query)\n )(params);\n\n if (params.status === 'draft') {\n throw new Error('Cannot delete a draft document');\n }\n\n const entriesToDelete = await strapi.db.query(uid).findMany(query);\n\n // Delete all matched entries and its components\n await mapAsync(entriesToDelete, (entryToDelete: any) => deleteEntry(entryToDelete.id));\n\n return { deletedEntries: entriesToDelete.length };\n }\n\n async function createEntry(params = {} as any) {\n const { data, ...restParams } = await transformParamsDocumentId(uid, params, {\n locale: params.locale,\n // User can not set publishedAt on create, but other methods in the engine can (publish)\n isDraft: !params.data?.publishedAt,\n });\n\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams) as any); // select / populate\n\n // Validation\n if (!params.data) {\n throw new Error('Create requires data attribute');\n }\n\n const validData = await entityValidator.validateEntityCreation(contentType, data, {\n isDraft: !data.publishedAt,\n locale: params?.locale,\n });\n\n // Component handling\n const componentData = await createComponents(uid, validData as any);\n const entryData = applyTransforms(\n Object.assign(omitComponentData(contentType, validData), componentData),\n { contentType }\n );\n\n const doc = await strapi.db.query(uid).create({ ...query, data: entryData });\n\n return doc;\n }\n\n async function create(params = {} as any) {\n const queryParams = await pipeAsync(\n DP.setStatusToDraft,\n DP.statusToData,\n DP.filterDataPublishedAt,\n i18n.defaultLocale(contentType),\n i18n.localeToData(contentType)\n )(params);\n\n const doc = await createEntry(queryParams);\n\n if (params.status === 'published') {\n return publish(doc.documentId, params).then((doc) => doc.versions[0]);\n }\n\n return doc;\n }\n\n async function clone(documentId: string, params = {} as any) {\n const queryParams = await pipeAsync(\n DP.filterDataPublishedAt,\n i18n.localeToLookup(contentType)\n )(params);\n\n const { data, ...restParams } = await transformParamsDocumentId(uid, queryParams || {}, {\n isDraft: true,\n locale: queryParams?.locale,\n });\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams) as any);\n // Param parsing\n\n // Validation\n const model = strapi.contentType(uid);\n // Find all locales of the document\n const entries = await strapi.db.query(uid).findMany({\n ...query,\n where: { ...queryParams?.lookup, ...query.where, documentId },\n });\n\n // Document does not exist\n if (!entries.length) {\n return null;\n }\n\n const newDocumentId = createDocumentId();\n\n const versions = await mapAsync(entries, async (entryToClone: any) => {\n const isDraft = contentTypesUtils.isDraft(data);\n // Todo: Merge data with entry to clone\n const validData = await entityValidator.validateEntityUpdate(\n model,\n // Omit id fields, the cloned entity id will be generated by the database\n omit(['id'], data),\n { isDraft, ...queryParams?.lookup },\n entryToClone\n );\n\n const componentData = await cloneComponents(uid, entryToClone, validData);\n const entityData = applyTransforms(\n Object.assign(omitComponentData(model, validData), componentData),\n { contentType: model }\n );\n\n // TODO: Transform params to query\n return strapi.db.query(uid).clone(entryToClone.id, {\n ...query,\n // Allows entityData to override the documentId (e.g. when publishing)\n data: { documentId: newDocumentId, ...entityData, locale: entryToClone.locale },\n });\n });\n\n return { documentId: newDocumentId, versions };\n }\n\n // NOTE: What happens if user doesn't provide specific publications state and locale to update?\n async function update(documentId: string, params = {} as any) {\n const queryParams = await pipeAsync(\n DP.setStatusToDraft,\n DP.statusToLookup,\n DP.statusToData,\n DP.filterDataPublishedAt,\n // Default locale will be set if not provided\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n i18n.localeToData(contentType)\n )(params);\n\n const { data, ...restParams } = await transformParamsDocumentId(uid, queryParams || {}, {\n isDraft: true,\n locale: queryParams?.locale,\n });\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams || {}) as any);\n\n // Validation\n const model = strapi.contentType(uid);\n // Find if document exists\n const entryToUpdate = await strapi.db\n .query(uid)\n .findOne({ ...query, where: { ...queryParams?.lookup, ...query?.where, documentId } });\n\n let updatedDraft = null;\n if (entryToUpdate) {\n const validData = await entityValidator.validateEntityUpdate(\n model,\n data,\n {\n isDraft: true, // Always update the draft version\n locale: queryParams?.locale,\n },\n entryToUpdate\n );\n\n // Component handling\n const componentData = await updateComponents(uid, entryToUpdate, validData as any);\n const entryData = applyTransforms(\n Object.assign(omitComponentData(model, validData), componentData),\n { contentType: model }\n );\n\n updatedDraft = await strapi.db\n .query(uid)\n .update({ ...query, where: { id: entryToUpdate.id }, data: entryData });\n }\n\n if (!updatedDraft) {\n const documentExists = await strapi.db\n .query(contentType.uid)\n .findOne({ where: { documentId } });\n\n if (documentExists) {\n updatedDraft = await createEntry({\n ...queryParams,\n data: { ...queryParams.data, documentId },\n });\n }\n }\n\n if (updatedDraft && params.status === 'published') {\n return publish(documentId, params).then((doc) => doc.versions[0]);\n }\n\n return updatedDraft;\n }\n\n async function count(params = {} as any) {\n const query = await pipeAsync(\n DP.defaultToDraft,\n DP.statusToLookup,\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n transformParamsToQuery(uid)\n )(params);\n\n return strapi.db.query(uid).count(query);\n }\n\n async function publish(documentId: string, params = {} as any) {\n const queryParams = await pipeAsync(\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n await deleteFn(documentId, {\n ...queryParams,\n lookup: { ...queryParams?.lookup, publishedAt: { $ne: null } },\n });\n\n // Get deep populate\n const entriesToPublish = await strapi.db?.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: null,\n },\n populate: getDeepPopulate(uid),\n });\n\n // Transform draft entry data and create published versions\n const publishedEntries = await mapAsync(\n entriesToPublish,\n pipeAsync(\n assoc('publishedAt', new Date()),\n assoc('documentId', documentId),\n omit('id'),\n // Transform relations to target published versions\n (entry) => {\n const opts = { uid, locale: entry.locale, isDraft: false, allowMissingId: true };\n return transformData(entry, opts);\n },\n // Create the published entry\n (data) => createEntry({ ...queryParams, data, locale: data.locale })\n )\n );\n\n return { versions: publishedEntries };\n }\n\n async function unpublish(documentId: string, params = {} as any) {\n const queryParams = await pipeAsync(\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n const { deletedEntries } = await deleteFn(documentId, {\n ...params,\n lookup: { ...queryParams?.lookup, publishedAt: { $ne: null } },\n });\n\n return { versions: deletedEntries };\n }\n\n async function discardDraft(documentId: string, params = {} as any) {\n const queryParams = await pipeAsync(\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n await deleteFn(documentId, {\n ...queryParams,\n // Delete all drafts that match query\n lookup: { ...queryParams?.lookup, publishedAt: null },\n });\n\n // Get deep populate of published versions\n const entriesToDraft = await strapi.db?.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: { $ne: null },\n },\n populate: getDeepPopulate(uid),\n });\n\n // Transform published entry data and create draft versions\n const draftEntries = await mapAsync(\n entriesToDraft,\n pipeAsync(\n assoc('publishedAt', null),\n assoc('documentId', documentId),\n omit('id'),\n // Transform relations to target draft versions\n (entry) => {\n const opts = { uid, locale: entry.locale, isDraft: true, allowMissingId: true };\n return transformData(entry, opts);\n },\n // Create the draft entry\n (data) => createEntry({ ...queryParams, locale: data.locale, data })\n )\n );\n\n return { versions: draftEntries };\n }\n\n return {\n findMany: wrapInTransaction(findMany),\n findFirst: wrapInTransaction(findFirst),\n findOne: wrapInTransaction(findOne),\n delete: wrapInTransaction(deleteFn),\n create: wrapInTransaction(create),\n clone: wrapInTransaction(clone),\n update: wrapInTransaction(update),\n count: wrapInTransaction(count),\n publish: wrapInTransaction(publish),\n unpublish: wrapInTransaction(unpublish),\n discardDraft: wrapInTransaction(discardDraft),\n };\n};\n"],"names":["curry","params","convertQueryParams","assoc","pipeAsync","DP.defaultToDraft","DP.statusToLookup","i18n.defaultLocale","i18n.localeToLookup","transformParamsDocumentId","query","getComponents","deleteComponents","omit","i18n.multiLocaleToLookup","mapAsync","data","pickSelectionParams","entityValidator","createComponents","applyTransforms","omitComponentData","DP.setStatusToDraft","DP.statusToData","DP.filterDataPublishedAt","i18n.localeToData","doc","createDocumentId","contentTypesUtils","cloneComponents","updateComponents","getDeepPopulate","transformData","wrapInTransaction"],"mappings":"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"}
1
+ {"version":3,"file":"repository.js","sources":["../../../src/services/document-service/repository.ts"],"sourcesContent":["import { omit, assoc, merge, curry } from 'lodash/fp';\n\nimport { async, contentTypes as contentTypesUtils, validate } from '@strapi/utils';\n\nimport { UID } from '@strapi/types';\nimport { wrapInTransaction, type RepositoryFactoryMethod } from './common';\nimport * as DP from './draft-and-publish';\nimport * as i18n from './internationalization';\nimport * as components from './components';\n\nimport { createEntriesService } from './entries';\nimport { pickSelectionParams } from './params';\nimport { createDocumentId } from '../../utils/transform-content-types-to-models';\nimport { getDeepPopulate } from './utils/populate';\nimport { transformParamsToQuery } from './transform/query';\nimport { transformParamsDocumentId } from './transform/id-transform';\nimport { createEventManager } from './events';\nimport * as unidirectionalRelations from './utils/unidirectional-relations';\nimport entityValidator from '../entity-validator';\n\nconst { validators } = validate;\n\n// we have to typecast to reconcile the differences between validator and database getModel\nconst getModel = ((schema: UID.Schema) => strapi.getModel(schema)) as (schema: string) => any;\n\nexport const createContentTypeRepository: RepositoryFactoryMethod = (\n uid,\n validator = entityValidator\n) => {\n const contentType = strapi.contentType(uid);\n const hasDraftAndPublish = contentTypesUtils.hasDraftAndPublish(contentType);\n\n // Define the validations that should be performed\n const sortValidations = ['nonAttributesOperators', 'dynamicZones', 'morphRelations'];\n const fieldValidations = ['scalarAttributes'];\n const filtersValidations = ['nonAttributesOperators', 'dynamicZones', 'morphRelations'];\n const populateValidations = {\n sort: sortValidations,\n field: fieldValidations,\n filters: filtersValidations,\n populate: ['nonAttributesOperators'],\n };\n\n const validateParams = async (params: any) => {\n const ctx = { schema: contentType, getModel };\n await validators.validateFilters(ctx, params.filters, filtersValidations);\n await validators.validateSort(ctx, params.sort, sortValidations);\n await validators.validateFields(ctx, params.fields, fieldValidations);\n await validators.validatePopulate(ctx, params.populate, populateValidations);\n\n // TODO: add validate status, locale, pagination\n\n return params;\n };\n\n const entries = createEntriesService(uid, validator);\n\n const eventManager = createEventManager(strapi, uid);\n const emitEvent = curry(eventManager.emitEvent);\n\n async function findMany(params = {} as any) {\n const query = await async.pipe(\n validateParams,\n DP.defaultToDraft,\n DP.statusToLookup(contentType),\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType),\n transformParamsDocumentId(uid),\n transformParamsToQuery(uid)\n )(params || {});\n\n return strapi.db.query(uid).findMany(query);\n }\n\n async function findFirst(params = {} as any) {\n const query = await async.pipe(\n validateParams,\n DP.defaultToDraft,\n DP.statusToLookup(contentType),\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n transformParamsDocumentId(uid),\n transformParamsToQuery(uid)\n )(params);\n\n return strapi.db.query(uid).findOne(query);\n }\n\n // TODO: do we really want to add filters on the findOne now that we have findFirst ?\n async function findOne(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const query = await async.pipe(\n validateParams,\n DP.defaultToDraft,\n DP.statusToLookup(contentType),\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n transformParamsDocumentId(uid),\n transformParamsToQuery(uid),\n (query) => assoc('where', { ...query.where, documentId }, query)\n )(params);\n\n return strapi.db.query(uid).findOne(query);\n }\n\n async function deleteDocument(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const query = await async.pipe(\n validateParams,\n omit('status'),\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType),\n transformParamsToQuery(uid),\n (query) => assoc('where', { ...query.where, documentId }, query)\n )(params);\n\n if (params.status === 'draft') {\n throw new Error('Cannot delete a draft document');\n }\n\n const entriesToDelete = await strapi.db.query(uid).findMany(query);\n\n // Delete all matched entries and its components\n const deletedEntries = await async.map(entriesToDelete, (entryToDelete: any) =>\n entries.delete(entryToDelete.id)\n );\n\n entriesToDelete.forEach(emitEvent('entry.delete'));\n\n return { documentId, entries: deletedEntries };\n }\n\n async function create(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n DP.filterDataPublishedAt,\n DP.setStatusToDraft(contentType),\n DP.statusToData(contentType),\n i18n.defaultLocale(contentType),\n i18n.localeToData(contentType)\n )(params);\n\n const doc = await entries.create(queryParams);\n\n emitEvent('entry.create', doc);\n\n if (hasDraftAndPublish && params.status === 'published') {\n return publish({\n ...params,\n documentId: doc.documentId,\n }).then((doc) => doc.entries[0]);\n }\n\n return doc;\n }\n\n async function clone(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n DP.filterDataPublishedAt,\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n // Get deep populate\n const entriesToClone = await strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n // DP Enabled: Clone drafts\n // DP Disabled: Clone only the existing version (published)\n publishedAt: { $null: hasDraftAndPublish },\n },\n populate: getDeepPopulate(uid, { relationalFields: ['id'] }),\n });\n\n const clonedEntries = await async.map(\n entriesToClone,\n async.pipe(\n validateParams,\n omit(['id', 'createdAt', 'updatedAt']),\n // assign new documentId\n assoc('documentId', createDocumentId()),\n // Merge new data into it\n (data) => merge(data, queryParams.data),\n (data) => entries.create({ ...queryParams, data, status: 'draft' })\n )\n );\n\n clonedEntries.forEach(emitEvent('entry.create'));\n\n return { documentId: clonedEntries.at(0)?.documentId, entries: clonedEntries };\n }\n\n async function update(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n DP.filterDataPublishedAt,\n DP.setStatusToDraft(contentType),\n DP.statusToLookup(contentType),\n DP.statusToData(contentType),\n // Default locale will be set if not provided\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n i18n.localeToData(contentType)\n )(params);\n\n const { data, ...restParams } = await transformParamsDocumentId(uid, queryParams || {});\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams || {}) as any);\n\n // Validation\n // Find if document exists\n const entryToUpdate = await strapi.db\n .query(uid)\n .findOne({ ...query, where: { ...queryParams?.lookup, ...query?.where, documentId } });\n\n let updatedDraft = null;\n if (entryToUpdate) {\n updatedDraft = await entries.update(entryToUpdate, queryParams);\n emitEvent('entry.update', updatedDraft);\n }\n\n if (!updatedDraft) {\n const documentExists = await strapi.db\n .query(contentType.uid)\n .findOne({ where: { documentId } });\n\n if (documentExists) {\n updatedDraft = await entries.create({\n ...queryParams,\n data: { ...queryParams.data, documentId },\n });\n emitEvent('entry.create', updatedDraft);\n }\n }\n\n if (hasDraftAndPublish && updatedDraft && params.status === 'published') {\n return publish({\n ...params,\n documentId,\n }).then((doc) => doc.entries[0]);\n }\n\n return updatedDraft;\n }\n\n async function count(params = {} as any) {\n const query = await async.pipe(\n validateParams,\n DP.defaultStatus(contentType),\n DP.statusToLookup(contentType),\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n transformParamsToQuery(uid)\n )(params);\n\n return strapi.db.query(uid).count(query);\n }\n\n async function publish(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n const [draftsToPublish, oldPublishedVersions] = await Promise.all([\n strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: null, // Ignore lookup\n },\n // Populate relations, media, compos and dz\n populate: getDeepPopulate(uid, { relationalFields: ['documentId', 'locale'] }),\n }),\n strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: { $ne: null },\n },\n select: ['id', 'locale'],\n }),\n ]);\n\n // Load any unidirectional relation targetting the old published entries\n const relationsToSync = await unidirectionalRelations.load(uid, {\n newVersions: draftsToPublish,\n oldVersions: oldPublishedVersions,\n });\n\n // Delete old published versions\n await async.map(oldPublishedVersions, (entry: any) => entries.delete(entry.id));\n\n // Transform draft entry data and create published versions\n const publishedEntries = await async.map(draftsToPublish, (draft: any) =>\n entries.publish(draft, queryParams)\n );\n\n // Sync unidirectional relations with the new published entries\n await unidirectionalRelations.sync(\n [...oldPublishedVersions, ...draftsToPublish],\n publishedEntries,\n relationsToSync\n );\n\n publishedEntries.forEach(emitEvent('entry.publish'));\n\n return { documentId, entries: publishedEntries };\n }\n\n async function unpublish(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const query = await async.pipe(\n validateParams,\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType),\n transformParamsToQuery(uid),\n (query) => assoc('where', { ...query.where, documentId, publishedAt: { $ne: null } }, query)\n )(params);\n\n // Delete all published versions\n const versionsToDelete = await strapi.db.query(uid).findMany(query);\n await async.map(versionsToDelete, (entry: any) => entries.delete(entry.id));\n\n versionsToDelete.forEach(emitEvent('entry.unpublish'));\n return { documentId, entries: versionsToDelete };\n }\n\n async function discardDraft(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n const [versionsToDraft, oldDrafts] = await Promise.all([\n strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: { $ne: null },\n },\n // Populate relations, media, compos and dz\n populate: getDeepPopulate(uid, { relationalFields: ['documentId', 'locale'] }),\n }),\n strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: null,\n },\n select: ['id', 'locale'],\n }),\n ]);\n\n // Load any unidirectional relation targeting the old drafts\n const relationsToSync = await unidirectionalRelations.load(uid, {\n newVersions: versionsToDraft,\n oldVersions: oldDrafts,\n });\n\n // Delete old drafts\n await async.map(oldDrafts, (entry: any) => entries.delete(entry.id));\n\n // Transform published entry data and create draft versions\n const draftEntries = await async.map(versionsToDraft, (entry: any) =>\n entries.discardDraft(entry, queryParams)\n );\n\n // Sync unidirectional relations with the new draft entries\n await unidirectionalRelations.sync(\n [...oldDrafts, ...versionsToDraft],\n draftEntries,\n relationsToSync\n );\n\n draftEntries.forEach(emitEvent('entry.draft-discard'));\n return { documentId, entries: draftEntries };\n }\n\n async function updateComponents(entry: any, data: any) {\n return components.updateComponents(uid, entry, data);\n }\n\n function omitComponentData(data: any) {\n return components.omitComponentData(contentType, data);\n }\n\n return {\n findMany: wrapInTransaction(findMany),\n findFirst: wrapInTransaction(findFirst),\n findOne: wrapInTransaction(findOne),\n delete: wrapInTransaction(deleteDocument),\n create: wrapInTransaction(create),\n clone: wrapInTransaction(clone),\n update: wrapInTransaction(update),\n count: wrapInTransaction(count),\n publish: hasDraftAndPublish ? wrapInTransaction(publish) : (undefined as any),\n unpublish: hasDraftAndPublish ? wrapInTransaction(unpublish) : (undefined as any),\n discardDraft: hasDraftAndPublish ? wrapInTransaction(discardDraft) : (undefined as any),\n\n updateComponents,\n omitComponentData,\n };\n};\n"],"names":["validate","entityValidator","contentTypesUtils","params","entries","createEntriesService","createEventManager","curry","query","async","DP.defaultToDraft","DP.statusToLookup","i18n.defaultLocale","i18n.multiLocaleToLookup","transformParamsDocumentId","transformParamsToQuery","i18n.localeToLookup","assoc","omit","DP.filterDataPublishedAt","DP.setStatusToDraft","DP.statusToData","i18n.localeToData","doc","getDeepPopulate","createDocumentId","merge","pickSelectionParams","DP.defaultStatus","unidirectionalRelations.load","unidirectionalRelations.sync","components.updateComponents","components.omitComponentData","wrapInTransaction"],"mappings":"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"}
@@ -1,63 +1,85 @@
1
- import { curry, assoc, omit } from "lodash/fp";
2
- import { convertQueryParams, pipeAsync, mapAsync, contentTypes } from "@strapi/utils";
1
+ import { curry, assoc, omit, merge } from "lodash/fp";
2
+ import { contentTypes, async, validate } from "@strapi/utils";
3
3
  import { wrapInTransaction } from "./common.mjs";
4
- import { defaultToDraft, statusToLookup, setStatusToDraft, statusToData, filterDataPublishedAt } from "./draft-and-publish.mjs";
5
- import { defaultLocale as defaultLocaleCurry, localeToLookup as localeToLookupCurry, multiLocaleToLookup as multiLocaleToLookupCurry, localeToData as localeToDataCurry } from "./internationalization.mjs";
6
- import { transformParamsDocumentId } from "./transform/id-transform.mjs";
7
- import { cloneComponents, omitComponentData, updateComponents, getComponents, deleteComponents, createComponents } from "../entity-service/components.mjs";
8
- import { pickSelectionParams } from "../entity-service/params.mjs";
9
- import entityValidator from "../entity-validator/index.mjs";
10
- import { applyTransforms } from "../entity-service/attributes/index.mjs";
4
+ import { defaultToDraft as defaultToDraftCurry, statusToLookup as statusToLookupCurry, filterDataPublishedAt as filterDataPublishedAtCurry, setStatusToDraft as setStatusToDraftCurry, statusToData as statusToDataCurry, defaultStatus as defaultStatusCurry } from "./draft-and-publish.mjs";
5
+ import { defaultLocale as defaultLocaleCurry, multiLocaleToLookup as multiLocaleToLookupCurry, localeToLookup as localeToLookupCurry, localeToData as localeToDataCurry } from "./internationalization.mjs";
6
+ import { updateComponents, omitComponentData } from "./components.mjs";
7
+ import { createEntriesService } from "./entries.mjs";
8
+ import { pickSelectionParams } from "./params.mjs";
11
9
  import { createDocumentId } from "../../utils/transform-content-types-to-models.mjs";
12
10
  import { getDeepPopulate } from "./utils/populate.mjs";
13
- import { transformData } from "./transform/data.mjs";
14
- const transformParamsToQuery = curry((uid, params) => {
15
- const query = convertQueryParams.transformParamsToQuery(uid, params);
16
- return assoc("where", { ...params?.lookup, ...query.where }, query);
17
- });
18
- const createContentTypeRepository = (uid) => {
11
+ import { transformParamsToQuery } from "./transform/query.mjs";
12
+ import { transformParamsDocumentId as curriedTransformParamsDocumentId } from "./transform/id-transform.mjs";
13
+ import { createEventManager } from "./events.mjs";
14
+ import { load, sync } from "./utils/unidirectional-relations.mjs";
15
+ import entityValidator from "../entity-validator/index.mjs";
16
+ const { validators } = validate;
17
+ const getModel = (schema) => strapi.getModel(schema);
18
+ const createContentTypeRepository = (uid, validator = entityValidator) => {
19
19
  const contentType = strapi.contentType(uid);
20
+ const hasDraftAndPublish = contentTypes.hasDraftAndPublish(contentType);
21
+ const sortValidations = ["nonAttributesOperators", "dynamicZones", "morphRelations"];
22
+ const fieldValidations = ["scalarAttributes"];
23
+ const filtersValidations = ["nonAttributesOperators", "dynamicZones", "morphRelations"];
24
+ const populateValidations = {
25
+ sort: sortValidations,
26
+ field: fieldValidations,
27
+ filters: filtersValidations,
28
+ populate: ["nonAttributesOperators"]
29
+ };
30
+ const validateParams = async (params) => {
31
+ const ctx = { schema: contentType, getModel };
32
+ await validators.validateFilters(ctx, params.filters, filtersValidations);
33
+ await validators.validateSort(ctx, params.sort, sortValidations);
34
+ await validators.validateFields(ctx, params.fields, fieldValidations);
35
+ await validators.validatePopulate(ctx, params.populate, populateValidations);
36
+ return params;
37
+ };
38
+ const entries = createEntriesService(uid, validator);
39
+ const eventManager = createEventManager(strapi, uid);
40
+ const emitEvent = curry(eventManager.emitEvent);
20
41
  async function findMany(params = {}) {
21
- const query = await pipeAsync(
22
- defaultToDraft,
23
- statusToLookup,
42
+ const query = await async.pipe(
43
+ validateParams,
44
+ defaultToDraftCurry,
45
+ statusToLookupCurry(contentType),
24
46
  defaultLocaleCurry(contentType),
25
- localeToLookupCurry(contentType),
26
- (queryParams) => transformParamsDocumentId(uid, queryParams, { isDraft: queryParams.status === "draft" }),
47
+ multiLocaleToLookupCurry(contentType),
48
+ curriedTransformParamsDocumentId(uid),
27
49
  transformParamsToQuery(uid)
28
50
  )(params || {});
29
51
  return strapi.db.query(uid).findMany(query);
30
52
  }
31
53
  async function findFirst(params = {}) {
32
- const query = await pipeAsync(
33
- defaultToDraft,
34
- statusToLookup,
54
+ const query = await async.pipe(
55
+ validateParams,
56
+ defaultToDraftCurry,
57
+ statusToLookupCurry(contentType),
35
58
  defaultLocaleCurry(contentType),
36
59
  localeToLookupCurry(contentType),
37
- (queryParams) => transformParamsDocumentId(uid, queryParams, { isDraft: queryParams.status === "draft" }),
60
+ curriedTransformParamsDocumentId(uid),
38
61
  transformParamsToQuery(uid)
39
62
  )(params);
40
63
  return strapi.db.query(uid).findOne(query);
41
64
  }
42
- async function findOne(documentId, params = {}) {
43
- const query = await pipeAsync(
44
- defaultToDraft,
45
- statusToLookup,
65
+ async function findOne(opts = {}) {
66
+ const { documentId, ...params } = opts;
67
+ const query = await async.pipe(
68
+ validateParams,
69
+ defaultToDraftCurry,
70
+ statusToLookupCurry(contentType),
46
71
  defaultLocaleCurry(contentType),
47
72
  localeToLookupCurry(contentType),
48
- (queryParams) => transformParamsDocumentId(uid, queryParams, { isDraft: queryParams.status === "draft" }),
73
+ curriedTransformParamsDocumentId(uid),
49
74
  transformParamsToQuery(uid),
50
75
  (query2) => assoc("where", { ...query2.where, documentId }, query2)
51
76
  )(params);
52
77
  return strapi.db.query(uid).findOne(query);
53
78
  }
54
- async function deleteEntry(id) {
55
- const componentsToDelete = await getComponents(uid, { id });
56
- await strapi.db.query(uid).delete({ where: { id } });
57
- await deleteComponents(uid, componentsToDelete, { loadComponents: false });
58
- }
59
- async function deleteFn(documentId, params = {}) {
60
- const query = await pipeAsync(
79
+ async function deleteDocument(opts = {}) {
80
+ const { documentId, ...params } = opts;
81
+ const query = await async.pipe(
82
+ validateParams,
61
83
  omit("status"),
62
84
  defaultLocaleCurry(contentType),
63
85
  multiLocaleToLookupCurry(contentType),
@@ -68,239 +90,237 @@ const createContentTypeRepository = (uid) => {
68
90
  throw new Error("Cannot delete a draft document");
69
91
  }
70
92
  const entriesToDelete = await strapi.db.query(uid).findMany(query);
71
- await mapAsync(entriesToDelete, (entryToDelete) => deleteEntry(entryToDelete.id));
72
- return { deletedEntries: entriesToDelete.length };
73
- }
74
- async function createEntry(params = {}) {
75
- const { data, ...restParams } = await transformParamsDocumentId(uid, params, {
76
- locale: params.locale,
77
- // User can not set publishedAt on create, but other methods in the engine can (publish)
78
- isDraft: !params.data?.publishedAt
79
- });
80
- const query = transformParamsToQuery(uid, pickSelectionParams(restParams));
81
- if (!params.data) {
82
- throw new Error("Create requires data attribute");
83
- }
84
- const validData = await entityValidator.validateEntityCreation(contentType, data, {
85
- isDraft: !data.publishedAt,
86
- locale: params?.locale
87
- });
88
- const componentData = await createComponents(uid, validData);
89
- const entryData = applyTransforms(
90
- Object.assign(omitComponentData(contentType, validData), componentData),
91
- { contentType }
93
+ const deletedEntries = await async.map(
94
+ entriesToDelete,
95
+ (entryToDelete) => entries.delete(entryToDelete.id)
92
96
  );
93
- const doc = await strapi.db.query(uid).create({ ...query, data: entryData });
94
- return doc;
97
+ entriesToDelete.forEach(emitEvent("entry.delete"));
98
+ return { documentId, entries: deletedEntries };
95
99
  }
96
- async function create(params = {}) {
97
- const queryParams = await pipeAsync(
98
- setStatusToDraft,
99
- statusToData,
100
- filterDataPublishedAt,
100
+ async function create(opts = {}) {
101
+ const { documentId, ...params } = opts;
102
+ const queryParams = await async.pipe(
103
+ validateParams,
104
+ filterDataPublishedAtCurry,
105
+ setStatusToDraftCurry(contentType),
106
+ statusToDataCurry(contentType),
101
107
  defaultLocaleCurry(contentType),
102
108
  localeToDataCurry(contentType)
103
109
  )(params);
104
- const doc = await createEntry(queryParams);
105
- if (params.status === "published") {
106
- return publish(doc.documentId, params).then((doc2) => doc2.versions[0]);
110
+ const doc = await entries.create(queryParams);
111
+ emitEvent("entry.create", doc);
112
+ if (hasDraftAndPublish && params.status === "published") {
113
+ return publish({
114
+ ...params,
115
+ documentId: doc.documentId
116
+ }).then((doc2) => doc2.entries[0]);
107
117
  }
108
118
  return doc;
109
119
  }
110
- async function clone(documentId, params = {}) {
111
- const queryParams = await pipeAsync(
112
- filterDataPublishedAt,
113
- localeToLookupCurry(contentType)
120
+ async function clone(opts = {}) {
121
+ const { documentId, ...params } = opts;
122
+ const queryParams = await async.pipe(
123
+ validateParams,
124
+ filterDataPublishedAtCurry,
125
+ defaultLocaleCurry(contentType),
126
+ multiLocaleToLookupCurry(contentType)
114
127
  )(params);
115
- const { data, ...restParams } = await transformParamsDocumentId(uid, queryParams || {}, {
116
- isDraft: true,
117
- locale: queryParams?.locale
118
- });
119
- const query = transformParamsToQuery(uid, pickSelectionParams(restParams));
120
- const model = strapi.contentType(uid);
121
- const entries = await strapi.db.query(uid).findMany({
122
- ...query,
123
- where: { ...queryParams?.lookup, ...query.where, documentId }
124
- });
125
- if (!entries.length) {
126
- return null;
127
- }
128
- const newDocumentId = createDocumentId();
129
- const versions = await mapAsync(entries, async (entryToClone) => {
130
- const isDraft = contentTypes.isDraft(data);
131
- const validData = await entityValidator.validateEntityUpdate(
132
- model,
133
- // Omit id fields, the cloned entity id will be generated by the database
134
- omit(["id"], data),
135
- { isDraft, ...queryParams?.lookup },
136
- entryToClone
137
- );
138
- const componentData = await cloneComponents(uid, entryToClone, validData);
139
- const entityData = applyTransforms(
140
- Object.assign(omitComponentData(model, validData), componentData),
141
- { contentType: model }
142
- );
143
- return strapi.db.query(uid).clone(entryToClone.id, {
144
- ...query,
145
- // Allows entityData to override the documentId (e.g. when publishing)
146
- data: { documentId: newDocumentId, ...entityData, locale: entryToClone.locale }
147
- });
128
+ const entriesToClone = await strapi.db.query(uid).findMany({
129
+ where: {
130
+ ...queryParams?.lookup,
131
+ documentId,
132
+ // DP Enabled: Clone drafts
133
+ // DP Disabled: Clone only the existing version (published)
134
+ publishedAt: { $null: hasDraftAndPublish }
135
+ },
136
+ populate: getDeepPopulate(uid, { relationalFields: ["id"] })
148
137
  });
149
- return { documentId: newDocumentId, versions };
138
+ const clonedEntries = await async.map(
139
+ entriesToClone,
140
+ async.pipe(
141
+ validateParams,
142
+ omit(["id", "createdAt", "updatedAt"]),
143
+ // assign new documentId
144
+ assoc("documentId", createDocumentId()),
145
+ // Merge new data into it
146
+ (data) => merge(data, queryParams.data),
147
+ (data) => entries.create({ ...queryParams, data, status: "draft" })
148
+ )
149
+ );
150
+ clonedEntries.forEach(emitEvent("entry.create"));
151
+ return { documentId: clonedEntries.at(0)?.documentId, entries: clonedEntries };
150
152
  }
151
- async function update(documentId, params = {}) {
152
- const queryParams = await pipeAsync(
153
- setStatusToDraft,
154
- statusToLookup,
155
- statusToData,
156
- filterDataPublishedAt,
153
+ async function update(opts = {}) {
154
+ const { documentId, ...params } = opts;
155
+ const queryParams = await async.pipe(
156
+ validateParams,
157
+ filterDataPublishedAtCurry,
158
+ setStatusToDraftCurry(contentType),
159
+ statusToLookupCurry(contentType),
160
+ statusToDataCurry(contentType),
157
161
  // Default locale will be set if not provided
158
162
  defaultLocaleCurry(contentType),
159
163
  localeToLookupCurry(contentType),
160
164
  localeToDataCurry(contentType)
161
165
  )(params);
162
- const { data, ...restParams } = await transformParamsDocumentId(uid, queryParams || {}, {
163
- isDraft: true,
164
- locale: queryParams?.locale
165
- });
166
+ const { data, ...restParams } = await curriedTransformParamsDocumentId(uid, queryParams || {});
166
167
  const query = transformParamsToQuery(uid, pickSelectionParams(restParams || {}));
167
- const model = strapi.contentType(uid);
168
168
  const entryToUpdate = await strapi.db.query(uid).findOne({ ...query, where: { ...queryParams?.lookup, ...query?.where, documentId } });
169
169
  let updatedDraft = null;
170
170
  if (entryToUpdate) {
171
- const validData = await entityValidator.validateEntityUpdate(
172
- model,
173
- data,
174
- {
175
- isDraft: true,
176
- // Always update the draft version
177
- locale: queryParams?.locale
178
- },
179
- entryToUpdate
180
- );
181
- const componentData = await updateComponents(uid, entryToUpdate, validData);
182
- const entryData = applyTransforms(
183
- Object.assign(omitComponentData(model, validData), componentData),
184
- { contentType: model }
185
- );
186
- updatedDraft = await strapi.db.query(uid).update({ ...query, where: { id: entryToUpdate.id }, data: entryData });
171
+ updatedDraft = await entries.update(entryToUpdate, queryParams);
172
+ emitEvent("entry.update", updatedDraft);
187
173
  }
188
174
  if (!updatedDraft) {
189
175
  const documentExists = await strapi.db.query(contentType.uid).findOne({ where: { documentId } });
190
176
  if (documentExists) {
191
- updatedDraft = await createEntry({
177
+ updatedDraft = await entries.create({
192
178
  ...queryParams,
193
179
  data: { ...queryParams.data, documentId }
194
180
  });
181
+ emitEvent("entry.create", updatedDraft);
195
182
  }
196
183
  }
197
- if (updatedDraft && params.status === "published") {
198
- return publish(documentId, params).then((doc) => doc.versions[0]);
184
+ if (hasDraftAndPublish && updatedDraft && params.status === "published") {
185
+ return publish({
186
+ ...params,
187
+ documentId
188
+ }).then((doc) => doc.entries[0]);
199
189
  }
200
190
  return updatedDraft;
201
191
  }
202
192
  async function count(params = {}) {
203
- const query = await pipeAsync(
204
- defaultToDraft,
205
- statusToLookup,
193
+ const query = await async.pipe(
194
+ validateParams,
195
+ defaultStatusCurry(contentType),
196
+ statusToLookupCurry(contentType),
206
197
  defaultLocaleCurry(contentType),
207
198
  localeToLookupCurry(contentType),
208
199
  transformParamsToQuery(uid)
209
200
  )(params);
210
201
  return strapi.db.query(uid).count(query);
211
202
  }
212
- async function publish(documentId, params = {}) {
213
- const queryParams = await pipeAsync(
203
+ async function publish(opts = {}) {
204
+ const { documentId, ...params } = opts;
205
+ const queryParams = await async.pipe(
206
+ validateParams,
214
207
  defaultLocaleCurry(contentType),
215
208
  multiLocaleToLookupCurry(contentType)
216
209
  )(params);
217
- await deleteFn(documentId, {
218
- ...queryParams,
219
- lookup: { ...queryParams?.lookup, publishedAt: { $ne: null } }
220
- });
221
- const entriesToPublish = await strapi.db?.query(uid).findMany({
222
- where: {
223
- ...queryParams?.lookup,
224
- documentId,
225
- publishedAt: null
226
- },
227
- populate: getDeepPopulate(uid)
228
- });
229
- const publishedEntries = await mapAsync(
230
- entriesToPublish,
231
- pipeAsync(
232
- assoc("publishedAt", /* @__PURE__ */ new Date()),
233
- assoc("documentId", documentId),
234
- omit("id"),
235
- // Transform relations to target published versions
236
- (entry) => {
237
- const opts = { uid, locale: entry.locale, isDraft: false, allowMissingId: true };
238
- return transformData(entry, opts);
210
+ const [draftsToPublish, oldPublishedVersions] = await Promise.all([
211
+ strapi.db.query(uid).findMany({
212
+ where: {
213
+ ...queryParams?.lookup,
214
+ documentId,
215
+ publishedAt: null
216
+ // Ignore lookup
239
217
  },
240
- // Create the published entry
241
- (data) => createEntry({ ...queryParams, data, locale: data.locale })
242
- )
218
+ // Populate relations, media, compos and dz
219
+ populate: getDeepPopulate(uid, { relationalFields: ["documentId", "locale"] })
220
+ }),
221
+ strapi.db.query(uid).findMany({
222
+ where: {
223
+ ...queryParams?.lookup,
224
+ documentId,
225
+ publishedAt: { $ne: null }
226
+ },
227
+ select: ["id", "locale"]
228
+ })
229
+ ]);
230
+ const relationsToSync = await load(uid, {
231
+ newVersions: draftsToPublish,
232
+ oldVersions: oldPublishedVersions
233
+ });
234
+ await async.map(oldPublishedVersions, (entry) => entries.delete(entry.id));
235
+ const publishedEntries = await async.map(
236
+ draftsToPublish,
237
+ (draft) => entries.publish(draft, queryParams)
238
+ );
239
+ await sync(
240
+ [...oldPublishedVersions, ...draftsToPublish],
241
+ publishedEntries,
242
+ relationsToSync
243
243
  );
244
- return { versions: publishedEntries };
244
+ publishedEntries.forEach(emitEvent("entry.publish"));
245
+ return { documentId, entries: publishedEntries };
245
246
  }
246
- async function unpublish(documentId, params = {}) {
247
- const queryParams = await pipeAsync(
247
+ async function unpublish(opts = {}) {
248
+ const { documentId, ...params } = opts;
249
+ const query = await async.pipe(
250
+ validateParams,
248
251
  defaultLocaleCurry(contentType),
249
- multiLocaleToLookupCurry(contentType)
252
+ multiLocaleToLookupCurry(contentType),
253
+ transformParamsToQuery(uid),
254
+ (query2) => assoc("where", { ...query2.where, documentId, publishedAt: { $ne: null } }, query2)
250
255
  )(params);
251
- const { deletedEntries } = await deleteFn(documentId, {
252
- ...params,
253
- lookup: { ...queryParams?.lookup, publishedAt: { $ne: null } }
254
- });
255
- return { versions: deletedEntries };
256
+ const versionsToDelete = await strapi.db.query(uid).findMany(query);
257
+ await async.map(versionsToDelete, (entry) => entries.delete(entry.id));
258
+ versionsToDelete.forEach(emitEvent("entry.unpublish"));
259
+ return { documentId, entries: versionsToDelete };
256
260
  }
257
- async function discardDraft(documentId, params = {}) {
258
- const queryParams = await pipeAsync(
261
+ async function discardDraft(opts = {}) {
262
+ const { documentId, ...params } = opts;
263
+ const queryParams = await async.pipe(
264
+ validateParams,
259
265
  defaultLocaleCurry(contentType),
260
266
  multiLocaleToLookupCurry(contentType)
261
267
  )(params);
262
- await deleteFn(documentId, {
263
- ...queryParams,
264
- // Delete all drafts that match query
265
- lookup: { ...queryParams?.lookup, publishedAt: null }
266
- });
267
- const entriesToDraft = await strapi.db?.query(uid).findMany({
268
- where: {
269
- ...queryParams?.lookup,
270
- documentId,
271
- publishedAt: { $ne: null }
272
- },
273
- populate: getDeepPopulate(uid)
274
- });
275
- const draftEntries = await mapAsync(
276
- entriesToDraft,
277
- pipeAsync(
278
- assoc("publishedAt", null),
279
- assoc("documentId", documentId),
280
- omit("id"),
281
- // Transform relations to target draft versions
282
- (entry) => {
283
- const opts = { uid, locale: entry.locale, isDraft: true, allowMissingId: true };
284
- return transformData(entry, opts);
268
+ const [versionsToDraft, oldDrafts] = await Promise.all([
269
+ strapi.db.query(uid).findMany({
270
+ where: {
271
+ ...queryParams?.lookup,
272
+ documentId,
273
+ publishedAt: { $ne: null }
285
274
  },
286
- // Create the draft entry
287
- (data) => createEntry({ ...queryParams, locale: data.locale, data })
288
- )
275
+ // Populate relations, media, compos and dz
276
+ populate: getDeepPopulate(uid, { relationalFields: ["documentId", "locale"] })
277
+ }),
278
+ strapi.db.query(uid).findMany({
279
+ where: {
280
+ ...queryParams?.lookup,
281
+ documentId,
282
+ publishedAt: null
283
+ },
284
+ select: ["id", "locale"]
285
+ })
286
+ ]);
287
+ const relationsToSync = await load(uid, {
288
+ newVersions: versionsToDraft,
289
+ oldVersions: oldDrafts
290
+ });
291
+ await async.map(oldDrafts, (entry) => entries.delete(entry.id));
292
+ const draftEntries = await async.map(
293
+ versionsToDraft,
294
+ (entry) => entries.discardDraft(entry, queryParams)
289
295
  );
290
- return { versions: draftEntries };
296
+ await sync(
297
+ [...oldDrafts, ...versionsToDraft],
298
+ draftEntries,
299
+ relationsToSync
300
+ );
301
+ draftEntries.forEach(emitEvent("entry.draft-discard"));
302
+ return { documentId, entries: draftEntries };
303
+ }
304
+ async function updateComponents$1(entry, data) {
305
+ return updateComponents(uid, entry, data);
306
+ }
307
+ function omitComponentData$1(data) {
308
+ return omitComponentData(contentType, data);
291
309
  }
292
310
  return {
293
311
  findMany: wrapInTransaction(findMany),
294
312
  findFirst: wrapInTransaction(findFirst),
295
313
  findOne: wrapInTransaction(findOne),
296
- delete: wrapInTransaction(deleteFn),
314
+ delete: wrapInTransaction(deleteDocument),
297
315
  create: wrapInTransaction(create),
298
316
  clone: wrapInTransaction(clone),
299
317
  update: wrapInTransaction(update),
300
318
  count: wrapInTransaction(count),
301
- publish: wrapInTransaction(publish),
302
- unpublish: wrapInTransaction(unpublish),
303
- discardDraft: wrapInTransaction(discardDraft)
319
+ publish: hasDraftAndPublish ? wrapInTransaction(publish) : void 0,
320
+ unpublish: hasDraftAndPublish ? wrapInTransaction(unpublish) : void 0,
321
+ discardDraft: hasDraftAndPublish ? wrapInTransaction(discardDraft) : void 0,
322
+ updateComponents: updateComponents$1,
323
+ omitComponentData: omitComponentData$1
304
324
  };
305
325
  };
306
326
  export {