@strapi/core 0.0.0-next.7315bad3dd6542d457c3c837db874e3e6336ae9f → 0.0.0-next.73c6a77641373a80d30f9caed8985f2a9dcf3d85

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 (825) 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 -406
  4. package/dist/Strapi.js.map +1 -1
  5. package/dist/Strapi.mjs +447 -405
  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 -96
  12. package/dist/configuration/config-loader.js.map +1 -1
  13. package/dist/configuration/config-loader.mjs +109 -95
  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.js +73 -60
  110. package/dist/core-api/service/collection-type.js.map +1 -1
  111. package/dist/core-api/service/collection-type.mjs +72 -62
  112. package/dist/core-api/service/collection-type.mjs.map +1 -1
  113. package/dist/core-api/service/core-service.js +9 -8
  114. package/dist/core-api/service/core-service.js.map +1 -1
  115. package/dist/core-api/service/core-service.mjs +8 -9
  116. package/dist/core-api/service/core-service.mjs.map +1 -1
  117. package/dist/core-api/service/index.js +13 -13
  118. package/dist/core-api/service/index.js.map +1 -1
  119. package/dist/core-api/service/index.mjs +12 -14
  120. package/dist/core-api/service/index.mjs.map +1 -1
  121. package/dist/core-api/service/pagination.js +69 -43
  122. package/dist/core-api/service/pagination.js.map +1 -1
  123. package/dist/core-api/service/pagination.mjs +68 -47
  124. package/dist/core-api/service/pagination.mjs.map +1 -1
  125. package/dist/core-api/service/single-type.js +43 -38
  126. package/dist/core-api/service/single-type.js.map +1 -1
  127. package/dist/core-api/service/single-type.mjs +42 -40
  128. package/dist/core-api/service/single-type.mjs.map +1 -1
  129. package/dist/domain/content-type/index.d.ts.map +1 -1
  130. package/dist/domain/content-type/index.js +110 -99
  131. package/dist/domain/content-type/index.js.map +1 -1
  132. package/dist/domain/content-type/index.mjs +109 -99
  133. package/dist/domain/content-type/index.mjs.map +1 -1
  134. package/dist/domain/content-type/validator.js +84 -69
  135. package/dist/domain/content-type/validator.js.map +1 -1
  136. package/dist/domain/content-type/validator.mjs +83 -68
  137. package/dist/domain/content-type/validator.mjs.map +1 -1
  138. package/dist/domain/module/index.d.ts.map +1 -1
  139. package/dist/domain/module/index.js +112 -100
  140. package/dist/domain/module/index.js.map +1 -1
  141. package/dist/domain/module/index.mjs +111 -99
  142. package/dist/domain/module/index.mjs.map +1 -1
  143. package/dist/domain/module/validation.js +25 -20
  144. package/dist/domain/module/validation.js.map +1 -1
  145. package/dist/domain/module/validation.mjs +24 -21
  146. package/dist/domain/module/validation.mjs.map +1 -1
  147. package/dist/ee/index.d.ts +7 -0
  148. package/dist/ee/index.d.ts.map +1 -1
  149. package/dist/ee/index.js +197 -137
  150. package/dist/ee/index.js.map +1 -1
  151. package/dist/ee/index.mjs +196 -139
  152. package/dist/ee/index.mjs.map +1 -1
  153. package/dist/ee/license.d.ts +3 -1
  154. package/dist/ee/license.d.ts.map +1 -1
  155. package/dist/ee/license.js +105 -75
  156. package/dist/ee/license.js.map +1 -1
  157. package/dist/ee/license.mjs +103 -76
  158. package/dist/ee/license.mjs.map +1 -1
  159. package/dist/factories.d.ts +3 -1
  160. package/dist/factories.d.ts.map +1 -1
  161. package/dist/factories.js +80 -67
  162. package/dist/factories.js.map +1 -1
  163. package/dist/factories.mjs +77 -70
  164. package/dist/factories.mjs.map +1 -1
  165. package/dist/index.js +29 -26
  166. package/dist/index.js.map +1 -1
  167. package/dist/index.mjs +29 -29
  168. package/dist/index.mjs.map +1 -1
  169. package/dist/loaders/admin.d.ts.map +1 -1
  170. package/dist/loaders/admin.js +21 -20
  171. package/dist/loaders/admin.js.map +1 -1
  172. package/dist/loaders/admin.mjs +20 -20
  173. package/dist/loaders/admin.mjs.map +1 -1
  174. package/dist/loaders/apis.js +143 -120
  175. package/dist/loaders/apis.js.map +1 -1
  176. package/dist/loaders/apis.mjs +142 -119
  177. package/dist/loaders/apis.mjs.map +1 -1
  178. package/dist/loaders/components.js +33 -34
  179. package/dist/loaders/components.js.map +1 -1
  180. package/dist/loaders/components.mjs +32 -34
  181. package/dist/loaders/components.mjs.map +1 -1
  182. package/dist/loaders/index.js +22 -20
  183. package/dist/loaders/index.js.map +1 -1
  184. package/dist/loaders/index.mjs +21 -21
  185. package/dist/loaders/index.mjs.map +1 -1
  186. package/dist/loaders/middlewares.js +29 -25
  187. package/dist/loaders/middlewares.js.map +1 -1
  188. package/dist/loaders/middlewares.mjs +28 -25
  189. package/dist/loaders/middlewares.mjs.map +1 -1
  190. package/dist/loaders/plugins/get-enabled-plugins.js +126 -131
  191. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  192. package/dist/loaders/plugins/get-enabled-plugins.mjs +125 -108
  193. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  194. package/dist/loaders/plugins/get-user-plugins-config.js +25 -24
  195. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  196. package/dist/loaders/plugins/get-user-plugins-config.mjs +24 -23
  197. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  198. package/dist/loaders/plugins/index.js +132 -121
  199. package/dist/loaders/plugins/index.js.map +1 -1
  200. package/dist/loaders/plugins/index.mjs +121 -112
  201. package/dist/loaders/plugins/index.mjs.map +1 -1
  202. package/dist/loaders/policies.js +24 -20
  203. package/dist/loaders/policies.js.map +1 -1
  204. package/dist/loaders/policies.mjs +23 -20
  205. package/dist/loaders/policies.mjs.map +1 -1
  206. package/dist/loaders/sanitizers.js +10 -4
  207. package/dist/loaders/sanitizers.js.map +1 -1
  208. package/dist/loaders/sanitizers.mjs +9 -6
  209. package/dist/loaders/sanitizers.mjs.map +1 -1
  210. package/dist/loaders/src-index.js +35 -27
  211. package/dist/loaders/src-index.js.map +1 -1
  212. package/dist/loaders/src-index.mjs +34 -29
  213. package/dist/loaders/src-index.mjs.map +1 -1
  214. package/dist/loaders/validators.js +9 -4
  215. package/dist/loaders/validators.js.map +1 -1
  216. package/dist/loaders/validators.mjs +8 -6
  217. package/dist/loaders/validators.mjs.map +1 -1
  218. package/dist/middlewares/body.d.ts.map +1 -1
  219. package/dist/middlewares/body.js +58 -54
  220. package/dist/middlewares/body.js.map +1 -1
  221. package/dist/middlewares/body.mjs +57 -51
  222. package/dist/middlewares/body.mjs.map +1 -1
  223. package/dist/middlewares/compression.js +6 -6
  224. package/dist/middlewares/compression.js.map +1 -1
  225. package/dist/middlewares/compression.mjs +5 -5
  226. package/dist/middlewares/compression.mjs.map +1 -1
  227. package/dist/middlewares/cors.d.ts +9 -1
  228. package/dist/middlewares/cors.d.ts.map +1 -1
  229. package/dist/middlewares/cors.js +81 -48
  230. package/dist/middlewares/cors.js.map +1 -1
  231. package/dist/middlewares/cors.mjs +78 -46
  232. package/dist/middlewares/cors.mjs.map +1 -1
  233. package/dist/middlewares/errors.js +32 -30
  234. package/dist/middlewares/errors.js.map +1 -1
  235. package/dist/middlewares/errors.mjs +31 -31
  236. package/dist/middlewares/errors.mjs.map +1 -1
  237. package/dist/middlewares/favicon.js +27 -17
  238. package/dist/middlewares/favicon.js.map +1 -1
  239. package/dist/middlewares/favicon.mjs +26 -16
  240. package/dist/middlewares/favicon.mjs.map +1 -1
  241. package/dist/middlewares/index.js +32 -30
  242. package/dist/middlewares/index.js.map +1 -1
  243. package/dist/middlewares/index.mjs +31 -31
  244. package/dist/middlewares/index.mjs.map +1 -1
  245. package/dist/middlewares/ip.js +6 -6
  246. package/dist/middlewares/ip.js.map +1 -1
  247. package/dist/middlewares/ip.mjs +5 -5
  248. package/dist/middlewares/ip.mjs.map +1 -1
  249. package/dist/middlewares/logger.js +10 -9
  250. package/dist/middlewares/logger.js.map +1 -1
  251. package/dist/middlewares/logger.mjs +9 -10
  252. package/dist/middlewares/logger.mjs.map +1 -1
  253. package/dist/middlewares/powered-by.js +13 -9
  254. package/dist/middlewares/powered-by.js.map +1 -1
  255. package/dist/middlewares/powered-by.mjs +12 -10
  256. package/dist/middlewares/powered-by.mjs.map +1 -1
  257. package/dist/middlewares/public.js +33 -29
  258. package/dist/middlewares/public.js.map +1 -1
  259. package/dist/middlewares/public.mjs +32 -28
  260. package/dist/middlewares/public.mjs.map +1 -1
  261. package/dist/middlewares/query.js +35 -32
  262. package/dist/middlewares/query.js.map +1 -1
  263. package/dist/middlewares/query.mjs +34 -31
  264. package/dist/middlewares/query.mjs.map +1 -1
  265. package/dist/middlewares/response-time.js +10 -9
  266. package/dist/middlewares/response-time.js.map +1 -1
  267. package/dist/middlewares/response-time.mjs +9 -10
  268. package/dist/middlewares/response-time.mjs.map +1 -1
  269. package/dist/middlewares/responses.js +14 -12
  270. package/dist/middlewares/responses.js.map +1 -1
  271. package/dist/middlewares/responses.mjs +13 -13
  272. package/dist/middlewares/responses.mjs.map +1 -1
  273. package/dist/middlewares/security.js +109 -71
  274. package/dist/middlewares/security.js.map +1 -1
  275. package/dist/middlewares/security.mjs +108 -70
  276. package/dist/middlewares/security.mjs.map +1 -1
  277. package/dist/middlewares/session.js +26 -25
  278. package/dist/middlewares/session.js.map +1 -1
  279. package/dist/middlewares/session.mjs +25 -24
  280. package/dist/middlewares/session.mjs.map +1 -1
  281. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +2 -2
  282. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  283. package/dist/migrations/database/5.0.0-discard-drafts.js +152 -90
  284. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
  285. package/dist/migrations/database/5.0.0-discard-drafts.mjs +151 -92
  286. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
  287. package/dist/migrations/draft-publish.d.ts +1 -1
  288. package/dist/migrations/draft-publish.d.ts.map +1 -1
  289. package/dist/migrations/draft-publish.js +61 -34
  290. package/dist/migrations/draft-publish.js.map +1 -1
  291. package/dist/migrations/draft-publish.mjs +60 -36
  292. package/dist/migrations/draft-publish.mjs.map +1 -1
  293. package/dist/migrations/first-published-at.d.ts +4 -0
  294. package/dist/migrations/first-published-at.d.ts.map +1 -0
  295. package/dist/migrations/first-published-at.js +51 -0
  296. package/dist/migrations/first-published-at.js.map +1 -0
  297. package/dist/migrations/first-published-at.mjs +49 -0
  298. package/dist/migrations/first-published-at.mjs.map +1 -0
  299. package/dist/migrations/i18n.js +62 -45
  300. package/dist/migrations/i18n.js.map +1 -1
  301. package/dist/migrations/i18n.mjs +61 -47
  302. package/dist/migrations/i18n.mjs.map +1 -1
  303. package/dist/migrations/index.d.ts.map +1 -1
  304. package/dist/migrations/index.js +29 -10
  305. package/dist/migrations/index.js.map +1 -1
  306. package/dist/migrations/index.mjs +28 -12
  307. package/dist/migrations/index.mjs.map +1 -1
  308. package/dist/package.json.js +187 -0
  309. package/dist/package.json.js.map +1 -0
  310. package/dist/package.json.mjs +164 -0
  311. package/dist/package.json.mjs.map +1 -0
  312. package/dist/providers/admin.js +27 -17
  313. package/dist/providers/admin.js.map +1 -1
  314. package/dist/providers/admin.mjs +26 -19
  315. package/dist/providers/admin.mjs.map +1 -1
  316. package/dist/providers/coreStore.js +13 -8
  317. package/dist/providers/coreStore.js.map +1 -1
  318. package/dist/providers/coreStore.mjs +12 -10
  319. package/dist/providers/coreStore.mjs.map +1 -1
  320. package/dist/providers/cron.js +19 -16
  321. package/dist/providers/cron.js.map +1 -1
  322. package/dist/providers/cron.mjs +18 -18
  323. package/dist/providers/cron.mjs.map +1 -1
  324. package/dist/providers/index.d.ts.map +1 -1
  325. package/dist/providers/index.js +20 -9
  326. package/dist/providers/index.js.map +1 -1
  327. package/dist/providers/index.mjs +19 -10
  328. package/dist/providers/index.mjs.map +1 -1
  329. package/dist/providers/provider.js +4 -3
  330. package/dist/providers/provider.js.map +1 -1
  331. package/dist/providers/provider.mjs +3 -4
  332. package/dist/providers/provider.mjs.map +1 -1
  333. package/dist/providers/registries.js +37 -32
  334. package/dist/providers/registries.js.map +1 -1
  335. package/dist/providers/registries.mjs +36 -34
  336. package/dist/providers/registries.mjs.map +1 -1
  337. package/dist/providers/session-manager.d.ts +3 -0
  338. package/dist/providers/session-manager.d.ts.map +1 -0
  339. package/dist/providers/session-manager.js +23 -0
  340. package/dist/providers/session-manager.js.map +1 -0
  341. package/dist/providers/session-manager.mjs +21 -0
  342. package/dist/providers/session-manager.mjs.map +1 -0
  343. package/dist/providers/telemetry.js +19 -16
  344. package/dist/providers/telemetry.js.map +1 -1
  345. package/dist/providers/telemetry.mjs +18 -18
  346. package/dist/providers/telemetry.mjs.map +1 -1
  347. package/dist/providers/webhooks.js +28 -26
  348. package/dist/providers/webhooks.js.map +1 -1
  349. package/dist/providers/webhooks.mjs +27 -28
  350. package/dist/providers/webhooks.mjs.map +1 -1
  351. package/dist/registries/apis.js +23 -20
  352. package/dist/registries/apis.js.map +1 -1
  353. package/dist/registries/apis.mjs +22 -22
  354. package/dist/registries/apis.mjs.map +1 -1
  355. package/dist/registries/components.js +35 -37
  356. package/dist/registries/components.js.map +1 -1
  357. package/dist/registries/components.mjs +34 -39
  358. package/dist/registries/components.mjs.map +1 -1
  359. package/dist/registries/content-types.js +54 -59
  360. package/dist/registries/content-types.js.map +1 -1
  361. package/dist/registries/content-types.mjs +53 -61
  362. package/dist/registries/content-types.mjs.map +1 -1
  363. package/dist/registries/controllers.js +70 -71
  364. package/dist/registries/controllers.js.map +1 -1
  365. package/dist/registries/controllers.mjs +69 -73
  366. package/dist/registries/controllers.mjs.map +1 -1
  367. package/dist/registries/custom-fields.js +75 -65
  368. package/dist/registries/custom-fields.js.map +1 -1
  369. package/dist/registries/custom-fields.mjs +74 -67
  370. package/dist/registries/custom-fields.mjs.map +1 -1
  371. package/dist/registries/hooks.js +46 -49
  372. package/dist/registries/hooks.js.map +1 -1
  373. package/dist/registries/hooks.mjs +45 -51
  374. package/dist/registries/hooks.mjs.map +1 -1
  375. package/dist/registries/middlewares.js +49 -51
  376. package/dist/registries/middlewares.js.map +1 -1
  377. package/dist/registries/middlewares.mjs +48 -53
  378. package/dist/registries/middlewares.mjs.map +1 -1
  379. package/dist/registries/models.js +14 -13
  380. package/dist/registries/models.js.map +1 -1
  381. package/dist/registries/models.mjs +13 -14
  382. package/dist/registries/models.mjs.map +1 -1
  383. package/dist/registries/modules.js +39 -36
  384. package/dist/registries/modules.js.map +1 -1
  385. package/dist/registries/modules.mjs +38 -38
  386. package/dist/registries/modules.mjs.map +1 -1
  387. package/dist/registries/namespace.js +21 -20
  388. package/dist/registries/namespace.js.map +1 -1
  389. package/dist/registries/namespace.mjs +20 -23
  390. package/dist/registries/namespace.mjs.map +1 -1
  391. package/dist/registries/plugins.js +23 -20
  392. package/dist/registries/plugins.js.map +1 -1
  393. package/dist/registries/plugins.mjs +22 -22
  394. package/dist/registries/plugins.mjs.map +1 -1
  395. package/dist/registries/policies.js +103 -96
  396. package/dist/registries/policies.js.map +1 -1
  397. package/dist/registries/policies.mjs +102 -98
  398. package/dist/registries/policies.mjs.map +1 -1
  399. package/dist/registries/sanitizers.js +23 -22
  400. package/dist/registries/sanitizers.js.map +1 -1
  401. package/dist/registries/sanitizers.mjs +22 -22
  402. package/dist/registries/sanitizers.mjs.map +1 -1
  403. package/dist/registries/services.js +71 -71
  404. package/dist/registries/services.js.map +1 -1
  405. package/dist/registries/services.mjs +70 -73
  406. package/dist/registries/services.mjs.map +1 -1
  407. package/dist/registries/validators.js +23 -22
  408. package/dist/registries/validators.js.map +1 -1
  409. package/dist/registries/validators.mjs +22 -22
  410. package/dist/registries/validators.mjs.map +1 -1
  411. package/dist/services/auth/index.js +74 -74
  412. package/dist/services/auth/index.js.map +1 -1
  413. package/dist/services/auth/index.mjs +73 -74
  414. package/dist/services/auth/index.mjs.map +1 -1
  415. package/dist/services/config.js +47 -43
  416. package/dist/services/config.js.map +1 -1
  417. package/dist/services/config.mjs +46 -44
  418. package/dist/services/config.mjs.map +1 -1
  419. package/dist/services/content-api/index.d.ts +1 -1
  420. package/dist/services/content-api/index.d.ts.map +1 -1
  421. package/dist/services/content-api/index.js +80 -79
  422. package/dist/services/content-api/index.js.map +1 -1
  423. package/dist/services/content-api/index.mjs +79 -79
  424. package/dist/services/content-api/index.mjs.map +1 -1
  425. package/dist/services/content-api/permissions/engine.js +8 -5
  426. package/dist/services/content-api/permissions/engine.js.map +1 -1
  427. package/dist/services/content-api/permissions/engine.mjs +7 -5
  428. package/dist/services/content-api/permissions/engine.mjs.map +1 -1
  429. package/dist/services/content-api/permissions/index.js +101 -81
  430. package/dist/services/content-api/permissions/index.js.map +1 -1
  431. package/dist/services/content-api/permissions/index.mjs +100 -81
  432. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  433. package/dist/services/content-api/permissions/providers/action.js +17 -14
  434. package/dist/services/content-api/permissions/providers/action.js.map +1 -1
  435. package/dist/services/content-api/permissions/providers/action.mjs +16 -16
  436. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
  437. package/dist/services/content-api/permissions/providers/condition.js +17 -14
  438. package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
  439. package/dist/services/content-api/permissions/providers/condition.mjs +16 -16
  440. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
  441. package/dist/services/content-source-maps.d.ts +13 -0
  442. package/dist/services/content-source-maps.d.ts.map +1 -0
  443. package/dist/services/content-source-maps.js +108 -0
  444. package/dist/services/content-source-maps.js.map +1 -0
  445. package/dist/services/content-source-maps.mjs +106 -0
  446. package/dist/services/content-source-maps.mjs.map +1 -0
  447. package/dist/services/core-store.d.ts +2 -2
  448. package/dist/services/core-store.d.ts.map +1 -1
  449. package/dist/services/core-store.js +115 -95
  450. package/dist/services/core-store.js.map +1 -1
  451. package/dist/services/core-store.mjs +114 -97
  452. package/dist/services/core-store.mjs.map +1 -1
  453. package/dist/services/cron.js +74 -64
  454. package/dist/services/cron.js.map +1 -1
  455. package/dist/services/cron.mjs +73 -66
  456. package/dist/services/cron.mjs.map +1 -1
  457. package/dist/services/custom-fields.js +9 -7
  458. package/dist/services/custom-fields.js.map +1 -1
  459. package/dist/services/custom-fields.mjs +8 -9
  460. package/dist/services/custom-fields.mjs.map +1 -1
  461. package/dist/services/document-service/attributes/index.js +23 -18
  462. package/dist/services/document-service/attributes/index.js.map +1 -1
  463. package/dist/services/document-service/attributes/index.mjs +22 -19
  464. package/dist/services/document-service/attributes/index.mjs.map +1 -1
  465. package/dist/services/document-service/attributes/transforms.js +16 -15
  466. package/dist/services/document-service/attributes/transforms.js.map +1 -1
  467. package/dist/services/document-service/attributes/transforms.mjs +15 -15
  468. package/dist/services/document-service/attributes/transforms.mjs.map +1 -1
  469. package/dist/services/document-service/common.js +5 -4
  470. package/dist/services/document-service/common.js.map +1 -1
  471. package/dist/services/document-service/common.mjs +4 -5
  472. package/dist/services/document-service/common.mjs.map +1 -1
  473. package/dist/services/document-service/components.d.ts +31 -1
  474. package/dist/services/document-service/components.d.ts.map +1 -1
  475. package/dist/services/document-service/components.js +363 -256
  476. package/dist/services/document-service/components.js.map +1 -1
  477. package/dist/services/document-service/components.mjs +359 -261
  478. package/dist/services/document-service/components.mjs.map +1 -1
  479. package/dist/services/document-service/draft-and-publish.d.ts +1 -1
  480. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  481. package/dist/services/document-service/draft-and-publish.js +88 -48
  482. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  483. package/dist/services/document-service/draft-and-publish.mjs +87 -54
  484. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  485. package/dist/services/document-service/entries.d.ts.map +1 -1
  486. package/dist/services/document-service/entries.js +151 -91
  487. package/dist/services/document-service/entries.js.map +1 -1
  488. package/dist/services/document-service/entries.mjs +150 -92
  489. package/dist/services/document-service/entries.mjs.map +1 -1
  490. package/dist/services/document-service/events.d.ts +1 -1
  491. package/dist/services/document-service/events.d.ts.map +1 -1
  492. package/dist/services/document-service/events.js +52 -40
  493. package/dist/services/document-service/events.js.map +1 -1
  494. package/dist/services/document-service/events.mjs +51 -41
  495. package/dist/services/document-service/events.mjs.map +1 -1
  496. package/dist/services/document-service/first-published-at.d.ts +7 -0
  497. package/dist/services/document-service/first-published-at.d.ts.map +1 -0
  498. package/dist/services/document-service/first-published-at.js +31 -0
  499. package/dist/services/document-service/first-published-at.js.map +1 -0
  500. package/dist/services/document-service/first-published-at.mjs +28 -0
  501. package/dist/services/document-service/first-published-at.mjs.map +1 -0
  502. package/dist/services/document-service/index.js +53 -33
  503. package/dist/services/document-service/index.js.map +1 -1
  504. package/dist/services/document-service/index.mjs +52 -34
  505. package/dist/services/document-service/index.mjs.map +1 -1
  506. package/dist/services/document-service/internationalization.d.ts +6 -1
  507. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  508. package/dist/services/document-service/internationalization.js +94 -46
  509. package/dist/services/document-service/internationalization.js.map +1 -1
  510. package/dist/services/document-service/internationalization.mjs +92 -50
  511. package/dist/services/document-service/internationalization.mjs.map +1 -1
  512. package/dist/services/document-service/middlewares/errors.js +23 -19
  513. package/dist/services/document-service/middlewares/errors.js.map +1 -1
  514. package/dist/services/document-service/middlewares/errors.mjs +22 -20
  515. package/dist/services/document-service/middlewares/errors.mjs.map +1 -1
  516. package/dist/services/document-service/middlewares/middleware-manager.js +46 -44
  517. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -1
  518. package/dist/services/document-service/middlewares/middleware-manager.mjs +45 -45
  519. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -1
  520. package/dist/services/document-service/params.js +11 -5
  521. package/dist/services/document-service/params.js.map +1 -1
  522. package/dist/services/document-service/params.mjs +10 -6
  523. package/dist/services/document-service/params.mjs.map +1 -1
  524. package/dist/services/document-service/repository.d.ts.map +1 -1
  525. package/dist/services/document-service/repository.js +362 -319
  526. package/dist/services/document-service/repository.js.map +1 -1
  527. package/dist/services/document-service/repository.mjs +361 -320
  528. package/dist/services/document-service/repository.mjs.map +1 -1
  529. package/dist/services/document-service/transform/data.js +22 -12
  530. package/dist/services/document-service/transform/data.js.map +1 -1
  531. package/dist/services/document-service/transform/data.mjs +21 -13
  532. package/dist/services/document-service/transform/data.mjs.map +1 -1
  533. package/dist/services/document-service/transform/fields.js +26 -17
  534. package/dist/services/document-service/transform/fields.js.map +1 -1
  535. package/dist/services/document-service/transform/fields.mjs +25 -18
  536. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  537. package/dist/services/document-service/transform/id-map.d.ts +1 -1
  538. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  539. package/dist/services/document-service/transform/id-map.js +115 -75
  540. package/dist/services/document-service/transform/id-map.js.map +1 -1
  541. package/dist/services/document-service/transform/id-map.mjs +114 -76
  542. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  543. package/dist/services/document-service/transform/id-transform.d.ts +1 -1
  544. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  545. package/dist/services/document-service/transform/id-transform.js +37 -29
  546. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  547. package/dist/services/document-service/transform/id-transform.mjs +36 -30
  548. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  549. package/dist/services/document-service/transform/populate.js +23 -18
  550. package/dist/services/document-service/transform/populate.js.map +1 -1
  551. package/dist/services/document-service/transform/populate.mjs +22 -19
  552. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  553. package/dist/services/document-service/transform/query.js +11 -6
  554. package/dist/services/document-service/transform/query.js.map +1 -1
  555. package/dist/services/document-service/transform/query.mjs +10 -7
  556. package/dist/services/document-service/transform/query.mjs.map +1 -1
  557. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  558. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  559. package/dist/services/document-service/transform/relations/extract/data-ids.js +70 -54
  560. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  561. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +69 -55
  562. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  563. package/dist/services/document-service/transform/relations/transform/data-ids.js +96 -71
  564. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  565. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +95 -72
  566. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  567. package/dist/services/document-service/transform/relations/transform/default-locale.js +47 -29
  568. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -1
  569. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +46 -30
  570. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -1
  571. package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
  572. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  573. package/dist/services/document-service/transform/relations/utils/dp.js +52 -26
  574. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  575. package/dist/services/document-service/transform/relations/utils/dp.mjs +51 -27
  576. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  577. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
  578. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  579. package/dist/services/document-service/transform/relations/utils/i18n.js +20 -18
  580. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  581. package/dist/services/document-service/transform/relations/utils/i18n.mjs +19 -21
  582. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  583. package/dist/services/document-service/transform/relations/utils/map-relation.js +116 -70
  584. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -1
  585. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +115 -72
  586. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -1
  587. package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
  588. package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -0
  589. package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
  590. package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
  591. package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
  592. package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
  593. package/dist/services/document-service/utils/clean-component-join-table.d.ts +7 -0
  594. package/dist/services/document-service/utils/clean-component-join-table.d.ts.map +1 -0
  595. package/dist/services/document-service/utils/populate.d.ts +1 -1
  596. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  597. package/dist/services/document-service/utils/populate.js +66 -42
  598. package/dist/services/document-service/utils/populate.js.map +1 -1
  599. package/dist/services/document-service/utils/populate.mjs +65 -43
  600. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  601. package/dist/services/document-service/utils/unidirectional-relations.d.ts +19 -2
  602. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -1
  603. package/dist/services/document-service/utils/unidirectional-relations.js +125 -62
  604. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -1
  605. package/dist/services/document-service/utils/unidirectional-relations.mjs +124 -64
  606. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -1
  607. package/dist/services/entity-service/index.js +230 -161
  608. package/dist/services/entity-service/index.js.map +1 -1
  609. package/dist/services/entity-service/index.mjs +229 -160
  610. package/dist/services/entity-service/index.mjs.map +1 -1
  611. package/dist/services/entity-validator/blocks-validator.js +135 -103
  612. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  613. package/dist/services/entity-validator/blocks-validator.mjs +134 -104
  614. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  615. package/dist/services/entity-validator/index.d.ts +1 -1
  616. package/dist/services/entity-validator/index.d.ts.map +1 -1
  617. package/dist/services/entity-validator/index.js +370 -366
  618. package/dist/services/entity-validator/index.js.map +1 -1
  619. package/dist/services/entity-validator/index.mjs +366 -363
  620. package/dist/services/entity-validator/index.mjs.map +1 -1
  621. package/dist/services/entity-validator/validators.d.ts +1 -0
  622. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  623. package/dist/services/entity-validator/validators.js +270 -209
  624. package/dist/services/entity-validator/validators.js.map +1 -1
  625. package/dist/services/entity-validator/validators.mjs +269 -215
  626. package/dist/services/entity-validator/validators.mjs.map +1 -1
  627. package/dist/services/errors.js +65 -65
  628. package/dist/services/errors.js.map +1 -1
  629. package/dist/services/errors.mjs +64 -66
  630. package/dist/services/errors.mjs.map +1 -1
  631. package/dist/services/event-hub.js +82 -69
  632. package/dist/services/event-hub.js.map +1 -1
  633. package/dist/services/event-hub.mjs +81 -71
  634. package/dist/services/event-hub.mjs.map +1 -1
  635. package/dist/services/features.js +19 -14
  636. package/dist/services/features.js.map +1 -1
  637. package/dist/services/features.mjs +18 -15
  638. package/dist/services/features.mjs.map +1 -1
  639. package/dist/services/fs.js +41 -40
  640. package/dist/services/fs.js.map +1 -1
  641. package/dist/services/fs.mjs +40 -39
  642. package/dist/services/fs.mjs.map +1 -1
  643. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  644. package/dist/services/metrics/admin-user-hash.js +13 -11
  645. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  646. package/dist/services/metrics/admin-user-hash.mjs +12 -10
  647. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  648. package/dist/services/metrics/index.d.ts +1 -1
  649. package/dist/services/metrics/index.d.ts.map +1 -1
  650. package/dist/services/metrics/index.js +48 -39
  651. package/dist/services/metrics/index.js.map +1 -1
  652. package/dist/services/metrics/index.mjs +47 -41
  653. package/dist/services/metrics/index.mjs.map +1 -1
  654. package/dist/services/metrics/is-truthy.js +13 -6
  655. package/dist/services/metrics/is-truthy.js.map +1 -1
  656. package/dist/services/metrics/is-truthy.mjs +12 -6
  657. package/dist/services/metrics/is-truthy.mjs.map +1 -1
  658. package/dist/services/metrics/middleware.d.ts +2 -1
  659. package/dist/services/metrics/middleware.d.ts.map +1 -1
  660. package/dist/services/metrics/middleware.js +37 -22
  661. package/dist/services/metrics/middleware.js.map +1 -1
  662. package/dist/services/metrics/middleware.mjs +36 -24
  663. package/dist/services/metrics/middleware.mjs.map +1 -1
  664. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  665. package/dist/services/metrics/rate-limiter.js +24 -19
  666. package/dist/services/metrics/rate-limiter.js.map +1 -1
  667. package/dist/services/metrics/rate-limiter.mjs +23 -21
  668. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  669. package/dist/services/metrics/sender.d.ts.map +1 -1
  670. package/dist/services/metrics/sender.js +78 -69
  671. package/dist/services/metrics/sender.js.map +1 -1
  672. package/dist/services/metrics/sender.mjs +77 -64
  673. package/dist/services/metrics/sender.mjs.map +1 -1
  674. package/dist/services/query-params.js +13 -10
  675. package/dist/services/query-params.js.map +1 -1
  676. package/dist/services/query-params.mjs +12 -12
  677. package/dist/services/query-params.mjs.map +1 -1
  678. package/dist/services/reloader.js +35 -32
  679. package/dist/services/reloader.js.map +1 -1
  680. package/dist/services/reloader.mjs +34 -33
  681. package/dist/services/reloader.mjs.map +1 -1
  682. package/dist/services/request-context.js +11 -8
  683. package/dist/services/request-context.js.map +1 -1
  684. package/dist/services/request-context.mjs +10 -10
  685. package/dist/services/request-context.mjs.map +1 -1
  686. package/dist/services/server/admin-api.js +11 -10
  687. package/dist/services/server/admin-api.js.map +1 -1
  688. package/dist/services/server/admin-api.mjs +10 -11
  689. package/dist/services/server/admin-api.mjs.map +1 -1
  690. package/dist/services/server/api.js +33 -27
  691. package/dist/services/server/api.js.map +1 -1
  692. package/dist/services/server/api.mjs +32 -26
  693. package/dist/services/server/api.mjs.map +1 -1
  694. package/dist/services/server/compose-endpoint.js +116 -105
  695. package/dist/services/server/compose-endpoint.js.map +1 -1
  696. package/dist/services/server/compose-endpoint.mjs +115 -105
  697. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  698. package/dist/services/server/content-api.js +11 -9
  699. package/dist/services/server/content-api.js.map +1 -1
  700. package/dist/services/server/content-api.mjs +10 -10
  701. package/dist/services/server/content-api.mjs.map +1 -1
  702. package/dist/services/server/http-server.js +48 -44
  703. package/dist/services/server/http-server.js.map +1 -1
  704. package/dist/services/server/http-server.mjs +47 -43
  705. package/dist/services/server/http-server.mjs.map +1 -1
  706. package/dist/services/server/index.js +85 -82
  707. package/dist/services/server/index.js.map +1 -1
  708. package/dist/services/server/index.mjs +84 -81
  709. package/dist/services/server/index.mjs.map +1 -1
  710. package/dist/services/server/koa.js +49 -47
  711. package/dist/services/server/koa.js.map +1 -1
  712. package/dist/services/server/koa.mjs +48 -44
  713. package/dist/services/server/koa.mjs.map +1 -1
  714. package/dist/services/server/middleware.js +86 -82
  715. package/dist/services/server/middleware.js.map +1 -1
  716. package/dist/services/server/middleware.mjs +85 -82
  717. package/dist/services/server/middleware.mjs.map +1 -1
  718. package/dist/services/server/policy.js +24 -17
  719. package/dist/services/server/policy.js.map +1 -1
  720. package/dist/services/server/policy.mjs +23 -18
  721. package/dist/services/server/policy.mjs.map +1 -1
  722. package/dist/services/server/register-middlewares.js +68 -61
  723. package/dist/services/server/register-middlewares.js.map +1 -1
  724. package/dist/services/server/register-middlewares.mjs +67 -63
  725. package/dist/services/server/register-middlewares.mjs.map +1 -1
  726. package/dist/services/server/register-routes.js +109 -66
  727. package/dist/services/server/register-routes.js.map +1 -1
  728. package/dist/services/server/register-routes.mjs +108 -66
  729. package/dist/services/server/register-routes.mjs.map +1 -1
  730. package/dist/services/server/routing.d.ts +10 -0
  731. package/dist/services/server/routing.d.ts.map +1 -1
  732. package/dist/services/server/routing.js +100 -81
  733. package/dist/services/server/routing.js.map +1 -1
  734. package/dist/services/server/routing.mjs +99 -81
  735. package/dist/services/server/routing.mjs.map +1 -1
  736. package/dist/services/session-manager.d.ts +167 -0
  737. package/dist/services/session-manager.d.ts.map +1 -0
  738. package/dist/services/session-manager.js +529 -0
  739. package/dist/services/session-manager.js.map +1 -0
  740. package/dist/services/session-manager.mjs +526 -0
  741. package/dist/services/session-manager.mjs.map +1 -0
  742. package/dist/services/utils/conditional-fields.d.ts +3 -0
  743. package/dist/services/utils/conditional-fields.d.ts.map +1 -0
  744. package/dist/services/utils/conditional-fields.js +22 -0
  745. package/dist/services/utils/conditional-fields.js.map +1 -0
  746. package/dist/services/utils/conditional-fields.mjs +20 -0
  747. package/dist/services/utils/conditional-fields.mjs.map +1 -0
  748. package/dist/services/utils/dynamic-zones.js +13 -14
  749. package/dist/services/utils/dynamic-zones.js.map +1 -1
  750. package/dist/services/utils/dynamic-zones.mjs +12 -16
  751. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  752. package/dist/services/webhook-runner.js +124 -122
  753. package/dist/services/webhook-runner.js.map +1 -1
  754. package/dist/services/webhook-runner.mjs +123 -121
  755. package/dist/services/webhook-runner.mjs.map +1 -1
  756. package/dist/services/webhook-store.js +132 -99
  757. package/dist/services/webhook-store.js.map +1 -1
  758. package/dist/services/webhook-store.mjs +131 -101
  759. package/dist/services/webhook-store.mjs.map +1 -1
  760. package/dist/services/worker-queue.js +44 -49
  761. package/dist/services/worker-queue.js.map +1 -1
  762. package/dist/services/worker-queue.mjs +43 -49
  763. package/dist/services/worker-queue.mjs.map +1 -1
  764. package/dist/utils/convert-custom-field-type.js +17 -20
  765. package/dist/utils/convert-custom-field-type.js.map +1 -1
  766. package/dist/utils/convert-custom-field-type.mjs +16 -21
  767. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  768. package/dist/utils/cron.js +64 -30
  769. package/dist/utils/cron.js.map +1 -1
  770. package/dist/utils/cron.mjs +63 -31
  771. package/dist/utils/cron.mjs.map +1 -1
  772. package/dist/utils/fetch.d.ts +5 -1
  773. package/dist/utils/fetch.d.ts.map +1 -1
  774. package/dist/utils/fetch.js +28 -18
  775. package/dist/utils/fetch.js.map +1 -1
  776. package/dist/utils/fetch.mjs +27 -19
  777. package/dist/utils/fetch.mjs.map +1 -1
  778. package/dist/utils/filepath-to-prop-path.js +20 -28
  779. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  780. package/dist/utils/filepath-to-prop-path.mjs +19 -26
  781. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  782. package/dist/utils/is-initialized.js +21 -12
  783. package/dist/utils/is-initialized.js.map +1 -1
  784. package/dist/utils/is-initialized.mjs +20 -13
  785. package/dist/utils/is-initialized.mjs.map +1 -1
  786. package/dist/utils/lifecycles.js +6 -5
  787. package/dist/utils/lifecycles.js.map +1 -1
  788. package/dist/utils/lifecycles.mjs +5 -6
  789. package/dist/utils/lifecycles.mjs.map +1 -1
  790. package/dist/utils/load-config-file.js +40 -38
  791. package/dist/utils/load-config-file.js.map +1 -1
  792. package/dist/utils/load-config-file.mjs +39 -36
  793. package/dist/utils/load-config-file.mjs.map +1 -1
  794. package/dist/utils/load-files.js +40 -34
  795. package/dist/utils/load-files.js.map +1 -1
  796. package/dist/utils/load-files.mjs +39 -31
  797. package/dist/utils/load-files.mjs.map +1 -1
  798. package/dist/utils/open-browser.js +8 -8
  799. package/dist/utils/open-browser.js.map +1 -1
  800. package/dist/utils/open-browser.mjs +7 -7
  801. package/dist/utils/open-browser.mjs.map +1 -1
  802. package/dist/utils/resolve-working-dirs.js +23 -10
  803. package/dist/utils/resolve-working-dirs.js.map +1 -1
  804. package/dist/utils/resolve-working-dirs.mjs +22 -9
  805. package/dist/utils/resolve-working-dirs.mjs.map +1 -1
  806. package/dist/utils/signals.js +20 -14
  807. package/dist/utils/signals.js.map +1 -1
  808. package/dist/utils/signals.mjs +19 -15
  809. package/dist/utils/signals.mjs.map +1 -1
  810. package/dist/utils/startup-logger.js +107 -83
  811. package/dist/utils/startup-logger.js.map +1 -1
  812. package/dist/utils/startup-logger.mjs +106 -80
  813. package/dist/utils/startup-logger.mjs.map +1 -1
  814. package/dist/utils/transform-content-types-to-models.d.ts +197 -0
  815. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  816. package/dist/utils/transform-content-types-to-models.js +350 -261
  817. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  818. package/dist/utils/transform-content-types-to-models.mjs +349 -269
  819. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  820. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  821. package/dist/utils/update-notifier/index.js +68 -73
  822. package/dist/utils/update-notifier/index.js.map +1 -1
  823. package/dist/utils/update-notifier/index.mjs +67 -67
  824. package/dist/utils/update-notifier/index.mjs.map +1 -1
  825. package/package.json +31 -27
