@strapi/core 0.0.0-experimental.6dbac0c205b0f8495781db5706c18cac1a62e62b → 0.0.0-experimental.8294852592c0a1fb061c5d3576327fa0e80bab5b

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 (844) hide show
  1. package/dist/Strapi.d.ts +4 -1
  2. package/dist/Strapi.d.ts.map +1 -1
  3. package/dist/Strapi.js +58 -47
  4. package/dist/Strapi.js.map +1 -1
  5. package/dist/Strapi.mjs +60 -48
  6. package/dist/Strapi.mjs.map +1 -1
  7. package/dist/configuration/config-loader.d.ts.map +1 -0
  8. package/dist/configuration/config-loader.js +102 -0
  9. package/dist/configuration/config-loader.js.map +1 -0
  10. package/dist/configuration/config-loader.mjs +100 -0
  11. package/dist/configuration/config-loader.mjs.map +1 -0
  12. package/dist/{core/app-configuration → configuration}/index.d.ts +20 -5
  13. package/dist/configuration/index.d.ts.map +1 -0
  14. package/dist/{core/app-configuration → configuration}/index.js +28 -5
  15. package/dist/configuration/index.js.map +1 -0
  16. package/dist/{core/app-configuration → configuration}/index.mjs +28 -5
  17. package/dist/configuration/index.mjs.map +1 -0
  18. package/dist/core-api/controller/collection-type.d.ts +1 -1
  19. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  20. package/dist/core-api/controller/collection-type.js +9 -20
  21. package/dist/core-api/controller/collection-type.js.map +1 -1
  22. package/dist/core-api/controller/collection-type.mjs +8 -20
  23. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  24. package/dist/core-api/controller/index.d.ts.map +1 -1
  25. package/dist/core-api/controller/index.js +2 -2
  26. package/dist/core-api/controller/index.js.map +1 -1
  27. package/dist/core-api/controller/index.mjs +2 -2
  28. package/dist/core-api/controller/index.mjs.map +1 -1
  29. package/dist/core-api/controller/single-type.d.ts +1 -1
  30. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  31. package/dist/core-api/controller/single-type.js +6 -11
  32. package/dist/core-api/controller/single-type.js.map +1 -1
  33. package/dist/core-api/controller/single-type.mjs +5 -11
  34. package/dist/core-api/controller/single-type.mjs.map +1 -1
  35. package/dist/core-api/controller/transform.d.ts +2 -11
  36. package/dist/core-api/controller/transform.d.ts.map +1 -1
  37. package/dist/core-api/controller/transform.js +4 -18
  38. package/dist/core-api/controller/transform.js.map +1 -1
  39. package/dist/core-api/controller/transform.mjs +4 -18
  40. package/dist/core-api/controller/transform.mjs.map +1 -1
  41. package/dist/core-api/service/collection-type.d.ts +28 -5
  42. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  43. package/dist/core-api/service/collection-type.js +47 -49
  44. package/dist/core-api/service/collection-type.js.map +1 -1
  45. package/dist/core-api/service/collection-type.mjs +47 -50
  46. package/dist/core-api/service/collection-type.mjs.map +1 -1
  47. package/dist/core-api/service/core-service.d.ts +4 -0
  48. package/dist/core-api/service/core-service.d.ts.map +1 -0
  49. package/dist/core-api/service/core-service.js +12 -0
  50. package/dist/core-api/service/core-service.js.map +1 -0
  51. package/dist/core-api/service/core-service.mjs +12 -0
  52. package/dist/core-api/service/core-service.mjs.map +1 -0
  53. package/dist/core-api/service/index.js +2 -2
  54. package/dist/core-api/service/index.js.map +1 -1
  55. package/dist/core-api/service/index.mjs +4 -4
  56. package/dist/core-api/service/index.mjs.map +1 -1
  57. package/dist/core-api/service/pagination.d.ts +1 -5
  58. package/dist/core-api/service/pagination.d.ts.map +1 -1
  59. package/dist/core-api/service/pagination.js +0 -11
  60. package/dist/core-api/service/pagination.js.map +1 -1
  61. package/dist/core-api/service/pagination.mjs +0 -11
  62. package/dist/core-api/service/pagination.mjs.map +1 -1
  63. package/dist/core-api/service/single-type.d.ts +14 -8
  64. package/dist/core-api/service/single-type.d.ts.map +1 -1
  65. package/dist/core-api/service/single-type.js +36 -50
  66. package/dist/core-api/service/single-type.js.map +1 -1
  67. package/dist/core-api/service/single-type.mjs +35 -50
  68. package/dist/core-api/service/single-type.mjs.map +1 -1
  69. package/dist/{core/domain → domain}/content-type/index.d.ts +2 -1
  70. package/dist/domain/content-type/index.d.ts.map +1 -0
  71. package/dist/{core/domain → domain}/content-type/index.js +20 -34
  72. package/dist/domain/content-type/index.js.map +1 -0
  73. package/dist/{core/domain → domain}/content-type/index.mjs +21 -35
  74. package/dist/domain/content-type/index.mjs.map +1 -0
  75. package/dist/domain/content-type/validator.d.ts.map +1 -0
  76. package/dist/domain/content-type/validator.js.map +1 -0
  77. package/dist/domain/content-type/validator.mjs.map +1 -0
  78. package/dist/domain/module/index.d.ts.map +1 -0
  79. package/dist/{core/domain → domain}/module/index.js +30 -30
  80. package/dist/domain/module/index.js.map +1 -0
  81. package/dist/{core/domain → domain}/module/index.mjs +1 -1
  82. package/dist/domain/module/index.mjs.map +1 -0
  83. package/dist/domain/module/validation.d.ts.map +1 -0
  84. package/dist/domain/module/validation.js.map +1 -0
  85. package/dist/domain/module/validation.mjs.map +1 -0
  86. package/dist/ee/index.js +2 -2
  87. package/dist/ee/index.js.map +1 -1
  88. package/dist/ee/index.mjs +2 -2
  89. package/dist/ee/index.mjs.map +1 -1
  90. package/dist/ee/license.d.ts.map +1 -1
  91. package/dist/ee/license.js +2 -1
  92. package/dist/ee/license.js.map +1 -1
  93. package/dist/ee/license.mjs +2 -1
  94. package/dist/ee/license.mjs.map +1 -1
  95. package/dist/factories.d.ts +2 -1
  96. package/dist/factories.d.ts.map +1 -1
  97. package/dist/factories.js +16 -11
  98. package/dist/factories.js.map +1 -1
  99. package/dist/factories.mjs +17 -12
  100. package/dist/factories.mjs.map +1 -1
  101. package/dist/index.d.ts +3 -2
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/index.js +3 -1
  104. package/dist/index.js.map +1 -1
  105. package/dist/index.mjs +3 -1
  106. package/dist/index.mjs.map +1 -1
  107. package/dist/loaders/admin.d.ts.map +1 -0
  108. package/dist/{core/loaders → loaders}/admin.js +12 -1
  109. package/dist/loaders/admin.js.map +1 -0
  110. package/dist/{core/loaders → loaders}/admin.mjs +12 -1
  111. package/dist/loaders/admin.mjs.map +1 -0
  112. package/dist/loaders/apis.d.ts.map +1 -0
  113. package/dist/{core/loaders → loaders}/apis.js +19 -12
  114. package/dist/loaders/apis.js.map +1 -0
  115. package/dist/{core/loaders → loaders}/apis.mjs +17 -10
  116. package/dist/loaders/apis.mjs.map +1 -0
  117. package/dist/loaders/components.d.ts.map +1 -0
  118. package/dist/{core/loaders → loaders}/components.js +2 -2
  119. package/dist/loaders/components.js.map +1 -0
  120. package/dist/{core/loaders → loaders}/components.mjs +1 -1
  121. package/dist/loaders/components.mjs.map +1 -0
  122. package/dist/loaders/index.d.ts.map +1 -0
  123. package/dist/loaders/index.js.map +1 -0
  124. package/dist/loaders/index.mjs.map +1 -0
  125. package/dist/loaders/middlewares.d.ts.map +1 -0
  126. package/dist/{core/loaders → loaders}/middlewares.js +1 -1
  127. package/dist/loaders/middlewares.js.map +1 -0
  128. package/dist/{core/loaders → loaders}/middlewares.mjs +1 -1
  129. package/dist/loaders/middlewares.mjs.map +1 -0
  130. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -0
  131. package/dist/{core/loaders → loaders}/plugins/get-enabled-plugins.js +2 -1
  132. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -0
  133. package/dist/{core/loaders → loaders}/plugins/get-enabled-plugins.mjs +2 -1
  134. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -0
  135. package/dist/loaders/plugins/get-user-plugins-config.d.ts.map +1 -0
  136. package/dist/{core/loaders → loaders}/plugins/get-user-plugins-config.js +3 -3
  137. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -0
  138. package/dist/{core/loaders → loaders}/plugins/get-user-plugins-config.mjs +3 -3
  139. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -0
  140. package/dist/loaders/plugins/index.d.ts.map +1 -0
  141. package/dist/{core/loaders → loaders}/plugins/index.js +18 -5
  142. package/dist/loaders/plugins/index.js.map +1 -0
  143. package/dist/{core/loaders → loaders}/plugins/index.mjs +16 -3
  144. package/dist/loaders/plugins/index.mjs.map +1 -0
  145. package/dist/loaders/policies.d.ts.map +1 -0
  146. package/dist/loaders/policies.js.map +1 -0
  147. package/dist/loaders/policies.mjs.map +1 -0
  148. package/dist/loaders/sanitizers.d.ts.map +1 -0
  149. package/dist/loaders/sanitizers.js.map +1 -0
  150. package/dist/loaders/sanitizers.mjs.map +1 -0
  151. package/dist/loaders/src-index.d.ts.map +1 -0
  152. package/dist/loaders/src-index.js.map +1 -0
  153. package/dist/loaders/src-index.mjs.map +1 -0
  154. package/dist/loaders/validators.d.ts.map +1 -0
  155. package/dist/loaders/validators.js.map +1 -0
  156. package/dist/loaders/validators.mjs.map +1 -0
  157. package/dist/middlewares/favicon.d.ts +1 -0
  158. package/dist/middlewares/favicon.d.ts.map +1 -1
  159. package/dist/middlewares/index.js +2 -2
  160. package/dist/middlewares/index.js.map +1 -1
  161. package/dist/middlewares/index.mjs +1 -1
  162. package/dist/middlewares/{public/index.d.ts → public.d.ts} +1 -1
  163. package/dist/middlewares/public.d.ts.map +1 -0
  164. package/dist/middlewares/public.js +34 -0
  165. package/dist/middlewares/public.js.map +1 -0
  166. package/dist/middlewares/public.mjs +32 -0
  167. package/dist/middlewares/public.mjs.map +1 -0
  168. package/dist/middlewares/security.d.ts.map +1 -1
  169. package/dist/middlewares/security.js +24 -3
  170. package/dist/middlewares/security.js.map +1 -1
  171. package/dist/middlewares/security.mjs +24 -3
  172. package/dist/middlewares/security.mjs.map +1 -1
  173. package/dist/registries/apis.d.ts.map +1 -0
  174. package/dist/registries/apis.js.map +1 -0
  175. package/dist/registries/apis.mjs.map +1 -0
  176. package/dist/registries/components.d.ts.map +1 -0
  177. package/dist/registries/components.js.map +1 -0
  178. package/dist/registries/components.mjs.map +1 -0
  179. package/dist/registries/config.d.ts.map +1 -0
  180. package/dist/registries/config.js.map +1 -0
  181. package/dist/registries/config.mjs.map +1 -0
  182. package/dist/registries/content-types.d.ts.map +1 -0
  183. package/dist/{core/registries → registries}/content-types.js +6 -7
  184. package/dist/registries/content-types.js.map +1 -0
  185. package/dist/{core/registries → registries}/content-types.mjs +2 -3
  186. package/dist/registries/content-types.mjs.map +1 -0
  187. package/dist/registries/controllers.d.ts.map +1 -0
  188. package/dist/{core/registries → registries}/controllers.js +5 -5
  189. package/dist/registries/controllers.js.map +1 -0
  190. package/dist/{core/registries → registries}/controllers.mjs +1 -1
  191. package/dist/registries/controllers.mjs.map +1 -0
  192. package/dist/registries/custom-fields.d.ts.map +1 -0
  193. package/dist/registries/custom-fields.js.map +1 -0
  194. package/dist/registries/custom-fields.mjs.map +1 -0
  195. package/dist/registries/hooks.d.ts.map +1 -0
  196. package/dist/{core/registries → registries}/hooks.js +5 -5
  197. package/dist/registries/hooks.js.map +1 -0
  198. package/dist/{core/registries → registries}/hooks.mjs +1 -1
  199. package/dist/registries/hooks.mjs.map +1 -0
  200. package/dist/{core/registries → registries}/index.d.ts +1 -0
  201. package/dist/registries/index.d.ts.map +1 -0
  202. package/dist/registries/middlewares.d.ts.map +1 -0
  203. package/dist/{core/registries → registries}/middlewares.js +5 -5
  204. package/dist/registries/middlewares.js.map +1 -0
  205. package/dist/{core/registries → registries}/middlewares.mjs +1 -1
  206. package/dist/registries/middlewares.mjs.map +1 -0
  207. package/dist/registries/models.d.ts +6 -0
  208. package/dist/registries/models.d.ts.map +1 -0
  209. package/dist/registries/models.js +16 -0
  210. package/dist/registries/models.js.map +1 -0
  211. package/dist/registries/models.mjs +16 -0
  212. package/dist/registries/models.mjs.map +1 -0
  213. package/dist/registries/modules.d.ts.map +1 -0
  214. package/dist/registries/modules.js.map +1 -0
  215. package/dist/registries/modules.mjs.map +1 -0
  216. package/dist/{core/utils.d.ts → registries/namespace.d.ts} +1 -1
  217. package/dist/registries/namespace.d.ts.map +1 -0
  218. package/dist/{core/utils.js → registries/namespace.js} +1 -1
  219. package/dist/registries/namespace.js.map +1 -0
  220. package/dist/{core/utils.mjs → registries/namespace.mjs} +1 -1
  221. package/dist/registries/namespace.mjs.map +1 -0
  222. package/dist/registries/plugins.d.ts.map +1 -0
  223. package/dist/registries/plugins.js.map +1 -0
  224. package/dist/registries/plugins.mjs.map +1 -0
  225. package/dist/registries/policies.d.ts.map +1 -0
  226. package/dist/{core/registries → registries}/policies.js +5 -5
  227. package/dist/registries/policies.js.map +1 -0
  228. package/dist/{core/registries → registries}/policies.mjs +1 -1
  229. package/dist/registries/policies.mjs.map +1 -0
  230. package/dist/registries/sanitizers.d.ts.map +1 -0
  231. package/dist/registries/sanitizers.js.map +1 -0
  232. package/dist/registries/sanitizers.mjs.map +1 -0
  233. package/dist/registries/services.d.ts.map +1 -0
  234. package/dist/{core/registries → registries}/services.js +5 -5
  235. package/dist/registries/services.js.map +1 -0
  236. package/dist/{core/registries → registries}/services.mjs +1 -1
  237. package/dist/registries/services.mjs.map +1 -0
  238. package/dist/registries/validators.d.ts.map +1 -0
  239. package/dist/registries/validators.js.map +1 -0
  240. package/dist/registries/validators.mjs.map +1 -0
  241. package/dist/services/core-store.d.ts +2 -22
  242. package/dist/services/core-store.d.ts.map +1 -1
  243. package/dist/services/core-store.js +5 -1
  244. package/dist/services/core-store.js.map +1 -1
  245. package/dist/services/core-store.mjs +5 -1
  246. package/dist/services/core-store.mjs.map +1 -1
  247. package/dist/services/document-service/common.d.ts +4 -0
  248. package/dist/services/document-service/common.d.ts.map +1 -0
  249. package/dist/services/document-service/common.js +7 -0
  250. package/dist/services/document-service/common.js.map +1 -0
  251. package/dist/services/document-service/common.mjs +7 -0
  252. package/dist/services/document-service/common.mjs.map +1 -0
  253. package/dist/services/document-service/document-engine.d.ts +8 -0
  254. package/dist/services/document-service/document-engine.d.ts.map +1 -0
  255. package/dist/services/document-service/document-engine.js +241 -0
  256. package/dist/services/document-service/document-engine.js.map +1 -0
  257. package/dist/services/document-service/document-engine.mjs +242 -0
  258. package/dist/services/document-service/document-engine.mjs.map +1 -0
  259. package/dist/services/document-service/draft-and-publish.d.ts +24 -0
  260. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -0
  261. package/dist/services/document-service/draft-and-publish.js +41 -0
  262. package/dist/services/document-service/draft-and-publish.js.map +1 -0
  263. package/dist/services/document-service/draft-and-publish.mjs +41 -0
  264. package/dist/services/document-service/draft-and-publish.mjs.map +1 -0
  265. package/dist/services/document-service/index.d.ts +18 -7
  266. package/dist/services/document-service/index.d.ts.map +1 -1
  267. package/dist/services/document-service/index.js +18 -190
  268. package/dist/services/document-service/index.js.map +1 -1
  269. package/dist/services/document-service/index.mjs +17 -190
  270. package/dist/services/document-service/index.mjs.map +1 -1
  271. package/dist/services/document-service/internationalization.d.ts +8 -0
  272. package/dist/services/document-service/internationalization.d.ts.map +1 -0
  273. package/dist/services/document-service/internationalization.js +54 -0
  274. package/dist/services/document-service/internationalization.js.map +1 -0
  275. package/dist/services/document-service/internationalization.mjs +54 -0
  276. package/dist/services/document-service/internationalization.mjs.map +1 -0
  277. package/dist/services/document-service/middlewares.d.ts +8 -0
  278. package/dist/services/document-service/middlewares.d.ts.map +1 -0
  279. package/dist/services/document-service/middlewares.js +46 -0
  280. package/dist/services/document-service/middlewares.js.map +1 -0
  281. package/dist/services/document-service/middlewares.mjs +46 -0
  282. package/dist/services/document-service/middlewares.mjs.map +1 -0
  283. package/dist/services/document-service/repositories/content-type.d.ts +3 -0
  284. package/dist/services/document-service/repositories/content-type.d.ts.map +1 -0
  285. package/dist/services/document-service/repositories/content-type.js +139 -0
  286. package/dist/services/document-service/repositories/content-type.js.map +1 -0
  287. package/dist/services/document-service/repositories/content-type.mjs +139 -0
  288. package/dist/services/document-service/repositories/content-type.mjs.map +1 -0
  289. package/dist/services/document-service/transform/data.d.ts +5 -0
  290. package/dist/services/document-service/transform/data.d.ts.map +1 -0
  291. package/dist/services/document-service/transform/data.js +13 -0
  292. package/dist/services/document-service/transform/data.js.map +1 -0
  293. package/dist/services/document-service/transform/data.mjs +13 -0
  294. package/dist/services/document-service/transform/data.mjs.map +1 -0
  295. package/dist/services/document-service/transform/fields.d.ts +5 -0
  296. package/dist/services/document-service/transform/fields.d.ts.map +1 -0
  297. package/dist/services/document-service/transform/fields.js +24 -0
  298. package/dist/services/document-service/transform/fields.js.map +1 -0
  299. package/dist/services/document-service/transform/fields.mjs +24 -0
  300. package/dist/services/document-service/transform/fields.mjs.map +1 -0
  301. package/dist/services/document-service/transform/filters.d.ts +3 -0
  302. package/dist/services/document-service/transform/filters.d.ts.map +1 -0
  303. package/dist/services/document-service/transform/id-map.d.ts +23 -0
  304. package/dist/services/document-service/transform/id-map.d.ts.map +1 -0
  305. package/dist/services/document-service/transform/id-map.js +72 -0
  306. package/dist/services/document-service/transform/id-map.js.map +1 -0
  307. package/dist/services/document-service/transform/id-map.mjs +72 -0
  308. package/dist/services/document-service/transform/id-map.mjs.map +1 -0
  309. package/dist/services/document-service/transform/id-transform.d.ts +19 -0
  310. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -0
  311. package/dist/services/document-service/transform/id-transform.js +27 -0
  312. package/dist/services/document-service/transform/id-transform.js.map +1 -0
  313. package/dist/services/document-service/transform/id-transform.mjs +27 -0
  314. package/dist/services/document-service/transform/id-transform.mjs.map +1 -0
  315. package/dist/services/document-service/transform/populate.d.ts +3 -0
  316. package/dist/services/document-service/transform/populate.d.ts.map +1 -0
  317. package/dist/services/document-service/transform/populate.js +21 -0
  318. package/dist/services/document-service/transform/populate.js.map +1 -0
  319. package/dist/services/document-service/transform/populate.mjs +21 -0
  320. package/dist/services/document-service/transform/populate.mjs.map +1 -0
  321. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +13 -0
  322. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -0
  323. package/dist/services/document-service/transform/relations/extract/data-ids.js +79 -0
  324. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -0
  325. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +79 -0
  326. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -0
  327. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +10 -0
  328. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -0
  329. package/dist/services/document-service/transform/relations/transform/data-ids.js +117 -0
  330. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -0
  331. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +117 -0
  332. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -0
  333. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +4 -0
  334. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +1 -0
  335. package/dist/services/document-service/transform/relations/utils/data.d.ts +4 -0
  336. package/dist/services/document-service/transform/relations/utils/data.d.ts.map +1 -0
  337. package/dist/services/document-service/transform/relations/utils/data.js +12 -0
  338. package/dist/services/document-service/transform/relations/utils/data.js.map +1 -0
  339. package/dist/services/document-service/transform/relations/utils/data.mjs +12 -0
  340. package/dist/services/document-service/transform/relations/utils/data.mjs.map +1 -0
  341. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +10 -0
  342. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -0
  343. package/dist/services/document-service/transform/relations/utils/i18n.js +31 -0
  344. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -0
  345. package/dist/services/document-service/transform/relations/utils/i18n.mjs +31 -0
  346. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -0
  347. package/dist/services/document-service/transform/relations/utils/types.d.ts +12 -0
  348. package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -0
  349. package/dist/services/document-service/transform/sort.d.ts +5 -0
  350. package/dist/services/document-service/transform/sort.d.ts.map +1 -0
  351. package/dist/services/document-service/transform/types.d.ts +13 -0
  352. package/dist/services/document-service/transform/types.d.ts.map +1 -0
  353. package/dist/services/document-service/transform/utils.d.ts +9 -0
  354. package/dist/services/document-service/transform/utils.d.ts.map +1 -0
  355. package/dist/services/document-service/utils/populate.d.ts +3 -0
  356. package/dist/services/document-service/utils/populate.d.ts.map +1 -0
  357. package/dist/services/document-service/utils/populate.js +41 -0
  358. package/dist/services/document-service/utils/populate.js.map +1 -0
  359. package/dist/services/document-service/utils/populate.mjs +41 -0
  360. package/dist/services/document-service/utils/populate.mjs.map +1 -0
  361. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  362. package/dist/services/entity-validator/blocks-validator.js +22 -2
  363. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  364. package/dist/services/entity-validator/blocks-validator.mjs +22 -2
  365. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  366. package/dist/services/entity-validator/index.d.ts.map +1 -1
  367. package/dist/services/entity-validator/index.js +4 -1
  368. package/dist/services/entity-validator/index.js.map +1 -1
  369. package/dist/services/entity-validator/index.mjs +4 -1
  370. package/dist/services/entity-validator/index.mjs.map +1 -1
  371. package/dist/services/entity-validator/validators.d.ts +14 -13
  372. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  373. package/dist/services/entity-validator/validators.js +20 -16
  374. package/dist/services/entity-validator/validators.js.map +1 -1
  375. package/dist/services/entity-validator/validators.mjs +20 -16
  376. package/dist/services/entity-validator/validators.mjs.map +1 -1
  377. package/dist/services/features.d.ts +10 -0
  378. package/dist/services/features.d.ts.map +1 -0
  379. package/dist/services/features.js +17 -0
  380. package/dist/services/features.js.map +1 -0
  381. package/dist/services/features.mjs +17 -0
  382. package/dist/services/features.mjs.map +1 -0
  383. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  384. package/dist/services/server/compose-endpoint.js +3 -0
  385. package/dist/services/server/compose-endpoint.js.map +1 -1
  386. package/dist/services/server/compose-endpoint.mjs +3 -0
  387. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  388. package/dist/services/server/middleware.d.ts +1 -5
  389. package/dist/services/server/middleware.d.ts.map +1 -1
  390. package/dist/services/server/middleware.js.map +1 -1
  391. package/dist/services/server/middleware.mjs.map +1 -1
  392. package/dist/services/server/register-middlewares.js +1 -1
  393. package/dist/services/server/register-middlewares.js.map +1 -1
  394. package/dist/services/server/register-middlewares.mjs +1 -1
  395. package/dist/services/server/register-middlewares.mjs.map +1 -1
  396. package/dist/services/webhook-runner.d.ts +10 -1
  397. package/dist/services/webhook-runner.d.ts.map +1 -1
  398. package/dist/services/webhook-store.d.ts +2 -22
  399. package/dist/services/webhook-store.d.ts.map +1 -1
  400. package/dist/services/webhook-store.js +7 -3
  401. package/dist/services/webhook-store.js.map +1 -1
  402. package/dist/services/webhook-store.mjs +7 -3
  403. package/dist/services/webhook-store.mjs.map +1 -1
  404. package/dist/utils/convert-custom-field-type.d.ts +1 -2
  405. package/dist/utils/convert-custom-field-type.d.ts.map +1 -1
  406. package/dist/utils/convert-custom-field-type.js +2 -1
  407. package/dist/utils/convert-custom-field-type.js.map +1 -1
  408. package/dist/utils/convert-custom-field-type.mjs +1 -1
  409. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  410. package/dist/utils/ee.d.ts +1 -2
  411. package/dist/utils/ee.d.ts.map +1 -1
  412. package/dist/utils/fetch.d.ts +2 -1
  413. package/dist/utils/fetch.d.ts.map +1 -1
  414. package/dist/utils/fetch.js +2 -2
  415. package/dist/utils/fetch.js.map +1 -1
  416. package/dist/utils/fetch.mjs +2 -2
  417. package/dist/utils/fetch.mjs.map +1 -1
  418. package/dist/utils/filepath-to-prop-path.d.ts +5 -0
  419. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -0
  420. package/dist/{load → utils}/filepath-to-prop-path.js +3 -2
  421. package/dist/utils/filepath-to-prop-path.js.map +1 -0
  422. package/dist/{load → utils}/filepath-to-prop-path.mjs +2 -2
  423. package/dist/utils/filepath-to-prop-path.mjs.map +1 -0
  424. package/dist/utils/get-dirs.d.ts +1 -2
  425. package/dist/utils/get-dirs.d.ts.map +1 -1
  426. package/dist/utils/get-dirs.js +2 -1
  427. package/dist/utils/get-dirs.js.map +1 -1
  428. package/dist/utils/get-dirs.mjs +1 -1
  429. package/dist/utils/get-dirs.mjs.map +1 -1
  430. package/dist/utils/index.d.ts +11 -4
  431. package/dist/utils/index.d.ts.map +1 -1
  432. package/dist/utils/is-initialized.d.ts +1 -1
  433. package/dist/utils/is-initialized.d.ts.map +1 -1
  434. package/dist/utils/is-initialized.js +4 -3
  435. package/dist/utils/is-initialized.js.map +1 -1
  436. package/dist/utils/is-initialized.mjs +3 -3
  437. package/dist/utils/is-initialized.mjs.map +1 -1
  438. package/dist/utils/load-config-file.d.ts +2 -0
  439. package/dist/utils/load-config-file.d.ts.map +1 -0
  440. package/dist/{core/app-configuration → utils}/load-config-file.js +2 -2
  441. package/dist/utils/load-config-file.js.map +1 -0
  442. package/dist/{core/app-configuration → utils}/load-config-file.mjs +2 -2
  443. package/dist/utils/load-config-file.mjs.map +1 -0
  444. package/dist/{load → utils}/load-files.d.ts +2 -2
  445. package/dist/utils/load-files.d.ts.map +1 -0
  446. package/dist/{load → utils}/load-files.js +7 -6
  447. package/dist/utils/load-files.js.map +1 -0
  448. package/dist/{load → utils}/load-files.mjs +7 -7
  449. package/dist/utils/load-files.mjs.map +1 -0
  450. package/dist/utils/open-browser.d.ts +1 -2
  451. package/dist/utils/open-browser.d.ts.map +1 -1
  452. package/dist/utils/open-browser.js +5 -5
  453. package/dist/utils/open-browser.js.map +1 -1
  454. package/dist/utils/open-browser.mjs +4 -5
  455. package/dist/utils/open-browser.mjs.map +1 -1
  456. package/dist/utils/startup-logger.d.ts +1 -2
  457. package/dist/utils/startup-logger.d.ts.map +1 -1
  458. package/dist/utils/startup-logger.js +19 -13
  459. package/dist/utils/startup-logger.js.map +1 -1
  460. package/dist/utils/startup-logger.mjs +18 -13
  461. package/dist/utils/startup-logger.mjs.map +1 -1
  462. package/dist/utils/transform-content-types-to-models.d.ts +174 -3
  463. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  464. package/dist/utils/transform-content-types-to-models.js +202 -15
  465. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  466. package/dist/utils/transform-content-types-to-models.mjs +199 -15
  467. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  468. package/dist/utils/update-notifier/index.d.ts +1 -2
  469. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  470. package/dist/utils/update-notifier/index.js +8 -2
  471. package/dist/utils/update-notifier/index.js.map +1 -1
  472. package/dist/utils/update-notifier/index.mjs +7 -2
  473. package/dist/utils/update-notifier/index.mjs.map +1 -1
  474. package/package.json +17 -25
  475. package/bin/strapi.js +0 -2
  476. package/dist/admin.d.ts +0 -5
  477. package/dist/admin.d.ts.map +0 -1
  478. package/dist/cli.d.ts +0 -2
  479. package/dist/cli.d.ts.map +0 -1
  480. package/dist/commands/actions/admin/create-user/action.d.ts +0 -12
  481. package/dist/commands/actions/admin/create-user/action.d.ts.map +0 -1
  482. package/dist/commands/actions/admin/create-user/command.d.ts +0 -7
  483. package/dist/commands/actions/admin/create-user/command.d.ts.map +0 -1
  484. package/dist/commands/actions/admin/reset-user-password/action.d.ts +0 -10
  485. package/dist/commands/actions/admin/reset-user-password/action.d.ts.map +0 -1
  486. package/dist/commands/actions/admin/reset-user-password/command.d.ts +0 -7
  487. package/dist/commands/actions/admin/reset-user-password/command.d.ts.map +0 -1
  488. package/dist/commands/actions/components/list/action.d.ts +0 -3
  489. package/dist/commands/actions/components/list/action.d.ts.map +0 -1
  490. package/dist/commands/actions/components/list/command.d.ts +0 -7
  491. package/dist/commands/actions/components/list/command.d.ts.map +0 -1
  492. package/dist/commands/actions/configuration/dump/action.d.ts +0 -11
  493. package/dist/commands/actions/configuration/dump/action.d.ts.map +0 -1
  494. package/dist/commands/actions/configuration/dump/command.d.ts +0 -7
  495. package/dist/commands/actions/configuration/dump/command.d.ts.map +0 -1
  496. package/dist/commands/actions/configuration/restore/action.d.ts +0 -11
  497. package/dist/commands/actions/configuration/restore/action.d.ts.map +0 -1
  498. package/dist/commands/actions/configuration/restore/command.d.ts +0 -7
  499. package/dist/commands/actions/configuration/restore/command.d.ts.map +0 -1
  500. package/dist/commands/actions/console/action.d.ts +0 -6
  501. package/dist/commands/actions/console/action.d.ts.map +0 -1
  502. package/dist/commands/actions/console/command.d.ts +0 -7
  503. package/dist/commands/actions/console/command.d.ts.map +0 -1
  504. package/dist/commands/actions/content-types/list/action.d.ts +0 -3
  505. package/dist/commands/actions/content-types/list/action.d.ts.map +0 -1
  506. package/dist/commands/actions/content-types/list/command.d.ts +0 -7
  507. package/dist/commands/actions/content-types/list/command.d.ts.map +0 -1
  508. package/dist/commands/actions/controllers/list/action.d.ts +0 -3
  509. package/dist/commands/actions/controllers/list/action.d.ts.map +0 -1
  510. package/dist/commands/actions/controllers/list/command.d.ts +0 -7
  511. package/dist/commands/actions/controllers/list/command.d.ts.map +0 -1
  512. package/dist/commands/actions/generate/command.d.ts +0 -7
  513. package/dist/commands/actions/generate/command.d.ts.map +0 -1
  514. package/dist/commands/actions/hooks/list/action.d.ts +0 -3
  515. package/dist/commands/actions/hooks/list/action.d.ts.map +0 -1
  516. package/dist/commands/actions/hooks/list/command.d.ts +0 -7
  517. package/dist/commands/actions/hooks/list/command.d.ts.map +0 -1
  518. package/dist/commands/actions/install/action.d.ts +0 -3
  519. package/dist/commands/actions/install/action.d.ts.map +0 -1
  520. package/dist/commands/actions/install/command.d.ts +0 -7
  521. package/dist/commands/actions/install/command.d.ts.map +0 -1
  522. package/dist/commands/actions/middlewares/list/action.d.ts +0 -3
  523. package/dist/commands/actions/middlewares/list/action.d.ts.map +0 -1
  524. package/dist/commands/actions/middlewares/list/command.d.ts +0 -7
  525. package/dist/commands/actions/middlewares/list/command.d.ts.map +0 -1
  526. package/dist/commands/actions/new/action.d.ts +0 -8
  527. package/dist/commands/actions/new/action.d.ts.map +0 -1
  528. package/dist/commands/actions/new/command.d.ts +0 -7
  529. package/dist/commands/actions/new/command.d.ts.map +0 -1
  530. package/dist/commands/actions/plugin/build-command/action.d.ts +0 -7
  531. package/dist/commands/actions/plugin/build-command/action.d.ts.map +0 -1
  532. package/dist/commands/actions/plugin/build-command/command.d.ts +0 -7
  533. package/dist/commands/actions/plugin/build-command/command.d.ts.map +0 -1
  534. package/dist/commands/actions/plugin/watch/action.d.ts +0 -7
  535. package/dist/commands/actions/plugin/watch/action.d.ts.map +0 -1
  536. package/dist/commands/actions/plugin/watch/command.d.ts +0 -7
  537. package/dist/commands/actions/plugin/watch/command.d.ts.map +0 -1
  538. package/dist/commands/actions/policies/list/action.d.ts +0 -3
  539. package/dist/commands/actions/policies/list/action.d.ts.map +0 -1
  540. package/dist/commands/actions/policies/list/command.d.ts +0 -7
  541. package/dist/commands/actions/policies/list/command.d.ts.map +0 -1
  542. package/dist/commands/actions/report/action.d.ts +0 -8
  543. package/dist/commands/actions/report/action.d.ts.map +0 -1
  544. package/dist/commands/actions/report/command.d.ts +0 -7
  545. package/dist/commands/actions/report/command.d.ts.map +0 -1
  546. package/dist/commands/actions/routes/list/action.d.ts +0 -3
  547. package/dist/commands/actions/routes/list/action.d.ts.map +0 -1
  548. package/dist/commands/actions/routes/list/command.d.ts +0 -7
  549. package/dist/commands/actions/routes/list/command.d.ts.map +0 -1
  550. package/dist/commands/actions/services/list/action.d.ts +0 -3
  551. package/dist/commands/actions/services/list/action.d.ts.map +0 -1
  552. package/dist/commands/actions/services/list/command.d.ts +0 -7
  553. package/dist/commands/actions/services/list/command.d.ts.map +0 -1
  554. package/dist/commands/actions/start/action.d.ts +0 -6
  555. package/dist/commands/actions/start/action.d.ts.map +0 -1
  556. package/dist/commands/actions/start/command.d.ts +0 -7
  557. package/dist/commands/actions/start/command.d.ts.map +0 -1
  558. package/dist/commands/actions/telemetry/disable/action.d.ts +0 -2
  559. package/dist/commands/actions/telemetry/disable/action.d.ts.map +0 -1
  560. package/dist/commands/actions/telemetry/disable/command.d.ts +0 -7
  561. package/dist/commands/actions/telemetry/disable/command.d.ts.map +0 -1
  562. package/dist/commands/actions/telemetry/enable/action.d.ts +0 -3
  563. package/dist/commands/actions/telemetry/enable/action.d.ts.map +0 -1
  564. package/dist/commands/actions/telemetry/enable/command.d.ts +0 -7
  565. package/dist/commands/actions/telemetry/enable/command.d.ts.map +0 -1
  566. package/dist/commands/actions/templates/generate/action.d.ts +0 -2
  567. package/dist/commands/actions/templates/generate/action.d.ts.map +0 -1
  568. package/dist/commands/actions/templates/generate/command.d.ts +0 -7
  569. package/dist/commands/actions/templates/generate/command.d.ts.map +0 -1
  570. package/dist/commands/actions/ts/generate-types/action.d.ts +0 -9
  571. package/dist/commands/actions/ts/generate-types/action.d.ts.map +0 -1
  572. package/dist/commands/actions/ts/generate-types/command.d.ts +0 -7
  573. package/dist/commands/actions/ts/generate-types/command.d.ts.map +0 -1
  574. package/dist/commands/actions/uninstall/action.d.ts +0 -6
  575. package/dist/commands/actions/uninstall/action.d.ts.map +0 -1
  576. package/dist/commands/actions/uninstall/command.d.ts +0 -7
  577. package/dist/commands/actions/uninstall/command.d.ts.map +0 -1
  578. package/dist/commands/actions/version/command.d.ts +0 -7
  579. package/dist/commands/actions/version/command.d.ts.map +0 -1
  580. package/dist/commands/actions/watch-admin/action.d.ts +0 -7
  581. package/dist/commands/actions/watch-admin/action.d.ts.map +0 -1
  582. package/dist/commands/actions/watch-admin/command.d.ts +0 -7
  583. package/dist/commands/actions/watch-admin/command.d.ts.map +0 -1
  584. package/dist/commands/index.d.ts +0 -37
  585. package/dist/commands/index.d.ts.map +0 -1
  586. package/dist/commands/types.d.ts +0 -14
  587. package/dist/commands/types.d.ts.map +0 -1
  588. package/dist/commands/utils/commander.d.ts +0 -36
  589. package/dist/commands/utils/commander.d.ts.map +0 -1
  590. package/dist/commands/utils/helpers.d.ts +0 -49
  591. package/dist/commands/utils/helpers.d.ts.map +0 -1
  592. package/dist/commands/utils/logger.d.ts +0 -19
  593. package/dist/commands/utils/logger.d.ts.map +0 -1
  594. package/dist/commands/utils/pkg.d.ts +0 -119
  595. package/dist/commands/utils/pkg.d.ts.map +0 -1
  596. package/dist/commands/utils/tsconfig.d.ts +0 -19
  597. package/dist/commands/utils/tsconfig.d.ts.map +0 -1
  598. package/dist/core/app-configuration/config-loader.d.ts.map +0 -1
  599. package/dist/core/app-configuration/config-loader.js +0 -19
  600. package/dist/core/app-configuration/config-loader.js.map +0 -1
  601. package/dist/core/app-configuration/config-loader.mjs +0 -17
  602. package/dist/core/app-configuration/config-loader.mjs.map +0 -1
  603. package/dist/core/app-configuration/index.d.ts.map +0 -1
  604. package/dist/core/app-configuration/index.js.map +0 -1
  605. package/dist/core/app-configuration/index.mjs.map +0 -1
  606. package/dist/core/app-configuration/load-config-file.d.ts +0 -2
  607. package/dist/core/app-configuration/load-config-file.d.ts.map +0 -1
  608. package/dist/core/app-configuration/load-config-file.js.map +0 -1
  609. package/dist/core/app-configuration/load-config-file.mjs.map +0 -1
  610. package/dist/core/bootstrap.d.ts +0 -5
  611. package/dist/core/bootstrap.d.ts.map +0 -1
  612. package/dist/core/bootstrap.js +0 -28
  613. package/dist/core/bootstrap.js.map +0 -1
  614. package/dist/core/bootstrap.mjs +0 -27
  615. package/dist/core/bootstrap.mjs.map +0 -1
  616. package/dist/core/domain/content-type/index.d.ts.map +0 -1
  617. package/dist/core/domain/content-type/index.js.map +0 -1
  618. package/dist/core/domain/content-type/index.mjs.map +0 -1
  619. package/dist/core/domain/content-type/validator.d.ts.map +0 -1
  620. package/dist/core/domain/content-type/validator.js.map +0 -1
  621. package/dist/core/domain/content-type/validator.mjs.map +0 -1
  622. package/dist/core/domain/module/index.d.ts.map +0 -1
  623. package/dist/core/domain/module/index.js.map +0 -1
  624. package/dist/core/domain/module/index.mjs.map +0 -1
  625. package/dist/core/domain/module/validation.d.ts.map +0 -1
  626. package/dist/core/domain/module/validation.js.map +0 -1
  627. package/dist/core/domain/module/validation.mjs.map +0 -1
  628. package/dist/core/loaders/admin.d.ts.map +0 -1
  629. package/dist/core/loaders/admin.js.map +0 -1
  630. package/dist/core/loaders/admin.mjs.map +0 -1
  631. package/dist/core/loaders/apis.d.ts.map +0 -1
  632. package/dist/core/loaders/apis.js.map +0 -1
  633. package/dist/core/loaders/apis.mjs.map +0 -1
  634. package/dist/core/loaders/components.d.ts.map +0 -1
  635. package/dist/core/loaders/components.js.map +0 -1
  636. package/dist/core/loaders/components.mjs.map +0 -1
  637. package/dist/core/loaders/index.d.ts.map +0 -1
  638. package/dist/core/loaders/index.js.map +0 -1
  639. package/dist/core/loaders/index.mjs.map +0 -1
  640. package/dist/core/loaders/middlewares.d.ts.map +0 -1
  641. package/dist/core/loaders/middlewares.js.map +0 -1
  642. package/dist/core/loaders/middlewares.mjs.map +0 -1
  643. package/dist/core/loaders/plugins/get-enabled-plugins.d.ts.map +0 -1
  644. package/dist/core/loaders/plugins/get-enabled-plugins.js.map +0 -1
  645. package/dist/core/loaders/plugins/get-enabled-plugins.mjs.map +0 -1
  646. package/dist/core/loaders/plugins/get-user-plugins-config.d.ts.map +0 -1
  647. package/dist/core/loaders/plugins/get-user-plugins-config.js.map +0 -1
  648. package/dist/core/loaders/plugins/get-user-plugins-config.mjs.map +0 -1
  649. package/dist/core/loaders/plugins/index.d.ts.map +0 -1
  650. package/dist/core/loaders/plugins/index.js.map +0 -1
  651. package/dist/core/loaders/plugins/index.mjs.map +0 -1
  652. package/dist/core/loaders/policies.d.ts.map +0 -1
  653. package/dist/core/loaders/policies.js.map +0 -1
  654. package/dist/core/loaders/policies.mjs.map +0 -1
  655. package/dist/core/loaders/sanitizers.d.ts.map +0 -1
  656. package/dist/core/loaders/sanitizers.js.map +0 -1
  657. package/dist/core/loaders/sanitizers.mjs.map +0 -1
  658. package/dist/core/loaders/src-index.d.ts.map +0 -1
  659. package/dist/core/loaders/src-index.js.map +0 -1
  660. package/dist/core/loaders/src-index.mjs.map +0 -1
  661. package/dist/core/loaders/validators.d.ts.map +0 -1
  662. package/dist/core/loaders/validators.js.map +0 -1
  663. package/dist/core/loaders/validators.mjs.map +0 -1
  664. package/dist/core/registries/apis.d.ts.map +0 -1
  665. package/dist/core/registries/apis.js.map +0 -1
  666. package/dist/core/registries/apis.mjs.map +0 -1
  667. package/dist/core/registries/components.d.ts.map +0 -1
  668. package/dist/core/registries/components.js.map +0 -1
  669. package/dist/core/registries/components.mjs.map +0 -1
  670. package/dist/core/registries/config.d.ts.map +0 -1
  671. package/dist/core/registries/config.js.map +0 -1
  672. package/dist/core/registries/config.mjs.map +0 -1
  673. package/dist/core/registries/content-types.d.ts.map +0 -1
  674. package/dist/core/registries/content-types.js.map +0 -1
  675. package/dist/core/registries/content-types.mjs.map +0 -1
  676. package/dist/core/registries/controllers.d.ts.map +0 -1
  677. package/dist/core/registries/controllers.js.map +0 -1
  678. package/dist/core/registries/controllers.mjs.map +0 -1
  679. package/dist/core/registries/custom-fields.d.ts.map +0 -1
  680. package/dist/core/registries/custom-fields.js.map +0 -1
  681. package/dist/core/registries/custom-fields.mjs.map +0 -1
  682. package/dist/core/registries/hooks.d.ts.map +0 -1
  683. package/dist/core/registries/hooks.js.map +0 -1
  684. package/dist/core/registries/hooks.mjs.map +0 -1
  685. package/dist/core/registries/index.d.ts.map +0 -1
  686. package/dist/core/registries/middlewares.d.ts.map +0 -1
  687. package/dist/core/registries/middlewares.js.map +0 -1
  688. package/dist/core/registries/middlewares.mjs.map +0 -1
  689. package/dist/core/registries/modules.d.ts.map +0 -1
  690. package/dist/core/registries/modules.js.map +0 -1
  691. package/dist/core/registries/modules.mjs.map +0 -1
  692. package/dist/core/registries/plugins.d.ts.map +0 -1
  693. package/dist/core/registries/plugins.js.map +0 -1
  694. package/dist/core/registries/plugins.mjs.map +0 -1
  695. package/dist/core/registries/policies.d.ts.map +0 -1
  696. package/dist/core/registries/policies.js.map +0 -1
  697. package/dist/core/registries/policies.mjs.map +0 -1
  698. package/dist/core/registries/sanitizers.d.ts.map +0 -1
  699. package/dist/core/registries/sanitizers.js.map +0 -1
  700. package/dist/core/registries/sanitizers.mjs.map +0 -1
  701. package/dist/core/registries/services.d.ts.map +0 -1
  702. package/dist/core/registries/services.js.map +0 -1
  703. package/dist/core/registries/services.mjs.map +0 -1
  704. package/dist/core/registries/validators.d.ts.map +0 -1
  705. package/dist/core/registries/validators.js.map +0 -1
  706. package/dist/core/registries/validators.mjs.map +0 -1
  707. package/dist/core/utils.d.ts.map +0 -1
  708. package/dist/core/utils.js.map +0 -1
  709. package/dist/core/utils.mjs.map +0 -1
  710. package/dist/core-api/service/get-fetch-params.d.ts +0 -7
  711. package/dist/core-api/service/get-fetch-params.d.ts.map +0 -1
  712. package/dist/core-api/service/get-fetch-params.js +0 -14
  713. package/dist/core-api/service/get-fetch-params.js.map +0 -1
  714. package/dist/core-api/service/get-fetch-params.mjs +0 -14
  715. package/dist/core-api/service/get-fetch-params.mjs.map +0 -1
  716. package/dist/load/filepath-to-prop-path.d.ts +0 -6
  717. package/dist/load/filepath-to-prop-path.d.ts.map +0 -1
  718. package/dist/load/filepath-to-prop-path.js.map +0 -1
  719. package/dist/load/filepath-to-prop-path.mjs.map +0 -1
  720. package/dist/load/glob.d.ts +0 -7
  721. package/dist/load/glob.d.ts.map +0 -1
  722. package/dist/load/glob.js +0 -15
  723. package/dist/load/glob.js.map +0 -1
  724. package/dist/load/glob.mjs +0 -14
  725. package/dist/load/glob.mjs.map +0 -1
  726. package/dist/load/index.d.ts +0 -3
  727. package/dist/load/index.d.ts.map +0 -1
  728. package/dist/load/load-files.d.ts.map +0 -1
  729. package/dist/load/load-files.js.map +0 -1
  730. package/dist/load/load-files.mjs.map +0 -1
  731. package/dist/load/package-path.d.ts +0 -6
  732. package/dist/load/package-path.d.ts.map +0 -1
  733. package/dist/middlewares/public/assets/images/group_people_1.png +0 -0
  734. package/dist/middlewares/public/assets/images/group_people_2.png +0 -0
  735. package/dist/middlewares/public/assets/images/group_people_3.png +0 -0
  736. package/dist/middlewares/public/assets/images/logo_login.png +0 -0
  737. package/dist/middlewares/public/index.d.ts.map +0 -1
  738. package/dist/middlewares/public/index.html +0 -66
  739. package/dist/middlewares/public/index.js +0 -91
  740. package/dist/middlewares/public/index.js.map +0 -1
  741. package/dist/middlewares/public/index.mjs +0 -85
  742. package/dist/middlewares/public/index.mjs.map +0 -1
  743. package/dist/middlewares/public/serve-static.d.ts +0 -4
  744. package/dist/middlewares/public/serve-static.d.ts.map +0 -1
  745. package/dist/middlewares/public/serve-static.js +0 -24
  746. package/dist/middlewares/public/serve-static.js.map +0 -1
  747. package/dist/middlewares/public/serve-static.mjs +0 -21
  748. package/dist/middlewares/public/serve-static.mjs.map +0 -1
  749. package/dist/services/document-service/document-repository.d.ts +0 -21
  750. package/dist/services/document-service/document-repository.d.ts.map +0 -1
  751. package/dist/services/document-service/document-repository.js +0 -132
  752. package/dist/services/document-service/document-repository.js.map +0 -1
  753. package/dist/services/document-service/document-repository.mjs +0 -132
  754. package/dist/services/document-service/document-repository.mjs.map +0 -1
  755. package/dist/services/document-service/middlewares/defaults/draft-and-publish.d.ts +0 -26
  756. package/dist/services/document-service/middlewares/defaults/draft-and-publish.d.ts.map +0 -1
  757. package/dist/services/document-service/middlewares/defaults/draft-and-publish.js +0 -58
  758. package/dist/services/document-service/middlewares/defaults/draft-and-publish.js.map +0 -1
  759. package/dist/services/document-service/middlewares/defaults/draft-and-publish.mjs +0 -58
  760. package/dist/services/document-service/middlewares/defaults/draft-and-publish.mjs.map +0 -1
  761. package/dist/services/document-service/middlewares/defaults/index.d.ts +0 -3
  762. package/dist/services/document-service/middlewares/defaults/index.d.ts.map +0 -1
  763. package/dist/services/document-service/middlewares/defaults/index.js +0 -82
  764. package/dist/services/document-service/middlewares/defaults/index.js.map +0 -1
  765. package/dist/services/document-service/middlewares/defaults/index.mjs +0 -82
  766. package/dist/services/document-service/middlewares/defaults/index.mjs.map +0 -1
  767. package/dist/services/document-service/middlewares/defaults/locales.d.ts +0 -18
  768. package/dist/services/document-service/middlewares/defaults/locales.d.ts.map +0 -1
  769. package/dist/services/document-service/middlewares/defaults/locales.js +0 -40
  770. package/dist/services/document-service/middlewares/defaults/locales.js.map +0 -1
  771. package/dist/services/document-service/middlewares/defaults/locales.mjs +0 -40
  772. package/dist/services/document-service/middlewares/defaults/locales.mjs.map +0 -1
  773. package/dist/services/document-service/middlewares/index.d.ts +0 -11
  774. package/dist/services/document-service/middlewares/index.d.ts.map +0 -1
  775. package/dist/services/document-service/middlewares/index.js +0 -59
  776. package/dist/services/document-service/middlewares/index.js.map +0 -1
  777. package/dist/services/document-service/middlewares/index.mjs +0 -59
  778. package/dist/services/document-service/middlewares/index.mjs.map +0 -1
  779. package/dist/utils/addSlash.d.ts +0 -3
  780. package/dist/utils/addSlash.d.ts.map +0 -1
  781. package/dist/utils/ee.js +0 -4
  782. package/dist/utils/ee.js.map +0 -1
  783. package/dist/utils/ee.mjs +0 -5
  784. package/dist/utils/ee.mjs.map +0 -1
  785. /package/dist/{core/app-configuration → configuration}/config-loader.d.ts +0 -0
  786. /package/dist/{core/domain → domain}/content-type/validator.d.ts +0 -0
  787. /package/dist/{core/domain → domain}/content-type/validator.js +0 -0
  788. /package/dist/{core/domain → domain}/content-type/validator.mjs +0 -0
  789. /package/dist/{core/domain → domain}/module/index.d.ts +0 -0
  790. /package/dist/{core/domain → domain}/module/validation.d.ts +0 -0
  791. /package/dist/{core/domain → domain}/module/validation.js +0 -0
  792. /package/dist/{core/domain → domain}/module/validation.mjs +0 -0
  793. /package/dist/{core/loaders → loaders}/admin.d.ts +0 -0
  794. /package/dist/{core/loaders → loaders}/apis.d.ts +0 -0
  795. /package/dist/{core/loaders → loaders}/components.d.ts +0 -0
  796. /package/dist/{core/loaders → loaders}/index.d.ts +0 -0
  797. /package/dist/{core/loaders → loaders}/index.js +0 -0
  798. /package/dist/{core/loaders → loaders}/index.mjs +0 -0
  799. /package/dist/{core/loaders → loaders}/middlewares.d.ts +0 -0
  800. /package/dist/{core/loaders → loaders}/plugins/get-enabled-plugins.d.ts +0 -0
  801. /package/dist/{core/loaders → loaders}/plugins/get-user-plugins-config.d.ts +0 -0
  802. /package/dist/{core/loaders → loaders}/plugins/index.d.ts +0 -0
  803. /package/dist/{core/loaders → loaders}/policies.d.ts +0 -0
  804. /package/dist/{core/loaders → loaders}/policies.js +0 -0
  805. /package/dist/{core/loaders → loaders}/policies.mjs +0 -0
  806. /package/dist/{core/loaders → loaders}/sanitizers.d.ts +0 -0
  807. /package/dist/{core/loaders → loaders}/sanitizers.js +0 -0
  808. /package/dist/{core/loaders → loaders}/sanitizers.mjs +0 -0
  809. /package/dist/{core/loaders → loaders}/src-index.d.ts +0 -0
  810. /package/dist/{core/loaders → loaders}/src-index.js +0 -0
  811. /package/dist/{core/loaders → loaders}/src-index.mjs +0 -0
  812. /package/dist/{core/loaders → loaders}/validators.d.ts +0 -0
  813. /package/dist/{core/loaders → loaders}/validators.js +0 -0
  814. /package/dist/{core/loaders → loaders}/validators.mjs +0 -0
  815. /package/dist/{core/registries → registries}/apis.d.ts +0 -0
  816. /package/dist/{core/registries → registries}/apis.js +0 -0
  817. /package/dist/{core/registries → registries}/apis.mjs +0 -0
  818. /package/dist/{core/registries → registries}/components.d.ts +0 -0
  819. /package/dist/{core/registries → registries}/components.js +0 -0
  820. /package/dist/{core/registries → registries}/components.mjs +0 -0
  821. /package/dist/{core/registries → registries}/config.d.ts +0 -0
  822. /package/dist/{core/registries → registries}/config.js +0 -0
  823. /package/dist/{core/registries → registries}/config.mjs +0 -0
  824. /package/dist/{core/registries → registries}/content-types.d.ts +0 -0
  825. /package/dist/{core/registries → registries}/controllers.d.ts +0 -0
  826. /package/dist/{core/registries → registries}/custom-fields.d.ts +0 -0
  827. /package/dist/{core/registries → registries}/custom-fields.js +0 -0
  828. /package/dist/{core/registries → registries}/custom-fields.mjs +0 -0
  829. /package/dist/{core/registries → registries}/hooks.d.ts +0 -0
  830. /package/dist/{core/registries → registries}/middlewares.d.ts +0 -0
  831. /package/dist/{core/registries → registries}/modules.d.ts +0 -0
  832. /package/dist/{core/registries → registries}/modules.js +0 -0
  833. /package/dist/{core/registries → registries}/modules.mjs +0 -0
  834. /package/dist/{core/registries → registries}/plugins.d.ts +0 -0
  835. /package/dist/{core/registries → registries}/plugins.js +0 -0
  836. /package/dist/{core/registries → registries}/plugins.mjs +0 -0
  837. /package/dist/{core/registries → registries}/policies.d.ts +0 -0
  838. /package/dist/{core/registries → registries}/sanitizers.d.ts +0 -0
  839. /package/dist/{core/registries → registries}/sanitizers.js +0 -0
  840. /package/dist/{core/registries → registries}/sanitizers.mjs +0 -0
  841. /package/dist/{core/registries → registries}/services.d.ts +0 -0
  842. /package/dist/{core/registries → registries}/validators.d.ts +0 -0
  843. /package/dist/{core/registries → registries}/validators.js +0 -0
  844. /package/dist/{core/registries → registries}/validators.mjs +0 -0
