@strapi/core 0.0.0-experimental.e14656d3b8681880212c13260b9a2b340c182f2d → 0.0.0-experimental.e1a19b9e52cdcb526515883c8289522a64c9871a

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