@strapi/core 0.0.0-experimental.3f7b2587c5e3d548262671895cf11d8bf8c9166e → 0.0.0-experimental.45c1b845d32b56e7c14f4155ec0d4a2d2774c77e

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 (306) hide show
  1. package/dist/Strapi.d.ts.map +1 -1
  2. package/dist/Strapi.js +8 -4
  3. package/dist/Strapi.js.map +1 -1
  4. package/dist/Strapi.mjs +7 -3
  5. package/dist/Strapi.mjs.map +1 -1
  6. package/dist/configuration/index.d.ts.map +1 -1
  7. package/dist/configuration/index.js +4 -4
  8. package/dist/configuration/index.js.map +1 -1
  9. package/dist/configuration/index.mjs +1 -1
  10. package/dist/configuration/index.mjs.map +1 -1
  11. package/dist/configuration/urls.d.ts +8 -0
  12. package/dist/configuration/urls.d.ts.map +1 -0
  13. package/dist/configuration/urls.js +68 -0
  14. package/dist/configuration/urls.js.map +1 -0
  15. package/dist/configuration/urls.mjs +66 -0
  16. package/dist/configuration/urls.mjs.map +1 -0
  17. package/dist/core-api/controller/collection-type.d.ts +1 -1
  18. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  19. package/dist/core-api/controller/collection-type.js +9 -20
  20. package/dist/core-api/controller/collection-type.js.map +1 -1
  21. package/dist/core-api/controller/collection-type.mjs +8 -20
  22. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  23. package/dist/core-api/controller/index.d.ts.map +1 -1
  24. package/dist/core-api/controller/index.js +8 -3
  25. package/dist/core-api/controller/index.js.map +1 -1
  26. package/dist/core-api/controller/index.mjs +8 -3
  27. package/dist/core-api/controller/index.mjs.map +1 -1
  28. package/dist/core-api/controller/single-type.d.ts +1 -1
  29. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  30. package/dist/core-api/controller/single-type.js +6 -11
  31. package/dist/core-api/controller/single-type.js.map +1 -1
  32. package/dist/core-api/controller/single-type.mjs +5 -11
  33. package/dist/core-api/controller/single-type.mjs.map +1 -1
  34. package/dist/core-api/controller/transform.d.ts +9 -17
  35. package/dist/core-api/controller/transform.d.ts.map +1 -1
  36. package/dist/core-api/controller/transform.js +9 -14
  37. package/dist/core-api/controller/transform.js.map +1 -1
  38. package/dist/core-api/controller/transform.mjs +9 -14
  39. package/dist/core-api/controller/transform.mjs.map +1 -1
  40. package/dist/core-api/service/collection-type.d.ts +28 -5
  41. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  42. package/dist/core-api/service/collection-type.js +47 -49
  43. package/dist/core-api/service/collection-type.js.map +1 -1
  44. package/dist/core-api/service/collection-type.mjs +47 -50
  45. package/dist/core-api/service/collection-type.mjs.map +1 -1
  46. package/dist/core-api/service/core-service.d.ts +4 -0
  47. package/dist/core-api/service/core-service.d.ts.map +1 -0
  48. package/dist/core-api/service/core-service.js +12 -0
  49. package/dist/core-api/service/core-service.js.map +1 -0
  50. package/dist/core-api/service/core-service.mjs +12 -0
  51. package/dist/core-api/service/core-service.mjs.map +1 -0
  52. package/dist/core-api/service/index.js +2 -2
  53. package/dist/core-api/service/index.js.map +1 -1
  54. package/dist/core-api/service/index.mjs +4 -4
  55. package/dist/core-api/service/index.mjs.map +1 -1
  56. package/dist/core-api/service/pagination.d.ts +1 -5
  57. package/dist/core-api/service/pagination.d.ts.map +1 -1
  58. package/dist/core-api/service/pagination.js +0 -11
  59. package/dist/core-api/service/pagination.js.map +1 -1
  60. package/dist/core-api/service/pagination.mjs +0 -11
  61. package/dist/core-api/service/pagination.mjs.map +1 -1
  62. package/dist/core-api/service/single-type.d.ts +14 -8
  63. package/dist/core-api/service/single-type.d.ts.map +1 -1
  64. package/dist/core-api/service/single-type.js +35 -50
  65. package/dist/core-api/service/single-type.js.map +1 -1
  66. package/dist/core-api/service/single-type.mjs +34 -50
  67. package/dist/core-api/service/single-type.mjs.map +1 -1
  68. package/dist/domain/content-type/index.d.ts.map +1 -1
  69. package/dist/domain/content-type/index.js +3 -0
  70. package/dist/domain/content-type/index.js.map +1 -1
  71. package/dist/domain/content-type/index.mjs +3 -0
  72. package/dist/domain/content-type/index.mjs.map +1 -1
  73. package/dist/domain/content-type/validator.d.ts.map +1 -1
  74. package/dist/domain/content-type/validator.js +1 -1
  75. package/dist/domain/content-type/validator.js.map +1 -1
  76. package/dist/domain/content-type/validator.mjs +2 -2
  77. package/dist/domain/content-type/validator.mjs.map +1 -1
  78. package/dist/domain/module/index.d.ts.map +1 -1
  79. package/dist/domain/module/index.js +2 -3
  80. package/dist/domain/module/index.js.map +1 -1
  81. package/dist/domain/module/index.mjs +2 -3
  82. package/dist/domain/module/index.mjs.map +1 -1
  83. package/dist/factories.d.ts.map +1 -1
  84. package/dist/factories.js +2 -12
  85. package/dist/factories.js.map +1 -1
  86. package/dist/factories.mjs +2 -12
  87. package/dist/factories.mjs.map +1 -1
  88. package/dist/loaders/apis.js +1 -1
  89. package/dist/loaders/apis.js.map +1 -1
  90. package/dist/loaders/apis.mjs +2 -2
  91. package/dist/loaders/apis.mjs.map +1 -1
  92. package/dist/loaders/plugins/get-enabled-plugins.js +1 -1
  93. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  94. package/dist/loaders/plugins/get-enabled-plugins.mjs +2 -2
  95. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  96. package/dist/registries/config.d.ts +2 -2
  97. package/dist/registries/config.d.ts.map +1 -1
  98. package/dist/registries/config.js +14 -6
  99. package/dist/registries/config.js.map +1 -1
  100. package/dist/registries/config.mjs +15 -5
  101. package/dist/registries/config.mjs.map +1 -1
  102. package/dist/registries/content-types.d.ts.map +1 -1
  103. package/dist/registries/content-types.js +1 -2
  104. package/dist/registries/content-types.js.map +1 -1
  105. package/dist/registries/content-types.mjs +1 -2
  106. package/dist/registries/content-types.mjs.map +1 -1
  107. package/dist/services/document-service/common.d.ts +4 -0
  108. package/dist/services/document-service/common.d.ts.map +1 -0
  109. package/dist/services/document-service/common.js +7 -0
  110. package/dist/services/document-service/common.js.map +1 -0
  111. package/dist/services/document-service/common.mjs +7 -0
  112. package/dist/services/document-service/common.mjs.map +1 -0
  113. package/dist/services/document-service/draft-and-publish.d.ts +10 -0
  114. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -0
  115. package/dist/services/document-service/draft-and-publish.js +69 -0
  116. package/dist/services/document-service/draft-and-publish.js.map +1 -0
  117. package/dist/services/document-service/draft-and-publish.mjs +69 -0
  118. package/dist/services/document-service/draft-and-publish.mjs.map +1 -0
  119. package/dist/services/document-service/{document-service.d.ts → index.d.ts} +2 -4
  120. package/dist/services/document-service/index.d.ts.map +1 -0
  121. package/dist/services/document-service/index.js +22 -0
  122. package/dist/services/document-service/index.js.map +1 -0
  123. package/dist/services/document-service/index.mjs +22 -0
  124. package/dist/services/document-service/index.mjs.map +1 -0
  125. package/dist/services/document-service/internationalization.d.ts +8 -0
  126. package/dist/services/document-service/internationalization.d.ts.map +1 -0
  127. package/dist/services/document-service/internationalization.js +54 -0
  128. package/dist/services/document-service/internationalization.js.map +1 -0
  129. package/dist/services/document-service/internationalization.mjs +54 -0
  130. package/dist/services/document-service/internationalization.mjs.map +1 -0
  131. package/dist/services/document-service/middlewares.d.ts +8 -0
  132. package/dist/services/document-service/middlewares.d.ts.map +1 -0
  133. package/dist/services/document-service/middlewares.js +46 -0
  134. package/dist/services/document-service/middlewares.js.map +1 -0
  135. package/dist/services/document-service/middlewares.mjs +46 -0
  136. package/dist/services/document-service/middlewares.mjs.map +1 -0
  137. package/dist/services/document-service/repository.d.ts +3 -0
  138. package/dist/services/document-service/repository.d.ts.map +1 -0
  139. package/dist/services/document-service/repository.js +304 -0
  140. package/dist/services/document-service/repository.js.map +1 -0
  141. package/dist/services/document-service/repository.mjs +304 -0
  142. package/dist/services/document-service/repository.mjs.map +1 -0
  143. package/dist/services/document-service/transform/data.d.ts +5 -0
  144. package/dist/services/document-service/transform/data.d.ts.map +1 -0
  145. package/dist/services/document-service/transform/data.js +13 -0
  146. package/dist/services/document-service/transform/data.js.map +1 -0
  147. package/dist/services/document-service/transform/data.mjs +13 -0
  148. package/dist/services/document-service/transform/data.mjs.map +1 -0
  149. package/dist/services/document-service/transform/fields.d.ts +5 -0
  150. package/dist/services/document-service/transform/fields.d.ts.map +1 -0
  151. package/dist/services/document-service/transform/fields.js +24 -0
  152. package/dist/services/document-service/transform/fields.js.map +1 -0
  153. package/dist/services/document-service/transform/fields.mjs +24 -0
  154. package/dist/services/document-service/transform/fields.mjs.map +1 -0
  155. package/dist/services/document-service/transform/filters.d.ts +3 -0
  156. package/dist/services/document-service/transform/filters.d.ts.map +1 -0
  157. package/dist/services/document-service/transform/id-map.d.ts +23 -0
  158. package/dist/services/document-service/transform/id-map.d.ts.map +1 -0
  159. package/dist/services/document-service/transform/id-map.js +78 -0
  160. package/dist/services/document-service/transform/id-map.js.map +1 -0
  161. package/dist/services/document-service/transform/id-map.mjs +78 -0
  162. package/dist/services/document-service/transform/id-map.mjs.map +1 -0
  163. package/dist/services/document-service/transform/id-transform.d.ts +5 -0
  164. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -0
  165. package/dist/services/document-service/transform/id-transform.js +33 -0
  166. package/dist/services/document-service/transform/id-transform.js.map +1 -0
  167. package/dist/services/document-service/transform/id-transform.mjs +33 -0
  168. package/dist/services/document-service/transform/id-transform.mjs.map +1 -0
  169. package/dist/services/document-service/transform/populate.d.ts +6 -0
  170. package/dist/services/document-service/transform/populate.d.ts.map +1 -0
  171. package/dist/services/document-service/transform/populate.js +21 -0
  172. package/dist/services/document-service/transform/populate.js.map +1 -0
  173. package/dist/services/document-service/transform/populate.mjs +21 -0
  174. package/dist/services/document-service/transform/populate.mjs.map +1 -0
  175. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +13 -0
  176. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -0
  177. package/dist/services/document-service/transform/relations/extract/data-ids.js +90 -0
  178. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -0
  179. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +90 -0
  180. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -0
  181. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +10 -0
  182. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -0
  183. package/dist/services/document-service/transform/relations/transform/data-ids.js +141 -0
  184. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -0
  185. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +141 -0
  186. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -0
  187. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +4 -0
  188. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +1 -0
  189. package/dist/services/document-service/transform/relations/utils/data.d.ts +4 -0
  190. package/dist/services/document-service/transform/relations/utils/data.d.ts.map +1 -0
  191. package/dist/services/document-service/transform/relations/utils/data.js +12 -0
  192. package/dist/services/document-service/transform/relations/utils/data.js.map +1 -0
  193. package/dist/services/document-service/transform/relations/utils/data.mjs +12 -0
  194. package/dist/services/document-service/transform/relations/utils/data.mjs.map +1 -0
  195. package/dist/services/document-service/transform/relations/utils/dp.d.ts +10 -0
  196. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -0
  197. package/dist/services/document-service/transform/relations/utils/dp.js +25 -0
  198. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -0
  199. package/dist/services/document-service/transform/relations/utils/dp.mjs +25 -0
  200. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -0
  201. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +10 -0
  202. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -0
  203. package/dist/services/document-service/transform/relations/utils/i18n.js +31 -0
  204. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -0
  205. package/dist/services/document-service/transform/relations/utils/i18n.mjs +31 -0
  206. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -0
  207. package/dist/services/document-service/transform/relations/utils/types.d.ts +15 -0
  208. package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -0
  209. package/dist/services/document-service/transform/sort.d.ts +5 -0
  210. package/dist/services/document-service/transform/sort.d.ts.map +1 -0
  211. package/dist/services/document-service/transform/types.d.ts +13 -0
  212. package/dist/services/document-service/transform/types.d.ts.map +1 -0
  213. package/dist/services/document-service/transform/utils.d.ts +9 -0
  214. package/dist/services/document-service/transform/utils.d.ts.map +1 -0
  215. package/dist/services/document-service/utils/populate.d.ts +3 -0
  216. package/dist/services/document-service/utils/populate.d.ts.map +1 -0
  217. package/dist/services/document-service/utils/populate.js +41 -0
  218. package/dist/services/document-service/utils/populate.js.map +1 -0
  219. package/dist/services/document-service/utils/populate.mjs +41 -0
  220. package/dist/services/document-service/utils/populate.mjs.map +1 -0
  221. package/dist/services/entity-service/components.js +8 -8
  222. package/dist/services/entity-service/components.js.map +1 -1
  223. package/dist/services/entity-service/components.mjs +9 -9
  224. package/dist/services/entity-service/components.mjs.map +1 -1
  225. package/dist/services/entity-service/index.d.ts.map +1 -1
  226. package/dist/services/entity-service/index.js +3 -3
  227. package/dist/services/entity-service/index.js.map +1 -1
  228. package/dist/services/entity-service/index.mjs +3 -3
  229. package/dist/services/entity-service/index.mjs.map +1 -1
  230. package/dist/services/entity-service/params.d.ts +4 -4
  231. package/dist/services/entity-service/params.d.ts.map +1 -1
  232. package/dist/services/entity-service/params.js +1 -1
  233. package/dist/services/entity-service/params.js.map +1 -1
  234. package/dist/services/entity-service/params.mjs +1 -1
  235. package/dist/services/entity-service/params.mjs.map +1 -1
  236. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  237. package/dist/services/entity-validator/blocks-validator.js +22 -2
  238. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  239. package/dist/services/entity-validator/blocks-validator.mjs +22 -2
  240. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  241. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  242. package/dist/services/entity-validator/validators.js +7 -8
  243. package/dist/services/entity-validator/validators.js.map +1 -1
  244. package/dist/services/entity-validator/validators.mjs +7 -8
  245. package/dist/services/entity-validator/validators.mjs.map +1 -1
  246. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  247. package/dist/services/server/compose-endpoint.js +3 -0
  248. package/dist/services/server/compose-endpoint.js.map +1 -1
  249. package/dist/services/server/compose-endpoint.mjs +3 -0
  250. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  251. package/dist/services/webhook-store.js +2 -2
  252. package/dist/services/webhook-store.js.map +1 -1
  253. package/dist/services/webhook-store.mjs +2 -2
  254. package/dist/services/webhook-store.mjs.map +1 -1
  255. package/dist/utils/load-config-file.js +1 -1
  256. package/dist/utils/load-config-file.js.map +1 -1
  257. package/dist/utils/load-config-file.mjs +2 -2
  258. package/dist/utils/load-config-file.mjs.map +1 -1
  259. package/dist/utils/transform-content-types-to-models.d.ts +174 -3
  260. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  261. package/dist/utils/transform-content-types-to-models.js +80 -41
  262. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  263. package/dist/utils/transform-content-types-to-models.mjs +79 -41
  264. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  265. package/package.json +14 -14
  266. package/dist/core-api/service/get-fetch-params.d.ts +0 -7
  267. package/dist/core-api/service/get-fetch-params.d.ts.map +0 -1
  268. package/dist/core-api/service/get-fetch-params.js +0 -14
  269. package/dist/core-api/service/get-fetch-params.js.map +0 -1
  270. package/dist/core-api/service/get-fetch-params.mjs +0 -14
  271. package/dist/core-api/service/get-fetch-params.mjs.map +0 -1
  272. package/dist/services/document-service/document-engine.d.ts +0 -8
  273. package/dist/services/document-service/document-engine.d.ts.map +0 -1
  274. package/dist/services/document-service/document-engine.js +0 -200
  275. package/dist/services/document-service/document-engine.js.map +0 -1
  276. package/dist/services/document-service/document-engine.mjs +0 -201
  277. package/dist/services/document-service/document-engine.mjs.map +0 -1
  278. package/dist/services/document-service/document-service.d.ts.map +0 -1
  279. package/dist/services/document-service/document-service.js +0 -132
  280. package/dist/services/document-service/document-service.js.map +0 -1
  281. package/dist/services/document-service/document-service.mjs +0 -132
  282. package/dist/services/document-service/document-service.mjs.map +0 -1
  283. package/dist/services/document-service/middlewares/defaults/draft-and-publish.d.ts +0 -26
  284. package/dist/services/document-service/middlewares/defaults/draft-and-publish.d.ts.map +0 -1
  285. package/dist/services/document-service/middlewares/defaults/draft-and-publish.js +0 -58
  286. package/dist/services/document-service/middlewares/defaults/draft-and-publish.js.map +0 -1
  287. package/dist/services/document-service/middlewares/defaults/draft-and-publish.mjs +0 -58
  288. package/dist/services/document-service/middlewares/defaults/draft-and-publish.mjs.map +0 -1
  289. package/dist/services/document-service/middlewares/defaults/index.d.ts +0 -3
  290. package/dist/services/document-service/middlewares/defaults/index.d.ts.map +0 -1
  291. package/dist/services/document-service/middlewares/defaults/index.js +0 -82
  292. package/dist/services/document-service/middlewares/defaults/index.js.map +0 -1
  293. package/dist/services/document-service/middlewares/defaults/index.mjs +0 -82
  294. package/dist/services/document-service/middlewares/defaults/index.mjs.map +0 -1
  295. package/dist/services/document-service/middlewares/defaults/locales.d.ts +0 -18
  296. package/dist/services/document-service/middlewares/defaults/locales.d.ts.map +0 -1
  297. package/dist/services/document-service/middlewares/defaults/locales.js +0 -50
  298. package/dist/services/document-service/middlewares/defaults/locales.js.map +0 -1
  299. package/dist/services/document-service/middlewares/defaults/locales.mjs +0 -50
  300. package/dist/services/document-service/middlewares/defaults/locales.mjs.map +0 -1
  301. package/dist/services/document-service/middlewares/index.d.ts +0 -11
  302. package/dist/services/document-service/middlewares/index.d.ts.map +0 -1
  303. package/dist/services/document-service/middlewares/index.js +0 -59
  304. package/dist/services/document-service/middlewares/index.js.map +0 -1
  305. package/dist/services/document-service/middlewares/index.mjs +0 -59
  306. package/dist/services/document-service/middlewares/index.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"document-engine.js","sources":["../../../src/services/document-service/document-engine.ts"],"sourcesContent":["import type { Database } from '@strapi/database';\nimport type { Common, Documents, Schema, Shared, Strapi } from '@strapi/types';\nimport { contentTypes as contentTypesUtils, convertQueryParams, mapAsync } from '@strapi/utils';\n\nimport { isArray, omit } from 'lodash/fp';\nimport uploadFiles from '../utils/upload-files';\n\nimport {\n cloneComponents,\n createComponents,\n deleteComponents,\n getComponents,\n omitComponentData,\n updateComponents,\n} from '../entity-service/components';\n\nimport { createDocumentId } from '../../utils/transform-content-types-to-models';\nimport { applyTransforms } from '../entity-service/attributes';\nimport entityValidator from '../entity-validator';\nimport { pickSelectionParams } from './params';\n\nconst { transformParamsToQuery } = convertQueryParams;\n\n/**\n * TODO: Sanitization / validation built-in\n * TODO: i18n - Move logic to i18n package\n * TODO: Webhooks\n * TODO: Audit logs\n * TODO: Entity Validation - Uniqueness across same locale and publication status\n * TODO: File upload\n * TODO: replace 'any'\n * TODO: availableLocales\n *\n */\ntype Context = {\n contentType: Schema.ContentType;\n};\n\nconst createPipeline = (data: Record<string, unknown>, context: Context) => {\n return applyTransforms(data, context);\n};\n\nconst updatePipeline = (data: Record<string, unknown>, context: Context) => {\n return applyTransforms(data, context);\n};\n\nconst createDocumentEngine = ({\n strapi,\n db,\n}: {\n strapi: Strapi;\n db: Database;\n}): Documents.Engine => ({\n uploadFiles,\n\n async findMany(uid, params) {\n const { kind } = strapi.getModel(uid);\n\n const query = transformParamsToQuery(uid, params || ({} as any));\n query.where = { ...params?.lookup, ...query.where };\n\n if (kind === 'singleType') {\n return db.query(uid).findOne(query);\n }\n\n return db.query(uid).findMany(query);\n },\n\n async findFirst(uid, params) {\n const query = transformParamsToQuery(uid, params || ({} as any));\n\n return db.query(uid).findOne({ ...query, where: { ...params?.lookup, ...query.where } });\n },\n\n async findOne(uid, documentId, params) {\n const query = transformParamsToQuery(uid, params || ({} as any));\n return db\n .query(uid)\n .findOne({ ...query, where: { ...params?.lookup, ...query.where, documentId } });\n },\n\n async delete(uid, documentId, params = {} as any) {\n const query = transformParamsToQuery(uid, params as any);\n\n if (params.status === 'draft') {\n throw new Error('Cannot delete a draft document');\n }\n\n const entriesToDelete = await db.query(uid).findMany({\n ...query,\n where: {\n ...params.lookup,\n ...query?.where,\n documentId,\n },\n });\n\n // Delete all matched entries and its components\n await mapAsync(entriesToDelete, async (entryToDelete: any) => {\n const componentsToDelete = await getComponents(uid, entryToDelete);\n await db.query(uid).delete({ where: { id: entryToDelete.id } });\n await deleteComponents(uid, componentsToDelete as any, { loadComponents: false });\n });\n\n // TODO: Change return value to actual count\n return { versions: entriesToDelete };\n },\n\n // TODO: should we provide two separate methods?\n async deleteMany(uid, paramsOrIds) {\n let queryParams;\n if (isArray(paramsOrIds)) {\n queryParams = { filter: { documentID: { $in: paramsOrIds } } };\n } else {\n queryParams = paramsOrIds;\n }\n\n const query = transformParamsToQuery(uid, queryParams || ({} as any));\n\n return db.query(uid).deleteMany(query);\n },\n\n async create(uid, params) {\n // TODO: Entity validator.\n // TODO: File upload - Probably in the lifecycles?\n const { data } = params;\n\n if (!data) {\n throw new Error('Create requires data attribute');\n }\n\n const model = strapi.getModel(uid) as Shared.ContentTypes[Common.UID.ContentType];\n\n const validData = await entityValidator.validateEntityCreation(model, data, {\n isDraft: true,\n locale: params?.locale,\n });\n\n const componentData = await createComponents(uid, validData);\n const entryData = createPipeline(\n Object.assign(omitComponentData(model, validData), componentData),\n {\n contentType: model,\n }\n );\n\n // select / populate\n const query = transformParamsToQuery(uid, pickSelectionParams(params) as any);\n\n return db.query(uid).create({ ...query, data: entryData });\n },\n\n // NOTE: What happens if user doesn't provide specific publications state and locale to update?\n async update(uid, documentId, params) {\n // TODO: Prevent updating a published document\n // TODO: Entity validator.\n // TODO: File upload\n const { data } = params || {};\n const model = strapi.getModel(uid) as Shared.ContentTypes[Common.UID.ContentType];\n\n const query = transformParamsToQuery(uid, pickSelectionParams(params || {}) as any);\n\n // Find all locales of the document\n const entryToUpdate = await db\n .query(uid)\n .findOne({ ...query, where: { ...params?.lookup, ...query?.where, documentId } });\n\n // Document does not exist\n if (!entryToUpdate) {\n return null;\n }\n\n const validData = await entityValidator.validateEntityUpdate(\n model,\n data,\n {\n isDraft: true, // Always update the draft version\n locale: params?.locale,\n },\n entryToUpdate\n );\n\n const componentData = await updateComponents(uid, entryToUpdate, validData);\n const entryData = updatePipeline(\n Object.assign(omitComponentData(model, validData), componentData),\n { contentType: model }\n );\n\n return db.query(uid).update({ ...query, where: { id: entryToUpdate.id }, data: entryData });\n },\n\n async count(uid, params = undefined) {\n const query = transformParamsToQuery(uid, params || ({} as any));\n query.where = { ...params?.lookup, ...query.where };\n\n return db.query(uid).count(query);\n },\n\n async clone(uid, documentId, params) {\n // TODO: File upload\n // TODO: Entity validator.\n const { data = {} as any } = params!;\n\n const model = strapi.getModel(uid);\n const query = transformParamsToQuery(uid, pickSelectionParams(params) as any);\n\n // Find all locales of the document\n const entries = await db.query(uid).findMany({\n ...query,\n where: { ...params?.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, ...params?.lookup },\n entryToClone\n );\n\n const componentData = await cloneComponents(uid, entryToClone, validData);\n const entityData = createPipeline(\n Object.assign(omitComponentData(model, validData), componentData),\n { contentType: model }\n );\n\n // TODO: Transform params to query\n return 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 { id: newDocumentId, versions };\n },\n\n // TODO: Handle relations so they target the published version\n async publish(uid, documentId, params) {\n // Delete already published versions that match the locales to be published\n await this.delete(uid, documentId, {\n ...params,\n lookup: { ...params?.lookup, publishedAt: { $ne: null } },\n });\n\n // Clone every draft version to be published\n const clonedDocuments = (await this.clone(uid, documentId, {\n ...(params || {}),\n // @ts-expect-error - Generic type does not have publishedAt attribute by default\n data: { documentId, publishedAt: new Date() },\n })) as any;\n\n // TODO: Return actual count\n return { versions: clonedDocuments?.versions || [] };\n },\n\n async unpublish(uid, documentId, params) {\n // Delete all published versions\n return this.delete(uid, documentId, {\n ...params,\n lookup: { ...params?.lookup, publishedAt: { $ne: null } },\n }) as any;\n },\n\n /**\n * Steps:\n * - Delete the matching draft versions (publishedAt = null)\n * - Clone the matching published versions into draft versions\n */\n async discardDraft(uid, documentId, params) {\n // Delete draft versions, clone published versions into draft versions\n await this.delete(uid, documentId, {\n ...params,\n // Delete all drafts that match query\n lookup: { ...params?.lookup, publishedAt: null },\n });\n\n // Clone published versions into draft versions\n const clonedDocuments = (await this.clone(uid, documentId, {\n ...(params || {}),\n // Clone only published versions\n lookup: { ...params?.lookup, publishedAt: { $ne: null } },\n // @ts-expect-error - Generic type does not have publishedAt attribute by default\n data: { documentId, publishedAt: null },\n })) as any;\n\n return { versions: clonedDocuments?.versions || [] };\n },\n});\n\nexport default (ctx: { strapi: Strapi; db: Database }): Documents.Engine => {\n const implementation = createDocumentEngine(ctx);\n\n // TODO: Wrap with database error handling\n return implementation;\n};\n"],"names":["convertQueryParams","applyTransforms","params","mapAsync","getComponents","deleteComponents","isArray","entityValidator","createComponents","omitComponentData","pickSelectionParams","updateComponents","createDocumentId","contentTypesUtils","omit","cloneComponents"],"mappings":"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"}
