@payloadcms/codemod 4.0.0-canary.15

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 (498) hide show
  1. package/LICENSE.md +22 -0
  2. package/README.md +62 -0
  3. package/bin/cli.js +8 -0
  4. package/dist/cli.d.ts +2 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +120 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/cli.parseFlags.d.ts +9 -0
  9. package/dist/cli.parseFlags.d.ts.map +1 -0
  10. package/dist/cli.parseFlags.js +37 -0
  11. package/dist/cli.parseFlags.js.map +1 -0
  12. package/dist/cli.parseFlags.spec.d.ts +2 -0
  13. package/dist/cli.parseFlags.spec.d.ts.map +1 -0
  14. package/dist/cli.parseFlags.spec.js +49 -0
  15. package/dist/cli.parseFlags.spec.js.map +1 -0
  16. package/dist/registry.d.ts +3 -0
  17. package/dist/registry.d.ts.map +1 -0
  18. package/dist/registry.js +54 -0
  19. package/dist/registry.js.map +1 -0
  20. package/dist/runner.d.ts +17 -0
  21. package/dist/runner.d.ts.map +1 -0
  22. package/dist/runner.js +37 -0
  23. package/dist/runner.js.map +1 -0
  24. package/dist/runner.spec.d.ts +2 -0
  25. package/dist/runner.spec.d.ts.map +1 -0
  26. package/dist/runner.spec.js +88 -0
  27. package/dist/runner.spec.js.map +1 -0
  28. package/dist/transforms/example-noop/basic.input.js +3 -0
  29. package/dist/transforms/example-noop/basic.input.js.map +1 -0
  30. package/dist/transforms/example-noop/basic.output.js +3 -0
  31. package/dist/transforms/example-noop/basic.output.js.map +1 -0
  32. package/dist/transforms/example-noop/index.d.ts +3 -0
  33. package/dist/transforms/example-noop/index.d.ts.map +1 -0
  34. package/dist/transforms/example-noop/index.js +9 -0
  35. package/dist/transforms/example-noop/index.js.map +1 -0
  36. package/dist/transforms/example-noop/index.spec.d.ts +2 -0
  37. package/dist/transforms/example-noop/index.spec.d.ts.map +1 -0
  38. package/dist/transforms/example-noop/index.spec.js +29 -0
  39. package/dist/transforms/example-noop/index.spec.js.map +1 -0
  40. package/dist/transforms/globals-components-edit/basic.input.js +23 -0
  41. package/dist/transforms/globals-components-edit/basic.input.js.map +1 -0
  42. package/dist/transforms/globals-components-edit/basic.output.js +23 -0
  43. package/dist/transforms/globals-components-edit/basic.output.js.map +1 -0
  44. package/dist/transforms/globals-components-edit/collection.input.js +19 -0
  45. package/dist/transforms/globals-components-edit/collection.input.js.map +1 -0
  46. package/dist/transforms/globals-components-edit/index.d.ts +3 -0
  47. package/dist/transforms/globals-components-edit/index.d.ts.map +1 -0
  48. package/dist/transforms/globals-components-edit/index.js +92 -0
  49. package/dist/transforms/globals-components-edit/index.js.map +1 -0
  50. package/dist/transforms/globals-components-edit/index.spec.d.ts +2 -0
  51. package/dist/transforms/globals-components-edit/index.spec.d.ts.map +1 -0
  52. package/dist/transforms/globals-components-edit/index.spec.js +37 -0
  53. package/dist/transforms/globals-components-edit/index.spec.js.map +1 -0
  54. package/dist/transforms/migrate-after-operation-read/alias.input.js +16 -0
  55. package/dist/transforms/migrate-after-operation-read/alias.input.js.map +1 -0
  56. package/dist/transforms/migrate-after-operation-read/alias.output.js +16 -0
  57. package/dist/transforms/migrate-after-operation-read/alias.output.js.map +1 -0
  58. package/dist/transforms/migrate-after-operation-read/basic.input.js +19 -0
  59. package/dist/transforms/migrate-after-operation-read/basic.input.js.map +1 -0
  60. package/dist/transforms/migrate-after-operation-read/basic.output.js +19 -0
  61. package/dist/transforms/migrate-after-operation-read/basic.output.js.map +1 -0
  62. package/dist/transforms/migrate-after-operation-read/external.input.js +12 -0
  63. package/dist/transforms/migrate-after-operation-read/external.input.js.map +1 -0
  64. package/dist/transforms/migrate-after-operation-read/index.d.ts +3 -0
  65. package/dist/transforms/migrate-after-operation-read/index.d.ts.map +1 -0
  66. package/dist/transforms/migrate-after-operation-read/index.js +148 -0
  67. package/dist/transforms/migrate-after-operation-read/index.js.map +1 -0
  68. package/dist/transforms/migrate-after-operation-read/index.spec.d.ts +2 -0
  69. package/dist/transforms/migrate-after-operation-read/index.spec.d.ts.map +1 -0
  70. package/dist/transforms/migrate-after-operation-read/index.spec.js +62 -0
  71. package/dist/transforms/migrate-after-operation-read/index.spec.js.map +1 -0
  72. package/dist/transforms/migrate-after-operation-read/non-matching.input.js +16 -0
  73. package/dist/transforms/migrate-after-operation-read/non-matching.input.js.map +1 -0
  74. package/dist/transforms/migrate-aliased-exports/basic.input.js +9 -0
  75. package/dist/transforms/migrate-aliased-exports/basic.input.js.map +1 -0
  76. package/dist/transforms/migrate-aliased-exports/basic.output.js +9 -0
  77. package/dist/transforms/migrate-aliased-exports/basic.output.js.map +1 -0
  78. package/dist/transforms/migrate-aliased-exports/index.d.ts +3 -0
  79. package/dist/transforms/migrate-aliased-exports/index.d.ts.map +1 -0
  80. package/dist/transforms/migrate-aliased-exports/index.js +215 -0
  81. package/dist/transforms/migrate-aliased-exports/index.js.map +1 -0
  82. package/dist/transforms/migrate-aliased-exports/index.spec.d.ts +2 -0
  83. package/dist/transforms/migrate-aliased-exports/index.spec.d.ts.map +1 -0
  84. package/dist/transforms/migrate-aliased-exports/index.spec.js +55 -0
  85. package/dist/transforms/migrate-aliased-exports/index.spec.js.map +1 -0
  86. package/dist/transforms/migrate-aliased-exports/merge.input.js +6 -0
  87. package/dist/transforms/migrate-aliased-exports/merge.input.js.map +1 -0
  88. package/dist/transforms/migrate-aliased-exports/merge.output.js +6 -0
  89. package/dist/transforms/migrate-aliased-exports/merge.output.js.map +1 -0
  90. package/dist/transforms/migrate-aliased-exports/non-matching.input.js +6 -0
  91. package/dist/transforms/migrate-aliased-exports/non-matching.input.js.map +1 -0
  92. package/dist/transforms/migrate-aliased-exports/rename.input.js +3 -0
  93. package/dist/transforms/migrate-aliased-exports/rename.input.js.map +1 -0
  94. package/dist/transforms/migrate-aliased-exports/rename.output.js +3 -0
  95. package/dist/transforms/migrate-aliased-exports/rename.output.js.map +1 -0
  96. package/dist/transforms/migrate-azure-chunk-large-files/basic.input.js +16 -0
  97. package/dist/transforms/migrate-azure-chunk-large-files/basic.input.js.map +1 -0
  98. package/dist/transforms/migrate-azure-chunk-large-files/basic.output.js +14 -0
  99. package/dist/transforms/migrate-azure-chunk-large-files/basic.output.js.map +1 -0
  100. package/dist/transforms/migrate-azure-chunk-large-files/index.d.ts +3 -0
  101. package/dist/transforms/migrate-azure-chunk-large-files/index.d.ts.map +1 -0
  102. package/dist/transforms/migrate-azure-chunk-large-files/index.js +49 -0
  103. package/dist/transforms/migrate-azure-chunk-large-files/index.js.map +1 -0
  104. package/dist/transforms/migrate-azure-chunk-large-files/index.spec.d.ts +2 -0
  105. package/dist/transforms/migrate-azure-chunk-large-files/index.spec.d.ts.map +1 -0
  106. package/dist/transforms/migrate-azure-chunk-large-files/index.spec.js +67 -0
  107. package/dist/transforms/migrate-azure-chunk-large-files/index.spec.js.map +1 -0
  108. package/dist/transforms/migrate-azure-chunk-large-files/no-match.input.js +14 -0
  109. package/dist/transforms/migrate-azure-chunk-large-files/no-match.input.js.map +1 -0
  110. package/dist/transforms/migrate-azure-chunk-large-files/no-match.output.js +14 -0
  111. package/dist/transforms/migrate-azure-chunk-large-files/no-match.output.js.map +1 -0
  112. package/dist/transforms/migrate-azure-chunk-large-files/with-access.input.js +17 -0
  113. package/dist/transforms/migrate-azure-chunk-large-files/with-access.input.js.map +1 -0
  114. package/dist/transforms/migrate-azure-chunk-large-files/with-access.output.js +16 -0
  115. package/dist/transforms/migrate-azure-chunk-large-files/with-access.output.js.map +1 -0
  116. package/dist/transforms/migrate-block-references-to-blocks/basic.input.js +27 -0
  117. package/dist/transforms/migrate-block-references-to-blocks/basic.input.js.map +1 -0
  118. package/dist/transforms/migrate-block-references-to-blocks/basic.output.js +26 -0
  119. package/dist/transforms/migrate-block-references-to-blocks/basic.output.js.map +1 -0
  120. package/dist/transforms/migrate-block-references-to-blocks/index.d.ts +3 -0
  121. package/dist/transforms/migrate-block-references-to-blocks/index.d.ts.map +1 -0
  122. package/dist/transforms/migrate-block-references-to-blocks/index.js +76 -0
  123. package/dist/transforms/migrate-block-references-to-blocks/index.js.map +1 -0
  124. package/dist/transforms/migrate-block-references-to-blocks/index.spec.d.ts +2 -0
  125. package/dist/transforms/migrate-block-references-to-blocks/index.spec.d.ts.map +1 -0
  126. package/dist/transforms/migrate-block-references-to-blocks/index.spec.js +45 -0
  127. package/dist/transforms/migrate-block-references-to-blocks/index.spec.js.map +1 -0
  128. package/dist/transforms/migrate-block-references-to-blocks/non-matching.input.js +20 -0
  129. package/dist/transforms/migrate-block-references-to-blocks/non-matching.input.js.map +1 -0
  130. package/dist/transforms/migrate-block-references-to-blocks/sibling.input.js +21 -0
  131. package/dist/transforms/migrate-block-references-to-blocks/sibling.input.js.map +1 -0
  132. package/dist/transforms/migrate-build-script/index.d.ts +3 -0
  133. package/dist/transforms/migrate-build-script/index.d.ts.map +1 -0
  134. package/dist/transforms/migrate-build-script/index.js +28 -0
  135. package/dist/transforms/migrate-build-script/index.js.map +1 -0
  136. package/dist/transforms/migrate-build-script/index.spec.d.ts +2 -0
  137. package/dist/transforms/migrate-build-script/index.spec.d.ts.map +1 -0
  138. package/dist/transforms/migrate-build-script/index.spec.js +81 -0
  139. package/dist/transforms/migrate-build-script/index.spec.js.map +1 -0
  140. package/dist/transforms/migrate-db-types-subpath/basic.input.js +3 -0
  141. package/dist/transforms/migrate-db-types-subpath/basic.input.js.map +1 -0
  142. package/dist/transforms/migrate-db-types-subpath/basic.output.js +3 -0
  143. package/dist/transforms/migrate-db-types-subpath/basic.output.js.map +1 -0
  144. package/dist/transforms/migrate-db-types-subpath/index.d.ts +3 -0
  145. package/dist/transforms/migrate-db-types-subpath/index.d.ts.map +1 -0
  146. package/dist/transforms/migrate-db-types-subpath/index.js +56 -0
  147. package/dist/transforms/migrate-db-types-subpath/index.js.map +1 -0
  148. package/dist/transforms/migrate-db-types-subpath/index.spec.d.ts +2 -0
  149. package/dist/transforms/migrate-db-types-subpath/index.spec.d.ts.map +1 -0
  150. package/dist/transforms/migrate-db-types-subpath/index.spec.js +46 -0
  151. package/dist/transforms/migrate-db-types-subpath/index.spec.js.map +1 -0
  152. package/dist/transforms/migrate-db-types-subpath/module-augmentation.input.js +2 -0
  153. package/dist/transforms/migrate-db-types-subpath/module-augmentation.input.js.map +1 -0
  154. package/dist/transforms/migrate-db-types-subpath/module-augmentation.output.js +2 -0
  155. package/dist/transforms/migrate-db-types-subpath/module-augmentation.output.js.map +1 -0
  156. package/dist/transforms/migrate-db-types-subpath/non-matching.input.js +3 -0
  157. package/dist/transforms/migrate-db-types-subpath/non-matching.input.js.map +1 -0
  158. package/dist/transforms/migrate-disabled-fields/basic.input.js +27 -0
  159. package/dist/transforms/migrate-disabled-fields/basic.input.js.map +1 -0
  160. package/dist/transforms/migrate-disabled-fields/basic.output.js +31 -0
  161. package/dist/transforms/migrate-disabled-fields/basic.output.js.map +1 -0
  162. package/dist/transforms/migrate-disabled-fields/imagesize.input.js +32 -0
  163. package/dist/transforms/migrate-disabled-fields/imagesize.input.js.map +1 -0
  164. package/dist/transforms/migrate-disabled-fields/imagesize.output.js +36 -0
  165. package/dist/transforms/migrate-disabled-fields/imagesize.output.js.map +1 -0
  166. package/dist/transforms/migrate-disabled-fields/index.d.ts +3 -0
  167. package/dist/transforms/migrate-disabled-fields/index.d.ts.map +1 -0
  168. package/dist/transforms/migrate-disabled-fields/index.js +124 -0
  169. package/dist/transforms/migrate-disabled-fields/index.js.map +1 -0
  170. package/dist/transforms/migrate-disabled-fields/index.spec.d.ts +2 -0
  171. package/dist/transforms/migrate-disabled-fields/index.spec.d.ts.map +1 -0
  172. package/dist/transforms/migrate-disabled-fields/index.spec.js +73 -0
  173. package/dist/transforms/migrate-disabled-fields/index.spec.js.map +1 -0
  174. package/dist/transforms/migrate-disabled-fields/merge.input.js +17 -0
  175. package/dist/transforms/migrate-disabled-fields/merge.input.js.map +1 -0
  176. package/dist/transforms/migrate-disabled-fields/merge.output.js +17 -0
  177. package/dist/transforms/migrate-disabled-fields/merge.output.js.map +1 -0
  178. package/dist/transforms/migrate-disabled-fields/non-matching.input.js +8 -0
  179. package/dist/transforms/migrate-disabled-fields/non-matching.input.js.map +1 -0
  180. package/dist/transforms/migrate-disabled-fields/non-matching.output.js +8 -0
  181. package/dist/transforms/migrate-disabled-fields/non-matching.output.js.map +1 -0
  182. package/dist/transforms/migrate-disabled-fields/preserve-true.input.js +16 -0
  183. package/dist/transforms/migrate-disabled-fields/preserve-true.input.js.map +1 -0
  184. package/dist/transforms/migrate-disabled-fields/preserve-true.output.js +14 -0
  185. package/dist/transforms/migrate-disabled-fields/preserve-true.output.js.map +1 -0
  186. package/dist/transforms/migrate-document-title-context/basic.input.js +23 -0
  187. package/dist/transforms/migrate-document-title-context/basic.input.js.map +1 -0
  188. package/dist/transforms/migrate-document-title-context/basic.output.js +25 -0
  189. package/dist/transforms/migrate-document-title-context/basic.output.js.map +1 -0
  190. package/dist/transforms/migrate-document-title-context/index.d.ts +3 -0
  191. package/dist/transforms/migrate-document-title-context/index.d.ts.map +1 -0
  192. package/dist/transforms/migrate-document-title-context/index.js +133 -0
  193. package/dist/transforms/migrate-document-title-context/index.js.map +1 -0
  194. package/dist/transforms/migrate-document-title-context/index.spec.d.ts +2 -0
  195. package/dist/transforms/migrate-document-title-context/index.spec.d.ts.map +1 -0
  196. package/dist/transforms/migrate-document-title-context/index.spec.js +86 -0
  197. package/dist/transforms/migrate-document-title-context/index.spec.js.map +1 -0
  198. package/dist/transforms/migrate-document-title-context/no-match.input.js +21 -0
  199. package/dist/transforms/migrate-document-title-context/no-match.input.js.map +1 -0
  200. package/dist/transforms/migrate-document-title-context/no-match.output.js +21 -0
  201. package/dist/transforms/migrate-document-title-context/no-match.output.js.map +1 -0
  202. package/dist/transforms/migrate-force-select/basic.input.js +10 -0
  203. package/dist/transforms/migrate-force-select/basic.input.js.map +1 -0
  204. package/dist/transforms/migrate-force-select/basic.output.js +11 -0
  205. package/dist/transforms/migrate-force-select/basic.output.js.map +1 -0
  206. package/dist/transforms/migrate-force-select/index.d.ts +3 -0
  207. package/dist/transforms/migrate-force-select/index.d.ts.map +1 -0
  208. package/dist/transforms/migrate-force-select/index.js +104 -0
  209. package/dist/transforms/migrate-force-select/index.js.map +1 -0
  210. package/dist/transforms/migrate-force-select/index.spec.d.ts +2 -0
  211. package/dist/transforms/migrate-force-select/index.spec.d.ts.map +1 -0
  212. package/dist/transforms/migrate-force-select/index.spec.js +107 -0
  213. package/dist/transforms/migrate-force-select/index.spec.js.map +1 -0
  214. package/dist/transforms/migrate-force-select/no-match.input.js +12 -0
  215. package/dist/transforms/migrate-force-select/no-match.input.js.map +1 -0
  216. package/dist/transforms/migrate-force-select/no-match.output.js +12 -0
  217. package/dist/transforms/migrate-force-select/no-match.output.js.map +1 -0
  218. package/dist/transforms/migrate-hide-api-url/basic.input.js +9 -0
  219. package/dist/transforms/migrate-hide-api-url/basic.input.js.map +1 -0
  220. package/dist/transforms/migrate-hide-api-url/basic.output.js +19 -0
  221. package/dist/transforms/migrate-hide-api-url/basic.output.js.map +1 -0
  222. package/dist/transforms/migrate-hide-api-url/index.d.ts +3 -0
  223. package/dist/transforms/migrate-hide-api-url/index.d.ts.map +1 -0
  224. package/dist/transforms/migrate-hide-api-url/index.js +85 -0
  225. package/dist/transforms/migrate-hide-api-url/index.js.map +1 -0
  226. package/dist/transforms/migrate-hide-api-url/index.spec.d.ts +2 -0
  227. package/dist/transforms/migrate-hide-api-url/index.spec.d.ts.map +1 -0
  228. package/dist/transforms/migrate-hide-api-url/index.spec.js +118 -0
  229. package/dist/transforms/migrate-hide-api-url/index.spec.js.map +1 -0
  230. package/dist/transforms/migrate-hide-api-url/no-match.input.js +12 -0
  231. package/dist/transforms/migrate-hide-api-url/no-match.input.js.map +1 -0
  232. package/dist/transforms/migrate-hide-api-url/no-match.output.js +12 -0
  233. package/dist/transforms/migrate-hide-api-url/no-match.output.js.map +1 -0
  234. package/dist/transforms/migrate-import-export-hooks/basic.input.js +16 -0
  235. package/dist/transforms/migrate-import-export-hooks/basic.input.js.map +1 -0
  236. package/dist/transforms/migrate-import-export-hooks/basic.output.js +18 -0
  237. package/dist/transforms/migrate-import-export-hooks/basic.output.js.map +1 -0
  238. package/dist/transforms/migrate-import-export-hooks/both.input.js +18 -0
  239. package/dist/transforms/migrate-import-export-hooks/both.input.js.map +1 -0
  240. package/dist/transforms/migrate-import-export-hooks/both.output.js +20 -0
  241. package/dist/transforms/migrate-import-export-hooks/both.output.js.map +1 -0
  242. package/dist/transforms/migrate-import-export-hooks/existing-hooks.input.js +20 -0
  243. package/dist/transforms/migrate-import-export-hooks/existing-hooks.input.js.map +1 -0
  244. package/dist/transforms/migrate-import-export-hooks/existing-hooks.output.js +20 -0
  245. package/dist/transforms/migrate-import-export-hooks/existing-hooks.output.js.map +1 -0
  246. package/dist/transforms/migrate-import-export-hooks/hooks-priority.input.js +19 -0
  247. package/dist/transforms/migrate-import-export-hooks/hooks-priority.input.js.map +1 -0
  248. package/dist/transforms/migrate-import-export-hooks/hooks-priority.output.js +18 -0
  249. package/dist/transforms/migrate-import-export-hooks/hooks-priority.output.js.map +1 -0
  250. package/dist/transforms/migrate-import-export-hooks/index.d.ts +3 -0
  251. package/dist/transforms/migrate-import-export-hooks/index.d.ts.map +1 -0
  252. package/dist/transforms/migrate-import-export-hooks/index.js +88 -0
  253. package/dist/transforms/migrate-import-export-hooks/index.js.map +1 -0
  254. package/dist/transforms/migrate-import-export-hooks/index.spec.d.ts +2 -0
  255. package/dist/transforms/migrate-import-export-hooks/index.spec.d.ts.map +1 -0
  256. package/dist/transforms/migrate-import-export-hooks/index.spec.js +65 -0
  257. package/dist/transforms/migrate-import-export-hooks/index.spec.js.map +1 -0
  258. package/dist/transforms/migrate-import-export-hooks/non-matching.input.js +19 -0
  259. package/dist/transforms/migrate-import-export-hooks/non-matching.input.js.map +1 -0
  260. package/dist/transforms/migrate-import-export-hooks/non-matching.output.js +19 -0
  261. package/dist/transforms/migrate-import-export-hooks/non-matching.output.js.map +1 -0
  262. package/dist/transforms/migrate-list-view-select-api/basic.input.js +15 -0
  263. package/dist/transforms/migrate-list-view-select-api/basic.input.js.map +1 -0
  264. package/dist/transforms/migrate-list-view-select-api/basic.output.js +14 -0
  265. package/dist/transforms/migrate-list-view-select-api/basic.output.js.map +1 -0
  266. package/dist/transforms/migrate-list-view-select-api/index.d.ts +3 -0
  267. package/dist/transforms/migrate-list-view-select-api/index.d.ts.map +1 -0
  268. package/dist/transforms/migrate-list-view-select-api/index.js +38 -0
  269. package/dist/transforms/migrate-list-view-select-api/index.js.map +1 -0
  270. package/dist/transforms/migrate-list-view-select-api/index.spec.d.ts +2 -0
  271. package/dist/transforms/migrate-list-view-select-api/index.spec.d.ts.map +1 -0
  272. package/dist/transforms/migrate-list-view-select-api/index.spec.js +37 -0
  273. package/dist/transforms/migrate-list-view-select-api/index.spec.js.map +1 -0
  274. package/dist/transforms/migrate-list-view-select-api/no-match.input.js +17 -0
  275. package/dist/transforms/migrate-list-view-select-api/no-match.input.js.map +1 -0
  276. package/dist/transforms/migrate-next-generate-viewport-export/basic.input.js +22 -0
  277. package/dist/transforms/migrate-next-generate-viewport-export/basic.input.js.map +1 -0
  278. package/dist/transforms/migrate-next-generate-viewport-export/basic.output.js +23 -0
  279. package/dist/transforms/migrate-next-generate-viewport-export/basic.output.js.map +1 -0
  280. package/dist/transforms/migrate-next-generate-viewport-export/index.d.ts +3 -0
  281. package/dist/transforms/migrate-next-generate-viewport-export/index.d.ts.map +1 -0
  282. package/dist/transforms/migrate-next-generate-viewport-export/index.js +69 -0
  283. package/dist/transforms/migrate-next-generate-viewport-export/index.js.map +1 -0
  284. package/dist/transforms/migrate-next-generate-viewport-export/index.spec.d.ts +2 -0
  285. package/dist/transforms/migrate-next-generate-viewport-export/index.spec.d.ts.map +1 -0
  286. package/dist/transforms/migrate-next-generate-viewport-export/index.spec.js +41 -0
  287. package/dist/transforms/migrate-next-generate-viewport-export/index.spec.js.map +1 -0
  288. package/dist/transforms/migrate-next-generate-viewport-export/non-matching.input.js +8 -0
  289. package/dist/transforms/migrate-next-generate-viewport-export/non-matching.input.js.map +1 -0
  290. package/dist/transforms/migrate-next-generate-viewport-export/non-matching.output.js +8 -0
  291. package/dist/transforms/migrate-next-generate-viewport-export/non-matching.output.js.map +1 -0
  292. package/dist/transforms/migrate-next-subpath-exports/basic.input.js +20 -0
  293. package/dist/transforms/migrate-next-subpath-exports/basic.input.js.map +1 -0
  294. package/dist/transforms/migrate-next-subpath-exports/basic.output.js +20 -0
  295. package/dist/transforms/migrate-next-subpath-exports/basic.output.js.map +1 -0
  296. package/dist/transforms/migrate-next-subpath-exports/index.d.ts +3 -0
  297. package/dist/transforms/migrate-next-subpath-exports/index.d.ts.map +1 -0
  298. package/dist/transforms/migrate-next-subpath-exports/index.js +92 -0
  299. package/dist/transforms/migrate-next-subpath-exports/index.js.map +1 -0
  300. package/dist/transforms/migrate-next-subpath-exports/index.spec.d.ts +2 -0
  301. package/dist/transforms/migrate-next-subpath-exports/index.spec.d.ts.map +1 -0
  302. package/dist/transforms/migrate-next-subpath-exports/index.spec.js +46 -0
  303. package/dist/transforms/migrate-next-subpath-exports/index.spec.js.map +1 -0
  304. package/dist/transforms/migrate-next-subpath-exports/non-matching.input.js +22 -0
  305. package/dist/transforms/migrate-next-subpath-exports/non-matching.input.js.map +1 -0
  306. package/dist/transforms/migrate-next-subpath-exports/re-export.input.js +5 -0
  307. package/dist/transforms/migrate-next-subpath-exports/re-export.input.js.map +1 -0
  308. package/dist/transforms/migrate-next-subpath-exports/re-export.output.js +5 -0
  309. package/dist/transforms/migrate-next-subpath-exports/re-export.output.js.map +1 -0
  310. package/dist/transforms/migrate-slug-field/basic.input.js +21 -0
  311. package/dist/transforms/migrate-slug-field/basic.input.js.map +1 -0
  312. package/dist/transforms/migrate-slug-field/basic.output.js +26 -0
  313. package/dist/transforms/migrate-slug-field/basic.output.js.map +1 -0
  314. package/dist/transforms/migrate-slug-field/index.d.ts +3 -0
  315. package/dist/transforms/migrate-slug-field/index.d.ts.map +1 -0
  316. package/dist/transforms/migrate-slug-field/index.js +157 -0
  317. package/dist/transforms/migrate-slug-field/index.js.map +1 -0
  318. package/dist/transforms/migrate-slug-field/index.spec.d.ts +2 -0
  319. package/dist/transforms/migrate-slug-field/index.spec.d.ts.map +1 -0
  320. package/dist/transforms/migrate-slug-field/index.spec.js +47 -0
  321. package/dist/transforms/migrate-slug-field/index.spec.js.map +1 -0
  322. package/dist/transforms/migrate-slug-field/no-match.input.js +11 -0
  323. package/dist/transforms/migrate-slug-field/no-match.input.js.map +1 -0
  324. package/dist/transforms/migrate-slug-field/no-match.output.js +11 -0
  325. package/dist/transforms/migrate-slug-field/no-match.output.js.map +1 -0
  326. package/dist/transforms/migrate-slug-field/overrides.input.js +15 -0
  327. package/dist/transforms/migrate-slug-field/overrides.input.js.map +1 -0
  328. package/dist/transforms/migrate-slug-field/overrides.output.js +15 -0
  329. package/dist/transforms/migrate-slug-field/overrides.output.js.map +1 -0
  330. package/dist/transforms/migrate-storage-adapters-to-config/basic.input.js +22 -0
  331. package/dist/transforms/migrate-storage-adapters-to-config/basic.input.js.map +1 -0
  332. package/dist/transforms/migrate-storage-adapters-to-config/basic.output.js +22 -0
  333. package/dist/transforms/migrate-storage-adapters-to-config/basic.output.js.map +1 -0
  334. package/dist/transforms/migrate-storage-adapters-to-config/index.d.ts +3 -0
  335. package/dist/transforms/migrate-storage-adapters-to-config/index.d.ts.map +1 -0
  336. package/dist/transforms/migrate-storage-adapters-to-config/index.js +80 -0
  337. package/dist/transforms/migrate-storage-adapters-to-config/index.js.map +1 -0
  338. package/dist/transforms/migrate-storage-adapters-to-config/index.spec.d.ts +2 -0
  339. package/dist/transforms/migrate-storage-adapters-to-config/index.spec.d.ts.map +1 -0
  340. package/dist/transforms/migrate-storage-adapters-to-config/index.spec.js +85 -0
  341. package/dist/transforms/migrate-storage-adapters-to-config/index.spec.js.map +1 -0
  342. package/dist/transforms/migrate-storage-adapters-to-config/mixed-plugins.input.js +24 -0
  343. package/dist/transforms/migrate-storage-adapters-to-config/mixed-plugins.input.js.map +1 -0
  344. package/dist/transforms/migrate-storage-adapters-to-config/mixed-plugins.output.js +26 -0
  345. package/dist/transforms/migrate-storage-adapters-to-config/mixed-plugins.output.js.map +1 -0
  346. package/dist/transforms/migrate-storage-adapters-to-config/no-match.input.js +14 -0
  347. package/dist/transforms/migrate-storage-adapters-to-config/no-match.input.js.map +1 -0
  348. package/dist/transforms/migrate-storage-adapters-to-config/no-match.output.js +14 -0
  349. package/dist/transforms/migrate-storage-adapters-to-config/no-match.output.js.map +1 -0
  350. package/dist/transforms/migrate-versions-default/already-set.input.js +16 -0
  351. package/dist/transforms/migrate-versions-default/already-set.input.js.map +1 -0
  352. package/dist/transforms/migrate-versions-default/already-set.output.js +16 -0
  353. package/dist/transforms/migrate-versions-default/already-set.output.js.map +1 -0
  354. package/dist/transforms/migrate-versions-default/basic.input.js +16 -0
  355. package/dist/transforms/migrate-versions-default/basic.input.js.map +1 -0
  356. package/dist/transforms/migrate-versions-default/basic.output.js +18 -0
  357. package/dist/transforms/migrate-versions-default/basic.output.js.map +1 -0
  358. package/dist/transforms/migrate-versions-default/globals.input.js +16 -0
  359. package/dist/transforms/migrate-versions-default/globals.input.js.map +1 -0
  360. package/dist/transforms/migrate-versions-default/globals.output.js +17 -0
  361. package/dist/transforms/migrate-versions-default/globals.output.js.map +1 -0
  362. package/dist/transforms/migrate-versions-default/index.d.ts +10 -0
  363. package/dist/transforms/migrate-versions-default/index.d.ts.map +1 -0
  364. package/dist/transforms/migrate-versions-default/index.js +106 -0
  365. package/dist/transforms/migrate-versions-default/index.js.map +1 -0
  366. package/dist/transforms/migrate-versions-default/index.test.d.ts +2 -0
  367. package/dist/transforms/migrate-versions-default/index.test.d.ts.map +1 -0
  368. package/dist/transforms/migrate-versions-default/index.test.js +81 -0
  369. package/dist/transforms/migrate-versions-default/index.test.js.map +1 -0
  370. package/dist/transforms/migrate-versions-default/non-matching.input.js +10 -0
  371. package/dist/transforms/migrate-versions-default/non-matching.input.js.map +1 -0
  372. package/dist/transforms/migrate-versions-default/non-matching.output.js +10 -0
  373. package/dist/transforms/migrate-versions-default/non-matching.output.js.map +1 -0
  374. package/dist/transforms/migrate-versions-default/satisfies.input.js +11 -0
  375. package/dist/transforms/migrate-versions-default/satisfies.input.js.map +1 -0
  376. package/dist/transforms/migrate-versions-default/satisfies.output.js +13 -0
  377. package/dist/transforms/migrate-versions-default/satisfies.output.js.map +1 -0
  378. package/dist/transforms/remove-group-by-true/basic.input.js +22 -0
  379. package/dist/transforms/remove-group-by-true/basic.input.js.map +1 -0
  380. package/dist/transforms/remove-group-by-true/basic.output.js +19 -0
  381. package/dist/transforms/remove-group-by-true/basic.output.js.map +1 -0
  382. package/dist/transforms/remove-group-by-true/index.d.ts +3 -0
  383. package/dist/transforms/remove-group-by-true/index.d.ts.map +1 -0
  384. package/dist/transforms/remove-group-by-true/index.js +36 -0
  385. package/dist/transforms/remove-group-by-true/index.js.map +1 -0
  386. package/dist/transforms/remove-group-by-true/index.spec.d.ts +2 -0
  387. package/dist/transforms/remove-group-by-true/index.spec.d.ts.map +1 -0
  388. package/dist/transforms/remove-group-by-true/index.spec.js +47 -0
  389. package/dist/transforms/remove-group-by-true/index.spec.js.map +1 -0
  390. package/dist/transforms/remove-group-by-true/no-match.input.js +13 -0
  391. package/dist/transforms/remove-group-by-true/no-match.input.js.map +1 -0
  392. package/dist/transforms/remove-group-by-true/no-match.output.js +13 -0
  393. package/dist/transforms/remove-group-by-true/no-match.output.js.map +1 -0
  394. package/dist/transforms/remove-group-by-true/non-boolean.input.js +15 -0
  395. package/dist/transforms/remove-group-by-true/non-boolean.input.js.map +1 -0
  396. package/dist/transforms/remove-group-by-true/non-boolean.output.js +15 -0
  397. package/dist/transforms/remove-group-by-true/non-boolean.output.js.map +1 -0
  398. package/dist/transforms/remove-localize-status-config/basic.input.js +27 -0
  399. package/dist/transforms/remove-localize-status-config/basic.input.js.map +1 -0
  400. package/dist/transforms/remove-localize-status-config/basic.output.js +23 -0
  401. package/dist/transforms/remove-localize-status-config/basic.output.js.map +1 -0
  402. package/dist/transforms/remove-localize-status-config/index.d.ts +11 -0
  403. package/dist/transforms/remove-localize-status-config/index.d.ts.map +1 -0
  404. package/dist/transforms/remove-localize-status-config/index.js +34 -0
  405. package/dist/transforms/remove-localize-status-config/index.js.map +1 -0
  406. package/dist/transforms/remove-localize-status-config/index.spec.d.ts +2 -0
  407. package/dist/transforms/remove-localize-status-config/index.spec.d.ts.map +1 -0
  408. package/dist/transforms/remove-localize-status-config/index.spec.js +38 -0
  409. package/dist/transforms/remove-localize-status-config/index.spec.js.map +1 -0
  410. package/dist/transforms/remove-localize-status-config/preserve-false.input.js +23 -0
  411. package/dist/transforms/remove-localize-status-config/preserve-false.input.js.map +1 -0
  412. package/dist/transforms/remove-localize-status-config/preserve-false.output.js +23 -0
  413. package/dist/transforms/remove-localize-status-config/preserve-false.output.js.map +1 -0
  414. package/dist/transforms/remove-publish-specific-locale/already-has-locale.input.js +12 -0
  415. package/dist/transforms/remove-publish-specific-locale/already-has-locale.input.js.map +1 -0
  416. package/dist/transforms/remove-publish-specific-locale/already-has-locale.output.js +11 -0
  417. package/dist/transforms/remove-publish-specific-locale/already-has-locale.output.js.map +1 -0
  418. package/dist/transforms/remove-publish-specific-locale/basic.input.js +20 -0
  419. package/dist/transforms/remove-publish-specific-locale/basic.input.js.map +1 -0
  420. package/dist/transforms/remove-publish-specific-locale/basic.output.js +20 -0
  421. package/dist/transforms/remove-publish-specific-locale/basic.output.js.map +1 -0
  422. package/dist/transforms/remove-publish-specific-locale/index.d.ts +11 -0
  423. package/dist/transforms/remove-publish-specific-locale/index.d.ts.map +1 -0
  424. package/dist/transforms/remove-publish-specific-locale/index.js +76 -0
  425. package/dist/transforms/remove-publish-specific-locale/index.js.map +1 -0
  426. package/dist/transforms/remove-publish-specific-locale/index.spec.d.ts +2 -0
  427. package/dist/transforms/remove-publish-specific-locale/index.spec.d.ts.map +1 -0
  428. package/dist/transforms/remove-publish-specific-locale/index.spec.js +47 -0
  429. package/dist/transforms/remove-publish-specific-locale/index.spec.js.map +1 -0
  430. package/dist/transforms/remove-publish-specific-locale/non-matching.input.js +6 -0
  431. package/dist/transforms/remove-publish-specific-locale/non-matching.input.js.map +1 -0
  432. package/dist/transforms/remove-publish-specific-locale/non-matching.output.js +6 -0
  433. package/dist/transforms/remove-publish-specific-locale/non-matching.output.js.map +1 -0
  434. package/dist/transforms/remove-versions-true/basic.input.js +12 -0
  435. package/dist/transforms/remove-versions-true/basic.input.js.map +1 -0
  436. package/dist/transforms/remove-versions-true/basic.output.js +10 -0
  437. package/dist/transforms/remove-versions-true/basic.output.js.map +1 -0
  438. package/dist/transforms/remove-versions-true/index.d.ts +12 -0
  439. package/dist/transforms/remove-versions-true/index.d.ts.map +1 -0
  440. package/dist/transforms/remove-versions-true/index.js +100 -0
  441. package/dist/transforms/remove-versions-true/index.js.map +1 -0
  442. package/dist/transforms/remove-versions-true/index.test.d.ts +2 -0
  443. package/dist/transforms/remove-versions-true/index.test.d.ts.map +1 -0
  444. package/dist/transforms/remove-versions-true/index.test.js +38 -0
  445. package/dist/transforms/remove-versions-true/index.test.js.map +1 -0
  446. package/dist/transforms/remove-versions-true/non-matching.input.js +20 -0
  447. package/dist/transforms/remove-versions-true/non-matching.input.js.map +1 -0
  448. package/dist/transforms/remove-versions-true/non-matching.output.js +20 -0
  449. package/dist/transforms/remove-versions-true/non-matching.output.js.map +1 -0
  450. package/dist/transforms/rename-storage-adapters-to-storage/basic.input.js +18 -0
  451. package/dist/transforms/rename-storage-adapters-to-storage/basic.input.js.map +1 -0
  452. package/dist/transforms/rename-storage-adapters-to-storage/basic.output.js +18 -0
  453. package/dist/transforms/rename-storage-adapters-to-storage/basic.output.js.map +1 -0
  454. package/dist/transforms/rename-storage-adapters-to-storage/index.d.ts +3 -0
  455. package/dist/transforms/rename-storage-adapters-to-storage/index.d.ts.map +1 -0
  456. package/dist/transforms/rename-storage-adapters-to-storage/index.js +31 -0
  457. package/dist/transforms/rename-storage-adapters-to-storage/index.js.map +1 -0
  458. package/dist/transforms/rename-storage-adapters-to-storage/index.spec.d.ts +2 -0
  459. package/dist/transforms/rename-storage-adapters-to-storage/index.spec.d.ts.map +1 -0
  460. package/dist/transforms/rename-storage-adapters-to-storage/index.spec.js +55 -0
  461. package/dist/transforms/rename-storage-adapters-to-storage/index.spec.js.map +1 -0
  462. package/dist/transforms/rename-storage-adapters-to-storage/no-match.input.js +7 -0
  463. package/dist/transforms/rename-storage-adapters-to-storage/no-match.input.js.map +1 -0
  464. package/dist/transforms/rename-storage-adapters-to-storage/no-match.output.js +7 -0
  465. package/dist/transforms/rename-storage-adapters-to-storage/no-match.output.js.map +1 -0
  466. package/dist/transforms/rename-typescript-schema-to-json-schema/basic.input.js +25 -0
  467. package/dist/transforms/rename-typescript-schema-to-json-schema/basic.input.js.map +1 -0
  468. package/dist/transforms/rename-typescript-schema-to-json-schema/basic.output.js +25 -0
  469. package/dist/transforms/rename-typescript-schema-to-json-schema/basic.output.js.map +1 -0
  470. package/dist/transforms/rename-typescript-schema-to-json-schema/index.d.ts +3 -0
  471. package/dist/transforms/rename-typescript-schema-to-json-schema/index.d.ts.map +1 -0
  472. package/dist/transforms/rename-typescript-schema-to-json-schema/index.js +54 -0
  473. package/dist/transforms/rename-typescript-schema-to-json-schema/index.js.map +1 -0
  474. package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.d.ts +2 -0
  475. package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.d.ts.map +1 -0
  476. package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.js +45 -0
  477. package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.js.map +1 -0
  478. package/dist/transforms/rename-typescript-schema-to-json-schema/non-matching.input.js +12 -0
  479. package/dist/transforms/rename-typescript-schema-to-json-schema/non-matching.input.js.map +1 -0
  480. package/dist/transforms/rename-typescript-schema-to-json-schema/sibling.input.js +18 -0
  481. package/dist/transforms/rename-typescript-schema-to-json-schema/sibling.input.js.map +1 -0
  482. package/dist/types.d.ts +22 -0
  483. package/dist/types.d.ts.map +1 -0
  484. package/dist/types.js +3 -0
  485. package/dist/types.js.map +1 -0
  486. package/dist/utils/packageJson.d.ts +17 -0
  487. package/dist/utils/packageJson.d.ts.map +1 -0
  488. package/dist/utils/packageJson.js +46 -0
  489. package/dist/utils/packageJson.js.map +1 -0
  490. package/dist/utils/packageJson.spec.d.ts +2 -0
  491. package/dist/utils/packageJson.spec.d.ts.map +1 -0
  492. package/dist/utils/packageJson.spec.js +41 -0
  493. package/dist/utils/packageJson.spec.js.map +1 -0
  494. package/dist/utils/test-helpers.d.ts +23 -0
  495. package/dist/utils/test-helpers.d.ts.map +1 -0
  496. package/dist/utils/test-helpers.js +53 -0
  497. package/dist/utils/test-helpers.js.map +1 -0
  498. package/package.json +53 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/migrate-after-operation-read/index.ts"],"sourcesContent":["import type {\n ArrowFunction,\n BinaryExpression,\n FunctionExpression,\n PropertyAssignment,\n Node as TsNode,\n} from 'ts-morph'\n\nimport { Node, SyntaxKind } from 'ts-morph'\n\nimport type { Transform } from '../../types.js'\n\nconst EQUALITY_OPERATORS = new Set(['==', '==='])\nconst INEQUALITY_OPERATORS = new Set(['!=', '!=='])\n\ntype HookFunction = ArrowFunction | FunctionExpression\n\nexport const migrateAfterOperationRead: Transform = {\n name: 'migrate-after-operation-read',\n apply: ({ project }) => {\n const filesChanged = new Set<string>()\n const notes: string[] = []\n\n for (const sourceFile of project.getSourceFiles()) {\n let mutated = false\n\n const afterOperationProps = sourceFile\n .getDescendantsOfKind(SyntaxKind.PropertyAssignment)\n .filter((prop) => prop.getName() === 'afterOperation' && isHookArray(prop))\n\n for (const prop of afterOperationProps) {\n const initializer = prop.getInitializerIfKind(SyntaxKind.ArrayLiteralExpression)!\n const filePath = sourceFile.getFilePath()\n\n for (const element of initializer.getElements()) {\n if (!Node.isArrowFunction(element) && !Node.isFunctionExpression(element)) {\n notes.push(\n `${filePath}: afterOperation hook is not an inline function — if it branches on \\`operation === 'read'\\`, update it to handle 'find' and 'findByID' manually.`,\n )\n continue\n }\n\n const operationExpr = getOperationExpr(element)\n if (!operationExpr) {\n if (referencesReadLiteral(element)) {\n notes.push(\n `${filePath}: could not locate the \\`operation\\` argument of an afterOperation hook — update any \\`operation === 'read'\\` checks to handle 'find' and 'findByID' manually.`,\n )\n }\n continue\n }\n\n if (hasReadSwitchCase({ fn: element, operationExpr })) {\n notes.push(\n `${filePath}: afterOperation hook switches on \\`${operationExpr}\\` with a 'read' case — replace it with 'find' and 'findByID' cases manually.`,\n )\n }\n\n if (rewriteReadComparisons({ fn: element, operationExpr })) {\n mutated = true\n }\n }\n }\n\n if (mutated) {\n filesChanged.add(sourceFile.getFilePath())\n }\n }\n\n return { filesChanged: [...filesChanged], ...(notes.length > 0 ? { notes } : {}) }\n },\n description:\n \"Rewrites `operation === 'read'` checks in collection `afterOperation` hooks to handle the `find` and `findByID` operations, since the deprecated `'read'` value was removed. Handles `===`/`!==`/`==`/`!=` against destructured (and aliased) or property-accessed `operation` arguments. Leaves `beforeOperation` (which still uses `'read'`) untouched and surfaces notes for non-inline hooks and `switch` cases that need manual review.\",\n}\n\nfunction isHookArray(prop: PropertyAssignment): boolean {\n return prop.getInitializerIfKind(SyntaxKind.ArrayLiteralExpression) !== undefined\n}\n\n/**\n * Resolve the text used to reference the `operation` argument inside a hook —\n * either the local name from a destructured (possibly aliased) first parameter,\n * or `<param>.operation` when the first parameter is a plain identifier.\n */\nfunction getOperationExpr(fn: HookFunction): string | undefined {\n const param = fn.getParameters()[0]\n if (!param) {\n return undefined\n }\n\n const nameNode = param.getNameNode()\n\n if (Node.isObjectBindingPattern(nameNode)) {\n for (const element of nameNode.getElements()) {\n const sourceProp = element.getPropertyNameNode()?.getText() ?? element.getNameNode().getText()\n if (sourceProp === 'operation') {\n return element.getNameNode().getText()\n }\n }\n return undefined\n }\n\n if (Node.isIdentifier(nameNode)) {\n return `${nameNode.getText()}.operation`\n }\n\n return undefined\n}\n\ntype RewriteArgs = {\n fn: HookFunction\n operationExpr: string\n}\n\nfunction rewriteReadComparisons({ fn, operationExpr }: RewriteArgs): boolean {\n let changed = false\n\n // Replace one match at a time and re-query: replaceWithText re-parses the\n // changed range, so collecting node refs up front would leave them stale.\n while (true) {\n const match = fn\n .getDescendantsOfKind(SyntaxKind.BinaryExpression)\n .find((binary) => isReadComparison({ binary, operationExpr }))\n\n if (!match) {\n break\n }\n\n const operator = match.getOperatorToken().getText()\n const joiner = EQUALITY_OPERATORS.has(operator) ? '||' : '&&'\n const expanded = `${operationExpr} ${operator} 'find' ${joiner} ${operationExpr} ${operator} 'findByID'`\n\n match.replaceWithText(needsParens(match) ? `(${expanded})` : expanded)\n changed = true\n }\n\n return changed\n}\n\ntype ReadComparisonArgs = {\n binary: BinaryExpression\n operationExpr: string\n}\n\nfunction isReadComparison({ binary, operationExpr }: ReadComparisonArgs): boolean {\n const operator = binary.getOperatorToken().getText()\n if (!EQUALITY_OPERATORS.has(operator) && !INEQUALITY_OPERATORS.has(operator)) {\n return false\n }\n\n const left = binary.getLeft()\n const right = binary.getRight()\n\n return (\n (isOperationOperand(left, operationExpr) && isReadLiteral(right)) ||\n (isReadLiteral(left) && isOperationOperand(right, operationExpr))\n )\n}\n\nfunction isOperationOperand(node: TsNode, operationExpr: string): boolean {\n return (\n (Node.isIdentifier(node) || Node.isPropertyAccessExpression(node)) &&\n node.getText() === operationExpr\n )\n}\n\nfunction isReadLiteral(node: TsNode): boolean {\n return Node.isStringLiteral(node) && node.getLiteralValue() === 'read'\n}\n\nfunction hasReadSwitchCase({ fn, operationExpr }: RewriteArgs): boolean {\n return fn.getDescendantsOfKind(SyntaxKind.SwitchStatement).some((switchStatement) => {\n if (switchStatement.getExpression().getText() !== operationExpr) {\n return false\n }\n return switchStatement\n .getClauses()\n .some((clause) => Node.isCaseClause(clause) && isReadLiteral(clause.getExpression()))\n })\n}\n\nfunction referencesReadLiteral(fn: HookFunction): boolean {\n return fn\n .getDescendantsOfKind(SyntaxKind.StringLiteral)\n .some((literal) => literal.getLiteralValue() === 'read')\n}\n\n/**\n * The expanded comparison only needs wrapping where surrounding precedence\n * could change its meaning (e.g. nested inside `&&`/`||` or a `!`). Positions\n * that already delimit the expression — `if (...)`, `return ...`, a ternary\n * condition, an arrow body — are left unwrapped for cleaner output.\n */\nfunction needsParens(node: BinaryExpression): boolean {\n const parent = node.getParent()\n if (!parent) {\n return true\n }\n\n return !(\n Node.isParenthesizedExpression(parent) ||\n Node.isIfStatement(parent) ||\n Node.isWhileStatement(parent) ||\n Node.isDoStatement(parent) ||\n Node.isReturnStatement(parent) ||\n Node.isConditionalExpression(parent) ||\n Node.isArrowFunction(parent) ||\n Node.isVariableDeclaration(parent) ||\n Node.isPropertyAssignment(parent)\n )\n}\n"],"names":["Node","SyntaxKind","EQUALITY_OPERATORS","Set","INEQUALITY_OPERATORS","migrateAfterOperationRead","name","apply","project","filesChanged","notes","sourceFile","getSourceFiles","mutated","afterOperationProps","getDescendantsOfKind","PropertyAssignment","filter","prop","getName","isHookArray","initializer","getInitializerIfKind","ArrayLiteralExpression","filePath","getFilePath","element","getElements","isArrowFunction","isFunctionExpression","push","operationExpr","getOperationExpr","referencesReadLiteral","hasReadSwitchCase","fn","rewriteReadComparisons","add","length","description","undefined","param","getParameters","nameNode","getNameNode","isObjectBindingPattern","sourceProp","getPropertyNameNode","getText","isIdentifier","changed","match","BinaryExpression","find","binary","isReadComparison","operator","getOperatorToken","joiner","has","expanded","replaceWithText","needsParens","left","getLeft","right","getRight","isOperationOperand","isReadLiteral","node","isPropertyAccessExpression","isStringLiteral","getLiteralValue","SwitchStatement","some","switchStatement","getExpression","getClauses","clause","isCaseClause","StringLiteral","literal","parent","getParent","isParenthesizedExpression","isIfStatement","isWhileStatement","isDoStatement","isReturnStatement","isConditionalExpression","isVariableDeclaration","isPropertyAssignment"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../../../src/transforms/migrate-after-operation-read/index.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,62 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { dirname, join } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { Project } from 'ts-morph';
5
+ import { describe, expect, it } from 'vitest';
6
+ import { runTransform } from '../../utils/test-helpers.js';
7
+ import { migrateAfterOperationRead } from './index.js';
8
+ const here = dirname(fileURLToPath(import.meta.url));
9
+ const fixture = (name)=>readFile(join(here, name), 'utf8');
10
+ describe('migrate-after-operation-read', ()=>{
11
+ it("expands `operation === 'read'` to handle find and findByID", async ()=>{
12
+ const input = await fixture('basic.input.ts');
13
+ const output = await fixture('basic.output.ts');
14
+ const result = await runTransform({
15
+ source: input,
16
+ transform: migrateAfterOperationRead
17
+ });
18
+ expect(result).toBe(output);
19
+ });
20
+ it('resolves an aliased operation arg and parenthesizes negated checks inside logical expressions', async ()=>{
21
+ const input = await fixture('alias.input.ts');
22
+ const output = await fixture('alias.output.ts');
23
+ const result = await runTransform({
24
+ source: input,
25
+ transform: migrateAfterOperationRead
26
+ });
27
+ expect(result).toBe(output);
28
+ });
29
+ it('is idempotent on already-migrated source', async ()=>{
30
+ const output = await fixture('basic.output.ts');
31
+ const result = await runTransform({
32
+ source: output,
33
+ transform: migrateAfterOperationRead
34
+ });
35
+ expect(result).toBe(output);
36
+ });
37
+ it("leaves beforeOperation's `operation === 'read'` untouched", async ()=>{
38
+ const input = await fixture('non-matching.input.ts');
39
+ const result = await runTransform({
40
+ source: input,
41
+ transform: migrateAfterOperationRead
42
+ });
43
+ expect(result).toBe(input);
44
+ });
45
+ it('emits a note for a non-inline afterOperation hook', async ()=>{
46
+ const input = await fixture('external.input.ts');
47
+ const project = new Project({
48
+ useInMemoryFileSystem: true
49
+ });
50
+ project.createSourceFile('input.ts', input);
51
+ const result = await migrateAfterOperationRead.apply({
52
+ packageJsons: [],
53
+ project
54
+ });
55
+ expect(result.filesChanged).toEqual([]);
56
+ expect(result.notes).toEqual([
57
+ expect.stringContaining('not an inline function')
58
+ ]);
59
+ });
60
+ });
61
+
62
+ //# sourceMappingURL=index.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/migrate-after-operation-read/index.spec.ts"],"sourcesContent":["import { readFile } from 'node:fs/promises'\nimport { dirname, join } from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { Project } from 'ts-morph'\nimport { describe, expect, it } from 'vitest'\n\nimport { runTransform } from '../../utils/test-helpers.js'\nimport { migrateAfterOperationRead } from './index.js'\n\nconst here = dirname(fileURLToPath(import.meta.url))\nconst fixture = (name: string) => readFile(join(here, name), 'utf8')\n\ndescribe('migrate-after-operation-read', () => {\n it(\"expands `operation === 'read'` to handle find and findByID\", async () => {\n const input = await fixture('basic.input.ts')\n const output = await fixture('basic.output.ts')\n\n const result = await runTransform({ source: input, transform: migrateAfterOperationRead })\n\n expect(result).toBe(output)\n })\n\n it('resolves an aliased operation arg and parenthesizes negated checks inside logical expressions', async () => {\n const input = await fixture('alias.input.ts')\n const output = await fixture('alias.output.ts')\n\n const result = await runTransform({ source: input, transform: migrateAfterOperationRead })\n\n expect(result).toBe(output)\n })\n\n it('is idempotent on already-migrated source', async () => {\n const output = await fixture('basic.output.ts')\n\n const result = await runTransform({ source: output, transform: migrateAfterOperationRead })\n\n expect(result).toBe(output)\n })\n\n it(\"leaves beforeOperation's `operation === 'read'` untouched\", async () => {\n const input = await fixture('non-matching.input.ts')\n\n const result = await runTransform({ source: input, transform: migrateAfterOperationRead })\n\n expect(result).toBe(input)\n })\n\n it('emits a note for a non-inline afterOperation hook', async () => {\n const input = await fixture('external.input.ts')\n const project = new Project({ useInMemoryFileSystem: true })\n project.createSourceFile('input.ts', input)\n\n const result = await migrateAfterOperationRead.apply({ packageJsons: [], project })\n\n expect(result.filesChanged).toEqual([])\n expect(result.notes).toEqual([expect.stringContaining('not an inline function')])\n })\n})\n"],"names":["readFile","dirname","join","fileURLToPath","Project","describe","expect","it","runTransform","migrateAfterOperationRead","here","url","fixture","name","input","output","result","source","transform","toBe","project","useInMemoryFileSystem","createSourceFile","apply","packageJsons","filesChanged","toEqual","notes","stringContaining"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,mBAAkB;AAC3C,SAASC,OAAO,EAAEC,IAAI,QAAQ,YAAW;AACzC,SAASC,aAAa,QAAQ,WAAU;AACxC,SAASC,OAAO,QAAQ,WAAU;AAClC,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAE7C,SAASC,YAAY,QAAQ,8BAA6B;AAC1D,SAASC,yBAAyB,QAAQ,aAAY;AAEtD,MAAMC,OAAOT,QAAQE,cAAc,YAAYQ,GAAG;AAClD,MAAMC,UAAU,CAACC,OAAiBb,SAASE,KAAKQ,MAAMG,OAAO;AAE7DR,SAAS,gCAAgC;IACvCE,GAAG,8DAA8D;QAC/D,MAAMO,QAAQ,MAAMF,QAAQ;QAC5B,MAAMG,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAA0B;QAExFH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;IAEAR,GAAG,iGAAiG;QAClG,MAAMO,QAAQ,MAAMF,QAAQ;QAC5B,MAAMG,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAA0B;QAExFH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;IAEAR,GAAG,4CAA4C;QAC7C,MAAMQ,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQF;YAAQG,WAAWT;QAA0B;QAEzFH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;IAEAR,GAAG,6DAA6D;QAC9D,MAAMO,QAAQ,MAAMF,QAAQ;QAE5B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAA0B;QAExFH,OAAOU,QAAQG,IAAI,CAACL;IACtB;IAEAP,GAAG,qDAAqD;QACtD,MAAMO,QAAQ,MAAMF,QAAQ;QAC5B,MAAMQ,UAAU,IAAIhB,QAAQ;YAAEiB,uBAAuB;QAAK;QAC1DD,QAAQE,gBAAgB,CAAC,YAAYR;QAErC,MAAME,SAAS,MAAMP,0BAA0Bc,KAAK,CAAC;YAAEC,cAAc,EAAE;YAAEJ;QAAQ;QAEjFd,OAAOU,OAAOS,YAAY,EAAEC,OAAO,CAAC,EAAE;QACtCpB,OAAOU,OAAOW,KAAK,EAAED,OAAO,CAAC;YAACpB,OAAOsB,gBAAgB,CAAC;SAA0B;IAClF;AACF"}
@@ -0,0 +1,16 @@
1
+ export const Posts = {
2
+ slug: 'posts',
3
+ hooks: {
4
+ beforeOperation: [
5
+ ({ args, operation })=>{
6
+ if (operation === 'read') {
7
+ return args;
8
+ }
9
+ return args;
10
+ }
11
+ ]
12
+ },
13
+ fields: []
14
+ };
15
+
16
+ //# sourceMappingURL=non-matching.input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/migrate-after-operation-read/non-matching.input.ts"],"sourcesContent":["import type { CollectionConfig } from 'payload'\n\nexport const Posts: CollectionConfig = {\n slug: 'posts',\n hooks: {\n beforeOperation: [\n ({ args, operation }) => {\n if (operation === 'read') {\n return args\n }\n\n return args\n },\n ],\n },\n fields: [],\n}\n"],"names":["Posts","slug","hooks","beforeOperation","args","operation","fields"],"mappings":"AAEA,OAAO,MAAMA,QAA0B;IACrCC,MAAM;IACNC,OAAO;QACLC,iBAAiB;YACf,CAAC,EAAEC,IAAI,EAAEC,SAAS,EAAE;gBAClB,IAAIA,cAAc,QAAQ;oBACxB,OAAOD;gBACT;gBAEA,OAAOA;YACT;SACD;IACH;IACAE,QAAQ,EAAE;AACZ,EAAC"}
@@ -0,0 +1,9 @@
1
+ import { EntityType, formatAdminURL, mergeListSearchAndWhere } from '@payloadcms/ui/shared';
2
+ import { headersWithCors, mergeHeaders } from '@payloadcms/next/utilities';
3
+ export const buildHeaders = (a, b)=>mergeHeaders(a, b);
4
+ export const cors = headersWithCors;
5
+ export const buildWhere = mergeListSearchAndWhere;
6
+ export const buildURL = formatAdminURL;
7
+ export const collectionType = EntityType.collection;
8
+
9
+ //# sourceMappingURL=basic.input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/migrate-aliased-exports/basic.input.ts"],"sourcesContent":["import type { Column, ListViewSlots } from '@payloadcms/ui'\n\nimport { EntityType, formatAdminURL, mergeListSearchAndWhere } from '@payloadcms/ui/shared'\nimport { headersWithCors, mergeHeaders } from '@payloadcms/next/utilities'\n\nexport type Args = {\n column: Column\n slots: ListViewSlots\n}\n\nexport const buildHeaders = (a: Headers, b: Headers) => mergeHeaders(a, b)\nexport const cors = headersWithCors\nexport const buildWhere = mergeListSearchAndWhere\nexport const buildURL = formatAdminURL\nexport const collectionType = EntityType.collection\n"],"names":["EntityType","formatAdminURL","mergeListSearchAndWhere","headersWithCors","mergeHeaders","buildHeaders","a","b","cors","buildWhere","buildURL","collectionType","collection"],"mappings":"AAEA,SAASA,UAAU,EAAEC,cAAc,EAAEC,uBAAuB,QAAQ,wBAAuB;AAC3F,SAASC,eAAe,EAAEC,YAAY,QAAQ,6BAA4B;AAO1E,OAAO,MAAMC,eAAe,CAACC,GAAYC,IAAeH,aAAaE,GAAGC,GAAE;AAC1E,OAAO,MAAMC,OAAOL,gBAAe;AACnC,OAAO,MAAMM,aAAaP,wBAAuB;AACjD,OAAO,MAAMQ,WAAWT,eAAc;AACtC,OAAO,MAAMU,iBAAiBX,WAAWY,UAAU,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { EntityType, formatAdminURL, mergeListSearchAndWhere } from 'payload/shared';
2
+ import { headersWithCors, mergeHeaders } from 'payload';
3
+ export const buildHeaders = (a, b)=>mergeHeaders(a, b);
4
+ export const cors = headersWithCors;
5
+ export const buildWhere = mergeListSearchAndWhere;
6
+ export const buildURL = formatAdminURL;
7
+ export const collectionType = EntityType.collection;
8
+
9
+ //# sourceMappingURL=basic.output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/migrate-aliased-exports/basic.output.ts"],"sourcesContent":["import type { Column, ListViewSlots } from 'payload'\n\nimport { EntityType, formatAdminURL, mergeListSearchAndWhere } from 'payload/shared'\nimport { headersWithCors, mergeHeaders } from 'payload'\n\nexport type Args = {\n column: Column\n slots: ListViewSlots\n}\n\nexport const buildHeaders = (a: Headers, b: Headers) => mergeHeaders(a, b)\nexport const cors = headersWithCors\nexport const buildWhere = mergeListSearchAndWhere\nexport const buildURL = formatAdminURL\nexport const collectionType = EntityType.collection\n"],"names":["EntityType","formatAdminURL","mergeListSearchAndWhere","headersWithCors","mergeHeaders","buildHeaders","a","b","cors","buildWhere","buildURL","collectionType","collection"],"mappings":"AAEA,SAASA,UAAU,EAAEC,cAAc,EAAEC,uBAAuB,QAAQ,iBAAgB;AACpF,SAASC,eAAe,EAAEC,YAAY,QAAQ,UAAS;AAOvD,OAAO,MAAMC,eAAe,CAACC,GAAYC,IAAeH,aAAaE,GAAGC,GAAE;AAC1E,OAAO,MAAMC,OAAOL,gBAAe;AACnC,OAAO,MAAMM,aAAaP,wBAAuB;AACjD,OAAO,MAAMQ,WAAWT,eAAc;AACtC,OAAO,MAAMU,iBAAiBX,WAAWY,UAAU,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { Transform } from '../../types.js';
2
+ export declare const migrateAliasedExports: Transform;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transforms/migrate-aliased-exports/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAoC/C,eAAO,MAAM,qBAAqB,EAAE,SA2FnC,CAAA"}
@@ -0,0 +1,215 @@
1
+ const SOURCE_MAP = {
2
+ '@payloadcms/next/utilities': {
3
+ addDataAndFileToRequest: {
4
+ to: 'payload'
5
+ },
6
+ addLocalesToRequestFromData: {
7
+ to: 'payload'
8
+ },
9
+ createPayloadRequest: {
10
+ to: 'payload'
11
+ },
12
+ headersWithCors: {
13
+ to: 'payload'
14
+ },
15
+ mergeHeaders: {
16
+ to: 'payload'
17
+ },
18
+ sanitizeLocales: {
19
+ to: 'payload'
20
+ }
21
+ },
22
+ '@payloadcms/ui': {
23
+ Column: {
24
+ to: 'payload'
25
+ },
26
+ ListComponentClientProps: {
27
+ rename: 'ListViewClientProps',
28
+ to: 'payload'
29
+ },
30
+ ListComponentServerProps: {
31
+ rename: 'ListViewServerProps',
32
+ to: 'payload'
33
+ },
34
+ ListPreferences: {
35
+ rename: 'CollectionPreferences',
36
+ to: 'payload'
37
+ },
38
+ ListViewClientProps: {
39
+ to: 'payload'
40
+ },
41
+ ListViewSlots: {
42
+ to: 'payload'
43
+ }
44
+ },
45
+ '@payloadcms/ui/shared': {
46
+ EntityType: {
47
+ to: 'payload/shared'
48
+ },
49
+ formatAdminURL: {
50
+ to: 'payload/shared'
51
+ },
52
+ mergeListSearchAndWhere: {
53
+ to: 'payload/shared'
54
+ }
55
+ }
56
+ };
57
+ export const migrateAliasedExports = {
58
+ name: 'migrate-aliased-exports',
59
+ apply: ({ project })=>{
60
+ const filesChanged = new Set();
61
+ const notes = [];
62
+ for (const file of project.getSourceFiles()){
63
+ let mutated = false;
64
+ for (const importDecl of [
65
+ ...file.getImportDeclarations()
66
+ ]){
67
+ const migrations = SOURCE_MAP[importDecl.getModuleSpecifierValue()];
68
+ if (!migrations) {
69
+ continue;
70
+ }
71
+ const named = importDecl.getNamedImports();
72
+ const migrating = [];
73
+ let kept = 0;
74
+ for (const spec of named){
75
+ const migration = migrations[spec.getName()];
76
+ if (migration) {
77
+ migrating.push({
78
+ migration,
79
+ named: spec
80
+ });
81
+ } else {
82
+ kept++;
83
+ }
84
+ }
85
+ if (migrating.length === 0) {
86
+ continue;
87
+ }
88
+ const targets = new Set(migrating.map(({ migration })=>migration.to));
89
+ if (kept === 0 && targets.size === 1) {
90
+ const [target] = [
91
+ ...targets
92
+ ];
93
+ importDecl.setModuleSpecifier(target);
94
+ for (const { migration, named: spec } of migrating){
95
+ applyRename({
96
+ migration,
97
+ notes,
98
+ sourceFile: file,
99
+ spec,
100
+ target: target
101
+ });
102
+ }
103
+ mutated = true;
104
+ continue;
105
+ }
106
+ for (const { migration, named: spec } of migrating){
107
+ const isTypeOnly = importDecl.isTypeOnly() || spec.isTypeOnly();
108
+ const aliasNode = spec.getAliasNode();
109
+ const localName = aliasNode?.getText() ?? spec.getName();
110
+ const canonicalName = migration.rename ?? spec.getName();
111
+ const alias = localName !== canonicalName ? localName : undefined;
112
+ spec.remove();
113
+ attachToTargetImport({
114
+ file,
115
+ isTypeOnly,
116
+ named: {
117
+ name: canonicalName,
118
+ alias
119
+ },
120
+ target: migration.to
121
+ });
122
+ if (migration.rename) {
123
+ notes.push(renameNote({
124
+ filePath: file.getFilePath(),
125
+ migration,
126
+ originalName: spec.getName()
127
+ }));
128
+ }
129
+ }
130
+ const remaining = importDecl.getNamedImports();
131
+ if (remaining.length === 0 && !importDecl.getDefaultImport() && !importDecl.getNamespaceImport()) {
132
+ importDecl.remove();
133
+ }
134
+ mutated = true;
135
+ }
136
+ if (mutated) {
137
+ filesChanged.add(file.getFilePath());
138
+ }
139
+ }
140
+ return {
141
+ filesChanged: [
142
+ ...filesChanged
143
+ ],
144
+ ...notes.length > 0 ? {
145
+ notes
146
+ } : {}
147
+ };
148
+ },
149
+ description: 'Move imports of aliased re-exports from @payloadcms/ui and @payloadcms/next/utilities to their canonical sources in `payload` / `payload/shared`. Renamed names (`ListPreferences` → `CollectionPreferences`, `ListComponentClientProps` → `ListViewClientProps`, `ListComponentServerProps` → `ListViewServerProps`) are imported using an `as` alias so existing usages keep compiling.'
150
+ };
151
+ function applyRename({ migration, notes, sourceFile, spec, target }) {
152
+ if (!migration.rename) {
153
+ return;
154
+ }
155
+ const originalName = spec.getName();
156
+ const aliasNode = spec.getAliasNode();
157
+ const localName = aliasNode?.getText() ?? originalName;
158
+ spec.setName(migration.rename);
159
+ if (localName !== migration.rename) {
160
+ spec.setAlias(localName);
161
+ } else {
162
+ spec.removeAlias();
163
+ }
164
+ notes.push(renameNote({
165
+ filePath: sourceFile.getFilePath(),
166
+ migration,
167
+ originalName
168
+ }));
169
+ }
170
+ function renameNote({ filePath, migration, originalName }) {
171
+ return `${filePath}: \`${originalName}\` is now \`${migration.rename}\` in \`${migration.to}\`. Codemod imported as \`${migration.rename} as ${originalName}\`; rename usages manually if you want to drop the alias.`;
172
+ }
173
+ function attachToTargetImport({ file, isTypeOnly, named, target }) {
174
+ const localName = named.alias ?? named.name;
175
+ const existing = findExistingTarget({
176
+ file,
177
+ isTypeOnly,
178
+ target
179
+ });
180
+ if (existing) {
181
+ const declTypeOnly = existing.isTypeOnly();
182
+ const alreadyHas = existing.getNamedImports().some((spec)=>(spec.getAliasNode()?.getText() ?? spec.getName()) === localName);
183
+ if (alreadyHas) {
184
+ return;
185
+ }
186
+ existing.addNamedImport({
187
+ name: named.name,
188
+ alias: named.alias,
189
+ isTypeOnly: !declTypeOnly && isTypeOnly
190
+ });
191
+ return;
192
+ }
193
+ file.addImportDeclaration({
194
+ isTypeOnly,
195
+ moduleSpecifier: target,
196
+ namedImports: [
197
+ {
198
+ name: named.name,
199
+ alias: named.alias
200
+ }
201
+ ]
202
+ });
203
+ }
204
+ function findExistingTarget({ file, isTypeOnly, target }) {
205
+ const candidates = file.getImportDeclarations().filter((decl)=>decl.getModuleSpecifierValue() === target);
206
+ if (candidates.length === 0) {
207
+ return undefined;
208
+ }
209
+ if (isTypeOnly) {
210
+ return candidates.find((decl)=>decl.isTypeOnly()) ?? candidates[0];
211
+ }
212
+ return candidates.find((decl)=>!decl.isTypeOnly()) ?? candidates[0];
213
+ }
214
+
215
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/migrate-aliased-exports/index.ts"],"sourcesContent":["import type { ImportDeclaration, ImportSpecifier, SourceFile } from 'ts-morph'\n\nimport type { Transform } from '../../types.js'\n\ntype Migration = {\n rename?: string\n to: string\n}\n\nconst SOURCE_MAP: Record<string, Record<string, Migration>> = {\n '@payloadcms/next/utilities': {\n addDataAndFileToRequest: { to: 'payload' },\n addLocalesToRequestFromData: { to: 'payload' },\n createPayloadRequest: { to: 'payload' },\n headersWithCors: { to: 'payload' },\n mergeHeaders: { to: 'payload' },\n sanitizeLocales: { to: 'payload' },\n },\n '@payloadcms/ui': {\n Column: { to: 'payload' },\n ListComponentClientProps: { rename: 'ListViewClientProps', to: 'payload' },\n ListComponentServerProps: { rename: 'ListViewServerProps', to: 'payload' },\n ListPreferences: { rename: 'CollectionPreferences', to: 'payload' },\n ListViewClientProps: { to: 'payload' },\n ListViewSlots: { to: 'payload' },\n },\n '@payloadcms/ui/shared': {\n EntityType: { to: 'payload/shared' },\n formatAdminURL: { to: 'payload/shared' },\n mergeListSearchAndWhere: { to: 'payload/shared' },\n },\n}\n\ntype MigratingSpec = {\n migration: Migration\n named: ImportSpecifier\n}\n\nexport const migrateAliasedExports: Transform = {\n name: 'migrate-aliased-exports',\n apply: ({ project }) => {\n const filesChanged = new Set<string>()\n const notes: string[] = []\n\n for (const file of project.getSourceFiles()) {\n let mutated = false\n\n for (const importDecl of [...file.getImportDeclarations()]) {\n const migrations = SOURCE_MAP[importDecl.getModuleSpecifierValue()]\n if (!migrations) {\n continue\n }\n\n const named = importDecl.getNamedImports()\n const migrating: MigratingSpec[] = []\n let kept = 0\n\n for (const spec of named) {\n const migration = migrations[spec.getName()]\n if (migration) {\n migrating.push({ migration, named: spec })\n } else {\n kept++\n }\n }\n\n if (migrating.length === 0) {\n continue\n }\n\n const targets = new Set(migrating.map(({ migration }) => migration.to))\n\n if (kept === 0 && targets.size === 1) {\n const [target] = [...targets]\n importDecl.setModuleSpecifier(target!)\n for (const { migration, named: spec } of migrating) {\n applyRename({ migration, notes, sourceFile: file, spec, target: target! })\n }\n mutated = true\n continue\n }\n\n for (const { migration, named: spec } of migrating) {\n const isTypeOnly = importDecl.isTypeOnly() || spec.isTypeOnly()\n const aliasNode = spec.getAliasNode()\n const localName = aliasNode?.getText() ?? spec.getName()\n const canonicalName = migration.rename ?? spec.getName()\n const alias = localName !== canonicalName ? localName : undefined\n\n spec.remove()\n\n attachToTargetImport({\n file,\n isTypeOnly,\n named: { name: canonicalName, alias },\n target: migration.to,\n })\n\n if (migration.rename) {\n notes.push(\n renameNote({ filePath: file.getFilePath(), migration, originalName: spec.getName() }),\n )\n }\n }\n\n const remaining = importDecl.getNamedImports()\n if (\n remaining.length === 0 &&\n !importDecl.getDefaultImport() &&\n !importDecl.getNamespaceImport()\n ) {\n importDecl.remove()\n }\n\n mutated = true\n }\n\n if (mutated) {\n filesChanged.add(file.getFilePath())\n }\n }\n\n return {\n filesChanged: [...filesChanged],\n ...(notes.length > 0 ? { notes } : {}),\n }\n },\n description:\n 'Move imports of aliased re-exports from @payloadcms/ui and @payloadcms/next/utilities to their canonical sources in `payload` / `payload/shared`. Renamed names (`ListPreferences` → `CollectionPreferences`, `ListComponentClientProps` → `ListViewClientProps`, `ListComponentServerProps` → `ListViewServerProps`) are imported using an `as` alias so existing usages keep compiling.',\n}\n\ntype ApplyRenameArgs = {\n migration: Migration\n notes: string[]\n sourceFile: SourceFile\n spec: ImportSpecifier\n target: string\n}\n\nfunction applyRename({ migration, notes, sourceFile, spec, target }: ApplyRenameArgs): void {\n if (!migration.rename) {\n return\n }\n\n const originalName = spec.getName()\n const aliasNode = spec.getAliasNode()\n const localName = aliasNode?.getText() ?? originalName\n\n spec.setName(migration.rename)\n\n if (localName !== migration.rename) {\n spec.setAlias(localName)\n } else {\n spec.removeAlias()\n }\n\n notes.push(renameNote({ filePath: sourceFile.getFilePath(), migration, originalName }))\n}\n\ntype RenameNoteArgs = {\n filePath: string\n migration: Migration\n originalName: string\n}\n\nfunction renameNote({ filePath, migration, originalName }: RenameNoteArgs): string {\n return `${filePath}: \\`${originalName}\\` is now \\`${migration.rename}\\` in \\`${migration.to}\\`. Codemod imported as \\`${migration.rename} as ${originalName}\\`; rename usages manually if you want to drop the alias.`\n}\n\ntype AttachToTargetArgs = {\n file: SourceFile\n isTypeOnly: boolean\n named: { alias?: string; name: string }\n target: string\n}\n\nfunction attachToTargetImport({ file, isTypeOnly, named, target }: AttachToTargetArgs): void {\n const localName = named.alias ?? named.name\n const existing = findExistingTarget({ file, isTypeOnly, target })\n\n if (existing) {\n const declTypeOnly = existing.isTypeOnly()\n const alreadyHas = existing\n .getNamedImports()\n .some((spec) => (spec.getAliasNode()?.getText() ?? spec.getName()) === localName)\n if (alreadyHas) {\n return\n }\n existing.addNamedImport({\n name: named.name,\n alias: named.alias,\n isTypeOnly: !declTypeOnly && isTypeOnly,\n })\n return\n }\n\n file.addImportDeclaration({\n isTypeOnly,\n moduleSpecifier: target,\n namedImports: [{ name: named.name, alias: named.alias }],\n })\n}\n\ntype FindExistingTargetArgs = {\n file: SourceFile\n isTypeOnly: boolean\n target: string\n}\n\nfunction findExistingTarget({\n file,\n isTypeOnly,\n target,\n}: FindExistingTargetArgs): ImportDeclaration | undefined {\n const candidates = file\n .getImportDeclarations()\n .filter((decl) => decl.getModuleSpecifierValue() === target)\n\n if (candidates.length === 0) {\n return undefined\n }\n\n if (isTypeOnly) {\n return candidates.find((decl) => decl.isTypeOnly()) ?? candidates[0]\n }\n\n return candidates.find((decl) => !decl.isTypeOnly()) ?? candidates[0]\n}\n"],"names":["SOURCE_MAP","addDataAndFileToRequest","to","addLocalesToRequestFromData","createPayloadRequest","headersWithCors","mergeHeaders","sanitizeLocales","Column","ListComponentClientProps","rename","ListComponentServerProps","ListPreferences","ListViewClientProps","ListViewSlots","EntityType","formatAdminURL","mergeListSearchAndWhere","migrateAliasedExports","name","apply","project","filesChanged","Set","notes","file","getSourceFiles","mutated","importDecl","getImportDeclarations","migrations","getModuleSpecifierValue","named","getNamedImports","migrating","kept","spec","migration","getName","push","length","targets","map","size","target","setModuleSpecifier","applyRename","sourceFile","isTypeOnly","aliasNode","getAliasNode","localName","getText","canonicalName","alias","undefined","remove","attachToTargetImport","renameNote","filePath","getFilePath","originalName","remaining","getDefaultImport","getNamespaceImport","add","description","setName","setAlias","removeAlias","existing","findExistingTarget","declTypeOnly","alreadyHas","some","addNamedImport","addImportDeclaration","moduleSpecifier","namedImports","candidates","filter","decl","find"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../../../src/transforms/migrate-aliased-exports/index.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,55 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { dirname, join } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { describe, expect, it } from 'vitest';
5
+ import { runTransform } from '../../utils/test-helpers.js';
6
+ import { migrateAliasedExports } from './index.js';
7
+ const here = dirname(fileURLToPath(import.meta.url));
8
+ const fixture = (name)=>readFile(join(here, name), 'utf8');
9
+ describe('migrate-aliased-exports', ()=>{
10
+ it('moves pass-through re-exports to canonical sources', async ()=>{
11
+ const input = await fixture('basic.input.ts');
12
+ const output = await fixture('basic.output.ts');
13
+ const result = await runTransform({
14
+ source: input,
15
+ transform: migrateAliasedExports
16
+ });
17
+ expect(result).toBe(output);
18
+ });
19
+ it('rewrites renamed types using `as` alias to preserve usages', async ()=>{
20
+ const input = await fixture('rename.input.ts');
21
+ const output = await fixture('rename.output.ts');
22
+ const result = await runTransform({
23
+ source: input,
24
+ transform: migrateAliasedExports
25
+ });
26
+ expect(result).toBe(output);
27
+ });
28
+ it('merges into existing import declaration from canonical source', async ()=>{
29
+ const input = await fixture('merge.input.ts');
30
+ const output = await fixture('merge.output.ts');
31
+ const result = await runTransform({
32
+ source: input,
33
+ transform: migrateAliasedExports
34
+ });
35
+ expect(result).toBe(output);
36
+ });
37
+ it('is idempotent on already-migrated source', async ()=>{
38
+ const output = await fixture('basic.output.ts');
39
+ const result = await runTransform({
40
+ source: output,
41
+ transform: migrateAliasedExports
42
+ });
43
+ expect(result).toBe(output);
44
+ });
45
+ it('leaves unrelated imports untouched', async ()=>{
46
+ const input = await fixture('non-matching.input.ts');
47
+ const result = await runTransform({
48
+ source: input,
49
+ transform: migrateAliasedExports
50
+ });
51
+ expect(result).toBe(input);
52
+ });
53
+ });
54
+
55
+ //# sourceMappingURL=index.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/migrate-aliased-exports/index.spec.ts"],"sourcesContent":["import { readFile } from 'node:fs/promises'\nimport { dirname, join } from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { describe, expect, it } from 'vitest'\n\nimport { runTransform } from '../../utils/test-helpers.js'\nimport { migrateAliasedExports } from './index.js'\n\nconst here = dirname(fileURLToPath(import.meta.url))\nconst fixture = (name: string) => readFile(join(here, name), 'utf8')\n\ndescribe('migrate-aliased-exports', () => {\n it('moves pass-through re-exports to canonical sources', async () => {\n const input = await fixture('basic.input.ts')\n const output = await fixture('basic.output.ts')\n\n const result = await runTransform({ source: input, transform: migrateAliasedExports })\n\n expect(result).toBe(output)\n })\n\n it('rewrites renamed types using `as` alias to preserve usages', async () => {\n const input = await fixture('rename.input.ts')\n const output = await fixture('rename.output.ts')\n\n const result = await runTransform({ source: input, transform: migrateAliasedExports })\n\n expect(result).toBe(output)\n })\n\n it('merges into existing import declaration from canonical source', async () => {\n const input = await fixture('merge.input.ts')\n const output = await fixture('merge.output.ts')\n\n const result = await runTransform({ source: input, transform: migrateAliasedExports })\n\n expect(result).toBe(output)\n })\n\n it('is idempotent on already-migrated source', async () => {\n const output = await fixture('basic.output.ts')\n\n const result = await runTransform({ source: output, transform: migrateAliasedExports })\n\n expect(result).toBe(output)\n })\n\n it('leaves unrelated imports untouched', async () => {\n const input = await fixture('non-matching.input.ts')\n\n const result = await runTransform({ source: input, transform: migrateAliasedExports })\n\n expect(result).toBe(input)\n })\n})\n"],"names":["readFile","dirname","join","fileURLToPath","describe","expect","it","runTransform","migrateAliasedExports","here","url","fixture","name","input","output","result","source","transform","toBe"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,mBAAkB;AAC3C,SAASC,OAAO,EAAEC,IAAI,QAAQ,YAAW;AACzC,SAASC,aAAa,QAAQ,WAAU;AACxC,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAE7C,SAASC,YAAY,QAAQ,8BAA6B;AAC1D,SAASC,qBAAqB,QAAQ,aAAY;AAElD,MAAMC,OAAOR,QAAQE,cAAc,YAAYO,GAAG;AAClD,MAAMC,UAAU,CAACC,OAAiBZ,SAASE,KAAKO,MAAMG,OAAO;AAE7DR,SAAS,2BAA2B;IAClCE,GAAG,sDAAsD;QACvD,MAAMO,QAAQ,MAAMF,QAAQ;QAC5B,MAAMG,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAAsB;QAEpFH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;IAEAR,GAAG,8DAA8D;QAC/D,MAAMO,QAAQ,MAAMF,QAAQ;QAC5B,MAAMG,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAAsB;QAEpFH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;IAEAR,GAAG,iEAAiE;QAClE,MAAMO,QAAQ,MAAMF,QAAQ;QAC5B,MAAMG,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAAsB;QAEpFH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;IAEAR,GAAG,4CAA4C;QAC7C,MAAMQ,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQF;YAAQG,WAAWT;QAAsB;QAErFH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;IAEAR,GAAG,sCAAsC;QACvC,MAAMO,QAAQ,MAAMF,QAAQ;QAE5B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAAsB;QAEpFH,OAAOU,QAAQG,IAAI,CAACL;IACtB;AACF"}
@@ -0,0 +1,6 @@
1
+ import { APIError } from 'payload';
2
+ import { headersWithCors } from '@payloadcms/next/utilities';
3
+ export const fail = ()=>new APIError('boom', 500);
4
+ export const cors = headersWithCors;
5
+
6
+ //# sourceMappingURL=merge.input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/migrate-aliased-exports/merge.input.ts"],"sourcesContent":["import type { Column } from '@payloadcms/ui'\nimport { APIError } from 'payload'\n\nimport { headersWithCors } from '@payloadcms/next/utilities'\n\nexport const fail = () => new APIError('boom', 500)\nexport const cors = headersWithCors\nexport type Col = Column\n"],"names":["APIError","headersWithCors","fail","cors"],"mappings":"AACA,SAASA,QAAQ,QAAQ,UAAS;AAElC,SAASC,eAAe,QAAQ,6BAA4B;AAE5D,OAAO,MAAMC,OAAO,IAAM,IAAIF,SAAS,QAAQ,KAAI;AACnD,OAAO,MAAMG,OAAOF,gBAAe"}
@@ -0,0 +1,6 @@
1
+ import { APIError } from 'payload';
2
+ import { headersWithCors } from 'payload';
3
+ export const fail = ()=>new APIError('boom', 500);
4
+ export const cors = headersWithCors;
5
+
6
+ //# sourceMappingURL=merge.output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/migrate-aliased-exports/merge.output.ts"],"sourcesContent":["import type { Column } from 'payload'\nimport { APIError } from 'payload'\n\nimport { headersWithCors } from 'payload'\n\nexport const fail = () => new APIError('boom', 500)\nexport const cors = headersWithCors\nexport type Col = Column\n"],"names":["APIError","headersWithCors","fail","cors"],"mappings":"AACA,SAASA,QAAQ,QAAQ,UAAS;AAElC,SAASC,eAAe,QAAQ,UAAS;AAEzC,OAAO,MAAMC,OAAO,IAAM,IAAIF,SAAS,QAAQ,KAAI;AACnD,OAAO,MAAMG,OAAOF,gBAAe"}
@@ -0,0 +1,6 @@
1
+ import { Button } from '@payloadcms/ui';
2
+ import { formatAdminURL } from 'payload/shared';
3
+ export const Thing = (props)=>Button;
4
+ export const url = formatAdminURL;
5
+
6
+ //# sourceMappingURL=non-matching.input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/migrate-aliased-exports/non-matching.input.ts"],"sourcesContent":["import type { Field } from 'payload'\nimport { Button } from '@payloadcms/ui'\n\nimport { formatAdminURL } from 'payload/shared'\n\nexport const Thing = (props: { field: Field }) => Button\nexport const url = formatAdminURL\n"],"names":["Button","formatAdminURL","Thing","props","url"],"mappings":"AACA,SAASA,MAAM,QAAQ,iBAAgB;AAEvC,SAASC,cAAc,QAAQ,iBAAgB;AAE/C,OAAO,MAAMC,QAAQ,CAACC,QAA4BH,OAAM;AACxD,OAAO,MAAMI,MAAMH,eAAc"}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=rename.input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/migrate-aliased-exports/rename.input.ts"],"sourcesContent":["import type {\n ListComponentClientProps,\n ListComponentServerProps,\n ListPreferences,\n} from '@payloadcms/ui'\n\nexport type Props = {\n client: ListComponentClientProps\n preferences: ListPreferences\n server: ListComponentServerProps\n}\n"],"names":[],"mappings":"AAMA,WAIC"}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=rename.output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/migrate-aliased-exports/rename.output.ts"],"sourcesContent":["import type {\n ListViewClientProps as ListComponentClientProps,\n ListViewServerProps as ListComponentServerProps,\n CollectionPreferences as ListPreferences,\n} from 'payload'\n\nexport type Props = {\n client: ListComponentClientProps\n preferences: ListPreferences\n server: ListComponentServerProps\n}\n"],"names":[],"mappings":"AAMA,WAIC"}
@@ -0,0 +1,16 @@
1
+ import { azureStorage } from '@payloadcms/storage-azure';
2
+ import { buildConfig } from 'payload';
3
+ export default buildConfig({
4
+ storage: [
5
+ azureStorage({
6
+ collections: {
7
+ media: true
8
+ },
9
+ clientUploads: {
10
+ chunkLargeFiles: true
11
+ }
12
+ })
13
+ ]
14
+ });
15
+
16
+ //# sourceMappingURL=basic.input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/migrate-azure-chunk-large-files/basic.input.ts"],"sourcesContent":["import { azureStorage } from '@payloadcms/storage-azure'\nimport { buildConfig } from 'payload'\n\nexport default buildConfig({\n storage: [\n azureStorage({\n collections: { media: true },\n clientUploads: { chunkLargeFiles: true },\n }),\n ],\n})\n"],"names":["azureStorage","buildConfig","storage","collections","media","clientUploads","chunkLargeFiles"],"mappings":"AAAA,SAASA,YAAY,QAAQ,4BAA2B;AACxD,SAASC,WAAW,QAAQ,UAAS;AAErC,eAAeA,YAAY;IACzBC,SAAS;QACPF,aAAa;YACXG,aAAa;gBAAEC,OAAO;YAAK;YAC3BC,eAAe;gBAAEC,iBAAiB;YAAK;QACzC;KACD;AACH,GAAE"}
@@ -0,0 +1,14 @@
1
+ import { azureStorage } from '@payloadcms/storage-azure';
2
+ import { buildConfig } from 'payload';
3
+ export default buildConfig({
4
+ storage: [
5
+ azureStorage({
6
+ collections: {
7
+ media: true
8
+ },
9
+ clientUploads: true
10
+ })
11
+ ]
12
+ });
13
+
14
+ //# sourceMappingURL=basic.output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/migrate-azure-chunk-large-files/basic.output.ts"],"sourcesContent":["import { azureStorage } from '@payloadcms/storage-azure'\nimport { buildConfig } from 'payload'\n\nexport default buildConfig({\n storage: [\n azureStorage({\n collections: { media: true },\n clientUploads: true,\n }),\n ],\n})\n"],"names":["azureStorage","buildConfig","storage","collections","media","clientUploads"],"mappings":"AAAA,SAASA,YAAY,QAAQ,4BAA2B;AACxD,SAASC,WAAW,QAAQ,UAAS;AAErC,eAAeA,YAAY;IACzBC,SAAS;QACPF,aAAa;YACXG,aAAa;gBAAEC,OAAO;YAAK;YAC3BC,eAAe;QACjB;KACD;AACH,GAAE"}
@@ -0,0 +1,3 @@
1
+ import type { Transform } from '../../types.js';
2
+ export declare const migrateAzureChunkLargeFiles: Transform;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transforms/migrate-azure-chunk-large-files/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C,eAAO,MAAM,2BAA2B,EAAE,SA4DzC,CAAA"}