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

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 (868) hide show
  1. package/LICENSE +18 -3
  2. package/dist/Strapi.d.ts +4 -1
  3. package/dist/Strapi.d.ts.map +1 -1
  4. package/dist/Strapi.js +458 -369
  5. package/dist/Strapi.js.map +1 -1
  6. package/dist/Strapi.mjs +447 -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/constants.d.ts +3 -0
  32. package/dist/constants.d.ts.map +1 -0
  33. package/dist/constants.js +6 -0
  34. package/dist/constants.js.map +1 -0
  35. package/dist/constants.mjs +4 -0
  36. package/dist/constants.mjs.map +1 -0
  37. package/dist/container.js +27 -23
  38. package/dist/container.js.map +1 -1
  39. package/dist/container.mjs +26 -24
  40. package/dist/container.mjs.map +1 -1
  41. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  42. package/dist/core-api/controller/collection-type.js +77 -74
  43. package/dist/core-api/controller/collection-type.js.map +1 -1
  44. package/dist/core-api/controller/collection-type.mjs +76 -75
  45. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  46. package/dist/core-api/controller/index.d.ts.map +1 -1
  47. package/dist/core-api/controller/index.js +64 -48
  48. package/dist/core-api/controller/index.js.map +1 -1
  49. package/dist/core-api/controller/index.mjs +63 -49
  50. package/dist/core-api/controller/index.mjs.map +1 -1
  51. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  52. package/dist/core-api/controller/single-type.js +41 -39
  53. package/dist/core-api/controller/single-type.js.map +1 -1
  54. package/dist/core-api/controller/single-type.mjs +40 -40
  55. package/dist/core-api/controller/single-type.mjs.map +1 -1
  56. package/dist/core-api/controller/transform.d.ts +3 -2
  57. package/dist/core-api/controller/transform.d.ts.map +1 -1
  58. package/dist/core-api/controller/transform.js +83 -64
  59. package/dist/core-api/controller/transform.js.map +1 -1
  60. package/dist/core-api/controller/transform.mjs +82 -65
  61. package/dist/core-api/controller/transform.mjs.map +1 -1
  62. package/dist/core-api/routes/index.d.ts +4 -22
  63. package/dist/core-api/routes/index.d.ts.map +1 -1
  64. package/dist/core-api/routes/index.js +205 -61
  65. package/dist/core-api/routes/index.js.map +1 -1
  66. package/dist/core-api/routes/index.mjs +185 -62
  67. package/dist/core-api/routes/index.mjs.map +1 -1
  68. package/dist/core-api/routes/validation/attributes.d.ts +244 -0
  69. package/dist/core-api/routes/validation/attributes.d.ts.map +1 -0
  70. package/dist/core-api/routes/validation/attributes.js +560 -0
  71. package/dist/core-api/routes/validation/attributes.js.map +1 -0
  72. package/dist/core-api/routes/validation/attributes.mjs +521 -0
  73. package/dist/core-api/routes/validation/attributes.mjs.map +1 -0
  74. package/dist/core-api/routes/validation/common.d.ts +105 -0
  75. package/dist/core-api/routes/validation/common.d.ts.map +1 -0
  76. package/dist/core-api/routes/validation/common.js +116 -0
  77. package/dist/core-api/routes/validation/common.js.map +1 -0
  78. package/dist/core-api/routes/validation/common.mjs +95 -0
  79. package/dist/core-api/routes/validation/common.mjs.map +1 -0
  80. package/dist/core-api/routes/validation/component.d.ts +34 -0
  81. package/dist/core-api/routes/validation/component.d.ts.map +1 -0
  82. package/dist/core-api/routes/validation/component.js +45 -0
  83. package/dist/core-api/routes/validation/component.js.map +1 -0
  84. package/dist/core-api/routes/validation/component.mjs +43 -0
  85. package/dist/core-api/routes/validation/component.mjs.map +1 -0
  86. package/dist/core-api/routes/validation/constants.d.ts +8 -0
  87. package/dist/core-api/routes/validation/constants.d.ts.map +1 -0
  88. package/dist/core-api/routes/validation/constants.js +18 -0
  89. package/dist/core-api/routes/validation/constants.js.map +1 -0
  90. package/dist/core-api/routes/validation/constants.mjs +16 -0
  91. package/dist/core-api/routes/validation/constants.mjs.map +1 -0
  92. package/dist/core-api/routes/validation/content-type.d.ts +128 -0
  93. package/dist/core-api/routes/validation/content-type.d.ts.map +1 -0
  94. package/dist/core-api/routes/validation/content-type.js +201 -0
  95. package/dist/core-api/routes/validation/content-type.js.map +1 -0
  96. package/dist/core-api/routes/validation/content-type.mjs +180 -0
  97. package/dist/core-api/routes/validation/content-type.mjs.map +1 -0
  98. package/dist/core-api/routes/validation/index.d.ts +5 -0
  99. package/dist/core-api/routes/validation/index.d.ts.map +1 -0
  100. package/dist/core-api/routes/validation/mappers.d.ts +105 -0
  101. package/dist/core-api/routes/validation/mappers.d.ts.map +1 -0
  102. package/dist/core-api/routes/validation/mappers.js +273 -0
  103. package/dist/core-api/routes/validation/mappers.js.map +1 -0
  104. package/dist/core-api/routes/validation/mappers.mjs +249 -0
  105. package/dist/core-api/routes/validation/mappers.mjs.map +1 -0
  106. package/dist/core-api/routes/validation/utils.d.ts +47 -0
  107. package/dist/core-api/routes/validation/utils.d.ts.map +1 -0
  108. package/dist/core-api/routes/validation/utils.js +128 -0
  109. package/dist/core-api/routes/validation/utils.js.map +1 -0
  110. package/dist/core-api/routes/validation/utils.mjs +106 -0
  111. package/dist/core-api/routes/validation/utils.mjs.map +1 -0
  112. package/dist/core-api/service/collection-type.d.ts +3 -9
  113. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  114. package/dist/core-api/service/collection-type.js +73 -59
  115. package/dist/core-api/service/collection-type.js.map +1 -1
  116. package/dist/core-api/service/collection-type.mjs +72 -61
  117. package/dist/core-api/service/collection-type.mjs.map +1 -1
  118. package/dist/core-api/service/core-service.js +9 -8
  119. package/dist/core-api/service/core-service.js.map +1 -1
  120. package/dist/core-api/service/core-service.mjs +8 -9
  121. package/dist/core-api/service/core-service.mjs.map +1 -1
  122. package/dist/core-api/service/index.js +13 -13
  123. package/dist/core-api/service/index.js.map +1 -1
  124. package/dist/core-api/service/index.mjs +12 -14
  125. package/dist/core-api/service/index.mjs.map +1 -1
  126. package/dist/core-api/service/pagination.d.ts +4 -11
  127. package/dist/core-api/service/pagination.d.ts.map +1 -1
  128. package/dist/core-api/service/pagination.js +68 -68
  129. package/dist/core-api/service/pagination.js.map +1 -1
  130. package/dist/core-api/service/pagination.mjs +66 -71
  131. package/dist/core-api/service/pagination.mjs.map +1 -1
  132. package/dist/core-api/service/single-type.js +43 -39
  133. package/dist/core-api/service/single-type.js.map +1 -1
  134. package/dist/core-api/service/single-type.mjs +42 -41
  135. package/dist/core-api/service/single-type.mjs.map +1 -1
  136. package/dist/domain/content-type/index.d.ts.map +1 -1
  137. package/dist/domain/content-type/index.js +110 -99
  138. package/dist/domain/content-type/index.js.map +1 -1
  139. package/dist/domain/content-type/index.mjs +109 -99
  140. package/dist/domain/content-type/index.mjs.map +1 -1
  141. package/dist/domain/content-type/validator.js +84 -69
  142. package/dist/domain/content-type/validator.js.map +1 -1
  143. package/dist/domain/content-type/validator.mjs +83 -68
  144. package/dist/domain/content-type/validator.mjs.map +1 -1
  145. package/dist/domain/module/index.d.ts.map +1 -1
  146. package/dist/domain/module/index.js +112 -100
  147. package/dist/domain/module/index.js.map +1 -1
  148. package/dist/domain/module/index.mjs +111 -99
  149. package/dist/domain/module/index.mjs.map +1 -1
  150. package/dist/domain/module/validation.js +25 -20
  151. package/dist/domain/module/validation.js.map +1 -1
  152. package/dist/domain/module/validation.mjs +24 -21
  153. package/dist/domain/module/validation.mjs.map +1 -1
  154. package/dist/ee/index.d.ts +7 -0
  155. package/dist/ee/index.d.ts.map +1 -1
  156. package/dist/ee/index.js +197 -132
  157. package/dist/ee/index.js.map +1 -1
  158. package/dist/ee/index.mjs +196 -134
  159. package/dist/ee/index.mjs.map +1 -1
  160. package/dist/ee/license.d.ts +3 -1
  161. package/dist/ee/license.d.ts.map +1 -1
  162. package/dist/ee/license.js +105 -75
  163. package/dist/ee/license.js.map +1 -1
  164. package/dist/ee/license.mjs +103 -76
  165. package/dist/ee/license.mjs.map +1 -1
  166. package/dist/factories.d.ts +3 -1
  167. package/dist/factories.d.ts.map +1 -1
  168. package/dist/factories.js +80 -67
  169. package/dist/factories.js.map +1 -1
  170. package/dist/factories.mjs +77 -70
  171. package/dist/factories.mjs.map +1 -1
  172. package/dist/index.d.ts +14 -0
  173. package/dist/index.d.ts.map +1 -1
  174. package/dist/index.js +29 -26
  175. package/dist/index.js.map +1 -1
  176. package/dist/index.mjs +29 -29
  177. package/dist/index.mjs.map +1 -1
  178. package/dist/loaders/admin.d.ts.map +1 -1
  179. package/dist/loaders/admin.js +21 -20
  180. package/dist/loaders/admin.js.map +1 -1
  181. package/dist/loaders/admin.mjs +20 -20
  182. package/dist/loaders/admin.mjs.map +1 -1
  183. package/dist/loaders/apis.js +143 -120
  184. package/dist/loaders/apis.js.map +1 -1
  185. package/dist/loaders/apis.mjs +142 -119
  186. package/dist/loaders/apis.mjs.map +1 -1
  187. package/dist/loaders/components.js +33 -34
  188. package/dist/loaders/components.js.map +1 -1
  189. package/dist/loaders/components.mjs +32 -34
  190. package/dist/loaders/components.mjs.map +1 -1
  191. package/dist/loaders/index.js +22 -20
  192. package/dist/loaders/index.js.map +1 -1
  193. package/dist/loaders/index.mjs +21 -21
  194. package/dist/loaders/index.mjs.map +1 -1
  195. package/dist/loaders/middlewares.js +29 -25
  196. package/dist/loaders/middlewares.js.map +1 -1
  197. package/dist/loaders/middlewares.mjs +28 -25
  198. package/dist/loaders/middlewares.mjs.map +1 -1
  199. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  200. package/dist/loaders/plugins/get-enabled-plugins.js +125 -102
  201. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  202. package/dist/loaders/plugins/get-enabled-plugins.mjs +124 -101
  203. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  204. package/dist/loaders/plugins/get-user-plugins-config.js +25 -24
  205. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  206. package/dist/loaders/plugins/get-user-plugins-config.mjs +24 -23
  207. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  208. package/dist/loaders/plugins/index.d.ts.map +1 -1
  209. package/dist/loaders/plugins/index.js +141 -104
  210. package/dist/loaders/plugins/index.js.map +1 -1
  211. package/dist/loaders/plugins/index.mjs +121 -104
  212. package/dist/loaders/plugins/index.mjs.map +1 -1
  213. package/dist/loaders/policies.js +24 -20
  214. package/dist/loaders/policies.js.map +1 -1
  215. package/dist/loaders/policies.mjs +23 -20
  216. package/dist/loaders/policies.mjs.map +1 -1
  217. package/dist/loaders/sanitizers.js +10 -4
  218. package/dist/loaders/sanitizers.js.map +1 -1
  219. package/dist/loaders/sanitizers.mjs +9 -6
  220. package/dist/loaders/sanitizers.mjs.map +1 -1
  221. package/dist/loaders/src-index.js +35 -27
  222. package/dist/loaders/src-index.js.map +1 -1
  223. package/dist/loaders/src-index.mjs +34 -29
  224. package/dist/loaders/src-index.mjs.map +1 -1
  225. package/dist/loaders/validators.js +9 -4
  226. package/dist/loaders/validators.js.map +1 -1
  227. package/dist/loaders/validators.mjs +8 -6
  228. package/dist/loaders/validators.mjs.map +1 -1
  229. package/dist/middlewares/body.d.ts.map +1 -1
  230. package/dist/middlewares/body.js +58 -54
  231. package/dist/middlewares/body.js.map +1 -1
  232. package/dist/middlewares/body.mjs +57 -51
  233. package/dist/middlewares/body.mjs.map +1 -1
  234. package/dist/middlewares/compression.js +6 -6
  235. package/dist/middlewares/compression.js.map +1 -1
  236. package/dist/middlewares/compression.mjs +5 -5
  237. package/dist/middlewares/compression.mjs.map +1 -1
  238. package/dist/middlewares/cors.d.ts +9 -1
  239. package/dist/middlewares/cors.d.ts.map +1 -1
  240. package/dist/middlewares/cors.js +81 -46
  241. package/dist/middlewares/cors.js.map +1 -1
  242. package/dist/middlewares/cors.mjs +78 -44
  243. package/dist/middlewares/cors.mjs.map +1 -1
  244. package/dist/middlewares/errors.js +32 -30
  245. package/dist/middlewares/errors.js.map +1 -1
  246. package/dist/middlewares/errors.mjs +31 -31
  247. package/dist/middlewares/errors.mjs.map +1 -1
  248. package/dist/middlewares/favicon.js +27 -17
  249. package/dist/middlewares/favicon.js.map +1 -1
  250. package/dist/middlewares/favicon.mjs +26 -16
  251. package/dist/middlewares/favicon.mjs.map +1 -1
  252. package/dist/middlewares/index.js +32 -30
  253. package/dist/middlewares/index.js.map +1 -1
  254. package/dist/middlewares/index.mjs +31 -31
  255. package/dist/middlewares/index.mjs.map +1 -1
  256. package/dist/middlewares/ip.js +6 -6
  257. package/dist/middlewares/ip.js.map +1 -1
  258. package/dist/middlewares/ip.mjs +5 -5
  259. package/dist/middlewares/ip.mjs.map +1 -1
  260. package/dist/middlewares/logger.js +10 -9
  261. package/dist/middlewares/logger.js.map +1 -1
  262. package/dist/middlewares/logger.mjs +9 -10
  263. package/dist/middlewares/logger.mjs.map +1 -1
  264. package/dist/middlewares/powered-by.js +13 -9
  265. package/dist/middlewares/powered-by.js.map +1 -1
  266. package/dist/middlewares/powered-by.mjs +12 -10
  267. package/dist/middlewares/powered-by.mjs.map +1 -1
  268. package/dist/middlewares/public.js +33 -29
  269. package/dist/middlewares/public.js.map +1 -1
  270. package/dist/middlewares/public.mjs +32 -28
  271. package/dist/middlewares/public.mjs.map +1 -1
  272. package/dist/middlewares/query.d.ts.map +1 -1
  273. package/dist/middlewares/query.js +35 -32
  274. package/dist/middlewares/query.js.map +1 -1
  275. package/dist/middlewares/query.mjs +34 -31
  276. package/dist/middlewares/query.mjs.map +1 -1
  277. package/dist/middlewares/response-time.js +10 -9
  278. package/dist/middlewares/response-time.js.map +1 -1
  279. package/dist/middlewares/response-time.mjs +9 -10
  280. package/dist/middlewares/response-time.mjs.map +1 -1
  281. package/dist/middlewares/responses.js +14 -12
  282. package/dist/middlewares/responses.js.map +1 -1
  283. package/dist/middlewares/responses.mjs +13 -13
  284. package/dist/middlewares/responses.mjs.map +1 -1
  285. package/dist/middlewares/security.d.ts.map +1 -1
  286. package/dist/middlewares/security.js +110 -65
  287. package/dist/middlewares/security.js.map +1 -1
  288. package/dist/middlewares/security.mjs +108 -63
  289. package/dist/middlewares/security.mjs.map +1 -1
  290. package/dist/middlewares/session.js +26 -25
  291. package/dist/middlewares/session.js.map +1 -1
  292. package/dist/middlewares/session.mjs +25 -24
  293. package/dist/middlewares/session.mjs.map +1 -1
  294. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +27 -6
  295. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  296. package/dist/migrations/database/5.0.0-discard-drafts.js +154 -35
  297. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
  298. package/dist/migrations/database/5.0.0-discard-drafts.mjs +152 -36
  299. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
  300. package/dist/migrations/draft-publish.d.ts +2 -2
  301. package/dist/migrations/draft-publish.d.ts.map +1 -1
  302. package/dist/migrations/draft-publish.js +59 -49
  303. package/dist/migrations/draft-publish.js.map +1 -1
  304. package/dist/migrations/draft-publish.mjs +58 -51
  305. package/dist/migrations/draft-publish.mjs.map +1 -1
  306. package/dist/migrations/first-published-at.d.ts +4 -0
  307. package/dist/migrations/first-published-at.d.ts.map +1 -0
  308. package/dist/migrations/first-published-at.js +51 -0
  309. package/dist/migrations/first-published-at.js.map +1 -0
  310. package/dist/migrations/first-published-at.mjs +49 -0
  311. package/dist/migrations/first-published-at.mjs.map +1 -0
  312. package/dist/migrations/i18n.d.ts +5 -0
  313. package/dist/migrations/i18n.d.ts.map +1 -0
  314. package/dist/migrations/i18n.js +71 -0
  315. package/dist/migrations/i18n.js.map +1 -0
  316. package/dist/migrations/i18n.mjs +68 -0
  317. package/dist/migrations/i18n.mjs.map +1 -0
  318. package/dist/migrations/index.d.ts +5 -0
  319. package/dist/migrations/index.d.ts.map +1 -0
  320. package/dist/migrations/index.js +34 -0
  321. package/dist/migrations/index.js.map +1 -0
  322. package/dist/migrations/index.mjs +31 -0
  323. package/dist/migrations/index.mjs.map +1 -0
  324. package/dist/package.json.js +187 -0
  325. package/dist/package.json.js.map +1 -0
  326. package/dist/package.json.mjs +164 -0
  327. package/dist/package.json.mjs.map +1 -0
  328. package/dist/providers/admin.d.ts.map +1 -1
  329. package/dist/providers/admin.js +27 -17
  330. package/dist/providers/admin.js.map +1 -1
  331. package/dist/providers/admin.mjs +26 -19
  332. package/dist/providers/admin.mjs.map +1 -1
  333. package/dist/providers/coreStore.js +13 -8
  334. package/dist/providers/coreStore.js.map +1 -1
  335. package/dist/providers/coreStore.mjs +12 -10
  336. package/dist/providers/coreStore.mjs.map +1 -1
  337. package/dist/providers/cron.js +19 -16
  338. package/dist/providers/cron.js.map +1 -1
  339. package/dist/providers/cron.mjs +18 -18
  340. package/dist/providers/cron.mjs.map +1 -1
  341. package/dist/providers/index.d.ts.map +1 -1
  342. package/dist/providers/index.js +20 -9
  343. package/dist/providers/index.js.map +1 -1
  344. package/dist/providers/index.mjs +19 -10
  345. package/dist/providers/index.mjs.map +1 -1
  346. package/dist/providers/provider.js +4 -3
  347. package/dist/providers/provider.js.map +1 -1
  348. package/dist/providers/provider.mjs +3 -4
  349. package/dist/providers/provider.mjs.map +1 -1
  350. package/dist/providers/registries.js +37 -32
  351. package/dist/providers/registries.js.map +1 -1
  352. package/dist/providers/registries.mjs +36 -34
  353. package/dist/providers/registries.mjs.map +1 -1
  354. package/dist/providers/session-manager.d.ts +3 -0
  355. package/dist/providers/session-manager.d.ts.map +1 -0
  356. package/dist/providers/session-manager.js +23 -0
  357. package/dist/providers/session-manager.js.map +1 -0
  358. package/dist/providers/session-manager.mjs +21 -0
  359. package/dist/providers/session-manager.mjs.map +1 -0
  360. package/dist/providers/telemetry.js +19 -16
  361. package/dist/providers/telemetry.js.map +1 -1
  362. package/dist/providers/telemetry.mjs +18 -18
  363. package/dist/providers/telemetry.mjs.map +1 -1
  364. package/dist/providers/webhooks.js +28 -26
  365. package/dist/providers/webhooks.js.map +1 -1
  366. package/dist/providers/webhooks.mjs +27 -28
  367. package/dist/providers/webhooks.mjs.map +1 -1
  368. package/dist/registries/apis.js +23 -20
  369. package/dist/registries/apis.js.map +1 -1
  370. package/dist/registries/apis.mjs +22 -22
  371. package/dist/registries/apis.mjs.map +1 -1
  372. package/dist/registries/components.js +35 -37
  373. package/dist/registries/components.js.map +1 -1
  374. package/dist/registries/components.mjs +34 -39
  375. package/dist/registries/components.mjs.map +1 -1
  376. package/dist/registries/content-types.js +54 -59
  377. package/dist/registries/content-types.js.map +1 -1
  378. package/dist/registries/content-types.mjs +53 -61
  379. package/dist/registries/content-types.mjs.map +1 -1
  380. package/dist/registries/controllers.js +70 -71
  381. package/dist/registries/controllers.js.map +1 -1
  382. package/dist/registries/controllers.mjs +69 -73
  383. package/dist/registries/controllers.mjs.map +1 -1
  384. package/dist/registries/custom-fields.js +75 -65
  385. package/dist/registries/custom-fields.js.map +1 -1
  386. package/dist/registries/custom-fields.mjs +74 -67
  387. package/dist/registries/custom-fields.mjs.map +1 -1
  388. package/dist/registries/hooks.js +46 -49
  389. package/dist/registries/hooks.js.map +1 -1
  390. package/dist/registries/hooks.mjs +45 -51
  391. package/dist/registries/hooks.mjs.map +1 -1
  392. package/dist/registries/middlewares.js +49 -51
  393. package/dist/registries/middlewares.js.map +1 -1
  394. package/dist/registries/middlewares.mjs +48 -53
  395. package/dist/registries/middlewares.mjs.map +1 -1
  396. package/dist/registries/models.js +14 -13
  397. package/dist/registries/models.js.map +1 -1
  398. package/dist/registries/models.mjs +13 -14
  399. package/dist/registries/models.mjs.map +1 -1
  400. package/dist/registries/modules.js +39 -36
  401. package/dist/registries/modules.js.map +1 -1
  402. package/dist/registries/modules.mjs +38 -38
  403. package/dist/registries/modules.mjs.map +1 -1
  404. package/dist/registries/namespace.js +21 -20
  405. package/dist/registries/namespace.js.map +1 -1
  406. package/dist/registries/namespace.mjs +20 -23
  407. package/dist/registries/namespace.mjs.map +1 -1
  408. package/dist/registries/plugins.js +23 -20
  409. package/dist/registries/plugins.js.map +1 -1
  410. package/dist/registries/plugins.mjs +22 -22
  411. package/dist/registries/plugins.mjs.map +1 -1
  412. package/dist/registries/policies.d.ts +1 -1
  413. package/dist/registries/policies.d.ts.map +1 -1
  414. package/dist/registries/policies.js +103 -96
  415. package/dist/registries/policies.js.map +1 -1
  416. package/dist/registries/policies.mjs +102 -98
  417. package/dist/registries/policies.mjs.map +1 -1
  418. package/dist/registries/sanitizers.js +23 -22
  419. package/dist/registries/sanitizers.js.map +1 -1
  420. package/dist/registries/sanitizers.mjs +22 -22
  421. package/dist/registries/sanitizers.mjs.map +1 -1
  422. package/dist/registries/services.js +71 -71
  423. package/dist/registries/services.js.map +1 -1
  424. package/dist/registries/services.mjs +70 -73
  425. package/dist/registries/services.mjs.map +1 -1
  426. package/dist/registries/validators.js +23 -22
  427. package/dist/registries/validators.js.map +1 -1
  428. package/dist/registries/validators.mjs +22 -22
  429. package/dist/registries/validators.mjs.map +1 -1
  430. package/dist/services/auth/index.js +74 -74
  431. package/dist/services/auth/index.js.map +1 -1
  432. package/dist/services/auth/index.mjs +73 -74
  433. package/dist/services/auth/index.mjs.map +1 -1
  434. package/dist/services/config.js +47 -43
  435. package/dist/services/config.js.map +1 -1
  436. package/dist/services/config.mjs +46 -44
  437. package/dist/services/config.mjs.map +1 -1
  438. package/dist/services/content-api/index.d.ts +11 -13
  439. package/dist/services/content-api/index.d.ts.map +1 -1
  440. package/dist/services/content-api/index.js +80 -79
  441. package/dist/services/content-api/index.js.map +1 -1
  442. package/dist/services/content-api/index.mjs +79 -79
  443. package/dist/services/content-api/index.mjs.map +1 -1
  444. package/dist/services/content-api/permissions/engine.js +8 -5
  445. package/dist/services/content-api/permissions/engine.js.map +1 -1
  446. package/dist/services/content-api/permissions/engine.mjs +7 -5
  447. package/dist/services/content-api/permissions/engine.mjs.map +1 -1
  448. package/dist/services/content-api/permissions/index.d.ts +10 -12
  449. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  450. package/dist/services/content-api/permissions/index.js +101 -81
  451. package/dist/services/content-api/permissions/index.js.map +1 -1
  452. package/dist/services/content-api/permissions/index.mjs +100 -81
  453. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  454. package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
  455. package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
  456. package/dist/services/content-api/permissions/providers/action.js +17 -14
  457. package/dist/services/content-api/permissions/providers/action.js.map +1 -1
  458. package/dist/services/content-api/permissions/providers/action.mjs +16 -16
  459. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
  460. package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
  461. package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
  462. package/dist/services/content-api/permissions/providers/condition.js +17 -14
  463. package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
  464. package/dist/services/content-api/permissions/providers/condition.mjs +16 -16
  465. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
  466. package/dist/services/content-source-maps.d.ts +13 -0
  467. package/dist/services/content-source-maps.d.ts.map +1 -0
  468. package/dist/services/content-source-maps.js +108 -0
  469. package/dist/services/content-source-maps.js.map +1 -0
  470. package/dist/services/content-source-maps.mjs +106 -0
  471. package/dist/services/content-source-maps.mjs.map +1 -0
  472. package/dist/services/core-store.d.ts +2 -2
  473. package/dist/services/core-store.d.ts.map +1 -1
  474. package/dist/services/core-store.js +115 -95
  475. package/dist/services/core-store.js.map +1 -1
  476. package/dist/services/core-store.mjs +114 -97
  477. package/dist/services/core-store.mjs.map +1 -1
  478. package/dist/services/cron.d.ts +3 -3
  479. package/dist/services/cron.d.ts.map +1 -1
  480. package/dist/services/cron.js +74 -60
  481. package/dist/services/cron.js.map +1 -1
  482. package/dist/services/cron.mjs +73 -62
  483. package/dist/services/cron.mjs.map +1 -1
  484. package/dist/services/custom-fields.js +9 -7
  485. package/dist/services/custom-fields.js.map +1 -1
  486. package/dist/services/custom-fields.mjs +8 -9
  487. package/dist/services/custom-fields.mjs.map +1 -1
  488. package/dist/services/document-service/attributes/index.js +23 -18
  489. package/dist/services/document-service/attributes/index.js.map +1 -1
  490. package/dist/services/document-service/attributes/index.mjs +22 -19
  491. package/dist/services/document-service/attributes/index.mjs.map +1 -1
  492. package/dist/services/document-service/attributes/transforms.js +16 -15
  493. package/dist/services/document-service/attributes/transforms.js.map +1 -1
  494. package/dist/services/document-service/attributes/transforms.mjs +15 -15
  495. package/dist/services/document-service/attributes/transforms.mjs.map +1 -1
  496. package/dist/services/document-service/common.d.ts +1 -1
  497. package/dist/services/document-service/common.d.ts.map +1 -1
  498. package/dist/services/document-service/common.js +5 -4
  499. package/dist/services/document-service/common.js.map +1 -1
  500. package/dist/services/document-service/common.mjs +4 -5
  501. package/dist/services/document-service/common.mjs.map +1 -1
  502. package/dist/services/document-service/components.d.ts +31 -1
  503. package/dist/services/document-service/components.d.ts.map +1 -1
  504. package/dist/services/document-service/components.js +364 -257
  505. package/dist/services/document-service/components.js.map +1 -1
  506. package/dist/services/document-service/components.mjs +359 -261
  507. package/dist/services/document-service/components.mjs.map +1 -1
  508. package/dist/services/document-service/draft-and-publish.d.ts +1 -1
  509. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  510. package/dist/services/document-service/draft-and-publish.js +94 -54
  511. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  512. package/dist/services/document-service/draft-and-publish.mjs +87 -54
  513. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  514. package/dist/services/document-service/entries.d.ts +2 -2
  515. package/dist/services/document-service/entries.d.ts.map +1 -1
  516. package/dist/services/document-service/entries.js +151 -92
  517. package/dist/services/document-service/entries.js.map +1 -1
  518. package/dist/services/document-service/entries.mjs +150 -93
  519. package/dist/services/document-service/entries.mjs.map +1 -1
  520. package/dist/services/document-service/events.d.ts +1 -1
  521. package/dist/services/document-service/events.d.ts.map +1 -1
  522. package/dist/services/document-service/events.js +52 -40
  523. package/dist/services/document-service/events.js.map +1 -1
  524. package/dist/services/document-service/events.mjs +51 -41
  525. package/dist/services/document-service/events.mjs.map +1 -1
  526. package/dist/services/document-service/first-published-at.d.ts +7 -0
  527. package/dist/services/document-service/first-published-at.d.ts.map +1 -0
  528. package/dist/services/document-service/first-published-at.js +31 -0
  529. package/dist/services/document-service/first-published-at.js.map +1 -0
  530. package/dist/services/document-service/first-published-at.mjs +28 -0
  531. package/dist/services/document-service/first-published-at.mjs.map +1 -0
  532. package/dist/services/document-service/index.d.ts +2 -1
  533. package/dist/services/document-service/index.d.ts.map +1 -1
  534. package/dist/services/document-service/index.js +53 -32
  535. package/dist/services/document-service/index.js.map +1 -1
  536. package/dist/services/document-service/index.mjs +52 -33
  537. package/dist/services/document-service/index.mjs.map +1 -1
  538. package/dist/services/document-service/internationalization.d.ts +6 -1
  539. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  540. package/dist/services/document-service/internationalization.js +98 -41
  541. package/dist/services/document-service/internationalization.js.map +1 -1
  542. package/dist/services/document-service/internationalization.mjs +92 -41
  543. package/dist/services/document-service/internationalization.mjs.map +1 -1
  544. package/dist/services/document-service/middlewares/errors.js +23 -19
  545. package/dist/services/document-service/middlewares/errors.js.map +1 -1
  546. package/dist/services/document-service/middlewares/errors.mjs +22 -20
  547. package/dist/services/document-service/middlewares/errors.mjs.map +1 -1
  548. package/dist/services/document-service/middlewares/middleware-manager.js +46 -44
  549. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -1
  550. package/dist/services/document-service/middlewares/middleware-manager.mjs +45 -45
  551. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -1
  552. package/dist/services/document-service/params.js +11 -5
  553. package/dist/services/document-service/params.js.map +1 -1
  554. package/dist/services/document-service/params.mjs +10 -6
  555. package/dist/services/document-service/params.mjs.map +1 -1
  556. package/dist/services/document-service/repository.d.ts.map +1 -1
  557. package/dist/services/document-service/repository.js +363 -269
  558. package/dist/services/document-service/repository.js.map +1 -1
  559. package/dist/services/document-service/repository.mjs +362 -270
  560. package/dist/services/document-service/repository.mjs.map +1 -1
  561. package/dist/services/document-service/transform/data.js +22 -12
  562. package/dist/services/document-service/transform/data.js.map +1 -1
  563. package/dist/services/document-service/transform/data.mjs +21 -13
  564. package/dist/services/document-service/transform/data.mjs.map +1 -1
  565. package/dist/services/document-service/transform/fields.js +26 -17
  566. package/dist/services/document-service/transform/fields.js.map +1 -1
  567. package/dist/services/document-service/transform/fields.mjs +25 -18
  568. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  569. package/dist/services/document-service/transform/id-map.d.ts +1 -1
  570. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  571. package/dist/services/document-service/transform/id-map.js +116 -69
  572. package/dist/services/document-service/transform/id-map.js.map +1 -1
  573. package/dist/services/document-service/transform/id-map.mjs +115 -70
  574. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  575. package/dist/services/document-service/transform/id-transform.d.ts +1 -1
  576. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  577. package/dist/services/document-service/transform/id-transform.js +38 -30
  578. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  579. package/dist/services/document-service/transform/id-transform.mjs +36 -30
  580. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  581. package/dist/services/document-service/transform/populate.js +23 -18
  582. package/dist/services/document-service/transform/populate.js.map +1 -1
  583. package/dist/services/document-service/transform/populate.mjs +22 -19
  584. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  585. package/dist/services/document-service/transform/query.js +11 -6
  586. package/dist/services/document-service/transform/query.js.map +1 -1
  587. package/dist/services/document-service/transform/query.mjs +10 -7
  588. package/dist/services/document-service/transform/query.mjs.map +1 -1
  589. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  590. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  591. package/dist/services/document-service/transform/relations/extract/data-ids.js +71 -45
  592. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  593. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +70 -46
  594. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  595. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  596. package/dist/services/document-service/transform/relations/transform/data-ids.js +97 -60
  597. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  598. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +96 -61
  599. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  600. package/dist/services/document-service/transform/relations/transform/default-locale.js +47 -29
  601. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -1
  602. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +46 -30
  603. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -1
  604. package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
  605. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  606. package/dist/services/document-service/transform/relations/utils/dp.js +52 -26
  607. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  608. package/dist/services/document-service/transform/relations/utils/dp.mjs +51 -27
  609. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  610. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
  611. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  612. package/dist/services/document-service/transform/relations/utils/i18n.js +20 -18
  613. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  614. package/dist/services/document-service/transform/relations/utils/i18n.mjs +19 -21
  615. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  616. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
  617. package/dist/services/document-service/transform/relations/utils/map-relation.js +118 -75
  618. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -1
  619. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +115 -75
  620. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -1
  621. package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
  622. package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -0
  623. package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
  624. package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
  625. package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
  626. package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
  627. package/dist/services/document-service/utils/clean-component-join-table.d.ts +7 -0
  628. package/dist/services/document-service/utils/clean-component-join-table.d.ts.map +1 -0
  629. package/dist/services/document-service/utils/populate.d.ts +1 -1
  630. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  631. package/dist/services/document-service/utils/populate.js +67 -37
  632. package/dist/services/document-service/utils/populate.js.map +1 -1
  633. package/dist/services/document-service/utils/populate.mjs +66 -38
  634. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  635. package/dist/services/document-service/utils/unidirectional-relations.d.ts +53 -0
  636. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  637. package/dist/services/document-service/utils/unidirectional-relations.js +131 -0
  638. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
  639. package/dist/services/document-service/utils/unidirectional-relations.mjs +128 -0
  640. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
  641. package/dist/services/entity-service/index.js +230 -161
  642. package/dist/services/entity-service/index.js.map +1 -1
  643. package/dist/services/entity-service/index.mjs +229 -160
  644. package/dist/services/entity-service/index.mjs.map +1 -1
  645. package/dist/services/entity-validator/blocks-validator.d.ts +1 -2
  646. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  647. package/dist/services/entity-validator/blocks-validator.js +137 -104
  648. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  649. package/dist/services/entity-validator/blocks-validator.mjs +135 -105
  650. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  651. package/dist/services/entity-validator/index.d.ts +15 -1
  652. package/dist/services/entity-validator/index.d.ts.map +1 -1
  653. package/dist/services/entity-validator/index.js +370 -310
  654. package/dist/services/entity-validator/index.js.map +1 -1
  655. package/dist/services/entity-validator/index.mjs +366 -307
  656. package/dist/services/entity-validator/index.mjs.map +1 -1
  657. package/dist/services/entity-validator/validators.d.ts +37 -25
  658. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  659. package/dist/services/entity-validator/validators.js +286 -110
  660. package/dist/services/entity-validator/validators.js.map +1 -1
  661. package/dist/services/entity-validator/validators.mjs +277 -108
  662. package/dist/services/entity-validator/validators.mjs.map +1 -1
  663. package/dist/services/errors.js +65 -65
  664. package/dist/services/errors.js.map +1 -1
  665. package/dist/services/errors.mjs +64 -66
  666. package/dist/services/errors.mjs.map +1 -1
  667. package/dist/services/event-hub.js +82 -69
  668. package/dist/services/event-hub.js.map +1 -1
  669. package/dist/services/event-hub.mjs +81 -71
  670. package/dist/services/event-hub.mjs.map +1 -1
  671. package/dist/services/features.js +19 -14
  672. package/dist/services/features.js.map +1 -1
  673. package/dist/services/features.mjs +18 -15
  674. package/dist/services/features.mjs.map +1 -1
  675. package/dist/services/fs.js +41 -40
  676. package/dist/services/fs.js.map +1 -1
  677. package/dist/services/fs.mjs +40 -39
  678. package/dist/services/fs.mjs.map +1 -1
  679. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  680. package/dist/services/metrics/admin-user-hash.js +13 -11
  681. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  682. package/dist/services/metrics/admin-user-hash.mjs +12 -10
  683. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  684. package/dist/services/metrics/index.d.ts +1 -1
  685. package/dist/services/metrics/index.d.ts.map +1 -1
  686. package/dist/services/metrics/index.js +48 -40
  687. package/dist/services/metrics/index.js.map +1 -1
  688. package/dist/services/metrics/index.mjs +47 -42
  689. package/dist/services/metrics/index.mjs.map +1 -1
  690. package/dist/services/metrics/is-truthy.js +13 -6
  691. package/dist/services/metrics/is-truthy.js.map +1 -1
  692. package/dist/services/metrics/is-truthy.mjs +12 -6
  693. package/dist/services/metrics/is-truthy.mjs.map +1 -1
  694. package/dist/services/metrics/middleware.d.ts +2 -1
  695. package/dist/services/metrics/middleware.d.ts.map +1 -1
  696. package/dist/services/metrics/middleware.js +37 -22
  697. package/dist/services/metrics/middleware.js.map +1 -1
  698. package/dist/services/metrics/middleware.mjs +36 -24
  699. package/dist/services/metrics/middleware.mjs.map +1 -1
  700. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  701. package/dist/services/metrics/rate-limiter.js +24 -19
  702. package/dist/services/metrics/rate-limiter.js.map +1 -1
  703. package/dist/services/metrics/rate-limiter.mjs +23 -21
  704. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  705. package/dist/services/metrics/sender.d.ts.map +1 -1
  706. package/dist/services/metrics/sender.js +78 -69
  707. package/dist/services/metrics/sender.js.map +1 -1
  708. package/dist/services/metrics/sender.mjs +77 -64
  709. package/dist/services/metrics/sender.mjs.map +1 -1
  710. package/dist/services/query-params.js +13 -10
  711. package/dist/services/query-params.js.map +1 -1
  712. package/dist/services/query-params.mjs +12 -12
  713. package/dist/services/query-params.mjs.map +1 -1
  714. package/dist/services/reloader.js +35 -32
  715. package/dist/services/reloader.js.map +1 -1
  716. package/dist/services/reloader.mjs +34 -33
  717. package/dist/services/reloader.mjs.map +1 -1
  718. package/dist/services/request-context.js +11 -8
  719. package/dist/services/request-context.js.map +1 -1
  720. package/dist/services/request-context.mjs +10 -10
  721. package/dist/services/request-context.mjs.map +1 -1
  722. package/dist/services/server/admin-api.js +11 -10
  723. package/dist/services/server/admin-api.js.map +1 -1
  724. package/dist/services/server/admin-api.mjs +10 -11
  725. package/dist/services/server/admin-api.mjs.map +1 -1
  726. package/dist/services/server/api.js +33 -27
  727. package/dist/services/server/api.js.map +1 -1
  728. package/dist/services/server/api.mjs +32 -26
  729. package/dist/services/server/api.mjs.map +1 -1
  730. package/dist/services/server/compose-endpoint.js +116 -105
  731. package/dist/services/server/compose-endpoint.js.map +1 -1
  732. package/dist/services/server/compose-endpoint.mjs +115 -105
  733. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  734. package/dist/services/server/content-api.js +11 -9
  735. package/dist/services/server/content-api.js.map +1 -1
  736. package/dist/services/server/content-api.mjs +10 -10
  737. package/dist/services/server/content-api.mjs.map +1 -1
  738. package/dist/services/server/http-server.js +48 -44
  739. package/dist/services/server/http-server.js.map +1 -1
  740. package/dist/services/server/http-server.mjs +47 -43
  741. package/dist/services/server/http-server.mjs.map +1 -1
  742. package/dist/services/server/index.js +85 -82
  743. package/dist/services/server/index.js.map +1 -1
  744. package/dist/services/server/index.mjs +84 -81
  745. package/dist/services/server/index.mjs.map +1 -1
  746. package/dist/services/server/koa.js +49 -47
  747. package/dist/services/server/koa.js.map +1 -1
  748. package/dist/services/server/koa.mjs +48 -44
  749. package/dist/services/server/koa.mjs.map +1 -1
  750. package/dist/services/server/middleware.js +86 -82
  751. package/dist/services/server/middleware.js.map +1 -1
  752. package/dist/services/server/middleware.mjs +85 -82
  753. package/dist/services/server/middleware.mjs.map +1 -1
  754. package/dist/services/server/policy.js +24 -17
  755. package/dist/services/server/policy.js.map +1 -1
  756. package/dist/services/server/policy.mjs +23 -18
  757. package/dist/services/server/policy.mjs.map +1 -1
  758. package/dist/services/server/register-middlewares.js +68 -61
  759. package/dist/services/server/register-middlewares.js.map +1 -1
  760. package/dist/services/server/register-middlewares.mjs +67 -63
  761. package/dist/services/server/register-middlewares.mjs.map +1 -1
  762. package/dist/services/server/register-routes.js +109 -66
  763. package/dist/services/server/register-routes.js.map +1 -1
  764. package/dist/services/server/register-routes.mjs +108 -66
  765. package/dist/services/server/register-routes.mjs.map +1 -1
  766. package/dist/services/server/routing.d.ts +10 -0
  767. package/dist/services/server/routing.d.ts.map +1 -1
  768. package/dist/services/server/routing.js +100 -81
  769. package/dist/services/server/routing.js.map +1 -1
  770. package/dist/services/server/routing.mjs +99 -81
  771. package/dist/services/server/routing.mjs.map +1 -1
  772. package/dist/services/session-manager.d.ts +167 -0
  773. package/dist/services/session-manager.d.ts.map +1 -0
  774. package/dist/services/session-manager.js +529 -0
  775. package/dist/services/session-manager.js.map +1 -0
  776. package/dist/services/session-manager.mjs +526 -0
  777. package/dist/services/session-manager.mjs.map +1 -0
  778. package/dist/services/utils/conditional-fields.d.ts +3 -0
  779. package/dist/services/utils/conditional-fields.d.ts.map +1 -0
  780. package/dist/services/utils/conditional-fields.js +22 -0
  781. package/dist/services/utils/conditional-fields.js.map +1 -0
  782. package/dist/services/utils/conditional-fields.mjs +20 -0
  783. package/dist/services/utils/conditional-fields.mjs.map +1 -0
  784. package/dist/services/utils/dynamic-zones.js +13 -14
  785. package/dist/services/utils/dynamic-zones.js.map +1 -1
  786. package/dist/services/utils/dynamic-zones.mjs +12 -16
  787. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  788. package/dist/services/webhook-runner.d.ts +2 -1
  789. package/dist/services/webhook-runner.d.ts.map +1 -1
  790. package/dist/services/webhook-runner.js +124 -122
  791. package/dist/services/webhook-runner.js.map +1 -1
  792. package/dist/services/webhook-runner.mjs +123 -121
  793. package/dist/services/webhook-runner.mjs.map +1 -1
  794. package/dist/services/webhook-store.d.ts +2 -8
  795. package/dist/services/webhook-store.d.ts.map +1 -1
  796. package/dist/services/webhook-store.js +132 -99
  797. package/dist/services/webhook-store.js.map +1 -1
  798. package/dist/services/webhook-store.mjs +131 -101
  799. package/dist/services/webhook-store.mjs.map +1 -1
  800. package/dist/services/worker-queue.js +44 -49
  801. package/dist/services/worker-queue.js.map +1 -1
  802. package/dist/services/worker-queue.mjs +43 -49
  803. package/dist/services/worker-queue.mjs.map +1 -1
  804. package/dist/utils/convert-custom-field-type.js +17 -20
  805. package/dist/utils/convert-custom-field-type.js.map +1 -1
  806. package/dist/utils/convert-custom-field-type.mjs +16 -21
  807. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  808. package/dist/utils/cron.js +64 -30
  809. package/dist/utils/cron.js.map +1 -1
  810. package/dist/utils/cron.mjs +63 -31
  811. package/dist/utils/cron.mjs.map +1 -1
  812. package/dist/utils/fetch.d.ts +5 -1
  813. package/dist/utils/fetch.d.ts.map +1 -1
  814. package/dist/utils/fetch.js +28 -17
  815. package/dist/utils/fetch.js.map +1 -1
  816. package/dist/utils/fetch.mjs +27 -18
  817. package/dist/utils/fetch.mjs.map +1 -1
  818. package/dist/utils/filepath-to-prop-path.d.ts +1 -1
  819. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
  820. package/dist/utils/filepath-to-prop-path.js +22 -9
  821. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  822. package/dist/utils/filepath-to-prop-path.mjs +20 -7
  823. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  824. package/dist/utils/is-initialized.js +21 -12
  825. package/dist/utils/is-initialized.js.map +1 -1
  826. package/dist/utils/is-initialized.mjs +20 -13
  827. package/dist/utils/is-initialized.mjs.map +1 -1
  828. package/dist/utils/lifecycles.js +6 -5
  829. package/dist/utils/lifecycles.js.map +1 -1
  830. package/dist/utils/lifecycles.mjs +5 -6
  831. package/dist/utils/lifecycles.mjs.map +1 -1
  832. package/dist/utils/load-config-file.js +40 -38
  833. package/dist/utils/load-config-file.js.map +1 -1
  834. package/dist/utils/load-config-file.mjs +39 -36
  835. package/dist/utils/load-config-file.mjs.map +1 -1
  836. package/dist/utils/load-files.js +40 -35
  837. package/dist/utils/load-files.js.map +1 -1
  838. package/dist/utils/load-files.mjs +39 -32
  839. package/dist/utils/load-files.mjs.map +1 -1
  840. package/dist/utils/open-browser.js +8 -8
  841. package/dist/utils/open-browser.js.map +1 -1
  842. package/dist/utils/open-browser.mjs +7 -7
  843. package/dist/utils/open-browser.mjs.map +1 -1
  844. package/dist/utils/resolve-working-dirs.js +23 -10
  845. package/dist/utils/resolve-working-dirs.js.map +1 -1
  846. package/dist/utils/resolve-working-dirs.mjs +22 -9
  847. package/dist/utils/resolve-working-dirs.mjs.map +1 -1
  848. package/dist/utils/signals.js +20 -14
  849. package/dist/utils/signals.js.map +1 -1
  850. package/dist/utils/signals.mjs +19 -15
  851. package/dist/utils/signals.mjs.map +1 -1
  852. package/dist/utils/startup-logger.d.ts.map +1 -1
  853. package/dist/utils/startup-logger.js +107 -78
  854. package/dist/utils/startup-logger.js.map +1 -1
  855. package/dist/utils/startup-logger.mjs +106 -75
  856. package/dist/utils/startup-logger.mjs.map +1 -1
  857. package/dist/utils/transform-content-types-to-models.d.ts +552 -23
  858. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  859. package/dist/utils/transform-content-types-to-models.js +350 -248
  860. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  861. package/dist/utils/transform-content-types-to-models.mjs +349 -256
  862. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  863. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  864. package/dist/utils/update-notifier/index.js +68 -73
  865. package/dist/utils/update-notifier/index.js.map +1 -1
  866. package/dist/utils/update-notifier/index.mjs +67 -67
  867. package/dist/utils/update-notifier/index.mjs.map +1 -1
  868. package/package.json +38 -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;;;;"}