@payloadcms/codemod 4.0.0-internal.7e57eed → 4.0.0-internal.8001944

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 (363) hide show
  1. package/README.md +92 -27
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.help.d.ts +4 -0
  4. package/dist/cli.help.d.ts.map +1 -0
  5. package/dist/cli.help.js +29 -0
  6. package/dist/cli.help.js.map +1 -0
  7. package/dist/cli.js +49 -27
  8. package/dist/cli.js.map +1 -1
  9. package/dist/cli.parseFlags.d.ts +15 -0
  10. package/dist/cli.parseFlags.d.ts.map +1 -1
  11. package/dist/cli.parseFlags.js +35 -2
  12. package/dist/cli.parseFlags.js.map +1 -1
  13. package/dist/registry.d.ts.map +1 -1
  14. package/dist/registry.js +15 -1
  15. package/dist/registry.js.map +1 -1
  16. package/dist/runbook/payload-v4-upgrade.md +55 -0
  17. package/dist/runbook/v4.mdx +2179 -0
  18. package/dist/transforms/add-override-access-true/basic.input.js +41 -0
  19. package/dist/transforms/add-override-access-true/basic.input.js.map +1 -0
  20. package/dist/transforms/add-override-access-true/basic.output.js +50 -0
  21. package/dist/transforms/add-override-access-true/basic.output.js.map +1 -0
  22. package/dist/transforms/add-override-access-true/comment-between-properties.input.js +11 -0
  23. package/dist/transforms/add-override-access-true/comment-between-properties.input.js.map +1 -0
  24. package/dist/transforms/add-override-access-true/comment-between-properties.output.js +12 -0
  25. package/dist/transforms/add-override-access-true/comment-between-properties.output.js.map +1 -0
  26. package/dist/transforms/add-override-access-true/index.d.ts +20 -0
  27. package/dist/transforms/add-override-access-true/index.d.ts.map +1 -0
  28. package/dist/transforms/add-override-access-true/index.js +208 -0
  29. package/dist/transforms/add-override-access-true/index.js.map +1 -0
  30. package/dist/transforms/add-override-access-true/javascript.input.d.ts +6 -0
  31. package/dist/transforms/add-override-access-true/javascript.input.d.ts.map +1 -0
  32. package/dist/transforms/add-override-access-true/javascript.input.js +24 -0
  33. package/dist/transforms/add-override-access-true/javascript.input.js.map +1 -0
  34. package/dist/transforms/add-override-access-true/javascript.output.d.ts +6 -0
  35. package/dist/transforms/add-override-access-true/javascript.output.d.ts.map +1 -0
  36. package/dist/transforms/add-override-access-true/javascript.output.js +26 -0
  37. package/dist/transforms/add-override-access-true/javascript.output.js.map +1 -0
  38. package/dist/transforms/add-override-access-true/non-matching.input.js +42 -0
  39. package/dist/transforms/add-override-access-true/non-matching.input.js.map +1 -0
  40. package/dist/transforms/add-override-access-true/non-matching.output.js +42 -0
  41. package/dist/transforms/add-override-access-true/non-matching.output.js.map +1 -0
  42. package/dist/transforms/add-override-access-true/single-line.input.js +13 -0
  43. package/dist/transforms/add-override-access-true/single-line.input.js.map +1 -0
  44. package/dist/transforms/add-override-access-true/single-line.output.js +17 -0
  45. package/dist/transforms/add-override-access-true/single-line.output.js.map +1 -0
  46. package/dist/transforms/add-override-access-true/trailing-comment.input.js +10 -0
  47. package/dist/transforms/add-override-access-true/trailing-comment.input.js.map +1 -0
  48. package/dist/transforms/add-override-access-true/trailing-comment.output.js +12 -0
  49. package/dist/transforms/add-override-access-true/trailing-comment.output.js.map +1 -0
  50. package/dist/transforms/migrate-aliased-exports/index.d.ts.map +1 -1
  51. package/dist/transforms/migrate-aliased-exports/index.js +6 -5
  52. package/dist/transforms/migrate-aliased-exports/index.js.map +1 -1
  53. package/dist/transforms/migrate-aliased-exports/request.input.js +6 -0
  54. package/dist/transforms/migrate-aliased-exports/request.input.js.map +1 -0
  55. package/dist/transforms/migrate-aliased-exports/request.output.js +5 -0
  56. package/dist/transforms/migrate-aliased-exports/request.output.js.map +1 -0
  57. package/dist/transforms/migrate-authorship-default/already-set.input.js +15 -0
  58. package/dist/transforms/migrate-authorship-default/already-set.input.js.map +1 -0
  59. package/dist/transforms/migrate-authorship-default/already-set.output.js +15 -0
  60. package/dist/transforms/migrate-authorship-default/already-set.output.js.map +1 -0
  61. package/dist/transforms/migrate-authorship-default/basic.input.js +16 -0
  62. package/dist/transforms/migrate-authorship-default/basic.input.js.map +1 -0
  63. package/dist/transforms/migrate-authorship-default/basic.output.js +18 -0
  64. package/dist/transforms/migrate-authorship-default/basic.output.js.map +1 -0
  65. package/dist/transforms/migrate-authorship-default/build-config.input.js +32 -0
  66. package/dist/transforms/migrate-authorship-default/build-config.input.js.map +1 -0
  67. package/dist/transforms/migrate-authorship-default/build-config.output.js +35 -0
  68. package/dist/transforms/migrate-authorship-default/build-config.output.js.map +1 -0
  69. package/dist/transforms/migrate-authorship-default/globals.input.js +16 -0
  70. package/dist/transforms/migrate-authorship-default/globals.input.js.map +1 -0
  71. package/dist/transforms/migrate-authorship-default/globals.output.js +17 -0
  72. package/dist/transforms/migrate-authorship-default/globals.output.js.map +1 -0
  73. package/dist/transforms/migrate-authorship-default/index.d.ts +11 -0
  74. package/dist/transforms/migrate-authorship-default/index.d.ts.map +1 -0
  75. package/dist/transforms/migrate-authorship-default/index.js +141 -0
  76. package/dist/transforms/migrate-authorship-default/index.js.map +1 -0
  77. package/dist/transforms/migrate-authorship-default/non-matching.input.js +18 -0
  78. package/dist/transforms/migrate-authorship-default/non-matching.input.js.map +1 -0
  79. package/dist/transforms/migrate-authorship-default/non-matching.output.js +18 -0
  80. package/dist/transforms/migrate-authorship-default/non-matching.output.js.map +1 -0
  81. package/dist/transforms/migrate-authorship-default/satisfies.input.js +11 -0
  82. package/dist/transforms/migrate-authorship-default/satisfies.input.js.map +1 -0
  83. package/dist/transforms/migrate-authorship-default/satisfies.output.js +13 -0
  84. package/dist/transforms/migrate-authorship-default/satisfies.output.js.map +1 -0
  85. package/dist/transforms/migrate-field-component-types/basic.input.js +8 -0
  86. package/dist/transforms/migrate-field-component-types/basic.input.js.map +1 -0
  87. package/dist/transforms/migrate-field-component-types/basic.output.js +8 -0
  88. package/dist/transforms/migrate-field-component-types/basic.output.js.map +1 -0
  89. package/dist/transforms/migrate-field-component-types/index.d.ts +3 -0
  90. package/dist/transforms/migrate-field-component-types/index.d.ts.map +1 -0
  91. package/dist/transforms/migrate-field-component-types/index.js +620 -0
  92. package/dist/transforms/migrate-field-component-types/index.js.map +1 -0
  93. package/dist/transforms/migrate-payload-request-creation/aliases.input.js +8 -0
  94. package/dist/transforms/migrate-payload-request-creation/aliases.input.js.map +1 -0
  95. package/dist/transforms/migrate-payload-request-creation/aliases.output.js +31 -0
  96. package/dist/transforms/migrate-payload-request-creation/aliases.output.js.map +1 -0
  97. package/dist/transforms/migrate-payload-request-creation/collision.input.js +9 -0
  98. package/dist/transforms/migrate-payload-request-creation/collision.input.js.map +1 -0
  99. package/dist/transforms/migrate-payload-request-creation/comments.input.js +9 -0
  100. package/dist/transforms/migrate-payload-request-creation/comments.input.js.map +1 -0
  101. package/dist/transforms/migrate-payload-request-creation/comments.output.js +34 -0
  102. package/dist/transforms/migrate-payload-request-creation/comments.output.js.map +1 -0
  103. package/dist/transforms/migrate-payload-request-creation/empty.input.js +5 -0
  104. package/dist/transforms/migrate-payload-request-creation/empty.input.js.map +1 -0
  105. package/dist/transforms/migrate-payload-request-creation/empty.output.js +7 -0
  106. package/dist/transforms/migrate-payload-request-creation/empty.output.js.map +1 -0
  107. package/dist/transforms/migrate-payload-request-creation/evaluation-order.input.js +10 -0
  108. package/dist/transforms/migrate-payload-request-creation/evaluation-order.input.js.map +1 -0
  109. package/dist/transforms/migrate-payload-request-creation/expression.input.js +8 -0
  110. package/dist/transforms/migrate-payload-request-creation/expression.input.js.map +1 -0
  111. package/dist/transforms/migrate-payload-request-creation/expression.output.js +8 -0
  112. package/dist/transforms/migrate-payload-request-creation/expression.output.js.map +1 -0
  113. package/dist/transforms/migrate-payload-request-creation/getters.input.js +52 -0
  114. package/dist/transforms/migrate-payload-request-creation/getters.input.js.map +1 -0
  115. package/dist/transforms/migrate-payload-request-creation/index.d.ts +3 -0
  116. package/dist/transforms/migrate-payload-request-creation/index.d.ts.map +1 -0
  117. package/dist/transforms/migrate-payload-request-creation/index.js +236 -0
  118. package/dist/transforms/migrate-payload-request-creation/index.js.map +1 -0
  119. package/dist/transforms/migrate-payload-request-creation/internal.input.js +6 -0
  120. package/dist/transforms/migrate-payload-request-creation/internal.input.js.map +1 -0
  121. package/dist/transforms/migrate-payload-request-creation/internal.output.js +6 -0
  122. package/dist/transforms/migrate-payload-request-creation/internal.output.js.map +1 -0
  123. package/dist/transforms/migrate-payload-request-creation/non-matching.input.js +5 -0
  124. package/dist/transforms/migrate-payload-request-creation/non-matching.input.js.map +1 -0
  125. package/dist/transforms/migrate-payload-request-creation/populated.input.js +7 -0
  126. package/dist/transforms/migrate-payload-request-creation/populated.input.js.map +1 -0
  127. package/dist/transforms/migrate-payload-request-creation/populated.output.js +30 -0
  128. package/dist/transforms/migrate-payload-request-creation/populated.output.js.map +1 -0
  129. package/dist/transforms/migrate-payload-request-creation/shadowed.input.js +7 -0
  130. package/dist/transforms/migrate-payload-request-creation/shadowed.input.js.map +1 -0
  131. package/dist/transforms/migrate-payload-request-creation/shadowed.output.js +9 -0
  132. package/dist/transforms/migrate-payload-request-creation/shadowed.output.js.map +1 -0
  133. package/dist/transforms/migrate-payload-request-creation/shorthand.input.js +12 -0
  134. package/dist/transforms/migrate-payload-request-creation/shorthand.input.js.map +1 -0
  135. package/dist/transforms/migrate-payload-request-creation/shorthand.output.js +12 -0
  136. package/dist/transforms/migrate-payload-request-creation/shorthand.output.js.map +1 -0
  137. package/dist/transforms/migrate-payload-request-creation/unsupported.input.js +9 -0
  138. package/dist/transforms/migrate-payload-request-creation/unsupported.input.js.map +1 -0
  139. package/dist/transforms/migrate-versions-default/index.js +5 -5
  140. package/dist/transforms/migrate-versions-default/index.js.map +1 -1
  141. package/dist/transforms/remove-default-locale-publish-option/all-value.input.js +13 -0
  142. package/dist/transforms/remove-default-locale-publish-option/all-value.input.js.map +1 -0
  143. package/dist/transforms/remove-default-locale-publish-option/basic.input.js +13 -0
  144. package/dist/transforms/remove-default-locale-publish-option/basic.input.js.map +1 -0
  145. package/dist/transforms/remove-default-locale-publish-option/basic.output.js +12 -0
  146. package/dist/transforms/remove-default-locale-publish-option/basic.output.js.map +1 -0
  147. package/dist/transforms/remove-default-locale-publish-option/dynamic.input.js +17 -0
  148. package/dist/transforms/remove-default-locale-publish-option/dynamic.input.js.map +1 -0
  149. package/dist/transforms/remove-default-locale-publish-option/index.d.ts +10 -0
  150. package/dist/transforms/remove-default-locale-publish-option/index.d.ts.map +1 -0
  151. package/dist/transforms/remove-default-locale-publish-option/index.js +103 -0
  152. package/dist/transforms/remove-default-locale-publish-option/index.js.map +1 -0
  153. package/dist/transforms/remove-default-locale-publish-option/no-match.input.js +10 -0
  154. package/dist/transforms/remove-default-locale-publish-option/no-match.input.js.map +1 -0
  155. package/dist/transforms/remove-default-locale-publish-option/no-match.output.js +10 -0
  156. package/dist/transforms/remove-default-locale-publish-option/no-match.output.js.map +1 -0
  157. package/dist/transforms/remove-default-locale-publish-option/reassigned.input.js +22 -0
  158. package/dist/transforms/remove-default-locale-publish-option/reassigned.input.js.map +1 -0
  159. package/dist/transforms/remove-default-locale-publish-option/shorthand.input.js +14 -0
  160. package/dist/transforms/remove-default-locale-publish-option/shorthand.input.js.map +1 -0
  161. package/dist/transforms/remove-default-locale-publish-option/shorthand.output.js +13 -0
  162. package/dist/transforms/remove-default-locale-publish-option/shorthand.output.js.map +1 -0
  163. package/dist/transforms/remove-publish-specific-locale/index.d.ts.map +1 -1
  164. package/dist/transforms/remove-publish-specific-locale/index.js.map +1 -1
  165. package/dist/transforms/remove-storage-always-insert-fields/aliased.input.js +11 -0
  166. package/dist/transforms/remove-storage-always-insert-fields/aliased.input.js.map +1 -0
  167. package/dist/transforms/remove-storage-always-insert-fields/aliased.output.js +10 -0
  168. package/dist/transforms/remove-storage-always-insert-fields/aliased.output.js.map +1 -0
  169. package/dist/transforms/remove-storage-always-insert-fields/basic.input.js +54 -0
  170. package/dist/transforms/remove-storage-always-insert-fields/basic.input.js.map +1 -0
  171. package/dist/transforms/remove-storage-always-insert-fields/basic.output.js +48 -0
  172. package/dist/transforms/remove-storage-always-insert-fields/basic.output.js.map +1 -0
  173. package/dist/transforms/remove-storage-always-insert-fields/index.d.ts +3 -0
  174. package/dist/transforms/remove-storage-always-insert-fields/index.d.ts.map +1 -0
  175. package/dist/transforms/remove-storage-always-insert-fields/index.js +75 -0
  176. package/dist/transforms/remove-storage-always-insert-fields/index.js.map +1 -0
  177. package/dist/transforms/remove-storage-always-insert-fields/no-match.input.js +27 -0
  178. package/dist/transforms/remove-storage-always-insert-fields/no-match.input.js.map +1 -0
  179. package/dist/transforms/remove-storage-always-insert-fields/no-match.output.js +27 -0
  180. package/dist/transforms/remove-storage-always-insert-fields/no-match.output.js.map +1 -0
  181. package/dist/transforms/remove-versions-true/index.js +4 -4
  182. package/dist/transforms/remove-versions-true/index.js.map +1 -1
  183. package/dist/transforms/rename-experimental-table-feature/alias.input.js +6 -0
  184. package/dist/transforms/rename-experimental-table-feature/alias.input.js.map +1 -0
  185. package/dist/transforms/rename-experimental-table-feature/alias.output.js +6 -0
  186. package/dist/transforms/rename-experimental-table-feature/alias.output.js.map +1 -0
  187. package/dist/transforms/rename-experimental-table-feature/basic.input.js +19 -0
  188. package/dist/transforms/rename-experimental-table-feature/basic.input.js.map +1 -0
  189. package/dist/transforms/rename-experimental-table-feature/basic.output.js +19 -0
  190. package/dist/transforms/rename-experimental-table-feature/basic.output.js.map +1 -0
  191. package/dist/transforms/rename-experimental-table-feature/collision.input.js +7 -0
  192. package/dist/transforms/rename-experimental-table-feature/collision.input.js.map +1 -0
  193. package/dist/transforms/rename-experimental-table-feature/index.d.ts +3 -0
  194. package/dist/transforms/rename-experimental-table-feature/index.d.ts.map +1 -0
  195. package/dist/transforms/rename-experimental-table-feature/index.js +50 -0
  196. package/dist/transforms/rename-experimental-table-feature/index.js.map +1 -0
  197. package/dist/transforms/rename-experimental-table-feature/no-match.input.js +9 -0
  198. package/dist/transforms/rename-experimental-table-feature/no-match.input.js.map +1 -0
  199. package/dist/upgrade/defaultTag.d.ts +9 -0
  200. package/dist/upgrade/defaultTag.d.ts.map +1 -0
  201. package/dist/upgrade/defaultTag.js +25 -0
  202. package/dist/upgrade/defaultTag.js.map +1 -0
  203. package/dist/upgrade/detectPackageManager.d.ts +8 -0
  204. package/dist/upgrade/detectPackageManager.d.ts.map +1 -0
  205. package/dist/upgrade/detectPackageManager.js +38 -0
  206. package/dist/upgrade/detectPackageManager.js.map +1 -0
  207. package/dist/upgrade/dispatch.d.ts +38 -0
  208. package/dist/upgrade/dispatch.d.ts.map +1 -0
  209. package/dist/upgrade/dispatch.js +132 -0
  210. package/dist/upgrade/dispatch.js.map +1 -0
  211. package/dist/upgrade/index.d.ts +25 -0
  212. package/dist/upgrade/index.d.ts.map +1 -0
  213. package/dist/upgrade/index.js +209 -0
  214. package/dist/upgrade/index.js.map +1 -0
  215. package/dist/upgrade/prompt.d.ts +14 -0
  216. package/dist/upgrade/prompt.d.ts.map +1 -0
  217. package/dist/upgrade/prompt.js +77 -0
  218. package/dist/upgrade/prompt.js.map +1 -0
  219. package/dist/upgrade/report.d.ts +21 -0
  220. package/dist/upgrade/report.d.ts.map +1 -0
  221. package/dist/upgrade/report.js +47 -0
  222. package/dist/upgrade/report.js.map +1 -0
  223. package/dist/upgrade/resolveVersions.d.ts +13 -0
  224. package/dist/upgrade/resolveVersions.d.ts.map +1 -0
  225. package/dist/upgrade/resolveVersions.js +55 -0
  226. package/dist/upgrade/resolveVersions.js.map +1 -0
  227. package/dist/upgrade/rewritePackageJson.d.ts +32 -0
  228. package/dist/upgrade/rewritePackageJson.d.ts.map +1 -0
  229. package/dist/upgrade/rewritePackageJson.js +164 -0
  230. package/dist/upgrade/rewritePackageJson.js.map +1 -0
  231. package/dist/upgrade/runInstall.d.ts +16 -0
  232. package/dist/upgrade/runInstall.d.ts.map +1 -0
  233. package/dist/upgrade/runInstall.js +17 -0
  234. package/dist/upgrade/runInstall.js.map +1 -0
  235. package/dist/upgrade/selectAgent.d.ts +45 -0
  236. package/dist/upgrade/selectAgent.d.ts.map +1 -0
  237. package/dist/upgrade/selectAgent.js +54 -0
  238. package/dist/upgrade/selectAgent.js.map +1 -0
  239. package/dist/upgrade/selfCommand.d.ts +13 -0
  240. package/dist/upgrade/selfCommand.d.ts.map +1 -0
  241. package/dist/upgrade/selfCommand.js +17 -0
  242. package/dist/upgrade/selfCommand.js.map +1 -0
  243. package/dist/upgrade/types.d.ts +47 -0
  244. package/dist/upgrade/types.d.ts.map +1 -0
  245. package/dist/upgrade/types.js +11 -0
  246. package/dist/upgrade/types.js.map +1 -0
  247. package/dist/utils/project.d.ts +10 -0
  248. package/dist/utils/project.d.ts.map +1 -0
  249. package/dist/utils/project.js +43 -0
  250. package/dist/utils/project.js.map +1 -0
  251. package/package.json +9 -5
  252. package/dist/cli.parseFlags.spec.d.ts +0 -2
  253. package/dist/cli.parseFlags.spec.d.ts.map +0 -1
  254. package/dist/cli.parseFlags.spec.js +0 -49
  255. package/dist/cli.parseFlags.spec.js.map +0 -1
  256. package/dist/runner.spec.d.ts +0 -2
  257. package/dist/runner.spec.d.ts.map +0 -1
  258. package/dist/runner.spec.js +0 -88
  259. package/dist/runner.spec.js.map +0 -1
  260. package/dist/transforms/example-noop/index.spec.d.ts +0 -2
  261. package/dist/transforms/example-noop/index.spec.d.ts.map +0 -1
  262. package/dist/transforms/example-noop/index.spec.js +0 -29
  263. package/dist/transforms/example-noop/index.spec.js.map +0 -1
  264. package/dist/transforms/globals-components-edit/index.spec.d.ts +0 -2
  265. package/dist/transforms/globals-components-edit/index.spec.d.ts.map +0 -1
  266. package/dist/transforms/globals-components-edit/index.spec.js +0 -37
  267. package/dist/transforms/globals-components-edit/index.spec.js.map +0 -1
  268. package/dist/transforms/migrate-after-operation-read/index.spec.d.ts +0 -2
  269. package/dist/transforms/migrate-after-operation-read/index.spec.d.ts.map +0 -1
  270. package/dist/transforms/migrate-after-operation-read/index.spec.js +0 -62
  271. package/dist/transforms/migrate-after-operation-read/index.spec.js.map +0 -1
  272. package/dist/transforms/migrate-aliased-exports/index.spec.d.ts +0 -2
  273. package/dist/transforms/migrate-aliased-exports/index.spec.d.ts.map +0 -1
  274. package/dist/transforms/migrate-aliased-exports/index.spec.js +0 -55
  275. package/dist/transforms/migrate-aliased-exports/index.spec.js.map +0 -1
  276. package/dist/transforms/migrate-azure-chunk-large-files/index.spec.d.ts +0 -2
  277. package/dist/transforms/migrate-azure-chunk-large-files/index.spec.d.ts.map +0 -1
  278. package/dist/transforms/migrate-azure-chunk-large-files/index.spec.js +0 -67
  279. package/dist/transforms/migrate-azure-chunk-large-files/index.spec.js.map +0 -1
  280. package/dist/transforms/migrate-block-references-to-blocks/index.spec.d.ts +0 -2
  281. package/dist/transforms/migrate-block-references-to-blocks/index.spec.d.ts.map +0 -1
  282. package/dist/transforms/migrate-block-references-to-blocks/index.spec.js +0 -45
  283. package/dist/transforms/migrate-block-references-to-blocks/index.spec.js.map +0 -1
  284. package/dist/transforms/migrate-build-script/index.spec.d.ts +0 -2
  285. package/dist/transforms/migrate-build-script/index.spec.d.ts.map +0 -1
  286. package/dist/transforms/migrate-build-script/index.spec.js +0 -81
  287. package/dist/transforms/migrate-build-script/index.spec.js.map +0 -1
  288. package/dist/transforms/migrate-db-types-subpath/index.spec.d.ts +0 -2
  289. package/dist/transforms/migrate-db-types-subpath/index.spec.d.ts.map +0 -1
  290. package/dist/transforms/migrate-db-types-subpath/index.spec.js +0 -46
  291. package/dist/transforms/migrate-db-types-subpath/index.spec.js.map +0 -1
  292. package/dist/transforms/migrate-disabled-fields/index.spec.d.ts +0 -2
  293. package/dist/transforms/migrate-disabled-fields/index.spec.d.ts.map +0 -1
  294. package/dist/transforms/migrate-disabled-fields/index.spec.js +0 -73
  295. package/dist/transforms/migrate-disabled-fields/index.spec.js.map +0 -1
  296. package/dist/transforms/migrate-document-title-context/index.spec.d.ts +0 -2
  297. package/dist/transforms/migrate-document-title-context/index.spec.d.ts.map +0 -1
  298. package/dist/transforms/migrate-document-title-context/index.spec.js +0 -86
  299. package/dist/transforms/migrate-document-title-context/index.spec.js.map +0 -1
  300. package/dist/transforms/migrate-force-select/index.spec.d.ts +0 -2
  301. package/dist/transforms/migrate-force-select/index.spec.d.ts.map +0 -1
  302. package/dist/transforms/migrate-force-select/index.spec.js +0 -107
  303. package/dist/transforms/migrate-force-select/index.spec.js.map +0 -1
  304. package/dist/transforms/migrate-hide-api-url/index.spec.d.ts +0 -2
  305. package/dist/transforms/migrate-hide-api-url/index.spec.d.ts.map +0 -1
  306. package/dist/transforms/migrate-hide-api-url/index.spec.js +0 -118
  307. package/dist/transforms/migrate-hide-api-url/index.spec.js.map +0 -1
  308. package/dist/transforms/migrate-import-export-hooks/index.spec.d.ts +0 -2
  309. package/dist/transforms/migrate-import-export-hooks/index.spec.d.ts.map +0 -1
  310. package/dist/transforms/migrate-import-export-hooks/index.spec.js +0 -65
  311. package/dist/transforms/migrate-import-export-hooks/index.spec.js.map +0 -1
  312. package/dist/transforms/migrate-list-view-select-api/index.spec.d.ts +0 -2
  313. package/dist/transforms/migrate-list-view-select-api/index.spec.d.ts.map +0 -1
  314. package/dist/transforms/migrate-list-view-select-api/index.spec.js +0 -37
  315. package/dist/transforms/migrate-list-view-select-api/index.spec.js.map +0 -1
  316. package/dist/transforms/migrate-next-generate-viewport-export/index.spec.d.ts +0 -2
  317. package/dist/transforms/migrate-next-generate-viewport-export/index.spec.d.ts.map +0 -1
  318. package/dist/transforms/migrate-next-generate-viewport-export/index.spec.js +0 -41
  319. package/dist/transforms/migrate-next-generate-viewport-export/index.spec.js.map +0 -1
  320. package/dist/transforms/migrate-next-subpath-exports/index.spec.d.ts +0 -2
  321. package/dist/transforms/migrate-next-subpath-exports/index.spec.d.ts.map +0 -1
  322. package/dist/transforms/migrate-next-subpath-exports/index.spec.js +0 -46
  323. package/dist/transforms/migrate-next-subpath-exports/index.spec.js.map +0 -1
  324. package/dist/transforms/migrate-slug-field/index.spec.d.ts +0 -2
  325. package/dist/transforms/migrate-slug-field/index.spec.d.ts.map +0 -1
  326. package/dist/transforms/migrate-slug-field/index.spec.js +0 -47
  327. package/dist/transforms/migrate-slug-field/index.spec.js.map +0 -1
  328. package/dist/transforms/migrate-storage-adapters-to-config/index.spec.d.ts +0 -2
  329. package/dist/transforms/migrate-storage-adapters-to-config/index.spec.d.ts.map +0 -1
  330. package/dist/transforms/migrate-storage-adapters-to-config/index.spec.js +0 -85
  331. package/dist/transforms/migrate-storage-adapters-to-config/index.spec.js.map +0 -1
  332. package/dist/transforms/migrate-versions-default/index.spec.d.ts +0 -2
  333. package/dist/transforms/migrate-versions-default/index.spec.d.ts.map +0 -1
  334. package/dist/transforms/migrate-versions-default/index.spec.js +0 -81
  335. package/dist/transforms/migrate-versions-default/index.spec.js.map +0 -1
  336. package/dist/transforms/remove-group-by-true/index.spec.d.ts +0 -2
  337. package/dist/transforms/remove-group-by-true/index.spec.d.ts.map +0 -1
  338. package/dist/transforms/remove-group-by-true/index.spec.js +0 -47
  339. package/dist/transforms/remove-group-by-true/index.spec.js.map +0 -1
  340. package/dist/transforms/remove-localize-status-config/index.spec.d.ts +0 -2
  341. package/dist/transforms/remove-localize-status-config/index.spec.d.ts.map +0 -1
  342. package/dist/transforms/remove-localize-status-config/index.spec.js +0 -38
  343. package/dist/transforms/remove-localize-status-config/index.spec.js.map +0 -1
  344. package/dist/transforms/remove-publish-specific-locale/index.spec.d.ts +0 -2
  345. package/dist/transforms/remove-publish-specific-locale/index.spec.d.ts.map +0 -1
  346. package/dist/transforms/remove-publish-specific-locale/index.spec.js +0 -47
  347. package/dist/transforms/remove-publish-specific-locale/index.spec.js.map +0 -1
  348. package/dist/transforms/remove-versions-true/index.spec.d.ts +0 -2
  349. package/dist/transforms/remove-versions-true/index.spec.d.ts.map +0 -1
  350. package/dist/transforms/remove-versions-true/index.spec.js +0 -38
  351. package/dist/transforms/remove-versions-true/index.spec.js.map +0 -1
  352. package/dist/transforms/rename-storage-adapters-to-storage/index.spec.d.ts +0 -2
  353. package/dist/transforms/rename-storage-adapters-to-storage/index.spec.d.ts.map +0 -1
  354. package/dist/transforms/rename-storage-adapters-to-storage/index.spec.js +0 -55
  355. package/dist/transforms/rename-storage-adapters-to-storage/index.spec.js.map +0 -1
  356. package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.d.ts +0 -2
  357. package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.d.ts.map +0 -1
  358. package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.js +0 -45
  359. package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.js.map +0 -1
  360. package/dist/utils/packageJson.spec.d.ts +0 -2
  361. package/dist/utils/packageJson.spec.d.ts.map +0 -1
  362. package/dist/utils/packageJson.spec.js +0 -41
  363. package/dist/utils/packageJson.spec.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transforms/remove-publish-specific-locale/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,EAAE,SA6EzC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transforms/remove-publish-specific-locale/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,EAAE,SA6EzC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/transforms/remove-publish-specific-locale/index.ts"],"sourcesContent":["import type { ObjectLiteralExpression } from 'ts-morph'\n\nimport { Node } from 'ts-morph'\n\nimport type { Transform } from '../../types.js'\n\n/**\n * Removes `publishSpecificLocale` from `payload.update()` and\n * `payload.updateGlobal()` call-site options objects.\n *\n * If the object already has a `locale` property, `publishSpecificLocale` is\n * simply removed. If it does not, the property is renamed to `locale` so the\n * same locale value is preserved.\n */\nexport const removePublishSpecificLocale: Transform = {\n name: 'remove-publish-specific-locale',\n apply: ({ project }) => {\n const filesChanged = new Set<string>()\n\n for (const sourceFile of project.getSourceFiles()) {\n let mutated = false\n\n sourceFile.forEachDescendant((node) => {\n if (!Node.isCallExpression(node)) {\n return\n }\n\n const expr = node.getExpression()\n if (!Node.isPropertyAccessExpression(expr)) {\n return\n }\n\n const methodName = expr.getName()\n if (methodName !== 'update' && methodName !== 'updateGlobal') {\n return\n }\n\n const args = node.getArguments()\n if (args.length === 0) {\n return\n }\n\n // The options object is always the first argument\n const optionsArg = args[0]\n if (!Node.isObjectLiteralExpression(optionsArg)) {\n return\n }\n\n const options = optionsArg\n const publishSpecificLocaleProp = options.getProperty('publishSpecificLocale')\n if (!publishSpecificLocaleProp) {\n return\n }\n\n const localeProp = options.getProperty('locale')\n\n if (localeProp) {\n // Already has `locale` — just drop publishSpecificLocale\n publishSpecificLocaleProp.remove()\n } else {\n // Rename publishSpecificLocale → locale to keep the value\n if (\n Node.isPropertyAssignment(publishSpecificLocaleProp) ||\n Node.isShorthandPropertyAssignment(publishSpecificLocaleProp)\n ) {\n if (Node.isPropertyAssignment(publishSpecificLocaleProp)) {\n const valueText = publishSpecificLocaleProp.getInitializer()?.getText() ?? 'undefined'\n publishSpecificLocaleProp.replaceWithText(`locale: ${valueText}`)\n } else {\n // shorthand: publishSpecificLocale → locale: publishSpecificLocale\n const name = publishSpecificLocaleProp.getName()\n publishSpecificLocaleProp.replaceWithText(`locale: ${name}`)\n }\n } else {\n // spread or method — just remove, we can't safely rename\n publishSpecificLocaleProp.remove()\n }\n }\n\n mutated = true\n })\n\n if (mutated) {\n filesChanged.add(sourceFile.getFilePath())\n }\n }\n\n return { filesChanged: [...filesChanged] }\n },\n description:\n 'Remove `publishSpecificLocale` from payload.update() and payload.updateGlobal() call sites. When `locale` is already present the property is simply removed; otherwise it is renamed to `locale` to preserve the value.',\n}\n"],"names":["Node","removePublishSpecificLocale","name","apply","project","filesChanged","Set","sourceFile","getSourceFiles","mutated","forEachDescendant","node","isCallExpression","expr","getExpression","isPropertyAccessExpression","methodName","getName","args","getArguments","length","optionsArg","isObjectLiteralExpression","options","publishSpecificLocaleProp","getProperty","localeProp","remove","isPropertyAssignment","isShorthandPropertyAssignment","valueText","getInitializer","getText","replaceWithText","add","getFilePath","description"],"mappings":"AAEA,SAASA,IAAI,QAAQ,WAAU;AAI/B;;;;;;;CAOC,GACD,OAAO,MAAMC,8BAAyC;IACpDC,MAAM;IACNC,OAAO,CAAC,EAAEC,OAAO,EAAE;QACjB,MAAMC,eAAe,IAAIC;QAEzB,KAAK,MAAMC,cAAcH,QAAQI,cAAc,GAAI;YACjD,IAAIC,UAAU;YAEdF,WAAWG,iBAAiB,CAAC,CAACC;gBAC5B,IAAI,CAACX,KAAKY,gBAAgB,CAACD,OAAO;oBAChC;gBACF;gBAEA,MAAME,OAAOF,KAAKG,aAAa;gBAC/B,IAAI,CAACd,KAAKe,0BAA0B,CAACF,OAAO;oBAC1C;gBACF;gBAEA,MAAMG,aAAaH,KAAKI,OAAO;gBAC/B,IAAID,eAAe,YAAYA,eAAe,gBAAgB;oBAC5D;gBACF;gBAEA,MAAME,OAAOP,KAAKQ,YAAY;gBAC9B,IAAID,KAAKE,MAAM,KAAK,GAAG;oBACrB;gBACF;gBAEA,kDAAkD;gBAClD,MAAMC,aAAaH,IAAI,CAAC,EAAE;gBAC1B,IAAI,CAAClB,KAAKsB,yBAAyB,CAACD,aAAa;oBAC/C;gBACF;gBAEA,MAAME,UAAUF;gBAChB,MAAMG,4BAA4BD,QAAQE,WAAW,CAAC;gBACtD,IAAI,CAACD,2BAA2B;oBAC9B;gBACF;gBAEA,MAAME,aAAaH,QAAQE,WAAW,CAAC;gBAEvC,IAAIC,YAAY;oBACd,yDAAyD;oBACzDF,0BAA0BG,MAAM;gBAClC,OAAO;oBACL,0DAA0D;oBAC1D,IACE3B,KAAK4B,oBAAoB,CAACJ,8BAC1BxB,KAAK6B,6BAA6B,CAACL,4BACnC;wBACA,IAAIxB,KAAK4B,oBAAoB,CAACJ,4BAA4B;4BACxD,MAAMM,YAAYN,0BAA0BO,cAAc,IAAIC,aAAa;4BAC3ER,0BAA0BS,eAAe,CAAC,CAAC,QAAQ,EAAEH,WAAW;wBAClE,OAAO;4BACL,mEAAmE;4BACnE,MAAM5B,OAAOsB,0BAA0BP,OAAO;4BAC9CO,0BAA0BS,eAAe,CAAC,CAAC,QAAQ,EAAE/B,MAAM;wBAC7D;oBACF,OAAO;wBACL,yDAAyD;wBACzDsB,0BAA0BG,MAAM;oBAClC;gBACF;gBAEAlB,UAAU;YACZ;YAEA,IAAIA,SAAS;gBACXJ,aAAa6B,GAAG,CAAC3B,WAAW4B,WAAW;YACzC;QACF;QAEA,OAAO;YAAE9B,cAAc;mBAAIA;aAAa;QAAC;IAC3C;IACA+B,aACE;AACJ,EAAC"}
1
+ {"version":3,"sources":["../../../src/transforms/remove-publish-specific-locale/index.ts"],"sourcesContent":["import { Node } from 'ts-morph'\n\nimport type { Transform } from '../../types.js'\n\n/**\n * Removes `publishSpecificLocale` from `payload.update()` and\n * `payload.updateGlobal()` call-site options objects.\n *\n * If the object already has a `locale` property, `publishSpecificLocale` is\n * simply removed. If it does not, the property is renamed to `locale` so the\n * same locale value is preserved.\n */\nexport const removePublishSpecificLocale: Transform = {\n name: 'remove-publish-specific-locale',\n apply: ({ project }) => {\n const filesChanged = new Set<string>()\n\n for (const sourceFile of project.getSourceFiles()) {\n let mutated = false\n\n sourceFile.forEachDescendant((node) => {\n if (!Node.isCallExpression(node)) {\n return\n }\n\n const expr = node.getExpression()\n if (!Node.isPropertyAccessExpression(expr)) {\n return\n }\n\n const methodName = expr.getName()\n if (methodName !== 'update' && methodName !== 'updateGlobal') {\n return\n }\n\n const args = node.getArguments()\n if (args.length === 0) {\n return\n }\n\n // The options object is always the first argument\n const optionsArg = args[0]\n if (!Node.isObjectLiteralExpression(optionsArg)) {\n return\n }\n\n const options = optionsArg\n const publishSpecificLocaleProp = options.getProperty('publishSpecificLocale')\n if (!publishSpecificLocaleProp) {\n return\n }\n\n const localeProp = options.getProperty('locale')\n\n if (localeProp) {\n // Already has `locale` — just drop publishSpecificLocale\n publishSpecificLocaleProp.remove()\n } else {\n // Rename publishSpecificLocale → locale to keep the value\n if (\n Node.isPropertyAssignment(publishSpecificLocaleProp) ||\n Node.isShorthandPropertyAssignment(publishSpecificLocaleProp)\n ) {\n if (Node.isPropertyAssignment(publishSpecificLocaleProp)) {\n const valueText = publishSpecificLocaleProp.getInitializer()?.getText() ?? 'undefined'\n publishSpecificLocaleProp.replaceWithText(`locale: ${valueText}`)\n } else {\n // shorthand: publishSpecificLocale → locale: publishSpecificLocale\n const name = publishSpecificLocaleProp.getName()\n publishSpecificLocaleProp.replaceWithText(`locale: ${name}`)\n }\n } else {\n // spread or method — just remove, we can't safely rename\n publishSpecificLocaleProp.remove()\n }\n }\n\n mutated = true\n })\n\n if (mutated) {\n filesChanged.add(sourceFile.getFilePath())\n }\n }\n\n return { filesChanged: [...filesChanged] }\n },\n description:\n 'Remove `publishSpecificLocale` from payload.update() and payload.updateGlobal() call sites. When `locale` is already present the property is simply removed; otherwise it is renamed to `locale` to preserve the value.',\n}\n"],"names":["Node","removePublishSpecificLocale","name","apply","project","filesChanged","Set","sourceFile","getSourceFiles","mutated","forEachDescendant","node","isCallExpression","expr","getExpression","isPropertyAccessExpression","methodName","getName","args","getArguments","length","optionsArg","isObjectLiteralExpression","options","publishSpecificLocaleProp","getProperty","localeProp","remove","isPropertyAssignment","isShorthandPropertyAssignment","valueText","getInitializer","getText","replaceWithText","add","getFilePath","description"],"mappings":"AAAA,SAASA,IAAI,QAAQ,WAAU;AAI/B;;;;;;;CAOC,GACD,OAAO,MAAMC,8BAAyC;IACpDC,MAAM;IACNC,OAAO,CAAC,EAAEC,OAAO,EAAE;QACjB,MAAMC,eAAe,IAAIC;QAEzB,KAAK,MAAMC,cAAcH,QAAQI,cAAc,GAAI;YACjD,IAAIC,UAAU;YAEdF,WAAWG,iBAAiB,CAAC,CAACC;gBAC5B,IAAI,CAACX,KAAKY,gBAAgB,CAACD,OAAO;oBAChC;gBACF;gBAEA,MAAME,OAAOF,KAAKG,aAAa;gBAC/B,IAAI,CAACd,KAAKe,0BAA0B,CAACF,OAAO;oBAC1C;gBACF;gBAEA,MAAMG,aAAaH,KAAKI,OAAO;gBAC/B,IAAID,eAAe,YAAYA,eAAe,gBAAgB;oBAC5D;gBACF;gBAEA,MAAME,OAAOP,KAAKQ,YAAY;gBAC9B,IAAID,KAAKE,MAAM,KAAK,GAAG;oBACrB;gBACF;gBAEA,kDAAkD;gBAClD,MAAMC,aAAaH,IAAI,CAAC,EAAE;gBAC1B,IAAI,CAAClB,KAAKsB,yBAAyB,CAACD,aAAa;oBAC/C;gBACF;gBAEA,MAAME,UAAUF;gBAChB,MAAMG,4BAA4BD,QAAQE,WAAW,CAAC;gBACtD,IAAI,CAACD,2BAA2B;oBAC9B;gBACF;gBAEA,MAAME,aAAaH,QAAQE,WAAW,CAAC;gBAEvC,IAAIC,YAAY;oBACd,yDAAyD;oBACzDF,0BAA0BG,MAAM;gBAClC,OAAO;oBACL,0DAA0D;oBAC1D,IACE3B,KAAK4B,oBAAoB,CAACJ,8BAC1BxB,KAAK6B,6BAA6B,CAACL,4BACnC;wBACA,IAAIxB,KAAK4B,oBAAoB,CAACJ,4BAA4B;4BACxD,MAAMM,YAAYN,0BAA0BO,cAAc,IAAIC,aAAa;4BAC3ER,0BAA0BS,eAAe,CAAC,CAAC,QAAQ,EAAEH,WAAW;wBAClE,OAAO;4BACL,mEAAmE;4BACnE,MAAM5B,OAAOsB,0BAA0BP,OAAO;4BAC9CO,0BAA0BS,eAAe,CAAC,CAAC,QAAQ,EAAE/B,MAAM;wBAC7D;oBACF,OAAO;wBACL,yDAAyD;wBACzDsB,0BAA0BG,MAAM;oBAClC;gBACF;gBAEAlB,UAAU;YACZ;YAEA,IAAIA,SAAS;gBACXJ,aAAa6B,GAAG,CAAC3B,WAAW4B,WAAW;YACzC;QACF;QAEA,OAAO;YAAE9B,cAAc;mBAAIA;aAAa;QAAC;IAC3C;IACA+B,aACE;AACJ,EAAC"}
@@ -0,0 +1,11 @@
1
+ import { s3Storage as createS3Storage } from '@payloadcms/storage-s3';
2
+ const alwaysInsertFields = true;
3
+ export const storage = createS3Storage({
4
+ alwaysInsertFields,
5
+ bucket: 'media',
6
+ collections: {
7
+ media: true
8
+ }
9
+ });
10
+
11
+ //# sourceMappingURL=aliased.input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/remove-storage-always-insert-fields/aliased.input.ts"],"sourcesContent":["import { s3Storage as createS3Storage } from '@payloadcms/storage-s3'\n\nconst alwaysInsertFields = true\n\nexport const storage = createS3Storage({\n alwaysInsertFields,\n bucket: 'media',\n collections: { media: true },\n})\n"],"names":["s3Storage","createS3Storage","alwaysInsertFields","storage","bucket","collections","media"],"mappings":"AAAA,SAASA,aAAaC,eAAe,QAAQ,yBAAwB;AAErE,MAAMC,qBAAqB;AAE3B,OAAO,MAAMC,UAAUF,gBAAgB;IACrCC;IACAE,QAAQ;IACRC,aAAa;QAAEC,OAAO;IAAK;AAC7B,GAAE"}
@@ -0,0 +1,10 @@
1
+ import { s3Storage as createS3Storage } from '@payloadcms/storage-s3';
2
+ const alwaysInsertFields = true;
3
+ export const storage = createS3Storage({
4
+ bucket: 'media',
5
+ collections: {
6
+ media: true
7
+ }
8
+ });
9
+
10
+ //# sourceMappingURL=aliased.output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/remove-storage-always-insert-fields/aliased.output.ts"],"sourcesContent":["import { s3Storage as createS3Storage } from '@payloadcms/storage-s3'\n\nconst alwaysInsertFields = true\n\nexport const storage = createS3Storage({\n bucket: 'media',\n collections: { media: true },\n})\n"],"names":["s3Storage","createS3Storage","alwaysInsertFields","storage","bucket","collections","media"],"mappings":"AAAA,SAASA,aAAaC,eAAe,QAAQ,yBAAwB;AAErE,MAAMC,qBAAqB;AAE3B,OAAO,MAAMC,UAAUF,gBAAgB;IACrCG,QAAQ;IACRC,aAAa;QAAEC,OAAO;IAAK;AAC7B,GAAE"}
@@ -0,0 +1,54 @@
1
+ import { cloudStoragePlugin } from '@payloadcms/plugin-cloud-storage';
2
+ import { azureStorage } from '@payloadcms/storage-azure';
3
+ import { gcsStorage } from '@payloadcms/storage-gcs';
4
+ import { r2Storage } from '@payloadcms/storage-r2';
5
+ import { s3Storage } from '@payloadcms/storage-s3';
6
+ import { vercelBlobStorage } from '@payloadcms/storage-vercel-blob';
7
+ export const storage = [
8
+ cloudStoragePlugin({
9
+ alwaysInsertFields: true,
10
+ collections: {
11
+ media: {
12
+ adapter: null
13
+ }
14
+ }
15
+ }),
16
+ azureStorage({
17
+ alwaysInsertFields: false,
18
+ collections: {
19
+ media: true
20
+ },
21
+ containerName: 'media'
22
+ }),
23
+ gcsStorage({
24
+ alwaysInsertFields: process.env.ALWAYS_INSERT_FIELDS === 'true',
25
+ bucket: 'media',
26
+ collections: {
27
+ media: true
28
+ }
29
+ }),
30
+ r2Storage({
31
+ accountId: 'account',
32
+ alwaysInsertFields: true,
33
+ bucket: 'media',
34
+ collections: {
35
+ media: true
36
+ }
37
+ }),
38
+ s3Storage({
39
+ alwaysInsertFields: true,
40
+ bucket: 'media',
41
+ collections: {
42
+ media: true
43
+ }
44
+ }),
45
+ vercelBlobStorage({
46
+ alwaysInsertFields: true,
47
+ collections: {
48
+ media: true
49
+ },
50
+ token: 'token'
51
+ })
52
+ ];
53
+
54
+ //# sourceMappingURL=basic.input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/remove-storage-always-insert-fields/basic.input.ts"],"sourcesContent":["import { cloudStoragePlugin } from '@payloadcms/plugin-cloud-storage'\nimport { azureStorage } from '@payloadcms/storage-azure'\nimport { gcsStorage } from '@payloadcms/storage-gcs'\nimport { r2Storage } from '@payloadcms/storage-r2'\nimport { s3Storage } from '@payloadcms/storage-s3'\nimport { vercelBlobStorage } from '@payloadcms/storage-vercel-blob'\n\nexport const storage = [\n cloudStoragePlugin({\n alwaysInsertFields: true,\n collections: { media: { adapter: null } },\n }),\n azureStorage({\n alwaysInsertFields: false,\n collections: { media: true },\n containerName: 'media',\n }),\n gcsStorage({\n alwaysInsertFields: process.env.ALWAYS_INSERT_FIELDS === 'true',\n bucket: 'media',\n collections: { media: true },\n }),\n r2Storage({\n accountId: 'account',\n alwaysInsertFields: true,\n bucket: 'media',\n collections: { media: true },\n }),\n s3Storage({\n alwaysInsertFields: true,\n bucket: 'media',\n collections: { media: true },\n }),\n vercelBlobStorage({\n alwaysInsertFields: true,\n collections: { media: true },\n token: 'token',\n }),\n]\n"],"names":["cloudStoragePlugin","azureStorage","gcsStorage","r2Storage","s3Storage","vercelBlobStorage","storage","alwaysInsertFields","collections","media","adapter","containerName","process","env","ALWAYS_INSERT_FIELDS","bucket","accountId","token"],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,mCAAkC;AACrE,SAASC,YAAY,QAAQ,4BAA2B;AACxD,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,SAAS,QAAQ,yBAAwB;AAClD,SAASC,SAAS,QAAQ,yBAAwB;AAClD,SAASC,iBAAiB,QAAQ,kCAAiC;AAEnE,OAAO,MAAMC,UAAU;IACrBN,mBAAmB;QACjBO,oBAAoB;QACpBC,aAAa;YAAEC,OAAO;gBAAEC,SAAS;YAAK;QAAE;IAC1C;IACAT,aAAa;QACXM,oBAAoB;QACpBC,aAAa;YAAEC,OAAO;QAAK;QAC3BE,eAAe;IACjB;IACAT,WAAW;QACTK,oBAAoBK,QAAQC,GAAG,CAACC,oBAAoB,KAAK;QACzDC,QAAQ;QACRP,aAAa;YAAEC,OAAO;QAAK;IAC7B;IACAN,UAAU;QACRa,WAAW;QACXT,oBAAoB;QACpBQ,QAAQ;QACRP,aAAa;YAAEC,OAAO;QAAK;IAC7B;IACAL,UAAU;QACRG,oBAAoB;QACpBQ,QAAQ;QACRP,aAAa;YAAEC,OAAO;QAAK;IAC7B;IACAJ,kBAAkB;QAChBE,oBAAoB;QACpBC,aAAa;YAAEC,OAAO;QAAK;QAC3BQ,OAAO;IACT;CACD,CAAA"}
@@ -0,0 +1,48 @@
1
+ import { cloudStoragePlugin } from '@payloadcms/plugin-cloud-storage';
2
+ import { azureStorage } from '@payloadcms/storage-azure';
3
+ import { gcsStorage } from '@payloadcms/storage-gcs';
4
+ import { r2Storage } from '@payloadcms/storage-r2';
5
+ import { s3Storage } from '@payloadcms/storage-s3';
6
+ import { vercelBlobStorage } from '@payloadcms/storage-vercel-blob';
7
+ export const storage = [
8
+ cloudStoragePlugin({
9
+ collections: {
10
+ media: {
11
+ adapter: null
12
+ }
13
+ }
14
+ }),
15
+ azureStorage({
16
+ collections: {
17
+ media: true
18
+ },
19
+ containerName: 'media'
20
+ }),
21
+ gcsStorage({
22
+ bucket: 'media',
23
+ collections: {
24
+ media: true
25
+ }
26
+ }),
27
+ r2Storage({
28
+ accountId: 'account',
29
+ bucket: 'media',
30
+ collections: {
31
+ media: true
32
+ }
33
+ }),
34
+ s3Storage({
35
+ bucket: 'media',
36
+ collections: {
37
+ media: true
38
+ }
39
+ }),
40
+ vercelBlobStorage({
41
+ collections: {
42
+ media: true
43
+ },
44
+ token: 'token'
45
+ })
46
+ ];
47
+
48
+ //# sourceMappingURL=basic.output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/remove-storage-always-insert-fields/basic.output.ts"],"sourcesContent":["import { cloudStoragePlugin } from '@payloadcms/plugin-cloud-storage'\nimport { azureStorage } from '@payloadcms/storage-azure'\nimport { gcsStorage } from '@payloadcms/storage-gcs'\nimport { r2Storage } from '@payloadcms/storage-r2'\nimport { s3Storage } from '@payloadcms/storage-s3'\nimport { vercelBlobStorage } from '@payloadcms/storage-vercel-blob'\n\nexport const storage = [\n cloudStoragePlugin({\n collections: { media: { adapter: null } },\n }),\n azureStorage({\n collections: { media: true },\n containerName: 'media',\n }),\n gcsStorage({\n bucket: 'media',\n collections: { media: true },\n }),\n r2Storage({\n accountId: 'account',\n bucket: 'media',\n collections: { media: true },\n }),\n s3Storage({\n bucket: 'media',\n collections: { media: true },\n }),\n vercelBlobStorage({\n collections: { media: true },\n token: 'token',\n }),\n]\n"],"names":["cloudStoragePlugin","azureStorage","gcsStorage","r2Storage","s3Storage","vercelBlobStorage","storage","collections","media","adapter","containerName","bucket","accountId","token"],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,mCAAkC;AACrE,SAASC,YAAY,QAAQ,4BAA2B;AACxD,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,SAAS,QAAQ,yBAAwB;AAClD,SAASC,SAAS,QAAQ,yBAAwB;AAClD,SAASC,iBAAiB,QAAQ,kCAAiC;AAEnE,OAAO,MAAMC,UAAU;IACrBN,mBAAmB;QACjBO,aAAa;YAAEC,OAAO;gBAAEC,SAAS;YAAK;QAAE;IAC1C;IACAR,aAAa;QACXM,aAAa;YAAEC,OAAO;QAAK;QAC3BE,eAAe;IACjB;IACAR,WAAW;QACTS,QAAQ;QACRJ,aAAa;YAAEC,OAAO;QAAK;IAC7B;IACAL,UAAU;QACRS,WAAW;QACXD,QAAQ;QACRJ,aAAa;YAAEC,OAAO;QAAK;IAC7B;IACAJ,UAAU;QACRO,QAAQ;QACRJ,aAAa;YAAEC,OAAO;QAAK;IAC7B;IACAH,kBAAkB;QAChBE,aAAa;YAAEC,OAAO;QAAK;QAC3BK,OAAO;IACT;CACD,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { Transform } from '../../types.js';
2
+ export declare const removeStorageAlwaysInsertFields: Transform;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transforms/remove-storage-always-insert-fields/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAW/C,eAAO,MAAM,+BAA+B,EAAE,SAgE7C,CAAA"}
@@ -0,0 +1,75 @@
1
+ import { Node, SyntaxKind } from 'ts-morph';
2
+ const storageFactoryByPackage = new Map([
3
+ [
4
+ '@payloadcms/plugin-cloud-storage',
5
+ 'cloudStoragePlugin'
6
+ ],
7
+ [
8
+ '@payloadcms/storage-azure',
9
+ 'azureStorage'
10
+ ],
11
+ [
12
+ '@payloadcms/storage-gcs',
13
+ 'gcsStorage'
14
+ ],
15
+ [
16
+ '@payloadcms/storage-r2',
17
+ 'r2Storage'
18
+ ],
19
+ [
20
+ '@payloadcms/storage-s3',
21
+ 's3Storage'
22
+ ],
23
+ [
24
+ '@payloadcms/storage-vercel-blob',
25
+ 'vercelBlobStorage'
26
+ ]
27
+ ]);
28
+ export const removeStorageAlwaysInsertFields = {
29
+ name: 'remove-storage-always-insert-fields',
30
+ apply: ({ project })=>{
31
+ const filesChanged = new Set();
32
+ for (const sourceFile of project.getSourceFiles()){
33
+ for (const importDeclaration of sourceFile.getImportDeclarations()){
34
+ const storageFactoryName = storageFactoryByPackage.get(importDeclaration.getModuleSpecifierValue());
35
+ if (!storageFactoryName) {
36
+ continue;
37
+ }
38
+ const storageFactoryImport = importDeclaration.getNamedImports().find((namedImport)=>namedImport.getName() === storageFactoryName);
39
+ if (!storageFactoryImport) {
40
+ continue;
41
+ }
42
+ const localStorageFactoryName = storageFactoryImport.getAliasNode() ?? storageFactoryImport.getNameNode();
43
+ // Always an Identifier in valid code: a string-literal import name requires an alias.
44
+ if (!Node.isIdentifier(localStorageFactoryName)) {
45
+ continue;
46
+ }
47
+ for (const reference of localStorageFactoryName.findReferencesAsNodes()){
48
+ const call = reference.getParentIfKind(SyntaxKind.CallExpression);
49
+ if (!call || call.getExpression() !== reference) {
50
+ continue;
51
+ }
52
+ const [options] = call.getArguments();
53
+ if (!options || !Node.isObjectLiteralExpression(options)) {
54
+ continue;
55
+ }
56
+ if (options.getProperties().some((property)=>Node.isSpreadAssignment(property))) {
57
+ continue;
58
+ }
59
+ const alwaysInsertFieldsProperty = options.getProperty('alwaysInsertFields');
60
+ if (!alwaysInsertFieldsProperty) {
61
+ continue;
62
+ }
63
+ alwaysInsertFieldsProperty.remove();
64
+ filesChanged.add(sourceFile.getFilePath());
65
+ }
66
+ }
67
+ }
68
+ return {
69
+ filesChanged: Array.from(filesChanged)
70
+ };
71
+ },
72
+ description: 'Remove the obsolete `alwaysInsertFields` option from cloud storage plugin and storage adapter configs. The prefix field is now always inserted.'
73
+ };
74
+
75
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/remove-storage-always-insert-fields/index.ts"],"sourcesContent":["import { Node, SyntaxKind } from 'ts-morph'\n\nimport type { Transform } from '../../types.js'\n\nconst storageFactoryByPackage = new Map([\n ['@payloadcms/plugin-cloud-storage', 'cloudStoragePlugin'],\n ['@payloadcms/storage-azure', 'azureStorage'],\n ['@payloadcms/storage-gcs', 'gcsStorage'],\n ['@payloadcms/storage-r2', 'r2Storage'],\n ['@payloadcms/storage-s3', 's3Storage'],\n ['@payloadcms/storage-vercel-blob', 'vercelBlobStorage'],\n])\n\nexport const removeStorageAlwaysInsertFields: Transform = {\n name: 'remove-storage-always-insert-fields',\n apply: ({ project }) => {\n const filesChanged = new Set<string>()\n\n for (const sourceFile of project.getSourceFiles()) {\n for (const importDeclaration of sourceFile.getImportDeclarations()) {\n const storageFactoryName = storageFactoryByPackage.get(\n importDeclaration.getModuleSpecifierValue(),\n )\n\n if (!storageFactoryName) {\n continue\n }\n\n const storageFactoryImport = importDeclaration\n .getNamedImports()\n .find((namedImport) => namedImport.getName() === storageFactoryName)\n\n if (!storageFactoryImport) {\n continue\n }\n\n const localStorageFactoryName =\n storageFactoryImport.getAliasNode() ?? storageFactoryImport.getNameNode()\n\n // Always an Identifier in valid code: a string-literal import name requires an alias.\n if (!Node.isIdentifier(localStorageFactoryName)) {\n continue\n }\n\n for (const reference of localStorageFactoryName.findReferencesAsNodes()) {\n const call = reference.getParentIfKind(SyntaxKind.CallExpression)\n\n if (!call || call.getExpression() !== reference) {\n continue\n }\n\n const [options] = call.getArguments()\n\n if (!options || !Node.isObjectLiteralExpression(options)) {\n continue\n }\n\n if (options.getProperties().some((property) => Node.isSpreadAssignment(property))) {\n continue\n }\n\n const alwaysInsertFieldsProperty = options.getProperty('alwaysInsertFields')\n\n if (!alwaysInsertFieldsProperty) {\n continue\n }\n\n alwaysInsertFieldsProperty.remove()\n filesChanged.add(sourceFile.getFilePath())\n }\n }\n }\n\n return { filesChanged: Array.from(filesChanged) }\n },\n description:\n 'Remove the obsolete `alwaysInsertFields` option from cloud storage plugin and storage adapter configs. The prefix field is now always inserted.',\n}\n"],"names":["Node","SyntaxKind","storageFactoryByPackage","Map","removeStorageAlwaysInsertFields","name","apply","project","filesChanged","Set","sourceFile","getSourceFiles","importDeclaration","getImportDeclarations","storageFactoryName","get","getModuleSpecifierValue","storageFactoryImport","getNamedImports","find","namedImport","getName","localStorageFactoryName","getAliasNode","getNameNode","isIdentifier","reference","findReferencesAsNodes","call","getParentIfKind","CallExpression","getExpression","options","getArguments","isObjectLiteralExpression","getProperties","some","property","isSpreadAssignment","alwaysInsertFieldsProperty","getProperty","remove","add","getFilePath","Array","from","description"],"mappings":"AAAA,SAASA,IAAI,EAAEC,UAAU,QAAQ,WAAU;AAI3C,MAAMC,0BAA0B,IAAIC,IAAI;IACtC;QAAC;QAAoC;KAAqB;IAC1D;QAAC;QAA6B;KAAe;IAC7C;QAAC;QAA2B;KAAa;IACzC;QAAC;QAA0B;KAAY;IACvC;QAAC;QAA0B;KAAY;IACvC;QAAC;QAAmC;KAAoB;CACzD;AAED,OAAO,MAAMC,kCAA6C;IACxDC,MAAM;IACNC,OAAO,CAAC,EAAEC,OAAO,EAAE;QACjB,MAAMC,eAAe,IAAIC;QAEzB,KAAK,MAAMC,cAAcH,QAAQI,cAAc,GAAI;YACjD,KAAK,MAAMC,qBAAqBF,WAAWG,qBAAqB,GAAI;gBAClE,MAAMC,qBAAqBZ,wBAAwBa,GAAG,CACpDH,kBAAkBI,uBAAuB;gBAG3C,IAAI,CAACF,oBAAoB;oBACvB;gBACF;gBAEA,MAAMG,uBAAuBL,kBAC1BM,eAAe,GACfC,IAAI,CAAC,CAACC,cAAgBA,YAAYC,OAAO,OAAOP;gBAEnD,IAAI,CAACG,sBAAsB;oBACzB;gBACF;gBAEA,MAAMK,0BACJL,qBAAqBM,YAAY,MAAMN,qBAAqBO,WAAW;gBAEzE,sFAAsF;gBACtF,IAAI,CAACxB,KAAKyB,YAAY,CAACH,0BAA0B;oBAC/C;gBACF;gBAEA,KAAK,MAAMI,aAAaJ,wBAAwBK,qBAAqB,GAAI;oBACvE,MAAMC,OAAOF,UAAUG,eAAe,CAAC5B,WAAW6B,cAAc;oBAEhE,IAAI,CAACF,QAAQA,KAAKG,aAAa,OAAOL,WAAW;wBAC/C;oBACF;oBAEA,MAAM,CAACM,QAAQ,GAAGJ,KAAKK,YAAY;oBAEnC,IAAI,CAACD,WAAW,CAAChC,KAAKkC,yBAAyB,CAACF,UAAU;wBACxD;oBACF;oBAEA,IAAIA,QAAQG,aAAa,GAAGC,IAAI,CAAC,CAACC,WAAarC,KAAKsC,kBAAkB,CAACD,YAAY;wBACjF;oBACF;oBAEA,MAAME,6BAA6BP,QAAQQ,WAAW,CAAC;oBAEvD,IAAI,CAACD,4BAA4B;wBAC/B;oBACF;oBAEAA,2BAA2BE,MAAM;oBACjCjC,aAAakC,GAAG,CAAChC,WAAWiC,WAAW;gBACzC;YACF;QACF;QAEA,OAAO;YAAEnC,cAAcoC,MAAMC,IAAI,CAACrC;QAAc;IAClD;IACAsC,aACE;AACJ,EAAC"}
@@ -0,0 +1,27 @@
1
+ import { s3Storage as payloadS3Storage } from '@payloadcms/storage-s3';
2
+ const options = {
3
+ alwaysInsertFields: true,
4
+ bucket: 'media',
5
+ collections: {
6
+ media: true
7
+ }
8
+ };
9
+ const s3Storage = (value)=>value;
10
+ export const indirectStorage = payloadS3Storage(options);
11
+ export const unrelatedStorage = s3Storage({
12
+ alwaysInsertFields: true,
13
+ bucket: 'media',
14
+ collections: {
15
+ media: true
16
+ }
17
+ });
18
+ export const spreadBeforeProperty = payloadS3Storage({
19
+ ...options,
20
+ alwaysInsertFields: false
21
+ });
22
+ export const spreadAfterProperty = payloadS3Storage({
23
+ alwaysInsertFields: false,
24
+ ...options
25
+ });
26
+
27
+ //# sourceMappingURL=no-match.input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/remove-storage-always-insert-fields/no-match.input.ts"],"sourcesContent":["import { s3Storage as payloadS3Storage } from '@payloadcms/storage-s3'\n\nconst options = {\n alwaysInsertFields: true,\n bucket: 'media',\n collections: { media: true },\n}\n\nconst s3Storage = (value: typeof options) => value\n\nexport const indirectStorage = payloadS3Storage(options)\nexport const unrelatedStorage = s3Storage({\n alwaysInsertFields: true,\n bucket: 'media',\n collections: { media: true },\n})\nexport const spreadBeforeProperty = payloadS3Storage({\n ...options,\n alwaysInsertFields: false,\n})\nexport const spreadAfterProperty = payloadS3Storage({\n alwaysInsertFields: false,\n ...options,\n})\n"],"names":["s3Storage","payloadS3Storage","options","alwaysInsertFields","bucket","collections","media","value","indirectStorage","unrelatedStorage","spreadBeforeProperty","spreadAfterProperty"],"mappings":"AAAA,SAASA,aAAaC,gBAAgB,QAAQ,yBAAwB;AAEtE,MAAMC,UAAU;IACdC,oBAAoB;IACpBC,QAAQ;IACRC,aAAa;QAAEC,OAAO;IAAK;AAC7B;AAEA,MAAMN,YAAY,CAACO,QAA0BA;AAE7C,OAAO,MAAMC,kBAAkBP,iBAAiBC,SAAQ;AACxD,OAAO,MAAMO,mBAAmBT,UAAU;IACxCG,oBAAoB;IACpBC,QAAQ;IACRC,aAAa;QAAEC,OAAO;IAAK;AAC7B,GAAE;AACF,OAAO,MAAMI,uBAAuBT,iBAAiB;IACnD,GAAGC,OAAO;IACVC,oBAAoB;AACtB,GAAE;AACF,OAAO,MAAMQ,sBAAsBV,iBAAiB;IAClDE,oBAAoB;IACpB,GAAGD,OAAO;AACZ,GAAE"}
@@ -0,0 +1,27 @@
1
+ import { s3Storage as payloadS3Storage } from '@payloadcms/storage-s3';
2
+ const options = {
3
+ alwaysInsertFields: true,
4
+ bucket: 'media',
5
+ collections: {
6
+ media: true
7
+ }
8
+ };
9
+ const s3Storage = (value)=>value;
10
+ export const indirectStorage = payloadS3Storage(options);
11
+ export const unrelatedStorage = s3Storage({
12
+ alwaysInsertFields: true,
13
+ bucket: 'media',
14
+ collections: {
15
+ media: true
16
+ }
17
+ });
18
+ export const spreadBeforeProperty = payloadS3Storage({
19
+ ...options,
20
+ alwaysInsertFields: false
21
+ });
22
+ export const spreadAfterProperty = payloadS3Storage({
23
+ alwaysInsertFields: false,
24
+ ...options
25
+ });
26
+
27
+ //# sourceMappingURL=no-match.output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/remove-storage-always-insert-fields/no-match.output.ts"],"sourcesContent":["import { s3Storage as payloadS3Storage } from '@payloadcms/storage-s3'\n\nconst options = {\n alwaysInsertFields: true,\n bucket: 'media',\n collections: { media: true },\n}\n\nconst s3Storage = (value: typeof options) => value\n\nexport const indirectStorage = payloadS3Storage(options)\nexport const unrelatedStorage = s3Storage({\n alwaysInsertFields: true,\n bucket: 'media',\n collections: { media: true },\n})\nexport const spreadBeforeProperty = payloadS3Storage({\n ...options,\n alwaysInsertFields: false,\n})\nexport const spreadAfterProperty = payloadS3Storage({\n alwaysInsertFields: false,\n ...options,\n})\n"],"names":["s3Storage","payloadS3Storage","options","alwaysInsertFields","bucket","collections","media","value","indirectStorage","unrelatedStorage","spreadBeforeProperty","spreadAfterProperty"],"mappings":"AAAA,SAASA,aAAaC,gBAAgB,QAAQ,yBAAwB;AAEtE,MAAMC,UAAU;IACdC,oBAAoB;IACpBC,QAAQ;IACRC,aAAa;QAAEC,OAAO;IAAK;AAC7B;AAEA,MAAMN,YAAY,CAACO,QAA0BA;AAE7C,OAAO,MAAMC,kBAAkBP,iBAAiBC,SAAQ;AACxD,OAAO,MAAMO,mBAAmBT,UAAU;IACxCG,oBAAoB;IACpBC,QAAQ;IACRC,aAAa;QAAEC,OAAO;IAAK;AAC7B,GAAE;AACF,OAAO,MAAMI,uBAAuBT,iBAAiB;IACnD,GAAGC,OAAO;IACVC,oBAAoB;AACtB,GAAE;AACF,OAAO,MAAMQ,sBAAsBV,iBAAiB;IAClDE,oBAAoB;IACpB,GAAGD,OAAO;AACZ,GAAE"}
@@ -71,13 +71,13 @@ const isVersionedConfigTypeName = (typeText)=>{
71
71
  return undefined;
72
72
  }
73
73
  // Form 2: { ... } satisfies CollectionConfig
74
- if (node.getKind() === SyntaxKind.SatisfiesExpression) {
75
- const typeNode = node.getTypeNode?.();
74
+ if (Node.isSatisfiesExpression(node)) {
75
+ const typeNode = node.getTypeNode();
76
76
  if (!typeNode || !isVersionedConfigTypeName(typeNode.getText().trim())) {
77
77
  return undefined;
78
78
  }
79
- const expr = node.getExpression?.();
80
- if (expr && Node.isObjectLiteralExpression(expr)) {
79
+ const expr = node.getExpression();
80
+ if (Node.isObjectLiteralExpression(expr)) {
81
81
  return expr;
82
82
  }
83
83
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/transforms/remove-versions-true/index.ts"],"sourcesContent":["import { Node, SyntaxKind } from 'ts-morph'\n\nimport type { Transform } from '../../types.js'\n\nconst VERSIONED_CONFIG_TYPE_NAMES = new Set([\n 'CollectionConfig',\n 'GlobalConfig',\n 'SanitizedCollectionConfig',\n 'SanitizedGlobalConfig',\n])\n\nconst isVersionedConfigTypeName = (typeText: string): boolean => {\n const baseName = typeText.replace(/<.*>$/, '').trim()\n return VERSIONED_CONFIG_TYPE_NAMES.has(baseName)\n}\n\n/**\n * Removes `versions: true` (bare boolean true — not an object) from\n * CollectionConfig and GlobalConfig objects. Now that versions defaults to\n * true, the explicit property is redundant.\n *\n * Only removes the property when the initializer is exactly the `true` keyword.\n * Object-form versions configs (e.g. `versions: { drafts: true }`) are left\n * untouched.\n */\nexport const removeVersionsTrue: Transform = {\n name: 'remove-versions-true',\n apply: ({ project }) => {\n const filesChanged = new Set<string>()\n\n for (const sourceFile of project.getSourceFiles()) {\n let mutated = false\n\n sourceFile.forEachDescendant((node) => {\n const objectLiteral = resolveVersionedConfigObject(node)\n if (!objectLiteral) {\n return\n }\n\n const versionsProp = objectLiteral.getProperty('versions')\n if (!versionsProp || !Node.isPropertyAssignment(versionsProp)) {\n return\n }\n\n const initializer = versionsProp.getInitializer()\n if (!initializer || initializer.getKind() !== SyntaxKind.TrueKeyword) {\n return\n }\n\n versionsProp.remove()\n mutated = true\n })\n\n if (mutated) {\n filesChanged.add(sourceFile.getFilePath())\n }\n }\n\n return { filesChanged: [...filesChanged] }\n },\n description:\n 'Remove redundant `versions: true` from CollectionConfig and GlobalConfig objects. Versions are now enabled by default so the explicit boolean true is no longer needed.',\n}\n\n/**\n * Given a node, returns its ObjectLiteralExpression if the node represents a\n * CollectionConfig- or GlobalConfig-typed value in one of the three recognised forms.\n */\nconst resolveVersionedConfigObject = (node: Node) => {\n // Form 1: const X: CollectionConfig = { ... }\n if (Node.isVariableDeclaration(node)) {\n const typeNode = node.getTypeNode()\n if (!typeNode) {\n return undefined\n }\n if (!isVersionedConfigTypeName(typeNode.getText().trim())) {\n return undefined\n }\n const initializer = node.getInitializer()\n if (initializer && Node.isObjectLiteralExpression(initializer)) {\n return initializer\n }\n return undefined\n }\n\n // Form 2: { ... } satisfies CollectionConfig\n if (node.getKind() === SyntaxKind.SatisfiesExpression) {\n const typeNode = (node as any).getTypeNode?.()\n if (!typeNode || !isVersionedConfigTypeName(typeNode.getText().trim())) {\n return undefined\n }\n const expr = (node as any).getExpression?.()\n if (expr && Node.isObjectLiteralExpression(expr)) {\n return expr\n }\n return undefined\n }\n\n // Form 3: { ... } as CollectionConfig\n if (Node.isAsExpression(node)) {\n const typeNode = node.getTypeNode()\n if (!typeNode || !isVersionedConfigTypeName(typeNode.getText().trim())) {\n return undefined\n }\n const expr = node.getExpression()\n if (Node.isObjectLiteralExpression(expr)) {\n return expr\n }\n return undefined\n }\n\n return undefined\n}\n"],"names":["Node","SyntaxKind","VERSIONED_CONFIG_TYPE_NAMES","Set","isVersionedConfigTypeName","typeText","baseName","replace","trim","has","removeVersionsTrue","name","apply","project","filesChanged","sourceFile","getSourceFiles","mutated","forEachDescendant","node","objectLiteral","resolveVersionedConfigObject","versionsProp","getProperty","isPropertyAssignment","initializer","getInitializer","getKind","TrueKeyword","remove","add","getFilePath","description","isVariableDeclaration","typeNode","getTypeNode","undefined","getText","isObjectLiteralExpression","SatisfiesExpression","expr","getExpression","isAsExpression"],"mappings":"AAAA,SAASA,IAAI,EAAEC,UAAU,QAAQ,WAAU;AAI3C,MAAMC,8BAA8B,IAAIC,IAAI;IAC1C;IACA;IACA;IACA;CACD;AAED,MAAMC,4BAA4B,CAACC;IACjC,MAAMC,WAAWD,SAASE,OAAO,CAAC,SAAS,IAAIC,IAAI;IACnD,OAAON,4BAA4BO,GAAG,CAACH;AACzC;AAEA;;;;;;;;CAQC,GACD,OAAO,MAAMI,qBAAgC;IAC3CC,MAAM;IACNC,OAAO,CAAC,EAAEC,OAAO,EAAE;QACjB,MAAMC,eAAe,IAAIX;QAEzB,KAAK,MAAMY,cAAcF,QAAQG,cAAc,GAAI;YACjD,IAAIC,UAAU;YAEdF,WAAWG,iBAAiB,CAAC,CAACC;gBAC5B,MAAMC,gBAAgBC,6BAA6BF;gBACnD,IAAI,CAACC,eAAe;oBAClB;gBACF;gBAEA,MAAME,eAAeF,cAAcG,WAAW,CAAC;gBAC/C,IAAI,CAACD,gBAAgB,CAACtB,KAAKwB,oBAAoB,CAACF,eAAe;oBAC7D;gBACF;gBAEA,MAAMG,cAAcH,aAAaI,cAAc;gBAC/C,IAAI,CAACD,eAAeA,YAAYE,OAAO,OAAO1B,WAAW2B,WAAW,EAAE;oBACpE;gBACF;gBAEAN,aAAaO,MAAM;gBACnBZ,UAAU;YACZ;YAEA,IAAIA,SAAS;gBACXH,aAAagB,GAAG,CAACf,WAAWgB,WAAW;YACzC;QACF;QAEA,OAAO;YAAEjB,cAAc;mBAAIA;aAAa;QAAC;IAC3C;IACAkB,aACE;AACJ,EAAC;AAED;;;CAGC,GACD,MAAMX,+BAA+B,CAACF;IACpC,8CAA8C;IAC9C,IAAInB,KAAKiC,qBAAqB,CAACd,OAAO;QACpC,MAAMe,WAAWf,KAAKgB,WAAW;QACjC,IAAI,CAACD,UAAU;YACb,OAAOE;QACT;QACA,IAAI,CAAChC,0BAA0B8B,SAASG,OAAO,GAAG7B,IAAI,KAAK;YACzD,OAAO4B;QACT;QACA,MAAMX,cAAcN,KAAKO,cAAc;QACvC,IAAID,eAAezB,KAAKsC,yBAAyB,CAACb,cAAc;YAC9D,OAAOA;QACT;QACA,OAAOW;IACT;IAEA,6CAA6C;IAC7C,IAAIjB,KAAKQ,OAAO,OAAO1B,WAAWsC,mBAAmB,EAAE;QACrD,MAAML,WAAW,AAACf,KAAagB,WAAW;QAC1C,IAAI,CAACD,YAAY,CAAC9B,0BAA0B8B,SAASG,OAAO,GAAG7B,IAAI,KAAK;YACtE,OAAO4B;QACT;QACA,MAAMI,OAAO,AAACrB,KAAasB,aAAa;QACxC,IAAID,QAAQxC,KAAKsC,yBAAyB,CAACE,OAAO;YAChD,OAAOA;QACT;QACA,OAAOJ;IACT;IAEA,sCAAsC;IACtC,IAAIpC,KAAK0C,cAAc,CAACvB,OAAO;QAC7B,MAAMe,WAAWf,KAAKgB,WAAW;QACjC,IAAI,CAACD,YAAY,CAAC9B,0BAA0B8B,SAASG,OAAO,GAAG7B,IAAI,KAAK;YACtE,OAAO4B;QACT;QACA,MAAMI,OAAOrB,KAAKsB,aAAa;QAC/B,IAAIzC,KAAKsC,yBAAyB,CAACE,OAAO;YACxC,OAAOA;QACT;QACA,OAAOJ;IACT;IAEA,OAAOA;AACT"}
1
+ {"version":3,"sources":["../../../src/transforms/remove-versions-true/index.ts"],"sourcesContent":["import { Node, SyntaxKind } from 'ts-morph'\n\nimport type { Transform } from '../../types.js'\n\nconst VERSIONED_CONFIG_TYPE_NAMES = new Set([\n 'CollectionConfig',\n 'GlobalConfig',\n 'SanitizedCollectionConfig',\n 'SanitizedGlobalConfig',\n])\n\nconst isVersionedConfigTypeName = (typeText: string): boolean => {\n const baseName = typeText.replace(/<.*>$/, '').trim()\n return VERSIONED_CONFIG_TYPE_NAMES.has(baseName)\n}\n\n/**\n * Removes `versions: true` (bare boolean true — not an object) from\n * CollectionConfig and GlobalConfig objects. Now that versions defaults to\n * true, the explicit property is redundant.\n *\n * Only removes the property when the initializer is exactly the `true` keyword.\n * Object-form versions configs (e.g. `versions: { drafts: true }`) are left\n * untouched.\n */\nexport const removeVersionsTrue: Transform = {\n name: 'remove-versions-true',\n apply: ({ project }) => {\n const filesChanged = new Set<string>()\n\n for (const sourceFile of project.getSourceFiles()) {\n let mutated = false\n\n sourceFile.forEachDescendant((node) => {\n const objectLiteral = resolveVersionedConfigObject(node)\n if (!objectLiteral) {\n return\n }\n\n const versionsProp = objectLiteral.getProperty('versions')\n if (!versionsProp || !Node.isPropertyAssignment(versionsProp)) {\n return\n }\n\n const initializer = versionsProp.getInitializer()\n if (!initializer || initializer.getKind() !== SyntaxKind.TrueKeyword) {\n return\n }\n\n versionsProp.remove()\n mutated = true\n })\n\n if (mutated) {\n filesChanged.add(sourceFile.getFilePath())\n }\n }\n\n return { filesChanged: [...filesChanged] }\n },\n description:\n 'Remove redundant `versions: true` from CollectionConfig and GlobalConfig objects. Versions are now enabled by default so the explicit boolean true is no longer needed.',\n}\n\n/**\n * Given a node, returns its ObjectLiteralExpression if the node represents a\n * CollectionConfig- or GlobalConfig-typed value in one of the three recognised forms.\n */\nconst resolveVersionedConfigObject = (node: Node) => {\n // Form 1: const X: CollectionConfig = { ... }\n if (Node.isVariableDeclaration(node)) {\n const typeNode = node.getTypeNode()\n if (!typeNode) {\n return undefined\n }\n if (!isVersionedConfigTypeName(typeNode.getText().trim())) {\n return undefined\n }\n const initializer = node.getInitializer()\n if (initializer && Node.isObjectLiteralExpression(initializer)) {\n return initializer\n }\n return undefined\n }\n\n // Form 2: { ... } satisfies CollectionConfig\n if (Node.isSatisfiesExpression(node)) {\n const typeNode = node.getTypeNode()\n if (!typeNode || !isVersionedConfigTypeName(typeNode.getText().trim())) {\n return undefined\n }\n const expr = node.getExpression()\n if (Node.isObjectLiteralExpression(expr)) {\n return expr\n }\n return undefined\n }\n\n // Form 3: { ... } as CollectionConfig\n if (Node.isAsExpression(node)) {\n const typeNode = node.getTypeNode()\n if (!typeNode || !isVersionedConfigTypeName(typeNode.getText().trim())) {\n return undefined\n }\n const expr = node.getExpression()\n if (Node.isObjectLiteralExpression(expr)) {\n return expr\n }\n return undefined\n }\n\n return undefined\n}\n"],"names":["Node","SyntaxKind","VERSIONED_CONFIG_TYPE_NAMES","Set","isVersionedConfigTypeName","typeText","baseName","replace","trim","has","removeVersionsTrue","name","apply","project","filesChanged","sourceFile","getSourceFiles","mutated","forEachDescendant","node","objectLiteral","resolveVersionedConfigObject","versionsProp","getProperty","isPropertyAssignment","initializer","getInitializer","getKind","TrueKeyword","remove","add","getFilePath","description","isVariableDeclaration","typeNode","getTypeNode","undefined","getText","isObjectLiteralExpression","isSatisfiesExpression","expr","getExpression","isAsExpression"],"mappings":"AAAA,SAASA,IAAI,EAAEC,UAAU,QAAQ,WAAU;AAI3C,MAAMC,8BAA8B,IAAIC,IAAI;IAC1C;IACA;IACA;IACA;CACD;AAED,MAAMC,4BAA4B,CAACC;IACjC,MAAMC,WAAWD,SAASE,OAAO,CAAC,SAAS,IAAIC,IAAI;IACnD,OAAON,4BAA4BO,GAAG,CAACH;AACzC;AAEA;;;;;;;;CAQC,GACD,OAAO,MAAMI,qBAAgC;IAC3CC,MAAM;IACNC,OAAO,CAAC,EAAEC,OAAO,EAAE;QACjB,MAAMC,eAAe,IAAIX;QAEzB,KAAK,MAAMY,cAAcF,QAAQG,cAAc,GAAI;YACjD,IAAIC,UAAU;YAEdF,WAAWG,iBAAiB,CAAC,CAACC;gBAC5B,MAAMC,gBAAgBC,6BAA6BF;gBACnD,IAAI,CAACC,eAAe;oBAClB;gBACF;gBAEA,MAAME,eAAeF,cAAcG,WAAW,CAAC;gBAC/C,IAAI,CAACD,gBAAgB,CAACtB,KAAKwB,oBAAoB,CAACF,eAAe;oBAC7D;gBACF;gBAEA,MAAMG,cAAcH,aAAaI,cAAc;gBAC/C,IAAI,CAACD,eAAeA,YAAYE,OAAO,OAAO1B,WAAW2B,WAAW,EAAE;oBACpE;gBACF;gBAEAN,aAAaO,MAAM;gBACnBZ,UAAU;YACZ;YAEA,IAAIA,SAAS;gBACXH,aAAagB,GAAG,CAACf,WAAWgB,WAAW;YACzC;QACF;QAEA,OAAO;YAAEjB,cAAc;mBAAIA;aAAa;QAAC;IAC3C;IACAkB,aACE;AACJ,EAAC;AAED;;;CAGC,GACD,MAAMX,+BAA+B,CAACF;IACpC,8CAA8C;IAC9C,IAAInB,KAAKiC,qBAAqB,CAACd,OAAO;QACpC,MAAMe,WAAWf,KAAKgB,WAAW;QACjC,IAAI,CAACD,UAAU;YACb,OAAOE;QACT;QACA,IAAI,CAAChC,0BAA0B8B,SAASG,OAAO,GAAG7B,IAAI,KAAK;YACzD,OAAO4B;QACT;QACA,MAAMX,cAAcN,KAAKO,cAAc;QACvC,IAAID,eAAezB,KAAKsC,yBAAyB,CAACb,cAAc;YAC9D,OAAOA;QACT;QACA,OAAOW;IACT;IAEA,6CAA6C;IAC7C,IAAIpC,KAAKuC,qBAAqB,CAACpB,OAAO;QACpC,MAAMe,WAAWf,KAAKgB,WAAW;QACjC,IAAI,CAACD,YAAY,CAAC9B,0BAA0B8B,SAASG,OAAO,GAAG7B,IAAI,KAAK;YACtE,OAAO4B;QACT;QACA,MAAMI,OAAOrB,KAAKsB,aAAa;QAC/B,IAAIzC,KAAKsC,yBAAyB,CAACE,OAAO;YACxC,OAAOA;QACT;QACA,OAAOJ;IACT;IAEA,sCAAsC;IACtC,IAAIpC,KAAK0C,cAAc,CAACvB,OAAO;QAC7B,MAAMe,WAAWf,KAAKgB,WAAW;QACjC,IAAI,CAACD,YAAY,CAAC9B,0BAA0B8B,SAASG,OAAO,GAAG7B,IAAI,KAAK;YACtE,OAAO4B;QACT;QACA,MAAMI,OAAOrB,KAAKsB,aAAa;QAC/B,IAAIzC,KAAKsC,yBAAyB,CAACE,OAAO;YACxC,OAAOA;QACT;QACA,OAAOJ;IACT;IAEA,OAAOA;AACT"}
@@ -0,0 +1,6 @@
1
+ import { EXPERIMENTAL_TableFeature as TableFeatureFn } from '@payloadcms/richtext-lexical';
2
+ export const features = [
3
+ TableFeatureFn()
4
+ ];
5
+
6
+ //# sourceMappingURL=alias.input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/rename-experimental-table-feature/alias.input.ts"],"sourcesContent":["import { EXPERIMENTAL_TableFeature as TableFeatureFn } from '@payloadcms/richtext-lexical'\n\nexport const features = [TableFeatureFn()]\n"],"names":["EXPERIMENTAL_TableFeature","TableFeatureFn","features"],"mappings":"AAAA,SAASA,6BAA6BC,cAAc,QAAQ,+BAA8B;AAE1F,OAAO,MAAMC,WAAW;IAACD;CAAiB,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { TableFeature as TableFeatureFn } from '@payloadcms/richtext-lexical';
2
+ export const features = [
3
+ TableFeatureFn()
4
+ ];
5
+
6
+ //# sourceMappingURL=alias.output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/rename-experimental-table-feature/alias.output.ts"],"sourcesContent":["import { TableFeature as TableFeatureFn } from '@payloadcms/richtext-lexical'\n\nexport const features = [TableFeatureFn()]\n"],"names":["TableFeature","TableFeatureFn","features"],"mappings":"AAAA,SAASA,gBAAgBC,cAAc,QAAQ,+BAA8B;AAE7E,OAAO,MAAMC,WAAW;IAACD;CAAiB,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { EXPERIMENTAL_TableFeature, FixedToolbarFeature, lexicalEditor } from '@payloadcms/richtext-lexical';
2
+ export const RichText = {
3
+ fields: [
4
+ {
5
+ name: 'content',
6
+ type: 'richText',
7
+ editor: lexicalEditor({
8
+ features: ({ defaultFeatures })=>[
9
+ ...defaultFeatures,
10
+ FixedToolbarFeature(),
11
+ EXPERIMENTAL_TableFeature()
12
+ ]
13
+ })
14
+ }
15
+ ],
16
+ slug: 'richtext'
17
+ };
18
+
19
+ //# sourceMappingURL=basic.input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/rename-experimental-table-feature/basic.input.ts"],"sourcesContent":["import type { CollectionConfig } from 'payload'\n\nimport { EXPERIMENTAL_TableFeature, FixedToolbarFeature, lexicalEditor } from '@payloadcms/richtext-lexical'\n\nexport const RichText: CollectionConfig = {\n fields: [\n {\n name: 'content',\n type: 'richText',\n editor: lexicalEditor({\n features: ({ defaultFeatures }) => [\n ...defaultFeatures,\n FixedToolbarFeature(),\n EXPERIMENTAL_TableFeature(),\n ],\n }),\n },\n ],\n slug: 'richtext',\n}\n"],"names":["EXPERIMENTAL_TableFeature","FixedToolbarFeature","lexicalEditor","RichText","fields","name","type","editor","features","defaultFeatures","slug"],"mappings":"AAEA,SAASA,yBAAyB,EAAEC,mBAAmB,EAAEC,aAAa,QAAQ,+BAA8B;AAE5G,OAAO,MAAMC,WAA6B;IACxCC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,QAAQL,cAAc;gBACpBM,UAAU,CAAC,EAAEC,eAAe,EAAE,GAAK;2BAC9BA;wBACHR;wBACAD;qBACD;YACH;QACF;KACD;IACDU,MAAM;AACR,EAAC"}
@@ -0,0 +1,19 @@
1
+ import { TableFeature, FixedToolbarFeature, lexicalEditor } from '@payloadcms/richtext-lexical';
2
+ export const RichText = {
3
+ fields: [
4
+ {
5
+ name: 'content',
6
+ type: 'richText',
7
+ editor: lexicalEditor({
8
+ features: ({ defaultFeatures })=>[
9
+ ...defaultFeatures,
10
+ FixedToolbarFeature(),
11
+ TableFeature()
12
+ ]
13
+ })
14
+ }
15
+ ],
16
+ slug: 'richtext'
17
+ };
18
+
19
+ //# sourceMappingURL=basic.output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/rename-experimental-table-feature/basic.output.ts"],"sourcesContent":["import type { CollectionConfig } from 'payload'\n\nimport { TableFeature, FixedToolbarFeature, lexicalEditor } from '@payloadcms/richtext-lexical'\n\nexport const RichText: CollectionConfig = {\n fields: [\n {\n name: 'content',\n type: 'richText',\n editor: lexicalEditor({\n features: ({ defaultFeatures }) => [\n ...defaultFeatures,\n FixedToolbarFeature(),\n TableFeature(),\n ],\n }),\n },\n ],\n slug: 'richtext',\n}\n"],"names":["TableFeature","FixedToolbarFeature","lexicalEditor","RichText","fields","name","type","editor","features","defaultFeatures","slug"],"mappings":"AAEA,SAASA,YAAY,EAAEC,mBAAmB,EAAEC,aAAa,QAAQ,+BAA8B;AAE/F,OAAO,MAAMC,WAA6B;IACxCC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,QAAQL,cAAc;gBACpBM,UAAU,CAAC,EAAEC,eAAe,EAAE,GAAK;2BAC9BA;wBACHR;wBACAD;qBACD;YACH;QACF;KACD;IACDU,MAAM;AACR,EAAC"}
@@ -0,0 +1,7 @@
1
+ import { EXPERIMENTAL_TableFeature, TableFeature } from '@payloadcms/richtext-lexical';
2
+ export const features = [
3
+ EXPERIMENTAL_TableFeature(),
4
+ TableFeature()
5
+ ];
6
+
7
+ //# sourceMappingURL=collision.input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/rename-experimental-table-feature/collision.input.ts"],"sourcesContent":["import { EXPERIMENTAL_TableFeature, TableFeature } from '@payloadcms/richtext-lexical'\n\nexport const features = [EXPERIMENTAL_TableFeature(), TableFeature()]\n"],"names":["EXPERIMENTAL_TableFeature","TableFeature","features"],"mappings":"AAAA,SAASA,yBAAyB,EAAEC,YAAY,QAAQ,+BAA8B;AAEtF,OAAO,MAAMC,WAAW;IAACF;IAA6BC;CAAe,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { Transform } from '../../types.js';
2
+ export declare const renameExperimentalTableFeature: Transform;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transforms/rename-experimental-table-feature/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAM/C,eAAO,MAAM,8BAA8B,EAAE,SAkD5C,CAAA"}
@@ -0,0 +1,50 @@
1
+ import { Node } from 'ts-morph';
2
+ const PACKAGE_NAME = '@payloadcms/richtext-lexical';
3
+ const OLD_NAME = 'EXPERIMENTAL_TableFeature';
4
+ const NEW_NAME = 'TableFeature';
5
+ export const renameExperimentalTableFeature = {
6
+ name: 'rename-experimental-table-feature',
7
+ apply: ({ project })=>{
8
+ const filesChanged = new Set();
9
+ for (const file of project.getSourceFiles()){
10
+ for (const importDecl of file.getImportDeclarations()){
11
+ if (importDecl.getModuleSpecifierValue() !== PACKAGE_NAME) {
12
+ continue;
13
+ }
14
+ const named = importDecl.getNamedImports();
15
+ const spec = named.find((specifier)=>specifier.getName() === OLD_NAME);
16
+ if (!spec) {
17
+ continue;
18
+ }
19
+ // Skip if `TableFeature` is already imported here too, to avoid a collision.
20
+ const hasNewName = named.some((specifier)=>(specifier.getAliasNode()?.getText() ?? specifier.getName()) === NEW_NAME);
21
+ if (hasNewName) {
22
+ continue;
23
+ }
24
+ if (spec.getAliasNode()) {
25
+ // Aliased usages (`EXPERIMENTAL_TableFeature as Foo`) only reference the alias,
26
+ // so the imported name can be swapped without touching call sites.
27
+ spec.setName(NEW_NAME);
28
+ } else {
29
+ // No alias: the imported name is also the local binding, so rename it to update
30
+ // every call site (e.g. `EXPERIMENTAL_TableFeature()`) in the same pass.
31
+ const nameNode = spec.getNameNode();
32
+ // Always an Identifier in valid code: a string-literal import name requires an alias.
33
+ if (!Node.isIdentifier(nameNode)) {
34
+ continue;
35
+ }
36
+ nameNode.rename(NEW_NAME);
37
+ }
38
+ filesChanged.add(file.getFilePath());
39
+ }
40
+ }
41
+ return {
42
+ filesChanged: [
43
+ ...filesChanged
44
+ ]
45
+ };
46
+ },
47
+ description: 'Renames imports of `EXPERIMENTAL_TableFeature` from `@payloadcms/richtext-lexical` to `TableFeature` (the table feature is now stable) and updates all local usages.'
48
+ };
49
+
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/rename-experimental-table-feature/index.ts"],"sourcesContent":["import { Node } from 'ts-morph'\n\nimport type { Transform } from '../../types.js'\n\nconst PACKAGE_NAME = '@payloadcms/richtext-lexical'\nconst OLD_NAME = 'EXPERIMENTAL_TableFeature'\nconst NEW_NAME = 'TableFeature'\n\nexport const renameExperimentalTableFeature: Transform = {\n name: 'rename-experimental-table-feature',\n apply: ({ project }) => {\n const filesChanged = new Set<string>()\n\n for (const file of project.getSourceFiles()) {\n for (const importDecl of file.getImportDeclarations()) {\n if (importDecl.getModuleSpecifierValue() !== PACKAGE_NAME) {\n continue\n }\n\n const named = importDecl.getNamedImports()\n const spec = named.find((specifier) => specifier.getName() === OLD_NAME)\n if (!spec) {\n continue\n }\n\n // Skip if `TableFeature` is already imported here too, to avoid a collision.\n const hasNewName = named.some(\n (specifier) => (specifier.getAliasNode()?.getText() ?? specifier.getName()) === NEW_NAME,\n )\n if (hasNewName) {\n continue\n }\n\n if (spec.getAliasNode()) {\n // Aliased usages (`EXPERIMENTAL_TableFeature as Foo`) only reference the alias,\n // so the imported name can be swapped without touching call sites.\n spec.setName(NEW_NAME)\n } else {\n // No alias: the imported name is also the local binding, so rename it to update\n // every call site (e.g. `EXPERIMENTAL_TableFeature()`) in the same pass.\n const nameNode = spec.getNameNode()\n\n // Always an Identifier in valid code: a string-literal import name requires an alias.\n if (!Node.isIdentifier(nameNode)) {\n continue\n }\n\n nameNode.rename(NEW_NAME)\n }\n\n filesChanged.add(file.getFilePath())\n }\n }\n\n return { filesChanged: [...filesChanged] }\n },\n description:\n 'Renames imports of `EXPERIMENTAL_TableFeature` from `@payloadcms/richtext-lexical` to `TableFeature` (the table feature is now stable) and updates all local usages.',\n}\n"],"names":["Node","PACKAGE_NAME","OLD_NAME","NEW_NAME","renameExperimentalTableFeature","name","apply","project","filesChanged","Set","file","getSourceFiles","importDecl","getImportDeclarations","getModuleSpecifierValue","named","getNamedImports","spec","find","specifier","getName","hasNewName","some","getAliasNode","getText","setName","nameNode","getNameNode","isIdentifier","rename","add","getFilePath","description"],"mappings":"AAAA,SAASA,IAAI,QAAQ,WAAU;AAI/B,MAAMC,eAAe;AACrB,MAAMC,WAAW;AACjB,MAAMC,WAAW;AAEjB,OAAO,MAAMC,iCAA4C;IACvDC,MAAM;IACNC,OAAO,CAAC,EAAEC,OAAO,EAAE;QACjB,MAAMC,eAAe,IAAIC;QAEzB,KAAK,MAAMC,QAAQH,QAAQI,cAAc,GAAI;YAC3C,KAAK,MAAMC,cAAcF,KAAKG,qBAAqB,GAAI;gBACrD,IAAID,WAAWE,uBAAuB,OAAOb,cAAc;oBACzD;gBACF;gBAEA,MAAMc,QAAQH,WAAWI,eAAe;gBACxC,MAAMC,OAAOF,MAAMG,IAAI,CAAC,CAACC,YAAcA,UAAUC,OAAO,OAAOlB;gBAC/D,IAAI,CAACe,MAAM;oBACT;gBACF;gBAEA,6EAA6E;gBAC7E,MAAMI,aAAaN,MAAMO,IAAI,CAC3B,CAACH,YAAc,AAACA,CAAAA,UAAUI,YAAY,IAAIC,aAAaL,UAAUC,OAAO,EAAC,MAAOjB;gBAElF,IAAIkB,YAAY;oBACd;gBACF;gBAEA,IAAIJ,KAAKM,YAAY,IAAI;oBACvB,gFAAgF;oBAChF,mEAAmE;oBACnEN,KAAKQ,OAAO,CAACtB;gBACf,OAAO;oBACL,gFAAgF;oBAChF,yEAAyE;oBACzE,MAAMuB,WAAWT,KAAKU,WAAW;oBAEjC,sFAAsF;oBACtF,IAAI,CAAC3B,KAAK4B,YAAY,CAACF,WAAW;wBAChC;oBACF;oBAEAA,SAASG,MAAM,CAAC1B;gBAClB;gBAEAK,aAAasB,GAAG,CAACpB,KAAKqB,WAAW;YACnC;QACF;QAEA,OAAO;YAAEvB,cAAc;mBAAIA;aAAa;QAAC;IAC3C;IACAwB,aACE;AACJ,EAAC"}
@@ -0,0 +1,9 @@
1
+ import { FixedToolbarFeature, lexicalEditor } from '@payloadcms/richtext-lexical';
2
+ export const editor = lexicalEditor({
3
+ features: ({ defaultFeatures })=>[
4
+ ...defaultFeatures,
5
+ FixedToolbarFeature()
6
+ ]
7
+ });
8
+
9
+ //# sourceMappingURL=no-match.input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/rename-experimental-table-feature/no-match.input.ts"],"sourcesContent":["import { FixedToolbarFeature, lexicalEditor } from '@payloadcms/richtext-lexical'\n\nexport const editor = lexicalEditor({\n features: ({ defaultFeatures }) => [...defaultFeatures, FixedToolbarFeature()],\n})\n"],"names":["FixedToolbarFeature","lexicalEditor","editor","features","defaultFeatures"],"mappings":"AAAA,SAASA,mBAAmB,EAAEC,aAAa,QAAQ,+BAA8B;AAEjF,OAAO,MAAMC,SAASD,cAAc;IAClCE,UAAU,CAAC,EAAEC,eAAe,EAAE,GAAK;eAAIA;YAAiBJ;SAAsB;AAChF,GAAE"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Default Payload dist-tag when the caller did not pass --tag. Every package in
3
+ * the monorepo (this one included) is versioned and published in lockstep, so
4
+ * the dist-tag the codemod was invoked under (`npx @payloadcms/codemod@beta`)
5
+ * surfaces as its own version's prerelease id. Follow that train; fall back to
6
+ * canary for stable or local dev builds that carry no prerelease id.
7
+ */
8
+ export declare function resolveDefaultTag(version?: string | undefined): string;
9
+ //# sourceMappingURL=defaultTag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultTag.d.ts","sourceRoot":"","sources":["../../src/upgrade/defaultTag.ts"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,MAAM,GAAG,SAA4B,GAAG,MAAM,CAGxF"}
@@ -0,0 +1,25 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { dirname, resolve } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import semver from 'semver';
5
+ /** Dist-tag used when neither --tag nor the running version implies one. */ const FALLBACK_TAG = 'canary';
6
+ /**
7
+ * Default Payload dist-tag when the caller did not pass --tag. Every package in
8
+ * the monorepo (this one included) is versioned and published in lockstep, so
9
+ * the dist-tag the codemod was invoked under (`npx @payloadcms/codemod@beta`)
10
+ * surfaces as its own version's prerelease id. Follow that train; fall back to
11
+ * canary for stable or local dev builds that carry no prerelease id.
12
+ */ export function resolveDefaultTag(version = readOwnVersion()) {
13
+ const id = version ? semver.prerelease(version)?.[0] : undefined;
14
+ return typeof id === 'string' ? id : FALLBACK_TAG;
15
+ }
16
+ function readOwnVersion() {
17
+ try {
18
+ const pkgPath = resolve(dirname(fileURLToPath(import.meta.url)), '..', '..', 'package.json');
19
+ return JSON.parse(readFileSync(pkgPath, 'utf8')).version;
20
+ } catch {
21
+ return undefined;
22
+ }
23
+ }
24
+
25
+ //# sourceMappingURL=defaultTag.js.map