@@ -1,30 +1,31 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const fp = require("lodash/fp");
4
- const koaSession = require("koa-session");
5
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
6
- const koaSession__default = /* @__PURE__ */ _interopDefault(koaSession);
1
+ 'use strict';
2
+
3
+ var fp = require('lodash/fp');
4
+ var koaSession = require('koa-session');
5
+
7
6
  const defaultConfig = {
8
- key: "koa.sess",
9
- maxAge: 864e5,
10
- autoCommit: true,
11
- overwrite: true,
12
- httpOnly: true,
13
- signed: true,
14
- rolling: false,
15
- renew: false,
16
- secure: process.env.NODE_ENV === "production",
17
- sameSite: void 0
7
+ key: 'koa.sess',
8
+ maxAge: 86400000,
9
+ autoCommit: true,
10
+ overwrite: true,
11
+ httpOnly: true,
12
+ signed: true,
13
+ rolling: false,
14
+ renew: false,
15
+ secure: process.env.NODE_ENV === 'production',
16
+ sameSite: undefined
18
17
  };
19
- const session = (userConfig, { strapi }) => {
20
- const { keys } = strapi.server.app;
21
- if (!fp.isArray(keys) || fp.isEmpty(keys) || keys.some(fp.isEmpty)) {
22
- throw new Error(
23
- `App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`
24
- );
25
- }
26
- const config = { ...defaultConfig, ...userConfig };
27
- strapi.server.use(koaSession__default.default(config, strapi.server.app));
18
+ const session = (userConfig, { strapi })=>{
19
+ const { keys } = strapi.server.app;
20
+ if (!fp.isArray(keys) || fp.isEmpty(keys) || keys.some(fp.isEmpty)) {
21
+ throw new Error(`App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`);
22
+ }
23
+ const config = {
24
+ ...defaultConfig,
25
+ ...userConfig
26
+ };
27
+ strapi.server.use(koaSession(config, strapi.server.app));
28
28
  };
29
+
29
30
  exports.session = session;
30
31
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sources":["../../src/middlewares/session.ts"],"sourcesContent":["import { isEmpty, isArray } from 'lodash/fp';\nimport koaSession from 'koa-session';\nimport type { Core } from '@strapi/types';\n\nconst defaultConfig = {\n key: 'koa.sess',\n maxAge: 86400000,\n autoCommit: true,\n overwrite: true,\n httpOnly: true,\n signed: true,\n rolling: false,\n renew: false,\n secure: process.env.NODE_ENV === 'production',\n sameSite: undefined,\n};\n\nexport const session: Core.MiddlewareFactory<Partial<koaSession.opts>> = (\n userConfig,\n { strapi }\n) => {\n const { keys } = strapi.server.app;\n if (!isArray(keys) || isEmpty(keys) || keys.some(isEmpty)) {\n throw new Error(\n `App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`\n );\n }\n\n const config: Partial<koaSession.opts> = { ...defaultConfig, ...userConfig };\n\n strapi.server.use(koaSession(config, strapi.server.app));\n};\n"],"names":["isArray","isEmpty","koaSession"],"mappings":";;;;;;AAIA,MAAM,gBAAgB;AAAA,EACpB,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ,QAAQ,IAAI,aAAa;AAAA,EACjC,UAAU;AACZ;AAEO,MAAM,UAA4D,CACvE,YACA,EAAE,aACC;AACH,QAAM,EAAE,KAAA,IAAS,OAAO,OAAO;AAC3B,MAAA,CAACA,GAAAA,QAAQ,IAAI,KAAKC,GAAA,QAAQ,IAAI,KAAK,KAAK,KAAKA,GAAAA,OAAO,GAAG;AACzD,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EAAA;AAGF,QAAM,SAAmC,EAAE,GAAG,eAAe,GAAG,WAAW;AAE3E,SAAO,OAAO,IAAIC,oBAAA,QAAW,QAAQ,OAAO,OAAO,GAAG,CAAC;AACzD;;"}
1
+ {"version":3,"file":"session.js","sources":["../../src/middlewares/session.ts"],"sourcesContent":["import { isEmpty, isArray } from 'lodash/fp';\nimport koaSession from 'koa-session';\nimport type { Core } from '@strapi/types';\n\nconst defaultConfig = {\n key: 'koa.sess',\n maxAge: 86400000,\n autoCommit: true,\n overwrite: true,\n httpOnly: true,\n signed: true,\n rolling: false,\n renew: false,\n secure: process.env.NODE_ENV === 'production',\n sameSite: undefined,\n};\n\nexport const session: Core.MiddlewareFactory<Partial<koaSession.opts>> = (\n userConfig,\n { strapi }\n) => {\n const { keys } = strapi.server.app;\n if (!isArray(keys) || isEmpty(keys) || keys.some(isEmpty)) {\n throw new Error(\n `App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`\n );\n }\n\n const config: Partial<koaSession.opts> = { ...defaultConfig, ...userConfig };\n\n strapi.server.use(koaSession(config, strapi.server.app));\n};\n"],"names":["defaultConfig","key","maxAge","autoCommit","overwrite","httpOnly","signed","rolling","renew","secure","process","env","NODE_ENV","sameSite","undefined","session","userConfig","strapi","keys","server","app","isArray","isEmpty","some","Error","config","use","koaSession"],"mappings":";;;;;AAIA,MAAMA,aAAgB,GAAA;IACpBC,GAAK,EAAA,UAAA;IACLC,MAAQ,EAAA,QAAA;IACRC,UAAY,EAAA,IAAA;IACZC,SAAW,EAAA,IAAA;IACXC,QAAU,EAAA,IAAA;IACVC,MAAQ,EAAA,IAAA;IACRC,OAAS,EAAA,KAAA;IACTC,KAAO,EAAA,KAAA;AACPC,IAAAA,MAAAA,EAAQC,OAAQC,CAAAA,GAAG,CAACC,QAAQ,KAAK,YAAA;IACjCC,QAAUC,EAAAA;AACZ,CAAA;MAEaC,OAA4D,GAAA,CACvEC,UACA,EAAA,EAAEC,MAAM,EAAE,GAAA;AAEV,IAAA,MAAM,EAAEC,IAAI,EAAE,GAAGD,MAAOE,CAAAA,MAAM,CAACC,GAAG;IAClC,IAAI,CAACC,WAAQH,IAASI,CAAAA,IAAAA,UAAAA,CAAQJ,SAASA,IAAKK,CAAAA,IAAI,CAACD,UAAU,CAAA,EAAA;AACzD,QAAA,MAAM,IAAIE,KAAAA,CACR,CAAC,+FAA+F,CAAC,CAAA;AAErG;AAEA,IAAA,MAAMC,MAAmC,GAAA;AAAE,QAAA,GAAGzB,aAAa;AAAE,QAAA,GAAGgB;AAAW,KAAA;IAE3EC,MAAOE,CAAAA,MAAM,CAACO,GAAG,CAACC,WAAWF,MAAQR,EAAAA,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAA,CAAA;AACxD;;;;"}
@@ -1,28 +1,29 @@
1
- import { isArray, isEmpty } from "lodash/fp";
2
- import koaSession from "koa-session";
1
+ import { isArray, isEmpty } from 'lodash/fp';
2
+ import koaSession from 'koa-session';
3
+
3
4
  const defaultConfig = {
4
- key: "koa.sess",
5
- maxAge: 864e5,
6
- autoCommit: true,
7
- overwrite: true,
8
- httpOnly: true,
9
- signed: true,
10
- rolling: false,
11
- renew: false,
12
- secure: process.env.NODE_ENV === "production",
13
- sameSite: void 0
5
+ key: 'koa.sess',
6
+ maxAge: 86400000,
7
+ autoCommit: true,
8
+ overwrite: true,
9
+ httpOnly: true,
10
+ signed: true,
11
+ rolling: false,
12
+ renew: false,
13
+ secure: process.env.NODE_ENV === 'production',
14
+ sameSite: undefined
14
15
  };
15
- const session = (userConfig, { strapi }) => {
16
- const { keys } = strapi.server.app;
17
- if (!isArray(keys) || isEmpty(keys) || keys.some(isEmpty)) {
18
- throw new Error(
19
- `App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`
20
- );
21
- }
22
- const config = { ...defaultConfig, ...userConfig };
23
- strapi.server.use(koaSession(config, strapi.server.app));
24
- };
25
- export {
26
- session
16
+ const session = (userConfig, { strapi })=>{
17
+ const { keys } = strapi.server.app;
18
+ if (!isArray(keys) || isEmpty(keys) || keys.some(isEmpty)) {
19
+ throw new Error(`App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`);
20
+ }
21
+ const config = {
22
+ ...defaultConfig,
23
+ ...userConfig
24
+ };
25
+ strapi.server.use(koaSession(config, strapi.server.app));
27
26
  };
27
+
28
+ export { session };
28
29
  //# sourceMappingURL=session.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.mjs","sources":["../../src/middlewares/session.ts"],"sourcesContent":["import { isEmpty, isArray } from 'lodash/fp';\nimport koaSession from 'koa-session';\nimport type { Core } from '@strapi/types';\n\nconst defaultConfig = {\n key: 'koa.sess',\n maxAge: 86400000,\n autoCommit: true,\n overwrite: true,\n httpOnly: true,\n signed: true,\n rolling: false,\n renew: false,\n secure: process.env.NODE_ENV === 'production',\n sameSite: undefined,\n};\n\nexport const session: Core.MiddlewareFactory<Partial<koaSession.opts>> = (\n userConfig,\n { strapi }\n) => {\n const { keys } = strapi.server.app;\n if (!isArray(keys) || isEmpty(keys) || keys.some(isEmpty)) {\n throw new Error(\n `App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`\n );\n }\n\n const config: Partial<koaSession.opts> = { ...defaultConfig, ...userConfig };\n\n strapi.server.use(koaSession(config, strapi.server.app));\n};\n"],"names":[],"mappings":";;AAIA,MAAM,gBAAgB;AAAA,EACpB,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ,QAAQ,IAAI,aAAa;AAAA,EACjC,UAAU;AACZ;AAEO,MAAM,UAA4D,CACvE,YACA,EAAE,aACC;AACH,QAAM,EAAE,KAAA,IAAS,OAAO,OAAO;AAC3B,MAAA,CAAC,QAAQ,IAAI,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK,OAAO,GAAG;AACzD,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EAAA;AAGF,QAAM,SAAmC,EAAE,GAAG,eAAe,GAAG,WAAW;AAE3E,SAAO,OAAO,IAAI,WAAW,QAAQ,OAAO,OAAO,GAAG,CAAC;AACzD;"}
1
+ {"version":3,"file":"session.mjs","sources":["../../src/middlewares/session.ts"],"sourcesContent":["import { isEmpty, isArray } from 'lodash/fp';\nimport koaSession from 'koa-session';\nimport type { Core } from '@strapi/types';\n\nconst defaultConfig = {\n key: 'koa.sess',\n maxAge: 86400000,\n autoCommit: true,\n overwrite: true,\n httpOnly: true,\n signed: true,\n rolling: false,\n renew: false,\n secure: process.env.NODE_ENV === 'production',\n sameSite: undefined,\n};\n\nexport const session: Core.MiddlewareFactory<Partial<koaSession.opts>> = (\n userConfig,\n { strapi }\n) => {\n const { keys } = strapi.server.app;\n if (!isArray(keys) || isEmpty(keys) || keys.some(isEmpty)) {\n throw new Error(\n `App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`\n );\n }\n\n const config: Partial<koaSession.opts> = { ...defaultConfig, ...userConfig };\n\n strapi.server.use(koaSession(config, strapi.server.app));\n};\n"],"names":["defaultConfig","key","maxAge","autoCommit","overwrite","httpOnly","signed","rolling","renew","secure","process","env","NODE_ENV","sameSite","undefined","session","userConfig","strapi","keys","server","app","isArray","isEmpty","some","Error","config","use","koaSession"],"mappings":";;;AAIA,MAAMA,aAAgB,GAAA;IACpBC,GAAK,EAAA,UAAA;IACLC,MAAQ,EAAA,QAAA;IACRC,UAAY,EAAA,IAAA;IACZC,SAAW,EAAA,IAAA;IACXC,QAAU,EAAA,IAAA;IACVC,MAAQ,EAAA,IAAA;IACRC,OAAS,EAAA,KAAA;IACTC,KAAO,EAAA,KAAA;AACPC,IAAAA,MAAAA,EAAQC,OAAQC,CAAAA,GAAG,CAACC,QAAQ,KAAK,YAAA;IACjCC,QAAUC,EAAAA;AACZ,CAAA;MAEaC,OAA4D,GAAA,CACvEC,UACA,EAAA,EAAEC,MAAM,EAAE,GAAA;AAEV,IAAA,MAAM,EAAEC,IAAI,EAAE,GAAGD,MAAOE,CAAAA,MAAM,CAACC,GAAG;IAClC,IAAI,CAACC,QAAQH,IAASI,CAAAA,IAAAA,OAAAA,CAAQJ,SAASA,IAAKK,CAAAA,IAAI,CAACD,OAAU,CAAA,EAAA;AACzD,QAAA,MAAM,IAAIE,KAAAA,CACR,CAAC,+FAA+F,CAAC,CAAA;AAErG;AAEA,IAAA,MAAMC,MAAmC,GAAA;AAAE,QAAA,GAAGzB,aAAa;AAAE,QAAA,GAAGgB;AAAW,KAAA;IAE3EC,MAAOE,CAAAA,MAAM,CAACO,GAAG,CAACC,WAAWF,MAAQR,EAAAA,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAA,CAAA;AACxD;;;;"}
@@ -22,11 +22,11 @@ type Knex = Parameters<Migration['up']>[0];
22
22
  * Versions with only a draft version will be ignored.
23
23
  * Only versions with a published version (which always have a draft version) will be discarded.
24
24
  */
25
- export declare function getBatchToDiscard({ db, trx, uid, batchSize, }: {
25
+ export declare function getBatchToDiscard({ db, trx, uid, defaultBatchSize, }: {
26
26
  db: Database;
27
27
  trx: Knex;
28
28
  uid: string;
29
- batchSize?: number;
29
+ defaultBatchSize?: number;
30
30
  }): AsyncGenerator<DocumentVersion[], void, unknown>;
31
31
  export declare const discardDocumentDrafts: Migration;
32
32
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"5.0.0-discard-drafts.d.ts","sourceRoot":"","sources":["../../../src/migrations/database/5.0.0-discard-drafts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI5D,KAAK,eAAe,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAC9D,KAAK,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAqF3C;;;;;GAKG;AACH,wBAAuB,iBAAiB,CAAC,EACvC,EAAE,EACF,GAAG,EACH,GAAG,EACH,SAAgB,GACjB,EAAE;IACD,EAAE,EAAE,QAAQ,CAAC;IACb,GAAG,EAAE,IAAI,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,oDAuBA;AA2DD,eAAO,MAAM,qBAAqB,EAAE,SAQnC,CAAC"}
1
+ {"version":3,"file":"5.0.0-discard-drafts.d.ts","sourceRoot":"","sources":["../../../src/migrations/database/5.0.0-discard-drafts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI5D,KAAK,eAAe,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAC9D,KAAK,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAqF3C;;;;;GAKG;AACH,wBAAuB,iBAAiB,CAAC,EACvC,EAAE,EACF,GAAG,EACH,GAAG,EACH,gBAAuB,GACxB,EAAE;IACD,EAAE,EAAE,QAAQ,CAAC;IACb,GAAG,EAAE,IAAI,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,oDAgCA;AA2DD,eAAO,MAAM,qBAAqB,EAAE,SAQnC,CAAC"}
@@ -1,106 +1,168 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const strapiUtils = require("@strapi/utils");
4
- const index = require("../../services/document-service/index.js");
5
- const hasDraftAndPublish = async (trx, meta) => {
6
- const hasTable = await trx.schema.hasTable(meta.tableName);
7
- if (!hasTable) {
8
- return false;
9
- }
10
- const uid = meta.uid;
11
- const model = strapi.getModel(uid);
12
- const hasDP = strapiUtils.contentTypes.hasDraftAndPublish(model);
13
- if (!hasDP) {
14
- return false;
15
- }
16
- return true;
17
- };
18
- async function copyPublishedEntriesToDraft({
19
- db,
20
- trx,
21
- uid
22
- }) {
23
- const meta = db.metadata.get(uid);
24
- const scalarAttributes = Object.values(meta.attributes).reduce((acc, attribute) => {
25
- if (["id"].includes(attribute.columnName)) {
26
- return acc;
1
+ 'use strict';
2
+
3
+ var strapiUtils = require('@strapi/utils');
4
+ var index = require('../../services/document-service/index.js');
5
+
6
+ /**
7
+ * Check if the model has draft and publish enabled.
8
+ */ const hasDraftAndPublish = async (trx, meta)=>{
9
+ const hasTable = await trx.schema.hasTable(meta.tableName);
10
+ if (!hasTable) {
11
+ return false;
27
12
  }
28
- if (strapiUtils.contentTypes.isScalarAttribute(attribute)) {
29
- acc.push(attribute.columnName);
13
+ const uid = meta.uid;
14
+ const model = strapi.getModel(uid);
15
+ const hasDP = strapiUtils.contentTypes.hasDraftAndPublish(model);
16
+ if (!hasDP) {
17
+ return false;
30
18
  }
31
- return acc;
32
- }, []);
33
- await trx.into(
34
- trx.raw(`?? (${scalarAttributes.map(() => `??`).join(", ")})`, [
35
- meta.tableName,
36
- ...scalarAttributes
37
- ])
38
- ).insert((subQb) => {
39
- subQb.select(
40
- ...scalarAttributes.map((att) => {
41
- if (att === "published_at") {
42
- return trx.raw("NULL as ??", "published_at");
19
+ return true;
20
+ };
21
+ /**
22
+ * Copy all the published entries to draft entries, without it's components, dynamic zones or relations.
23
+ * This ensures all necessary draft's exist before copying it's relations.
24
+ */ async function copyPublishedEntriesToDraft({ db, trx, uid }) {
25
+ // Extract all scalar attributes to use in the insert query
26
+ const meta = db.metadata.get(uid);
27
+ // Get scalar attributes that will be copied over the new draft
28
+ const scalarAttributes = Object.values(meta.attributes).reduce((acc, attribute)=>{
29
+ if ([
30
+ 'id'
31
+ ].includes(attribute.columnName)) {
32
+ return acc;
33
+ }
34
+ if (strapiUtils.contentTypes.isScalarAttribute(attribute)) {
35
+ acc.push(attribute.columnName);
43
36
  }
44
- return att;
45
- })
46
- ).from(meta.tableName).whereNotNull("published_at");
47
- });
37
+ return acc;
38
+ }, []);
39
+ /**
40
+ * Query to copy the published entries into draft entries.
41
+ *
42
+ * INSERT INTO tableName (columnName1, columnName2, columnName3, ...)
43
+ * SELECT columnName1, columnName2, columnName3, ...
44
+ * FROM tableName
45
+ */ await trx// INSERT INTO tableName (columnName1, columnName2, columnName3, ...)
46
+ .into(trx.raw(`?? (${scalarAttributes.map(()=>`??`).join(', ')})`, [
47
+ meta.tableName,
48
+ ...scalarAttributes
49
+ ])).insert((subQb)=>{
50
+ // SELECT columnName1, columnName2, columnName3, ...
51
+ subQb.select(...scalarAttributes.map((att)=>{
52
+ // Override 'publishedAt' and 'updatedAt' attributes
53
+ if (att === 'published_at') {
54
+ return trx.raw('NULL as ??', 'published_at');
55
+ }
56
+ return att;
57
+ })).from(meta.tableName)// Only select entries that were published
58
+ .whereNotNull('published_at');
59
+ });
48
60
  }
49
- async function* getBatchToDiscard({
50
- db,
51
- trx,
52
- uid,
53
- batchSize = 1e3
54
- }) {
55
- let offset = 0;
56
- let hasMore = true;
57
- while (hasMore) {
58
- const batch = await db.queryBuilder(uid).select(["id", "documentId", "locale"]).where({ publishedAt: { $ne: null } }).limit(batchSize).offset(offset).orderBy("id").transacting(trx).execute();
59
- if (batch.length < batchSize) {
60
- hasMore = false;
61
+ /**
62
+ * Load a batch of versions to discard.
63
+ *
64
+ * Versions with only a draft version will be ignored.
65
+ * Only versions with a published version (which always have a draft version) will be discarded.
66
+ */ async function* getBatchToDiscard({ db, trx, uid, defaultBatchSize = 1000 }) {
67
+ const client = db.config.connection.client;
68
+ const isSQLite = typeof client === 'string' && [
69
+ 'sqlite',
70
+ 'sqlite3',
71
+ 'better-sqlite3'
72
+ ].includes(client);
73
+ // The SQLite documentation states that the maximum number of terms in a
74
+ // compound SELECT statement is 500 by default.
75
+ // See: https://www.sqlite.org/limits.html
76
+ // To ensure a successful migration, we limit the batch size to 500 for SQLite.
77
+ const batchSize = isSQLite ? Math.min(defaultBatchSize, 500) : defaultBatchSize;
78
+ let offset = 0;
79
+ let hasMore = true;
80
+ while(hasMore){
81
+ // Look for the published entries to discard
82
+ const batch = await db.queryBuilder(uid).select([
83
+ 'id',
84
+ 'documentId',
85
+ 'locale'
86
+ ]).where({
87
+ publishedAt: {
88
+ $ne: null
89
+ }
90
+ }).limit(batchSize).offset(offset).orderBy('id').transacting(trx).execute();
91
+ if (batch.length < batchSize) {
92
+ hasMore = false;
93
+ }
94
+ offset += batchSize;
95
+ yield batch;
61
96
  }
62
- offset += batchSize;
63
- yield batch;
64
- }
65
97
  }
66
- const migrateUp = async (trx, db) => {
67
- const dpModels = [];
68
- for (const meta of db.metadata.values()) {
69
- const hasDP = await hasDraftAndPublish(trx, meta);
70
- if (hasDP) {
71
- dpModels.push(meta);
98
+ /**
99
+ * 2 pass migration to create the draft entries for all the published entries.
100
+ * And then discard the drafts to copy the relations.
101
+ */ const migrateUp = async (trx, db)=>{
102
+ const dpModels = [];
103
+ for (const meta of db.metadata.values()){
104
+ const hasDP = await hasDraftAndPublish(trx, meta);
105
+ if (hasDP) {
106
+ dpModels.push(meta);
107
+ }
72
108
  }
73
- }
74
- for (const model of dpModels) {
75
- await copyPublishedEntriesToDraft({ db, trx, uid: model.uid });
76
- }
77
- const documentService = index.createDocumentService(strapi, {
78
- async validateEntityCreation(_, data) {
79
- return data;
80
- },
81
- async validateEntityUpdate(_, data) {
82
- return data;
109
+ /**
110
+ * Create plain draft entries for all the entries that were published.
111
+ */ for (const model of dpModels){
112
+ await copyPublishedEntriesToDraft({
113
+ db,
114
+ trx,
115
+ uid: model.uid
116
+ });
83
117
  }
84
- });
85
- for (const model of dpModels) {
86
- const discardDraft = async (entry) => documentService(model.uid).discardDraft({
87
- documentId: entry.documentId,
88
- locale: entry.locale
118
+ /**
119
+ * Discard the drafts will copy the relations from the published entries to the newly created drafts.
120
+ *
121
+ * Load a batch of entries (batched to prevent loading millions of rows at once ),
122
+ * and discard them using the document service.
123
+ *
124
+ * NOTE: This is using a custom document service without any validations,
125
+ * to prevent the migration from failing if users already had invalid data in V4.
126
+ * E.g. @see https://github.com/strapi/strapi/issues/21583
127
+ */ const documentService = index.createDocumentService(strapi, {
128
+ async validateEntityCreation (_, data) {
129
+ return data;
130
+ },
131
+ async validateEntityUpdate (_, data) {
132
+ // Data can be partially empty on partial updates
133
+ // This migration doesn't trigger any update (or partial update),
134
+ // so it's safe to return the data as is.
135
+ return data;
136
+ }
89
137
  });
90
- for await (const batch of getBatchToDiscard({ db, trx, uid: model.uid })) {
91
- await strapiUtils.async.map(batch, discardDraft, { concurrency: 1 });
138
+ for (const model of dpModels){
139
+ const discardDraft = async (entry)=>documentService(model.uid).discardDraft({
140
+ documentId: entry.documentId,
141
+ locale: entry.locale
142
+ });
143
+ for await (const batch of getBatchToDiscard({
144
+ db,
145
+ trx,
146
+ uid: model.uid
147
+ })){
148
+ // NOTE: concurrency had to be disabled to prevent a race condition with self-references
149
+ // TODO: improve performance in a safe way
150
+ await strapiUtils.async.map(batch, discardDraft, {
151
+ concurrency: 1
152
+ });
153
+ }
92
154
  }
93
- }
94
155
  };
95
156
  const discardDocumentDrafts = {
96
- name: "core::5.0.0-discard-drafts",
97
- async up(trx, db) {
98
- await migrateUp(trx, db);
99
- },
100
- async down() {
101
- throw new Error("not implemented");
102
- }
157
+ name: 'core::5.0.0-discard-drafts',
158
+ async up (trx, db) {
159
+ await migrateUp(trx, db);
160
+ },
161
+ async down () {
162
+ throw new Error('not implemented');
163
+ }
103
164
  };
165
+
104
166
  exports.discardDocumentDrafts = discardDocumentDrafts;
105
167
  exports.getBatchToDiscard = getBatchToDiscard;
106
168
  //# sourceMappingURL=5.0.0-discard-drafts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"5.0.0-discard-drafts.js","sources":["../../../src/migrations/database/5.0.0-discard-drafts.ts"],"sourcesContent":["/**\n * This migration is responsible for creating the draft counterpart for all the entries that were in a published state.\n *\n * In v4, entries could either be in a draft or published state, but not both at the same time.\n * In v5, we introduced the concept of document, and an entry can be in a draft or published state.\n *\n * This means the migration needs to create the draft counterpart if an entry was published.\n *\n * This migration performs the following steps:\n * 1. Creates draft entries for all published entries, without it's components, dynamic zones or relations.\n * 2. Using the document service, discard those same drafts to copy its relations.\n */\n\n/* eslint-disable no-continue */\nimport type { UID } from '@strapi/types';\nimport type { Database, Migration } from '@strapi/database';\nimport { async, contentTypes } from '@strapi/utils';\nimport { createDocumentService } from '../../services/document-service';\n\ntype DocumentVersion = { documentId: string; locale: string };\ntype Knex = Parameters<Migration['up']>[0];\n\n/**\n * Check if the model has draft and publish enabled.\n */\nconst hasDraftAndPublish = async (trx: Knex, meta: any) => {\n const hasTable = await trx.schema.hasTable(meta.tableName);\n\n if (!hasTable) {\n return false;\n }\n\n const uid = meta.uid as UID.ContentType;\n const model = strapi.getModel(uid);\n const hasDP = contentTypes.hasDraftAndPublish(model);\n if (!hasDP) {\n return false;\n }\n\n return true;\n};\n\n/**\n * Copy all the published entries to draft entries, without it's components, dynamic zones or relations.\n * This ensures all necessary draft's exist before copying it's relations.\n */\nasync function copyPublishedEntriesToDraft({\n db,\n trx,\n uid,\n}: {\n db: Database;\n trx: Knex;\n uid: string;\n}) {\n // Extract all scalar attributes to use in the insert query\n const meta = db.metadata.get(uid);\n\n // Get scalar attributes that will be copied over the new draft\n const scalarAttributes = Object.values(meta.attributes).reduce((acc, attribute: any) => {\n if (['id'].includes(attribute.columnName)) {\n return acc;\n }\n\n if (contentTypes.isScalarAttribute(attribute)) {\n acc.push(attribute.columnName);\n }\n\n return acc;\n }, [] as string[]);\n\n /**\n * Query to copy the published entries into draft entries.\n *\n * INSERT INTO tableName (columnName1, columnName2, columnName3, ...)\n * SELECT columnName1, columnName2, columnName3, ...\n * FROM tableName\n */\n await trx\n // INSERT INTO tableName (columnName1, columnName2, columnName3, ...)\n .into(\n trx.raw(`?? (${scalarAttributes.map(() => `??`).join(', ')})`, [\n meta.tableName,\n ...scalarAttributes,\n ])\n )\n .insert((subQb: typeof trx) => {\n // SELECT columnName1, columnName2, columnName3, ...\n subQb\n .select(\n ...scalarAttributes.map((att: string) => {\n // Override 'publishedAt' and 'updatedAt' attributes\n if (att === 'published_at') {\n return trx.raw('NULL as ??', 'published_at');\n }\n\n return att;\n })\n )\n .from(meta.tableName)\n // Only select entries that were published\n .whereNotNull('published_at');\n });\n}\n\n/**\n * Load a batch of versions to discard.\n *\n * Versions with only a draft version will be ignored.\n * Only versions with a published version (which always have a draft version) will be discarded.\n */\nexport async function* getBatchToDiscard({\n db,\n trx,\n uid,\n batchSize = 1000,\n}: {\n db: Database;\n trx: Knex;\n uid: string;\n batchSize?: number;\n}) {\n let offset = 0;\n let hasMore = true;\n\n while (hasMore) {\n // Look for the published entries to discard\n const batch: DocumentVersion[] = await db\n .queryBuilder(uid)\n .select(['id', 'documentId', 'locale'])\n .where({ publishedAt: { $ne: null } })\n .limit(batchSize)\n .offset(offset)\n .orderBy('id')\n .transacting(trx)\n .execute();\n\n if (batch.length < batchSize) {\n hasMore = false;\n }\n\n offset += batchSize;\n yield batch;\n }\n}\n\n/**\n * 2 pass migration to create the draft entries for all the published entries.\n * And then discard the drafts to copy the relations.\n */\nconst migrateUp = async (trx: Knex, db: Database) => {\n const dpModels = [];\n for (const meta of db.metadata.values()) {\n const hasDP = await hasDraftAndPublish(trx, meta);\n if (hasDP) {\n dpModels.push(meta);\n }\n }\n\n /**\n * Create plain draft entries for all the entries that were published.\n */\n for (const model of dpModels) {\n await copyPublishedEntriesToDraft({ db, trx, uid: model.uid });\n }\n\n /**\n * Discard the drafts will copy the relations from the published entries to the newly created drafts.\n *\n * Load a batch of entries (batched to prevent loading millions of rows at once ),\n * and discard them using the document service.\n *\n * NOTE: This is using a custom document service without any validations,\n * to prevent the migration from failing if users already had invalid data in V4.\n * E.g. @see https://github.com/strapi/strapi/issues/21583\n */\n const documentService = createDocumentService(strapi, {\n async validateEntityCreation(_, data) {\n return data;\n },\n async validateEntityUpdate(_, data) {\n // Data can be partially empty on partial updates\n // This migration doesn't trigger any update (or partial update),\n // so it's safe to return the data as is.\n return data as any;\n },\n });\n\n for (const model of dpModels) {\n const discardDraft = async (entry: DocumentVersion) =>\n documentService(model.uid as UID.ContentType).discardDraft({\n documentId: entry.documentId,\n locale: entry.locale,\n });\n\n for await (const batch of getBatchToDiscard({ db, trx, uid: model.uid })) {\n // NOTE: concurrency had to be disabled to prevent a race condition with self-references\n // TODO: improve performance in a safe way\n await async.map(batch, discardDraft, { concurrency: 1 });\n }\n }\n};\n\nexport const discardDocumentDrafts: Migration = {\n name: 'core::5.0.0-discard-drafts',\n async up(trx, db) {\n await migrateUp(trx, db);\n },\n async down() {\n throw new Error('not implemented');\n },\n};\n"],"names":["contentTypes","createDocumentService","async"],"mappings":"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"}
1
+ {"version":3,"file":"5.0.0-discard-drafts.js","sources":["../../../src/migrations/database/5.0.0-discard-drafts.ts"],"sourcesContent":["/**\n * This migration is responsible for creating the draft counterpart for all the entries that were in a published state.\n *\n * In v4, entries could either be in a draft or published state, but not both at the same time.\n * In v5, we introduced the concept of document, and an entry can be in a draft or published state.\n *\n * This means the migration needs to create the draft counterpart if an entry was published.\n *\n * This migration performs the following steps:\n * 1. Creates draft entries for all published entries, without it's components, dynamic zones or relations.\n * 2. Using the document service, discard those same drafts to copy its relations.\n */\n\n/* eslint-disable no-continue */\nimport type { UID } from '@strapi/types';\nimport type { Database, Migration } from '@strapi/database';\nimport { async, contentTypes } from '@strapi/utils';\nimport { createDocumentService } from '../../services/document-service';\n\ntype DocumentVersion = { documentId: string; locale: string };\ntype Knex = Parameters<Migration['up']>[0];\n\n/**\n * Check if the model has draft and publish enabled.\n */\nconst hasDraftAndPublish = async (trx: Knex, meta: any) => {\n const hasTable = await trx.schema.hasTable(meta.tableName);\n\n if (!hasTable) {\n return false;\n }\n\n const uid = meta.uid as UID.ContentType;\n const model = strapi.getModel(uid);\n const hasDP = contentTypes.hasDraftAndPublish(model);\n if (!hasDP) {\n return false;\n }\n\n return true;\n};\n\n/**\n * Copy all the published entries to draft entries, without it's components, dynamic zones or relations.\n * This ensures all necessary draft's exist before copying it's relations.\n */\nasync function copyPublishedEntriesToDraft({\n db,\n trx,\n uid,\n}: {\n db: Database;\n trx: Knex;\n uid: string;\n}) {\n // Extract all scalar attributes to use in the insert query\n const meta = db.metadata.get(uid);\n\n // Get scalar attributes that will be copied over the new draft\n const scalarAttributes = Object.values(meta.attributes).reduce((acc, attribute: any) => {\n if (['id'].includes(attribute.columnName)) {\n return acc;\n }\n\n if (contentTypes.isScalarAttribute(attribute)) {\n acc.push(attribute.columnName);\n }\n\n return acc;\n }, [] as string[]);\n\n /**\n * Query to copy the published entries into draft entries.\n *\n * INSERT INTO tableName (columnName1, columnName2, columnName3, ...)\n * SELECT columnName1, columnName2, columnName3, ...\n * FROM tableName\n */\n await trx\n // INSERT INTO tableName (columnName1, columnName2, columnName3, ...)\n .into(\n trx.raw(`?? (${scalarAttributes.map(() => `??`).join(', ')})`, [\n meta.tableName,\n ...scalarAttributes,\n ])\n )\n .insert((subQb: typeof trx) => {\n // SELECT columnName1, columnName2, columnName3, ...\n subQb\n .select(\n ...scalarAttributes.map((att: string) => {\n // Override 'publishedAt' and 'updatedAt' attributes\n if (att === 'published_at') {\n return trx.raw('NULL as ??', 'published_at');\n }\n\n return att;\n })\n )\n .from(meta.tableName)\n // Only select entries that were published\n .whereNotNull('published_at');\n });\n}\n\n/**\n * Load a batch of versions to discard.\n *\n * Versions with only a draft version will be ignored.\n * Only versions with a published version (which always have a draft version) will be discarded.\n */\nexport async function* getBatchToDiscard({\n db,\n trx,\n uid,\n defaultBatchSize = 1000,\n}: {\n db: Database;\n trx: Knex;\n uid: string;\n defaultBatchSize?: number;\n}) {\n const client = db.config.connection.client;\n const isSQLite =\n typeof client === 'string' && ['sqlite', 'sqlite3', 'better-sqlite3'].includes(client);\n\n // The SQLite documentation states that the maximum number of terms in a\n // compound SELECT statement is 500 by default.\n // See: https://www.sqlite.org/limits.html\n // To ensure a successful migration, we limit the batch size to 500 for SQLite.\n const batchSize = isSQLite ? Math.min(defaultBatchSize, 500) : defaultBatchSize;\n let offset = 0;\n let hasMore = true;\n\n while (hasMore) {\n // Look for the published entries to discard\n const batch: DocumentVersion[] = await db\n .queryBuilder(uid)\n .select(['id', 'documentId', 'locale'])\n .where({ publishedAt: { $ne: null } })\n .limit(batchSize)\n .offset(offset)\n .orderBy('id')\n .transacting(trx)\n .execute();\n\n if (batch.length < batchSize) {\n hasMore = false;\n }\n\n offset += batchSize;\n yield batch;\n }\n}\n\n/**\n * 2 pass migration to create the draft entries for all the published entries.\n * And then discard the drafts to copy the relations.\n */\nconst migrateUp = async (trx: Knex, db: Database) => {\n const dpModels = [];\n for (const meta of db.metadata.values()) {\n const hasDP = await hasDraftAndPublish(trx, meta);\n if (hasDP) {\n dpModels.push(meta);\n }\n }\n\n /**\n * Create plain draft entries for all the entries that were published.\n */\n for (const model of dpModels) {\n await copyPublishedEntriesToDraft({ db, trx, uid: model.uid });\n }\n\n /**\n * Discard the drafts will copy the relations from the published entries to the newly created drafts.\n *\n * Load a batch of entries (batched to prevent loading millions of rows at once ),\n * and discard them using the document service.\n *\n * NOTE: This is using a custom document service without any validations,\n * to prevent the migration from failing if users already had invalid data in V4.\n * E.g. @see https://github.com/strapi/strapi/issues/21583\n */\n const documentService = createDocumentService(strapi, {\n async validateEntityCreation(_, data) {\n return data;\n },\n async validateEntityUpdate(_, data) {\n // Data can be partially empty on partial updates\n // This migration doesn't trigger any update (or partial update),\n // so it's safe to return the data as is.\n return data as any;\n },\n });\n\n for (const model of dpModels) {\n const discardDraft = async (entry: DocumentVersion) =>\n documentService(model.uid as UID.ContentType).discardDraft({\n documentId: entry.documentId,\n locale: entry.locale,\n });\n\n for await (const batch of getBatchToDiscard({ db, trx, uid: model.uid })) {\n // NOTE: concurrency had to be disabled to prevent a race condition with self-references\n // TODO: improve performance in a safe way\n await async.map(batch, discardDraft, { concurrency: 1 });\n }\n }\n};\n\nexport const discardDocumentDrafts: Migration = {\n name: 'core::5.0.0-discard-drafts',\n async up(trx, db) {\n await migrateUp(trx, db);\n },\n async down() {\n throw new Error('not implemented');\n },\n};\n"],"names":["hasDraftAndPublish","trx","meta","hasTable","schema","tableName","uid","model","strapi","getModel","hasDP","contentTypes","copyPublishedEntriesToDraft","db","metadata","get","scalarAttributes","Object","values","attributes","reduce","acc","attribute","includes","columnName","isScalarAttribute","push","into","raw","map","join","insert","subQb","select","att","from","whereNotNull","getBatchToDiscard","defaultBatchSize","client","config","connection","isSQLite","batchSize","Math","min","offset","hasMore","batch","queryBuilder","where","publishedAt","$ne","limit","orderBy","transacting","execute","length","migrateUp","dpModels","documentService","createDocumentService","validateEntityCreation","_","data","validateEntityUpdate","discardDraft","entry","documentId","locale","async","concurrency","discardDocumentDrafts","name","up","down","Error"],"mappings":"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"}