@strapi/core 0.0.0-experimental.e60ec1829240dae21c1e1d29076681c322288813 → 0.0.0-experimental.e65c671348c825470427c509f1273497b0b4b828

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 (853) hide show
  1. package/LICENSE +18 -3
  2. package/dist/Strapi.d.ts +3 -1
  3. package/dist/Strapi.d.ts.map +1 -1
  4. package/dist/Strapi.js +453 -369
  5. package/dist/Strapi.js.map +1 -1
  6. package/dist/Strapi.mjs +442 -377
  7. package/dist/Strapi.mjs.map +1 -1
  8. package/dist/compile.js +23 -14
  9. package/dist/compile.js.map +1 -1
  10. package/dist/compile.mjs +22 -14
  11. package/dist/compile.mjs.map +1 -1
  12. package/dist/configuration/config-loader.js +110 -97
  13. package/dist/configuration/config-loader.js.map +1 -1
  14. package/dist/configuration/config-loader.mjs +109 -96
  15. package/dist/configuration/config-loader.mjs.map +1 -1
  16. package/dist/configuration/get-dirs.js +31 -29
  17. package/dist/configuration/get-dirs.js.map +1 -1
  18. package/dist/configuration/get-dirs.mjs +30 -30
  19. package/dist/configuration/get-dirs.mjs.map +1 -1
  20. package/dist/configuration/index.d.ts +1 -0
  21. package/dist/configuration/index.d.ts.map +1 -1
  22. package/dist/configuration/index.js +85 -73
  23. package/dist/configuration/index.js.map +1 -1
  24. package/dist/configuration/index.mjs +84 -69
  25. package/dist/configuration/index.mjs.map +1 -1
  26. package/dist/configuration/urls.d.ts.map +1 -1
  27. package/dist/configuration/urls.js +74 -61
  28. package/dist/configuration/urls.js.map +1 -1
  29. package/dist/configuration/urls.mjs +73 -62
  30. package/dist/configuration/urls.mjs.map +1 -1
  31. package/dist/container.js +27 -23
  32. package/dist/container.js.map +1 -1
  33. package/dist/container.mjs +26 -24
  34. package/dist/container.mjs.map +1 -1
  35. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  36. package/dist/core-api/controller/collection-type.js +77 -74
  37. package/dist/core-api/controller/collection-type.js.map +1 -1
  38. package/dist/core-api/controller/collection-type.mjs +76 -75
  39. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  40. package/dist/core-api/controller/index.d.ts.map +1 -1
  41. package/dist/core-api/controller/index.js +64 -48
  42. package/dist/core-api/controller/index.js.map +1 -1
  43. package/dist/core-api/controller/index.mjs +63 -49
  44. package/dist/core-api/controller/index.mjs.map +1 -1
  45. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  46. package/dist/core-api/controller/single-type.js +41 -39
  47. package/dist/core-api/controller/single-type.js.map +1 -1
  48. package/dist/core-api/controller/single-type.mjs +40 -40
  49. package/dist/core-api/controller/single-type.mjs.map +1 -1
  50. package/dist/core-api/controller/transform.d.ts +3 -2
  51. package/dist/core-api/controller/transform.d.ts.map +1 -1
  52. package/dist/core-api/controller/transform.js +83 -64
  53. package/dist/core-api/controller/transform.js.map +1 -1
  54. package/dist/core-api/controller/transform.mjs +82 -65
  55. package/dist/core-api/controller/transform.mjs.map +1 -1
  56. package/dist/core-api/routes/index.d.ts +4 -22
  57. package/dist/core-api/routes/index.d.ts.map +1 -1
  58. package/dist/core-api/routes/index.js +205 -61
  59. package/dist/core-api/routes/index.js.map +1 -1
  60. package/dist/core-api/routes/index.mjs +185 -62
  61. package/dist/core-api/routes/index.mjs.map +1 -1
  62. package/dist/core-api/routes/validation/attributes.d.ts +244 -0
  63. package/dist/core-api/routes/validation/attributes.d.ts.map +1 -0
  64. package/dist/core-api/routes/validation/attributes.js +560 -0
  65. package/dist/core-api/routes/validation/attributes.js.map +1 -0
  66. package/dist/core-api/routes/validation/attributes.mjs +521 -0
  67. package/dist/core-api/routes/validation/attributes.mjs.map +1 -0
  68. package/dist/core-api/routes/validation/common.d.ts +105 -0
  69. package/dist/core-api/routes/validation/common.d.ts.map +1 -0
  70. package/dist/core-api/routes/validation/common.js +116 -0
  71. package/dist/core-api/routes/validation/common.js.map +1 -0
  72. package/dist/core-api/routes/validation/common.mjs +95 -0
  73. package/dist/core-api/routes/validation/common.mjs.map +1 -0
  74. package/dist/core-api/routes/validation/component.d.ts +34 -0
  75. package/dist/core-api/routes/validation/component.d.ts.map +1 -0
  76. package/dist/core-api/routes/validation/component.js +45 -0
  77. package/dist/core-api/routes/validation/component.js.map +1 -0
  78. package/dist/core-api/routes/validation/component.mjs +43 -0
  79. package/dist/core-api/routes/validation/component.mjs.map +1 -0
  80. package/dist/core-api/routes/validation/constants.d.ts +8 -0
  81. package/dist/core-api/routes/validation/constants.d.ts.map +1 -0
  82. package/dist/core-api/routes/validation/constants.js +18 -0
  83. package/dist/core-api/routes/validation/constants.js.map +1 -0
  84. package/dist/core-api/routes/validation/constants.mjs +16 -0
  85. package/dist/core-api/routes/validation/constants.mjs.map +1 -0
  86. package/dist/core-api/routes/validation/content-type.d.ts +128 -0
  87. package/dist/core-api/routes/validation/content-type.d.ts.map +1 -0
  88. package/dist/core-api/routes/validation/content-type.js +201 -0
  89. package/dist/core-api/routes/validation/content-type.js.map +1 -0
  90. package/dist/core-api/routes/validation/content-type.mjs +180 -0
  91. package/dist/core-api/routes/validation/content-type.mjs.map +1 -0
  92. package/dist/core-api/routes/validation/index.d.ts +5 -0
  93. package/dist/core-api/routes/validation/index.d.ts.map +1 -0
  94. package/dist/core-api/routes/validation/mappers.d.ts +105 -0
  95. package/dist/core-api/routes/validation/mappers.d.ts.map +1 -0
  96. package/dist/core-api/routes/validation/mappers.js +273 -0
  97. package/dist/core-api/routes/validation/mappers.js.map +1 -0
  98. package/dist/core-api/routes/validation/mappers.mjs +249 -0
  99. package/dist/core-api/routes/validation/mappers.mjs.map +1 -0
  100. package/dist/core-api/routes/validation/utils.d.ts +47 -0
  101. package/dist/core-api/routes/validation/utils.d.ts.map +1 -0
  102. package/dist/core-api/routes/validation/utils.js +128 -0
  103. package/dist/core-api/routes/validation/utils.js.map +1 -0
  104. package/dist/core-api/routes/validation/utils.mjs +106 -0
  105. package/dist/core-api/routes/validation/utils.mjs.map +1 -0
  106. package/dist/core-api/service/collection-type.d.ts +3 -9
  107. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  108. package/dist/core-api/service/collection-type.js +73 -59
  109. package/dist/core-api/service/collection-type.js.map +1 -1
  110. package/dist/core-api/service/collection-type.mjs +72 -61
  111. package/dist/core-api/service/collection-type.mjs.map +1 -1
  112. package/dist/core-api/service/core-service.js +9 -8
  113. package/dist/core-api/service/core-service.js.map +1 -1
  114. package/dist/core-api/service/core-service.mjs +8 -9
  115. package/dist/core-api/service/core-service.mjs.map +1 -1
  116. package/dist/core-api/service/index.js +13 -13
  117. package/dist/core-api/service/index.js.map +1 -1
  118. package/dist/core-api/service/index.mjs +12 -14
  119. package/dist/core-api/service/index.mjs.map +1 -1
  120. package/dist/core-api/service/pagination.d.ts +4 -11
  121. package/dist/core-api/service/pagination.d.ts.map +1 -1
  122. package/dist/core-api/service/pagination.js +68 -68
  123. package/dist/core-api/service/pagination.js.map +1 -1
  124. package/dist/core-api/service/pagination.mjs +66 -71
  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.d.ts +14 -0
  167. package/dist/index.d.ts.map +1 -1
  168. package/dist/index.js +29 -26
  169. package/dist/index.js.map +1 -1
  170. package/dist/index.mjs +29 -29
  171. package/dist/index.mjs.map +1 -1
  172. package/dist/loaders/admin.d.ts.map +1 -1
  173. package/dist/loaders/admin.js +21 -20
  174. package/dist/loaders/admin.js.map +1 -1
  175. package/dist/loaders/admin.mjs +20 -20
  176. package/dist/loaders/admin.mjs.map +1 -1
  177. package/dist/loaders/apis.js +143 -120
  178. package/dist/loaders/apis.js.map +1 -1
  179. package/dist/loaders/apis.mjs +142 -119
  180. package/dist/loaders/apis.mjs.map +1 -1
  181. package/dist/loaders/components.js +33 -34
  182. package/dist/loaders/components.js.map +1 -1
  183. package/dist/loaders/components.mjs +32 -34
  184. package/dist/loaders/components.mjs.map +1 -1
  185. package/dist/loaders/index.js +22 -20
  186. package/dist/loaders/index.js.map +1 -1
  187. package/dist/loaders/index.mjs +21 -21
  188. package/dist/loaders/index.mjs.map +1 -1
  189. package/dist/loaders/middlewares.js +29 -25
  190. package/dist/loaders/middlewares.js.map +1 -1
  191. package/dist/loaders/middlewares.mjs +28 -25
  192. package/dist/loaders/middlewares.mjs.map +1 -1
  193. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  194. package/dist/loaders/plugins/get-enabled-plugins.js +125 -102
  195. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  196. package/dist/loaders/plugins/get-enabled-plugins.mjs +124 -101
  197. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  198. package/dist/loaders/plugins/get-user-plugins-config.js +25 -24
  199. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  200. package/dist/loaders/plugins/get-user-plugins-config.mjs +24 -23
  201. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  202. package/dist/loaders/plugins/index.d.ts.map +1 -1
  203. package/dist/loaders/plugins/index.js +141 -104
  204. package/dist/loaders/plugins/index.js.map +1 -1
  205. package/dist/loaders/plugins/index.mjs +121 -104
  206. package/dist/loaders/plugins/index.mjs.map +1 -1
  207. package/dist/loaders/policies.js +24 -20
  208. package/dist/loaders/policies.js.map +1 -1
  209. package/dist/loaders/policies.mjs +23 -20
  210. package/dist/loaders/policies.mjs.map +1 -1
  211. package/dist/loaders/sanitizers.js +10 -4
  212. package/dist/loaders/sanitizers.js.map +1 -1
  213. package/dist/loaders/sanitizers.mjs +9 -6
  214. package/dist/loaders/sanitizers.mjs.map +1 -1
  215. package/dist/loaders/src-index.js +35 -27
  216. package/dist/loaders/src-index.js.map +1 -1
  217. package/dist/loaders/src-index.mjs +34 -29
  218. package/dist/loaders/src-index.mjs.map +1 -1
  219. package/dist/loaders/validators.js +9 -4
  220. package/dist/loaders/validators.js.map +1 -1
  221. package/dist/loaders/validators.mjs +8 -6
  222. package/dist/loaders/validators.mjs.map +1 -1
  223. package/dist/middlewares/body.d.ts.map +1 -1
  224. package/dist/middlewares/body.js +58 -54
  225. package/dist/middlewares/body.js.map +1 -1
  226. package/dist/middlewares/body.mjs +57 -51
  227. package/dist/middlewares/body.mjs.map +1 -1
  228. package/dist/middlewares/compression.js +6 -6
  229. package/dist/middlewares/compression.js.map +1 -1
  230. package/dist/middlewares/compression.mjs +5 -5
  231. package/dist/middlewares/compression.mjs.map +1 -1
  232. package/dist/middlewares/cors.d.ts +9 -1
  233. package/dist/middlewares/cors.d.ts.map +1 -1
  234. package/dist/middlewares/cors.js +81 -46
  235. package/dist/middlewares/cors.js.map +1 -1
  236. package/dist/middlewares/cors.mjs +78 -44
  237. package/dist/middlewares/cors.mjs.map +1 -1
  238. package/dist/middlewares/errors.js +32 -30
  239. package/dist/middlewares/errors.js.map +1 -1
  240. package/dist/middlewares/errors.mjs +31 -31
  241. package/dist/middlewares/errors.mjs.map +1 -1
  242. package/dist/middlewares/favicon.js +27 -17
  243. package/dist/middlewares/favicon.js.map +1 -1
  244. package/dist/middlewares/favicon.mjs +26 -16
  245. package/dist/middlewares/favicon.mjs.map +1 -1
  246. package/dist/middlewares/index.js +32 -30
  247. package/dist/middlewares/index.js.map +1 -1
  248. package/dist/middlewares/index.mjs +31 -31
  249. package/dist/middlewares/index.mjs.map +1 -1
  250. package/dist/middlewares/ip.js +6 -6
  251. package/dist/middlewares/ip.js.map +1 -1
  252. package/dist/middlewares/ip.mjs +5 -5
  253. package/dist/middlewares/ip.mjs.map +1 -1
  254. package/dist/middlewares/logger.js +10 -9
  255. package/dist/middlewares/logger.js.map +1 -1
  256. package/dist/middlewares/logger.mjs +9 -10
  257. package/dist/middlewares/logger.mjs.map +1 -1
  258. package/dist/middlewares/powered-by.js +13 -9
  259. package/dist/middlewares/powered-by.js.map +1 -1
  260. package/dist/middlewares/powered-by.mjs +12 -10
  261. package/dist/middlewares/powered-by.mjs.map +1 -1
  262. package/dist/middlewares/public.js +33 -29
  263. package/dist/middlewares/public.js.map +1 -1
  264. package/dist/middlewares/public.mjs +32 -28
  265. package/dist/middlewares/public.mjs.map +1 -1
  266. package/dist/middlewares/query.d.ts.map +1 -1
  267. package/dist/middlewares/query.js +35 -32
  268. package/dist/middlewares/query.js.map +1 -1
  269. package/dist/middlewares/query.mjs +34 -31
  270. package/dist/middlewares/query.mjs.map +1 -1
  271. package/dist/middlewares/response-time.js +10 -9
  272. package/dist/middlewares/response-time.js.map +1 -1
  273. package/dist/middlewares/response-time.mjs +9 -10
  274. package/dist/middlewares/response-time.mjs.map +1 -1
  275. package/dist/middlewares/responses.js +14 -12
  276. package/dist/middlewares/responses.js.map +1 -1
  277. package/dist/middlewares/responses.mjs +13 -13
  278. package/dist/middlewares/responses.mjs.map +1 -1
  279. package/dist/middlewares/security.d.ts.map +1 -1
  280. package/dist/middlewares/security.js +110 -65
  281. package/dist/middlewares/security.js.map +1 -1
  282. package/dist/middlewares/security.mjs +108 -63
  283. package/dist/middlewares/security.mjs.map +1 -1
  284. package/dist/middlewares/session.js +26 -25
  285. package/dist/middlewares/session.js.map +1 -1
  286. package/dist/middlewares/session.mjs +25 -24
  287. package/dist/middlewares/session.mjs.map +1 -1
  288. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +27 -6
  289. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  290. package/dist/migrations/database/5.0.0-discard-drafts.js +154 -35
  291. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
  292. package/dist/migrations/database/5.0.0-discard-drafts.mjs +152 -36
  293. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
  294. package/dist/migrations/draft-publish.d.ts +2 -2
  295. package/dist/migrations/draft-publish.d.ts.map +1 -1
  296. package/dist/migrations/draft-publish.js +59 -49
  297. package/dist/migrations/draft-publish.js.map +1 -1
  298. package/dist/migrations/draft-publish.mjs +58 -51
  299. package/dist/migrations/draft-publish.mjs.map +1 -1
  300. package/dist/migrations/first-published-at.d.ts +4 -0
  301. package/dist/migrations/first-published-at.d.ts.map +1 -0
  302. package/dist/migrations/first-published-at.js +51 -0
  303. package/dist/migrations/first-published-at.js.map +1 -0
  304. package/dist/migrations/first-published-at.mjs +49 -0
  305. package/dist/migrations/first-published-at.mjs.map +1 -0
  306. package/dist/migrations/i18n.d.ts +5 -0
  307. package/dist/migrations/i18n.d.ts.map +1 -0
  308. package/dist/migrations/i18n.js +71 -0
  309. package/dist/migrations/i18n.js.map +1 -0
  310. package/dist/migrations/i18n.mjs +68 -0
  311. package/dist/migrations/i18n.mjs.map +1 -0
  312. package/dist/migrations/index.d.ts +5 -0
  313. package/dist/migrations/index.d.ts.map +1 -0
  314. package/dist/migrations/index.js +34 -0
  315. package/dist/migrations/index.js.map +1 -0
  316. package/dist/migrations/index.mjs +31 -0
  317. package/dist/migrations/index.mjs.map +1 -0
  318. package/dist/package.json.js +186 -0
  319. package/dist/package.json.js.map +1 -0
  320. package/dist/package.json.mjs +163 -0
  321. package/dist/package.json.mjs.map +1 -0
  322. package/dist/providers/admin.d.ts.map +1 -1
  323. package/dist/providers/admin.js +27 -17
  324. package/dist/providers/admin.js.map +1 -1
  325. package/dist/providers/admin.mjs +26 -19
  326. package/dist/providers/admin.mjs.map +1 -1
  327. package/dist/providers/coreStore.js +13 -8
  328. package/dist/providers/coreStore.js.map +1 -1
  329. package/dist/providers/coreStore.mjs +12 -10
  330. package/dist/providers/coreStore.mjs.map +1 -1
  331. package/dist/providers/cron.js +19 -16
  332. package/dist/providers/cron.js.map +1 -1
  333. package/dist/providers/cron.mjs +18 -18
  334. package/dist/providers/cron.mjs.map +1 -1
  335. package/dist/providers/index.js +18 -9
  336. package/dist/providers/index.js.map +1 -1
  337. package/dist/providers/index.mjs +17 -10
  338. package/dist/providers/index.mjs.map +1 -1
  339. package/dist/providers/provider.js +4 -3
  340. package/dist/providers/provider.js.map +1 -1
  341. package/dist/providers/provider.mjs +3 -4
  342. package/dist/providers/provider.mjs.map +1 -1
  343. package/dist/providers/registries.js +37 -32
  344. package/dist/providers/registries.js.map +1 -1
  345. package/dist/providers/registries.mjs +36 -34
  346. package/dist/providers/registries.mjs.map +1 -1
  347. package/dist/providers/telemetry.js +19 -16
  348. package/dist/providers/telemetry.js.map +1 -1
  349. package/dist/providers/telemetry.mjs +18 -18
  350. package/dist/providers/telemetry.mjs.map +1 -1
  351. package/dist/providers/webhooks.js +28 -26
  352. package/dist/providers/webhooks.js.map +1 -1
  353. package/dist/providers/webhooks.mjs +27 -28
  354. package/dist/providers/webhooks.mjs.map +1 -1
  355. package/dist/registries/apis.js +23 -20
  356. package/dist/registries/apis.js.map +1 -1
  357. package/dist/registries/apis.mjs +22 -22
  358. package/dist/registries/apis.mjs.map +1 -1
  359. package/dist/registries/components.js +35 -37
  360. package/dist/registries/components.js.map +1 -1
  361. package/dist/registries/components.mjs +34 -39
  362. package/dist/registries/components.mjs.map +1 -1
  363. package/dist/registries/content-types.js +54 -59
  364. package/dist/registries/content-types.js.map +1 -1
  365. package/dist/registries/content-types.mjs +53 -61
  366. package/dist/registries/content-types.mjs.map +1 -1
  367. package/dist/registries/controllers.js +70 -71
  368. package/dist/registries/controllers.js.map +1 -1
  369. package/dist/registries/controllers.mjs +69 -73
  370. package/dist/registries/controllers.mjs.map +1 -1
  371. package/dist/registries/custom-fields.js +75 -65
  372. package/dist/registries/custom-fields.js.map +1 -1
  373. package/dist/registries/custom-fields.mjs +74 -67
  374. package/dist/registries/custom-fields.mjs.map +1 -1
  375. package/dist/registries/hooks.js +46 -49
  376. package/dist/registries/hooks.js.map +1 -1
  377. package/dist/registries/hooks.mjs +45 -51
  378. package/dist/registries/hooks.mjs.map +1 -1
  379. package/dist/registries/middlewares.js +49 -51
  380. package/dist/registries/middlewares.js.map +1 -1
  381. package/dist/registries/middlewares.mjs +48 -53
  382. package/dist/registries/middlewares.mjs.map +1 -1
  383. package/dist/registries/models.js +14 -13
  384. package/dist/registries/models.js.map +1 -1
  385. package/dist/registries/models.mjs +13 -14
  386. package/dist/registries/models.mjs.map +1 -1
  387. package/dist/registries/modules.js +39 -36
  388. package/dist/registries/modules.js.map +1 -1
  389. package/dist/registries/modules.mjs +38 -38
  390. package/dist/registries/modules.mjs.map +1 -1
  391. package/dist/registries/namespace.js +21 -20
  392. package/dist/registries/namespace.js.map +1 -1
  393. package/dist/registries/namespace.mjs +20 -23
  394. package/dist/registries/namespace.mjs.map +1 -1
  395. package/dist/registries/plugins.js +23 -20
  396. package/dist/registries/plugins.js.map +1 -1
  397. package/dist/registries/plugins.mjs +22 -22
  398. package/dist/registries/plugins.mjs.map +1 -1
  399. package/dist/registries/policies.d.ts +1 -1
  400. package/dist/registries/policies.d.ts.map +1 -1
  401. package/dist/registries/policies.js +103 -96
  402. package/dist/registries/policies.js.map +1 -1
  403. package/dist/registries/policies.mjs +102 -98
  404. package/dist/registries/policies.mjs.map +1 -1
  405. package/dist/registries/sanitizers.js +23 -22
  406. package/dist/registries/sanitizers.js.map +1 -1
  407. package/dist/registries/sanitizers.mjs +22 -22
  408. package/dist/registries/sanitizers.mjs.map +1 -1
  409. package/dist/registries/services.js +71 -71
  410. package/dist/registries/services.js.map +1 -1
  411. package/dist/registries/services.mjs +70 -73
  412. package/dist/registries/services.mjs.map +1 -1
  413. package/dist/registries/validators.js +23 -22
  414. package/dist/registries/validators.js.map +1 -1
  415. package/dist/registries/validators.mjs +22 -22
  416. package/dist/registries/validators.mjs.map +1 -1
  417. package/dist/services/auth/index.js +74 -74
  418. package/dist/services/auth/index.js.map +1 -1
  419. package/dist/services/auth/index.mjs +73 -74
  420. package/dist/services/auth/index.mjs.map +1 -1
  421. package/dist/services/config.js +47 -43
  422. package/dist/services/config.js.map +1 -1
  423. package/dist/services/config.mjs +46 -44
  424. package/dist/services/config.mjs.map +1 -1
  425. package/dist/services/content-api/index.d.ts +11 -13
  426. package/dist/services/content-api/index.d.ts.map +1 -1
  427. package/dist/services/content-api/index.js +80 -79
  428. package/dist/services/content-api/index.js.map +1 -1
  429. package/dist/services/content-api/index.mjs +79 -79
  430. package/dist/services/content-api/index.mjs.map +1 -1
  431. package/dist/services/content-api/permissions/engine.js +8 -5
  432. package/dist/services/content-api/permissions/engine.js.map +1 -1
  433. package/dist/services/content-api/permissions/engine.mjs +7 -5
  434. package/dist/services/content-api/permissions/engine.mjs.map +1 -1
  435. package/dist/services/content-api/permissions/index.d.ts +10 -12
  436. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  437. package/dist/services/content-api/permissions/index.js +101 -81
  438. package/dist/services/content-api/permissions/index.js.map +1 -1
  439. package/dist/services/content-api/permissions/index.mjs +100 -81
  440. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  441. package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
  442. package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
  443. package/dist/services/content-api/permissions/providers/action.js +17 -14
  444. package/dist/services/content-api/permissions/providers/action.js.map +1 -1
  445. package/dist/services/content-api/permissions/providers/action.mjs +16 -16
  446. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
  447. package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
  448. package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
  449. package/dist/services/content-api/permissions/providers/condition.js +17 -14
  450. package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
  451. package/dist/services/content-api/permissions/providers/condition.mjs +16 -16
  452. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
  453. package/dist/services/content-source-maps.d.ts +13 -0
  454. package/dist/services/content-source-maps.d.ts.map +1 -0
  455. package/dist/services/content-source-maps.js +108 -0
  456. package/dist/services/content-source-maps.js.map +1 -0
  457. package/dist/services/content-source-maps.mjs +106 -0
  458. package/dist/services/content-source-maps.mjs.map +1 -0
  459. package/dist/services/core-store.d.ts +2 -2
  460. package/dist/services/core-store.d.ts.map +1 -1
  461. package/dist/services/core-store.js +115 -95
  462. package/dist/services/core-store.js.map +1 -1
  463. package/dist/services/core-store.mjs +114 -97
  464. package/dist/services/core-store.mjs.map +1 -1
  465. package/dist/services/cron.d.ts +3 -3
  466. package/dist/services/cron.d.ts.map +1 -1
  467. package/dist/services/cron.js +74 -60
  468. package/dist/services/cron.js.map +1 -1
  469. package/dist/services/cron.mjs +73 -62
  470. package/dist/services/cron.mjs.map +1 -1
  471. package/dist/services/custom-fields.js +9 -7
  472. package/dist/services/custom-fields.js.map +1 -1
  473. package/dist/services/custom-fields.mjs +8 -9
  474. package/dist/services/custom-fields.mjs.map +1 -1
  475. package/dist/services/document-service/attributes/index.js +23 -18
  476. package/dist/services/document-service/attributes/index.js.map +1 -1
  477. package/dist/services/document-service/attributes/index.mjs +22 -19
  478. package/dist/services/document-service/attributes/index.mjs.map +1 -1
  479. package/dist/services/document-service/attributes/transforms.js +16 -15
  480. package/dist/services/document-service/attributes/transforms.js.map +1 -1
  481. package/dist/services/document-service/attributes/transforms.mjs +15 -15
  482. package/dist/services/document-service/attributes/transforms.mjs.map +1 -1
  483. package/dist/services/document-service/common.d.ts +1 -1
  484. package/dist/services/document-service/common.d.ts.map +1 -1
  485. package/dist/services/document-service/common.js +5 -4
  486. package/dist/services/document-service/common.js.map +1 -1
  487. package/dist/services/document-service/common.mjs +4 -5
  488. package/dist/services/document-service/common.mjs.map +1 -1
  489. package/dist/services/document-service/components.d.ts +31 -1
  490. package/dist/services/document-service/components.d.ts.map +1 -1
  491. package/dist/services/document-service/components.js +364 -257
  492. package/dist/services/document-service/components.js.map +1 -1
  493. package/dist/services/document-service/components.mjs +359 -261
  494. package/dist/services/document-service/components.mjs.map +1 -1
  495. package/dist/services/document-service/draft-and-publish.d.ts +1 -1
  496. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  497. package/dist/services/document-service/draft-and-publish.js +94 -54
  498. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  499. package/dist/services/document-service/draft-and-publish.mjs +87 -54
  500. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  501. package/dist/services/document-service/entries.d.ts +2 -2
  502. package/dist/services/document-service/entries.d.ts.map +1 -1
  503. package/dist/services/document-service/entries.js +151 -92
  504. package/dist/services/document-service/entries.js.map +1 -1
  505. package/dist/services/document-service/entries.mjs +150 -93
  506. package/dist/services/document-service/entries.mjs.map +1 -1
  507. package/dist/services/document-service/events.d.ts +1 -1
  508. package/dist/services/document-service/events.d.ts.map +1 -1
  509. package/dist/services/document-service/events.js +52 -40
  510. package/dist/services/document-service/events.js.map +1 -1
  511. package/dist/services/document-service/events.mjs +51 -41
  512. package/dist/services/document-service/events.mjs.map +1 -1
  513. package/dist/services/document-service/first-published-at.d.ts +7 -0
  514. package/dist/services/document-service/first-published-at.d.ts.map +1 -0
  515. package/dist/services/document-service/first-published-at.js +31 -0
  516. package/dist/services/document-service/first-published-at.js.map +1 -0
  517. package/dist/services/document-service/first-published-at.mjs +28 -0
  518. package/dist/services/document-service/first-published-at.mjs.map +1 -0
  519. package/dist/services/document-service/index.d.ts +2 -1
  520. package/dist/services/document-service/index.d.ts.map +1 -1
  521. package/dist/services/document-service/index.js +53 -32
  522. package/dist/services/document-service/index.js.map +1 -1
  523. package/dist/services/document-service/index.mjs +52 -33
  524. package/dist/services/document-service/index.mjs.map +1 -1
  525. package/dist/services/document-service/internationalization.d.ts +6 -1
  526. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  527. package/dist/services/document-service/internationalization.js +98 -41
  528. package/dist/services/document-service/internationalization.js.map +1 -1
  529. package/dist/services/document-service/internationalization.mjs +92 -41
  530. package/dist/services/document-service/internationalization.mjs.map +1 -1
  531. package/dist/services/document-service/middlewares/errors.js +23 -19
  532. package/dist/services/document-service/middlewares/errors.js.map +1 -1
  533. package/dist/services/document-service/middlewares/errors.mjs +22 -20
  534. package/dist/services/document-service/middlewares/errors.mjs.map +1 -1
  535. package/dist/services/document-service/middlewares/middleware-manager.js +46 -44
  536. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -1
  537. package/dist/services/document-service/middlewares/middleware-manager.mjs +45 -45
  538. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -1
  539. package/dist/services/document-service/params.js +11 -5
  540. package/dist/services/document-service/params.js.map +1 -1
  541. package/dist/services/document-service/params.mjs +10 -6
  542. package/dist/services/document-service/params.mjs.map +1 -1
  543. package/dist/services/document-service/repository.d.ts.map +1 -1
  544. package/dist/services/document-service/repository.js +363 -269
  545. package/dist/services/document-service/repository.js.map +1 -1
  546. package/dist/services/document-service/repository.mjs +362 -270
  547. package/dist/services/document-service/repository.mjs.map +1 -1
  548. package/dist/services/document-service/transform/data.js +22 -12
  549. package/dist/services/document-service/transform/data.js.map +1 -1
  550. package/dist/services/document-service/transform/data.mjs +21 -13
  551. package/dist/services/document-service/transform/data.mjs.map +1 -1
  552. package/dist/services/document-service/transform/fields.js +26 -17
  553. package/dist/services/document-service/transform/fields.js.map +1 -1
  554. package/dist/services/document-service/transform/fields.mjs +25 -18
  555. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  556. package/dist/services/document-service/transform/id-map.d.ts +1 -1
  557. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  558. package/dist/services/document-service/transform/id-map.js +116 -69
  559. package/dist/services/document-service/transform/id-map.js.map +1 -1
  560. package/dist/services/document-service/transform/id-map.mjs +115 -70
  561. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  562. package/dist/services/document-service/transform/id-transform.d.ts +1 -1
  563. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  564. package/dist/services/document-service/transform/id-transform.js +38 -30
  565. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  566. package/dist/services/document-service/transform/id-transform.mjs +36 -30
  567. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  568. package/dist/services/document-service/transform/populate.js +23 -18
  569. package/dist/services/document-service/transform/populate.js.map +1 -1
  570. package/dist/services/document-service/transform/populate.mjs +22 -19
  571. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  572. package/dist/services/document-service/transform/query.js +11 -6
  573. package/dist/services/document-service/transform/query.js.map +1 -1
  574. package/dist/services/document-service/transform/query.mjs +10 -7
  575. package/dist/services/document-service/transform/query.mjs.map +1 -1
  576. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  577. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  578. package/dist/services/document-service/transform/relations/extract/data-ids.js +71 -45
  579. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  580. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +70 -46
  581. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  582. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  583. package/dist/services/document-service/transform/relations/transform/data-ids.js +97 -60
  584. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  585. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +96 -61
  586. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  587. package/dist/services/document-service/transform/relations/transform/default-locale.js +47 -29
  588. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -1
  589. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +46 -30
  590. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -1
  591. package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
  592. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  593. package/dist/services/document-service/transform/relations/utils/dp.js +52 -26
  594. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  595. package/dist/services/document-service/transform/relations/utils/dp.mjs +51 -27
  596. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  597. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
  598. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  599. package/dist/services/document-service/transform/relations/utils/i18n.js +20 -18
  600. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  601. package/dist/services/document-service/transform/relations/utils/i18n.mjs +19 -21
  602. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  603. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
  604. package/dist/services/document-service/transform/relations/utils/map-relation.js +118 -75
  605. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -1
  606. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +115 -75
  607. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -1
  608. package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
  609. package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -0
  610. package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
  611. package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
  612. package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
  613. package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
  614. package/dist/services/document-service/utils/clean-component-join-table.d.ts +7 -0
  615. package/dist/services/document-service/utils/clean-component-join-table.d.ts.map +1 -0
  616. package/dist/services/document-service/utils/clean-component-join-table.js +138 -0
  617. package/dist/services/document-service/utils/clean-component-join-table.js.map +1 -0
  618. package/dist/services/document-service/utils/clean-component-join-table.mjs +136 -0
  619. package/dist/services/document-service/utils/clean-component-join-table.mjs.map +1 -0
  620. package/dist/services/document-service/utils/populate.d.ts +1 -1
  621. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  622. package/dist/services/document-service/utils/populate.js +67 -37
  623. package/dist/services/document-service/utils/populate.js.map +1 -1
  624. package/dist/services/document-service/utils/populate.mjs +66 -38
  625. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  626. package/dist/services/document-service/utils/unidirectional-relations.d.ts +53 -0
  627. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  628. package/dist/services/document-service/utils/unidirectional-relations.js +131 -0
  629. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
  630. package/dist/services/document-service/utils/unidirectional-relations.mjs +128 -0
  631. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
  632. package/dist/services/entity-service/index.js +230 -161
  633. package/dist/services/entity-service/index.js.map +1 -1
  634. package/dist/services/entity-service/index.mjs +229 -160
  635. package/dist/services/entity-service/index.mjs.map +1 -1
  636. package/dist/services/entity-validator/blocks-validator.d.ts +1 -2
  637. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  638. package/dist/services/entity-validator/blocks-validator.js +137 -104
  639. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  640. package/dist/services/entity-validator/blocks-validator.mjs +135 -105
  641. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  642. package/dist/services/entity-validator/index.d.ts +15 -1
  643. package/dist/services/entity-validator/index.d.ts.map +1 -1
  644. package/dist/services/entity-validator/index.js +370 -310
  645. package/dist/services/entity-validator/index.js.map +1 -1
  646. package/dist/services/entity-validator/index.mjs +366 -307
  647. package/dist/services/entity-validator/index.mjs.map +1 -1
  648. package/dist/services/entity-validator/validators.d.ts +37 -25
  649. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  650. package/dist/services/entity-validator/validators.js +286 -110
  651. package/dist/services/entity-validator/validators.js.map +1 -1
  652. package/dist/services/entity-validator/validators.mjs +277 -108
  653. package/dist/services/entity-validator/validators.mjs.map +1 -1
  654. package/dist/services/errors.js +65 -65
  655. package/dist/services/errors.js.map +1 -1
  656. package/dist/services/errors.mjs +64 -66
  657. package/dist/services/errors.mjs.map +1 -1
  658. package/dist/services/event-hub.js +82 -69
  659. package/dist/services/event-hub.js.map +1 -1
  660. package/dist/services/event-hub.mjs +81 -71
  661. package/dist/services/event-hub.mjs.map +1 -1
  662. package/dist/services/features.js +19 -14
  663. package/dist/services/features.js.map +1 -1
  664. package/dist/services/features.mjs +18 -15
  665. package/dist/services/features.mjs.map +1 -1
  666. package/dist/services/fs.js +41 -40
  667. package/dist/services/fs.js.map +1 -1
  668. package/dist/services/fs.mjs +40 -39
  669. package/dist/services/fs.mjs.map +1 -1
  670. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  671. package/dist/services/metrics/admin-user-hash.js +13 -11
  672. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  673. package/dist/services/metrics/admin-user-hash.mjs +12 -10
  674. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  675. package/dist/services/metrics/index.d.ts +1 -1
  676. package/dist/services/metrics/index.d.ts.map +1 -1
  677. package/dist/services/metrics/index.js +48 -40
  678. package/dist/services/metrics/index.js.map +1 -1
  679. package/dist/services/metrics/index.mjs +47 -42
  680. package/dist/services/metrics/index.mjs.map +1 -1
  681. package/dist/services/metrics/is-truthy.js +13 -6
  682. package/dist/services/metrics/is-truthy.js.map +1 -1
  683. package/dist/services/metrics/is-truthy.mjs +12 -6
  684. package/dist/services/metrics/is-truthy.mjs.map +1 -1
  685. package/dist/services/metrics/middleware.d.ts +2 -1
  686. package/dist/services/metrics/middleware.d.ts.map +1 -1
  687. package/dist/services/metrics/middleware.js +37 -22
  688. package/dist/services/metrics/middleware.js.map +1 -1
  689. package/dist/services/metrics/middleware.mjs +36 -24
  690. package/dist/services/metrics/middleware.mjs.map +1 -1
  691. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  692. package/dist/services/metrics/rate-limiter.js +24 -19
  693. package/dist/services/metrics/rate-limiter.js.map +1 -1
  694. package/dist/services/metrics/rate-limiter.mjs +23 -21
  695. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  696. package/dist/services/metrics/sender.d.ts.map +1 -1
  697. package/dist/services/metrics/sender.js +78 -69
  698. package/dist/services/metrics/sender.js.map +1 -1
  699. package/dist/services/metrics/sender.mjs +77 -64
  700. package/dist/services/metrics/sender.mjs.map +1 -1
  701. package/dist/services/query-params.js +13 -10
  702. package/dist/services/query-params.js.map +1 -1
  703. package/dist/services/query-params.mjs +12 -12
  704. package/dist/services/query-params.mjs.map +1 -1
  705. package/dist/services/reloader.js +35 -32
  706. package/dist/services/reloader.js.map +1 -1
  707. package/dist/services/reloader.mjs +34 -33
  708. package/dist/services/reloader.mjs.map +1 -1
  709. package/dist/services/request-context.js +11 -8
  710. package/dist/services/request-context.js.map +1 -1
  711. package/dist/services/request-context.mjs +10 -10
  712. package/dist/services/request-context.mjs.map +1 -1
  713. package/dist/services/server/admin-api.js +11 -10
  714. package/dist/services/server/admin-api.js.map +1 -1
  715. package/dist/services/server/admin-api.mjs +10 -11
  716. package/dist/services/server/admin-api.mjs.map +1 -1
  717. package/dist/services/server/api.js +33 -27
  718. package/dist/services/server/api.js.map +1 -1
  719. package/dist/services/server/api.mjs +32 -26
  720. package/dist/services/server/api.mjs.map +1 -1
  721. package/dist/services/server/compose-endpoint.js +116 -105
  722. package/dist/services/server/compose-endpoint.js.map +1 -1
  723. package/dist/services/server/compose-endpoint.mjs +115 -105
  724. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  725. package/dist/services/server/content-api.js +11 -9
  726. package/dist/services/server/content-api.js.map +1 -1
  727. package/dist/services/server/content-api.mjs +10 -10
  728. package/dist/services/server/content-api.mjs.map +1 -1
  729. package/dist/services/server/http-server.js +48 -44
  730. package/dist/services/server/http-server.js.map +1 -1
  731. package/dist/services/server/http-server.mjs +47 -43
  732. package/dist/services/server/http-server.mjs.map +1 -1
  733. package/dist/services/server/index.js +85 -82
  734. package/dist/services/server/index.js.map +1 -1
  735. package/dist/services/server/index.mjs +84 -81
  736. package/dist/services/server/index.mjs.map +1 -1
  737. package/dist/services/server/koa.js +49 -47
  738. package/dist/services/server/koa.js.map +1 -1
  739. package/dist/services/server/koa.mjs +48 -44
  740. package/dist/services/server/koa.mjs.map +1 -1
  741. package/dist/services/server/middleware.js +86 -82
  742. package/dist/services/server/middleware.js.map +1 -1
  743. package/dist/services/server/middleware.mjs +85 -82
  744. package/dist/services/server/middleware.mjs.map +1 -1
  745. package/dist/services/server/policy.js +24 -17
  746. package/dist/services/server/policy.js.map +1 -1
  747. package/dist/services/server/policy.mjs +23 -18
  748. package/dist/services/server/policy.mjs.map +1 -1
  749. package/dist/services/server/register-middlewares.js +68 -61
  750. package/dist/services/server/register-middlewares.js.map +1 -1
  751. package/dist/services/server/register-middlewares.mjs +67 -63
  752. package/dist/services/server/register-middlewares.mjs.map +1 -1
  753. package/dist/services/server/register-routes.js +109 -66
  754. package/dist/services/server/register-routes.js.map +1 -1
  755. package/dist/services/server/register-routes.mjs +108 -66
  756. package/dist/services/server/register-routes.mjs.map +1 -1
  757. package/dist/services/server/routing.d.ts +10 -0
  758. package/dist/services/server/routing.d.ts.map +1 -1
  759. package/dist/services/server/routing.js +100 -81
  760. package/dist/services/server/routing.js.map +1 -1
  761. package/dist/services/server/routing.mjs +99 -81
  762. package/dist/services/server/routing.mjs.map +1 -1
  763. package/dist/services/utils/conditional-fields.d.ts +3 -0
  764. package/dist/services/utils/conditional-fields.d.ts.map +1 -0
  765. package/dist/services/utils/conditional-fields.js +22 -0
  766. package/dist/services/utils/conditional-fields.js.map +1 -0
  767. package/dist/services/utils/conditional-fields.mjs +20 -0
  768. package/dist/services/utils/conditional-fields.mjs.map +1 -0
  769. package/dist/services/utils/dynamic-zones.js +13 -14
  770. package/dist/services/utils/dynamic-zones.js.map +1 -1
  771. package/dist/services/utils/dynamic-zones.mjs +12 -16
  772. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  773. package/dist/services/webhook-runner.d.ts +2 -1
  774. package/dist/services/webhook-runner.d.ts.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.d.ts +2 -8
  780. package/dist/services/webhook-store.d.ts.map +1 -1
  781. package/dist/services/webhook-store.js +132 -99
  782. package/dist/services/webhook-store.js.map +1 -1
  783. package/dist/services/webhook-store.mjs +131 -101
  784. package/dist/services/webhook-store.mjs.map +1 -1
  785. package/dist/services/worker-queue.js +44 -49
  786. package/dist/services/worker-queue.js.map +1 -1
  787. package/dist/services/worker-queue.mjs +43 -49
  788. package/dist/services/worker-queue.mjs.map +1 -1
  789. package/dist/utils/convert-custom-field-type.js +17 -20
  790. package/dist/utils/convert-custom-field-type.js.map +1 -1
  791. package/dist/utils/convert-custom-field-type.mjs +16 -21
  792. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  793. package/dist/utils/cron.js +64 -30
  794. package/dist/utils/cron.js.map +1 -1
  795. package/dist/utils/cron.mjs +63 -31
  796. package/dist/utils/cron.mjs.map +1 -1
  797. package/dist/utils/fetch.d.ts +5 -1
  798. package/dist/utils/fetch.d.ts.map +1 -1
  799. package/dist/utils/fetch.js +28 -17
  800. package/dist/utils/fetch.js.map +1 -1
  801. package/dist/utils/fetch.mjs +27 -18
  802. package/dist/utils/fetch.mjs.map +1 -1
  803. package/dist/utils/filepath-to-prop-path.d.ts +1 -1
  804. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
  805. package/dist/utils/filepath-to-prop-path.js +22 -9
  806. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  807. package/dist/utils/filepath-to-prop-path.mjs +20 -7
  808. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  809. package/dist/utils/is-initialized.js +21 -12
  810. package/dist/utils/is-initialized.js.map +1 -1
  811. package/dist/utils/is-initialized.mjs +20 -13
  812. package/dist/utils/is-initialized.mjs.map +1 -1
  813. package/dist/utils/lifecycles.js +6 -5
  814. package/dist/utils/lifecycles.js.map +1 -1
  815. package/dist/utils/lifecycles.mjs +5 -6
  816. package/dist/utils/lifecycles.mjs.map +1 -1
  817. package/dist/utils/load-config-file.js +40 -38
  818. package/dist/utils/load-config-file.js.map +1 -1
  819. package/dist/utils/load-config-file.mjs +39 -36
  820. package/dist/utils/load-config-file.mjs.map +1 -1
  821. package/dist/utils/load-files.js +40 -35
  822. package/dist/utils/load-files.js.map +1 -1
  823. package/dist/utils/load-files.mjs +39 -32
  824. package/dist/utils/load-files.mjs.map +1 -1
  825. package/dist/utils/open-browser.js +8 -8
  826. package/dist/utils/open-browser.js.map +1 -1
  827. package/dist/utils/open-browser.mjs +7 -7
  828. package/dist/utils/open-browser.mjs.map +1 -1
  829. package/dist/utils/resolve-working-dirs.js +23 -10
  830. package/dist/utils/resolve-working-dirs.js.map +1 -1
  831. package/dist/utils/resolve-working-dirs.mjs +22 -9
  832. package/dist/utils/resolve-working-dirs.mjs.map +1 -1
  833. package/dist/utils/signals.js +20 -14
  834. package/dist/utils/signals.js.map +1 -1
  835. package/dist/utils/signals.mjs +19 -15
  836. package/dist/utils/signals.mjs.map +1 -1
  837. package/dist/utils/startup-logger.d.ts.map +1 -1
  838. package/dist/utils/startup-logger.js +107 -78
  839. package/dist/utils/startup-logger.js.map +1 -1
  840. package/dist/utils/startup-logger.mjs +106 -75
  841. package/dist/utils/startup-logger.mjs.map +1 -1
  842. package/dist/utils/transform-content-types-to-models.d.ts +552 -23
  843. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  844. package/dist/utils/transform-content-types-to-models.js +350 -248
  845. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  846. package/dist/utils/transform-content-types-to-models.mjs +349 -256
  847. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  848. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  849. package/dist/utils/update-notifier/index.js +68 -73
  850. package/dist/utils/update-notifier/index.js.map +1 -1
  851. package/dist/utils/update-notifier/index.mjs +67 -67
  852. package/dist/utils/update-notifier/index.mjs.map +1 -1
  853. package/package.json +37 -32
