payload 3.84.0 → 4.0.0-internal.38b7f1d

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.
Files changed (440) hide show
  1. package/dist/admin/elements/Nav.d.ts +13 -0
  2. package/dist/admin/elements/Nav.d.ts.map +1 -1
  3. package/dist/admin/elements/Nav.js.map +1 -1
  4. package/dist/admin/functions/index.d.ts +1 -38
  5. package/dist/admin/functions/index.d.ts.map +1 -1
  6. package/dist/admin/functions/index.js.map +1 -1
  7. package/dist/admin/types.d.ts +5 -4
  8. package/dist/admin/types.d.ts.map +1 -1
  9. package/dist/admin/types.js.map +1 -1
  10. package/dist/admin/views/hierarchyList.d.ts +9 -0
  11. package/dist/admin/views/hierarchyList.d.ts.map +1 -0
  12. package/dist/admin/views/hierarchyList.js +3 -0
  13. package/dist/admin/views/hierarchyList.js.map +1 -0
  14. package/dist/admin/views/index.d.ts +1 -3
  15. package/dist/admin/views/index.d.ts.map +1 -1
  16. package/dist/admin/views/index.js.map +1 -1
  17. package/dist/admin/views/list.d.ts +43 -2
  18. package/dist/admin/views/list.d.ts.map +1 -1
  19. package/dist/admin/views/list.js.map +1 -1
  20. package/dist/bin/generateImportMap/iterateCollections.d.ts.map +1 -1
  21. package/dist/bin/generateImportMap/iterateCollections.js +1 -0
  22. package/dist/bin/generateImportMap/iterateCollections.js.map +1 -1
  23. package/dist/bin/generateImportMap/iterateConfig.d.ts.map +1 -1
  24. package/dist/bin/generateImportMap/iterateConfig.js +7 -0
  25. package/dist/bin/generateImportMap/iterateConfig.js.map +1 -1
  26. package/dist/bin/generateImportMap/iterateGlobals.d.ts.map +1 -1
  27. package/dist/bin/generateImportMap/iterateGlobals.js +20 -8
  28. package/dist/bin/generateImportMap/iterateGlobals.js.map +1 -1
  29. package/dist/bin/index.d.ts.map +1 -1
  30. package/dist/bin/index.js +1 -3
  31. package/dist/bin/index.js.map +1 -1
  32. package/dist/collections/config/client.d.ts +4 -2
  33. package/dist/collections/config/client.d.ts.map +1 -1
  34. package/dist/collections/config/client.js +13 -1
  35. package/dist/collections/config/client.js.map +1 -1
  36. package/dist/collections/config/defaults.js +1 -1
  37. package/dist/collections/config/defaults.js.map +1 -1
  38. package/dist/collections/config/sanitize.d.ts.map +1 -1
  39. package/dist/collections/config/sanitize.js +51 -10
  40. package/dist/collections/config/sanitize.js.map +1 -1
  41. package/dist/collections/config/types.d.ts +76 -91
  42. package/dist/collections/config/types.d.ts.map +1 -1
  43. package/dist/collections/config/types.js.map +1 -1
  44. package/dist/collections/operations/create.d.ts.map +1 -1
  45. package/dist/collections/operations/create.js +24 -19
  46. package/dist/collections/operations/create.js.map +1 -1
  47. package/dist/collections/operations/delete.d.ts.map +1 -1
  48. package/dist/collections/operations/delete.js +7 -2
  49. package/dist/collections/operations/delete.js.map +1 -1
  50. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  51. package/dist/collections/operations/deleteByID.js +7 -2
  52. package/dist/collections/operations/deleteByID.js.map +1 -1
  53. package/dist/collections/operations/find.d.ts.map +1 -1
  54. package/dist/collections/operations/find.js +7 -2
  55. package/dist/collections/operations/find.js.map +1 -1
  56. package/dist/collections/operations/findByID.d.ts.map +1 -1
  57. package/dist/collections/operations/findByID.js +10 -5
  58. package/dist/collections/operations/findByID.js.map +1 -1
  59. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  60. package/dist/collections/operations/findVersionByID.js +6 -4
  61. package/dist/collections/operations/findVersionByID.js.map +1 -1
  62. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  63. package/dist/collections/operations/findVersions.js +6 -4
  64. package/dist/collections/operations/findVersions.js.map +1 -1
  65. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  66. package/dist/collections/operations/restoreVersion.js +7 -2
  67. package/dist/collections/operations/restoreVersion.js.map +1 -1
  68. package/dist/collections/operations/update.d.ts.map +1 -1
  69. package/dist/collections/operations/update.js +7 -2
  70. package/dist/collections/operations/update.js.map +1 -1
  71. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  72. package/dist/collections/operations/updateByID.js +7 -2
  73. package/dist/collections/operations/updateByID.js.map +1 -1
  74. package/dist/collections/operations/utilities/update.d.ts.map +1 -1
  75. package/dist/collections/operations/utilities/update.js +5 -4
  76. package/dist/collections/operations/utilities/update.js.map +1 -1
  77. package/dist/config/client.d.ts.map +1 -1
  78. package/dist/config/client.js +0 -10
  79. package/dist/config/client.js.map +1 -1
  80. package/dist/config/defaults.d.ts.map +1 -1
  81. package/dist/config/defaults.js +0 -15
  82. package/dist/config/defaults.js.map +1 -1
  83. package/dist/config/orderable/index.d.ts.map +1 -1
  84. package/dist/config/orderable/index.js +0 -4
  85. package/dist/config/orderable/index.js.map +1 -1
  86. package/dist/config/sanitize.d.ts.map +1 -1
  87. package/dist/config/sanitize.js +3 -38
  88. package/dist/config/sanitize.js.map +1 -1
  89. package/dist/config/types.d.ts +120 -13
  90. package/dist/config/types.d.ts.map +1 -1
  91. package/dist/config/types.js.map +1 -1
  92. package/dist/database/migrations/config/batchTransform.d.ts +16 -0
  93. package/dist/database/migrations/config/batchTransform.d.ts.map +1 -0
  94. package/dist/database/migrations/config/batchTransform.js +17 -0
  95. package/dist/database/migrations/config/batchTransform.js.map +1 -0
  96. package/dist/database/migrations/config/batchTransform.spec.js +68 -0
  97. package/dist/database/migrations/config/batchTransform.spec.js.map +1 -0
  98. package/dist/database/migrations/config/bootstrapConfigState.d.ts +4 -0
  99. package/dist/database/migrations/config/bootstrapConfigState.d.ts.map +1 -0
  100. package/dist/database/migrations/config/bootstrapConfigState.js +10 -0
  101. package/dist/database/migrations/config/bootstrapConfigState.js.map +1 -0
  102. package/dist/database/migrations/config/configStateStore.d.ts +4 -0
  103. package/dist/database/migrations/config/configStateStore.d.ts.map +1 -0
  104. package/dist/database/migrations/config/configStateStore.js +29 -0
  105. package/dist/database/migrations/config/configStateStore.js.map +1 -0
  106. package/dist/database/migrations/config/diffConfig.d.ts +3 -0
  107. package/dist/database/migrations/config/diffConfig.d.ts.map +1 -0
  108. package/dist/database/migrations/config/diffConfig.js +123 -0
  109. package/dist/database/migrations/config/diffConfig.js.map +1 -0
  110. package/dist/database/migrations/config/diffConfig.spec.js +136 -0
  111. package/dist/database/migrations/config/diffConfig.spec.js.map +1 -0
  112. package/dist/database/migrations/config/generateDataMigrationCode.d.ts +11 -0
  113. package/dist/database/migrations/config/generateDataMigrationCode.d.ts.map +1 -0
  114. package/dist/database/migrations/config/generateDataMigrationCode.js +28 -0
  115. package/dist/database/migrations/config/generateDataMigrationCode.js.map +1 -0
  116. package/dist/database/migrations/config/generateDataMigrationCode.spec.js +52 -0
  117. package/dist/database/migrations/config/generateDataMigrationCode.spec.js.map +1 -0
  118. package/dist/database/migrations/config/index.d.ts +9 -0
  119. package/dist/database/migrations/config/index.d.ts.map +1 -0
  120. package/dist/database/migrations/config/index.js +9 -0
  121. package/dist/database/migrations/config/index.js.map +1 -0
  122. package/dist/database/migrations/config/prompts.d.ts +5 -0
  123. package/dist/database/migrations/config/prompts.d.ts.map +1 -0
  124. package/dist/database/migrations/config/prompts.js +49 -0
  125. package/dist/database/migrations/config/prompts.js.map +1 -0
  126. package/dist/database/migrations/config/serializeConfig.d.ts +4 -0
  127. package/dist/database/migrations/config/serializeConfig.d.ts.map +1 -0
  128. package/dist/database/migrations/config/serializeConfig.js +65 -0
  129. package/dist/database/migrations/config/serializeConfig.js.map +1 -0
  130. package/dist/database/migrations/config/serializeConfig.spec.js +146 -0
  131. package/dist/database/migrations/config/serializeConfig.spec.js.map +1 -0
  132. package/dist/database/migrations/config/types.d.ts +66 -0
  133. package/dist/database/migrations/config/types.d.ts.map +1 -0
  134. package/dist/database/migrations/config/types.js.map +1 -0
  135. package/dist/database/migrations/migrate.d.ts.map +1 -1
  136. package/dist/database/migrations/migrate.js +3 -0
  137. package/dist/database/migrations/migrate.js.map +1 -1
  138. package/dist/database/types.d.ts +29 -0
  139. package/dist/database/types.d.ts.map +1 -1
  140. package/dist/database/types.js.map +1 -1
  141. package/dist/exports/migrations.d.ts +1 -0
  142. package/dist/exports/migrations.d.ts.map +1 -1
  143. package/dist/exports/migrations.js +2 -1
  144. package/dist/exports/migrations.js.map +1 -1
  145. package/dist/exports/shared.d.ts +6 -3
  146. package/dist/exports/shared.d.ts.map +1 -1
  147. package/dist/exports/shared.js +4 -2
  148. package/dist/exports/shared.js.map +1 -1
  149. package/dist/fields/baseFields/slug/index.d.ts.map +1 -1
  150. package/dist/fields/baseFields/slug/index.js +6 -4
  151. package/dist/fields/baseFields/slug/index.js.map +1 -1
  152. package/dist/fields/config/client.d.ts.map +1 -1
  153. package/dist/fields/config/client.js +3 -2
  154. package/dist/fields/config/client.js.map +1 -1
  155. package/dist/fields/config/sanitize.d.ts.map +1 -1
  156. package/dist/fields/config/sanitize.js +12 -10
  157. package/dist/fields/config/sanitize.js.map +1 -1
  158. package/dist/fields/config/sanitizeJoinField.d.ts.map +1 -1
  159. package/dist/fields/config/sanitizeJoinField.js +3 -0
  160. package/dist/fields/config/sanitizeJoinField.js.map +1 -1
  161. package/dist/fields/config/types.d.ts +17 -73
  162. package/dist/fields/config/types.d.ts.map +1 -1
  163. package/dist/fields/config/types.js +11 -1
  164. package/dist/fields/config/types.js.map +1 -1
  165. package/dist/fields/isFieldDisabled.d.ts +12 -0
  166. package/dist/fields/isFieldDisabled.d.ts.map +1 -0
  167. package/dist/fields/isFieldDisabled.js +15 -0
  168. package/dist/fields/isFieldDisabled.js.map +1 -0
  169. package/dist/fields/isFieldDisabled.spec.js +134 -0
  170. package/dist/fields/isFieldDisabled.spec.js.map +1 -0
  171. package/dist/fields/validations.js +1 -1
  172. package/dist/fields/validations.js.map +1 -1
  173. package/dist/globals/config/client.d.ts +1 -1
  174. package/dist/globals/config/client.d.ts.map +1 -1
  175. package/dist/globals/config/client.js +2 -1
  176. package/dist/globals/config/client.js.map +1 -1
  177. package/dist/globals/config/sanitize.js +6 -2
  178. package/dist/globals/config/sanitize.js.map +1 -1
  179. package/dist/globals/config/types.d.ts +4 -57
  180. package/dist/globals/config/types.d.ts.map +1 -1
  181. package/dist/globals/config/types.js.map +1 -1
  182. package/dist/globals/operations/findOne.d.ts.map +1 -1
  183. package/dist/globals/operations/findOne.js +7 -2
  184. package/dist/globals/operations/findOne.js.map +1 -1
  185. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  186. package/dist/globals/operations/findVersionByID.js +6 -4
  187. package/dist/globals/operations/findVersionByID.js.map +1 -1
  188. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  189. package/dist/globals/operations/findVersions.js +6 -4
  190. package/dist/globals/operations/findVersions.js.map +1 -1
  191. package/dist/globals/operations/update.d.ts.map +1 -1
  192. package/dist/globals/operations/update.js +7 -2
  193. package/dist/globals/operations/update.js.map +1 -1
  194. package/dist/hierarchy/addHierarchyToCollection.d.ts +9 -0
  195. package/dist/hierarchy/addHierarchyToCollection.d.ts.map +1 -0
  196. package/dist/hierarchy/addHierarchyToCollection.js +76 -0
  197. package/dist/hierarchy/addHierarchyToCollection.js.map +1 -0
  198. package/dist/hierarchy/buildParentField.d.ts +11 -0
  199. package/dist/hierarchy/buildParentField.d.ts.map +1 -0
  200. package/dist/hierarchy/buildParentField.js +42 -0
  201. package/dist/hierarchy/buildParentField.js.map +1 -0
  202. package/dist/hierarchy/constants.d.ts +15 -0
  203. package/dist/hierarchy/constants.d.ts.map +1 -0
  204. package/dist/hierarchy/constants.js +11 -0
  205. package/dist/hierarchy/constants.js.map +1 -0
  206. package/dist/hierarchy/createFolderField.d.ts +39 -0
  207. package/dist/hierarchy/createFolderField.d.ts.map +1 -0
  208. package/dist/hierarchy/createFolderField.js +54 -0
  209. package/dist/hierarchy/createFolderField.js.map +1 -0
  210. package/dist/hierarchy/createTagField.d.ts +44 -0
  211. package/dist/hierarchy/createTagField.d.ts.map +1 -0
  212. package/dist/hierarchy/createTagField.js +48 -0
  213. package/dist/hierarchy/createTagField.js.map +1 -0
  214. package/dist/hierarchy/getInitialTreeData.d.ts +27 -0
  215. package/dist/hierarchy/getInitialTreeData.d.ts.map +1 -0
  216. package/dist/hierarchy/getInitialTreeData.js +125 -0
  217. package/dist/hierarchy/getInitialTreeData.js.map +1 -0
  218. package/dist/hierarchy/hooks/collectionAfterDelete.d.ts +14 -0
  219. package/dist/hierarchy/hooks/collectionAfterDelete.d.ts.map +1 -0
  220. package/dist/hierarchy/hooks/collectionAfterDelete.js +21 -0
  221. package/dist/hierarchy/hooks/collectionAfterDelete.js.map +1 -0
  222. package/dist/hierarchy/hooks/collectionAfterRead.d.ts +27 -0
  223. package/dist/hierarchy/hooks/collectionAfterRead.d.ts.map +1 -0
  224. package/dist/hierarchy/hooks/collectionAfterRead.js +72 -0
  225. package/dist/hierarchy/hooks/collectionAfterRead.js.map +1 -0
  226. package/dist/hierarchy/hooks/collectionBeforeChange.d.ts +19 -0
  227. package/dist/hierarchy/hooks/collectionBeforeChange.d.ts.map +1 -0
  228. package/dist/hierarchy/hooks/collectionBeforeChange.js +90 -0
  229. package/dist/hierarchy/hooks/collectionBeforeChange.js.map +1 -0
  230. package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts +15 -0
  231. package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts.map +1 -0
  232. package/dist/hierarchy/hooks/collectionBeforeDelete.js +20 -0
  233. package/dist/hierarchy/hooks/collectionBeforeDelete.js.map +1 -0
  234. package/dist/hierarchy/hooks/collectionBeforeOperation.d.ts +33 -0
  235. package/dist/hierarchy/hooks/collectionBeforeOperation.d.ts.map +1 -0
  236. package/dist/hierarchy/hooks/collectionBeforeOperation.js +66 -0
  237. package/dist/hierarchy/hooks/collectionBeforeOperation.js.map +1 -0
  238. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.d.ts +8 -0
  239. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.d.ts.map +1 -0
  240. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.js +108 -0
  241. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.js.map +1 -0
  242. package/dist/hierarchy/injectHierarchyButton.d.ts +14 -0
  243. package/dist/hierarchy/injectHierarchyButton.d.ts.map +1 -0
  244. package/dist/hierarchy/injectHierarchyButton.js +37 -0
  245. package/dist/hierarchy/injectHierarchyButton.js.map +1 -0
  246. package/dist/hierarchy/presets.d.ts +13 -0
  247. package/dist/hierarchy/presets.d.ts.map +1 -0
  248. package/dist/hierarchy/presets.js +52 -0
  249. package/dist/hierarchy/presets.js.map +1 -0
  250. package/dist/hierarchy/resolveHierarchyCollections.d.ts +23 -0
  251. package/dist/hierarchy/resolveHierarchyCollections.d.ts.map +1 -0
  252. package/dist/hierarchy/resolveHierarchyCollections.js +321 -0
  253. package/dist/hierarchy/resolveHierarchyCollections.js.map +1 -0
  254. package/dist/hierarchy/sanitizeHierarchyCollection.d.ts +14 -0
  255. package/dist/hierarchy/sanitizeHierarchyCollection.d.ts.map +1 -0
  256. package/dist/hierarchy/sanitizeHierarchyCollection.js +117 -0
  257. package/dist/hierarchy/sanitizeHierarchyCollection.js.map +1 -0
  258. package/dist/hierarchy/types.d.ts +155 -0
  259. package/dist/hierarchy/types.d.ts.map +1 -0
  260. package/dist/hierarchy/types.js +6 -0
  261. package/dist/hierarchy/types.js.map +1 -0
  262. package/dist/hierarchy/utils/buildLocalizedHierarchyPaths.d.ts +77 -0
  263. package/dist/hierarchy/utils/buildLocalizedHierarchyPaths.d.ts.map +1 -0
  264. package/dist/hierarchy/utils/buildLocalizedHierarchyPaths.js +77 -0
  265. package/dist/hierarchy/utils/buildLocalizedHierarchyPaths.js.map +1 -0
  266. package/dist/hierarchy/utils/computePaths.d.ts +31 -0
  267. package/dist/hierarchy/utils/computePaths.d.ts.map +1 -0
  268. package/dist/hierarchy/utils/computePaths.js +445 -0
  269. package/dist/hierarchy/utils/computePaths.js.map +1 -0
  270. package/dist/hierarchy/utils/findUseAsTitle.d.ts +14 -0
  271. package/dist/hierarchy/utils/findUseAsTitle.d.ts.map +1 -0
  272. package/dist/hierarchy/utils/findUseAsTitle.js +89 -0
  273. package/dist/hierarchy/utils/findUseAsTitle.js.map +1 -0
  274. package/dist/hierarchy/utils/getAncestors.d.ts +34 -0
  275. package/dist/hierarchy/utils/getAncestors.d.ts.map +1 -0
  276. package/dist/hierarchy/utils/getAncestors.js +94 -0
  277. package/dist/hierarchy/utils/getAncestors.js.map +1 -0
  278. package/dist/hierarchy/utils/getLocalizedValue.d.ts +30 -0
  279. package/dist/hierarchy/utils/getLocalizedValue.d.ts.map +1 -0
  280. package/dist/hierarchy/utils/getLocalizedValue.js +46 -0
  281. package/dist/hierarchy/utils/getLocalizedValue.js.map +1 -0
  282. package/dist/hierarchy/utils/getLocalizedValue.spec.js +250 -0
  283. package/dist/hierarchy/utils/getLocalizedValue.spec.js.map +1 -0
  284. package/dist/index.bundled.d.ts +856 -558
  285. package/dist/index.d.ts +29 -8
  286. package/dist/index.d.ts.map +1 -1
  287. package/dist/index.js +13 -8
  288. package/dist/index.js.map +1 -1
  289. package/dist/preferences/keys.d.ts +8 -4
  290. package/dist/preferences/keys.d.ts.map +1 -1
  291. package/dist/preferences/keys.js +7 -4
  292. package/dist/preferences/keys.js.map +1 -1
  293. package/dist/preferences/types.d.ts +1 -1
  294. package/dist/preferences/types.d.ts.map +1 -1
  295. package/dist/preferences/types.js.map +1 -1
  296. package/dist/query-presets/config.d.ts.map +1 -1
  297. package/dist/query-presets/config.js +5 -1
  298. package/dist/query-presets/config.js.map +1 -1
  299. package/dist/queues/config/types/index.d.ts +0 -21
  300. package/dist/queues/config/types/index.d.ts.map +1 -1
  301. package/dist/queues/config/types/index.js.map +1 -1
  302. package/dist/queues/config/types/taskTypes.d.ts +0 -20
  303. package/dist/queues/config/types/taskTypes.d.ts.map +1 -1
  304. package/dist/queues/config/types/taskTypes.js.map +1 -1
  305. package/dist/queues/errors/handleWorkflowError.d.ts.map +1 -1
  306. package/dist/queues/errors/handleWorkflowError.js +9 -1
  307. package/dist/queues/errors/handleWorkflowError.js.map +1 -1
  308. package/dist/queues/localAPI.d.ts.map +1 -1
  309. package/dist/queues/localAPI.js +26 -67
  310. package/dist/queues/localAPI.js.map +1 -1
  311. package/dist/queues/operations/handleSchedules/index.d.ts.map +1 -1
  312. package/dist/queues/operations/handleSchedules/index.js +1 -4
  313. package/dist/queues/operations/handleSchedules/index.js.map +1 -1
  314. package/dist/queues/operations/runJobs/index.d.ts.map +1 -1
  315. package/dist/queues/operations/runJobs/index.js +40 -37
  316. package/dist/queues/operations/runJobs/index.js.map +1 -1
  317. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.d.ts.map +1 -1
  318. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js +3 -22
  319. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js.map +1 -1
  320. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts.map +1 -1
  321. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js +0 -2
  322. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js.map +1 -1
  323. package/dist/queues/utilities/updateJob.d.ts +1 -3
  324. package/dist/queues/utilities/updateJob.d.ts.map +1 -1
  325. package/dist/queues/utilities/updateJob.js +2 -18
  326. package/dist/queues/utilities/updateJob.js.map +1 -1
  327. package/dist/types/index.d.ts +44 -0
  328. package/dist/types/index.d.ts.map +1 -1
  329. package/dist/types/index.js.map +1 -1
  330. package/dist/uploads/getBaseFields.d.ts.map +1 -1
  331. package/dist/uploads/getBaseFields.js +35 -69
  332. package/dist/uploads/getBaseFields.js.map +1 -1
  333. package/dist/uploads/getSafeFilename.d.ts +9 -4
  334. package/dist/uploads/getSafeFilename.d.ts.map +1 -1
  335. package/dist/uploads/getSafeFilename.js +5 -5
  336. package/dist/uploads/getSafeFilename.js.map +1 -1
  337. package/dist/utilities/appendDateTimezoneSelectFields.d.ts +13 -0
  338. package/dist/utilities/appendDateTimezoneSelectFields.d.ts.map +1 -0
  339. package/dist/utilities/appendDateTimezoneSelectFields.js +47 -0
  340. package/dist/utilities/appendDateTimezoneSelectFields.js.map +1 -0
  341. package/dist/utilities/appendUploadSelectFields.d.ts.map +1 -1
  342. package/dist/utilities/appendUploadSelectFields.js +3 -0
  343. package/dist/utilities/appendUploadSelectFields.js.map +1 -1
  344. package/dist/utilities/extractID.js +1 -1
  345. package/dist/utilities/extractID.js.map +1 -1
  346. package/dist/utilities/formatAdminURL.d.ts +13 -2
  347. package/dist/utilities/formatAdminURL.d.ts.map +1 -1
  348. package/dist/utilities/formatAdminURL.js.map +1 -1
  349. package/dist/utilities/handleEndpoints.d.ts.map +1 -1
  350. package/dist/utilities/handleEndpoints.js +0 -1
  351. package/dist/utilities/handleEndpoints.js.map +1 -1
  352. package/dist/utilities/resolveSelect.d.ts +16 -0
  353. package/dist/utilities/resolveSelect.d.ts.map +1 -0
  354. package/dist/utilities/resolveSelect.js +19 -0
  355. package/dist/utilities/resolveSelect.js.map +1 -0
  356. package/dist/utilities/sanitizeSelect.d.ts +1 -2
  357. package/dist/utilities/sanitizeSelect.d.ts.map +1 -1
  358. package/dist/utilities/sanitizeSelect.js +19 -25
  359. package/dist/utilities/sanitizeSelect.js.map +1 -1
  360. package/dist/versions/baseFields.d.ts.map +1 -1
  361. package/dist/versions/baseFields.js +3 -2
  362. package/dist/versions/baseFields.js.map +1 -1
  363. package/dist/versions/buildCollectionFields.d.ts.map +1 -1
  364. package/dist/versions/buildCollectionFields.js +0 -1
  365. package/dist/versions/buildCollectionFields.js.map +1 -1
  366. package/dist/versions/buildGlobalFields.d.ts.map +1 -1
  367. package/dist/versions/buildGlobalFields.js +0 -1
  368. package/dist/versions/buildGlobalFields.js.map +1 -1
  369. package/dist/versions/payloadPackageList.d.ts.map +1 -1
  370. package/dist/versions/payloadPackageList.js +0 -1
  371. package/dist/versions/payloadPackageList.js.map +1 -1
  372. package/package.json +4 -4
  373. package/dist/admin/views/folderList.d.ts +0 -56
  374. package/dist/admin/views/folderList.d.ts.map +0 -1
  375. package/dist/admin/views/folderList.js +0 -3
  376. package/dist/admin/views/folderList.js.map +0 -1
  377. package/dist/folders/addFolderCollection.d.ts +0 -10
  378. package/dist/folders/addFolderCollection.d.ts.map +0 -1
  379. package/dist/folders/addFolderCollection.js +0 -26
  380. package/dist/folders/addFolderCollection.js.map +0 -1
  381. package/dist/folders/addFolderFieldToCollection.d.ts +0 -8
  382. package/dist/folders/addFolderFieldToCollection.d.ts.map +0 -1
  383. package/dist/folders/addFolderFieldToCollection.js +0 -20
  384. package/dist/folders/addFolderFieldToCollection.js.map +0 -1
  385. package/dist/folders/buildFolderField.d.ts +0 -8
  386. package/dist/folders/buildFolderField.d.ts.map +0 -1
  387. package/dist/folders/buildFolderField.js +0 -87
  388. package/dist/folders/buildFolderField.js.map +0 -1
  389. package/dist/folders/constants.d.ts +0 -3
  390. package/dist/folders/constants.d.ts.map +0 -1
  391. package/dist/folders/constants.js +0 -4
  392. package/dist/folders/constants.js.map +0 -1
  393. package/dist/folders/createFolderCollection.d.ts +0 -11
  394. package/dist/folders/createFolderCollection.d.ts.map +0 -1
  395. package/dist/folders/createFolderCollection.js +0 -115
  396. package/dist/folders/createFolderCollection.js.map +0 -1
  397. package/dist/folders/hooks/deleteSubfoldersAfterDelete.d.ts +0 -8
  398. package/dist/folders/hooks/deleteSubfoldersAfterDelete.d.ts.map +0 -1
  399. package/dist/folders/hooks/deleteSubfoldersAfterDelete.js +0 -15
  400. package/dist/folders/hooks/deleteSubfoldersAfterDelete.js.map +0 -1
  401. package/dist/folders/hooks/dissasociateAfterDelete.d.ts +0 -8
  402. package/dist/folders/hooks/dissasociateAfterDelete.d.ts.map +0 -1
  403. package/dist/folders/hooks/dissasociateAfterDelete.js +0 -20
  404. package/dist/folders/hooks/dissasociateAfterDelete.js.map +0 -1
  405. package/dist/folders/hooks/ensureSafeCollectionsChange.d.ts +0 -5
  406. package/dist/folders/hooks/ensureSafeCollectionsChange.d.ts.map +0 -1
  407. package/dist/folders/hooks/ensureSafeCollectionsChange.js +0 -107
  408. package/dist/folders/hooks/ensureSafeCollectionsChange.js.map +0 -1
  409. package/dist/folders/hooks/reparentChildFolder.d.ts +0 -24
  410. package/dist/folders/hooks/reparentChildFolder.d.ts.map +0 -1
  411. package/dist/folders/hooks/reparentChildFolder.js +0 -72
  412. package/dist/folders/hooks/reparentChildFolder.js.map +0 -1
  413. package/dist/folders/types.d.ts +0 -118
  414. package/dist/folders/types.d.ts.map +0 -1
  415. package/dist/folders/types.js.map +0 -1
  416. package/dist/folders/utils/buildFolderWhereConstraints.d.ts +0 -13
  417. package/dist/folders/utils/buildFolderWhereConstraints.d.ts.map +0 -1
  418. package/dist/folders/utils/buildFolderWhereConstraints.js +0 -45
  419. package/dist/folders/utils/buildFolderWhereConstraints.js.map +0 -1
  420. package/dist/folders/utils/formatFolderOrDocumentItem.d.ts +0 -12
  421. package/dist/folders/utils/formatFolderOrDocumentItem.d.ts.map +0 -1
  422. package/dist/folders/utils/formatFolderOrDocumentItem.js +0 -30
  423. package/dist/folders/utils/formatFolderOrDocumentItem.js.map +0 -1
  424. package/dist/folders/utils/getFolderBreadcrumbs.d.ts +0 -14
  425. package/dist/folders/utils/getFolderBreadcrumbs.d.ts.map +0 -1
  426. package/dist/folders/utils/getFolderBreadcrumbs.js +0 -45
  427. package/dist/folders/utils/getFolderBreadcrumbs.js.map +0 -1
  428. package/dist/folders/utils/getFolderData.d.ts +0 -33
  429. package/dist/folders/utils/getFolderData.d.ts.map +0 -1
  430. package/dist/folders/utils/getFolderData.js +0 -88
  431. package/dist/folders/utils/getFolderData.js.map +0 -1
  432. package/dist/folders/utils/getFoldersAndDocumentsFromJoin.d.ts +0 -24
  433. package/dist/folders/utils/getFoldersAndDocumentsFromJoin.d.ts.map +0 -1
  434. package/dist/folders/utils/getFoldersAndDocumentsFromJoin.js +0 -66
  435. package/dist/folders/utils/getFoldersAndDocumentsFromJoin.js.map +0 -1
  436. package/dist/folders/utils/getOrphanedDocs.d.ts +0 -15
  437. package/dist/folders/utils/getOrphanedDocs.d.ts.map +0 -1
  438. package/dist/folders/utils/getOrphanedDocs.js +0 -40
  439. package/dist/folders/utils/getOrphanedDocs.js.map +0 -1
  440. /package/dist/{folders → database/migrations/config}/types.js +0 -0
