@strapi/core 0.0.0-next.9e9a841899e6378b6f48ab8f419e4b0cc62bdf32 → 0.0.0-next.9f197efe32a3170748e5e71b4c5c03395f2676b7

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 (779) hide show
  1. package/dist/Strapi.d.ts.map +1 -1
  2. package/dist/Strapi.js +458 -0
  3. package/dist/Strapi.js.map +1 -0
  4. package/dist/Strapi.mjs +437 -0
  5. package/dist/Strapi.mjs.map +1 -0
  6. package/dist/compile.js +27 -0
  7. package/dist/compile.js.map +1 -0
  8. package/dist/compile.mjs +25 -0
  9. package/dist/compile.mjs.map +1 -0
  10. package/dist/configuration/config-loader.js +119 -0
  11. package/dist/configuration/config-loader.js.map +1 -0
  12. package/dist/configuration/config-loader.mjs +117 -0
  13. package/dist/configuration/config-loader.mjs.map +1 -0
  14. package/dist/configuration/get-dirs.js +33 -0
  15. package/dist/configuration/get-dirs.js.map +1 -0
  16. package/dist/configuration/get-dirs.mjs +31 -0
  17. package/dist/configuration/get-dirs.mjs.map +1 -0
  18. package/dist/configuration/index.d.ts +1 -0
  19. package/dist/configuration/index.d.ts.map +1 -1
  20. package/dist/configuration/index.js +92 -0
  21. package/dist/configuration/index.js.map +1 -0
  22. package/dist/configuration/index.mjs +90 -0
  23. package/dist/configuration/index.mjs.map +1 -0
  24. package/dist/configuration/urls.d.ts.map +1 -1
  25. package/dist/configuration/urls.js +81 -0
  26. package/dist/configuration/urls.js.map +1 -0
  27. package/dist/configuration/urls.mjs +77 -0
  28. package/dist/configuration/urls.mjs.map +1 -0
  29. package/dist/container.js +34 -0
  30. package/dist/container.js.map +1 -0
  31. package/dist/container.mjs +32 -0
  32. package/dist/container.mjs.map +1 -0
  33. package/dist/core-api/controller/collection-type.js +85 -0
  34. package/dist/core-api/controller/collection-type.js.map +1 -0
  35. package/dist/core-api/controller/collection-type.mjs +83 -0
  36. package/dist/core-api/controller/collection-type.mjs.map +1 -0
  37. package/dist/core-api/controller/index.d.ts.map +1 -1
  38. package/dist/core-api/controller/index.js +68 -0
  39. package/dist/core-api/controller/index.js.map +1 -0
  40. package/dist/core-api/controller/index.mjs +66 -0
  41. package/dist/core-api/controller/index.mjs.map +1 -0
  42. package/dist/core-api/controller/single-type.js +47 -0
  43. package/dist/core-api/controller/single-type.js.map +1 -0
  44. package/dist/core-api/controller/single-type.mjs +45 -0
  45. package/dist/core-api/controller/single-type.mjs.map +1 -0
  46. package/dist/core-api/controller/transform.d.ts +3 -2
  47. package/dist/core-api/controller/transform.d.ts.map +1 -1
  48. package/dist/core-api/controller/transform.js +95 -0
  49. package/dist/core-api/controller/transform.js.map +1 -0
  50. package/dist/core-api/controller/transform.mjs +93 -0
  51. package/dist/core-api/controller/transform.mjs.map +1 -0
  52. package/dist/core-api/routes/index.d.ts +4 -22
  53. package/dist/core-api/routes/index.d.ts.map +1 -1
  54. package/dist/core-api/routes/index.js +211 -0
  55. package/dist/core-api/routes/index.js.map +1 -0
  56. package/dist/core-api/routes/index.mjs +190 -0
  57. package/dist/core-api/routes/index.mjs.map +1 -0
  58. package/dist/core-api/routes/validation/attributes.d.ts +244 -0
  59. package/dist/core-api/routes/validation/attributes.d.ts.map +1 -0
  60. package/dist/core-api/routes/validation/attributes.js +560 -0
  61. package/dist/core-api/routes/validation/attributes.js.map +1 -0
  62. package/dist/core-api/routes/validation/attributes.mjs +521 -0
  63. package/dist/core-api/routes/validation/attributes.mjs.map +1 -0
  64. package/dist/core-api/routes/validation/common.d.ts +105 -0
  65. package/dist/core-api/routes/validation/common.d.ts.map +1 -0
  66. package/dist/core-api/routes/validation/common.js +116 -0
  67. package/dist/core-api/routes/validation/common.js.map +1 -0
  68. package/dist/core-api/routes/validation/common.mjs +95 -0
  69. package/dist/core-api/routes/validation/common.mjs.map +1 -0
  70. package/dist/core-api/routes/validation/component.d.ts +34 -0
  71. package/dist/core-api/routes/validation/component.d.ts.map +1 -0
  72. package/dist/core-api/routes/validation/component.js +45 -0
  73. package/dist/core-api/routes/validation/component.js.map +1 -0
  74. package/dist/core-api/routes/validation/component.mjs +43 -0
  75. package/dist/core-api/routes/validation/component.mjs.map +1 -0
  76. package/dist/core-api/routes/validation/constants.d.ts +8 -0
  77. package/dist/core-api/routes/validation/constants.d.ts.map +1 -0
  78. package/dist/core-api/routes/validation/constants.js +18 -0
  79. package/dist/core-api/routes/validation/constants.js.map +1 -0
  80. package/dist/core-api/routes/validation/constants.mjs +16 -0
  81. package/dist/core-api/routes/validation/constants.mjs.map +1 -0
  82. package/dist/core-api/routes/validation/content-type.d.ts +128 -0
  83. package/dist/core-api/routes/validation/content-type.d.ts.map +1 -0
  84. package/dist/core-api/routes/validation/content-type.js +201 -0
  85. package/dist/core-api/routes/validation/content-type.js.map +1 -0
  86. package/dist/core-api/routes/validation/content-type.mjs +180 -0
  87. package/dist/core-api/routes/validation/content-type.mjs.map +1 -0
  88. package/dist/core-api/routes/validation/index.d.ts +5 -0
  89. package/dist/core-api/routes/validation/index.d.ts.map +1 -0
  90. package/dist/core-api/routes/validation/mappers.d.ts +105 -0
  91. package/dist/core-api/routes/validation/mappers.d.ts.map +1 -0
  92. package/dist/core-api/routes/validation/mappers.js +273 -0
  93. package/dist/core-api/routes/validation/mappers.js.map +1 -0
  94. package/dist/core-api/routes/validation/mappers.mjs +249 -0
  95. package/dist/core-api/routes/validation/mappers.mjs.map +1 -0
  96. package/dist/core-api/routes/validation/utils.d.ts +47 -0
  97. package/dist/core-api/routes/validation/utils.d.ts.map +1 -0
  98. package/dist/core-api/routes/validation/utils.js +128 -0
  99. package/dist/core-api/routes/validation/utils.js.map +1 -0
  100. package/dist/core-api/routes/validation/utils.mjs +106 -0
  101. package/dist/core-api/routes/validation/utils.mjs.map +1 -0
  102. package/dist/core-api/service/collection-type.js +80 -0
  103. package/dist/core-api/service/collection-type.js.map +1 -0
  104. package/dist/core-api/service/collection-type.mjs +77 -0
  105. package/dist/core-api/service/collection-type.mjs.map +1 -0
  106. package/dist/core-api/service/core-service.js +13 -0
  107. package/dist/core-api/service/core-service.js.map +1 -0
  108. package/dist/core-api/service/core-service.mjs +11 -0
  109. package/dist/core-api/service/core-service.mjs.map +1 -0
  110. package/dist/core-api/service/index.js +16 -0
  111. package/dist/core-api/service/index.js.map +1 -0
  112. package/dist/core-api/service/index.mjs +14 -0
  113. package/dist/core-api/service/index.mjs.map +1 -0
  114. package/dist/core-api/service/pagination.js +78 -0
  115. package/dist/core-api/service/pagination.js.map +1 -0
  116. package/dist/core-api/service/pagination.mjs +73 -0
  117. package/dist/core-api/service/pagination.mjs.map +1 -0
  118. package/dist/core-api/service/single-type.js +50 -0
  119. package/dist/core-api/service/single-type.js.map +1 -0
  120. package/dist/core-api/service/single-type.mjs +47 -0
  121. package/dist/core-api/service/single-type.mjs.map +1 -0
  122. package/dist/domain/content-type/index.d.ts.map +1 -1
  123. package/dist/domain/content-type/index.js +122 -0
  124. package/dist/domain/content-type/index.js.map +1 -0
  125. package/dist/domain/content-type/index.mjs +119 -0
  126. package/dist/domain/content-type/index.mjs.map +1 -0
  127. package/dist/domain/content-type/validator.js +92 -0
  128. package/dist/domain/content-type/validator.js.map +1 -0
  129. package/dist/domain/content-type/validator.mjs +90 -0
  130. package/dist/domain/content-type/validator.mjs.map +1 -0
  131. package/dist/domain/module/index.d.ts.map +1 -1
  132. package/dist/domain/module/index.js +119 -0
  133. package/dist/domain/module/index.js.map +1 -0
  134. package/dist/domain/module/index.mjs +117 -0
  135. package/dist/domain/module/index.mjs.map +1 -0
  136. package/dist/domain/module/validation.js +30 -0
  137. package/dist/domain/module/validation.js.map +1 -0
  138. package/dist/domain/module/validation.mjs +28 -0
  139. package/dist/domain/module/validation.mjs.map +1 -0
  140. package/dist/ee/index.d.ts +7 -0
  141. package/dist/ee/index.d.ts.map +1 -1
  142. package/dist/ee/index.js +218 -0
  143. package/dist/ee/index.js.map +1 -0
  144. package/dist/ee/index.mjs +216 -0
  145. package/dist/ee/index.mjs.map +1 -0
  146. package/dist/ee/license.d.ts +3 -1
  147. package/dist/ee/license.d.ts.map +1 -1
  148. package/dist/ee/license.js +121 -0
  149. package/dist/ee/license.js.map +1 -0
  150. package/dist/ee/license.mjs +115 -0
  151. package/dist/ee/license.mjs.map +1 -0
  152. package/dist/factories.d.ts +3 -1
  153. package/dist/factories.d.ts.map +1 -1
  154. package/dist/factories.js +93 -0
  155. package/dist/factories.js.map +1 -0
  156. package/dist/factories.mjs +87 -0
  157. package/dist/factories.mjs.map +1 -0
  158. package/dist/index.js +19 -9943
  159. package/dist/index.js.map +1 -1
  160. package/dist/index.mjs +17 -9920
  161. package/dist/index.mjs.map +1 -1
  162. package/dist/loaders/admin.d.ts.map +1 -1
  163. package/dist/loaders/admin.js +27 -0
  164. package/dist/loaders/admin.js.map +1 -0
  165. package/dist/loaders/admin.mjs +25 -0
  166. package/dist/loaders/admin.mjs.map +1 -0
  167. package/dist/loaders/apis.js +160 -0
  168. package/dist/loaders/apis.js.map +1 -0
  169. package/dist/loaders/apis.mjs +158 -0
  170. package/dist/loaders/apis.mjs.map +1 -0
  171. package/dist/loaders/components.js +37 -0
  172. package/dist/loaders/components.js.map +1 -0
  173. package/dist/loaders/components.mjs +35 -0
  174. package/dist/loaders/components.mjs.map +1 -0
  175. package/dist/loaders/index.js +26 -0
  176. package/dist/loaders/index.js.map +1 -0
  177. package/dist/loaders/index.mjs +24 -0
  178. package/dist/loaders/index.mjs.map +1 -0
  179. package/dist/loaders/middlewares.js +35 -0
  180. package/dist/loaders/middlewares.js.map +1 -0
  181. package/dist/loaders/middlewares.mjs +33 -0
  182. package/dist/loaders/middlewares.mjs.map +1 -0
  183. package/dist/loaders/plugins/get-enabled-plugins.js +136 -0
  184. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -0
  185. package/dist/loaders/plugins/get-enabled-plugins.mjs +134 -0
  186. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -0
  187. package/dist/loaders/plugins/get-user-plugins-config.js +28 -0
  188. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -0
  189. package/dist/loaders/plugins/get-user-plugins-config.mjs +26 -0
  190. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -0
  191. package/dist/loaders/plugins/index.js +155 -0
  192. package/dist/loaders/plugins/index.js.map +1 -0
  193. package/dist/loaders/plugins/index.mjs +134 -0
  194. package/dist/loaders/plugins/index.mjs.map +1 -0
  195. package/dist/loaders/policies.js +29 -0
  196. package/dist/loaders/policies.js.map +1 -0
  197. package/dist/loaders/policies.mjs +27 -0
  198. package/dist/loaders/policies.mjs.map +1 -0
  199. package/dist/loaders/sanitizers.js +12 -0
  200. package/dist/loaders/sanitizers.js.map +1 -0
  201. package/dist/loaders/sanitizers.mjs +10 -0
  202. package/dist/loaders/sanitizers.mjs.map +1 -0
  203. package/dist/loaders/src-index.js +41 -0
  204. package/dist/loaders/src-index.js.map +1 -0
  205. package/dist/loaders/src-index.mjs +39 -0
  206. package/dist/loaders/src-index.mjs.map +1 -0
  207. package/dist/loaders/validators.js +11 -0
  208. package/dist/loaders/validators.js.map +1 -0
  209. package/dist/loaders/validators.mjs +9 -0
  210. package/dist/loaders/validators.mjs.map +1 -0
  211. package/dist/middlewares/body.js +69 -0
  212. package/dist/middlewares/body.js.map +1 -0
  213. package/dist/middlewares/body.mjs +67 -0
  214. package/dist/middlewares/body.mjs.map +1 -0
  215. package/dist/middlewares/compression.js +8 -0
  216. package/dist/middlewares/compression.js.map +1 -0
  217. package/dist/middlewares/compression.mjs +6 -0
  218. package/dist/middlewares/compression.mjs.map +1 -0
  219. package/dist/middlewares/cors.d.ts +9 -1
  220. package/dist/middlewares/cors.d.ts.map +1 -1
  221. package/dist/middlewares/cors.js +86 -0
  222. package/dist/middlewares/cors.js.map +1 -0
  223. package/dist/middlewares/cors.mjs +83 -0
  224. package/dist/middlewares/cors.mjs.map +1 -0
  225. package/dist/middlewares/errors.js +35 -0
  226. package/dist/middlewares/errors.js.map +1 -0
  227. package/dist/middlewares/errors.mjs +33 -0
  228. package/dist/middlewares/errors.mjs.map +1 -0
  229. package/dist/middlewares/favicon.js +32 -0
  230. package/dist/middlewares/favicon.js.map +1 -0
  231. package/dist/middlewares/favicon.mjs +30 -0
  232. package/dist/middlewares/favicon.mjs.map +1 -0
  233. package/dist/middlewares/index.js +36 -0
  234. package/dist/middlewares/index.js.map +1 -0
  235. package/dist/middlewares/index.mjs +34 -0
  236. package/dist/middlewares/index.mjs.map +1 -0
  237. package/dist/middlewares/ip.js +8 -0
  238. package/dist/middlewares/ip.js.map +1 -0
  239. package/dist/middlewares/ip.mjs +6 -0
  240. package/dist/middlewares/ip.mjs.map +1 -0
  241. package/dist/middlewares/logger.js +13 -0
  242. package/dist/middlewares/logger.js.map +1 -0
  243. package/dist/middlewares/logger.mjs +11 -0
  244. package/dist/middlewares/logger.mjs.map +1 -0
  245. package/dist/middlewares/powered-by.js +18 -0
  246. package/dist/middlewares/powered-by.js.map +1 -0
  247. package/dist/middlewares/powered-by.mjs +16 -0
  248. package/dist/middlewares/powered-by.mjs.map +1 -0
  249. package/dist/middlewares/public.js +38 -0
  250. package/dist/middlewares/public.js.map +1 -0
  251. package/dist/middlewares/public.mjs +36 -0
  252. package/dist/middlewares/public.mjs.map +1 -0
  253. package/dist/middlewares/query.js +43 -0
  254. package/dist/middlewares/query.js.map +1 -0
  255. package/dist/middlewares/query.mjs +41 -0
  256. package/dist/middlewares/query.mjs.map +1 -0
  257. package/dist/middlewares/response-time.js +13 -0
  258. package/dist/middlewares/response-time.js.map +1 -0
  259. package/dist/middlewares/response-time.mjs +11 -0
  260. package/dist/middlewares/response-time.mjs.map +1 -0
  261. package/dist/middlewares/responses.js +17 -0
  262. package/dist/middlewares/responses.js.map +1 -0
  263. package/dist/middlewares/responses.mjs +15 -0
  264. package/dist/middlewares/responses.mjs.map +1 -0
  265. package/dist/middlewares/security.js +116 -0
  266. package/dist/middlewares/security.js.map +1 -0
  267. package/dist/middlewares/security.mjs +114 -0
  268. package/dist/middlewares/security.mjs.map +1 -0
  269. package/dist/middlewares/session.js +31 -0
  270. package/dist/middlewares/session.js.map +1 -0
  271. package/dist/middlewares/session.mjs +29 -0
  272. package/dist/middlewares/session.mjs.map +1 -0
  273. package/dist/migrations/database/5.0.0-discard-drafts.js +168 -0
  274. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
  275. package/dist/migrations/database/5.0.0-discard-drafts.mjs +165 -0
  276. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
  277. package/dist/migrations/draft-publish.js +69 -0
  278. package/dist/migrations/draft-publish.js.map +1 -0
  279. package/dist/migrations/draft-publish.mjs +66 -0
  280. package/dist/migrations/draft-publish.mjs.map +1 -0
  281. package/dist/migrations/first-published-at.d.ts +4 -0
  282. package/dist/migrations/first-published-at.d.ts.map +1 -0
  283. package/dist/migrations/first-published-at.js +51 -0
  284. package/dist/migrations/first-published-at.js.map +1 -0
  285. package/dist/migrations/first-published-at.mjs +49 -0
  286. package/dist/migrations/first-published-at.mjs.map +1 -0
  287. package/dist/migrations/i18n.js +71 -0
  288. package/dist/migrations/i18n.js.map +1 -0
  289. package/dist/migrations/i18n.mjs +68 -0
  290. package/dist/migrations/i18n.mjs.map +1 -0
  291. package/dist/migrations/index.d.ts.map +1 -1
  292. package/dist/migrations/index.js +34 -0
  293. package/dist/migrations/index.js.map +1 -0
  294. package/dist/migrations/index.mjs +31 -0
  295. package/dist/migrations/index.mjs.map +1 -0
  296. package/dist/package.json.js +186 -0
  297. package/dist/package.json.js.map +1 -0
  298. package/dist/package.json.mjs +163 -0
  299. package/dist/package.json.mjs.map +1 -0
  300. package/dist/providers/admin.js +30 -0
  301. package/dist/providers/admin.js.map +1 -0
  302. package/dist/providers/admin.mjs +28 -0
  303. package/dist/providers/admin.mjs.map +1 -0
  304. package/dist/providers/coreStore.js +16 -0
  305. package/dist/providers/coreStore.js.map +1 -0
  306. package/dist/providers/coreStore.mjs +14 -0
  307. package/dist/providers/coreStore.mjs.map +1 -0
  308. package/dist/providers/cron.js +23 -0
  309. package/dist/providers/cron.js.map +1 -0
  310. package/dist/providers/cron.mjs +21 -0
  311. package/dist/providers/cron.mjs.map +1 -0
  312. package/dist/providers/index.js +20 -0
  313. package/dist/providers/index.js.map +1 -0
  314. package/dist/providers/index.mjs +18 -0
  315. package/dist/providers/index.mjs.map +1 -0
  316. package/dist/providers/provider.js +6 -0
  317. package/dist/providers/provider.js.map +1 -0
  318. package/dist/providers/provider.mjs +4 -0
  319. package/dist/providers/provider.mjs.map +1 -0
  320. package/dist/providers/registries.js +40 -0
  321. package/dist/providers/registries.js.map +1 -0
  322. package/dist/providers/registries.mjs +38 -0
  323. package/dist/providers/registries.mjs.map +1 -0
  324. package/dist/providers/telemetry.js +22 -0
  325. package/dist/providers/telemetry.js.map +1 -0
  326. package/dist/providers/telemetry.mjs +20 -0
  327. package/dist/providers/telemetry.mjs.map +1 -0
  328. package/dist/providers/webhooks.js +32 -0
  329. package/dist/providers/webhooks.js.map +1 -0
  330. package/dist/providers/webhooks.mjs +30 -0
  331. package/dist/providers/webhooks.mjs.map +1 -0
  332. package/dist/registries/apis.js +26 -0
  333. package/dist/registries/apis.js.map +1 -0
  334. package/dist/registries/apis.mjs +24 -0
  335. package/dist/registries/apis.mjs.map +1 -0
  336. package/dist/registries/components.js +43 -0
  337. package/dist/registries/components.js.map +1 -0
  338. package/dist/registries/components.mjs +41 -0
  339. package/dist/registries/components.mjs.map +1 -0
  340. package/dist/registries/content-types.js +65 -0
  341. package/dist/registries/content-types.js.map +1 -0
  342. package/dist/registries/content-types.mjs +63 -0
  343. package/dist/registries/content-types.mjs.map +1 -0
  344. package/dist/registries/controllers.js +79 -0
  345. package/dist/registries/controllers.js.map +1 -0
  346. package/dist/registries/controllers.mjs +77 -0
  347. package/dist/registries/controllers.mjs.map +1 -0
  348. package/dist/registries/custom-fields.js +81 -0
  349. package/dist/registries/custom-fields.js.map +1 -0
  350. package/dist/registries/custom-fields.mjs +79 -0
  351. package/dist/registries/custom-fields.mjs.map +1 -0
  352. package/dist/registries/hooks.js +55 -0
  353. package/dist/registries/hooks.js.map +1 -0
  354. package/dist/registries/hooks.mjs +53 -0
  355. package/dist/registries/hooks.mjs.map +1 -0
  356. package/dist/registries/middlewares.js +58 -0
  357. package/dist/registries/middlewares.js.map +1 -0
  358. package/dist/registries/middlewares.mjs +56 -0
  359. package/dist/registries/middlewares.mjs.map +1 -0
  360. package/dist/registries/models.js +17 -0
  361. package/dist/registries/models.js.map +1 -0
  362. package/dist/registries/models.mjs +15 -0
  363. package/dist/registries/models.mjs.map +1 -0
  364. package/dist/registries/modules.js +42 -0
  365. package/dist/registries/modules.js.map +1 -0
  366. package/dist/registries/modules.mjs +40 -0
  367. package/dist/registries/modules.mjs.map +1 -0
  368. package/dist/registries/namespace.js +28 -0
  369. package/dist/registries/namespace.js.map +1 -0
  370. package/dist/registries/namespace.mjs +24 -0
  371. package/dist/registries/namespace.mjs.map +1 -0
  372. package/dist/registries/plugins.js +26 -0
  373. package/dist/registries/plugins.js.map +1 -0
  374. package/dist/registries/plugins.mjs +24 -0
  375. package/dist/registries/plugins.mjs.map +1 -0
  376. package/dist/registries/policies.js +115 -0
  377. package/dist/registries/policies.js.map +1 -0
  378. package/dist/registries/policies.mjs +113 -0
  379. package/dist/registries/policies.mjs.map +1 -0
  380. package/dist/registries/sanitizers.js +26 -0
  381. package/dist/registries/sanitizers.js.map +1 -0
  382. package/dist/registries/sanitizers.mjs +24 -0
  383. package/dist/registries/sanitizers.mjs.map +1 -0
  384. package/dist/registries/services.js +80 -0
  385. package/dist/registries/services.js.map +1 -0
  386. package/dist/registries/services.mjs +78 -0
  387. package/dist/registries/services.mjs.map +1 -0
  388. package/dist/registries/validators.js +26 -0
  389. package/dist/registries/validators.js.map +1 -0
  390. package/dist/registries/validators.mjs +24 -0
  391. package/dist/registries/validators.mjs.map +1 -0
  392. package/dist/services/auth/index.js +81 -0
  393. package/dist/services/auth/index.js.map +1 -0
  394. package/dist/services/auth/index.mjs +79 -0
  395. package/dist/services/auth/index.mjs.map +1 -0
  396. package/dist/services/config.js +51 -0
  397. package/dist/services/config.js.map +1 -0
  398. package/dist/services/config.mjs +49 -0
  399. package/dist/services/config.mjs.map +1 -0
  400. package/dist/services/content-api/index.d.ts +1 -1
  401. package/dist/services/content-api/index.d.ts.map +1 -1
  402. package/dist/services/content-api/index.js +86 -0
  403. package/dist/services/content-api/index.js.map +1 -0
  404. package/dist/services/content-api/index.mjs +84 -0
  405. package/dist/services/content-api/index.mjs.map +1 -0
  406. package/dist/services/content-api/permissions/engine.js +10 -0
  407. package/dist/services/content-api/permissions/engine.js.map +1 -0
  408. package/dist/services/content-api/permissions/engine.mjs +8 -0
  409. package/dist/services/content-api/permissions/engine.mjs.map +1 -0
  410. package/dist/services/content-api/permissions/index.js +107 -0
  411. package/dist/services/content-api/permissions/index.js.map +1 -0
  412. package/dist/services/content-api/permissions/index.mjs +105 -0
  413. package/dist/services/content-api/permissions/index.mjs.map +1 -0
  414. package/dist/services/content-api/permissions/providers/action.js +19 -0
  415. package/dist/services/content-api/permissions/providers/action.js.map +1 -0
  416. package/dist/services/content-api/permissions/providers/action.mjs +17 -0
  417. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -0
  418. package/dist/services/content-api/permissions/providers/condition.js +19 -0
  419. package/dist/services/content-api/permissions/providers/condition.js.map +1 -0
  420. package/dist/services/content-api/permissions/providers/condition.mjs +17 -0
  421. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -0
  422. package/dist/services/content-source-maps.d.ts +13 -0
  423. package/dist/services/content-source-maps.d.ts.map +1 -0
  424. package/dist/services/content-source-maps.js +108 -0
  425. package/dist/services/content-source-maps.js.map +1 -0
  426. package/dist/services/content-source-maps.mjs +106 -0
  427. package/dist/services/content-source-maps.mjs.map +1 -0
  428. package/dist/services/core-store.d.ts +2 -2
  429. package/dist/services/core-store.d.ts.map +1 -1
  430. package/dist/services/core-store.js +127 -0
  431. package/dist/services/core-store.js.map +1 -0
  432. package/dist/services/core-store.mjs +124 -0
  433. package/dist/services/core-store.mjs.map +1 -0
  434. package/dist/services/cron.js +77 -0
  435. package/dist/services/cron.js.map +1 -0
  436. package/dist/services/cron.mjs +75 -0
  437. package/dist/services/cron.mjs.map +1 -0
  438. package/dist/services/custom-fields.js +12 -0
  439. package/dist/services/custom-fields.js.map +1 -0
  440. package/dist/services/custom-fields.mjs +10 -0
  441. package/dist/services/custom-fields.mjs.map +1 -0
  442. package/dist/services/document-service/attributes/index.js +27 -0
  443. package/dist/services/document-service/attributes/index.js.map +1 -0
  444. package/dist/services/document-service/attributes/index.mjs +25 -0
  445. package/dist/services/document-service/attributes/index.mjs.map +1 -0
  446. package/dist/services/document-service/attributes/transforms.js +21 -0
  447. package/dist/services/document-service/attributes/transforms.js.map +1 -0
  448. package/dist/services/document-service/attributes/transforms.mjs +19 -0
  449. package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
  450. package/dist/services/document-service/common.js +8 -0
  451. package/dist/services/document-service/common.js.map +1 -0
  452. package/dist/services/document-service/common.mjs +6 -0
  453. package/dist/services/document-service/common.mjs.map +1 -0
  454. package/dist/services/document-service/components.d.ts +6 -1
  455. package/dist/services/document-service/components.d.ts.map +1 -1
  456. package/dist/services/document-service/components.js +383 -0
  457. package/dist/services/document-service/components.js.map +1 -0
  458. package/dist/services/document-service/components.mjs +374 -0
  459. package/dist/services/document-service/components.mjs.map +1 -0
  460. package/dist/services/document-service/draft-and-publish.js +109 -0
  461. package/dist/services/document-service/draft-and-publish.js.map +1 -0
  462. package/dist/services/document-service/draft-and-publish.mjs +102 -0
  463. package/dist/services/document-service/draft-and-publish.mjs.map +1 -0
  464. package/dist/services/document-service/entries.d.ts.map +1 -1
  465. package/dist/services/document-service/entries.js +155 -0
  466. package/dist/services/document-service/entries.js.map +1 -0
  467. package/dist/services/document-service/entries.mjs +153 -0
  468. package/dist/services/document-service/entries.mjs.map +1 -0
  469. package/dist/services/document-service/events.js +59 -0
  470. package/dist/services/document-service/events.js.map +1 -0
  471. package/dist/services/document-service/events.mjs +57 -0
  472. package/dist/services/document-service/events.mjs.map +1 -0
  473. package/dist/services/document-service/first-published-at.d.ts +7 -0
  474. package/dist/services/document-service/first-published-at.d.ts.map +1 -0
  475. package/dist/services/document-service/first-published-at.js +31 -0
  476. package/dist/services/document-service/first-published-at.js.map +1 -0
  477. package/dist/services/document-service/first-published-at.mjs +28 -0
  478. package/dist/services/document-service/first-published-at.mjs.map +1 -0
  479. package/dist/services/document-service/index.js +56 -0
  480. package/dist/services/document-service/index.js.map +1 -0
  481. package/dist/services/document-service/index.mjs +54 -0
  482. package/dist/services/document-service/index.mjs.map +1 -0
  483. package/dist/services/document-service/internationalization.d.ts +6 -1
  484. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  485. package/dist/services/document-service/internationalization.js +111 -0
  486. package/dist/services/document-service/internationalization.js.map +1 -0
  487. package/dist/services/document-service/internationalization.mjs +105 -0
  488. package/dist/services/document-service/internationalization.mjs.map +1 -0
  489. package/dist/services/document-service/middlewares/errors.js +29 -0
  490. package/dist/services/document-service/middlewares/errors.js.map +1 -0
  491. package/dist/services/document-service/middlewares/errors.mjs +27 -0
  492. package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
  493. package/dist/services/document-service/middlewares/middleware-manager.js +51 -0
  494. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
  495. package/dist/services/document-service/middlewares/middleware-manager.mjs +49 -0
  496. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
  497. package/dist/services/document-service/params.js +14 -0
  498. package/dist/services/document-service/params.js.map +1 -0
  499. package/dist/services/document-service/params.mjs +12 -0
  500. package/dist/services/document-service/params.mjs.map +1 -0
  501. package/dist/services/document-service/repository.d.ts.map +1 -1
  502. package/dist/services/document-service/repository.js +372 -0
  503. package/dist/services/document-service/repository.js.map +1 -0
  504. package/dist/services/document-service/repository.mjs +370 -0
  505. package/dist/services/document-service/repository.mjs.map +1 -0
  506. package/dist/services/document-service/transform/data.js +25 -0
  507. package/dist/services/document-service/transform/data.js.map +1 -0
  508. package/dist/services/document-service/transform/data.mjs +23 -0
  509. package/dist/services/document-service/transform/data.mjs.map +1 -0
  510. package/dist/services/document-service/transform/fields.js +33 -0
  511. package/dist/services/document-service/transform/fields.js.map +1 -0
  512. package/dist/services/document-service/transform/fields.mjs +31 -0
  513. package/dist/services/document-service/transform/fields.mjs.map +1 -0
  514. package/dist/services/document-service/transform/id-map.js +125 -0
  515. package/dist/services/document-service/transform/id-map.js.map +1 -0
  516. package/dist/services/document-service/transform/id-map.mjs +123 -0
  517. package/dist/services/document-service/transform/id-map.mjs.map +1 -0
  518. package/dist/services/document-service/transform/id-transform.js +41 -0
  519. package/dist/services/document-service/transform/id-transform.js.map +1 -0
  520. package/dist/services/document-service/transform/id-transform.mjs +39 -0
  521. package/dist/services/document-service/transform/id-transform.mjs.map +1 -0
  522. package/dist/services/document-service/transform/populate.js +26 -0
  523. package/dist/services/document-service/transform/populate.js.map +1 -0
  524. package/dist/services/document-service/transform/populate.mjs +24 -0
  525. package/dist/services/document-service/transform/populate.mjs.map +1 -0
  526. package/dist/services/document-service/transform/query.js +14 -0
  527. package/dist/services/document-service/transform/query.js.map +1 -0
  528. package/dist/services/document-service/transform/query.mjs +12 -0
  529. package/dist/services/document-service/transform/query.mjs.map +1 -0
  530. package/dist/services/document-service/transform/relations/extract/data-ids.js +80 -0
  531. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -0
  532. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +78 -0
  533. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -0
  534. package/dist/services/document-service/transform/relations/transform/data-ids.js +110 -0
  535. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -0
  536. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +108 -0
  537. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -0
  538. package/dist/services/document-service/transform/relations/transform/default-locale.js +50 -0
  539. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
  540. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +48 -0
  541. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
  542. package/dist/services/document-service/transform/relations/utils/dp.js +56 -0
  543. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -0
  544. package/dist/services/document-service/transform/relations/utils/dp.mjs +54 -0
  545. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -0
  546. package/dist/services/document-service/transform/relations/utils/i18n.js +27 -0
  547. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -0
  548. package/dist/services/document-service/transform/relations/utils/i18n.mjs +23 -0
  549. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -0
  550. package/dist/services/document-service/transform/relations/utils/map-relation.js +130 -0
  551. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
  552. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +127 -0
  553. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
  554. package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
  555. package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -0
  556. package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
  557. package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
  558. package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
  559. package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
  560. package/dist/services/document-service/utils/populate.js +71 -0
  561. package/dist/services/document-service/utils/populate.js.map +1 -0
  562. package/dist/services/document-service/utils/populate.mjs +69 -0
  563. package/dist/services/document-service/utils/populate.mjs.map +1 -0
  564. package/dist/services/document-service/utils/unidirectional-relations.d.ts +19 -2
  565. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -1
  566. package/dist/services/document-service/utils/unidirectional-relations.js +131 -0
  567. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
  568. package/dist/services/document-service/utils/unidirectional-relations.mjs +128 -0
  569. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
  570. package/dist/services/entity-service/index.js +238 -0
  571. package/dist/services/entity-service/index.js.map +1 -0
  572. package/dist/services/entity-service/index.mjs +236 -0
  573. package/dist/services/entity-service/index.mjs.map +1 -0
  574. package/dist/services/entity-validator/blocks-validator.js +160 -0
  575. package/dist/services/entity-validator/blocks-validator.js.map +1 -0
  576. package/dist/services/entity-validator/blocks-validator.mjs +158 -0
  577. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -0
  578. package/dist/services/entity-validator/index.d.ts.map +1 -1
  579. package/dist/services/entity-validator/index.js +393 -0
  580. package/dist/services/entity-validator/index.js.map +1 -0
  581. package/dist/services/entity-validator/index.mjs +391 -0
  582. package/dist/services/entity-validator/index.mjs.map +1 -0
  583. package/dist/services/entity-validator/validators.d.ts +1 -0
  584. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  585. package/dist/services/entity-validator/validators.js +302 -0
  586. package/dist/services/entity-validator/validators.js.map +1 -0
  587. package/dist/services/entity-validator/validators.mjs +293 -0
  588. package/dist/services/entity-validator/validators.mjs.map +1 -0
  589. package/dist/services/errors.js +76 -0
  590. package/dist/services/errors.js.map +1 -0
  591. package/dist/services/errors.mjs +72 -0
  592. package/dist/services/errors.mjs.map +1 -0
  593. package/dist/services/event-hub.js +85 -0
  594. package/dist/services/event-hub.js.map +1 -0
  595. package/dist/services/event-hub.mjs +83 -0
  596. package/dist/services/event-hub.mjs.map +1 -0
  597. package/dist/services/features.js +22 -0
  598. package/dist/services/features.js.map +1 -0
  599. package/dist/services/features.mjs +20 -0
  600. package/dist/services/features.mjs.map +1 -0
  601. package/dist/services/fs.js +52 -0
  602. package/dist/services/fs.js.map +1 -0
  603. package/dist/services/fs.mjs +50 -0
  604. package/dist/services/fs.mjs.map +1 -0
  605. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  606. package/dist/services/metrics/admin-user-hash.js +16 -0
  607. package/dist/services/metrics/admin-user-hash.js.map +1 -0
  608. package/dist/services/metrics/admin-user-hash.mjs +14 -0
  609. package/dist/services/metrics/admin-user-hash.mjs.map +1 -0
  610. package/dist/services/metrics/index.d.ts +1 -1
  611. package/dist/services/metrics/index.d.ts.map +1 -1
  612. package/dist/services/metrics/index.js +53 -0
  613. package/dist/services/metrics/index.js.map +1 -0
  614. package/dist/services/metrics/index.mjs +51 -0
  615. package/dist/services/metrics/index.mjs.map +1 -0
  616. package/dist/services/metrics/is-truthy.js +16 -0
  617. package/dist/services/metrics/is-truthy.js.map +1 -0
  618. package/dist/services/metrics/is-truthy.mjs +14 -0
  619. package/dist/services/metrics/is-truthy.mjs.map +1 -0
  620. package/dist/services/metrics/middleware.d.ts +2 -1
  621. package/dist/services/metrics/middleware.d.ts.map +1 -1
  622. package/dist/services/metrics/middleware.js +40 -0
  623. package/dist/services/metrics/middleware.js.map +1 -0
  624. package/dist/services/metrics/middleware.mjs +38 -0
  625. package/dist/services/metrics/middleware.mjs.map +1 -0
  626. package/dist/services/metrics/rate-limiter.js +26 -0
  627. package/dist/services/metrics/rate-limiter.js.map +1 -0
  628. package/dist/services/metrics/rate-limiter.mjs +24 -0
  629. package/dist/services/metrics/rate-limiter.mjs.map +1 -0
  630. package/dist/services/metrics/sender.d.ts.map +1 -1
  631. package/dist/services/metrics/sender.js +85 -0
  632. package/dist/services/metrics/sender.js.map +1 -0
  633. package/dist/services/metrics/sender.mjs +83 -0
  634. package/dist/services/metrics/sender.mjs.map +1 -0
  635. package/dist/services/query-params.js +15 -0
  636. package/dist/services/query-params.js.map +1 -0
  637. package/dist/services/query-params.mjs +13 -0
  638. package/dist/services/query-params.mjs.map +1 -0
  639. package/dist/services/reloader.js +39 -0
  640. package/dist/services/reloader.js.map +1 -0
  641. package/dist/services/reloader.mjs +37 -0
  642. package/dist/services/reloader.mjs.map +1 -0
  643. package/dist/services/request-context.js +16 -0
  644. package/dist/services/request-context.js.map +1 -0
  645. package/dist/services/request-context.mjs +14 -0
  646. package/dist/services/request-context.mjs.map +1 -0
  647. package/dist/services/server/admin-api.js +14 -0
  648. package/dist/services/server/admin-api.js.map +1 -0
  649. package/dist/services/server/admin-api.mjs +12 -0
  650. package/dist/services/server/admin-api.mjs.map +1 -0
  651. package/dist/services/server/api.js +36 -0
  652. package/dist/services/server/api.js.map +1 -0
  653. package/dist/services/server/api.mjs +34 -0
  654. package/dist/services/server/api.mjs.map +1 -0
  655. package/dist/services/server/compose-endpoint.js +128 -0
  656. package/dist/services/server/compose-endpoint.js.map +1 -0
  657. package/dist/services/server/compose-endpoint.mjs +126 -0
  658. package/dist/services/server/compose-endpoint.mjs.map +1 -0
  659. package/dist/services/server/content-api.js +14 -0
  660. package/dist/services/server/content-api.js.map +1 -0
  661. package/dist/services/server/content-api.mjs +12 -0
  662. package/dist/services/server/content-api.mjs.map +1 -0
  663. package/dist/services/server/http-server.js +54 -0
  664. package/dist/services/server/http-server.js.map +1 -0
  665. package/dist/services/server/http-server.mjs +52 -0
  666. package/dist/services/server/http-server.mjs.map +1 -0
  667. package/dist/services/server/index.js +90 -0
  668. package/dist/services/server/index.js.map +1 -0
  669. package/dist/services/server/index.mjs +88 -0
  670. package/dist/services/server/index.mjs.map +1 -0
  671. package/dist/services/server/koa.js +54 -0
  672. package/dist/services/server/koa.js.map +1 -0
  673. package/dist/services/server/koa.mjs +52 -0
  674. package/dist/services/server/koa.mjs.map +1 -0
  675. package/dist/services/server/middleware.js +96 -0
  676. package/dist/services/server/middleware.js.map +1 -0
  677. package/dist/services/server/middleware.mjs +93 -0
  678. package/dist/services/server/middleware.mjs.map +1 -0
  679. package/dist/services/server/policy.js +27 -0
  680. package/dist/services/server/policy.js.map +1 -0
  681. package/dist/services/server/policy.mjs +25 -0
  682. package/dist/services/server/policy.mjs.map +1 -0
  683. package/dist/services/server/register-middlewares.js +79 -0
  684. package/dist/services/server/register-middlewares.js.map +1 -0
  685. package/dist/services/server/register-middlewares.mjs +77 -0
  686. package/dist/services/server/register-middlewares.mjs.map +1 -0
  687. package/dist/services/server/register-routes.js +119 -0
  688. package/dist/services/server/register-routes.js.map +1 -0
  689. package/dist/services/server/register-routes.mjs +117 -0
  690. package/dist/services/server/register-routes.mjs.map +1 -0
  691. package/dist/services/server/routing.d.ts +10 -0
  692. package/dist/services/server/routing.d.ts.map +1 -1
  693. package/dist/services/server/routing.js +110 -0
  694. package/dist/services/server/routing.js.map +1 -0
  695. package/dist/services/server/routing.mjs +107 -0
  696. package/dist/services/server/routing.mjs.map +1 -0
  697. package/dist/services/utils/conditional-fields.d.ts +3 -0
  698. package/dist/services/utils/conditional-fields.d.ts.map +1 -0
  699. package/dist/services/utils/conditional-fields.js +22 -0
  700. package/dist/services/utils/conditional-fields.js.map +1 -0
  701. package/dist/services/utils/conditional-fields.mjs +20 -0
  702. package/dist/services/utils/conditional-fields.mjs.map +1 -0
  703. package/dist/services/utils/dynamic-zones.js +16 -0
  704. package/dist/services/utils/dynamic-zones.js.map +1 -0
  705. package/dist/services/utils/dynamic-zones.mjs +14 -0
  706. package/dist/services/utils/dynamic-zones.mjs.map +1 -0
  707. package/dist/services/webhook-runner.js +135 -0
  708. package/dist/services/webhook-runner.js.map +1 -0
  709. package/dist/services/webhook-runner.mjs +133 -0
  710. package/dist/services/webhook-runner.mjs.map +1 -0
  711. package/dist/services/webhook-store.js +143 -0
  712. package/dist/services/webhook-store.js.map +1 -0
  713. package/dist/services/webhook-store.mjs +140 -0
  714. package/dist/services/webhook-store.mjs.map +1 -0
  715. package/dist/services/worker-queue.js +51 -0
  716. package/dist/services/worker-queue.js.map +1 -0
  717. package/dist/services/worker-queue.mjs +49 -0
  718. package/dist/services/worker-queue.mjs.map +1 -0
  719. package/dist/utils/convert-custom-field-type.js +21 -0
  720. package/dist/utils/convert-custom-field-type.js.map +1 -0
  721. package/dist/utils/convert-custom-field-type.mjs +19 -0
  722. package/dist/utils/convert-custom-field-type.mjs.map +1 -0
  723. package/dist/utils/cron.js +72 -0
  724. package/dist/utils/cron.js.map +1 -0
  725. package/dist/utils/cron.mjs +70 -0
  726. package/dist/utils/cron.mjs.map +1 -0
  727. package/dist/utils/fetch.d.ts +5 -1
  728. package/dist/utils/fetch.d.ts.map +1 -1
  729. package/dist/utils/fetch.js +31 -0
  730. package/dist/utils/fetch.js.map +1 -0
  731. package/dist/utils/fetch.mjs +29 -0
  732. package/dist/utils/fetch.mjs.map +1 -0
  733. package/dist/utils/filepath-to-prop-path.js +25 -0
  734. package/dist/utils/filepath-to-prop-path.js.map +1 -0
  735. package/dist/utils/filepath-to-prop-path.mjs +23 -0
  736. package/dist/utils/filepath-to-prop-path.mjs.map +1 -0
  737. package/dist/utils/is-initialized.js +25 -0
  738. package/dist/utils/is-initialized.js.map +1 -0
  739. package/dist/utils/is-initialized.mjs +23 -0
  740. package/dist/utils/is-initialized.mjs.map +1 -0
  741. package/dist/utils/lifecycles.js +10 -0
  742. package/dist/utils/lifecycles.js.map +1 -0
  743. package/dist/utils/lifecycles.mjs +8 -0
  744. package/dist/utils/lifecycles.mjs.map +1 -0
  745. package/dist/utils/load-config-file.js +47 -0
  746. package/dist/utils/load-config-file.js.map +1 -0
  747. package/dist/utils/load-config-file.mjs +45 -0
  748. package/dist/utils/load-config-file.mjs.map +1 -0
  749. package/dist/utils/load-files.js +44 -0
  750. package/dist/utils/load-files.js.map +1 -0
  751. package/dist/utils/load-files.mjs +42 -0
  752. package/dist/utils/load-files.mjs.map +1 -0
  753. package/dist/utils/open-browser.js +11 -0
  754. package/dist/utils/open-browser.js.map +1 -0
  755. package/dist/utils/open-browser.mjs +9 -0
  756. package/dist/utils/open-browser.mjs.map +1 -0
  757. package/dist/utils/resolve-working-dirs.js +26 -0
  758. package/dist/utils/resolve-working-dirs.js.map +1 -0
  759. package/dist/utils/resolve-working-dirs.mjs +24 -0
  760. package/dist/utils/resolve-working-dirs.mjs.map +1 -0
  761. package/dist/utils/signals.js +23 -0
  762. package/dist/utils/signals.js.map +1 -0
  763. package/dist/utils/signals.mjs +21 -0
  764. package/dist/utils/signals.mjs.map +1 -0
  765. package/dist/utils/startup-logger.js +110 -0
  766. package/dist/utils/startup-logger.js.map +1 -0
  767. package/dist/utils/startup-logger.mjs +108 -0
  768. package/dist/utils/startup-logger.mjs.map +1 -0
  769. package/dist/utils/transform-content-types-to-models.d.ts +197 -0
  770. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  771. package/dist/utils/transform-content-types-to-models.js +377 -0
  772. package/dist/utils/transform-content-types-to-models.js.map +1 -0
  773. package/dist/utils/transform-content-types-to-models.mjs +365 -0
  774. package/dist/utils/transform-content-types-to-models.mjs.map +1 -0
  775. package/dist/utils/update-notifier/index.js +80 -0
  776. package/dist/utils/update-notifier/index.js.map +1 -0
  777. package/dist/utils/update-notifier/index.mjs +78 -0
  778. package/dist/utils/update-notifier/index.mjs.map +1 -0
  779. package/package.json +18 -14