@@ -1,59 +1,69 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const strapiUtils = require("@strapi/utils");
4
- const enableDraftAndPublish = async ({ oldContentTypes, contentTypes }) => {
5
- if (!oldContentTypes) {
6
- return;
7
- }
8
- for (const uid in contentTypes) {
9
- if (!oldContentTypes[uid]) {
10
- continue;
1
+ 'use strict';
2
+
3
+ var strapiUtils = require('@strapi/utils');
4
+ var _5_0_0DiscardDrafts = require('./database/5.0.0-discard-drafts.js');
5
+
6
+ /**
7
+ * Enable draft and publish for content types.
8
+ *
9
+ * Draft and publish disabled content types will have their entries published,
10
+ * this migration clones those entries as drafts.
11
+ *
12
+ * TODO: Clone components, dynamic zones and relations
13
+ */ const enableDraftAndPublish = async ({ oldContentTypes, contentTypes })=>{
14
+ if (!oldContentTypes) {
15
+ return;
11
16
  }
12
- const oldContentType = oldContentTypes[uid];
13
- const contentType = contentTypes[uid];
14
- if (!strapiUtils.contentTypes.hasDraftAndPublish(oldContentType) && strapiUtils.contentTypes.hasDraftAndPublish(contentType)) {
15
- const metadata = strapi.db.metadata.get(uid);
16
- const attributes = Object.values(metadata.attributes).reduce((acc, attribute) => {
17
- if (["id"].includes(attribute.columnName)) {
18
- return acc;
19
- }
20
- if (strapiUtils.contentTypes.isScalarAttribute(attribute)) {
21
- acc.push(attribute.columnName);
22
- }
23
- return acc;
24
- }, []);
25
- const qb = strapi.db?.getConnection();
26
- await qb.into(qb.raw(`${metadata.tableName} (${attributes.join(", ")})`)).insert((subQb) => {
27
- subQb.select(
28
- ...attributes.map((att) => {
29
- if (att === "published_at") {
30
- return qb.raw("NULL as published_at");
17
+ // run the after content types migrations
18
+ return strapi.db.transaction(async (trx)=>{
19
+ for(const uid in contentTypes){
20
+ if (!oldContentTypes[uid]) {
21
+ continue;
31
22
  }
32
- if (att === "updated_at") {
33
- return qb.raw(`? as updated_at`, [/* @__PURE__ */ new Date()]);
23
+ const oldContentType = oldContentTypes[uid];
24
+ const contentType = contentTypes[uid];
25
+ // if d&p was enabled set publishedAt to eq createdAt
26
+ if (!strapiUtils.contentTypes.hasDraftAndPublish(oldContentType) && strapiUtils.contentTypes.hasDraftAndPublish(contentType)) {
27
+ const discardDraft = async (entry)=>strapi.documents(uid)// Discard draft by referencing the documentId and locale
28
+ .discardDraft({
29
+ documentId: entry.documentId,
30
+ locale: entry.locale
31
+ });
32
+ /**
33
+ * Load a batch of entries (batched to prevent loading millions of rows at once ),
34
+ * and discard them using the document service.
35
+ */ for await (const batch of _5_0_0DiscardDrafts.getBatchToDiscard({
36
+ db: strapi.db,
37
+ trx,
38
+ uid
39
+ })){
40
+ await strapiUtils.async.map(batch, discardDraft, {
41
+ concurrency: 10
42
+ });
43
+ }
34
44
  }
35
- return att;
36
- })
37
- ).from(metadata.tableName).whereNotNull("published_at");
38
- });
39
- }
40
- }
45
+ }
46
+ });
41
47
  };
42
- const disableDraftAndPublish = async ({ oldContentTypes, contentTypes }) => {
43
- if (!oldContentTypes) {
44
- return;
45
- }
46
- for (const uid in contentTypes) {
47
- if (!oldContentTypes[uid]) {
48
- continue;
48
+ const disableDraftAndPublish = async ({ oldContentTypes, contentTypes })=>{
49
+ if (!oldContentTypes) {
50
+ return;
49
51
  }
50
- const oldContentType = oldContentTypes[uid];
51
- const contentType = contentTypes[uid];
52
- if (strapiUtils.contentTypes.hasDraftAndPublish(oldContentType) && !strapiUtils.contentTypes.hasDraftAndPublish(contentType)) {
53
- await strapi.db?.queryBuilder(uid).delete().where({ published_at: null }).execute();
52
+ for(const uid in contentTypes){
53
+ if (!oldContentTypes[uid]) {
54
+ continue;
55
+ }
56
+ const oldContentType = oldContentTypes[uid];
57
+ const contentType = contentTypes[uid];
58
+ // if d&p was disabled remove unpublish content before sync
59
+ if (strapiUtils.contentTypes.hasDraftAndPublish(oldContentType) && !strapiUtils.contentTypes.hasDraftAndPublish(contentType)) {
60
+ await strapi.db?.queryBuilder(uid).delete().where({
61
+ published_at: null
62
+ }).execute();
63
+ }
54
64
  }
55
- }
56
65
  };
66
+
57
67
  exports.disable = disableDraftAndPublish;
58
68
  exports.enable = enableDraftAndPublish;
59
69
  //# sourceMappingURL=draft-publish.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"draft-publish.js","sources":["../../src/migrations/draft-publish.ts"],"sourcesContent":["import { contentTypes as contentTypesUtils } from '@strapi/utils';\nimport { Schema } from '@strapi/types';\n\ninterface Input {\n oldContentTypes: Record<string, Schema.ContentType>;\n contentTypes: Record<string, Schema.ContentType>;\n}\n\n/**\n * Enable draft and publish for content types.\n *\n * Draft and publish disabled content types will have their entries published,\n * this migration clones those entries as drafts.\n *\n * TODO: Clone components, dynamic zones and relations\n */\nconst enableDraftAndPublish = async ({ oldContentTypes, contentTypes }: Input) => {\n if (!oldContentTypes) {\n return;\n }\n\n // run the after content types migrations\n\n for (const uid in contentTypes) {\n if (!oldContentTypes[uid]) {\n continue;\n }\n\n const oldContentType = oldContentTypes[uid];\n const contentType = contentTypes[uid];\n\n // if d&p was enabled set publishedAt to eq createdAt\n if (\n !contentTypesUtils.hasDraftAndPublish(oldContentType) &&\n contentTypesUtils.hasDraftAndPublish(contentType)\n ) {\n const metadata = strapi.db.metadata.get(uid);\n\n // Extract all scalar attributes to use in the insert query\n const attributes = Object.values(metadata.attributes).reduce((acc, attribute: any) => {\n if (['id'].includes(attribute.columnName)) {\n return acc;\n }\n\n if (contentTypesUtils.isScalarAttribute(attribute)) {\n acc.push(attribute.columnName);\n }\n\n return acc;\n }, [] as string[]);\n\n /**\n * INSERT INTO tableName (columnName1, columnName2, columnName3, ...)\n * SELECT columnName1, columnName2, columnName3, ...\n * FROM tableName\n */\n const qb = strapi.db?.getConnection();\n await qb\n // INSERT INTO tableName (columnName1, columnName2, columnName3, ...)\n .into(qb.raw(`${metadata.tableName} (${attributes.join(', ')})`))\n .insert((subQb: typeof qb) => {\n // SELECT columnName1, columnName2, columnName3, ...\n subQb\n .select(\n ...attributes.map((att) => {\n // Override 'publishedAt' and 'updatedAt' attributes\n if (att === 'published_at') {\n return qb.raw('NULL as published_at');\n }\n\n if (att === 'updated_at') {\n return qb.raw(`? as updated_at`, [new Date()]);\n }\n\n return att;\n })\n )\n .from(metadata.tableName)\n .whereNotNull('published_at');\n });\n }\n }\n};\n\nconst disableDraftAndPublish = async ({ oldContentTypes, contentTypes }: Input) => {\n if (!oldContentTypes) {\n return;\n }\n\n for (const uid in contentTypes) {\n if (!oldContentTypes[uid]) {\n continue;\n }\n\n const oldContentType = oldContentTypes[uid];\n const contentType = contentTypes[uid];\n\n // if d&p was disabled remove unpublish content before sync\n if (\n contentTypesUtils.hasDraftAndPublish(oldContentType) &&\n !contentTypesUtils.hasDraftAndPublish(contentType)\n ) {\n await strapi.db?.queryBuilder(uid).delete().where({ published_at: null }).execute();\n }\n }\n};\n\nexport { enableDraftAndPublish as enable, disableDraftAndPublish as disable };\n"],"names":["contentTypesUtils"],"mappings":";;;AAgBA,MAAM,wBAAwB,OAAO,EAAE,iBAAiB,mBAA0B;AAChF,MAAI,CAAC,iBAAiB;AACpB;AAAA,EACF;AAIA,aAAW,OAAO,cAAc;AAC1B,QAAA,CAAC,gBAAgB,GAAG,GAAG;AACzB;AAAA,IACF;AAEM,UAAA,iBAAiB,gBAAgB,GAAG;AACpC,UAAA,cAAc,aAAa,GAAG;AAIlC,QAAA,CAACA,yBAAkB,mBAAmB,cAAc,KACpDA,yBAAkB,mBAAmB,WAAW,GAChD;AACA,YAAM,WAAW,OAAO,GAAG,SAAS,IAAI,GAAG;AAGrC,YAAA,aAAa,OAAO,OAAO,SAAS,UAAU,EAAE,OAAO,CAAC,KAAK,cAAmB;AACpF,YAAI,CAAC,IAAI,EAAE,SAAS,UAAU,UAAU,GAAG;AAClC,iBAAA;AAAA,QACT;AAEI,YAAAA,YAAA,aAAkB,kBAAkB,SAAS,GAAG;AAC9C,cAAA,KAAK,UAAU,UAAU;AAAA,QAC/B;AAEO,eAAA;AAAA,MACT,GAAG,CAAc,CAAA;AAOX,YAAA,KAAK,OAAO,IAAI,cAAc;AACpC,YAAM,GAEH,KAAK,GAAG,IAAI,GAAG,SAAS,SAAS,KAAK,WAAW,KAAK,IAAI,CAAC,GAAG,CAAC,EAC/D,OAAO,CAAC,UAAqB;AAGzB,cAAA;AAAA,UACC,GAAG,WAAW,IAAI,CAAC,QAAQ;AAEzB,gBAAI,QAAQ,gBAAgB;AACnB,qBAAA,GAAG,IAAI,sBAAsB;AAAA,YACtC;AAEA,gBAAI,QAAQ,cAAc;AACxB,qBAAO,GAAG,IAAI,mBAAmB,CAAK,oBAAA,KAAM,CAAA,CAAC;AAAA,YAC/C;AAEO,mBAAA;AAAA,UAAA,CACR;AAAA,QAAA,EAEF,KAAK,SAAS,SAAS,EACvB,aAAa,cAAc;AAAA,MAAA,CAC/B;AAAA,IACL;AAAA,EACF;AACF;AAEA,MAAM,yBAAyB,OAAO,EAAE,iBAAiB,mBAA0B;AACjF,MAAI,CAAC,iBAAiB;AACpB;AAAA,EACF;AAEA,aAAW,OAAO,cAAc;AAC1B,QAAA,CAAC,gBAAgB,GAAG,GAAG;AACzB;AAAA,IACF;AAEM,UAAA,iBAAiB,gBAAgB,GAAG;AACpC,UAAA,cAAc,aAAa,GAAG;AAIlC,QAAAA,YAAAA,aAAkB,mBAAmB,cAAc,KACnD,CAACA,yBAAkB,mBAAmB,WAAW,GACjD;AACA,YAAM,OAAO,IAAI,aAAa,GAAG,EAAE,OAAA,EAAS,MAAM,EAAE,cAAc,MAAM,EAAE,QAAQ;AAAA,IACpF;AAAA,EACF;AACF;;;"}
1
+ {"version":3,"file":"draft-publish.js","sources":["../../src/migrations/draft-publish.ts"],"sourcesContent":["import { contentTypes as contentTypesUtils, async } from '@strapi/utils';\nimport type { Schema } from '@strapi/types';\n\nimport { getBatchToDiscard } from './database/5.0.0-discard-drafts';\n\nexport interface Input {\n oldContentTypes: Record<string, Schema.ContentType>;\n contentTypes: Record<string, Schema.ContentType>;\n}\n\n/**\n * Enable draft and publish for content types.\n *\n * Draft and publish disabled content types will have their entries published,\n * this migration clones those entries as drafts.\n *\n * TODO: Clone components, dynamic zones and relations\n */\nconst enableDraftAndPublish = async ({ oldContentTypes, contentTypes }: Input) => {\n if (!oldContentTypes) {\n return;\n }\n\n // run the after content types migrations\n return strapi.db.transaction(async (trx) => {\n for (const uid in contentTypes) {\n if (!oldContentTypes[uid]) {\n continue;\n }\n\n const oldContentType = oldContentTypes[uid];\n const contentType = contentTypes[uid];\n\n // if d&p was enabled set publishedAt to eq createdAt\n if (\n !contentTypesUtils.hasDraftAndPublish(oldContentType) &&\n contentTypesUtils.hasDraftAndPublish(contentType)\n ) {\n const discardDraft = async (entry: { documentId: string; locale: string }) =>\n strapi\n .documents(uid as any)\n // Discard draft by referencing the documentId and locale\n .discardDraft({ documentId: entry.documentId, locale: entry.locale });\n\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 for await (const batch of getBatchToDiscard({ db: strapi.db, trx, uid })) {\n await async.map(batch, discardDraft, { concurrency: 10 });\n }\n }\n }\n });\n};\n\nconst disableDraftAndPublish = async ({ oldContentTypes, contentTypes }: Input) => {\n if (!oldContentTypes) {\n return;\n }\n\n for (const uid in contentTypes) {\n if (!oldContentTypes[uid]) {\n continue;\n }\n\n const oldContentType = oldContentTypes[uid];\n const contentType = contentTypes[uid];\n\n // if d&p was disabled remove unpublish content before sync\n if (\n contentTypesUtils.hasDraftAndPublish(oldContentType) &&\n !contentTypesUtils.hasDraftAndPublish(contentType)\n ) {\n await strapi.db?.queryBuilder(uid).delete().where({ published_at: null }).execute();\n }\n }\n};\n\nexport { enableDraftAndPublish as enable, disableDraftAndPublish as disable };\n"],"names":["enableDraftAndPublish","oldContentTypes","contentTypes","strapi","db","transaction","trx","uid","oldContentType","contentType","contentTypesUtils","hasDraftAndPublish","discardDraft","entry","documents","documentId","locale","batch","getBatchToDiscard","async","map","concurrency","disableDraftAndPublish","queryBuilder","delete","where","published_at","execute"],"mappings":";;;;;AAUA;;;;;;;AAOC,UACKA,qBAAwB,GAAA,OAAO,EAAEC,eAAe,EAAEC,YAAY,EAAS,GAAA;AAC3E,IAAA,IAAI,CAACD,eAAiB,EAAA;AACpB,QAAA;AACF;;AAGA,IAAA,OAAOE,MAAOC,CAAAA,EAAE,CAACC,WAAW,CAAC,OAAOC,GAAAA,GAAAA;QAClC,IAAK,MAAMC,OAAOL,YAAc,CAAA;AAC9B,YAAA,IAAI,CAACD,eAAe,CAACM,GAAAA,CAAI,EAAE;AACzB,gBAAA;AACF;YAEA,MAAMC,cAAAA,GAAiBP,eAAe,CAACM,GAAI,CAAA;YAC3C,MAAME,WAAAA,GAAcP,YAAY,CAACK,GAAI,CAAA;;YAGrC,IACE,CAACG,yBAAkBC,kBAAkB,CAACH,mBACtCE,wBAAkBC,CAAAA,kBAAkB,CAACF,WACrC,CAAA,EAAA;AACA,gBAAA,MAAMG,eAAe,OAAOC,KAAAA,GAC1BV,OACGW,SAAS,CAACP,IACX;AACCK,qBAAAA,YAAY,CAAC;AAAEG,wBAAAA,UAAAA,EAAYF,MAAME,UAAU;AAAEC,wBAAAA,MAAAA,EAAQH,MAAMG;AAAO,qBAAA,CAAA;AAEvE;;;YAIA,WAAW,MAAMC,KAAAA,IAASC,qCAAkB,CAAA;AAAEd,oBAAAA,EAAAA,EAAID,OAAOC,EAAE;AAAEE,oBAAAA,GAAAA;AAAKC,oBAAAA;iBAAQ,CAAA,CAAA;AACxE,oBAAA,MAAMY,iBAAMC,CAAAA,GAAG,CAACH,KAAAA,EAAOL,YAAc,EAAA;wBAAES,WAAa,EAAA;AAAG,qBAAA,CAAA;AACzD;AACF;AACF;AACF,KAAA,CAAA;AACF;AAEA,MAAMC,yBAAyB,OAAO,EAAErB,eAAe,EAAEC,YAAY,EAAS,GAAA;AAC5E,IAAA,IAAI,CAACD,eAAiB,EAAA;AACpB,QAAA;AACF;IAEA,IAAK,MAAMM,OAAOL,YAAc,CAAA;AAC9B,QAAA,IAAI,CAACD,eAAe,CAACM,GAAAA,CAAI,EAAE;AACzB,YAAA;AACF;QAEA,MAAMC,cAAAA,GAAiBP,eAAe,CAACM,GAAI,CAAA;QAC3C,MAAME,WAAAA,GAAcP,YAAY,CAACK,GAAI,CAAA;;QAGrC,IACEG,wBAAAA,CAAkBC,kBAAkB,CAACH,cAAAA,CAAAA,IACrC,CAACE,wBAAkBC,CAAAA,kBAAkB,CAACF,WACtC,CAAA,EAAA;AACA,YAAA,MAAMN,OAAOC,EAAE,EAAEmB,YAAahB,CAAAA,GAAAA,CAAAA,CAAKiB,SAASC,KAAM,CAAA;gBAAEC,YAAc,EAAA;aAAQC,CAAAA,CAAAA,OAAAA,EAAAA;AAC5E;AACF;AACF;;;;;"}
@@ -1,59 +1,66 @@
1
- import { contentTypes } from "@strapi/utils";
2
- const enableDraftAndPublish = async ({ oldContentTypes, contentTypes: contentTypes$1 }) => {
3
- if (!oldContentTypes) {
4
- return;
5
- }
6
- for (const uid in contentTypes$1) {
7
- if (!oldContentTypes[uid]) {
8
- continue;
1
+ import { contentTypes, async } from '@strapi/utils';
2
+ import { getBatchToDiscard } from './database/5.0.0-discard-drafts.mjs';
3
+
4
+ /**
5
+ * Enable draft and publish for content types.
6
+ *
7
+ * Draft and publish disabled content types will have their entries published,
8
+ * this migration clones those entries as drafts.
9
+ *
10
+ * TODO: Clone components, dynamic zones and relations
11
+ */ const enableDraftAndPublish = async ({ oldContentTypes, contentTypes: contentTypes$1 })=>{
12
+ if (!oldContentTypes) {
13
+ return;
9
14
  }
10
- const oldContentType = oldContentTypes[uid];
11
- const contentType = contentTypes$1[uid];
12
- if (!contentTypes.hasDraftAndPublish(oldContentType) && contentTypes.hasDraftAndPublish(contentType)) {
13
- const metadata = strapi.db.metadata.get(uid);
14
- const attributes = Object.values(metadata.attributes).reduce((acc, attribute) => {
15
- if (["id"].includes(attribute.columnName)) {
16
- return acc;
17
- }
18
- if (contentTypes.isScalarAttribute(attribute)) {
19
- acc.push(attribute.columnName);
20
- }
21
- return acc;
22
- }, []);
23
- const qb = strapi.db?.getConnection();
24
- await qb.into(qb.raw(`${metadata.tableName} (${attributes.join(", ")})`)).insert((subQb) => {
25
- subQb.select(
26
- ...attributes.map((att) => {
27
- if (att === "published_at") {
28
- return qb.raw("NULL as published_at");
15
+ // run the after content types migrations
16
+ return strapi.db.transaction(async (trx)=>{
17
+ for(const uid in contentTypes$1){
18
+ if (!oldContentTypes[uid]) {
19
+ continue;
29
20
  }
30
- if (att === "updated_at") {
31
- return qb.raw(`? as updated_at`, [/* @__PURE__ */ new Date()]);
21
+ const oldContentType = oldContentTypes[uid];
22
+ const contentType = contentTypes$1[uid];
23
+ // if d&p was enabled set publishedAt to eq createdAt
24
+ if (!contentTypes.hasDraftAndPublish(oldContentType) && contentTypes.hasDraftAndPublish(contentType)) {
25
+ const discardDraft = async (entry)=>strapi.documents(uid)// Discard draft by referencing the documentId and locale
26
+ .discardDraft({
27
+ documentId: entry.documentId,
28
+ locale: entry.locale
29
+ });
30
+ /**
31
+ * Load a batch of entries (batched to prevent loading millions of rows at once ),
32
+ * and discard them using the document service.
33
+ */ for await (const batch of getBatchToDiscard({
34
+ db: strapi.db,
35
+ trx,
36
+ uid
37
+ })){
38
+ await async.map(batch, discardDraft, {
39
+ concurrency: 10
40
+ });
41
+ }
32
42
  }
33
- return att;
34
- })
35
- ).from(metadata.tableName).whereNotNull("published_at");
36
- });
37
- }
38
- }
43
+ }
44
+ });
39
45
  };
40
- const disableDraftAndPublish = async ({ oldContentTypes, contentTypes: contentTypes$1 }) => {
41
- if (!oldContentTypes) {
42
- return;
43
- }
44
- for (const uid in contentTypes$1) {
45
- if (!oldContentTypes[uid]) {
46
- continue;
46
+ const disableDraftAndPublish = async ({ oldContentTypes, contentTypes: contentTypes$1 })=>{
47
+ if (!oldContentTypes) {
48
+ return;
47
49
  }
48
- const oldContentType = oldContentTypes[uid];
49
- const contentType = contentTypes$1[uid];
50
- if (contentTypes.hasDraftAndPublish(oldContentType) && !contentTypes.hasDraftAndPublish(contentType)) {
51
- await strapi.db?.queryBuilder(uid).delete().where({ published_at: null }).execute();
50
+ for(const uid in contentTypes$1){
51
+ if (!oldContentTypes[uid]) {
52
+ continue;
53
+ }
54
+ const oldContentType = oldContentTypes[uid];
55
+ const contentType = contentTypes$1[uid];
56
+ // if d&p was disabled remove unpublish content before sync
57
+ if (contentTypes.hasDraftAndPublish(oldContentType) && !contentTypes.hasDraftAndPublish(contentType)) {
58
+ await strapi.db?.queryBuilder(uid).delete().where({
59
+ published_at: null
60
+ }).execute();
61
+ }
52
62
  }
53
- }
54
- };
55
- export {
56
- disableDraftAndPublish as disable,
57
- enableDraftAndPublish as enable
58
63
  };
64
+
65
+ export { disableDraftAndPublish as disable, enableDraftAndPublish as enable };
59
66
  //# sourceMappingURL=draft-publish.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"draft-publish.mjs","sources":["../../src/migrations/draft-publish.ts"],"sourcesContent":["import { contentTypes as contentTypesUtils } from '@strapi/utils';\nimport { Schema } from '@strapi/types';\n\ninterface Input {\n oldContentTypes: Record<string, Schema.ContentType>;\n contentTypes: Record<string, Schema.ContentType>;\n}\n\n/**\n * Enable draft and publish for content types.\n *\n * Draft and publish disabled content types will have their entries published,\n * this migration clones those entries as drafts.\n *\n * TODO: Clone components, dynamic zones and relations\n */\nconst enableDraftAndPublish = async ({ oldContentTypes, contentTypes }: Input) => {\n if (!oldContentTypes) {\n return;\n }\n\n // run the after content types migrations\n\n for (const uid in contentTypes) {\n if (!oldContentTypes[uid]) {\n continue;\n }\n\n const oldContentType = oldContentTypes[uid];\n const contentType = contentTypes[uid];\n\n // if d&p was enabled set publishedAt to eq createdAt\n if (\n !contentTypesUtils.hasDraftAndPublish(oldContentType) &&\n contentTypesUtils.hasDraftAndPublish(contentType)\n ) {\n const metadata = strapi.db.metadata.get(uid);\n\n // Extract all scalar attributes to use in the insert query\n const attributes = Object.values(metadata.attributes).reduce((acc, attribute: any) => {\n if (['id'].includes(attribute.columnName)) {\n return acc;\n }\n\n if (contentTypesUtils.isScalarAttribute(attribute)) {\n acc.push(attribute.columnName);\n }\n\n return acc;\n }, [] as string[]);\n\n /**\n * INSERT INTO tableName (columnName1, columnName2, columnName3, ...)\n * SELECT columnName1, columnName2, columnName3, ...\n * FROM tableName\n */\n const qb = strapi.db?.getConnection();\n await qb\n // INSERT INTO tableName (columnName1, columnName2, columnName3, ...)\n .into(qb.raw(`${metadata.tableName} (${attributes.join(', ')})`))\n .insert((subQb: typeof qb) => {\n // SELECT columnName1, columnName2, columnName3, ...\n subQb\n .select(\n ...attributes.map((att) => {\n // Override 'publishedAt' and 'updatedAt' attributes\n if (att === 'published_at') {\n return qb.raw('NULL as published_at');\n }\n\n if (att === 'updated_at') {\n return qb.raw(`? as updated_at`, [new Date()]);\n }\n\n return att;\n })\n )\n .from(metadata.tableName)\n .whereNotNull('published_at');\n });\n }\n }\n};\n\nconst disableDraftAndPublish = async ({ oldContentTypes, contentTypes }: Input) => {\n if (!oldContentTypes) {\n return;\n }\n\n for (const uid in contentTypes) {\n if (!oldContentTypes[uid]) {\n continue;\n }\n\n const oldContentType = oldContentTypes[uid];\n const contentType = contentTypes[uid];\n\n // if d&p was disabled remove unpublish content before sync\n if (\n contentTypesUtils.hasDraftAndPublish(oldContentType) &&\n !contentTypesUtils.hasDraftAndPublish(contentType)\n ) {\n await strapi.db?.queryBuilder(uid).delete().where({ published_at: null }).execute();\n }\n }\n};\n\nexport { enableDraftAndPublish as enable, disableDraftAndPublish as disable };\n"],"names":["contentTypes","contentTypesUtils"],"mappings":";AAgBA,MAAM,wBAAwB,OAAO,EAAE,iBAAiBA,cAAAA,qBAA0B;AAChF,MAAI,CAAC,iBAAiB;AACpB;AAAA,EACF;AAIA,aAAW,OAAOA,gBAAc;AAC1B,QAAA,CAAC,gBAAgB,GAAG,GAAG;AACzB;AAAA,IACF;AAEM,UAAA,iBAAiB,gBAAgB,GAAG;AACpC,UAAA,cAAcA,eAAa,GAAG;AAIlC,QAAA,CAACC,aAAkB,mBAAmB,cAAc,KACpDA,aAAkB,mBAAmB,WAAW,GAChD;AACA,YAAM,WAAW,OAAO,GAAG,SAAS,IAAI,GAAG;AAGrC,YAAA,aAAa,OAAO,OAAO,SAAS,UAAU,EAAE,OAAO,CAAC,KAAK,cAAmB;AACpF,YAAI,CAAC,IAAI,EAAE,SAAS,UAAU,UAAU,GAAG;AAClC,iBAAA;AAAA,QACT;AAEI,YAAAA,aAAkB,kBAAkB,SAAS,GAAG;AAC9C,cAAA,KAAK,UAAU,UAAU;AAAA,QAC/B;AAEO,eAAA;AAAA,MACT,GAAG,CAAc,CAAA;AAOX,YAAA,KAAK,OAAO,IAAI,cAAc;AACpC,YAAM,GAEH,KAAK,GAAG,IAAI,GAAG,SAAS,SAAS,KAAK,WAAW,KAAK,IAAI,CAAC,GAAG,CAAC,EAC/D,OAAO,CAAC,UAAqB;AAGzB,cAAA;AAAA,UACC,GAAG,WAAW,IAAI,CAAC,QAAQ;AAEzB,gBAAI,QAAQ,gBAAgB;AACnB,qBAAA,GAAG,IAAI,sBAAsB;AAAA,YACtC;AAEA,gBAAI,QAAQ,cAAc;AACxB,qBAAO,GAAG,IAAI,mBAAmB,CAAK,oBAAA,KAAM,CAAA,CAAC;AAAA,YAC/C;AAEO,mBAAA;AAAA,UAAA,CACR;AAAA,QAAA,EAEF,KAAK,SAAS,SAAS,EACvB,aAAa,cAAc;AAAA,MAAA,CAC/B;AAAA,IACL;AAAA,EACF;AACF;AAEA,MAAM,yBAAyB,OAAO,EAAE,iBAAiBD,cAAAA,qBAA0B;AACjF,MAAI,CAAC,iBAAiB;AACpB;AAAA,EACF;AAEA,aAAW,OAAOA,gBAAc;AAC1B,QAAA,CAAC,gBAAgB,GAAG,GAAG;AACzB;AAAA,IACF;AAEM,UAAA,iBAAiB,gBAAgB,GAAG;AACpC,UAAA,cAAcA,eAAa,GAAG;AAIlC,QAAAC,aAAkB,mBAAmB,cAAc,KACnD,CAACA,aAAkB,mBAAmB,WAAW,GACjD;AACA,YAAM,OAAO,IAAI,aAAa,GAAG,EAAE,OAAA,EAAS,MAAM,EAAE,cAAc,MAAM,EAAE,QAAQ;AAAA,IACpF;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"draft-publish.mjs","sources":["../../src/migrations/draft-publish.ts"],"sourcesContent":["import { contentTypes as contentTypesUtils, async } from '@strapi/utils';\nimport type { Schema } from '@strapi/types';\n\nimport { getBatchToDiscard } from './database/5.0.0-discard-drafts';\n\nexport interface Input {\n oldContentTypes: Record<string, Schema.ContentType>;\n contentTypes: Record<string, Schema.ContentType>;\n}\n\n/**\n * Enable draft and publish for content types.\n *\n * Draft and publish disabled content types will have their entries published,\n * this migration clones those entries as drafts.\n *\n * TODO: Clone components, dynamic zones and relations\n */\nconst enableDraftAndPublish = async ({ oldContentTypes, contentTypes }: Input) => {\n if (!oldContentTypes) {\n return;\n }\n\n // run the after content types migrations\n return strapi.db.transaction(async (trx) => {\n for (const uid in contentTypes) {\n if (!oldContentTypes[uid]) {\n continue;\n }\n\n const oldContentType = oldContentTypes[uid];\n const contentType = contentTypes[uid];\n\n // if d&p was enabled set publishedAt to eq createdAt\n if (\n !contentTypesUtils.hasDraftAndPublish(oldContentType) &&\n contentTypesUtils.hasDraftAndPublish(contentType)\n ) {\n const discardDraft = async (entry: { documentId: string; locale: string }) =>\n strapi\n .documents(uid as any)\n // Discard draft by referencing the documentId and locale\n .discardDraft({ documentId: entry.documentId, locale: entry.locale });\n\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 for await (const batch of getBatchToDiscard({ db: strapi.db, trx, uid })) {\n await async.map(batch, discardDraft, { concurrency: 10 });\n }\n }\n }\n });\n};\n\nconst disableDraftAndPublish = async ({ oldContentTypes, contentTypes }: Input) => {\n if (!oldContentTypes) {\n return;\n }\n\n for (const uid in contentTypes) {\n if (!oldContentTypes[uid]) {\n continue;\n }\n\n const oldContentType = oldContentTypes[uid];\n const contentType = contentTypes[uid];\n\n // if d&p was disabled remove unpublish content before sync\n if (\n contentTypesUtils.hasDraftAndPublish(oldContentType) &&\n !contentTypesUtils.hasDraftAndPublish(contentType)\n ) {\n await strapi.db?.queryBuilder(uid).delete().where({ published_at: null }).execute();\n }\n }\n};\n\nexport { enableDraftAndPublish as enable, disableDraftAndPublish as disable };\n"],"names":["enableDraftAndPublish","oldContentTypes","contentTypes","strapi","db","transaction","trx","uid","oldContentType","contentType","contentTypesUtils","hasDraftAndPublish","discardDraft","entry","documents","documentId","locale","batch","getBatchToDiscard","async","map","concurrency","disableDraftAndPublish","queryBuilder","delete","where","published_at","execute"],"mappings":";;;AAUA;;;;;;;AAOC,UACKA,qBAAwB,GAAA,OAAO,EAAEC,eAAe,gBAAEC,cAAY,EAAS,GAAA;AAC3E,IAAA,IAAI,CAACD,eAAiB,EAAA;AACpB,QAAA;AACF;;AAGA,IAAA,OAAOE,MAAOC,CAAAA,EAAE,CAACC,WAAW,CAAC,OAAOC,GAAAA,GAAAA;QAClC,IAAK,MAAMC,OAAOL,cAAc,CAAA;AAC9B,YAAA,IAAI,CAACD,eAAe,CAACM,GAAAA,CAAI,EAAE;AACzB,gBAAA;AACF;YAEA,MAAMC,cAAAA,GAAiBP,eAAe,CAACM,GAAI,CAAA;YAC3C,MAAME,WAAAA,GAAcP,cAAY,CAACK,GAAI,CAAA;;YAGrC,IACE,CAACG,aAAkBC,kBAAkB,CAACH,mBACtCE,YAAkBC,CAAAA,kBAAkB,CAACF,WACrC,CAAA,EAAA;AACA,gBAAA,MAAMG,eAAe,OAAOC,KAAAA,GAC1BV,OACGW,SAAS,CAACP,IACX;AACCK,qBAAAA,YAAY,CAAC;AAAEG,wBAAAA,UAAAA,EAAYF,MAAME,UAAU;AAAEC,wBAAAA,MAAAA,EAAQH,MAAMG;AAAO,qBAAA,CAAA;AAEvE;;;YAIA,WAAW,MAAMC,KAAAA,IAASC,iBAAkB,CAAA;AAAEd,oBAAAA,EAAAA,EAAID,OAAOC,EAAE;AAAEE,oBAAAA,GAAAA;AAAKC,oBAAAA;iBAAQ,CAAA,CAAA;AACxE,oBAAA,MAAMY,KAAMC,CAAAA,GAAG,CAACH,KAAAA,EAAOL,YAAc,EAAA;wBAAES,WAAa,EAAA;AAAG,qBAAA,CAAA;AACzD;AACF;AACF;AACF,KAAA,CAAA;AACF;AAEA,MAAMC,yBAAyB,OAAO,EAAErB,eAAe,gBAAEC,cAAY,EAAS,GAAA;AAC5E,IAAA,IAAI,CAACD,eAAiB,EAAA;AACpB,QAAA;AACF;IAEA,IAAK,MAAMM,OAAOL,cAAc,CAAA;AAC9B,QAAA,IAAI,CAACD,eAAe,CAACM,GAAAA,CAAI,EAAE;AACzB,YAAA;AACF;QAEA,MAAMC,cAAAA,GAAiBP,eAAe,CAACM,GAAI,CAAA;QAC3C,MAAME,WAAAA,GAAcP,cAAY,CAACK,GAAI,CAAA;;QAGrC,IACEG,YAAAA,CAAkBC,kBAAkB,CAACH,cAAAA,CAAAA,IACrC,CAACE,YAAkBC,CAAAA,kBAAkB,CAACF,WACtC,CAAA,EAAA;AACA,YAAA,MAAMN,OAAOC,EAAE,EAAEmB,YAAahB,CAAAA,GAAAA,CAAAA,CAAKiB,SAASC,KAAM,CAAA;gBAAEC,YAAc,EAAA;aAAQC,CAAAA,CAAAA,OAAAA,EAAAA;AAC5E;AACF;AACF;;;;"}
@@ -0,0 +1,4 @@
1
+ import { Input } from './draft-publish';
2
+ declare const enableFirstPublishedAt: ({ oldContentTypes, contentTypes }: Input) => Promise<void>;
3
+ export { enableFirstPublishedAt as enable };
4
+ //# sourceMappingURL=first-published-at.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"first-published-at.d.ts","sourceRoot":"","sources":["../../src/migrations/first-published-at.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAUxC,QAAA,MAAM,sBAAsB,sCAA6C,KAAK,kBA6D7E,CAAC;AAEF,OAAO,EAAE,sBAAsB,IAAI,MAAM,EAAE,CAAC"}
@@ -0,0 +1,51 @@
1
+ 'use strict';
2
+
3
+ var strapiUtils = require('@strapi/utils');
4
+ var _ = require('lodash');
5
+
6
+ const enableFirstPublishedAt = async ({ oldContentTypes, contentTypes })=>{
7
+ if (!oldContentTypes) {
8
+ return;
9
+ }
10
+ return strapi.db.transaction(async (trx)=>{
11
+ for(const uid in contentTypes){
12
+ if (!oldContentTypes[uid]) {
13
+ continue;
14
+ }
15
+ const contentType = contentTypes[uid];
16
+ if (!strapiUtils.contentTypes.hasFirstPublishedAtField(contentType)) {
17
+ continue;
18
+ }
19
+ if (!contentType.attributes?.firstPublishedAt) {
20
+ continue;
21
+ }
22
+ const content = await strapi.db.queryBuilder(uid).select('*').transacting(trx).execute();
23
+ // Process content types in pairs: draft and published.
24
+ // If only one exist, which means the value is not published yet and we can ignore it
25
+ const groupedContent = _.groupBy(content, (item)=>`${item.documentId}-${item.locale}`);
26
+ for (const items of Object.values(groupedContent)){
27
+ // If there is only one item, which means nothing is published yet for this locale
28
+ if (items.length <= 1) {
29
+ continue;
30
+ }
31
+ // If firstPublishedAt is already present, do not do anything
32
+ if (items[0].firstPublishedAt != null && items[1].firstPublishedAt != null) {
33
+ continue;
34
+ }
35
+ const publishedContent = items.filter((item)=>item.publishedAt != null).at(0);
36
+ if (!publishedContent) {
37
+ continue;
38
+ }
39
+ await strapi.db.queryBuilder(uid).update({
40
+ firstPublishedAt: new Date(publishedContent.publishedAt)
41
+ }).where({
42
+ documentId: publishedContent.documentId,
43
+ locale: publishedContent.locale
44
+ }).transacting(trx).execute();
45
+ }
46
+ }
47
+ });
48
+ };
49
+
50
+ exports.enable = enableFirstPublishedAt;
51
+ //# sourceMappingURL=first-published-at.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"first-published-at.js","sources":["../../src/migrations/first-published-at.ts"],"sourcesContent":["import { contentTypes as contentTypesUtils } from '@strapi/utils';\nimport _ from 'lodash';\nimport { Input } from './draft-publish';\n\ninterface ContentTypeData {\n id: number;\n documentId: string;\n publishedAt: Date;\n firstPublishedAt: Date;\n locale: string;\n}\n\nconst enableFirstPublishedAt = async ({ oldContentTypes, contentTypes }: Input) => {\n if (!oldContentTypes) {\n return;\n }\n\n return strapi.db.transaction(async (trx) => {\n for (const uid in contentTypes) {\n if (!oldContentTypes[uid]) {\n continue;\n }\n\n const contentType = contentTypes[uid];\n\n if (!contentTypesUtils.hasFirstPublishedAtField(contentType)) {\n continue;\n }\n\n if (!contentType.attributes?.firstPublishedAt) {\n continue;\n }\n\n const content: ContentTypeData[] = await strapi.db\n .queryBuilder(uid)\n .select('*')\n .transacting(trx)\n .execute();\n\n // Process content types in pairs: draft and published.\n // If only one exist, which means the value is not published yet and we can ignore it\n const groupedContent = _.groupBy(content, (item) => `${item.documentId}-${item.locale}`);\n\n for (const items of Object.values(groupedContent)) {\n // If there is only one item, which means nothing is published yet for this locale\n if (items.length <= 1) {\n continue;\n }\n\n // If firstPublishedAt is already present, do not do anything\n if (items[0].firstPublishedAt != null && items[1].firstPublishedAt != null) {\n continue;\n }\n\n const publishedContent = items.filter((item) => item.publishedAt != null).at(0);\n if (!publishedContent) {\n continue;\n }\n\n await strapi.db\n .queryBuilder(uid)\n .update({\n firstPublishedAt: new Date(publishedContent.publishedAt),\n })\n .where({\n documentId: publishedContent.documentId,\n locale: publishedContent.locale,\n })\n .transacting(trx)\n .execute();\n }\n }\n });\n};\n\nexport { enableFirstPublishedAt as enable };\n"],"names":["enableFirstPublishedAt","oldContentTypes","contentTypes","strapi","db","transaction","trx","uid","contentType","contentTypesUtils","hasFirstPublishedAtField","attributes","firstPublishedAt","content","queryBuilder","select","transacting","execute","groupedContent","_","groupBy","item","documentId","locale","items","Object","values","length","publishedContent","filter","publishedAt","at","update","Date","where"],"mappings":";;;;;AAYA,MAAMA,yBAAyB,OAAO,EAAEC,eAAe,EAAEC,YAAY,EAAS,GAAA;AAC5E,IAAA,IAAI,CAACD,eAAiB,EAAA;AACpB,QAAA;AACF;AAEA,IAAA,OAAOE,MAAOC,CAAAA,EAAE,CAACC,WAAW,CAAC,OAAOC,GAAAA,GAAAA;QAClC,IAAK,MAAMC,OAAOL,YAAc,CAAA;AAC9B,YAAA,IAAI,CAACD,eAAe,CAACM,GAAAA,CAAI,EAAE;AACzB,gBAAA;AACF;YAEA,MAAMC,WAAAA,GAAcN,YAAY,CAACK,GAAI,CAAA;AAErC,YAAA,IAAI,CAACE,wBAAAA,CAAkBC,wBAAwB,CAACF,WAAc,CAAA,EAAA;AAC5D,gBAAA;AACF;AAEA,YAAA,IAAI,CAACA,WAAAA,CAAYG,UAAU,EAAEC,gBAAkB,EAAA;AAC7C,gBAAA;AACF;AAEA,YAAA,MAAMC,OAA6B,GAAA,MAAMV,MAAOC,CAAAA,EAAE,CAC/CU,YAAY,CAACP,GACbQ,CAAAA,CAAAA,MAAM,CAAC,GAAA,CAAA,CACPC,WAAW,CAACV,KACZW,OAAO,EAAA;;;AAIV,YAAA,MAAMC,iBAAiBC,CAAEC,CAAAA,OAAO,CAACP,OAAAA,EAAS,CAACQ,IAAS,GAAA,CAAC,EAAEA,IAAAA,CAAKC,UAAU,CAAC,CAAC,EAAED,IAAKE,CAAAA,MAAM,CAAC,CAAC,CAAA;AAEvF,YAAA,KAAK,MAAMC,KAAAA,IAASC,MAAOC,CAAAA,MAAM,CAACR,cAAiB,CAAA,CAAA;;gBAEjD,IAAIM,KAAAA,CAAMG,MAAM,IAAI,CAAG,EAAA;AACrB,oBAAA;AACF;;AAGA,gBAAA,IAAIH,KAAK,CAAC,CAAE,CAAA,CAACZ,gBAAgB,IAAI,IAAQY,IAAAA,KAAK,CAAC,CAAA,CAAE,CAACZ,gBAAgB,IAAI,IAAM,EAAA;AAC1E,oBAAA;AACF;gBAEA,MAAMgB,gBAAAA,GAAmBJ,KAAMK,CAAAA,MAAM,CAAC,CAACR,IAASA,GAAAA,IAAAA,CAAKS,WAAW,IAAI,IAAMC,CAAAA,CAAAA,EAAE,CAAC,CAAA,CAAA;AAC7E,gBAAA,IAAI,CAACH,gBAAkB,EAAA;AACrB,oBAAA;AACF;AAEA,gBAAA,MAAMzB,OAAOC,EAAE,CACZU,YAAY,CAACP,GAAAA,CAAAA,CACbyB,MAAM,CAAC;oBACNpB,gBAAkB,EAAA,IAAIqB,IAAKL,CAAAA,gBAAAA,CAAiBE,WAAW;AACzD,iBAAA,CAAA,CACCI,KAAK,CAAC;AACLZ,oBAAAA,UAAAA,EAAYM,iBAAiBN,UAAU;AACvCC,oBAAAA,MAAAA,EAAQK,iBAAiBL;iBAE1BP,CAAAA,CAAAA,WAAW,CAACV,GAAAA,CAAAA,CACZW,OAAO,EAAA;AACZ;AACF;AACF,KAAA,CAAA;AACF;;;;"}
@@ -0,0 +1,49 @@
1
+ import { contentTypes } from '@strapi/utils';
2
+ import _ from 'lodash';
3
+
4
+ const enableFirstPublishedAt = async ({ oldContentTypes, contentTypes: contentTypes$1 })=>{
5
+ if (!oldContentTypes) {
6
+ return;
7
+ }
8
+ return strapi.db.transaction(async (trx)=>{
9
+ for(const uid in contentTypes$1){
10
+ if (!oldContentTypes[uid]) {
11
+ continue;
12
+ }
13
+ const contentType = contentTypes$1[uid];
14
+ if (!contentTypes.hasFirstPublishedAtField(contentType)) {
15
+ continue;
16
+ }
17
+ if (!contentType.attributes?.firstPublishedAt) {
18
+ continue;
19
+ }
20
+ const content = await strapi.db.queryBuilder(uid).select('*').transacting(trx).execute();
21
+ // Process content types in pairs: draft and published.
22
+ // If only one exist, which means the value is not published yet and we can ignore it
23
+ const groupedContent = _.groupBy(content, (item)=>`${item.documentId}-${item.locale}`);
24
+ for (const items of Object.values(groupedContent)){
25
+ // If there is only one item, which means nothing is published yet for this locale
26
+ if (items.length <= 1) {
27
+ continue;
28
+ }
29
+ // If firstPublishedAt is already present, do not do anything
30
+ if (items[0].firstPublishedAt != null && items[1].firstPublishedAt != null) {
31
+ continue;
32
+ }
33
+ const publishedContent = items.filter((item)=>item.publishedAt != null).at(0);
34
+ if (!publishedContent) {
35
+ continue;
36
+ }
37
+ await strapi.db.queryBuilder(uid).update({
38
+ firstPublishedAt: new Date(publishedContent.publishedAt)
39
+ }).where({
40
+ documentId: publishedContent.documentId,
41
+ locale: publishedContent.locale
42
+ }).transacting(trx).execute();
43
+ }
44
+ }
45
+ });
46
+ };
47
+
48
+ export { enableFirstPublishedAt as enable };
49
+ //# sourceMappingURL=first-published-at.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"first-published-at.mjs","sources":["../../src/migrations/first-published-at.ts"],"sourcesContent":["import { contentTypes as contentTypesUtils } from '@strapi/utils';\nimport _ from 'lodash';\nimport { Input } from './draft-publish';\n\ninterface ContentTypeData {\n id: number;\n documentId: string;\n publishedAt: Date;\n firstPublishedAt: Date;\n locale: string;\n}\n\nconst enableFirstPublishedAt = async ({ oldContentTypes, contentTypes }: Input) => {\n if (!oldContentTypes) {\n return;\n }\n\n return strapi.db.transaction(async (trx) => {\n for (const uid in contentTypes) {\n if (!oldContentTypes[uid]) {\n continue;\n }\n\n const contentType = contentTypes[uid];\n\n if (!contentTypesUtils.hasFirstPublishedAtField(contentType)) {\n continue;\n }\n\n if (!contentType.attributes?.firstPublishedAt) {\n continue;\n }\n\n const content: ContentTypeData[] = await strapi.db\n .queryBuilder(uid)\n .select('*')\n .transacting(trx)\n .execute();\n\n // Process content types in pairs: draft and published.\n // If only one exist, which means the value is not published yet and we can ignore it\n const groupedContent = _.groupBy(content, (item) => `${item.documentId}-${item.locale}`);\n\n for (const items of Object.values(groupedContent)) {\n // If there is only one item, which means nothing is published yet for this locale\n if (items.length <= 1) {\n continue;\n }\n\n // If firstPublishedAt is already present, do not do anything\n if (items[0].firstPublishedAt != null && items[1].firstPublishedAt != null) {\n continue;\n }\n\n const publishedContent = items.filter((item) => item.publishedAt != null).at(0);\n if (!publishedContent) {\n continue;\n }\n\n await strapi.db\n .queryBuilder(uid)\n .update({\n firstPublishedAt: new Date(publishedContent.publishedAt),\n })\n .where({\n documentId: publishedContent.documentId,\n locale: publishedContent.locale,\n })\n .transacting(trx)\n .execute();\n }\n }\n });\n};\n\nexport { enableFirstPublishedAt as enable };\n"],"names":["enableFirstPublishedAt","oldContentTypes","contentTypes","strapi","db","transaction","trx","uid","contentType","contentTypesUtils","hasFirstPublishedAtField","attributes","firstPublishedAt","content","queryBuilder","select","transacting","execute","groupedContent","_","groupBy","item","documentId","locale","items","Object","values","length","publishedContent","filter","publishedAt","at","update","Date","where"],"mappings":";;;AAYA,MAAMA,yBAAyB,OAAO,EAAEC,eAAe,gBAAEC,cAAY,EAAS,GAAA;AAC5E,IAAA,IAAI,CAACD,eAAiB,EAAA;AACpB,QAAA;AACF;AAEA,IAAA,OAAOE,MAAOC,CAAAA,EAAE,CAACC,WAAW,CAAC,OAAOC,GAAAA,GAAAA;QAClC,IAAK,MAAMC,OAAOL,cAAc,CAAA;AAC9B,YAAA,IAAI,CAACD,eAAe,CAACM,GAAAA,CAAI,EAAE;AACzB,gBAAA;AACF;YAEA,MAAMC,WAAAA,GAAcN,cAAY,CAACK,GAAI,CAAA;AAErC,YAAA,IAAI,CAACE,YAAAA,CAAkBC,wBAAwB,CAACF,WAAc,CAAA,EAAA;AAC5D,gBAAA;AACF;AAEA,YAAA,IAAI,CAACA,WAAAA,CAAYG,UAAU,EAAEC,gBAAkB,EAAA;AAC7C,gBAAA;AACF;AAEA,YAAA,MAAMC,OAA6B,GAAA,MAAMV,MAAOC,CAAAA,EAAE,CAC/CU,YAAY,CAACP,GACbQ,CAAAA,CAAAA,MAAM,CAAC,GAAA,CAAA,CACPC,WAAW,CAACV,KACZW,OAAO,EAAA;;;AAIV,YAAA,MAAMC,iBAAiBC,CAAEC,CAAAA,OAAO,CAACP,OAAAA,EAAS,CAACQ,IAAS,GAAA,CAAC,EAAEA,IAAAA,CAAKC,UAAU,CAAC,CAAC,EAAED,IAAKE,CAAAA,MAAM,CAAC,CAAC,CAAA;AAEvF,YAAA,KAAK,MAAMC,KAAAA,IAASC,MAAOC,CAAAA,MAAM,CAACR,cAAiB,CAAA,CAAA;;gBAEjD,IAAIM,KAAAA,CAAMG,MAAM,IAAI,CAAG,EAAA;AACrB,oBAAA;AACF;;AAGA,gBAAA,IAAIH,KAAK,CAAC,CAAE,CAAA,CAACZ,gBAAgB,IAAI,IAAQY,IAAAA,KAAK,CAAC,CAAA,CAAE,CAACZ,gBAAgB,IAAI,IAAM,EAAA;AAC1E,oBAAA;AACF;gBAEA,MAAMgB,gBAAAA,GAAmBJ,KAAMK,CAAAA,MAAM,CAAC,CAACR,IAASA,GAAAA,IAAAA,CAAKS,WAAW,IAAI,IAAMC,CAAAA,CAAAA,EAAE,CAAC,CAAA,CAAA;AAC7E,gBAAA,IAAI,CAACH,gBAAkB,EAAA;AACrB,oBAAA;AACF;AAEA,gBAAA,MAAMzB,OAAOC,EAAE,CACZU,YAAY,CAACP,GAAAA,CAAAA,CACbyB,MAAM,CAAC;oBACNpB,gBAAkB,EAAA,IAAIqB,IAAKL,CAAAA,gBAAAA,CAAiBE,WAAW;AACzD,iBAAA,CAAA,CACCI,KAAK,CAAC;AACLZ,oBAAAA,UAAAA,EAAYM,iBAAiBN,UAAU;AACvCC,oBAAAA,MAAAA,EAAQK,iBAAiBL;iBAE1BP,CAAAA,CAAAA,WAAW,CAACV,GAAAA,CAAAA,CACZW,OAAO,EAAA;AACZ;AACF;AACF,KAAA,CAAA;AACF;;;;"}
@@ -0,0 +1,5 @@
1
+ import { Input } from './draft-publish';
2
+ declare const enableI18n: ({ oldContentTypes, contentTypes }: Input) => Promise<void>;
3
+ declare const disableI18n: ({ oldContentTypes, contentTypes }: Input) => Promise<void>;
4
+ export { enableI18n as enable, disableI18n as disable };
5
+ //# sourceMappingURL=i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/migrations/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGxC,QAAA,MAAM,UAAU,sCAA6C,KAAK,kBAyBjE,CAAC;AAEF,QAAA,MAAM,WAAW,sCAA6C,KAAK,kBAiClE,CAAC;AAEF,OAAO,EAAE,UAAU,IAAI,MAAM,EAAE,WAAW,IAAI,OAAO,EAAE,CAAC"}
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ // if i18N enabled set default locale
4
+ const enableI18n = async ({ oldContentTypes, contentTypes })=>{
5
+ const { isLocalizedContentType } = strapi.plugin('i18n')?.service('content-types') ?? {};
6
+ const { getDefaultLocale } = strapi.plugin('i18n')?.service('locales') ?? {};
7
+ if (!oldContentTypes) {
8
+ return;
9
+ }
10
+ for(const uid in contentTypes){
11
+ if (!oldContentTypes[uid]) {
12
+ continue;
13
+ }
14
+ const oldContentType = oldContentTypes[uid];
15
+ const contentType = contentTypes[uid];
16
+ if (!isLocalizedContentType(oldContentType) && isLocalizedContentType(contentType)) {
17
+ const defaultLocale = await getDefaultLocale();
18
+ await strapi.db.query(uid).updateMany({
19
+ where: {
20
+ locale: null
21
+ },
22
+ data: {
23
+ locale: defaultLocale
24
+ }
25
+ });
26
+ }
27
+ }
28
+ };
29
+ const disableI18n = async ({ oldContentTypes, contentTypes })=>{
30
+ const { isLocalizedContentType } = strapi.plugin('i18n')?.service('content-types') ?? {};
31
+ const { getDefaultLocale } = strapi.plugin('i18n')?.service('locales') ?? {};
32
+ if (!oldContentTypes) {
33
+ return;
34
+ }
35
+ for(const uid in contentTypes){
36
+ if (!oldContentTypes[uid]) {
37
+ continue;
38
+ }
39
+ const oldContentType = oldContentTypes[uid];
40
+ const contentType = contentTypes[uid];
41
+ // if i18N is disabled remove non default locales before sync
42
+ if (isLocalizedContentType(oldContentType) && !isLocalizedContentType(contentType)) {
43
+ const defaultLocale = await getDefaultLocale();
44
+ await Promise.all([
45
+ // Delete all entities that are not in the default locale
46
+ strapi.db.query(uid).deleteMany({
47
+ where: {
48
+ locale: {
49
+ $ne: defaultLocale
50
+ }
51
+ }
52
+ }),
53
+ // Set locale to null for the rest
54
+ strapi.db.query(uid).updateMany({
55
+ where: {
56
+ locale: {
57
+ $eq: defaultLocale
58
+ }
59
+ },
60
+ data: {
61
+ locale: null
62
+ }
63
+ })
64
+ ]);
65
+ }
66
+ }
67
+ };
68
+
69
+ exports.disable = disableI18n;
70
+ exports.enable = enableI18n;
71
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sources":["../../src/migrations/i18n.ts"],"sourcesContent":["import { Input } from './draft-publish';\n\n// if i18N enabled set default locale\nconst enableI18n = async ({ oldContentTypes, contentTypes }: Input) => {\n const { isLocalizedContentType } = strapi.plugin('i18n')?.service('content-types') ?? {};\n const { getDefaultLocale } = strapi.plugin('i18n')?.service('locales') ?? {};\n\n if (!oldContentTypes) {\n return;\n }\n\n for (const uid in contentTypes) {\n if (!oldContentTypes[uid]) {\n continue;\n }\n\n const oldContentType = oldContentTypes[uid];\n const contentType = contentTypes[uid];\n\n if (!isLocalizedContentType(oldContentType) && isLocalizedContentType(contentType)) {\n const defaultLocale = await getDefaultLocale();\n\n await strapi.db.query(uid).updateMany({\n where: { locale: null },\n data: { locale: defaultLocale },\n });\n }\n }\n};\n\nconst disableI18n = async ({ oldContentTypes, contentTypes }: Input) => {\n const { isLocalizedContentType } = strapi.plugin('i18n')?.service('content-types') ?? {};\n const { getDefaultLocale } = strapi.plugin('i18n')?.service('locales') ?? {};\n\n if (!oldContentTypes) {\n return;\n }\n\n for (const uid in contentTypes) {\n if (!oldContentTypes[uid]) {\n continue;\n }\n\n const oldContentType = oldContentTypes[uid];\n const contentType = contentTypes[uid];\n\n // if i18N is disabled remove non default locales before sync\n if (isLocalizedContentType(oldContentType) && !isLocalizedContentType(contentType)) {\n const defaultLocale = await getDefaultLocale();\n\n await Promise.all([\n // Delete all entities that are not in the default locale\n strapi.db.query(uid).deleteMany({\n where: { locale: { $ne: defaultLocale } },\n }),\n // Set locale to null for the rest\n strapi.db.query(uid).updateMany({\n where: { locale: { $eq: defaultLocale } },\n data: { locale: null },\n }),\n ]);\n }\n }\n};\n\nexport { enableI18n as enable, disableI18n as disable };\n"],"names":["enableI18n","oldContentTypes","contentTypes","isLocalizedContentType","strapi","plugin","service","getDefaultLocale","uid","oldContentType","contentType","defaultLocale","db","query","updateMany","where","locale","data","disableI18n","Promise","all","deleteMany","$ne","$eq"],"mappings":";;AAEA;AACA,MAAMA,aAAa,OAAO,EAAEC,eAAe,EAAEC,YAAY,EAAS,GAAA;IAChE,MAAM,EAAEC,sBAAsB,EAAE,GAAGC,MAAAA,CAAOC,MAAM,CAAC,MAAA,CAAA,EAASC,OAAQ,CAAA,eAAA,CAAA,IAAoB,EAAC;IACvF,MAAM,EAAEC,gBAAgB,EAAE,GAAGH,MAAAA,CAAOC,MAAM,CAAC,MAAA,CAAA,EAASC,OAAQ,CAAA,SAAA,CAAA,IAAc,EAAC;AAE3E,IAAA,IAAI,CAACL,eAAiB,EAAA;AACpB,QAAA;AACF;IAEA,IAAK,MAAMO,OAAON,YAAc,CAAA;AAC9B,QAAA,IAAI,CAACD,eAAe,CAACO,GAAAA,CAAI,EAAE;AACzB,YAAA;AACF;QAEA,MAAMC,cAAAA,GAAiBR,eAAe,CAACO,GAAI,CAAA;QAC3C,MAAME,WAAAA,GAAcR,YAAY,CAACM,GAAI,CAAA;AAErC,QAAA,IAAI,CAACL,sBAAAA,CAAuBM,cAAmBN,CAAAA,IAAAA,sBAAAA,CAAuBO,WAAc,CAAA,EAAA;AAClF,YAAA,MAAMC,gBAAgB,MAAMJ,gBAAAA,EAAAA;AAE5B,YAAA,MAAMH,OAAOQ,EAAE,CAACC,KAAK,CAACL,GAAAA,CAAAA,CAAKM,UAAU,CAAC;gBACpCC,KAAO,EAAA;oBAAEC,MAAQ,EAAA;AAAK,iBAAA;gBACtBC,IAAM,EAAA;oBAAED,MAAQL,EAAAA;AAAc;AAChC,aAAA,CAAA;AACF;AACF;AACF;AAEA,MAAMO,cAAc,OAAO,EAAEjB,eAAe,EAAEC,YAAY,EAAS,GAAA;IACjE,MAAM,EAAEC,sBAAsB,EAAE,GAAGC,MAAAA,CAAOC,MAAM,CAAC,MAAA,CAAA,EAASC,OAAQ,CAAA,eAAA,CAAA,IAAoB,EAAC;IACvF,MAAM,EAAEC,gBAAgB,EAAE,GAAGH,MAAAA,CAAOC,MAAM,CAAC,MAAA,CAAA,EAASC,OAAQ,CAAA,SAAA,CAAA,IAAc,EAAC;AAE3E,IAAA,IAAI,CAACL,eAAiB,EAAA;AACpB,QAAA;AACF;IAEA,IAAK,MAAMO,OAAON,YAAc,CAAA;AAC9B,QAAA,IAAI,CAACD,eAAe,CAACO,GAAAA,CAAI,EAAE;AACzB,YAAA;AACF;QAEA,MAAMC,cAAAA,GAAiBR,eAAe,CAACO,GAAI,CAAA;QAC3C,MAAME,WAAAA,GAAcR,YAAY,CAACM,GAAI,CAAA;;AAGrC,QAAA,IAAIL,sBAAuBM,CAAAA,cAAAA,CAAAA,IAAmB,CAACN,sBAAAA,CAAuBO,WAAc,CAAA,EAAA;AAClF,YAAA,MAAMC,gBAAgB,MAAMJ,gBAAAA,EAAAA;YAE5B,MAAMY,OAAAA,CAAQC,GAAG,CAAC;;AAEhBhB,gBAAAA,MAAAA,CAAOQ,EAAE,CAACC,KAAK,CAACL,GAAAA,CAAAA,CAAKa,UAAU,CAAC;oBAC9BN,KAAO,EAAA;wBAAEC,MAAQ,EAAA;4BAAEM,GAAKX,EAAAA;AAAc;AAAE;AAC1C,iBAAA,CAAA;;AAEAP,gBAAAA,MAAAA,CAAOQ,EAAE,CAACC,KAAK,CAACL,GAAAA,CAAAA,CAAKM,UAAU,CAAC;oBAC9BC,KAAO,EAAA;wBAAEC,MAAQ,EAAA;4BAAEO,GAAKZ,EAAAA;AAAc;AAAE,qBAAA;oBACxCM,IAAM,EAAA;wBAAED,MAAQ,EAAA;AAAK;AACvB,iBAAA;AACD,aAAA,CAAA;AACH;AACF;AACF;;;;;"}
@@ -0,0 +1,68 @@
1
+ // if i18N enabled set default locale
2
+ const enableI18n = async ({ oldContentTypes, contentTypes })=>{
3
+ const { isLocalizedContentType } = strapi.plugin('i18n')?.service('content-types') ?? {};
4
+ const { getDefaultLocale } = strapi.plugin('i18n')?.service('locales') ?? {};
5
+ if (!oldContentTypes) {
6
+ return;
7
+ }
8
+ for(const uid in contentTypes){
9
+ if (!oldContentTypes[uid]) {
10
+ continue;
11
+ }
12
+ const oldContentType = oldContentTypes[uid];
13
+ const contentType = contentTypes[uid];
14
+ if (!isLocalizedContentType(oldContentType) && isLocalizedContentType(contentType)) {
15
+ const defaultLocale = await getDefaultLocale();
16
+ await strapi.db.query(uid).updateMany({
17
+ where: {
18
+ locale: null
19
+ },
20
+ data: {
21
+ locale: defaultLocale
22
+ }
23
+ });
24
+ }
25
+ }
26
+ };
27
+ const disableI18n = async ({ oldContentTypes, contentTypes })=>{
28
+ const { isLocalizedContentType } = strapi.plugin('i18n')?.service('content-types') ?? {};
29
+ const { getDefaultLocale } = strapi.plugin('i18n')?.service('locales') ?? {};
30
+ if (!oldContentTypes) {
31
+ return;
32
+ }
33
+ for(const uid in contentTypes){
34
+ if (!oldContentTypes[uid]) {
35
+ continue;
36
+ }
37
+ const oldContentType = oldContentTypes[uid];
38
+ const contentType = contentTypes[uid];
39
+ // if i18N is disabled remove non default locales before sync
40
+ if (isLocalizedContentType(oldContentType) && !isLocalizedContentType(contentType)) {
41
+ const defaultLocale = await getDefaultLocale();
42
+ await Promise.all([
43
+ // Delete all entities that are not in the default locale
44
+ strapi.db.query(uid).deleteMany({
45
+ where: {
46
+ locale: {
47
+ $ne: defaultLocale
48
+ }
49
+ }
50
+ }),
51
+ // Set locale to null for the rest
52
+ strapi.db.query(uid).updateMany({
53
+ where: {
54
+ locale: {
55
+ $eq: defaultLocale
56
+ }
57
+ },
58
+ data: {
59
+ locale: null
60
+ }
61
+ })
62
+ ]);
63
+ }
64
+ }
65
+ };
66
+
67
+ export { disableI18n as disable, enableI18n as enable };
68
+ //# sourceMappingURL=i18n.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.mjs","sources":["../../src/migrations/i18n.ts"],"sourcesContent":["import { Input } from './draft-publish';\n\n// if i18N enabled set default locale\nconst enableI18n = async ({ oldContentTypes, contentTypes }: Input) => {\n const { isLocalizedContentType } = strapi.plugin('i18n')?.service('content-types') ?? {};\n const { getDefaultLocale } = strapi.plugin('i18n')?.service('locales') ?? {};\n\n if (!oldContentTypes) {\n return;\n }\n\n for (const uid in contentTypes) {\n if (!oldContentTypes[uid]) {\n continue;\n }\n\n const oldContentType = oldContentTypes[uid];\n const contentType = contentTypes[uid];\n\n if (!isLocalizedContentType(oldContentType) && isLocalizedContentType(contentType)) {\n const defaultLocale = await getDefaultLocale();\n\n await strapi.db.query(uid).updateMany({\n where: { locale: null },\n data: { locale: defaultLocale },\n });\n }\n }\n};\n\nconst disableI18n = async ({ oldContentTypes, contentTypes }: Input) => {\n const { isLocalizedContentType } = strapi.plugin('i18n')?.service('content-types') ?? {};\n const { getDefaultLocale } = strapi.plugin('i18n')?.service('locales') ?? {};\n\n if (!oldContentTypes) {\n return;\n }\n\n for (const uid in contentTypes) {\n if (!oldContentTypes[uid]) {\n continue;\n }\n\n const oldContentType = oldContentTypes[uid];\n const contentType = contentTypes[uid];\n\n // if i18N is disabled remove non default locales before sync\n if (isLocalizedContentType(oldContentType) && !isLocalizedContentType(contentType)) {\n const defaultLocale = await getDefaultLocale();\n\n await Promise.all([\n // Delete all entities that are not in the default locale\n strapi.db.query(uid).deleteMany({\n where: { locale: { $ne: defaultLocale } },\n }),\n // Set locale to null for the rest\n strapi.db.query(uid).updateMany({\n where: { locale: { $eq: defaultLocale } },\n data: { locale: null },\n }),\n ]);\n }\n }\n};\n\nexport { enableI18n as enable, disableI18n as disable };\n"],"names":["enableI18n","oldContentTypes","contentTypes","isLocalizedContentType","strapi","plugin","service","getDefaultLocale","uid","oldContentType","contentType","defaultLocale","db","query","updateMany","where","locale","data","disableI18n","Promise","all","deleteMany","$ne","$eq"],"mappings":"AAEA;AACA,MAAMA,aAAa,OAAO,EAAEC,eAAe,EAAEC,YAAY,EAAS,GAAA;IAChE,MAAM,EAAEC,sBAAsB,EAAE,GAAGC,MAAAA,CAAOC,MAAM,CAAC,MAAA,CAAA,EAASC,OAAQ,CAAA,eAAA,CAAA,IAAoB,EAAC;IACvF,MAAM,EAAEC,gBAAgB,EAAE,GAAGH,MAAAA,CAAOC,MAAM,CAAC,MAAA,CAAA,EAASC,OAAQ,CAAA,SAAA,CAAA,IAAc,EAAC;AAE3E,IAAA,IAAI,CAACL,eAAiB,EAAA;AACpB,QAAA;AACF;IAEA,IAAK,MAAMO,OAAON,YAAc,CAAA;AAC9B,QAAA,IAAI,CAACD,eAAe,CAACO,GAAAA,CAAI,EAAE;AACzB,YAAA;AACF;QAEA,MAAMC,cAAAA,GAAiBR,eAAe,CAACO,GAAI,CAAA;QAC3C,MAAME,WAAAA,GAAcR,YAAY,CAACM,GAAI,CAAA;AAErC,QAAA,IAAI,CAACL,sBAAAA,CAAuBM,cAAmBN,CAAAA,IAAAA,sBAAAA,CAAuBO,WAAc,CAAA,EAAA;AAClF,YAAA,MAAMC,gBAAgB,MAAMJ,gBAAAA,EAAAA;AAE5B,YAAA,MAAMH,OAAOQ,EAAE,CAACC,KAAK,CAACL,GAAAA,CAAAA,CAAKM,UAAU,CAAC;gBACpCC,KAAO,EAAA;oBAAEC,MAAQ,EAAA;AAAK,iBAAA;gBACtBC,IAAM,EAAA;oBAAED,MAAQL,EAAAA;AAAc;AAChC,aAAA,CAAA;AACF;AACF;AACF;AAEA,MAAMO,cAAc,OAAO,EAAEjB,eAAe,EAAEC,YAAY,EAAS,GAAA;IACjE,MAAM,EAAEC,sBAAsB,EAAE,GAAGC,MAAAA,CAAOC,MAAM,CAAC,MAAA,CAAA,EAASC,OAAQ,CAAA,eAAA,CAAA,IAAoB,EAAC;IACvF,MAAM,EAAEC,gBAAgB,EAAE,GAAGH,MAAAA,CAAOC,MAAM,CAAC,MAAA,CAAA,EAASC,OAAQ,CAAA,SAAA,CAAA,IAAc,EAAC;AAE3E,IAAA,IAAI,CAACL,eAAiB,EAAA;AACpB,QAAA;AACF;IAEA,IAAK,MAAMO,OAAON,YAAc,CAAA;AAC9B,QAAA,IAAI,CAACD,eAAe,CAACO,GAAAA,CAAI,EAAE;AACzB,YAAA;AACF;QAEA,MAAMC,cAAAA,GAAiBR,eAAe,CAACO,GAAI,CAAA;QAC3C,MAAME,WAAAA,GAAcR,YAAY,CAACM,GAAI,CAAA;;AAGrC,QAAA,IAAIL,sBAAuBM,CAAAA,cAAAA,CAAAA,IAAmB,CAACN,sBAAAA,CAAuBO,WAAc,CAAA,EAAA;AAClF,YAAA,MAAMC,gBAAgB,MAAMJ,gBAAAA,EAAAA;YAE5B,MAAMY,OAAAA,CAAQC,GAAG,CAAC;;AAEhBhB,gBAAAA,MAAAA,CAAOQ,EAAE,CAACC,KAAK,CAACL,GAAAA,CAAAA,CAAKa,UAAU,CAAC;oBAC9BN,KAAO,EAAA;wBAAEC,MAAQ,EAAA;4BAAEM,GAAKX,EAAAA;AAAc;AAAE;AAC1C,iBAAA,CAAA;;AAEAP,gBAAAA,MAAAA,CAAOQ,EAAE,CAACC,KAAK,CAACL,GAAAA,CAAAA,CAAKM,UAAU,CAAC;oBAC9BC,KAAO,EAAA;wBAAEC,MAAQ,EAAA;4BAAEO,GAAKZ,EAAAA;AAAc;AAAE,qBAAA;oBACxCM,IAAM,EAAA;wBAAED,MAAQ,EAAA;AAAK;AACvB,iBAAA;AACD,aAAA,CAAA;AACH;AACF;AACF;;;;"}