@@ -0,0 +1,17 @@
1
+ export async function batchTransform({ batchSize, fetcher, transform }) {
2
+ let page = 1;
3
+ let hasMore = true;
4
+ while(hasMore){
5
+ const { docs, hasNextPage } = await fetcher({
6
+ limit: batchSize,
7
+ page
8
+ });
9
+ for (const doc of docs){
10
+ await transform(doc);
11
+ }
12
+ hasMore = hasNextPage;
13
+ page++;
14
+ }
15
+ }
16
+
17
+ //# sourceMappingURL=batchTransform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/database/migrations/config/batchTransform.ts"],"sourcesContent":["type Page<T> = {\n docs: T[]\n hasNextPage: boolean\n totalDocs: number\n}\n\ntype BatchTransformArgs<T> = {\n batchSize: number\n fetcher: (args: { limit: number; page: number }) => Promise<Page<T>>\n transform: (doc: T) => Promise<void>\n}\n\nexport async function batchTransform<T>({\n batchSize,\n fetcher,\n transform,\n}: BatchTransformArgs<T>): Promise<void> {\n let page = 1\n let hasMore = true\n\n while (hasMore) {\n const { docs, hasNextPage } = await fetcher({ limit: batchSize, page })\n for (const doc of docs) {\n await transform(doc)\n }\n hasMore = hasNextPage\n page++\n }\n}\n"],"names":["batchTransform","batchSize","fetcher","transform","page","hasMore","docs","hasNextPage","limit","doc"],"mappings":"AAYA,OAAO,eAAeA,eAAkB,EACtCC,SAAS,EACTC,OAAO,EACPC,SAAS,EACa;IACtB,IAAIC,OAAO;IACX,IAAIC,UAAU;IAEd,MAAOA,QAAS;QACd,MAAM,EAAEC,IAAI,EAAEC,WAAW,EAAE,GAAG,MAAML,QAAQ;YAAEM,OAAOP;YAAWG;QAAK;QACrE,KAAK,MAAMK,OAAOH,KAAM;YACtB,MAAMH,UAAUM;QAClB;QACAJ,UAAUE;QACVH;IACF;AACF"}
@@ -0,0 +1,68 @@
1
+ import { describe, expect, it, vi } from 'vitest';
2
+ import { batchTransform } from './batchTransform.js';
3
+ describe('batchTransform', ()=>{
4
+ it('should call transform for every item across multiple pages', async ()=>{
5
+ let page = 0;
6
+ const fetcher = vi.fn(async ()=>{
7
+ page++;
8
+ if (page === 1) {
9
+ return {
10
+ docs: [
11
+ {
12
+ id: '1'
13
+ },
14
+ {
15
+ id: '2'
16
+ }
17
+ ],
18
+ totalDocs: 3,
19
+ hasNextPage: true
20
+ };
21
+ }
22
+ return {
23
+ docs: [
24
+ {
25
+ id: '3'
26
+ }
27
+ ],
28
+ totalDocs: 3,
29
+ hasNextPage: false
30
+ };
31
+ });
32
+ const transform = vi.fn(async ()=>{});
33
+ await batchTransform({
34
+ fetcher,
35
+ transform,
36
+ batchSize: 2
37
+ });
38
+ expect(fetcher).toHaveBeenCalledTimes(2);
39
+ expect(transform).toHaveBeenCalledTimes(3);
40
+ expect(transform).toHaveBeenCalledWith({
41
+ id: '1'
42
+ });
43
+ expect(transform).toHaveBeenCalledWith({
44
+ id: '3'
45
+ });
46
+ });
47
+ it('should stop when hasNextPage is false on first page', async ()=>{
48
+ const fetcher = vi.fn(async ()=>({
49
+ docs: [
50
+ {
51
+ id: '1'
52
+ }
53
+ ],
54
+ totalDocs: 1,
55
+ hasNextPage: false
56
+ }));
57
+ const transform = vi.fn(async ()=>{});
58
+ await batchTransform({
59
+ fetcher,
60
+ transform,
61
+ batchSize: 100
62
+ });
63
+ expect(fetcher).toHaveBeenCalledTimes(1);
64
+ expect(transform).toHaveBeenCalledTimes(1);
65
+ });
66
+ });
67
+
68
+ //# sourceMappingURL=batchTransform.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/database/migrations/config/batchTransform.spec.ts"],"sourcesContent":["import { describe, expect, it, vi } from 'vitest'\n\nimport { batchTransform } from './batchTransform.js'\n\ndescribe('batchTransform', () => {\n it('should call transform for every item across multiple pages', async () => {\n let page = 0\n const fetcher = vi.fn(async () => {\n page++\n if (page === 1) {\n return { docs: [{ id: '1' }, { id: '2' }], totalDocs: 3, hasNextPage: true }\n }\n return { docs: [{ id: '3' }], totalDocs: 3, hasNextPage: false }\n })\n const transform = vi.fn(async () => {})\n\n await batchTransform({ fetcher, transform, batchSize: 2 })\n\n expect(fetcher).toHaveBeenCalledTimes(2)\n expect(transform).toHaveBeenCalledTimes(3)\n expect(transform).toHaveBeenCalledWith({ id: '1' })\n expect(transform).toHaveBeenCalledWith({ id: '3' })\n })\n\n it('should stop when hasNextPage is false on first page', async () => {\n const fetcher = vi.fn(async () => ({\n docs: [{ id: '1' }],\n totalDocs: 1,\n hasNextPage: false,\n }))\n const transform = vi.fn(async () => {})\n\n await batchTransform({ fetcher, transform, batchSize: 100 })\n\n expect(fetcher).toHaveBeenCalledTimes(1)\n expect(transform).toHaveBeenCalledTimes(1)\n })\n})\n"],"names":["describe","expect","it","vi","batchTransform","page","fetcher","fn","docs","id","totalDocs","hasNextPage","transform","batchSize","toHaveBeenCalledTimes","toHaveBeenCalledWith"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,EAAEC,EAAE,QAAQ,SAAQ;AAEjD,SAASC,cAAc,QAAQ,sBAAqB;AAEpDJ,SAAS,kBAAkB;IACzBE,GAAG,8DAA8D;QAC/D,IAAIG,OAAO;QACX,MAAMC,UAAUH,GAAGI,EAAE,CAAC;YACpBF;YACA,IAAIA,SAAS,GAAG;gBACd,OAAO;oBAAEG,MAAM;wBAAC;4BAAEC,IAAI;wBAAI;wBAAG;4BAAEA,IAAI;wBAAI;qBAAE;oBAAEC,WAAW;oBAAGC,aAAa;gBAAK;YAC7E;YACA,OAAO;gBAAEH,MAAM;oBAAC;wBAAEC,IAAI;oBAAI;iBAAE;gBAAEC,WAAW;gBAAGC,aAAa;YAAM;QACjE;QACA,MAAMC,YAAYT,GAAGI,EAAE,CAAC,WAAa;QAErC,MAAMH,eAAe;YAAEE;YAASM;YAAWC,WAAW;QAAE;QAExDZ,OAAOK,SAASQ,qBAAqB,CAAC;QACtCb,OAAOW,WAAWE,qBAAqB,CAAC;QACxCb,OAAOW,WAAWG,oBAAoB,CAAC;YAAEN,IAAI;QAAI;QACjDR,OAAOW,WAAWG,oBAAoB,CAAC;YAAEN,IAAI;QAAI;IACnD;IAEAP,GAAG,uDAAuD;QACxD,MAAMI,UAAUH,GAAGI,EAAE,CAAC,UAAa,CAAA;gBACjCC,MAAM;oBAAC;wBAAEC,IAAI;oBAAI;iBAAE;gBACnBC,WAAW;gBACXC,aAAa;YACf,CAAA;QACA,MAAMC,YAAYT,GAAGI,EAAE,CAAC,WAAa;QAErC,MAAMH,eAAe;YAAEE;YAASM;YAAWC,WAAW;QAAI;QAE1DZ,OAAOK,SAASQ,qBAAqB,CAAC;QACtCb,OAAOW,WAAWE,qBAAqB,CAAC;IAC1C;AACF"}
@@ -0,0 +1,4 @@
1
+ import type { Payload } from '../../../types/index.js';
2
+ import type { ConfigSnapshot } from './types.js';
3
+ export declare function bootstrapConfigState(payload: Payload, migrationDir: string): Promise<ConfigSnapshot>;
4
+ //# sourceMappingURL=bootstrapConfigState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrapConfigState.d.ts","sourceRoot":"","sources":["../../../../src/database/migrations/config/bootstrapConfigState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAKhD,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,CAAC,CAOzB"}
@@ -0,0 +1,10 @@
1
+ import { writeConfigState } from './configStateStore.js';
2
+ import { serializeConfig } from './serializeConfig.js';
3
+ export async function bootstrapConfigState(payload, migrationDir) {
4
+ const snapshot = serializeConfig(payload.config);
5
+ await writeConfigState(migrationDir, snapshot);
6
+ payload.logger.info('[payload migrate] Initialised config state snapshot (first run). No data migrations generated.');
7
+ return snapshot;
8
+ }
9
+
10
+ //# sourceMappingURL=bootstrapConfigState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/database/migrations/config/bootstrapConfigState.ts"],"sourcesContent":["import type { Payload } from '../../../types/index.js'\nimport type { ConfigSnapshot } from './types.js'\n\nimport { writeConfigState } from './configStateStore.js'\nimport { serializeConfig } from './serializeConfig.js'\n\nexport async function bootstrapConfigState(\n payload: Payload,\n migrationDir: string,\n): Promise<ConfigSnapshot> {\n const snapshot = serializeConfig(payload.config)\n await writeConfigState(migrationDir, snapshot)\n payload.logger.info(\n '[payload migrate] Initialised config state snapshot (first run). No data migrations generated.',\n )\n return snapshot\n}\n"],"names":["writeConfigState","serializeConfig","bootstrapConfigState","payload","migrationDir","snapshot","config","logger","info"],"mappings":"AAGA,SAASA,gBAAgB,QAAQ,wBAAuB;AACxD,SAASC,eAAe,QAAQ,uBAAsB;AAEtD,OAAO,eAAeC,qBACpBC,OAAgB,EAChBC,YAAoB;IAEpB,MAAMC,WAAWJ,gBAAgBE,QAAQG,MAAM;IAC/C,MAAMN,iBAAiBI,cAAcC;IACrCF,QAAQI,MAAM,CAACC,IAAI,CACjB;IAEF,OAAOH;AACT"}
@@ -0,0 +1,4 @@
1
+ import type { ConfigSnapshot } from './types.js';
2
+ export declare function readConfigState(migrationDir: string): Promise<ConfigSnapshot | null>;
3
+ export declare function writeConfigState(migrationDir: string, snapshot: ConfigSnapshot): Promise<void>;
4
+ //# sourceMappingURL=configStateStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configStateStore.d.ts","sourceRoot":"","sources":["../../../../src/database/migrations/config/configStateStore.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAQhD,wBAAsB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAW1F;AAED,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC,CAKf"}
@@ -0,0 +1,29 @@
1
+ import { existsSync, mkdirSync } from 'fs';
2
+ import fs from 'fs/promises';
3
+ import path from 'path';
4
+ const SNAPSHOT_FILENAME = 'payload-config-snapshot.json';
5
+ function snapshotPath(migrationDir) {
6
+ return path.join(migrationDir, SNAPSHOT_FILENAME);
7
+ }
8
+ export async function readConfigState(migrationDir) {
9
+ const filePath = snapshotPath(migrationDir);
10
+ if (!existsSync(filePath)) {
11
+ return null;
12
+ }
13
+ try {
14
+ const content = await fs.readFile(filePath, 'utf8');
15
+ return JSON.parse(content);
16
+ } catch {
17
+ return null;
18
+ }
19
+ }
20
+ export async function writeConfigState(migrationDir, snapshot) {
21
+ if (!existsSync(migrationDir)) {
22
+ mkdirSync(migrationDir, {
23
+ recursive: true
24
+ });
25
+ }
26
+ await fs.writeFile(snapshotPath(migrationDir), JSON.stringify(snapshot, null, 2));
27
+ }
28
+
29
+ //# sourceMappingURL=configStateStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/database/migrations/config/configStateStore.ts"],"sourcesContent":["import { existsSync, mkdirSync } from 'fs'\nimport fs from 'fs/promises'\nimport path from 'path'\n\nimport type { ConfigSnapshot } from './types.js'\n\nconst SNAPSHOT_FILENAME = 'payload-config-snapshot.json'\n\nfunction snapshotPath(migrationDir: string): string {\n return path.join(migrationDir, SNAPSHOT_FILENAME)\n}\n\nexport async function readConfigState(migrationDir: string): Promise<ConfigSnapshot | null> {\n const filePath = snapshotPath(migrationDir)\n if (!existsSync(filePath)) {\n return null\n }\n try {\n const content = await fs.readFile(filePath, 'utf8')\n return JSON.parse(content) as ConfigSnapshot\n } catch {\n return null\n }\n}\n\nexport async function writeConfigState(\n migrationDir: string,\n snapshot: ConfigSnapshot,\n): Promise<void> {\n if (!existsSync(migrationDir)) {\n mkdirSync(migrationDir, { recursive: true })\n }\n await fs.writeFile(snapshotPath(migrationDir), JSON.stringify(snapshot, null, 2))\n}\n"],"names":["existsSync","mkdirSync","fs","path","SNAPSHOT_FILENAME","snapshotPath","migrationDir","join","readConfigState","filePath","content","readFile","JSON","parse","writeConfigState","snapshot","recursive","writeFile","stringify"],"mappings":"AAAA,SAASA,UAAU,EAAEC,SAAS,QAAQ,KAAI;AAC1C,OAAOC,QAAQ,cAAa;AAC5B,OAAOC,UAAU,OAAM;AAIvB,MAAMC,oBAAoB;AAE1B,SAASC,aAAaC,YAAoB;IACxC,OAAOH,KAAKI,IAAI,CAACD,cAAcF;AACjC;AAEA,OAAO,eAAeI,gBAAgBF,YAAoB;IACxD,MAAMG,WAAWJ,aAAaC;IAC9B,IAAI,CAACN,WAAWS,WAAW;QACzB,OAAO;IACT;IACA,IAAI;QACF,MAAMC,UAAU,MAAMR,GAAGS,QAAQ,CAACF,UAAU;QAC5C,OAAOG,KAAKC,KAAK,CAACH;IACpB,EAAE,OAAM;QACN,OAAO;IACT;AACF;AAEA,OAAO,eAAeI,iBACpBR,YAAoB,EACpBS,QAAwB;IAExB,IAAI,CAACf,WAAWM,eAAe;QAC7BL,UAAUK,cAAc;YAAEU,WAAW;QAAK;IAC5C;IACA,MAAMd,GAAGe,SAAS,CAACZ,aAAaC,eAAeM,KAAKM,SAAS,CAACH,UAAU,MAAM;AAChF"}
@@ -0,0 +1,3 @@
1
+ import type { ConfigChange, ConfigSnapshot } from './types.js';
2
+ export declare function diffConfig(prev: ConfigSnapshot, next: ConfigSnapshot): ConfigChange[];
3
+ //# sourceMappingURL=diffConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diffConfig.d.ts","sourceRoot":"","sources":["../../../../src/database/migrations/config/diffConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAqB,cAAc,EAAE,MAAM,YAAY,CAAA;AAoDjF,wBAAgB,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,GAAG,YAAY,EAAE,CAsDrF"}
@@ -0,0 +1,123 @@
1
+ function diffEntityState(slug, entity, prev, next) {
2
+ const changes = [];
3
+ if (!prev.versions && next.versions) {
4
+ changes.push({
5
+ slug,
6
+ type: 'versions_enabled',
7
+ entity
8
+ });
9
+ }
10
+ if (prev.versions && !next.versions) {
11
+ changes.push({
12
+ slug,
13
+ type: 'versions_disabled',
14
+ entity
15
+ });
16
+ }
17
+ if (!prev.drafts && next.drafts) {
18
+ changes.push({
19
+ slug,
20
+ type: 'drafts_enabled',
21
+ entity,
22
+ initialStatus: 'draft'
23
+ });
24
+ }
25
+ if (prev.drafts && !next.drafts) {
26
+ changes.push({
27
+ slug,
28
+ type: 'drafts_disabled',
29
+ entity
30
+ });
31
+ }
32
+ if (!prev.autosave && next.autosave) {
33
+ changes.push({
34
+ slug,
35
+ type: 'autosave_enabled',
36
+ entity
37
+ });
38
+ }
39
+ if (!prev.localizeStatus && next.localizeStatus) {
40
+ changes.push({
41
+ slug,
42
+ type: 'localize_status_enabled',
43
+ entity
44
+ });
45
+ }
46
+ const allPaths = new Set([
47
+ ...Object.keys(next.fields),
48
+ ...Object.keys(prev.fields)
49
+ ]);
50
+ for (const fieldPath of allPaths){
51
+ const prevLocalized = prev.fields[fieldPath]?.localized ?? false;
52
+ const nextLocalized = next.fields[fieldPath]?.localized ?? false;
53
+ if (!prevLocalized && nextLocalized) {
54
+ changes.push({
55
+ slug,
56
+ type: 'field_localized',
57
+ entity,
58
+ fieldPath
59
+ });
60
+ }
61
+ if (prevLocalized && !nextLocalized) {
62
+ changes.push({
63
+ slug,
64
+ type: 'field_delocalized',
65
+ entity,
66
+ fieldPath
67
+ });
68
+ }
69
+ }
70
+ return changes;
71
+ }
72
+ const emptyEntityState = {
73
+ autosave: false,
74
+ drafts: false,
75
+ fields: {},
76
+ localizeStatus: false,
77
+ versions: false
78
+ };
79
+ export function diffConfig(prev, next) {
80
+ const changes = [];
81
+ const allCollectionSlugs = new Set([
82
+ ...Object.keys(next.collections),
83
+ ...Object.keys(prev.collections)
84
+ ]);
85
+ for (const slug of allCollectionSlugs){
86
+ changes.push(...diffEntityState(slug, 'collection', prev.collections[slug] ?? emptyEntityState, next.collections[slug] ?? emptyEntityState));
87
+ }
88
+ const allGlobalSlugs = new Set([
89
+ ...Object.keys(next.globals),
90
+ ...Object.keys(prev.globals)
91
+ ]);
92
+ for (const slug of allGlobalSlugs){
93
+ changes.push(...diffEntityState(slug, 'global', prev.globals[slug] ?? emptyEntityState, next.globals[slug] ?? emptyEntityState));
94
+ }
95
+ const prevLocales = new Set(prev.localization.locales);
96
+ const nextLocales = new Set(next.localization.locales);
97
+ for (const locale of nextLocales){
98
+ if (!prevLocales.has(locale)) {
99
+ changes.push({
100
+ type: 'locale_added',
101
+ locale
102
+ });
103
+ }
104
+ }
105
+ for (const locale of prevLocales){
106
+ if (!nextLocales.has(locale)) {
107
+ changes.push({
108
+ type: 'locale_removed',
109
+ locale
110
+ });
111
+ }
112
+ }
113
+ if (prev.localization.defaultLocale !== next.localization.defaultLocale && next.localization.defaultLocale) {
114
+ changes.push({
115
+ type: 'default_locale_changed',
116
+ from: prev.localization.defaultLocale,
117
+ to: next.localization.defaultLocale
118
+ });
119
+ }
120
+ return changes;
121
+ }
122
+
123
+ //# sourceMappingURL=diffConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/database/migrations/config/diffConfig.ts"],"sourcesContent":["import type { ConfigChange, ConfigEntityState, ConfigSnapshot } from './types.js'\n\nfunction diffEntityState(\n slug: string,\n entity: 'collection' | 'global',\n prev: ConfigEntityState,\n next: ConfigEntityState,\n): ConfigChange[] {\n const changes: ConfigChange[] = []\n\n if (!prev.versions && next.versions) {\n changes.push({ slug, type: 'versions_enabled', entity })\n }\n if (prev.versions && !next.versions) {\n changes.push({ slug, type: 'versions_disabled', entity })\n }\n if (!prev.drafts && next.drafts) {\n changes.push({ slug, type: 'drafts_enabled', entity, initialStatus: 'draft' })\n }\n if (prev.drafts && !next.drafts) {\n changes.push({ slug, type: 'drafts_disabled', entity })\n }\n if (!prev.autosave && next.autosave) {\n changes.push({ slug, type: 'autosave_enabled', entity })\n }\n if (!prev.localizeStatus && next.localizeStatus) {\n changes.push({ slug, type: 'localize_status_enabled', entity })\n }\n\n const allPaths = new Set([...Object.keys(next.fields), ...Object.keys(prev.fields)])\n for (const fieldPath of allPaths) {\n const prevLocalized = prev.fields[fieldPath]?.localized ?? false\n const nextLocalized = next.fields[fieldPath]?.localized ?? false\n if (!prevLocalized && nextLocalized) {\n changes.push({ slug, type: 'field_localized', entity, fieldPath })\n }\n if (prevLocalized && !nextLocalized) {\n changes.push({ slug, type: 'field_delocalized', entity, fieldPath })\n }\n }\n\n return changes\n}\n\nconst emptyEntityState: ConfigEntityState = {\n autosave: false,\n drafts: false,\n fields: {},\n localizeStatus: false,\n versions: false,\n}\n\nexport function diffConfig(prev: ConfigSnapshot, next: ConfigSnapshot): ConfigChange[] {\n const changes: ConfigChange[] = []\n\n const allCollectionSlugs = new Set([\n ...Object.keys(next.collections),\n ...Object.keys(prev.collections),\n ])\n for (const slug of allCollectionSlugs) {\n changes.push(\n ...diffEntityState(\n slug,\n 'collection',\n prev.collections[slug] ?? emptyEntityState,\n next.collections[slug] ?? emptyEntityState,\n ),\n )\n }\n\n const allGlobalSlugs = new Set([...Object.keys(next.globals), ...Object.keys(prev.globals)])\n for (const slug of allGlobalSlugs) {\n changes.push(\n ...diffEntityState(\n slug,\n 'global',\n prev.globals[slug] ?? emptyEntityState,\n next.globals[slug] ?? emptyEntityState,\n ),\n )\n }\n\n const prevLocales = new Set(prev.localization.locales)\n const nextLocales = new Set(next.localization.locales)\n for (const locale of nextLocales) {\n if (!prevLocales.has(locale)) {\n changes.push({ type: 'locale_added', locale })\n }\n }\n for (const locale of prevLocales) {\n if (!nextLocales.has(locale)) {\n changes.push({ type: 'locale_removed', locale })\n }\n }\n if (\n prev.localization.defaultLocale !== next.localization.defaultLocale &&\n next.localization.defaultLocale\n ) {\n changes.push({\n type: 'default_locale_changed',\n from: prev.localization.defaultLocale,\n to: next.localization.defaultLocale,\n })\n }\n\n return changes\n}\n"],"names":["diffEntityState","slug","entity","prev","next","changes","versions","push","type","drafts","initialStatus","autosave","localizeStatus","allPaths","Set","Object","keys","fields","fieldPath","prevLocalized","localized","nextLocalized","emptyEntityState","diffConfig","allCollectionSlugs","collections","allGlobalSlugs","globals","prevLocales","localization","locales","nextLocales","locale","has","defaultLocale","from","to"],"mappings":"AAEA,SAASA,gBACPC,IAAY,EACZC,MAA+B,EAC/BC,IAAuB,EACvBC,IAAuB;IAEvB,MAAMC,UAA0B,EAAE;IAElC,IAAI,CAACF,KAAKG,QAAQ,IAAIF,KAAKE,QAAQ,EAAE;QACnCD,QAAQE,IAAI,CAAC;YAAEN;YAAMO,MAAM;YAAoBN;QAAO;IACxD;IACA,IAAIC,KAAKG,QAAQ,IAAI,CAACF,KAAKE,QAAQ,EAAE;QACnCD,QAAQE,IAAI,CAAC;YAAEN;YAAMO,MAAM;YAAqBN;QAAO;IACzD;IACA,IAAI,CAACC,KAAKM,MAAM,IAAIL,KAAKK,MAAM,EAAE;QAC/BJ,QAAQE,IAAI,CAAC;YAAEN;YAAMO,MAAM;YAAkBN;YAAQQ,eAAe;QAAQ;IAC9E;IACA,IAAIP,KAAKM,MAAM,IAAI,CAACL,KAAKK,MAAM,EAAE;QAC/BJ,QAAQE,IAAI,CAAC;YAAEN;YAAMO,MAAM;YAAmBN;QAAO;IACvD;IACA,IAAI,CAACC,KAAKQ,QAAQ,IAAIP,KAAKO,QAAQ,EAAE;QACnCN,QAAQE,IAAI,CAAC;YAAEN;YAAMO,MAAM;YAAoBN;QAAO;IACxD;IACA,IAAI,CAACC,KAAKS,cAAc,IAAIR,KAAKQ,cAAc,EAAE;QAC/CP,QAAQE,IAAI,CAAC;YAAEN;YAAMO,MAAM;YAA2BN;QAAO;IAC/D;IAEA,MAAMW,WAAW,IAAIC,IAAI;WAAIC,OAAOC,IAAI,CAACZ,KAAKa,MAAM;WAAMF,OAAOC,IAAI,CAACb,KAAKc,MAAM;KAAE;IACnF,KAAK,MAAMC,aAAaL,SAAU;QAChC,MAAMM,gBAAgBhB,KAAKc,MAAM,CAACC,UAAU,EAAEE,aAAa;QAC3D,MAAMC,gBAAgBjB,KAAKa,MAAM,CAACC,UAAU,EAAEE,aAAa;QAC3D,IAAI,CAACD,iBAAiBE,eAAe;YACnChB,QAAQE,IAAI,CAAC;gBAAEN;gBAAMO,MAAM;gBAAmBN;gBAAQgB;YAAU;QAClE;QACA,IAAIC,iBAAiB,CAACE,eAAe;YACnChB,QAAQE,IAAI,CAAC;gBAAEN;gBAAMO,MAAM;gBAAqBN;gBAAQgB;YAAU;QACpE;IACF;IAEA,OAAOb;AACT;AAEA,MAAMiB,mBAAsC;IAC1CX,UAAU;IACVF,QAAQ;IACRQ,QAAQ,CAAC;IACTL,gBAAgB;IAChBN,UAAU;AACZ;AAEA,OAAO,SAASiB,WAAWpB,IAAoB,EAAEC,IAAoB;IACnE,MAAMC,UAA0B,EAAE;IAElC,MAAMmB,qBAAqB,IAAIV,IAAI;WAC9BC,OAAOC,IAAI,CAACZ,KAAKqB,WAAW;WAC5BV,OAAOC,IAAI,CAACb,KAAKsB,WAAW;KAChC;IACD,KAAK,MAAMxB,QAAQuB,mBAAoB;QACrCnB,QAAQE,IAAI,IACPP,gBACDC,MACA,cACAE,KAAKsB,WAAW,CAACxB,KAAK,IAAIqB,kBAC1BlB,KAAKqB,WAAW,CAACxB,KAAK,IAAIqB;IAGhC;IAEA,MAAMI,iBAAiB,IAAIZ,IAAI;WAAIC,OAAOC,IAAI,CAACZ,KAAKuB,OAAO;WAAMZ,OAAOC,IAAI,CAACb,KAAKwB,OAAO;KAAE;IAC3F,KAAK,MAAM1B,QAAQyB,eAAgB;QACjCrB,QAAQE,IAAI,IACPP,gBACDC,MACA,UACAE,KAAKwB,OAAO,CAAC1B,KAAK,IAAIqB,kBACtBlB,KAAKuB,OAAO,CAAC1B,KAAK,IAAIqB;IAG5B;IAEA,MAAMM,cAAc,IAAId,IAAIX,KAAK0B,YAAY,CAACC,OAAO;IACrD,MAAMC,cAAc,IAAIjB,IAAIV,KAAKyB,YAAY,CAACC,OAAO;IACrD,KAAK,MAAME,UAAUD,YAAa;QAChC,IAAI,CAACH,YAAYK,GAAG,CAACD,SAAS;YAC5B3B,QAAQE,IAAI,CAAC;gBAAEC,MAAM;gBAAgBwB;YAAO;QAC9C;IACF;IACA,KAAK,MAAMA,UAAUJ,YAAa;QAChC,IAAI,CAACG,YAAYE,GAAG,CAACD,SAAS;YAC5B3B,QAAQE,IAAI,CAAC;gBAAEC,MAAM;gBAAkBwB;YAAO;QAChD;IACF;IACA,IACE7B,KAAK0B,YAAY,CAACK,aAAa,KAAK9B,KAAKyB,YAAY,CAACK,aAAa,IACnE9B,KAAKyB,YAAY,CAACK,aAAa,EAC/B;QACA7B,QAAQE,IAAI,CAAC;YACXC,MAAM;YACN2B,MAAMhC,KAAK0B,YAAY,CAACK,aAAa;YACrCE,IAAIhC,KAAKyB,YAAY,CAACK,aAAa;QACrC;IACF;IAEA,OAAO7B;AACT"}
@@ -0,0 +1,136 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { diffConfig } from './diffConfig.js';
3
+ const base = {
4
+ version: 1,
5
+ collections: {
6
+ posts: {
7
+ versions: false,
8
+ drafts: false,
9
+ autosave: false,
10
+ localizeStatus: false,
11
+ fields: {
12
+ title: {
13
+ localized: false
14
+ },
15
+ body: {
16
+ localized: false
17
+ }
18
+ }
19
+ }
20
+ },
21
+ globals: {},
22
+ localization: {
23
+ locales: [
24
+ 'en'
25
+ ],
26
+ defaultLocale: 'en'
27
+ }
28
+ };
29
+ describe('diffConfig', ()=>{
30
+ it('should return empty array when nothing changed', ()=>{
31
+ expect(diffConfig(base, base)).toEqual([]);
32
+ });
33
+ it('should detect drafts_enabled', ()=>{
34
+ const next = {
35
+ ...base,
36
+ collections: {
37
+ posts: {
38
+ ...base.collections['posts'],
39
+ drafts: true,
40
+ versions: true
41
+ }
42
+ }
43
+ };
44
+ const changes = diffConfig(base, next);
45
+ expect(changes).toContainEqual({
46
+ type: 'versions_enabled',
47
+ slug: 'posts',
48
+ entity: 'collection'
49
+ });
50
+ expect(changes).toContainEqual(expect.objectContaining({
51
+ type: 'drafts_enabled',
52
+ slug: 'posts',
53
+ entity: 'collection'
54
+ }));
55
+ });
56
+ it('should detect field_localized', ()=>{
57
+ const next = {
58
+ ...base,
59
+ collections: {
60
+ posts: {
61
+ ...base.collections['posts'],
62
+ fields: {
63
+ title: {
64
+ localized: true
65
+ },
66
+ body: {
67
+ localized: false
68
+ }
69
+ }
70
+ }
71
+ }
72
+ };
73
+ const changes = diffConfig(base, next);
74
+ expect(changes).toContainEqual({
75
+ type: 'field_localized',
76
+ slug: 'posts',
77
+ entity: 'collection',
78
+ fieldPath: 'title'
79
+ });
80
+ expect(changes).not.toContainEqual(expect.objectContaining({
81
+ fieldPath: 'body'
82
+ }));
83
+ });
84
+ it('should detect locale_added and locale_removed', ()=>{
85
+ const next = {
86
+ ...base,
87
+ localization: {
88
+ locales: [
89
+ 'en',
90
+ 'es'
91
+ ],
92
+ defaultLocale: 'en'
93
+ }
94
+ };
95
+ expect(diffConfig(base, next)).toContainEqual({
96
+ type: 'locale_added',
97
+ locale: 'es'
98
+ });
99
+ const removed = {
100
+ ...base,
101
+ localization: {
102
+ locales: [],
103
+ defaultLocale: 'en'
104
+ }
105
+ };
106
+ expect(diffConfig(base, removed)).toContainEqual({
107
+ type: 'locale_removed',
108
+ locale: 'en'
109
+ });
110
+ });
111
+ it('should detect versions_disabled when versions goes from true to false', ()=>{
112
+ const prev = {
113
+ ...base,
114
+ collections: {
115
+ posts: {
116
+ ...base.collections['posts'],
117
+ versions: true,
118
+ drafts: true
119
+ }
120
+ }
121
+ };
122
+ const changes = diffConfig(prev, base);
123
+ expect(changes).toContainEqual({
124
+ type: 'versions_disabled',
125
+ slug: 'posts',
126
+ entity: 'collection'
127
+ });
128
+ expect(changes).toContainEqual({
129
+ type: 'drafts_disabled',
130
+ slug: 'posts',
131
+ entity: 'collection'
132
+ });
133
+ });
134
+ });
135
+
136
+ //# sourceMappingURL=diffConfig.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/database/migrations/config/diffConfig.spec.ts"],"sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport type { ConfigSnapshot } from './types.js'\n\nimport { diffConfig } from './diffConfig.js'\n\nconst base: ConfigSnapshot = {\n version: 1,\n collections: {\n posts: {\n versions: false,\n drafts: false,\n autosave: false,\n localizeStatus: false,\n fields: { title: { localized: false }, body: { localized: false } },\n },\n },\n globals: {},\n localization: { locales: ['en'], defaultLocale: 'en' },\n}\n\ndescribe('diffConfig', () => {\n it('should return empty array when nothing changed', () => {\n expect(diffConfig(base, base)).toEqual([])\n })\n\n it('should detect drafts_enabled', () => {\n const next: ConfigSnapshot = {\n ...base,\n collections: {\n posts: { ...base.collections['posts']!, drafts: true, versions: true },\n },\n }\n const changes = diffConfig(base, next)\n expect(changes).toContainEqual({\n type: 'versions_enabled',\n slug: 'posts',\n entity: 'collection',\n })\n expect(changes).toContainEqual(\n expect.objectContaining({\n type: 'drafts_enabled',\n slug: 'posts',\n entity: 'collection',\n }),\n )\n })\n\n it('should detect field_localized', () => {\n const next: ConfigSnapshot = {\n ...base,\n collections: {\n posts: {\n ...base.collections['posts']!,\n fields: { title: { localized: true }, body: { localized: false } },\n },\n },\n }\n const changes = diffConfig(base, next)\n expect(changes).toContainEqual({\n type: 'field_localized',\n slug: 'posts',\n entity: 'collection',\n fieldPath: 'title',\n })\n expect(changes).not.toContainEqual(expect.objectContaining({ fieldPath: 'body' }))\n })\n\n it('should detect locale_added and locale_removed', () => {\n const next: ConfigSnapshot = {\n ...base,\n localization: { locales: ['en', 'es'], defaultLocale: 'en' },\n }\n expect(diffConfig(base, next)).toContainEqual({ type: 'locale_added', locale: 'es' })\n\n const removed: ConfigSnapshot = {\n ...base,\n localization: { locales: [], defaultLocale: 'en' },\n }\n expect(diffConfig(base, removed)).toContainEqual({ type: 'locale_removed', locale: 'en' })\n })\n\n it('should detect versions_disabled when versions goes from true to false', () => {\n const prev: ConfigSnapshot = {\n ...base,\n collections: {\n posts: { ...base.collections['posts']!, versions: true, drafts: true },\n },\n }\n const changes = diffConfig(prev, base)\n expect(changes).toContainEqual({\n type: 'versions_disabled',\n slug: 'posts',\n entity: 'collection',\n })\n expect(changes).toContainEqual({\n type: 'drafts_disabled',\n slug: 'posts',\n entity: 'collection',\n })\n })\n})\n"],"names":["describe","expect","it","diffConfig","base","version","collections","posts","versions","drafts","autosave","localizeStatus","fields","title","localized","body","globals","localization","locales","defaultLocale","toEqual","next","changes","toContainEqual","type","slug","entity","objectContaining","fieldPath","not","locale","removed","prev"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAI7C,SAASC,UAAU,QAAQ,kBAAiB;AAE5C,MAAMC,OAAuB;IAC3BC,SAAS;IACTC,aAAa;QACXC,OAAO;YACLC,UAAU;YACVC,QAAQ;YACRC,UAAU;YACVC,gBAAgB;YAChBC,QAAQ;gBAAEC,OAAO;oBAAEC,WAAW;gBAAM;gBAAGC,MAAM;oBAAED,WAAW;gBAAM;YAAE;QACpE;IACF;IACAE,SAAS,CAAC;IACVC,cAAc;QAAEC,SAAS;YAAC;SAAK;QAAEC,eAAe;IAAK;AACvD;AAEAnB,SAAS,cAAc;IACrBE,GAAG,kDAAkD;QACnDD,OAAOE,WAAWC,MAAMA,OAAOgB,OAAO,CAAC,EAAE;IAC3C;IAEAlB,GAAG,gCAAgC;QACjC,MAAMmB,OAAuB;YAC3B,GAAGjB,IAAI;YACPE,aAAa;gBACXC,OAAO;oBAAE,GAAGH,KAAKE,WAAW,CAAC,QAAQ;oBAAGG,QAAQ;oBAAMD,UAAU;gBAAK;YACvE;QACF;QACA,MAAMc,UAAUnB,WAAWC,MAAMiB;QACjCpB,OAAOqB,SAASC,cAAc,CAAC;YAC7BC,MAAM;YACNC,MAAM;YACNC,QAAQ;QACV;QACAzB,OAAOqB,SAASC,cAAc,CAC5BtB,OAAO0B,gBAAgB,CAAC;YACtBH,MAAM;YACNC,MAAM;YACNC,QAAQ;QACV;IAEJ;IAEAxB,GAAG,iCAAiC;QAClC,MAAMmB,OAAuB;YAC3B,GAAGjB,IAAI;YACPE,aAAa;gBACXC,OAAO;oBACL,GAAGH,KAAKE,WAAW,CAAC,QAAQ;oBAC5BM,QAAQ;wBAAEC,OAAO;4BAAEC,WAAW;wBAAK;wBAAGC,MAAM;4BAAED,WAAW;wBAAM;oBAAE;gBACnE;YACF;QACF;QACA,MAAMQ,UAAUnB,WAAWC,MAAMiB;QACjCpB,OAAOqB,SAASC,cAAc,CAAC;YAC7BC,MAAM;YACNC,MAAM;YACNC,QAAQ;YACRE,WAAW;QACb;QACA3B,OAAOqB,SAASO,GAAG,CAACN,cAAc,CAACtB,OAAO0B,gBAAgB,CAAC;YAAEC,WAAW;QAAO;IACjF;IAEA1B,GAAG,iDAAiD;QAClD,MAAMmB,OAAuB;YAC3B,GAAGjB,IAAI;YACPa,cAAc;gBAAEC,SAAS;oBAAC;oBAAM;iBAAK;gBAAEC,eAAe;YAAK;QAC7D;QACAlB,OAAOE,WAAWC,MAAMiB,OAAOE,cAAc,CAAC;YAAEC,MAAM;YAAgBM,QAAQ;QAAK;QAEnF,MAAMC,UAA0B;YAC9B,GAAG3B,IAAI;YACPa,cAAc;gBAAEC,SAAS,EAAE;gBAAEC,eAAe;YAAK;QACnD;QACAlB,OAAOE,WAAWC,MAAM2B,UAAUR,cAAc,CAAC;YAAEC,MAAM;YAAkBM,QAAQ;QAAK;IAC1F;IAEA5B,GAAG,yEAAyE;QAC1E,MAAM8B,OAAuB;YAC3B,GAAG5B,IAAI;YACPE,aAAa;gBACXC,OAAO;oBAAE,GAAGH,KAAKE,WAAW,CAAC,QAAQ;oBAAGE,UAAU;oBAAMC,QAAQ;gBAAK;YACvE;QACF;QACA,MAAMa,UAAUnB,WAAW6B,MAAM5B;QACjCH,OAAOqB,SAASC,cAAc,CAAC;YAC7BC,MAAM;YACNC,MAAM;YACNC,QAAQ;QACV;QACAzB,OAAOqB,SAASC,cAAc,CAAC;YAC7BC,MAAM;YACNC,MAAM;YACNC,QAAQ;QACV;IACF;AACF"}
@@ -0,0 +1,11 @@
1
+ import type { ConfigChange } from './types.js';
2
+ type GenerateOptions = {
3
+ defaultLocale?: string;
4
+ };
5
+ type GenerateResult = {
6
+ downCode: string;
7
+ upCode: string;
8
+ };
9
+ export declare function generateDataMigrationCode(changes: ConfigChange[], options?: GenerateOptions): GenerateResult;
10
+ export {};
11
+ //# sourceMappingURL=generateDataMigrationCode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateDataMigrationCode.d.ts","sourceRoot":"","sources":["../../../../src/database/migrations/config/generateDataMigrationCode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,KAAK,eAAe,GAAG;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,KAAK,cAAc,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,GAAE,eAAoB,GAC5B,cAAc,CA0ChB"}
@@ -0,0 +1,28 @@
1
+ export function generateDataMigrationCode(changes, options = {}) {
2
+ const upLines = [];
3
+ const downLines = [];
4
+ for (const change of changes){
5
+ switch(change.type){
6
+ case 'drafts_enabled':
7
+ upLines.push(` if (payload.db.migrateVersionsEnabled) await payload.db.migrateVersionsEnabled({ slug: '${change.slug}', entity: '${change.entity}', initialStatus: '${change.initialStatus ?? 'draft'}', req })`);
8
+ downLines.push(` if (payload.db.migrateVersionsDisabled) await payload.db.migrateVersionsDisabled({ slug: '${change.slug}', entity: '${change.entity}', req })`);
9
+ break;
10
+ case 'field_delocalized':
11
+ upLines.push(` if (payload.db.migrateFieldDelocalized) await payload.db.migrateFieldDelocalized({ slug: '${change.slug}', entity: '${change.entity}', fieldPath: '${change.fieldPath}', defaultLocale: '${options.defaultLocale ?? ''}', req })`);
12
+ downLines.push(` if (payload.db.migrateFieldLocalized) await payload.db.migrateFieldLocalized({ slug: '${change.slug}', entity: '${change.entity}', fieldPath: '${change.fieldPath}', defaultLocale: '${options.defaultLocale ?? ''}', req })`);
13
+ break;
14
+ case 'field_localized':
15
+ upLines.push(` if (payload.db.migrateFieldLocalized) await payload.db.migrateFieldLocalized({ slug: '${change.slug}', entity: '${change.entity}', fieldPath: '${change.fieldPath}', defaultLocale: '${options.defaultLocale ?? ''}', req })`);
16
+ downLines.push(` if (payload.db.migrateFieldDelocalized) await payload.db.migrateFieldDelocalized({ slug: '${change.slug}', entity: '${change.entity}', fieldPath: '${change.fieldPath}', defaultLocale: '${options.defaultLocale ?? ''}', req })`);
17
+ break;
18
+ default:
19
+ break;
20
+ }
21
+ }
22
+ return {
23
+ downCode: downLines.join('\n'),
24
+ upCode: upLines.join('\n')
25
+ };
26
+ }
27
+
28
+ //# sourceMappingURL=generateDataMigrationCode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/database/migrations/config/generateDataMigrationCode.ts"],"sourcesContent":["import type { ConfigChange } from './types.js'\n\ntype GenerateOptions = {\n defaultLocale?: string\n}\n\ntype GenerateResult = {\n downCode: string\n upCode: string\n}\n\nexport function generateDataMigrationCode(\n changes: ConfigChange[],\n options: GenerateOptions = {},\n): GenerateResult {\n const upLines: string[] = []\n const downLines: string[] = []\n\n for (const change of changes) {\n switch (change.type) {\n case 'drafts_enabled':\n upLines.push(\n ` if (payload.db.migrateVersionsEnabled) await payload.db.migrateVersionsEnabled({ slug: '${change.slug}', entity: '${change.entity}', initialStatus: '${change.initialStatus ?? 'draft'}', req })`,\n )\n downLines.push(\n ` if (payload.db.migrateVersionsDisabled) await payload.db.migrateVersionsDisabled({ slug: '${change.slug}', entity: '${change.entity}', req })`,\n )\n break\n\n case 'field_delocalized':\n upLines.push(\n ` if (payload.db.migrateFieldDelocalized) await payload.db.migrateFieldDelocalized({ slug: '${change.slug}', entity: '${change.entity}', fieldPath: '${change.fieldPath}', defaultLocale: '${options.defaultLocale ?? ''}', req })`,\n )\n downLines.push(\n ` if (payload.db.migrateFieldLocalized) await payload.db.migrateFieldLocalized({ slug: '${change.slug}', entity: '${change.entity}', fieldPath: '${change.fieldPath}', defaultLocale: '${options.defaultLocale ?? ''}', req })`,\n )\n break\n\n case 'field_localized':\n upLines.push(\n ` if (payload.db.migrateFieldLocalized) await payload.db.migrateFieldLocalized({ slug: '${change.slug}', entity: '${change.entity}', fieldPath: '${change.fieldPath}', defaultLocale: '${options.defaultLocale ?? ''}', req })`,\n )\n downLines.push(\n ` if (payload.db.migrateFieldDelocalized) await payload.db.migrateFieldDelocalized({ slug: '${change.slug}', entity: '${change.entity}', fieldPath: '${change.fieldPath}', defaultLocale: '${options.defaultLocale ?? ''}', req })`,\n )\n break\n\n default:\n break\n }\n }\n\n return {\n downCode: downLines.join('\\n'),\n upCode: upLines.join('\\n'),\n }\n}\n"],"names":["generateDataMigrationCode","changes","options","upLines","downLines","change","type","push","slug","entity","initialStatus","fieldPath","defaultLocale","downCode","join","upCode"],"mappings":"AAWA,OAAO,SAASA,0BACdC,OAAuB,EACvBC,UAA2B,CAAC,CAAC;IAE7B,MAAMC,UAAoB,EAAE;IAC5B,MAAMC,YAAsB,EAAE;IAE9B,KAAK,MAAMC,UAAUJ,QAAS;QAC5B,OAAQI,OAAOC,IAAI;YACjB,KAAK;gBACHH,QAAQI,IAAI,CACV,CAAC,0FAA0F,EAAEF,OAAOG,IAAI,CAAC,YAAY,EAAEH,OAAOI,MAAM,CAAC,mBAAmB,EAAEJ,OAAOK,aAAa,IAAI,QAAQ,SAAS,CAAC;gBAEtMN,UAAUG,IAAI,CACZ,CAAC,4FAA4F,EAAEF,OAAOG,IAAI,CAAC,YAAY,EAAEH,OAAOI,MAAM,CAAC,SAAS,CAAC;gBAEnJ;YAEF,KAAK;gBACHN,QAAQI,IAAI,CACV,CAAC,4FAA4F,EAAEF,OAAOG,IAAI,CAAC,YAAY,EAAEH,OAAOI,MAAM,CAAC,eAAe,EAAEJ,OAAOM,SAAS,CAAC,mBAAmB,EAAET,QAAQU,aAAa,IAAI,GAAG,SAAS,CAAC;gBAEtOR,UAAUG,IAAI,CACZ,CAAC,wFAAwF,EAAEF,OAAOG,IAAI,CAAC,YAAY,EAAEH,OAAOI,MAAM,CAAC,eAAe,EAAEJ,OAAOM,SAAS,CAAC,mBAAmB,EAAET,QAAQU,aAAa,IAAI,GAAG,SAAS,CAAC;gBAElO;YAEF,KAAK;gBACHT,QAAQI,IAAI,CACV,CAAC,wFAAwF,EAAEF,OAAOG,IAAI,CAAC,YAAY,EAAEH,OAAOI,MAAM,CAAC,eAAe,EAAEJ,OAAOM,SAAS,CAAC,mBAAmB,EAAET,QAAQU,aAAa,IAAI,GAAG,SAAS,CAAC;gBAElOR,UAAUG,IAAI,CACZ,CAAC,4FAA4F,EAAEF,OAAOG,IAAI,CAAC,YAAY,EAAEH,OAAOI,MAAM,CAAC,eAAe,EAAEJ,OAAOM,SAAS,CAAC,mBAAmB,EAAET,QAAQU,aAAa,IAAI,GAAG,SAAS,CAAC;gBAEtO;YAEF;gBACE;QACJ;IACF;IAEA,OAAO;QACLC,UAAUT,UAAUU,IAAI,CAAC;QACzBC,QAAQZ,QAAQW,IAAI,CAAC;IACvB;AACF"}
@@ -0,0 +1,52 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { generateDataMigrationCode } from './generateDataMigrationCode.js';
3
+ describe('generateDataMigrationCode', ()=>{
4
+ it('should generate migrateVersionsEnabled call for drafts_enabled', ()=>{
5
+ const { downCode, upCode } = generateDataMigrationCode([
6
+ {
7
+ type: 'drafts_enabled',
8
+ slug: 'posts',
9
+ entity: 'collection',
10
+ initialStatus: 'draft'
11
+ }
12
+ ]);
13
+ expect(upCode).toContain(`payload.db.migrateVersionsEnabled`);
14
+ expect(upCode).toContain(`slug: 'posts'`);
15
+ expect(upCode).toContain(`initialStatus: 'draft'`);
16
+ expect(downCode).toContain(`payload.db.migrateVersionsDisabled`);
17
+ expect(downCode).toContain(`slug: 'posts'`);
18
+ });
19
+ it('should generate migrateFieldLocalized call for field_localized', ()=>{
20
+ const { downCode, upCode } = generateDataMigrationCode([
21
+ {
22
+ type: 'field_localized',
23
+ slug: 'posts',
24
+ entity: 'collection',
25
+ fieldPath: 'title'
26
+ }
27
+ ], {
28
+ defaultLocale: 'en'
29
+ });
30
+ expect(upCode).toContain(`payload.db.migrateFieldLocalized`);
31
+ expect(upCode).toContain(`fieldPath: 'title'`);
32
+ expect(upCode).toContain(`defaultLocale: 'en'`);
33
+ expect(downCode).toContain(`payload.db.migrateFieldDelocalized`);
34
+ });
35
+ it('should return empty strings for no-op changes', ()=>{
36
+ const { downCode, upCode } = generateDataMigrationCode([
37
+ {
38
+ type: 'versions_enabled',
39
+ slug: 'posts',
40
+ entity: 'collection'
41
+ },
42
+ {
43
+ type: 'locale_added',
44
+ locale: 'es'
45
+ }
46
+ ]);
47
+ expect(upCode).toBe('');
48
+ expect(downCode).toBe('');
49
+ });
50
+ });
51
+
52
+ //# sourceMappingURL=generateDataMigrationCode.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/database/migrations/config/generateDataMigrationCode.spec.ts"],"sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { generateDataMigrationCode } from './generateDataMigrationCode.js'\n\ndescribe('generateDataMigrationCode', () => {\n it('should generate migrateVersionsEnabled call for drafts_enabled', () => {\n const { downCode, upCode } = generateDataMigrationCode([\n {\n type: 'drafts_enabled',\n slug: 'posts',\n entity: 'collection',\n initialStatus: 'draft',\n },\n ])\n\n expect(upCode).toContain(`payload.db.migrateVersionsEnabled`)\n expect(upCode).toContain(`slug: 'posts'`)\n expect(upCode).toContain(`initialStatus: 'draft'`)\n expect(downCode).toContain(`payload.db.migrateVersionsDisabled`)\n expect(downCode).toContain(`slug: 'posts'`)\n })\n\n it('should generate migrateFieldLocalized call for field_localized', () => {\n const { downCode, upCode } = generateDataMigrationCode(\n [\n {\n type: 'field_localized',\n slug: 'posts',\n entity: 'collection',\n fieldPath: 'title',\n },\n ],\n { defaultLocale: 'en' },\n )\n\n expect(upCode).toContain(`payload.db.migrateFieldLocalized`)\n expect(upCode).toContain(`fieldPath: 'title'`)\n expect(upCode).toContain(`defaultLocale: 'en'`)\n expect(downCode).toContain(`payload.db.migrateFieldDelocalized`)\n })\n\n it('should return empty strings for no-op changes', () => {\n const { downCode, upCode } = generateDataMigrationCode([\n { type: 'versions_enabled', slug: 'posts', entity: 'collection' },\n { type: 'locale_added', locale: 'es' },\n ])\n expect(upCode).toBe('')\n expect(downCode).toBe('')\n })\n})\n"],"names":["describe","expect","it","generateDataMigrationCode","downCode","upCode","type","slug","entity","initialStatus","toContain","fieldPath","defaultLocale","locale","toBe"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAE7C,SAASC,yBAAyB,QAAQ,iCAAgC;AAE1EH,SAAS,6BAA6B;IACpCE,GAAG,kEAAkE;QACnE,MAAM,EAAEE,QAAQ,EAAEC,MAAM,EAAE,GAAGF,0BAA0B;YACrD;gBACEG,MAAM;gBACNC,MAAM;gBACNC,QAAQ;gBACRC,eAAe;YACjB;SACD;QAEDR,OAAOI,QAAQK,SAAS,CAAC,CAAC,iCAAiC,CAAC;QAC5DT,OAAOI,QAAQK,SAAS,CAAC,CAAC,aAAa,CAAC;QACxCT,OAAOI,QAAQK,SAAS,CAAC,CAAC,sBAAsB,CAAC;QACjDT,OAAOG,UAAUM,SAAS,CAAC,CAAC,kCAAkC,CAAC;QAC/DT,OAAOG,UAAUM,SAAS,CAAC,CAAC,aAAa,CAAC;IAC5C;IAEAR,GAAG,kEAAkE;QACnE,MAAM,EAAEE,QAAQ,EAAEC,MAAM,EAAE,GAAGF,0BAC3B;YACE;gBACEG,MAAM;gBACNC,MAAM;gBACNC,QAAQ;gBACRG,WAAW;YACb;SACD,EACD;YAAEC,eAAe;QAAK;QAGxBX,OAAOI,QAAQK,SAAS,CAAC,CAAC,gCAAgC,CAAC;QAC3DT,OAAOI,QAAQK,SAAS,CAAC,CAAC,kBAAkB,CAAC;QAC7CT,OAAOI,QAAQK,SAAS,CAAC,CAAC,mBAAmB,CAAC;QAC9CT,OAAOG,UAAUM,SAAS,CAAC,CAAC,kCAAkC,CAAC;IACjE;IAEAR,GAAG,iDAAiD;QAClD,MAAM,EAAEE,QAAQ,EAAEC,MAAM,EAAE,GAAGF,0BAA0B;YACrD;gBAAEG,MAAM;gBAAoBC,MAAM;gBAASC,QAAQ;YAAa;YAChE;gBAAEF,MAAM;gBAAgBO,QAAQ;YAAK;SACtC;QACDZ,OAAOI,QAAQS,IAAI,CAAC;QACpBb,OAAOG,UAAUU,IAAI,CAAC;IACxB;AACF"}
@@ -0,0 +1,9 @@
1
+ export { batchTransform } from './batchTransform.js';
2
+ export { bootstrapConfigState } from './bootstrapConfigState.js';
3
+ export { readConfigState, writeConfigState } from './configStateStore.js';
4
+ export { diffConfig } from './diffConfig.js';
5
+ export { generateDataMigrationCode } from './generateDataMigrationCode.js';
6
+ export { resolvePrompts } from './prompts.js';
7
+ export { serializeConfig } from './serializeConfig.js';
8
+ export type { ConfigChange, ConfigEntityState, ConfigFieldState, ConfigSnapshot } from './types.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/database/migrations/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA"}
@@ -0,0 +1,9 @@
1
+ export { batchTransform } from './batchTransform.js';
2
+ export { bootstrapConfigState } from './bootstrapConfigState.js';
3
+ export { readConfigState, writeConfigState } from './configStateStore.js';
4
+ export { diffConfig } from './diffConfig.js';
5
+ export { generateDataMigrationCode } from './generateDataMigrationCode.js';
6
+ export { resolvePrompts } from './prompts.js';
7
+ export { serializeConfig } from './serializeConfig.js';
8
+
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/database/migrations/config/index.ts"],"sourcesContent":["export { batchTransform } from './batchTransform.js'\nexport { bootstrapConfigState } from './bootstrapConfigState.js'\nexport { readConfigState, writeConfigState } from './configStateStore.js'\nexport { diffConfig } from './diffConfig.js'\nexport { generateDataMigrationCode } from './generateDataMigrationCode.js'\nexport { resolvePrompts } from './prompts.js'\nexport { serializeConfig } from './serializeConfig.js'\nexport type { ConfigChange, ConfigEntityState, ConfigFieldState, ConfigSnapshot } from './types.js'\n"],"names":["batchTransform","bootstrapConfigState","readConfigState","writeConfigState","diffConfig","generateDataMigrationCode","resolvePrompts","serializeConfig"],"mappings":"AAAA,SAASA,cAAc,QAAQ,sBAAqB;AACpD,SAASC,oBAAoB,QAAQ,4BAA2B;AAChE,SAASC,eAAe,EAAEC,gBAAgB,QAAQ,wBAAuB;AACzE,SAASC,UAAU,QAAQ,kBAAiB;AAC5C,SAASC,yBAAyB,QAAQ,iCAAgC;AAC1E,SAASC,cAAc,QAAQ,eAAc;AAC7C,SAASC,eAAe,QAAQ,uBAAsB"}
@@ -0,0 +1,5 @@
1
+ import type { ConfigChange } from './types.js';
2
+ export declare function resolvePrompts(changes: ConfigChange[], isTTY?: boolean): Promise<{
3
+ shouldAbort: boolean;
4
+ }>;
5
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../../src/database/migrations/config/prompts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAY9C,wBAAsB,cAAc,CAClC,OAAO,EAAE,YAAY,EAAE,EACvB,KAAK,UAAuB,GAC3B,OAAO,CAAC;IAAE,WAAW,EAAE,OAAO,CAAA;CAAE,CAAC,CAsCnC"}