@@ -1,201 +0,0 @@
1
- import { mapAsync, contentTypes, convertQueryParams } from "@strapi/utils";
2
- import { isArray, omit } from "lodash/fp";
3
- import uploadFile from "../utils/upload-files.mjs";
4
- import { getComponents, deleteComponents, createComponents, omitComponentData, updateComponents, cloneComponents } from "../entity-service/components.mjs";
5
- import { createDocumentId } from "../../utils/transform-content-types-to-models.mjs";
6
- import { applyTransforms } from "../entity-service/attributes/index.mjs";
7
- import entityValidator from "../entity-validator/index.mjs";
8
- import { pickSelectionParams } from "../entity-service/params.mjs";
9
- const { transformParamsToQuery } = convertQueryParams;
10
- const createPipeline = (data, context) => {
11
- return applyTransforms(data, context);
12
- };
13
- const updatePipeline = (data, context) => {
14
- return applyTransforms(data, context);
15
- };
16
- const createDocumentEngine = ({
17
- strapi,
18
- db
19
- }) => ({
20
- uploadFiles: uploadFile,
21
- async findMany(uid, params) {
22
- const { kind } = strapi.getModel(uid);
23
- const query = transformParamsToQuery(uid, params || {});
24
- query.where = { ...params?.lookup, ...query.where };
25
- if (kind === "singleType") {
26
- return db.query(uid).findOne(query);
27
- }
28
- return db.query(uid).findMany(query);
29
- },
30
- async findFirst(uid, params) {
31
- const query = transformParamsToQuery(uid, params || {});
32
- return db.query(uid).findOne({ ...query, where: { ...params?.lookup, ...query.where } });
33
- },
34
- async findOne(uid, documentId, params) {
35
- const query = transformParamsToQuery(uid, params || {});
36
- return db.query(uid).findOne({ ...query, where: { ...params?.lookup, ...query.where, documentId } });
37
- },
38
- async delete(uid, documentId, params = {}) {
39
- const query = transformParamsToQuery(uid, params);
40
- if (params.status === "draft") {
41
- throw new Error("Cannot delete a draft document");
42
- }
43
- const entriesToDelete = await db.query(uid).findMany({
44
- ...query,
45
- where: {
46
- ...params.lookup,
47
- ...query?.where,
48
- documentId
49
- }
50
- });
51
- await mapAsync(entriesToDelete, async (entryToDelete) => {
52
- const componentsToDelete = await getComponents(uid, entryToDelete);
53
- await db.query(uid).delete({ where: { id: entryToDelete.id } });
54
- await deleteComponents(uid, componentsToDelete, { loadComponents: false });
55
- });
56
- return { versions: entriesToDelete };
57
- },
58
- // TODO: should we provide two separate methods?
59
- async deleteMany(uid, paramsOrIds) {
60
- let queryParams;
61
- if (isArray(paramsOrIds)) {
62
- queryParams = { filter: { documentID: { $in: paramsOrIds } } };
63
- } else {
64
- queryParams = paramsOrIds;
65
- }
66
- const query = transformParamsToQuery(uid, queryParams || {});
67
- return db.query(uid).deleteMany(query);
68
- },
69
- async create(uid, params) {
70
- const { data } = params;
71
- if (!data) {
72
- throw new Error("Create requires data attribute");
73
- }
74
- const model = strapi.getModel(uid);
75
- const validData = await entityValidator.validateEntityCreation(model, data, {
76
- isDraft: true,
77
- locale: params?.locale
78
- });
79
- const componentData = await createComponents(uid, validData);
80
- const entryData = createPipeline(
81
- Object.assign(omitComponentData(model, validData), componentData),
82
- {
83
- contentType: model
84
- }
85
- );
86
- const query = transformParamsToQuery(uid, pickSelectionParams(params));
87
- return db.query(uid).create({ ...query, data: entryData });
88
- },
89
- // NOTE: What happens if user doesn't provide specific publications state and locale to update?
90
- async update(uid, documentId, params) {
91
- const { data } = params || {};
92
- const model = strapi.getModel(uid);
93
- const query = transformParamsToQuery(uid, pickSelectionParams(params || {}));
94
- const entryToUpdate = await db.query(uid).findOne({ ...query, where: { ...params?.lookup, ...query?.where, documentId } });
95
- if (!entryToUpdate) {
96
- return null;
97
- }
98
- const validData = await entityValidator.validateEntityUpdate(
99
- model,
100
- data,
101
- {
102
- isDraft: true,
103
- // Always update the draft version
104
- locale: params?.locale
105
- },
106
- entryToUpdate
107
- );
108
- const componentData = await updateComponents(uid, entryToUpdate, validData);
109
- const entryData = updatePipeline(
110
- Object.assign(omitComponentData(model, validData), componentData),
111
- { contentType: model }
112
- );
113
- return db.query(uid).update({ ...query, where: { id: entryToUpdate.id }, data: entryData });
114
- },
115
- async count(uid, params = void 0) {
116
- const query = transformParamsToQuery(uid, params || {});
117
- query.where = { ...params?.lookup, ...query.where };
118
- return db.query(uid).count(query);
119
- },
120
- async clone(uid, documentId, params) {
121
- const { data = {} } = params;
122
- const model = strapi.getModel(uid);
123
- const query = transformParamsToQuery(uid, pickSelectionParams(params));
124
- const entries = await db.query(uid).findMany({
125
- ...query,
126
- where: { ...params?.lookup, ...query.where, documentId }
127
- });
128
- if (!entries.length) {
129
- return null;
130
- }
131
- const newDocumentId = createDocumentId();
132
- const versions = await mapAsync(entries, async (entryToClone) => {
133
- const isDraft = contentTypes.isDraft(data);
134
- const validData = await entityValidator.validateEntityUpdate(
135
- model,
136
- // Omit id fields, the cloned entity id will be generated by the database
137
- omit(["id"], data),
138
- { isDraft, ...params?.lookup },
139
- entryToClone
140
- );
141
- const componentData = await cloneComponents(uid, entryToClone, validData);
142
- const entityData = createPipeline(
143
- Object.assign(omitComponentData(model, validData), componentData),
144
- { contentType: model }
145
- );
146
- return db.query(uid).clone(entryToClone.id, {
147
- ...query,
148
- // Allows entityData to override the documentId (e.g. when publishing)
149
- data: { documentId: newDocumentId, ...entityData, locale: entryToClone.locale }
150
- });
151
- });
152
- return { id: newDocumentId, versions };
153
- },
154
- // TODO: Handle relations so they target the published version
155
- async publish(uid, documentId, params) {
156
- await this.delete(uid, documentId, {
157
- ...params,
158
- lookup: { ...params?.lookup, publishedAt: { $ne: null } }
159
- });
160
- const clonedDocuments = await this.clone(uid, documentId, {
161
- ...params || {},
162
- // @ts-expect-error - Generic type does not have publishedAt attribute by default
163
- data: { documentId, publishedAt: /* @__PURE__ */ new Date() }
164
- });
165
- return { versions: clonedDocuments?.versions || [] };
166
- },
167
- async unpublish(uid, documentId, params) {
168
- return this.delete(uid, documentId, {
169
- ...params,
170
- lookup: { ...params?.lookup, publishedAt: { $ne: null } }
171
- });
172
- },
173
- /**
174
- * Steps:
175
- * - Delete the matching draft versions (publishedAt = null)
176
- * - Clone the matching published versions into draft versions
177
- */
178
- async discardDraft(uid, documentId, params) {
179
- await this.delete(uid, documentId, {
180
- ...params,
181
- // Delete all drafts that match query
182
- lookup: { ...params?.lookup, publishedAt: null }
183
- });
184
- const clonedDocuments = await this.clone(uid, documentId, {
185
- ...params || {},
186
- // Clone only published versions
187
- lookup: { ...params?.lookup, publishedAt: { $ne: null } },
188
- // @ts-expect-error - Generic type does not have publishedAt attribute by default
189
- data: { documentId, publishedAt: null }
190
- });
191
- return { versions: clonedDocuments?.versions || [] };
192
- }
193
- });
194
- const createDocumentRepository = (ctx) => {
195
- const implementation = createDocumentEngine(ctx);
196
- return implementation;
197
- };
198
- export {
199
- createDocumentRepository as default
200
- };
201
- //# sourceMappingURL=document-engine.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"document-engine.mjs","sources":["../../../src/services/document-service/document-engine.ts"],"sourcesContent":["import type { Database } from '@strapi/database';\nimport type { Common, Documents, Schema, Shared, Strapi } from '@strapi/types';\nimport { contentTypes as contentTypesUtils, convertQueryParams, mapAsync } from '@strapi/utils';\n\nimport { isArray, omit } from 'lodash/fp';\nimport uploadFiles from '../utils/upload-files';\n\nimport {\n cloneComponents,\n createComponents,\n deleteComponents,\n getComponents,\n omitComponentData,\n updateComponents,\n} from '../entity-service/components';\n\nimport { createDocumentId } from '../../utils/transform-content-types-to-models';\nimport { applyTransforms } from '../entity-service/attributes';\nimport entityValidator from '../entity-validator';\nimport { pickSelectionParams } from './params';\n\nconst { transformParamsToQuery } = convertQueryParams;\n\n/**\n * TODO: Sanitization / validation built-in\n * TODO: i18n - Move logic to i18n package\n * TODO: Webhooks\n * TODO: Audit logs\n * TODO: Entity Validation - Uniqueness across same locale and publication status\n * TODO: File upload\n * TODO: replace 'any'\n * TODO: availableLocales\n *\n */\ntype Context = {\n contentType: Schema.ContentType;\n};\n\nconst createPipeline = (data: Record<string, unknown>, context: Context) => {\n return applyTransforms(data, context);\n};\n\nconst updatePipeline = (data: Record<string, unknown>, context: Context) => {\n return applyTransforms(data, context);\n};\n\nconst createDocumentEngine = ({\n strapi,\n db,\n}: {\n strapi: Strapi;\n db: Database;\n}): Documents.Engine => ({\n uploadFiles,\n\n async findMany(uid, params) {\n const { kind } = strapi.getModel(uid);\n\n const query = transformParamsToQuery(uid, params || ({} as any));\n query.where = { ...params?.lookup, ...query.where };\n\n if (kind === 'singleType') {\n return db.query(uid).findOne(query);\n }\n\n return db.query(uid).findMany(query);\n },\n\n async findFirst(uid, params) {\n const query = transformParamsToQuery(uid, params || ({} as any));\n\n return db.query(uid).findOne({ ...query, where: { ...params?.lookup, ...query.where } });\n },\n\n async findOne(uid, documentId, params) {\n const query = transformParamsToQuery(uid, params || ({} as any));\n return db\n .query(uid)\n .findOne({ ...query, where: { ...params?.lookup, ...query.where, documentId } });\n },\n\n async delete(uid, documentId, params = {} as any) {\n const query = transformParamsToQuery(uid, params as any);\n\n if (params.status === 'draft') {\n throw new Error('Cannot delete a draft document');\n }\n\n const entriesToDelete = await db.query(uid).findMany({\n ...query,\n where: {\n ...params.lookup,\n ...query?.where,\n documentId,\n },\n });\n\n // Delete all matched entries and its components\n await mapAsync(entriesToDelete, async (entryToDelete: any) => {\n const componentsToDelete = await getComponents(uid, entryToDelete);\n await db.query(uid).delete({ where: { id: entryToDelete.id } });\n await deleteComponents(uid, componentsToDelete as any, { loadComponents: false });\n });\n\n // TODO: Change return value to actual count\n return { versions: entriesToDelete };\n },\n\n // TODO: should we provide two separate methods?\n async deleteMany(uid, paramsOrIds) {\n let queryParams;\n if (isArray(paramsOrIds)) {\n queryParams = { filter: { documentID: { $in: paramsOrIds } } };\n } else {\n queryParams = paramsOrIds;\n }\n\n const query = transformParamsToQuery(uid, queryParams || ({} as any));\n\n return db.query(uid).deleteMany(query);\n },\n\n async create(uid, params) {\n // TODO: Entity validator.\n // TODO: File upload - Probably in the lifecycles?\n const { data } = params;\n\n if (!data) {\n throw new Error('Create requires data attribute');\n }\n\n const model = strapi.getModel(uid) as Shared.ContentTypes[Common.UID.ContentType];\n\n const validData = await entityValidator.validateEntityCreation(model, data, {\n isDraft: true,\n locale: params?.locale,\n });\n\n const componentData = await createComponents(uid, validData);\n const entryData = createPipeline(\n Object.assign(omitComponentData(model, validData), componentData),\n {\n contentType: model,\n }\n );\n\n // select / populate\n const query = transformParamsToQuery(uid, pickSelectionParams(params) as any);\n\n return db.query(uid).create({ ...query, data: entryData });\n },\n\n // NOTE: What happens if user doesn't provide specific publications state and locale to update?\n async update(uid, documentId, params) {\n // TODO: Prevent updating a published document\n // TODO: Entity validator.\n // TODO: File upload\n const { data } = params || {};\n const model = strapi.getModel(uid) as Shared.ContentTypes[Common.UID.ContentType];\n\n const query = transformParamsToQuery(uid, pickSelectionParams(params || {}) as any);\n\n // Find all locales of the document\n const entryToUpdate = await db\n .query(uid)\n .findOne({ ...query, where: { ...params?.lookup, ...query?.where, documentId } });\n\n // Document does not exist\n if (!entryToUpdate) {\n return null;\n }\n\n const validData = await entityValidator.validateEntityUpdate(\n model,\n data,\n {\n isDraft: true, // Always update the draft version\n locale: params?.locale,\n },\n entryToUpdate\n );\n\n const componentData = await updateComponents(uid, entryToUpdate, validData);\n const entryData = updatePipeline(\n Object.assign(omitComponentData(model, validData), componentData),\n { contentType: model }\n );\n\n return db.query(uid).update({ ...query, where: { id: entryToUpdate.id }, data: entryData });\n },\n\n async count(uid, params = undefined) {\n const query = transformParamsToQuery(uid, params || ({} as any));\n query.where = { ...params?.lookup, ...query.where };\n\n return db.query(uid).count(query);\n },\n\n async clone(uid, documentId, params) {\n // TODO: File upload\n // TODO: Entity validator.\n const { data = {} as any } = params!;\n\n const model = strapi.getModel(uid);\n const query = transformParamsToQuery(uid, pickSelectionParams(params) as any);\n\n // Find all locales of the document\n const entries = await db.query(uid).findMany({\n ...query,\n where: { ...params?.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, ...params?.lookup },\n entryToClone\n );\n\n const componentData = await cloneComponents(uid, entryToClone, validData);\n const entityData = createPipeline(\n Object.assign(omitComponentData(model, validData), componentData),\n { contentType: model }\n );\n\n // TODO: Transform params to query\n return 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 { id: newDocumentId, versions };\n },\n\n // TODO: Handle relations so they target the published version\n async publish(uid, documentId, params) {\n // Delete already published versions that match the locales to be published\n await this.delete(uid, documentId, {\n ...params,\n lookup: { ...params?.lookup, publishedAt: { $ne: null } },\n });\n\n // Clone every draft version to be published\n const clonedDocuments = (await this.clone(uid, documentId, {\n ...(params || {}),\n // @ts-expect-error - Generic type does not have publishedAt attribute by default\n data: { documentId, publishedAt: new Date() },\n })) as any;\n\n // TODO: Return actual count\n return { versions: clonedDocuments?.versions || [] };\n },\n\n async unpublish(uid, documentId, params) {\n // Delete all published versions\n return this.delete(uid, documentId, {\n ...params,\n lookup: { ...params?.lookup, publishedAt: { $ne: null } },\n }) as any;\n },\n\n /**\n * Steps:\n * - Delete the matching draft versions (publishedAt = null)\n * - Clone the matching published versions into draft versions\n */\n async discardDraft(uid, documentId, params) {\n // Delete draft versions, clone published versions into draft versions\n await this.delete(uid, documentId, {\n ...params,\n // Delete all drafts that match query\n lookup: { ...params?.lookup, publishedAt: null },\n });\n\n // Clone published versions into draft versions\n const clonedDocuments = (await this.clone(uid, documentId, {\n ...(params || {}),\n // Clone only published versions\n lookup: { ...params?.lookup, publishedAt: { $ne: null } },\n // @ts-expect-error - Generic type does not have publishedAt attribute by default\n data: { documentId, publishedAt: null },\n })) as any;\n\n return { versions: clonedDocuments?.versions || [] };\n },\n});\n\nexport default (ctx: { strapi: Strapi; db: Database }): Documents.Engine => {\n const implementation = createDocumentEngine(ctx);\n\n // TODO: Wrap with database error handling\n return implementation;\n};\n"],"names":["uploadFiles","contentTypesUtils"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"document-service.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/document-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM,eAAe,CAAC;AAK1D;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,qBAAqB,WACxB,MAAM;eACkB,GAAG;MAClC,UAAU,OAsIZ,CAAC"}
@@ -1,132 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const documentEngine = require("./document-engine.js");
4
- const index$1 = require("./middlewares/index.js");
5
- const index = require("./middlewares/defaults/index.js");
6
- const createDocumentService = (strapi, { defaults = {} } = {}) => {
7
- const documents = documentEngine({ strapi, db: strapi.db });
8
- const middlewareManager = index$1.default();
9
- index.loadDefaultMiddlewares(middlewareManager);
10
- function create(uid) {
11
- return {
12
- async findMany(params = {}) {
13
- return strapi.db?.transaction?.(
14
- async () => middlewareManager.run(
15
- { action: "findMany", uid, params, options: {} },
16
- ({ params: params2 }) => documents.findMany(uid, params2)
17
- )
18
- );
19
- },
20
- async findFirst(params = {}) {
21
- return strapi.db?.transaction?.(
22
- async () => middlewareManager.run(
23
- { action: "findFirst", uid, params, options: {} },
24
- ({ params: params2 }) => documents.findFirst(uid, params2)
25
- )
26
- );
27
- },
28
- async findOne(id, params = {}) {
29
- return strapi.db?.transaction?.(
30
- async () => middlewareManager.run(
31
- { action: "findOne", uid, params, options: { id } },
32
- ({ params: params2 }) => documents.findOne(uid, id, params2)
33
- )
34
- );
35
- },
36
- async delete(id, params = {}) {
37
- return strapi.db?.transaction?.(
38
- async () => middlewareManager.run(
39
- { action: "delete", uid, params, options: { id } },
40
- ({ params: params2 }) => documents.delete(uid, id, params2)
41
- )
42
- );
43
- },
44
- async deleteMany(params = {}) {
45
- return strapi.db?.transaction?.(
46
- async () => middlewareManager.run(
47
- { action: "deleteMany", uid, params, options: {} },
48
- ({ params: params2 }) => documents.deleteMany(uid, params2)
49
- )
50
- );
51
- },
52
- async create(params = {}) {
53
- return strapi.db?.transaction?.(
54
- async () => middlewareManager.run(
55
- { action: "create", uid, params, options: {} },
56
- ({ params: params2 }) => documents.create(uid, params2)
57
- )
58
- );
59
- },
60
- async clone(id, params = {}) {
61
- return strapi.db?.transaction?.(
62
- async () => middlewareManager.run(
63
- { action: "clone", uid, params, options: { id } },
64
- ({ params: params2 }) => documents.clone(uid, id, params2)
65
- )
66
- );
67
- },
68
- async update(id, params = {}) {
69
- return strapi.db?.transaction?.(
70
- async () => middlewareManager.run(
71
- { action: "update", uid, params, options: { id } },
72
- ({ params: params2 }) => documents.update(uid, id, params2)
73
- )
74
- );
75
- },
76
- async count(params = {}) {
77
- return strapi.db?.transaction?.(
78
- async () => middlewareManager.run(
79
- { action: "count", uid, params, options: {} },
80
- ({ params: params2 }) => documents.count(uid, params2)
81
- )
82
- );
83
- },
84
- async publish(id, params = {}) {
85
- return strapi.db?.transaction?.(
86
- async () => middlewareManager.run(
87
- { action: "publish", uid, params, options: { id } },
88
- ({ params: params2 }) => documents.publish(uid, id, params2)
89
- )
90
- );
91
- },
92
- async unpublish(id, params = {}) {
93
- return strapi.db?.transaction?.(
94
- async () => middlewareManager.run(
95
- { action: "unpublish", uid, params, options: { id } },
96
- ({ params: params2 }) => documents.unpublish(uid, id, params2)
97
- )
98
- );
99
- },
100
- async discardDraft(id, params = {}) {
101
- return strapi.db?.transaction?.(
102
- async () => middlewareManager.run(
103
- { action: "discardDraft", uid, params, options: { id } },
104
- ({ params: params2 }) => documents.discardDraft(uid, id, params2)
105
- )
106
- );
107
- },
108
- // @ts-expect-error - TODO: Fix this
109
- with(params) {
110
- return createDocumentService(strapi, {
111
- defaults: { ...defaults, ...params }
112
- })(uid);
113
- },
114
- use(action, cb, opts) {
115
- middlewareManager.add(uid, action, cb, opts);
116
- return this;
117
- }
118
- };
119
- }
120
- Object.assign(create, {
121
- use(action, cb, opts) {
122
- middlewareManager.add("_all", action, cb, opts);
123
- return create;
124
- },
125
- middlewares: middlewareManager,
126
- // NOTE : We should do this in a different way, where lifecycles are executed for the different methods
127
- ...documents
128
- });
129
- return create;
130
- };
131
- exports.createDocumentService = createDocumentService;
132
- //# sourceMappingURL=document-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"document-service.js","sources":["../../../src/services/document-service/document-service.ts"],"sourcesContent":["import { Strapi, Common, Documents } from '@strapi/types';\nimport createDocumentRepository from './document-engine';\nimport createMiddlewareManager from './middlewares';\nimport { loadDefaultMiddlewares } from './middlewares/defaults';\n\n/**\n * Repository to :\n * - Access documents via actions (findMany, findOne, create, update, delete, ...)\n * - Execute middlewares on document actions\n * - Apply default parameters to document actions\n *\n * @param strapi\n * @param options.defaults - Default parameters to apply to all actions\n * @param options.parent - Parent repository, used when creating a new repository with .with()\n * @returns DocumentService\n *\n * @example Access documents\n * const article = strapi.documents('api::article.article').create(params)\n * const allArticles = strapi.documents('api::article.article').findMany(params)\n *\n */\nexport const createDocumentService = (\n strapi: Strapi,\n { defaults = {} }: { defaults?: any } = {}\n): Documents.Service => {\n const documents = createDocumentRepository({ strapi, db: strapi.db! });\n\n const middlewareManager = createMiddlewareManager();\n loadDefaultMiddlewares(middlewareManager);\n\n function create<TContentTypeUID extends Common.UID.ContentType>(\n uid: TContentTypeUID\n ): Documents.ServiceInstance<TContentTypeUID> {\n return {\n async findMany(params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run({ action: 'findMany', uid, params, options: {} }, ({ params }) =>\n documents.findMany(uid, params)\n )\n );\n },\n\n async findFirst(params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run({ action: 'findFirst', uid, params, options: {} }, ({ params }) =>\n documents.findFirst(uid, params)\n )\n );\n },\n\n async findOne(id: string, params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run({ action: 'findOne', uid, params, options: { id } }, ({ params }) =>\n documents.findOne(uid, id, params)\n )\n );\n },\n\n async delete(id: string, params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run({ action: 'delete', uid, params, options: { id } }, ({ params }) =>\n documents.delete(uid, id, params)\n )\n );\n },\n\n async deleteMany(params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run({ action: 'deleteMany', uid, params, options: {} }, ({ params }) =>\n documents.deleteMany(uid, params)\n )\n );\n },\n\n async create(params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run({ action: 'create', uid, params, options: {} }, ({ params }) =>\n documents.create(uid, params)\n )\n );\n },\n\n async clone(id: string, params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run({ action: 'clone', uid, params, options: { id } }, ({ params }) =>\n documents.clone(uid, id, params)\n )\n );\n },\n\n async update(id: string, params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run({ action: 'update', uid, params, options: { id } }, ({ params }) =>\n documents.update(uid, id, params)\n )\n );\n },\n\n async count(params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run({ action: 'count', uid, params, options: {} }, ({ params }) =>\n documents.count(uid, params)\n )\n );\n },\n\n async publish(id: string, params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run({ action: 'publish', uid, params, options: { id } }, ({ params }) =>\n documents.publish(uid, id, params)\n )\n );\n },\n\n async unpublish(id: string, params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run(\n { action: 'unpublish', uid, params, options: { id } },\n ({ params }) => documents.unpublish(uid, id, params)\n )\n );\n },\n\n async discardDraft(id: string, params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run(\n { action: 'discardDraft', uid, params, options: { id } },\n ({ params }) => documents.discardDraft(uid, id, params)\n )\n );\n },\n\n // @ts-expect-error - TODO: Fix this\n with(params: object) {\n return createDocumentService(strapi, {\n defaults: { ...defaults, ...params },\n })(uid);\n },\n\n use(action, cb, opts) {\n middlewareManager.add(uid, action, cb, opts);\n return this;\n },\n };\n }\n\n Object.assign(create, {\n use(action: any, cb: any, opts?: any) {\n middlewareManager.add('_all', action, cb, opts);\n return create;\n },\n middlewares: middlewareManager,\n // NOTE : We should do this in a different way, where lifecycles are executed for the different methods\n ...documents,\n });\n\n // @ts-expect-error - TODO: Fix this\n return create;\n};\n"],"names":["createDocumentRepository","createMiddlewareManager","loadDefaultMiddlewares","params"],"mappings":"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"}
@@ -1,132 +0,0 @@
1
- import createDocumentRepository from "./document-engine.mjs";
2
- import createMiddlewareManager from "./middlewares/index.mjs";
3
- import { loadDefaultMiddlewares } from "./middlewares/defaults/index.mjs";
4
- const createDocumentService = (strapi, { defaults = {} } = {}) => {
5
- const documents = createDocumentRepository({ strapi, db: strapi.db });
6
- const middlewareManager = createMiddlewareManager();
7
- loadDefaultMiddlewares(middlewareManager);
8
- function create(uid) {
9
- return {
10
- async findMany(params = {}) {
11
- return strapi.db?.transaction?.(
12
- async () => middlewareManager.run(
13
- { action: "findMany", uid, params, options: {} },
14
- ({ params: params2 }) => documents.findMany(uid, params2)
15
- )
16
- );
17
- },
18
- async findFirst(params = {}) {
19
- return strapi.db?.transaction?.(
20
- async () => middlewareManager.run(
21
- { action: "findFirst", uid, params, options: {} },
22
- ({ params: params2 }) => documents.findFirst(uid, params2)
23
- )
24
- );
25
- },
26
- async findOne(id, params = {}) {
27
- return strapi.db?.transaction?.(
28
- async () => middlewareManager.run(
29
- { action: "findOne", uid, params, options: { id } },
30
- ({ params: params2 }) => documents.findOne(uid, id, params2)
31
- )
32
- );
33
- },
34
- async delete(id, params = {}) {
35
- return strapi.db?.transaction?.(
36
- async () => middlewareManager.run(
37
- { action: "delete", uid, params, options: { id } },
38
- ({ params: params2 }) => documents.delete(uid, id, params2)
39
- )
40
- );
41
- },
42
- async deleteMany(params = {}) {
43
- return strapi.db?.transaction?.(
44
- async () => middlewareManager.run(
45
- { action: "deleteMany", uid, params, options: {} },
46
- ({ params: params2 }) => documents.deleteMany(uid, params2)
47
- )
48
- );
49
- },
50
- async create(params = {}) {
51
- return strapi.db?.transaction?.(
52
- async () => middlewareManager.run(
53
- { action: "create", uid, params, options: {} },
54
- ({ params: params2 }) => documents.create(uid, params2)
55
- )
56
- );
57
- },
58
- async clone(id, params = {}) {
59
- return strapi.db?.transaction?.(
60
- async () => middlewareManager.run(
61
- { action: "clone", uid, params, options: { id } },
62
- ({ params: params2 }) => documents.clone(uid, id, params2)
63
- )
64
- );
65
- },
66
- async update(id, params = {}) {
67
- return strapi.db?.transaction?.(
68
- async () => middlewareManager.run(
69
- { action: "update", uid, params, options: { id } },
70
- ({ params: params2 }) => documents.update(uid, id, params2)
71
- )
72
- );
73
- },
74
- async count(params = {}) {
75
- return strapi.db?.transaction?.(
76
- async () => middlewareManager.run(
77
- { action: "count", uid, params, options: {} },
78
- ({ params: params2 }) => documents.count(uid, params2)
79
- )
80
- );
81
- },
82
- async publish(id, params = {}) {
83
- return strapi.db?.transaction?.(
84
- async () => middlewareManager.run(
85
- { action: "publish", uid, params, options: { id } },
86
- ({ params: params2 }) => documents.publish(uid, id, params2)
87
- )
88
- );
89
- },
90
- async unpublish(id, params = {}) {
91
- return strapi.db?.transaction?.(
92
- async () => middlewareManager.run(
93
- { action: "unpublish", uid, params, options: { id } },
94
- ({ params: params2 }) => documents.unpublish(uid, id, params2)
95
- )
96
- );
97
- },
98
- async discardDraft(id, params = {}) {
99
- return strapi.db?.transaction?.(
100
- async () => middlewareManager.run(
101
- { action: "discardDraft", uid, params, options: { id } },
102
- ({ params: params2 }) => documents.discardDraft(uid, id, params2)
103
- )
104
- );
105
- },
106
- // @ts-expect-error - TODO: Fix this
107
- with(params) {
108
- return createDocumentService(strapi, {
109
- defaults: { ...defaults, ...params }
110
- })(uid);
111
- },
112
- use(action, cb, opts) {
113
- middlewareManager.add(uid, action, cb, opts);
114
- return this;
115
- }
116
- };
117
- }
118
- Object.assign(create, {
119
- use(action, cb, opts) {
120
- middlewareManager.add("_all", action, cb, opts);
121
- return create;
122
- },
123
- middlewares: middlewareManager,
124
- // NOTE : We should do this in a different way, where lifecycles are executed for the different methods
125
- ...documents
126
- });
127
- return create;
128
- };
129
- export {
130
- createDocumentService
131
- };
132
- //# sourceMappingURL=document-service.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"document-service.mjs","sources":["../../../src/services/document-service/document-service.ts"],"sourcesContent":["import { Strapi, Common, Documents } from '@strapi/types';\nimport createDocumentRepository from './document-engine';\nimport createMiddlewareManager from './middlewares';\nimport { loadDefaultMiddlewares } from './middlewares/defaults';\n\n/**\n * Repository to :\n * - Access documents via actions (findMany, findOne, create, update, delete, ...)\n * - Execute middlewares on document actions\n * - Apply default parameters to document actions\n *\n * @param strapi\n * @param options.defaults - Default parameters to apply to all actions\n * @param options.parent - Parent repository, used when creating a new repository with .with()\n * @returns DocumentService\n *\n * @example Access documents\n * const article = strapi.documents('api::article.article').create(params)\n * const allArticles = strapi.documents('api::article.article').findMany(params)\n *\n */\nexport const createDocumentService = (\n strapi: Strapi,\n { defaults = {} }: { defaults?: any } = {}\n): Documents.Service => {\n const documents = createDocumentRepository({ strapi, db: strapi.db! });\n\n const middlewareManager = createMiddlewareManager();\n loadDefaultMiddlewares(middlewareManager);\n\n function create<TContentTypeUID extends Common.UID.ContentType>(\n uid: TContentTypeUID\n ): Documents.ServiceInstance<TContentTypeUID> {\n return {\n async findMany(params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run({ action: 'findMany', uid, params, options: {} }, ({ params }) =>\n documents.findMany(uid, params)\n )\n );\n },\n\n async findFirst(params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run({ action: 'findFirst', uid, params, options: {} }, ({ params }) =>\n documents.findFirst(uid, params)\n )\n );\n },\n\n async findOne(id: string, params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run({ action: 'findOne', uid, params, options: { id } }, ({ params }) =>\n documents.findOne(uid, id, params)\n )\n );\n },\n\n async delete(id: string, params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run({ action: 'delete', uid, params, options: { id } }, ({ params }) =>\n documents.delete(uid, id, params)\n )\n );\n },\n\n async deleteMany(params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run({ action: 'deleteMany', uid, params, options: {} }, ({ params }) =>\n documents.deleteMany(uid, params)\n )\n );\n },\n\n async create(params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run({ action: 'create', uid, params, options: {} }, ({ params }) =>\n documents.create(uid, params)\n )\n );\n },\n\n async clone(id: string, params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run({ action: 'clone', uid, params, options: { id } }, ({ params }) =>\n documents.clone(uid, id, params)\n )\n );\n },\n\n async update(id: string, params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run({ action: 'update', uid, params, options: { id } }, ({ params }) =>\n documents.update(uid, id, params)\n )\n );\n },\n\n async count(params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run({ action: 'count', uid, params, options: {} }, ({ params }) =>\n documents.count(uid, params)\n )\n );\n },\n\n async publish(id: string, params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run({ action: 'publish', uid, params, options: { id } }, ({ params }) =>\n documents.publish(uid, id, params)\n )\n );\n },\n\n async unpublish(id: string, params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run(\n { action: 'unpublish', uid, params, options: { id } },\n ({ params }) => documents.unpublish(uid, id, params)\n )\n );\n },\n\n async discardDraft(id: string, params = {} as any) {\n return strapi.db?.transaction?.(async () =>\n middlewareManager.run(\n { action: 'discardDraft', uid, params, options: { id } },\n ({ params }) => documents.discardDraft(uid, id, params)\n )\n );\n },\n\n // @ts-expect-error - TODO: Fix this\n with(params: object) {\n return createDocumentService(strapi, {\n defaults: { ...defaults, ...params },\n })(uid);\n },\n\n use(action, cb, opts) {\n middlewareManager.add(uid, action, cb, opts);\n return this;\n },\n };\n }\n\n Object.assign(create, {\n use(action: any, cb: any, opts?: any) {\n middlewareManager.add('_all', action, cb, opts);\n return create;\n },\n middlewares: middlewareManager,\n // NOTE : We should do this in a different way, where lifecycles are executed for the different methods\n ...documents,\n });\n\n // @ts-expect-error - TODO: Fix this\n return create;\n};\n"],"names":["params"],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import { Documents } from '@strapi/types';
2
- type Middleware = Documents.Middleware.Middleware<any, any>;
3
- /**
4
- * Sets status to draft only
5
- */
6
- export declare const setStatusToDraft: Middleware;
7
- /**
8
- * Adds a default status of `draft` to the params
9
- */
10
- export declare const defaultToDraft: Middleware;
11
- /**
12
- * Add status lookup query to the params
13
- */
14
- export declare const statusToLookup: Middleware;
15
- /**
16
- * Translate publication status parameter into the data that will be saved
17
- */
18
- export declare const statusToData: Middleware;
19
- declare const _default: {
20
- setStatusToDraft: Middleware;
21
- defaultToDraft: Middleware;
22
- statusToLookup: Middleware;
23
- statusToData: Middleware;
24
- };
25
- export default _default;
26
- //# sourceMappingURL=draft-and-publish.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"draft-and-publish.d.ts","sourceRoot":"","sources":["../../../../../src/services/document-service/middlewares/defaults/draft-and-publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,KAAK,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,UAM9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,UAS5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,UAmB5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,UAoB1B,CAAC;;;;;;;AAEF,wBAKE"}