@@ -0,0 +1,242 @@
1
+ import { pipeAsync, mapAsync, contentTypes, convertQueryParams } from "@strapi/utils";
2
+ import { set, omit } from "lodash/fp";
3
+ import { getComponents, deleteComponents, createComponents, omitComponentData, updateComponents, cloneComponents } from "../entity-service/components.mjs";
4
+ import { createDocumentId } from "../../utils/transform-content-types-to-models.mjs";
5
+ import { applyTransforms } from "../entity-service/attributes/index.mjs";
6
+ import entityValidator from "../entity-validator/index.mjs";
7
+ import { pickSelectionParams } from "../entity-service/params.mjs";
8
+ import { transformParamsDocumentId } from "./transform/id-transform.mjs";
9
+ import { getDeepPopulate } from "./utils/populate.mjs";
10
+ import { transformData } from "./transform/data.mjs";
11
+ const { transformParamsToQuery } = convertQueryParams;
12
+ const createPipeline = (data, context) => {
13
+ return applyTransforms(data, context);
14
+ };
15
+ const updatePipeline = (data, context) => {
16
+ return applyTransforms(data, context);
17
+ };
18
+ const createDocumentEngine = ({
19
+ strapi,
20
+ db
21
+ }) => ({
22
+ async findMany(uid, params) {
23
+ const query = await pipeAsync(
24
+ (params2) => transformParamsDocumentId(uid, params2, { isDraft: params2.status === "draft" }),
25
+ (params2) => transformParamsToQuery(uid, params2),
26
+ (query2) => set("where", { ...params?.lookup, ...query2.where }, query2)
27
+ )(params || {});
28
+ return db.query(uid).findMany(query);
29
+ },
30
+ async findFirst(uid, params) {
31
+ const query = await pipeAsync(
32
+ (params2) => transformParamsDocumentId(uid, params2, { isDraft: params2.status === "draft" }),
33
+ (params2) => transformParamsToQuery(uid, params2)
34
+ )(params || {});
35
+ return db.query(uid).findOne({ ...query, where: { ...params?.lookup, ...query.where } });
36
+ },
37
+ async findOne(uid, documentId, params) {
38
+ const query = await pipeAsync(
39
+ (params2) => transformParamsDocumentId(uid, params2, { isDraft: params2.status === "draft" }),
40
+ (params2) => transformParamsToQuery(uid, params2)
41
+ )(params || {});
42
+ return db.query(uid).findOne({ ...query, where: { ...params?.lookup, ...query.where, documentId } });
43
+ },
44
+ async delete(uid, documentId, params = {}) {
45
+ const query = await pipeAsync(
46
+ (params2) => transformParamsToQuery(uid, params2),
47
+ (query2) => set("where", { ...params?.lookup, ...query2.where, documentId }, query2)
48
+ )(params);
49
+ if (params.status === "draft") {
50
+ throw new Error("Cannot delete a draft document");
51
+ }
52
+ const entriesToDelete = await db.query(uid).findMany(query);
53
+ await mapAsync(entriesToDelete, async (entryToDelete) => {
54
+ await this.deleteEntry(uid, entryToDelete.id);
55
+ });
56
+ return { deletedEntries: entriesToDelete.length };
57
+ },
58
+ async deleteEntry(uid, entryId) {
59
+ const componentsToDelete = await getComponents(uid, { id: entryId });
60
+ await db.query(uid).delete({ where: { id: entryId } });
61
+ await deleteComponents(uid, componentsToDelete, { loadComponents: false });
62
+ },
63
+ async create(uid, params) {
64
+ const { data, ...restParams } = await transformParamsDocumentId(uid, params, {
65
+ locale: params.locale,
66
+ // @ts-expect-error - published at is not always present
67
+ // User can not set publishedAt on create, but other methods in the engine can (publish)
68
+ isDraft: !params.data?.publishedAt
69
+ });
70
+ const query = transformParamsToQuery(uid, pickSelectionParams(restParams));
71
+ if (!params.data) {
72
+ throw new Error("Create requires data attribute");
73
+ }
74
+ const contentType = strapi.contentType(uid);
75
+ const validData = await entityValidator.validateEntityCreation(contentType, data, {
76
+ isDraft: !data.publishedAt,
77
+ locale: params?.locale
78
+ });
79
+ const componentData = await createComponents(uid, validData);
80
+ const entryData = createPipeline(
81
+ Object.assign(omitComponentData(contentType, validData), componentData),
82
+ { contentType }
83
+ );
84
+ return db.query(uid).create({ ...query, data: entryData });
85
+ },
86
+ // NOTE: What happens if user doesn't provide specific publications state and locale to update?
87
+ async update(uid, documentId, params) {
88
+ const { data, ...restParams } = await transformParamsDocumentId(uid, params || {}, {
89
+ isDraft: true,
90
+ locale: params?.locale
91
+ });
92
+ const query = transformParamsToQuery(uid, pickSelectionParams(restParams || {}));
93
+ const model = strapi.contentType(uid);
94
+ const entryToUpdate = await db.query(uid).findOne({ ...query, where: { ...params?.lookup, ...query?.where, documentId } });
95
+ if (!entryToUpdate)
96
+ return null;
97
+ const validData = await entityValidator.validateEntityUpdate(
98
+ model,
99
+ data,
100
+ {
101
+ isDraft: true,
102
+ // Always update the draft version
103
+ locale: params?.locale
104
+ },
105
+ entryToUpdate
106
+ );
107
+ const componentData = await updateComponents(uid, entryToUpdate, validData);
108
+ const entryData = updatePipeline(
109
+ Object.assign(omitComponentData(model, validData), componentData),
110
+ { contentType: model }
111
+ );
112
+ return db.query(uid).update({ ...query, where: { id: entryToUpdate.id }, data: entryData });
113
+ },
114
+ async count(uid, params = void 0) {
115
+ const query = await pipeAsync(
116
+ (params2) => transformParamsToQuery(uid, params2),
117
+ (query2) => set("where", { ...params?.lookup, ...query2.where }, query2)
118
+ )(params || {});
119
+ return db.query(uid).count(query);
120
+ },
121
+ async clone(uid, documentId, params) {
122
+ const { data, ...restParams } = await transformParamsDocumentId(uid, params || {}, {
123
+ isDraft: true,
124
+ locale: params?.locale
125
+ });
126
+ const query = transformParamsToQuery(uid, pickSelectionParams(restParams));
127
+ const model = strapi.contentType(uid);
128
+ const entries = await db.query(uid).findMany({
129
+ ...query,
130
+ where: { ...params?.lookup, ...query.where, documentId }
131
+ });
132
+ if (!entries.length) {
133
+ return null;
134
+ }
135
+ const newDocumentId = createDocumentId();
136
+ const versions = await mapAsync(entries, async (entryToClone) => {
137
+ const isDraft = contentTypes.isDraft(data);
138
+ const validData = await entityValidator.validateEntityUpdate(
139
+ model,
140
+ // Omit id fields, the cloned entity id will be generated by the database
141
+ omit(["id"], data),
142
+ { isDraft, ...params?.lookup },
143
+ entryToClone
144
+ );
145
+ const componentData = await cloneComponents(uid, entryToClone, validData);
146
+ const entityData = createPipeline(
147
+ Object.assign(omitComponentData(model, validData), componentData),
148
+ { contentType: model }
149
+ );
150
+ return db.query(uid).clone(entryToClone.id, {
151
+ ...query,
152
+ // Allows entityData to override the documentId (e.g. when publishing)
153
+ data: { documentId: newDocumentId, ...entityData, locale: entryToClone.locale }
154
+ });
155
+ });
156
+ return { documentId: newDocumentId, versions };
157
+ },
158
+ // TODO: Handle relations so they target the published version
159
+ async publish(uid, documentId, params) {
160
+ await this.delete(uid, documentId, {
161
+ ...params,
162
+ lookup: { ...params?.lookup, publishedAt: { $ne: null } }
163
+ });
164
+ const entriesToPublish = await strapi.db?.query(uid).findMany({
165
+ where: {
166
+ ...params?.lookup,
167
+ documentId,
168
+ publishedAt: null
169
+ },
170
+ populate: getDeepPopulate(uid)
171
+ });
172
+ const publishedEntries = await mapAsync(
173
+ entriesToPublish,
174
+ pipeAsync(
175
+ set("publishedAt", /* @__PURE__ */ new Date()),
176
+ set("documentId", documentId),
177
+ omit("id"),
178
+ // Transform relations to target published versions
179
+ (entry) => {
180
+ const opts = { uid, locale: entry.locale, isDraft: false, allowMissingId: true };
181
+ return transformData(entry, opts);
182
+ },
183
+ // Create the published entry
184
+ (data) => this.create(uid, { ...params, data, locale: data.locale })
185
+ )
186
+ );
187
+ return { versions: publishedEntries };
188
+ },
189
+ async unpublish(uid, documentId, params) {
190
+ return this.delete(uid, documentId, {
191
+ ...params,
192
+ lookup: { ...params?.lookup, publishedAt: { $ne: null } }
193
+ }).then(({ deletedEntries }) => ({ versions: deletedEntries }));
194
+ },
195
+ /**
196
+ * Steps:
197
+ * - Delete the matching draft versions (publishedAt = null)
198
+ * - Clone the matching published versions into draft versions
199
+ *
200
+ * If the document has a published version, the draft version will be created from the published version.
201
+ * If the document has no published version, the version will be removed.
202
+ */
203
+ async discardDraft(uid, documentId, params) {
204
+ await this.delete(uid, documentId, {
205
+ ...params,
206
+ // Delete all drafts that match query
207
+ lookup: { ...params?.lookup, publishedAt: null }
208
+ });
209
+ const entriesToDraft = await strapi.db?.query(uid).findMany({
210
+ where: {
211
+ ...params?.lookup,
212
+ documentId,
213
+ publishedAt: { $ne: null }
214
+ },
215
+ populate: getDeepPopulate(uid)
216
+ });
217
+ const draftEntries = await mapAsync(
218
+ entriesToDraft,
219
+ pipeAsync(
220
+ set("publishedAt", null),
221
+ set("documentId", documentId),
222
+ omit("id"),
223
+ // Transform relations to target draft versions
224
+ (entry) => {
225
+ const opts = { uid, locale: entry.locale, isDraft: true, allowMissingId: true };
226
+ return transformData(entry, opts);
227
+ },
228
+ // Create the draft entry
229
+ (data) => this.create(uid, { ...params, locale: data.locale, data })
230
+ )
231
+ );
232
+ return { versions: draftEntries };
233
+ }
234
+ });
235
+ const createDocumentEngine$1 = (ctx) => {
236
+ const implementation = createDocumentEngine(ctx);
237
+ return implementation;
238
+ };
239
+ export {
240
+ createDocumentEngine$1 as default
241
+ };
242
+ //# sourceMappingURL=document-engine.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-engine.mjs","sources":["../../../src/services/document-service/document-engine.ts"],"sourcesContent":["import type { Database } from '@strapi/database';\nimport type { Documents, Schema, Strapi } from '@strapi/types';\nimport {\n contentTypes as contentTypesUtils,\n convertQueryParams,\n mapAsync,\n pipeAsync,\n} from '@strapi/utils';\n\nimport { omit, set } from 'lodash/fp';\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';\nimport { transformParamsDocumentId } from './transform/id-transform';\nimport { getDeepPopulate } from './utils/populate';\nimport { transformData } from './transform/data';\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: 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 async findMany(uid, params) {\n const query = await pipeAsync(\n (params) => transformParamsDocumentId(uid, params, { isDraft: params.status === 'draft' }),\n (params) => transformParamsToQuery(uid, params),\n (query) => set('where', { ...params?.lookup, ...query.where }, query)\n )(params || {});\n\n return db.query(uid).findMany(query);\n },\n\n async findFirst(uid, params) {\n const query = await pipeAsync(\n (params) => transformParamsDocumentId(uid, params, { isDraft: params.status === 'draft' }),\n (params) => transformParamsToQuery(uid, params)\n )(params || {});\n\n return db.query(uid).findOne({ ...query, where: { ...params?.lookup, ...query.where } });\n },\n\n async findOne(uid, documentId, params) {\n const query = await pipeAsync(\n (params) => transformParamsDocumentId(uid, params, { isDraft: params.status === 'draft' }),\n (params) => transformParamsToQuery(uid, params)\n )(params || {});\n\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 = await pipeAsync(\n (params) => transformParamsToQuery(uid, params),\n (query) => set('where', { ...params?.lookup, ...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 db.query(uid).findMany(query);\n\n // Delete all matched entries and its components\n await mapAsync(entriesToDelete, async (entryToDelete: any) => {\n await this.deleteEntry(uid, entryToDelete.id);\n });\n\n return { deletedEntries: entriesToDelete.length };\n },\n\n async deleteEntry(uid, entryId) {\n const componentsToDelete = await getComponents(uid, { id: entryId });\n\n await db.query(uid).delete({ where: { id: entryId } });\n\n await deleteComponents(uid, componentsToDelete as any, { loadComponents: false });\n },\n\n async create(uid, params) {\n // Param parsing\n const { data, ...restParams } = await transformParamsDocumentId(uid, params, {\n locale: params.locale,\n // @ts-expect-error - published at is not always present\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 contentType = strapi.contentType(uid);\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 = createPipeline(\n Object.assign(omitComponentData(contentType, validData), componentData),\n { contentType }\n );\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 // Param parsing\n const { data, ...restParams } = await transformParamsDocumentId(uid, params || {}, {\n isDraft: true,\n locale: params?.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 db\n .query(uid)\n .findOne({ ...query, where: { ...params?.lookup, ...query?.where, documentId } });\n if (!entryToUpdate) return null;\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 // Component handling\n const componentData = await updateComponents(uid, entryToUpdate, validData as any);\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 = await pipeAsync(\n (params) => transformParamsToQuery(uid, params),\n (query) => set('where', { ...params?.lookup, ...query.where }, query)\n )(params || {});\n\n return db.query(uid).count(query);\n },\n\n async clone(uid, documentId, params) {\n const { data, ...restParams } = await transformParamsDocumentId(uid, params || {}, {\n isDraft: true,\n locale: params?.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 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 { documentId: 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 // Get deep populate\n const entriesToPublish = await strapi.db?.query(uid).findMany({\n where: {\n ...params?.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 set('publishedAt', new Date()),\n set('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) => this.create(uid, { ...params, data, locale: data.locale })\n )\n );\n\n return { versions: publishedEntries };\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 }).then(({ deletedEntries }) => ({ versions: deletedEntries })) 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 * If the document has a published version, the draft version will be created from the published version.\n * If the document has no published version, the version will be removed.\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 // Get deep populate of published versions\n const entriesToDraft = await strapi.db?.query(uid).findMany({\n where: {\n ...params?.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 set('publishedAt', null),\n set('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) => this.create(uid, { ...params, locale: data.locale, data })\n )\n );\n\n return { versions: draftEntries };\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":["params","query","contentTypesUtils"],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { Documents } from '@strapi/types';
2
+ type ParamsTransform = (params: Documents.Params.All) => Documents.Params.All;
3
+ /**
4
+ * Sets status to draft only
5
+ */
6
+ export declare const setStatusToDraft: ParamsTransform;
7
+ /**
8
+ * Adds a default status of `draft` to the params
9
+ */
10
+ export declare const defaultToDraft: ParamsTransform;
11
+ /**
12
+ * In mutating actions we don't want user to set the publishedAt attribute.
13
+ */
14
+ export declare const filterDataPublishedAt: ParamsTransform;
15
+ /**
16
+ * Add status lookup query to the params
17
+ */
18
+ export declare const statusToLookup: ParamsTransform;
19
+ /**
20
+ * Translate publication status parameter into the data that will be saved
21
+ */
22
+ export declare const statusToData: ParamsTransform;
23
+ export {};
24
+ //# sourceMappingURL=draft-and-publish.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft-and-publish.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/draft-and-publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,KAAK,eAAe,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAA0C,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,eAO5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,eAMnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,eAa5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,eAW1B,CAAC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const _ = require("lodash/fp");
4
+ const setStatusToDraft = _.assoc("status", "draft");
5
+ const defaultToDraft = (params) => {
6
+ if (!params.status || params.status !== "published") {
7
+ return setStatusToDraft(params);
8
+ }
9
+ return params;
10
+ };
11
+ const filterDataPublishedAt = (params) => {
12
+ if (params?.data?.publishedAt) {
13
+ return _.assoc(["data", "publishedAt"], null, params);
14
+ }
15
+ return params;
16
+ };
17
+ const statusToLookup = (params) => {
18
+ const lookup = params.lookup || {};
19
+ switch (params?.status) {
20
+ case "published":
21
+ return _.assoc(["lookup", "publishedAt"], { $notNull: true }, params);
22
+ case "draft":
23
+ return _.assoc(["lookup", "publishedAt"], { $null: true }, params);
24
+ }
25
+ return _.assoc("lookup", lookup, params);
26
+ };
27
+ const statusToData = (params) => {
28
+ switch (params?.status) {
29
+ case "published":
30
+ return _.assoc(["data", "publishedAt"], /* @__PURE__ */ new Date(), params);
31
+ case "draft":
32
+ return _.assoc(["data", "publishedAt"], null, params);
33
+ }
34
+ return params;
35
+ };
36
+ exports.defaultToDraft = defaultToDraft;
37
+ exports.filterDataPublishedAt = filterDataPublishedAt;
38
+ exports.setStatusToDraft = setStatusToDraft;
39
+ exports.statusToData = statusToData;
40
+ exports.statusToLookup = statusToLookup;
41
+ //# sourceMappingURL=draft-and-publish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft-and-publish.js","sources":["../../../src/services/document-service/draft-and-publish.ts"],"sourcesContent":["import { Documents } from '@strapi/types';\nimport { assoc } from 'lodash/fp';\n\ntype ParamsTransform = (params: Documents.Params.All) => Documents.Params.All;\n\n/**\n * Sets status to draft only\n */\nexport const setStatusToDraft: ParamsTransform = assoc('status', 'draft');\n\n/**\n * Adds a default status of `draft` to the params\n */\nexport const defaultToDraft: ParamsTransform = (params) => {\n // Default to draft if no status is provided or it's invalid\n if (!params.status || params.status !== 'published') {\n return setStatusToDraft(params);\n }\n\n return params;\n};\n\n/**\n * In mutating actions we don't want user to set the publishedAt attribute.\n */\nexport const filterDataPublishedAt: ParamsTransform = (params) => {\n if (params?.data?.publishedAt) {\n return assoc(['data', 'publishedAt'], null, params);\n }\n\n return params;\n};\n\n/**\n * Add status lookup query to the params\n */\nexport const statusToLookup: ParamsTransform = (params) => {\n const lookup = params.lookup || {};\n\n switch (params?.status) {\n case 'published':\n return assoc(['lookup', 'publishedAt'], { $notNull: true }, params);\n case 'draft':\n return assoc(['lookup', 'publishedAt'], { $null: true }, params);\n default:\n break;\n }\n\n return assoc('lookup', lookup, params);\n};\n\n/**\n * Translate publication status parameter into the data that will be saved\n */\nexport const statusToData: ParamsTransform = (params) => {\n switch (params?.status) {\n case 'published':\n return assoc(['data', 'publishedAt'], new Date(), params);\n case 'draft':\n return assoc(['data', 'publishedAt'], null, params);\n default:\n break;\n }\n\n return params;\n};\n"],"names":["assoc"],"mappings":";;;AAQa,MAAA,mBAAoCA,EAAAA,MAAM,UAAU,OAAO;AAK3D,MAAA,iBAAkC,CAAC,WAAW;AAEzD,MAAI,CAAC,OAAO,UAAU,OAAO,WAAW,aAAa;AACnD,WAAO,iBAAiB,MAAM;AAAA,EAChC;AAEO,SAAA;AACT;AAKa,MAAA,wBAAyC,CAAC,WAAW;AAC5D,MAAA,QAAQ,MAAM,aAAa;AAC7B,WAAOA,EAAAA,MAAM,CAAC,QAAQ,aAAa,GAAG,MAAM,MAAM;AAAA,EACpD;AAEO,SAAA;AACT;AAKa,MAAA,iBAAkC,CAAC,WAAW;AACnD,QAAA,SAAS,OAAO,UAAU;AAEhC,UAAQ,QAAQ,QAAQ;AAAA,IACtB,KAAK;AACI,aAAAA,EAAA,MAAM,CAAC,UAAU,aAAa,GAAG,EAAE,UAAU,QAAQ,MAAM;AAAA,IACpE,KAAK;AACI,aAAAA,EAAA,MAAM,CAAC,UAAU,aAAa,GAAG,EAAE,OAAO,QAAQ,MAAM;AAAA,EAGnE;AAEO,SAAAA,QAAM,UAAU,QAAQ,MAAM;AACvC;AAKa,MAAA,eAAgC,CAAC,WAAW;AACvD,UAAQ,QAAQ,QAAQ;AAAA,IACtB,KAAK;AACI,aAAAA,EAAAA,MAAM,CAAC,QAAQ,aAAa,GAAO,oBAAA,KAAA,GAAQ,MAAM;AAAA,IAC1D,KAAK;AACH,aAAOA,EAAAA,MAAM,CAAC,QAAQ,aAAa,GAAG,MAAM,MAAM;AAAA,EAGtD;AAEO,SAAA;AACT;;;;;;"}
@@ -0,0 +1,41 @@
1
+ import { assoc } from "lodash/fp";
2
+ const setStatusToDraft = assoc("status", "draft");
3
+ const defaultToDraft = (params) => {
4
+ if (!params.status || params.status !== "published") {
5
+ return setStatusToDraft(params);
6
+ }
7
+ return params;
8
+ };
9
+ const filterDataPublishedAt = (params) => {
10
+ if (params?.data?.publishedAt) {
11
+ return assoc(["data", "publishedAt"], null, params);
12
+ }
13
+ return params;
14
+ };
15
+ const statusToLookup = (params) => {
16
+ const lookup = params.lookup || {};
17
+ switch (params?.status) {
18
+ case "published":
19
+ return assoc(["lookup", "publishedAt"], { $notNull: true }, params);
20
+ case "draft":
21
+ return assoc(["lookup", "publishedAt"], { $null: true }, params);
22
+ }
23
+ return assoc("lookup", lookup, params);
24
+ };
25
+ const statusToData = (params) => {
26
+ switch (params?.status) {
27
+ case "published":
28
+ return assoc(["data", "publishedAt"], /* @__PURE__ */ new Date(), params);
29
+ case "draft":
30
+ return assoc(["data", "publishedAt"], null, params);
31
+ }
32
+ return params;
33
+ };
34
+ export {
35
+ defaultToDraft,
36
+ filterDataPublishedAt,
37
+ setStatusToDraft,
38
+ statusToData,
39
+ statusToLookup
40
+ };
41
+ //# sourceMappingURL=draft-and-publish.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft-and-publish.mjs","sources":["../../../src/services/document-service/draft-and-publish.ts"],"sourcesContent":["import { Documents } from '@strapi/types';\nimport { assoc } from 'lodash/fp';\n\ntype ParamsTransform = (params: Documents.Params.All) => Documents.Params.All;\n\n/**\n * Sets status to draft only\n */\nexport const setStatusToDraft: ParamsTransform = assoc('status', 'draft');\n\n/**\n * Adds a default status of `draft` to the params\n */\nexport const defaultToDraft: ParamsTransform = (params) => {\n // Default to draft if no status is provided or it's invalid\n if (!params.status || params.status !== 'published') {\n return setStatusToDraft(params);\n }\n\n return params;\n};\n\n/**\n * In mutating actions we don't want user to set the publishedAt attribute.\n */\nexport const filterDataPublishedAt: ParamsTransform = (params) => {\n if (params?.data?.publishedAt) {\n return assoc(['data', 'publishedAt'], null, params);\n }\n\n return params;\n};\n\n/**\n * Add status lookup query to the params\n */\nexport const statusToLookup: ParamsTransform = (params) => {\n const lookup = params.lookup || {};\n\n switch (params?.status) {\n case 'published':\n return assoc(['lookup', 'publishedAt'], { $notNull: true }, params);\n case 'draft':\n return assoc(['lookup', 'publishedAt'], { $null: true }, params);\n default:\n break;\n }\n\n return assoc('lookup', lookup, params);\n};\n\n/**\n * Translate publication status parameter into the data that will be saved\n */\nexport const statusToData: ParamsTransform = (params) => {\n switch (params?.status) {\n case 'published':\n return assoc(['data', 'publishedAt'], new Date(), params);\n case 'draft':\n return assoc(['data', 'publishedAt'], null, params);\n default:\n break;\n }\n\n return params;\n};\n"],"names":[],"mappings":";AAQa,MAAA,mBAAoC,MAAM,UAAU,OAAO;AAK3D,MAAA,iBAAkC,CAAC,WAAW;AAEzD,MAAI,CAAC,OAAO,UAAU,OAAO,WAAW,aAAa;AACnD,WAAO,iBAAiB,MAAM;AAAA,EAChC;AAEO,SAAA;AACT;AAKa,MAAA,wBAAyC,CAAC,WAAW;AAC5D,MAAA,QAAQ,MAAM,aAAa;AAC7B,WAAO,MAAM,CAAC,QAAQ,aAAa,GAAG,MAAM,MAAM;AAAA,EACpD;AAEO,SAAA;AACT;AAKa,MAAA,iBAAkC,CAAC,WAAW;AACnD,QAAA,SAAS,OAAO,UAAU;AAEhC,UAAQ,QAAQ,QAAQ;AAAA,IACtB,KAAK;AACI,aAAA,MAAM,CAAC,UAAU,aAAa,GAAG,EAAE,UAAU,QAAQ,MAAM;AAAA,IACpE,KAAK;AACI,aAAA,MAAM,CAAC,UAAU,aAAa,GAAG,EAAE,OAAO,QAAQ,MAAM;AAAA,EAGnE;AAEO,SAAA,MAAM,UAAU,QAAQ,MAAM;AACvC;AAKa,MAAA,eAAgC,CAAC,WAAW;AACvD,UAAQ,QAAQ,QAAQ;AAAA,IACtB,KAAK;AACI,aAAA,MAAM,CAAC,QAAQ,aAAa,GAAO,oBAAA,KAAA,GAAQ,MAAM;AAAA,IAC1D,KAAK;AACH,aAAO,MAAM,CAAC,QAAQ,aAAa,GAAG,MAAM,MAAM;AAAA,EAGtD;AAEO,SAAA;AACT;"}
@@ -1,8 +1,19 @@
1
- import type { Database } from '@strapi/database';
2
- import type { Documents, Strapi } from '@strapi/types';
3
- declare const _default: (ctx: {
4
- strapi: Strapi;
5
- db: Database;
6
- }) => Documents.Service;
7
- export default _default;
1
+ import { Strapi, Documents } from '@strapi/types';
2
+ /**
3
+ * Repository to :
4
+ * - Access documents via actions (findMany, findOne, create, update, delete, ...)
5
+ * - Execute middlewares on document actions
6
+ * - Apply default parameters to document actions
7
+ *
8
+ * @param strapi
9
+ * @param options.defaults - Default parameters to apply to all actions
10
+ * @param options.parent - Parent repository, used when creating a new repository with .with()
11
+ * @returns DocumentService
12
+ *
13
+ * @example Access documents
14
+ * const article = strapi.documents('api::article.article').create(params)
15
+ * const allArticles = strapi.documents('api::article.article').findMany(params)
16
+ *
17
+ */
18
+ export declare const createDocumentService: (strapi: Strapi) => Documents.Service;
8
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAU,SAAS,EAAkB,MAAM,EAAE,MAAM,eAAe,CAAC;8BAqS1D;IAAE,QAAQ,MAAM,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAA;CAAE,KAAG,UAAU,OAAO;AAAzE,wBAKE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAKlD;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,qBAAqB,WAAY,MAAM,KAAG,UAAU,OAoBhE,CAAC"}
@@ -1,194 +1,22 @@
1
1
  "use strict";