@@ -0,0 +1,374 @@
1
+ import _ from 'lodash';
2
+ import { curry, omit, pipe, assign, has } from 'lodash/fp';
3
+ import { contentTypes, async, errors } from '@strapi/utils';
4
+ import { getComponentJoinTableName, getComponentJoinColumnEntityName, getComponentJoinColumnInverseName, getComponentTypeColumn } from '../../utils/transform-content-types-to-models.mjs';
5
+
6
+ const omitComponentData = curry((schema, data)=>{
7
+ const { attributes } = schema;
8
+ const componentAttributes = Object.keys(attributes).filter((attributeName)=>contentTypes.isComponentAttribute(attributes[attributeName]));
9
+ return omit(componentAttributes, data);
10
+ });
11
+ // NOTE: we could generalize the logic to allow CRUD of relation directly in the DB layer
12
+ const createComponents = async (uid, data)=>{
13
+ const { attributes = {} } = strapi.getModel(uid);
14
+ const componentBody = {};
15
+ const attributeNames = Object.keys(attributes);
16
+ for (const attributeName of attributeNames){
17
+ const attribute = attributes[attributeName];
18
+ if (!has(attributeName, data) || !contentTypes.isComponentAttribute(attribute)) {
19
+ continue;
20
+ }
21
+ if (attribute.type === 'component') {
22
+ const { component: componentUID, repeatable = false } = attribute;
23
+ const componentValue = data[attributeName];
24
+ if (componentValue === null) {
25
+ continue;
26
+ }
27
+ if (repeatable === true) {
28
+ if (!Array.isArray(componentValue)) {
29
+ throw new Error('Expected an array to create repeatable component');
30
+ }
31
+ const components = await async.map(componentValue, (value)=>createComponent(componentUID, value));
32
+ componentBody[attributeName] = components.map(({ id })=>{
33
+ return {
34
+ id,
35
+ __pivot: {
36
+ field: attributeName,
37
+ component_type: componentUID
38
+ }
39
+ };
40
+ });
41
+ } else {
42
+ const component = await createComponent(componentUID, componentValue);
43
+ componentBody[attributeName] = {
44
+ id: component.id,
45
+ __pivot: {
46
+ field: attributeName,
47
+ component_type: componentUID
48
+ }
49
+ };
50
+ }
51
+ continue;
52
+ }
53
+ if (attribute.type === 'dynamiczone') {
54
+ const dynamiczoneValues = data[attributeName];
55
+ if (!Array.isArray(dynamiczoneValues)) {
56
+ throw new Error('Expected an array to create repeatable component');
57
+ }
58
+ const createDynamicZoneComponents = async (value)=>{
59
+ const { id } = await createComponent(value.__component, value);
60
+ return {
61
+ id,
62
+ __component: value.__component,
63
+ __pivot: {
64
+ field: attributeName
65
+ }
66
+ };
67
+ };
68
+ // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1
69
+ componentBody[attributeName] = await async.map(dynamiczoneValues, createDynamicZoneComponents);
70
+ continue;
71
+ }
72
+ }
73
+ return componentBody;
74
+ };
75
+ const getComponents = async (uid, entity)=>{
76
+ const componentAttributes = contentTypes.getComponentAttributes(strapi.getModel(uid));
77
+ if (_.isEmpty(componentAttributes)) {
78
+ return {};
79
+ }
80
+ return strapi.db.query(uid).load(entity, componentAttributes);
81
+ };
82
+ /*
83
+ delete old components
84
+ create or update
85
+ */ const updateComponents = async (uid, entityToUpdate, data)=>{
86
+ const { attributes = {} } = strapi.getModel(uid);
87
+ const componentBody = {};
88
+ for (const attributeName of Object.keys(attributes)){
89
+ const attribute = attributes[attributeName];
90
+ if (!has(attributeName, data)) {
91
+ continue;
92
+ }
93
+ if (attribute.type === 'component') {
94
+ const { component: componentUID, repeatable = false } = attribute;
95
+ const componentValue = data[attributeName];
96
+ await deleteOldComponents(uid, componentUID, entityToUpdate, attributeName, componentValue);
97
+ if (repeatable === true) {
98
+ if (!Array.isArray(componentValue)) {
99
+ throw new Error('Expected an array to create repeatable component');
100
+ }
101
+ // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1
102
+ const components = await async.map(componentValue, (value)=>updateOrCreateComponent(componentUID, value));
103
+ componentBody[attributeName] = components.filter(_.negate(_.isNil)).map(({ id })=>{
104
+ return {
105
+ id,
106
+ __pivot: {
107
+ field: attributeName,
108
+ component_type: componentUID
109
+ }
110
+ };
111
+ });
112
+ } else {
113
+ const component = await updateOrCreateComponent(componentUID, componentValue);
114
+ componentBody[attributeName] = component && {
115
+ id: component.id,
116
+ __pivot: {
117
+ field: attributeName,
118
+ component_type: componentUID
119
+ }
120
+ };
121
+ }
122
+ } else if (attribute.type === 'dynamiczone') {
123
+ const dynamiczoneValues = data[attributeName];
124
+ await deleteOldDZComponents(uid, entityToUpdate, attributeName, dynamiczoneValues);
125
+ if (!Array.isArray(dynamiczoneValues)) {
126
+ throw new Error('Expected an array to create repeatable component');
127
+ }
128
+ // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1
129
+ componentBody[attributeName] = await async.map(dynamiczoneValues, async (value)=>{
130
+ const { id } = await updateOrCreateComponent(value.__component, value);
131
+ return {
132
+ id,
133
+ __component: value.__component,
134
+ __pivot: {
135
+ field: attributeName
136
+ }
137
+ };
138
+ });
139
+ }
140
+ }
141
+ return componentBody;
142
+ };
143
+ const pickStringifiedId = ({ id })=>{
144
+ if (typeof id === 'string') {
145
+ return id;
146
+ }
147
+ return `${id}`;
148
+ };
149
+ const deleteOldComponents = async (uid, componentUID, entityToUpdate, attributeName, componentValue)=>{
150
+ const previousValue = await strapi.db.query(uid).load(entityToUpdate, attributeName);
151
+ const idsToKeep = _.castArray(componentValue).filter(has('id')).map(pickStringifiedId);
152
+ const allIds = _.castArray(previousValue).filter(has('id')).map(pickStringifiedId);
153
+ idsToKeep.forEach((id)=>{
154
+ if (!allIds.includes(id)) {
155
+ throw new errors.ApplicationError(`Some of the provided components in ${attributeName} are not related to the entity`);
156
+ }
157
+ });
158
+ const idsToDelete = _.difference(allIds, idsToKeep);
159
+ if (idsToDelete.length > 0) {
160
+ for (const idToDelete of idsToDelete){
161
+ await deleteComponent(componentUID, {
162
+ id: idToDelete
163
+ });
164
+ }
165
+ }
166
+ };
167
+ const deleteOldDZComponents = async (uid, entityToUpdate, attributeName, dynamiczoneValues)=>{
168
+ const previousValue = await strapi.db.query(uid).load(entityToUpdate, attributeName);
169
+ const idsToKeep = _.castArray(dynamiczoneValues).filter(has('id')).map((v)=>({
170
+ id: pickStringifiedId(v),
171
+ __component: v.__component
172
+ }));
173
+ const allIds = _.castArray(previousValue).filter(has('id')).map((v)=>({
174
+ id: pickStringifiedId(v),
175
+ __component: v.__component
176
+ }));
177
+ idsToKeep.forEach(({ id, __component })=>{
178
+ if (!allIds.find((el)=>el.id === id && el.__component === __component)) {
179
+ const err = new Error(`Some of the provided components in ${attributeName} are not related to the entity`);
180
+ Object.assign(err, {
181
+ status: 400
182
+ });
183
+ throw err;
184
+ }
185
+ });
186
+ const idsToDelete = allIds.reduce((acc, { id, __component })=>{
187
+ if (!idsToKeep.find((el)=>el.id === id && el.__component === __component)) {
188
+ acc.push({
189
+ id,
190
+ __component
191
+ });
192
+ }
193
+ return acc;
194
+ }, []);
195
+ if (idsToDelete.length > 0) {
196
+ for (const idToDelete of idsToDelete){
197
+ const { id, __component } = idToDelete;
198
+ await deleteComponent(__component, {
199
+ id
200
+ });
201
+ }
202
+ }
203
+ };
204
+ const deleteComponents = async (uid, entityToDelete, { loadComponents = true } = {})=>{
205
+ const { attributes = {} } = strapi.getModel(uid);
206
+ const attributeNames = Object.keys(attributes);
207
+ for (const attributeName of attributeNames){
208
+ const attribute = attributes[attributeName];
209
+ if (attribute.type === 'component' || attribute.type === 'dynamiczone') {
210
+ let value;
211
+ if (loadComponents) {
212
+ value = await strapi.db.query(uid).load(entityToDelete, attributeName);
213
+ } else {
214
+ value = entityToDelete[attributeName];
215
+ }
216
+ if (!value) {
217
+ continue;
218
+ }
219
+ if (attribute.type === 'component') {
220
+ const { component: componentUID } = attribute;
221
+ await async.map(_.castArray(value), (subValue)=>deleteComponent(componentUID, subValue));
222
+ } else {
223
+ await async.map(_.castArray(value), (subValue)=>deleteComponent(subValue.__component, subValue));
224
+ }
225
+ continue;
226
+ }
227
+ }
228
+ };
229
+ /** *************************
230
+ Component queries
231
+ ************************** */ // components can have nested compos so this must be recursive
232
+ const createComponent = async (uid, data)=>{
233
+ const schema = strapi.getModel(uid);
234
+ const componentData = await createComponents(uid, data);
235
+ const transform = pipe(// Make sure we don't save the component with a pre-defined ID
236
+ omit('id'), assignComponentData(schema, componentData));
237
+ return strapi.db.query(uid).create({
238
+ data: transform(data)
239
+ });
240
+ };
241
+ // components can have nested compos so this must be recursive
242
+ const updateComponent = async (uid, componentToUpdate, data)=>{
243
+ const schema = strapi.getModel(uid);
244
+ const componentData = await updateComponents(uid, componentToUpdate, data);
245
+ return strapi.db.query(uid).update({
246
+ where: {
247
+ id: componentToUpdate.id
248
+ },
249
+ data: assignComponentData(schema, componentData, data)
250
+ });
251
+ };
252
+ const updateOrCreateComponent = (componentUID, value)=>{
253
+ if (value === null) {
254
+ return null;
255
+ }
256
+ // update
257
+ if ('id' in value && typeof value.id !== 'undefined') {
258
+ // TODO: verify the compo is associated with the entity
259
+ return updateComponent(componentUID, {
260
+ id: value.id
261
+ }, value);
262
+ }
263
+ // create
264
+ return createComponent(componentUID, value);
265
+ };
266
+ const deleteComponent = async (uid, componentToDelete)=>{
267
+ await deleteComponents(uid, componentToDelete);
268
+ await strapi.db.query(uid).delete({
269
+ where: {
270
+ id: componentToDelete.id
271
+ }
272
+ });
273
+ };
274
+ const assignComponentData = curry((schema, componentData, data)=>{
275
+ return pipe(omitComponentData(schema), assign(componentData))(data);
276
+ });
277
+ /** *************************
278
+ Component relation handling for document operations
279
+ ************************** */ /**
280
+ * Find the parent entry of a component instance.
281
+ *
282
+ * Given a component model, a specific component instance id, and the list of
283
+ * possible parent content types (those that can embed this component),
284
+ * this function checks each parent's *_cmps join table to see if the component
285
+ * instance is linked to a parent entity.
286
+ *
287
+ * - Returns the parent uid, parent table name, and parent id if found.
288
+ * - Returns null if no parent relationship exists.
289
+ */ const findComponentParent = async (componentSchema, componentId, parentSchemasForComponent, opts)=>{
290
+ if (!componentSchema?.uid) return null;
291
+ const schemaBuilder = strapi.db.getSchemaConnection(opts?.trx);
292
+ const withTrx = (qb)=>opts?.trx ? qb.transacting(opts.trx) : qb;
293
+ for (const parent of parentSchemasForComponent){
294
+ if (!parent.collectionName) continue;
295
+ // Use the exact same functions that create the tables
296
+ const identifiers = strapi.db.metadata.identifiers;
297
+ const joinTableName = getComponentJoinTableName(parent.collectionName, identifiers);
298
+ try {
299
+ const tableExists = await schemaBuilder.hasTable(joinTableName);
300
+ if (!tableExists) continue;
301
+ // Use the exact same functions that create the columns
302
+ const entityIdColumn = getComponentJoinColumnEntityName(identifiers);
303
+ const componentIdColumn = getComponentJoinColumnInverseName(identifiers);
304
+ const componentTypeColumn = getComponentTypeColumn(identifiers);
305
+ const parentRow = await withTrx(strapi.db.getConnection(joinTableName)).where({
306
+ [componentIdColumn]: componentId,
307
+ [componentTypeColumn]: componentSchema.uid
308
+ }).first(entityIdColumn);
309
+ if (parentRow) {
310
+ return {
311
+ uid: parent.uid,
312
+ table: parent.collectionName,
313
+ parentId: parentRow[entityIdColumn]
314
+ };
315
+ }
316
+ } catch {
317
+ continue;
318
+ }
319
+ }
320
+ return null;
321
+ };
322
+ /**
323
+ * Finds content types that contain the given component and have draft & publish enabled.
324
+ */ const getParentSchemasForComponent = (componentSchema)=>{
325
+ return Object.values(strapi.contentTypes).filter((contentType)=>{
326
+ if (!contentType.options?.draftAndPublish) return false;
327
+ return Object.values(contentType.attributes).some((attr)=>{
328
+ return attr.type === 'component' && attr.component === componentSchema.uid || attr.type === 'dynamiczone' && attr.components?.includes(componentSchema.uid);
329
+ });
330
+ });
331
+ };
332
+ /**
333
+ * Determines if a component relation should be propagated to a new document version
334
+ * when a document with draft and publish is updated.
335
+ */ const shouldPropagateComponentRelationToNewVersion = async (componentRelation, componentSchema, parentSchemasForComponent, trx)=>{
336
+ // Get the component ID column name using the actual component model name
337
+ const componentIdColumn = strapi.db.metadata.identifiers.getJoinColumnAttributeIdName(_.snakeCase(componentSchema.modelName));
338
+ const componentId = componentRelation[componentIdColumn];
339
+ const parent = await findComponentParent(componentSchema, componentId, parentSchemasForComponent, {
340
+ trx
341
+ });
342
+ // Keep relation if component has no parent entry
343
+ if (!parent?.uid) {
344
+ return true;
345
+ }
346
+ const parentContentType = strapi.contentTypes[parent.uid];
347
+ // Keep relation if parent doesn't have draft & publish enabled
348
+ if (!parentContentType?.options?.draftAndPublish) {
349
+ return true;
350
+ }
351
+ // Discard relation if parent has draft & publish enabled
352
+ return false;
353
+ };
354
+ /**
355
+ * Creates a filter function for component relations that can be passed to the generic
356
+ * unidirectional relations utility
357
+ */ const createComponentRelationFilter = ()=>{
358
+ return async (relation, model, trx)=>{
359
+ // Only apply component-specific filtering for components
360
+ if (model.modelType !== 'component') {
361
+ return true;
362
+ }
363
+ const componentSchema = model;
364
+ const parentSchemas = getParentSchemasForComponent(componentSchema);
365
+ // Exit if no draft & publish parent types exist
366
+ if (parentSchemas.length === 0) {
367
+ return true;
368
+ }
369
+ return shouldPropagateComponentRelationToNewVersion(relation, componentSchema, parentSchemas, trx);
370
+ };
371
+ };
372
+
373
+ export { assignComponentData, createComponentRelationFilter, createComponents, deleteComponent, deleteComponents, getComponents, omitComponentData, updateComponents };
374
+ //# sourceMappingURL=components.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.mjs","sources":["../../../src/services/document-service/components.ts"],"sourcesContent":["import _ from 'lodash';\nimport { has, omit, pipe, assign, curry } from 'lodash/fp';\nimport type { Utils, UID, Schema, Data, Modules } from '@strapi/types';\nimport { contentTypes as contentTypesUtils, async, errors } from '@strapi/utils';\nimport {\n getComponentJoinTableName,\n getComponentJoinColumnEntityName,\n getComponentJoinColumnInverseName,\n getComponentTypeColumn,\n} from '../../utils/transform-content-types-to-models';\n\n// type aliases for readability\ntype Input<T extends UID.Schema> = Modules.Documents.Params.Data.Input<T>;\n\ntype LoadedComponents<TUID extends UID.Schema> = Data.Entity<\n TUID,\n Schema.AttributeNamesByType<TUID, 'component' | 'dynamiczone'>\n>;\n\ntype SingleComponentValue = Schema.Attribute.ComponentValue<UID.Component, false>;\ntype RepeatableComponentValue = Schema.Attribute.ComponentValue<UID.Component, true>;\n\ntype ComponentValue = SingleComponentValue | RepeatableComponentValue;\n\ntype DynamicZoneValue = Schema.Attribute.DynamicZoneValue<UID.Component[]>;\n\ntype ComponentBody = {\n [key: string]: ComponentValue | DynamicZoneValue;\n};\n\nconst omitComponentData = curry(\n (schema: Schema.Schema, data: Input<UID.Schema>): Partial<Input<UID.Schema>> => {\n const { attributes } = schema;\n const componentAttributes = Object.keys(attributes).filter((attributeName) =>\n contentTypesUtils.isComponentAttribute(attributes[attributeName])\n );\n\n return omit(componentAttributes, data);\n }\n);\n\n// NOTE: we could generalize the logic to allow CRUD of relation directly in the DB layer\nconst createComponents = async <TUID extends UID.Schema, TData extends Input<TUID>>(\n uid: TUID,\n data: TData\n) => {\n const { attributes = {} } = strapi.getModel(uid);\n\n const componentBody: ComponentBody = {};\n\n const attributeNames = Object.keys(attributes);\n\n for (const attributeName of attributeNames) {\n const attribute = attributes[attributeName];\n\n if (!has(attributeName, data) || !contentTypesUtils.isComponentAttribute(attribute)) {\n continue;\n }\n\n if (attribute.type === 'component') {\n const { component: componentUID, repeatable = false } = attribute;\n\n const componentValue = data[attributeName as keyof TData];\n\n if (componentValue === null) {\n continue;\n }\n\n if (repeatable === true) {\n if (!Array.isArray(componentValue)) {\n throw new Error('Expected an array to create repeatable component');\n }\n\n const components: RepeatableComponentValue = await async.map(componentValue, (value: any) =>\n createComponent(componentUID, value)\n );\n\n componentBody[attributeName] = components.map(({ id }) => {\n return {\n id,\n __pivot: {\n field: attributeName,\n component_type: componentUID,\n },\n };\n });\n } else {\n const component = await createComponent(\n componentUID,\n componentValue as Input<UID.Component>\n );\n\n componentBody[attributeName] = {\n id: component.id,\n __pivot: {\n field: attributeName,\n component_type: componentUID,\n },\n };\n }\n\n continue;\n }\n\n if (attribute.type === 'dynamiczone') {\n const dynamiczoneValues = data[\n attributeName as keyof TData\n ] as Modules.EntityService.Params.Attribute.GetValue<Schema.Attribute.DynamicZone>;\n\n if (!Array.isArray(dynamiczoneValues)) {\n throw new Error('Expected an array to create repeatable component');\n }\n\n const createDynamicZoneComponents = async (\n value: Utils.Array.Values<typeof dynamiczoneValues>\n ) => {\n const { id } = await createComponent(value.__component, value);\n return {\n id,\n __component: value.__component,\n __pivot: {\n field: attributeName,\n },\n };\n };\n\n // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1\n componentBody[attributeName] = await async.map(\n dynamiczoneValues,\n createDynamicZoneComponents\n );\n\n continue;\n }\n }\n\n return componentBody;\n};\n\nconst getComponents = async <TUID extends UID.Schema>(\n uid: TUID,\n entity: { id: Modules.EntityService.Params.Attribute.ID }\n): Promise<LoadedComponents<TUID>> => {\n const componentAttributes = contentTypesUtils.getComponentAttributes(strapi.getModel(uid));\n\n if (_.isEmpty(componentAttributes)) {\n return {} as LoadedComponents<TUID>;\n }\n\n return strapi.db.query(uid).load(entity, componentAttributes) as Promise<LoadedComponents<TUID>>;\n};\n\n/*\n delete old components\n create or update\n*/\nconst updateComponents = async <TUID extends UID.Schema, TData extends Partial<Input<TUID>>>(\n uid: TUID,\n entityToUpdate: { id: Modules.EntityService.Params.Attribute.ID },\n data: TData\n) => {\n const { attributes = {} } = strapi.getModel(uid);\n\n const componentBody: ComponentBody = {};\n\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n\n if (!has(attributeName, data)) {\n continue;\n }\n\n if (attribute.type === 'component') {\n const { component: componentUID, repeatable = false } = attribute;\n\n const componentValue = data[attributeName as keyof TData] as ComponentValue;\n await deleteOldComponents(uid, componentUID, entityToUpdate, attributeName, componentValue);\n\n if (repeatable === true) {\n if (!Array.isArray(componentValue)) {\n throw new Error('Expected an array to create repeatable component');\n }\n\n // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1\n const components: RepeatableComponentValue = await async.map(componentValue, (value: any) =>\n updateOrCreateComponent(componentUID, value)\n );\n\n componentBody[attributeName] = components.filter(_.negate(_.isNil)).map(({ id }) => {\n return {\n id,\n __pivot: {\n field: attributeName,\n component_type: componentUID,\n },\n };\n });\n } else {\n const component = await updateOrCreateComponent(componentUID, componentValue);\n componentBody[attributeName] = component && {\n id: component.id,\n __pivot: {\n field: attributeName,\n component_type: componentUID,\n },\n };\n }\n } else if (attribute.type === 'dynamiczone') {\n const dynamiczoneValues = data[attributeName as keyof TData] as DynamicZoneValue;\n\n await deleteOldDZComponents(uid, entityToUpdate, attributeName, dynamiczoneValues);\n\n if (!Array.isArray(dynamiczoneValues)) {\n throw new Error('Expected an array to create repeatable component');\n }\n\n // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1\n componentBody[attributeName] = await async.map(dynamiczoneValues, async (value: any) => {\n const { id } = await updateOrCreateComponent(value.__component, value);\n\n return {\n id,\n __component: value.__component,\n __pivot: {\n field: attributeName,\n },\n };\n });\n }\n }\n\n return componentBody;\n};\n\nconst pickStringifiedId = ({\n id,\n}: {\n id: Modules.EntityService.Params.Attribute.ID;\n}): Modules.EntityService.Params.Attribute.ID & string => {\n if (typeof id === 'string') {\n return id;\n }\n\n return `${id}`;\n};\n\nconst deleteOldComponents = async <TUID extends UID.Schema>(\n uid: TUID,\n componentUID: UID.Component,\n entityToUpdate: { id: Modules.EntityService.Params.Attribute.ID },\n attributeName: string,\n componentValue: ComponentValue\n) => {\n const previousValue = (await strapi.db\n .query(uid)\n .load(entityToUpdate, attributeName)) as ComponentValue;\n const idsToKeep = _.castArray(componentValue).filter(has('id')).map(pickStringifiedId);\n const allIds = _.castArray(previousValue).filter(has('id')).map(pickStringifiedId);\n\n idsToKeep.forEach((id) => {\n if (!allIds.includes(id)) {\n throw new errors.ApplicationError(\n `Some of the provided components in ${attributeName} are not related to the entity`\n );\n }\n });\n\n const idsToDelete = _.difference(allIds, idsToKeep);\n\n if (idsToDelete.length > 0) {\n for (const idToDelete of idsToDelete) {\n await deleteComponent(componentUID, { id: idToDelete });\n }\n }\n};\n\nconst deleteOldDZComponents = async <TUID extends UID.Schema>(\n uid: TUID,\n entityToUpdate: { id: Modules.EntityService.Params.Attribute.ID },\n attributeName: string,\n dynamiczoneValues: DynamicZoneValue\n) => {\n const previousValue = (await strapi.db\n .query(uid)\n .load(entityToUpdate, attributeName)) as DynamicZoneValue;\n\n const idsToKeep = _.castArray(dynamiczoneValues)\n .filter(has('id'))\n .map((v) => ({\n id: pickStringifiedId(v),\n __component: v.__component,\n }));\n\n const allIds = _.castArray(previousValue)\n .filter(has('id'))\n .map((v) => ({\n id: pickStringifiedId(v),\n __component: v.__component,\n }));\n\n idsToKeep.forEach(({ id, __component }) => {\n if (!allIds.find((el) => el.id === id && el.__component === __component)) {\n const err = new Error(\n `Some of the provided components in ${attributeName} are not related to the entity`\n );\n\n Object.assign(err, { status: 400 });\n throw err;\n }\n });\n\n type IdsToDelete = DynamicZoneValue;\n\n const idsToDelete = allIds.reduce((acc, { id, __component }) => {\n if (!idsToKeep.find((el) => el.id === id && el.__component === __component)) {\n acc.push({ id, __component });\n }\n\n return acc;\n }, [] as IdsToDelete);\n\n if (idsToDelete.length > 0) {\n for (const idToDelete of idsToDelete) {\n const { id, __component } = idToDelete;\n await deleteComponent(__component, { id });\n }\n }\n};\n\nconst deleteComponents = async <TUID extends UID.Schema, TEntity extends Data.Entity<TUID>>(\n uid: TUID,\n entityToDelete: TEntity,\n { loadComponents = true } = {}\n) => {\n const { attributes = {} } = strapi.getModel(uid);\n\n const attributeNames = Object.keys(attributes);\n\n for (const attributeName of attributeNames) {\n const attribute = attributes[attributeName];\n\n if (attribute.type === 'component' || attribute.type === 'dynamiczone') {\n let value;\n\n if (loadComponents) {\n value = await strapi.db.query(uid).load(entityToDelete, attributeName);\n } else {\n value = entityToDelete[attributeName as keyof TEntity];\n }\n\n if (!value) {\n continue;\n }\n\n if (attribute.type === 'component') {\n const { component: componentUID } = attribute;\n await async.map(_.castArray(value), (subValue: any) =>\n deleteComponent(componentUID, subValue)\n );\n } else {\n await async.map(_.castArray(value), (subValue: any) =>\n deleteComponent(subValue.__component, subValue)\n );\n }\n\n continue;\n }\n }\n};\n\n/** *************************\n Component queries\n************************** */\n\n// components can have nested compos so this must be recursive\nconst createComponent = async <TUID extends UID.Component>(uid: TUID, data: Input<TUID>) => {\n const schema = strapi.getModel(uid);\n\n const componentData = await createComponents(uid, data);\n\n const transform = pipe(\n // Make sure we don't save the component with a pre-defined ID\n omit('id'),\n assignComponentData(schema, componentData)\n );\n\n return strapi.db.query(uid).create({ data: transform(data) });\n};\n\n// components can have nested compos so this must be recursive\nconst updateComponent = async <TUID extends UID.Component>(\n uid: TUID,\n componentToUpdate: { id: Modules.EntityService.Params.Attribute.ID },\n data: Input<TUID>\n) => {\n const schema = strapi.getModel(uid);\n\n const componentData = await updateComponents(uid, componentToUpdate, data);\n\n return strapi.db.query(uid).update({\n where: {\n id: componentToUpdate.id,\n },\n data: assignComponentData(schema, componentData, data),\n });\n};\n\nconst updateOrCreateComponent = <TUID extends UID.Component>(\n componentUID: TUID,\n value: Input<TUID>\n) => {\n if (value === null) {\n return null;\n }\n\n // update\n if ('id' in value && typeof value.id !== 'undefined') {\n // TODO: verify the compo is associated with the entity\n return updateComponent(componentUID, { id: value.id }, value);\n }\n\n // create\n return createComponent(componentUID, value);\n};\n\nconst deleteComponent = async <TUID extends UID.Component>(\n uid: TUID,\n componentToDelete: Data.Component<TUID>\n) => {\n await deleteComponents(uid, componentToDelete);\n await strapi.db.query(uid).delete({ where: { id: componentToDelete.id } });\n};\n\nconst assignComponentData = curry(\n (schema: Schema.Schema, componentData: ComponentBody, data: Input<UID.Schema>) => {\n return pipe(omitComponentData(schema), assign(componentData))(data);\n }\n);\n\n/** *************************\n Component relation handling for document operations\n************************** */\n\n/**\n * Find the parent entry of a component instance.\n *\n * Given a component model, a specific component instance id, and the list of\n * possible parent content types (those that can embed this component),\n * this function checks each parent's *_cmps join table to see if the component\n * instance is linked to a parent entity.\n *\n * - Returns the parent uid, parent table name, and parent id if found.\n * - Returns null if no parent relationship exists.\n */\nconst findComponentParent = async (\n componentSchema: Schema.Component,\n componentId: number | string,\n parentSchemasForComponent: Schema.ContentType[],\n opts?: { trx?: any }\n): Promise<{ uid: string; table: string; parentId: number | string } | null> => {\n if (!componentSchema?.uid) return null;\n\n const schemaBuilder = strapi.db.getSchemaConnection(opts?.trx);\n const withTrx = (qb: any) => (opts?.trx ? qb.transacting(opts.trx) : qb);\n\n for (const parent of parentSchemasForComponent) {\n if (!parent.collectionName) continue;\n\n // Use the exact same functions that create the tables\n const identifiers = strapi.db.metadata.identifiers;\n const joinTableName = getComponentJoinTableName(parent.collectionName, identifiers);\n\n try {\n const tableExists = await schemaBuilder.hasTable(joinTableName);\n if (!tableExists) continue;\n\n // Use the exact same functions that create the columns\n const entityIdColumn = getComponentJoinColumnEntityName(identifiers);\n const componentIdColumn = getComponentJoinColumnInverseName(identifiers);\n const componentTypeColumn = getComponentTypeColumn(identifiers);\n\n const parentRow = await withTrx(strapi.db.getConnection(joinTableName))\n .where({\n [componentIdColumn]: componentId,\n [componentTypeColumn]: componentSchema.uid,\n })\n .first(entityIdColumn);\n\n if (parentRow) {\n return {\n uid: parent.uid,\n table: parent.collectionName,\n parentId: parentRow[entityIdColumn],\n };\n }\n } catch {\n continue;\n }\n }\n\n return null;\n};\n\n/**\n * Finds content types that contain the given component and have draft & publish enabled.\n */\nconst getParentSchemasForComponent = (componentSchema: Schema.Component): Schema.ContentType[] => {\n return Object.values(strapi.contentTypes).filter((contentType: any) => {\n if (!contentType.options?.draftAndPublish) return false;\n\n return Object.values(contentType.attributes).some((attr: any) => {\n return (\n (attr.type === 'component' && attr.component === componentSchema.uid) ||\n (attr.type === 'dynamiczone' && attr.components?.includes(componentSchema.uid))\n );\n });\n });\n};\n\n/**\n * Determines if a component relation should be propagated to a new document version\n * when a document with draft and publish is updated.\n */\nconst shouldPropagateComponentRelationToNewVersion = async (\n componentRelation: Record<string, any>,\n componentSchema: Schema.Component,\n parentSchemasForComponent: Schema.ContentType[],\n trx: any\n): Promise<boolean> => {\n // Get the component ID column name using the actual component model name\n const componentIdColumn = strapi.db.metadata.identifiers.getJoinColumnAttributeIdName(\n _.snakeCase(componentSchema.modelName)\n );\n\n const componentId = componentRelation[componentIdColumn];\n\n const parent = await findComponentParent(\n componentSchema,\n componentId,\n parentSchemasForComponent,\n { trx }\n );\n\n // Keep relation if component has no parent entry\n if (!parent?.uid) {\n return true;\n }\n\n const parentContentType = strapi.contentTypes[parent.uid as UID.ContentType];\n\n // Keep relation if parent doesn't have draft & publish enabled\n if (!parentContentType?.options?.draftAndPublish) {\n return true;\n }\n\n // Discard relation if parent has draft & publish enabled\n return false;\n};\n\n/**\n * Creates a filter function for component relations that can be passed to the generic\n * unidirectional relations utility\n */\nconst createComponentRelationFilter = () => {\n return async (\n relation: Record<string, any>,\n model: Schema.Component | Schema.ContentType,\n trx: any\n ): Promise<boolean> => {\n // Only apply component-specific filtering for components\n if (model.modelType !== 'component') {\n return true;\n }\n\n const componentSchema = model as Schema.Component;\n const parentSchemas = getParentSchemasForComponent(componentSchema);\n\n // Exit if no draft & publish parent types exist\n if (parentSchemas.length === 0) {\n return true;\n }\n\n return shouldPropagateComponentRelationToNewVersion(\n relation,\n componentSchema,\n parentSchemas,\n trx\n );\n };\n};\n\nexport {\n omitComponentData,\n assignComponentData,\n getComponents,\n createComponents,\n updateComponents,\n deleteComponents,\n deleteComponent,\n createComponentRelationFilter,\n};\n"],"names":["omitComponentData","curry","schema","data","attributes","componentAttributes","Object","keys","filter","attributeName","contentTypesUtils","isComponentAttribute","omit","createComponents","uid","strapi","getModel","componentBody","attributeNames","attribute","has","type","component","componentUID","repeatable","componentValue","Array","isArray","Error","components","async","map","value","createComponent","id","__pivot","field","component_type","dynamiczoneValues","createDynamicZoneComponents","__component","getComponents","entity","getComponentAttributes","_","isEmpty","db","query","load","updateComponents","entityToUpdate","deleteOldComponents","updateOrCreateComponent","negate","isNil","deleteOldDZComponents","pickStringifiedId","previousValue","idsToKeep","castArray","allIds","forEach","includes","errors","ApplicationError","idsToDelete","difference","length","idToDelete","deleteComponent","v","find","el","err","assign","status","reduce","acc","push","deleteComponents","entityToDelete","loadComponents","subValue","componentData","transform","pipe","assignComponentData","create","updateComponent","componentToUpdate","update","where","componentToDelete","delete","findComponentParent","componentSchema","componentId","parentSchemasForComponent","opts","schemaBuilder","getSchemaConnection","trx","withTrx","qb","transacting","parent","collectionName","identifiers","metadata","joinTableName","getComponentJoinTableName","tableExists","hasTable","entityIdColumn","getComponentJoinColumnEntityName","componentIdColumn","getComponentJoinColumnInverseName","componentTypeColumn","getComponentTypeColumn","parentRow","getConnection","first","table","parentId","getParentSchemasForComponent","values","contentTypes","contentType","options","draftAndPublish","some","attr","shouldPropagateComponentRelationToNewVersion","componentRelation","getJoinColumnAttributeIdName","snakeCase","modelName","parentContentType","createComponentRelationFilter","relation","model","modelType","parentSchemas"],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ 'use strict';
2
+
3
+ var fp = require('lodash/fp');
4
+ var strapiUtils = require('@strapi/utils');
5
+
6
+ /**
7
+ * DP enabled -> set status to draft
8
+ * DP disabled -> Used mostly for parsing relations, so there is not a need for a default.
9
+ */ const setStatusToDraft = (contentType, params)=>{
10
+ if (!strapiUtils.contentTypes.hasDraftAndPublish(contentType) && params.status) {
11
+ return params;
12
+ }
13
+ return fp.assoc('status', 'draft', params);
14
+ };
15
+ /**
16
+ * Adds a default status of `draft` to the params
17
+ */ const defaultToDraft = (params)=>{
18
+ // Default to draft if no status is provided or it's invalid
19
+ if (!params.status || params.status !== 'published') {
20
+ return fp.assoc('status', 'draft', params);
21
+ }
22
+ return params;
23
+ };
24
+ /**
25
+ * DP disabled -> ignore status
26
+ * DP enabled -> set status to draft if no status is provided or it's invalid
27
+ */ const defaultStatus = (contentType, params)=>{
28
+ if (!strapiUtils.contentTypes.hasDraftAndPublish(contentType)) {
29
+ return params;
30
+ }
31
+ // Default to draft if no status is provided or it's invalid
32
+ if (!params.status || params.status !== 'published') {
33
+ return defaultToDraft(params);
34
+ }
35
+ return params;
36
+ };
37
+ /**
38
+ * In mutating actions we don't want user to set the publishedAt attribute.
39
+ */ const filterDataPublishedAt = (params)=>{
40
+ if (params?.data?.publishedAt) {
41
+ return fp.assoc([
42
+ 'data',
43
+ 'publishedAt'
44
+ ], null, params);
45
+ }
46
+ return params;
47
+ };
48
+ /**
49
+ * Add status lookup query to the params
50
+ */ const statusToLookup = (contentType, params)=>{
51
+ if (!strapiUtils.contentTypes.hasDraftAndPublish(contentType)) {
52
+ return params;
53
+ }
54
+ const lookup = params.lookup || {};
55
+ switch(params?.status){
56
+ case 'published':
57
+ return fp.assoc([
58
+ 'lookup',
59
+ 'publishedAt'
60
+ ], {
61
+ $notNull: true
62
+ }, params);
63
+ case 'draft':
64
+ return fp.assoc([
65
+ 'lookup',
66
+ 'publishedAt'
67
+ ], {
68
+ $null: true
69
+ }, params);
70
+ }
71
+ return fp.assoc('lookup', lookup, params);
72
+ };
73
+ /**
74
+ * Translate publication status parameter into the data that will be saved
75
+ */ const statusToData = (contentType, params)=>{
76
+ if (!strapiUtils.contentTypes.hasDraftAndPublish(contentType)) {
77
+ return fp.assoc([
78
+ 'data',
79
+ 'publishedAt'
80
+ ], new Date(), params);
81
+ }
82
+ switch(params?.status){
83
+ case 'published':
84
+ return fp.assoc([
85
+ 'data',
86
+ 'publishedAt'
87
+ ], new Date(), params);
88
+ case 'draft':
89
+ return fp.assoc([
90
+ 'data',
91
+ 'publishedAt'
92
+ ], null, params);
93
+ }
94
+ return params;
95
+ };
96
+ const setStatusToDraftCurry = fp.curry(setStatusToDraft);
97
+ const defaultToDraftCurry = fp.curry(defaultToDraft);
98
+ const defaultStatusCurry = fp.curry(defaultStatus);
99
+ const filterDataPublishedAtCurry = fp.curry(filterDataPublishedAt);
100
+ const statusToLookupCurry = fp.curry(statusToLookup);
101
+ const statusToDataCurry = fp.curry(statusToData);
102
+
103
+ exports.defaultStatus = defaultStatusCurry;
104
+ exports.defaultToDraft = defaultToDraftCurry;
105
+ exports.filterDataPublishedAt = filterDataPublishedAtCurry;
106
+ exports.setStatusToDraft = setStatusToDraftCurry;
107
+ exports.statusToData = statusToDataCurry;
108
+ exports.statusToLookup = statusToLookupCurry;
109
+ //# 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 { assoc, curry } from 'lodash/fp';\n\nimport type { Modules, Struct } from '@strapi/types';\nimport { contentTypes } from '@strapi/utils';\n\ntype ParamsTransform = (params: Modules.Documents.Params.All) => Modules.Documents.Params.All;\n\ntype TransformWithContentType = (\n contentType: Struct.SingleTypeSchema | Struct.CollectionTypeSchema,\n params: Modules.Documents.Params.All\n) => Modules.Documents.Params.All;\n\n/**\n * DP enabled -> set status to draft\n * DP disabled -> Used mostly for parsing relations, so there is not a need for a default.\n */\nconst setStatusToDraft: TransformWithContentType = (contentType, params) => {\n if (!contentTypes.hasDraftAndPublish(contentType) && params.status) {\n return params;\n }\n\n return assoc('status', 'draft', params);\n};\n\n/**\n * Adds a default status of `draft` to the params\n */\nconst 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 assoc('status', 'draft', params);\n }\n\n return params;\n};\n\n/**\n * DP disabled -> ignore status\n * DP enabled -> set status to draft if no status is provided or it's invalid\n */\nconst defaultStatus: TransformWithContentType = (contentType, params) => {\n if (!contentTypes.hasDraftAndPublish(contentType)) {\n return params;\n }\n\n // Default to draft if no status is provided or it's invalid\n if (!params.status || params.status !== 'published') {\n return defaultToDraft(params);\n }\n\n return params;\n};\n\n/**\n * In mutating actions we don't want user to set the publishedAt attribute.\n */\nconst 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 */\nconst statusToLookup: TransformWithContentType = (contentType, params) => {\n if (!contentTypes.hasDraftAndPublish(contentType)) {\n return params;\n }\n\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 */\nconst statusToData: TransformWithContentType = (contentType, params) => {\n if (!contentTypes.hasDraftAndPublish(contentType)) {\n return assoc(['data', 'publishedAt'], new Date(), params);\n }\n\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\nconst setStatusToDraftCurry = curry(setStatusToDraft);\nconst defaultToDraftCurry = curry(defaultToDraft);\nconst defaultStatusCurry = curry(defaultStatus);\nconst filterDataPublishedAtCurry = curry(filterDataPublishedAt);\nconst statusToLookupCurry = curry(statusToLookup);\nconst statusToDataCurry = curry(statusToData);\n\nexport {\n setStatusToDraftCurry as setStatusToDraft,\n defaultToDraftCurry as defaultToDraft,\n defaultStatusCurry as defaultStatus,\n filterDataPublishedAtCurry as filterDataPublishedAt,\n statusToLookupCurry as statusToLookup,\n statusToDataCurry as statusToData,\n};\n"],"names":["setStatusToDraft","contentType","params","contentTypes","hasDraftAndPublish","status","assoc","defaultToDraft","defaultStatus","filterDataPublishedAt","data","publishedAt","statusToLookup","lookup","$notNull","$null","statusToData","Date","setStatusToDraftCurry","curry","defaultToDraftCurry","defaultStatusCurry","filterDataPublishedAtCurry","statusToLookupCurry","statusToDataCurry"],"mappings":"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"}