2
- const strapiUtils = require("@strapi/utils");
3
- const _ = require("lodash/fp");
4
- const uploadFiles = require("../utils/upload-files.js");
5
- const components = require("../entity-service/components.js");
6
- const transformContentTypesToModels = require("../../utils/transform-content-types-to-models.js");
7
- const index$1 = require("../entity-service/attributes/index.js");
8
- const index = require("../entity-validator/index.js");
9
- const params = require("../entity-service/params.js");
10
- const { transformParamsToQuery } = strapiUtils.convertQueryParams;
11
- const createPipeline = (data, context) => {
12
- return index$1.applyTransforms(data, context);
13
- };
14
- const updatePipeline = (data, context) => {
15
- return index$1.applyTransforms(data, context);
16
- };
17
- const createDocumentService = ({
18
- strapi,
19
- db
20
- }) => ({
21
- uploadFiles,
22
- async findMany(uid, params2) {
23
- const { kind } = strapi.getModel(uid);
24
- const query = transformParamsToQuery(uid, params2 || {});
25
- query.where = { ...params2?.lookup, ...query.where };
26
- if (kind === "singleType") {
27
- return db.query(uid).findOne(query);
28
- }
29
- return db.query(uid).findMany(query);
30
- },
31
- async findFirst(uid, params2) {
32
- const query = transformParamsToQuery(uid, params2 || {});
33
- return db.query(uid).findOne({ ...query, where: { ...params2?.lookup, ...query.where } });
34
- },
35
- async findOne(uid, documentId, params2) {
36
- const query = transformParamsToQuery(uid, params2 || {});
37
- return db.query(uid).findOne({ ...query, where: { ...params2?.lookup, ...query.where, documentId } });
38
- },
39
- async delete(uid, documentId, params2 = {}) {
40
- const query = transformParamsToQuery(uid, params2);
41
- if (params2.status === "draft") {
42
- throw new Error("Cannot delete a draft document");
43
- }
44
- const entriesToDelete = await db.query(uid).findMany({
45
- ...query,
46
- where: {
47
- ...params2.lookup,
48
- ...query?.where,
49
- documentId
50
- }
51
- });
52
- await strapiUtils.mapAsync(entriesToDelete, async (entryToDelete) => {
53
- const componentsToDelete = await components.getComponents(uid, entryToDelete);
54
- await db.query(uid).delete({ where: { id: entryToDelete.id } });
55
- await components.deleteComponents(uid, componentsToDelete, { loadComponents: false });
56
- });
57
- return { versions: entriesToDelete };
58
- },
59
- // TODO: should we provide two separate methods?
60
- async deleteMany(uid, paramsOrIds) {
61
- let queryParams;
62
- if (_.isArray(paramsOrIds)) {
63
- queryParams = { filter: { documentID: { $in: paramsOrIds } } };
64
- } else {
65
- queryParams = paramsOrIds;
66
- }
67
- const query = transformParamsToQuery(uid, queryParams || {});
68
- return db.query(uid).deleteMany(query);
69
- },
70
- async create(uid, params$1) {
71
- const { data } = params$1;
72
- if (!data) {
73
- throw new Error("Create requires data attribute");
74
- }
75
- const model = strapi.getModel(uid);
76
- const validData = await index.validateEntityCreation(model, data, { isDraft: true });
77
- const componentData = await components.createComponents(uid, validData);
78
- const entryData = createPipeline(
79
- Object.assign(components.omitComponentData(model, validData), componentData),
80
- {
81
- contentType: model
82
- }
83
- );
84
- const query = transformParamsToQuery(uid, params.pickSelectionParams(params$1));
85
- return db.query(uid).create({ ...query, data: entryData });
86
- },
87
- // NOTE: What happens if user doesn't provide specific publications state and locale to update?
88
- async update(uid, documentId, params$1) {
89
- const { data } = params$1 || {};
90
- const model = strapi.getModel(uid);
91
- const query = transformParamsToQuery(uid, params.pickSelectionParams(params$1 || {}));
92
- const entryToUpdate = await db.query(uid).findOne({ ...query, where: { ...params$1?.lookup, ...query?.where, documentId } });
93
- if (!entryToUpdate) {
94
- return null;
95
- }
96
- const validData = await index.validateEntityUpdate(
97
- model,
98
- data,
99
- { isDraft: true },
100
- // Always update the draft version
101
- entryToUpdate
102
- );
103
- const componentData = await components.updateComponents(uid, entryToUpdate, validData);
104
- const entryData = updatePipeline(
105
- Object.assign(components.omitComponentData(model, validData), componentData),
106
- { contentType: model }
107
- );
108
- return db.query(uid).update({ ...query, where: { id: entryToUpdate.id }, data: entryData });
109
- },
110
- async count(uid, params2 = void 0) {
111
- const query = transformParamsToQuery(uid, params2 || {});
112
- query.where = { ...params2?.lookup, ...query.where };
113
- return db.query(uid).count(query);
114
- },
115
- async clone(uid, documentId, params$1) {
116
- const { data = {} } = params$1;
117
- const model = strapi.getModel(uid);
118
- const query = transformParamsToQuery(uid, params.pickSelectionParams(params$1));
119
- const entries = await db.query(uid).findMany({
120
- ...query,
121
- where: { ...params$1?.lookup, ...query.where, documentId }
122
- });
123
- if (!entries.length) {
124
- return null;
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const middlewares = require("./middlewares.js");
4
+ const contentType = require("./repositories/content-type.js");
5
+ const createDocumentService = (strapi) => {
6
+ const repositories = /* @__PURE__ */ new Map();
7
+ const middlewares$1 = middlewares.createMiddlewareManager();
8
+ const factory = function factory2(uid) {
9
+ if (repositories.has(uid)) {
10
+ return repositories.get(uid);
125
11
  }
126
- const newDocumentId = transformContentTypesToModels.createDocumentId();
127
- const versions = await strapiUtils.mapAsync(entries, async (entryToClone) => {
128
- const isDraft = strapiUtils.contentTypes.isDraft(data);
129
- const validData = await index.validateEntityUpdate(
130
- model,
131
- // Omit id fields, the cloned entity id will be generated by the database
132
- _.omit(["id"], data),
133
- { isDraft },
134
- entryToClone
135
- );
136
- const componentData = await components.cloneComponents(uid, entryToClone, validData);
137
- const entityData = createPipeline(
138
- Object.assign(components.omitComponentData(model, validData), componentData),
139
- { contentType: model }
140
- );
141
- return db.query(uid).clone(entryToClone.id, {
142
- ...query,
143
- // Allows entityData to override the documentId (e.g. when publishing)
144
- data: { documentId: newDocumentId, ...entityData, locale: entryToClone.locale }
145
- });
146
- });
147
- return { id: newDocumentId, versions };
148
- },
149
- // TODO: Handle relations so they target the published version
150
- async publish(uid, documentId, params2) {
151
- await this.delete(uid, documentId, {
152
- ...params2,
153
- lookup: { ...params2?.lookup, publishedAt: { $ne: null } }
154
- });
155
- const clonedDocuments = await this.clone(uid, documentId, {
156
- ...params2 || {},
157
- // @ts-expect-error - Generic type does not have publishedAt attribute by default
158
- data: { documentId, publishedAt: /* @__PURE__ */ new Date() }
159
- });
160
- return { versions: clonedDocuments?.versions || [] };
161
- },
162
- async unpublish(uid, documentId, params2) {
163
- return this.delete(uid, documentId, {
164
- ...params2,
165
- lookup: { ...params2?.lookup, publishedAt: { $ne: null } }
166
- });
167
- },
168
- /**
169
- * Steps:
170
- * - Delete the matching draft versions (publishedAt = null)
171
- * - Clone the matching published versions into draft versions
172
- */
173
- async discardDraft(uid, documentId, params2) {
174
- await this.delete(uid, documentId, {
175
- ...params2,
176
- // Delete all drafts that match query
177
- lookup: { ...params2?.lookup, publishedAt: null }
178
- });
179
- const clonedDocuments = await this.clone(uid, documentId, {
180
- ...params2 || {},
181
- // Clone only published versions
182
- lookup: { ...params2?.lookup, publishedAt: { $ne: null } },
183
- // @ts-expect-error - Generic type does not have publishedAt attribute by default
184
- data: { documentId, publishedAt: null }
185
- });
186
- return { versions: clonedDocuments?.versions || [] };
187
- }
188
- });
189
- const createDocumentService$1 = (ctx) => {
190
- const implementation = createDocumentService(ctx);
191
- return implementation;
12
+ const contentType$1 = strapi.contentType(uid);
13
+ const repository = contentType.createContentTypeRepository(uid);
14
+ repositories.set(uid, middlewares$1.wrapObject(repository, { contentType: contentType$1 }));
15
+ return repository;
16
+ };
17
+ return Object.assign(factory, {
18
+ use: middlewares$1.use.bind(middlewares$1)
19
+ });
192
20
  };
193
- module.exports = createDocumentService$1;
21
+ exports.createDocumentService = createDocumentService;
194
22
  //# sourceMappingURL=index.js.map