@payloadcms/codemod 4.0.0-internal.b8e7c89 → 4.0.0-internal.cb69780

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 (347) hide show
  1. package/README.md +91 -28
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +41 -27
  4. package/dist/cli.js.map +1 -1
  5. package/dist/cli.parseFlags.d.ts +14 -0
  6. package/dist/cli.parseFlags.d.ts.map +1 -1
  7. package/dist/cli.parseFlags.js +29 -2
  8. package/dist/cli.parseFlags.js.map +1 -1
  9. package/dist/registry.d.ts.map +1 -1
  10. package/dist/registry.js +12 -0
  11. package/dist/registry.js.map +1 -1
  12. package/dist/runbook/payload-v4-upgrade.md +55 -0
  13. package/dist/runbook/v4.mdx +2168 -0
  14. package/dist/transforms/add-override-access-true/basic.input.js +41 -0
  15. package/dist/transforms/add-override-access-true/basic.input.js.map +1 -0
  16. package/dist/transforms/add-override-access-true/basic.output.js +50 -0
  17. package/dist/transforms/add-override-access-true/basic.output.js.map +1 -0
  18. package/dist/transforms/add-override-access-true/comment-between-properties.input.js +11 -0
  19. package/dist/transforms/add-override-access-true/comment-between-properties.input.js.map +1 -0
  20. package/dist/transforms/add-override-access-true/comment-between-properties.output.js +12 -0
  21. package/dist/transforms/add-override-access-true/comment-between-properties.output.js.map +1 -0
  22. package/dist/transforms/add-override-access-true/index.d.ts +20 -0
  23. package/dist/transforms/add-override-access-true/index.d.ts.map +1 -0
  24. package/dist/transforms/add-override-access-true/index.js +208 -0
  25. package/dist/transforms/add-override-access-true/index.js.map +1 -0
  26. package/dist/transforms/add-override-access-true/javascript.input.d.ts +6 -0
  27. package/dist/transforms/add-override-access-true/javascript.input.d.ts.map +1 -0
  28. package/dist/transforms/add-override-access-true/javascript.input.js +24 -0
  29. package/dist/transforms/add-override-access-true/javascript.input.js.map +1 -0
  30. package/dist/transforms/add-override-access-true/javascript.output.d.ts +6 -0
  31. package/dist/transforms/add-override-access-true/javascript.output.d.ts.map +1 -0
  32. package/dist/transforms/add-override-access-true/javascript.output.js +26 -0
  33. package/dist/transforms/add-override-access-true/javascript.output.js.map +1 -0
  34. package/dist/transforms/add-override-access-true/non-matching.input.js +42 -0
  35. package/dist/transforms/add-override-access-true/non-matching.input.js.map +1 -0
  36. package/dist/transforms/add-override-access-true/non-matching.output.js +42 -0
  37. package/dist/transforms/add-override-access-true/non-matching.output.js.map +1 -0
  38. package/dist/transforms/add-override-access-true/single-line.input.js +13 -0
  39. package/dist/transforms/add-override-access-true/single-line.input.js.map +1 -0
  40. package/dist/transforms/add-override-access-true/single-line.output.js +17 -0
  41. package/dist/transforms/add-override-access-true/single-line.output.js.map +1 -0
  42. package/dist/transforms/add-override-access-true/trailing-comment.input.js +10 -0
  43. package/dist/transforms/add-override-access-true/trailing-comment.input.js.map +1 -0
  44. package/dist/transforms/add-override-access-true/trailing-comment.output.js +12 -0
  45. package/dist/transforms/add-override-access-true/trailing-comment.output.js.map +1 -0
  46. package/dist/transforms/migrate-aliased-exports/index.d.ts.map +1 -1
  47. package/dist/transforms/migrate-aliased-exports/index.js +6 -5
  48. package/dist/transforms/migrate-aliased-exports/index.js.map +1 -1
  49. package/dist/transforms/migrate-aliased-exports/request.input.js +6 -0
  50. package/dist/transforms/migrate-aliased-exports/request.input.js.map +1 -0
  51. package/dist/transforms/migrate-aliased-exports/request.output.js +5 -0
  52. package/dist/transforms/migrate-aliased-exports/request.output.js.map +1 -0
  53. package/dist/transforms/migrate-authorship-default/already-set.input.js +15 -0
  54. package/dist/transforms/migrate-authorship-default/already-set.input.js.map +1 -0
  55. package/dist/transforms/migrate-authorship-default/already-set.output.js +15 -0
  56. package/dist/transforms/migrate-authorship-default/already-set.output.js.map +1 -0
  57. package/dist/transforms/migrate-authorship-default/basic.input.js +16 -0
  58. package/dist/transforms/migrate-authorship-default/basic.input.js.map +1 -0
  59. package/dist/transforms/migrate-authorship-default/basic.output.js +18 -0
  60. package/dist/transforms/migrate-authorship-default/basic.output.js.map +1 -0
  61. package/dist/transforms/migrate-authorship-default/build-config.input.js +32 -0
  62. package/dist/transforms/migrate-authorship-default/build-config.input.js.map +1 -0
  63. package/dist/transforms/migrate-authorship-default/build-config.output.js +35 -0
  64. package/dist/transforms/migrate-authorship-default/build-config.output.js.map +1 -0
  65. package/dist/transforms/migrate-authorship-default/globals.input.js +16 -0
  66. package/dist/transforms/migrate-authorship-default/globals.input.js.map +1 -0
  67. package/dist/transforms/migrate-authorship-default/globals.output.js +17 -0
  68. package/dist/transforms/migrate-authorship-default/globals.output.js.map +1 -0
  69. package/dist/transforms/migrate-authorship-default/index.d.ts +11 -0
  70. package/dist/transforms/migrate-authorship-default/index.d.ts.map +1 -0
  71. package/dist/transforms/migrate-authorship-default/index.js +141 -0
  72. package/dist/transforms/migrate-authorship-default/index.js.map +1 -0
  73. package/dist/transforms/migrate-authorship-default/non-matching.input.js +18 -0
  74. package/dist/transforms/migrate-authorship-default/non-matching.input.js.map +1 -0
  75. package/dist/transforms/migrate-authorship-default/non-matching.output.js +18 -0
  76. package/dist/transforms/migrate-authorship-default/non-matching.output.js.map +1 -0
  77. package/dist/transforms/migrate-authorship-default/satisfies.input.js +11 -0
  78. package/dist/transforms/migrate-authorship-default/satisfies.input.js.map +1 -0
  79. package/dist/transforms/migrate-authorship-default/satisfies.output.js +13 -0
  80. package/dist/transforms/migrate-authorship-default/satisfies.output.js.map +1 -0
  81. package/dist/transforms/migrate-field-component-types/basic.input.js +8 -0
  82. package/dist/transforms/migrate-field-component-types/basic.input.js.map +1 -0
  83. package/dist/transforms/migrate-field-component-types/basic.output.js +8 -0
  84. package/dist/transforms/migrate-field-component-types/basic.output.js.map +1 -0
  85. package/dist/transforms/migrate-field-component-types/index.d.ts +3 -0
  86. package/dist/transforms/migrate-field-component-types/index.d.ts.map +1 -0
  87. package/dist/transforms/migrate-field-component-types/index.js +616 -0
  88. package/dist/transforms/migrate-field-component-types/index.js.map +1 -0
  89. package/dist/transforms/migrate-payload-request-creation/aliases.input.js +8 -0
  90. package/dist/transforms/migrate-payload-request-creation/aliases.input.js.map +1 -0
  91. package/dist/transforms/migrate-payload-request-creation/aliases.output.js +31 -0
  92. package/dist/transforms/migrate-payload-request-creation/aliases.output.js.map +1 -0
  93. package/dist/transforms/migrate-payload-request-creation/collision.input.js +9 -0
  94. package/dist/transforms/migrate-payload-request-creation/collision.input.js.map +1 -0
  95. package/dist/transforms/migrate-payload-request-creation/comments.input.js +9 -0
  96. package/dist/transforms/migrate-payload-request-creation/comments.input.js.map +1 -0
  97. package/dist/transforms/migrate-payload-request-creation/comments.output.js +34 -0
  98. package/dist/transforms/migrate-payload-request-creation/comments.output.js.map +1 -0
  99. package/dist/transforms/migrate-payload-request-creation/empty.input.js +5 -0
  100. package/dist/transforms/migrate-payload-request-creation/empty.input.js.map +1 -0
  101. package/dist/transforms/migrate-payload-request-creation/empty.output.js +7 -0
  102. package/dist/transforms/migrate-payload-request-creation/empty.output.js.map +1 -0
  103. package/dist/transforms/migrate-payload-request-creation/evaluation-order.input.js +10 -0
  104. package/dist/transforms/migrate-payload-request-creation/evaluation-order.input.js.map +1 -0
  105. package/dist/transforms/migrate-payload-request-creation/expression.input.js +8 -0
  106. package/dist/transforms/migrate-payload-request-creation/expression.input.js.map +1 -0
  107. package/dist/transforms/migrate-payload-request-creation/expression.output.js +8 -0
  108. package/dist/transforms/migrate-payload-request-creation/expression.output.js.map +1 -0
  109. package/dist/transforms/migrate-payload-request-creation/getters.input.js +52 -0
  110. package/dist/transforms/migrate-payload-request-creation/getters.input.js.map +1 -0
  111. package/dist/transforms/migrate-payload-request-creation/index.d.ts +3 -0
  112. package/dist/transforms/migrate-payload-request-creation/index.d.ts.map +1 -0
  113. package/dist/transforms/migrate-payload-request-creation/index.js +236 -0
  114. package/dist/transforms/migrate-payload-request-creation/index.js.map +1 -0
  115. package/dist/transforms/migrate-payload-request-creation/internal.input.js +6 -0
  116. package/dist/transforms/migrate-payload-request-creation/internal.input.js.map +1 -0
  117. package/dist/transforms/migrate-payload-request-creation/internal.output.js +6 -0
  118. package/dist/transforms/migrate-payload-request-creation/internal.output.js.map +1 -0
  119. package/dist/transforms/migrate-payload-request-creation/non-matching.input.js +5 -0
  120. package/dist/transforms/migrate-payload-request-creation/non-matching.input.js.map +1 -0
  121. package/dist/transforms/migrate-payload-request-creation/populated.input.js +7 -0
  122. package/dist/transforms/migrate-payload-request-creation/populated.input.js.map +1 -0
  123. package/dist/transforms/migrate-payload-request-creation/populated.output.js +30 -0
  124. package/dist/transforms/migrate-payload-request-creation/populated.output.js.map +1 -0
  125. package/dist/transforms/migrate-payload-request-creation/shadowed.input.js +7 -0
  126. package/dist/transforms/migrate-payload-request-creation/shadowed.input.js.map +1 -0
  127. package/dist/transforms/migrate-payload-request-creation/shadowed.output.js +9 -0
  128. package/dist/transforms/migrate-payload-request-creation/shadowed.output.js.map +1 -0
  129. package/dist/transforms/migrate-payload-request-creation/shorthand.input.js +12 -0
  130. package/dist/transforms/migrate-payload-request-creation/shorthand.input.js.map +1 -0
  131. package/dist/transforms/migrate-payload-request-creation/shorthand.output.js +12 -0
  132. package/dist/transforms/migrate-payload-request-creation/shorthand.output.js.map +1 -0
  133. package/dist/transforms/migrate-payload-request-creation/unsupported.input.js +9 -0
  134. package/dist/transforms/migrate-payload-request-creation/unsupported.input.js.map +1 -0
  135. package/dist/transforms/migrate-versions-default/index.js +5 -5
  136. package/dist/transforms/migrate-versions-default/index.js.map +1 -1
  137. package/dist/transforms/remove-default-locale-publish-option/all-value.input.js +13 -0
  138. package/dist/transforms/remove-default-locale-publish-option/all-value.input.js.map +1 -0
  139. package/dist/transforms/remove-default-locale-publish-option/basic.input.js +13 -0
  140. package/dist/transforms/remove-default-locale-publish-option/basic.input.js.map +1 -0
  141. package/dist/transforms/remove-default-locale-publish-option/basic.output.js +12 -0
  142. package/dist/transforms/remove-default-locale-publish-option/basic.output.js.map +1 -0
  143. package/dist/transforms/remove-default-locale-publish-option/dynamic.input.js +17 -0
  144. package/dist/transforms/remove-default-locale-publish-option/dynamic.input.js.map +1 -0
  145. package/dist/transforms/remove-default-locale-publish-option/index.d.ts +10 -0
  146. package/dist/transforms/remove-default-locale-publish-option/index.d.ts.map +1 -0
  147. package/dist/transforms/remove-default-locale-publish-option/index.js +103 -0
  148. package/dist/transforms/remove-default-locale-publish-option/index.js.map +1 -0
  149. package/dist/transforms/remove-default-locale-publish-option/no-match.input.js +10 -0
  150. package/dist/transforms/remove-default-locale-publish-option/no-match.input.js.map +1 -0
  151. package/dist/transforms/remove-default-locale-publish-option/no-match.output.js +10 -0
  152. package/dist/transforms/remove-default-locale-publish-option/no-match.output.js.map +1 -0
  153. package/dist/transforms/remove-default-locale-publish-option/reassigned.input.js +22 -0
  154. package/dist/transforms/remove-default-locale-publish-option/reassigned.input.js.map +1 -0
  155. package/dist/transforms/remove-default-locale-publish-option/shorthand.input.js +14 -0
  156. package/dist/transforms/remove-default-locale-publish-option/shorthand.input.js.map +1 -0
  157. package/dist/transforms/remove-default-locale-publish-option/shorthand.output.js +13 -0
  158. package/dist/transforms/remove-default-locale-publish-option/shorthand.output.js.map +1 -0
  159. package/dist/transforms/remove-publish-specific-locale/index.d.ts.map +1 -1
  160. package/dist/transforms/remove-publish-specific-locale/index.js.map +1 -1
  161. package/dist/transforms/remove-storage-always-insert-fields/aliased.input.js +11 -0
  162. package/dist/transforms/remove-storage-always-insert-fields/aliased.input.js.map +1 -0
  163. package/dist/transforms/remove-storage-always-insert-fields/aliased.output.js +10 -0
  164. package/dist/transforms/remove-storage-always-insert-fields/aliased.output.js.map +1 -0
  165. package/dist/transforms/remove-storage-always-insert-fields/basic.input.js +54 -0
  166. package/dist/transforms/remove-storage-always-insert-fields/basic.input.js.map +1 -0
  167. package/dist/transforms/remove-storage-always-insert-fields/basic.output.js +48 -0
  168. package/dist/transforms/remove-storage-always-insert-fields/basic.output.js.map +1 -0
  169. package/dist/transforms/remove-storage-always-insert-fields/index.d.ts +3 -0
  170. package/dist/transforms/remove-storage-always-insert-fields/index.d.ts.map +1 -0
  171. package/dist/transforms/remove-storage-always-insert-fields/index.js +71 -0
  172. package/dist/transforms/remove-storage-always-insert-fields/index.js.map +1 -0
  173. package/dist/transforms/remove-storage-always-insert-fields/no-match.input.js +27 -0
  174. package/dist/transforms/remove-storage-always-insert-fields/no-match.input.js.map +1 -0
  175. package/dist/transforms/remove-storage-always-insert-fields/no-match.output.js +27 -0
  176. package/dist/transforms/remove-storage-always-insert-fields/no-match.output.js.map +1 -0
  177. package/dist/transforms/remove-versions-true/index.js +4 -4
  178. package/dist/transforms/remove-versions-true/index.js.map +1 -1
  179. package/dist/upgrade/defaultTag.d.ts +9 -0
  180. package/dist/upgrade/defaultTag.d.ts.map +1 -0
  181. package/dist/upgrade/defaultTag.js +25 -0
  182. package/dist/upgrade/defaultTag.js.map +1 -0
  183. package/dist/upgrade/detectPackageManager.d.ts +8 -0
  184. package/dist/upgrade/detectPackageManager.d.ts.map +1 -0
  185. package/dist/upgrade/detectPackageManager.js +38 -0
  186. package/dist/upgrade/detectPackageManager.js.map +1 -0
  187. package/dist/upgrade/dispatch.d.ts +38 -0
  188. package/dist/upgrade/dispatch.d.ts.map +1 -0
  189. package/dist/upgrade/dispatch.js +132 -0
  190. package/dist/upgrade/dispatch.js.map +1 -0
  191. package/dist/upgrade/index.d.ts +25 -0
  192. package/dist/upgrade/index.d.ts.map +1 -0
  193. package/dist/upgrade/index.js +209 -0
  194. package/dist/upgrade/index.js.map +1 -0
  195. package/dist/upgrade/prompt.d.ts +14 -0
  196. package/dist/upgrade/prompt.d.ts.map +1 -0
  197. package/dist/upgrade/prompt.js +77 -0
  198. package/dist/upgrade/prompt.js.map +1 -0
  199. package/dist/upgrade/report.d.ts +21 -0
  200. package/dist/upgrade/report.d.ts.map +1 -0
  201. package/dist/upgrade/report.js +47 -0
  202. package/dist/upgrade/report.js.map +1 -0
  203. package/dist/upgrade/resolveVersions.d.ts +13 -0
  204. package/dist/upgrade/resolveVersions.d.ts.map +1 -0
  205. package/dist/upgrade/resolveVersions.js +55 -0
  206. package/dist/upgrade/resolveVersions.js.map +1 -0
  207. package/dist/upgrade/rewritePackageJson.d.ts +32 -0
  208. package/dist/upgrade/rewritePackageJson.d.ts.map +1 -0
  209. package/dist/upgrade/rewritePackageJson.js +123 -0
  210. package/dist/upgrade/rewritePackageJson.js.map +1 -0
  211. package/dist/upgrade/runInstall.d.ts +16 -0
  212. package/dist/upgrade/runInstall.d.ts.map +1 -0
  213. package/dist/upgrade/runInstall.js +17 -0
  214. package/dist/upgrade/runInstall.js.map +1 -0
  215. package/dist/upgrade/selectAgent.d.ts +45 -0
  216. package/dist/upgrade/selectAgent.d.ts.map +1 -0
  217. package/dist/upgrade/selectAgent.js +54 -0
  218. package/dist/upgrade/selectAgent.js.map +1 -0
  219. package/dist/upgrade/selfCommand.d.ts +13 -0
  220. package/dist/upgrade/selfCommand.d.ts.map +1 -0
  221. package/dist/upgrade/selfCommand.js +17 -0
  222. package/dist/upgrade/selfCommand.js.map +1 -0
  223. package/dist/upgrade/types.d.ts +47 -0
  224. package/dist/upgrade/types.d.ts.map +1 -0
  225. package/dist/upgrade/types.js +11 -0
  226. package/dist/upgrade/types.js.map +1 -0
  227. package/dist/utils/project.d.ts +4 -0
  228. package/dist/utils/project.d.ts.map +1 -0
  229. package/dist/utils/project.js +30 -0
  230. package/dist/utils/project.js.map +1 -0
  231. package/package.json +8 -4
  232. package/dist/cli.parseFlags.spec.d.ts +0 -2
  233. package/dist/cli.parseFlags.spec.d.ts.map +0 -1
  234. package/dist/cli.parseFlags.spec.js +0 -49
  235. package/dist/cli.parseFlags.spec.js.map +0 -1
  236. package/dist/runner.spec.d.ts +0 -2
  237. package/dist/runner.spec.d.ts.map +0 -1
  238. package/dist/runner.spec.js +0 -88
  239. package/dist/runner.spec.js.map +0 -1
  240. package/dist/transforms/example-noop/index.spec.d.ts +0 -2
  241. package/dist/transforms/example-noop/index.spec.d.ts.map +0 -1
  242. package/dist/transforms/example-noop/index.spec.js +0 -29
  243. package/dist/transforms/example-noop/index.spec.js.map +0 -1
  244. package/dist/transforms/globals-components-edit/index.spec.d.ts +0 -2
  245. package/dist/transforms/globals-components-edit/index.spec.d.ts.map +0 -1
  246. package/dist/transforms/globals-components-edit/index.spec.js +0 -37
  247. package/dist/transforms/globals-components-edit/index.spec.js.map +0 -1
  248. package/dist/transforms/migrate-after-operation-read/index.spec.d.ts +0 -2
  249. package/dist/transforms/migrate-after-operation-read/index.spec.d.ts.map +0 -1
  250. package/dist/transforms/migrate-after-operation-read/index.spec.js +0 -62
  251. package/dist/transforms/migrate-after-operation-read/index.spec.js.map +0 -1
  252. package/dist/transforms/migrate-aliased-exports/index.spec.d.ts +0 -2
  253. package/dist/transforms/migrate-aliased-exports/index.spec.d.ts.map +0 -1
  254. package/dist/transforms/migrate-aliased-exports/index.spec.js +0 -55
  255. package/dist/transforms/migrate-aliased-exports/index.spec.js.map +0 -1
  256. package/dist/transforms/migrate-azure-chunk-large-files/index.spec.d.ts +0 -2
  257. package/dist/transforms/migrate-azure-chunk-large-files/index.spec.d.ts.map +0 -1
  258. package/dist/transforms/migrate-azure-chunk-large-files/index.spec.js +0 -67
  259. package/dist/transforms/migrate-azure-chunk-large-files/index.spec.js.map +0 -1
  260. package/dist/transforms/migrate-block-references-to-blocks/index.spec.d.ts +0 -2
  261. package/dist/transforms/migrate-block-references-to-blocks/index.spec.d.ts.map +0 -1
  262. package/dist/transforms/migrate-block-references-to-blocks/index.spec.js +0 -45
  263. package/dist/transforms/migrate-block-references-to-blocks/index.spec.js.map +0 -1
  264. package/dist/transforms/migrate-build-script/index.spec.d.ts +0 -2
  265. package/dist/transforms/migrate-build-script/index.spec.d.ts.map +0 -1
  266. package/dist/transforms/migrate-build-script/index.spec.js +0 -81
  267. package/dist/transforms/migrate-build-script/index.spec.js.map +0 -1
  268. package/dist/transforms/migrate-db-types-subpath/index.spec.d.ts +0 -2
  269. package/dist/transforms/migrate-db-types-subpath/index.spec.d.ts.map +0 -1
  270. package/dist/transforms/migrate-db-types-subpath/index.spec.js +0 -46
  271. package/dist/transforms/migrate-db-types-subpath/index.spec.js.map +0 -1
  272. package/dist/transforms/migrate-disabled-fields/index.spec.d.ts +0 -2
  273. package/dist/transforms/migrate-disabled-fields/index.spec.d.ts.map +0 -1
  274. package/dist/transforms/migrate-disabled-fields/index.spec.js +0 -73
  275. package/dist/transforms/migrate-disabled-fields/index.spec.js.map +0 -1
  276. package/dist/transforms/migrate-document-title-context/index.spec.d.ts +0 -2
  277. package/dist/transforms/migrate-document-title-context/index.spec.d.ts.map +0 -1
  278. package/dist/transforms/migrate-document-title-context/index.spec.js +0 -86
  279. package/dist/transforms/migrate-document-title-context/index.spec.js.map +0 -1
  280. package/dist/transforms/migrate-force-select/index.spec.d.ts +0 -2
  281. package/dist/transforms/migrate-force-select/index.spec.d.ts.map +0 -1
  282. package/dist/transforms/migrate-force-select/index.spec.js +0 -107
  283. package/dist/transforms/migrate-force-select/index.spec.js.map +0 -1
  284. package/dist/transforms/migrate-hide-api-url/index.spec.d.ts +0 -2
  285. package/dist/transforms/migrate-hide-api-url/index.spec.d.ts.map +0 -1
  286. package/dist/transforms/migrate-hide-api-url/index.spec.js +0 -118
  287. package/dist/transforms/migrate-hide-api-url/index.spec.js.map +0 -1
  288. package/dist/transforms/migrate-import-export-hooks/index.spec.d.ts +0 -2
  289. package/dist/transforms/migrate-import-export-hooks/index.spec.d.ts.map +0 -1
  290. package/dist/transforms/migrate-import-export-hooks/index.spec.js +0 -65
  291. package/dist/transforms/migrate-import-export-hooks/index.spec.js.map +0 -1
  292. package/dist/transforms/migrate-list-view-select-api/index.spec.d.ts +0 -2
  293. package/dist/transforms/migrate-list-view-select-api/index.spec.d.ts.map +0 -1
  294. package/dist/transforms/migrate-list-view-select-api/index.spec.js +0 -37
  295. package/dist/transforms/migrate-list-view-select-api/index.spec.js.map +0 -1
  296. package/dist/transforms/migrate-next-generate-viewport-export/index.spec.d.ts +0 -2
  297. package/dist/transforms/migrate-next-generate-viewport-export/index.spec.d.ts.map +0 -1
  298. package/dist/transforms/migrate-next-generate-viewport-export/index.spec.js +0 -41
  299. package/dist/transforms/migrate-next-generate-viewport-export/index.spec.js.map +0 -1
  300. package/dist/transforms/migrate-next-subpath-exports/index.spec.d.ts +0 -2
  301. package/dist/transforms/migrate-next-subpath-exports/index.spec.d.ts.map +0 -1
  302. package/dist/transforms/migrate-next-subpath-exports/index.spec.js +0 -46
  303. package/dist/transforms/migrate-next-subpath-exports/index.spec.js.map +0 -1
  304. package/dist/transforms/migrate-slug-field/index.spec.d.ts +0 -2
  305. package/dist/transforms/migrate-slug-field/index.spec.d.ts.map +0 -1
  306. package/dist/transforms/migrate-slug-field/index.spec.js +0 -47
  307. package/dist/transforms/migrate-slug-field/index.spec.js.map +0 -1
  308. package/dist/transforms/migrate-storage-adapters-to-config/index.spec.d.ts +0 -2
  309. package/dist/transforms/migrate-storage-adapters-to-config/index.spec.d.ts.map +0 -1
  310. package/dist/transforms/migrate-storage-adapters-to-config/index.spec.js +0 -85
  311. package/dist/transforms/migrate-storage-adapters-to-config/index.spec.js.map +0 -1
  312. package/dist/transforms/migrate-versions-default/index.spec.d.ts +0 -2
  313. package/dist/transforms/migrate-versions-default/index.spec.d.ts.map +0 -1
  314. package/dist/transforms/migrate-versions-default/index.spec.js +0 -81
  315. package/dist/transforms/migrate-versions-default/index.spec.js.map +0 -1
  316. package/dist/transforms/remove-group-by-true/index.spec.d.ts +0 -2
  317. package/dist/transforms/remove-group-by-true/index.spec.d.ts.map +0 -1
  318. package/dist/transforms/remove-group-by-true/index.spec.js +0 -47
  319. package/dist/transforms/remove-group-by-true/index.spec.js.map +0 -1
  320. package/dist/transforms/remove-localize-status-config/index.spec.d.ts +0 -2
  321. package/dist/transforms/remove-localize-status-config/index.spec.d.ts.map +0 -1
  322. package/dist/transforms/remove-localize-status-config/index.spec.js +0 -38
  323. package/dist/transforms/remove-localize-status-config/index.spec.js.map +0 -1
  324. package/dist/transforms/remove-publish-specific-locale/index.spec.d.ts +0 -2
  325. package/dist/transforms/remove-publish-specific-locale/index.spec.d.ts.map +0 -1
  326. package/dist/transforms/remove-publish-specific-locale/index.spec.js +0 -47
  327. package/dist/transforms/remove-publish-specific-locale/index.spec.js.map +0 -1
  328. package/dist/transforms/remove-versions-true/index.spec.d.ts +0 -2
  329. package/dist/transforms/remove-versions-true/index.spec.d.ts.map +0 -1
  330. package/dist/transforms/remove-versions-true/index.spec.js +0 -38
  331. package/dist/transforms/remove-versions-true/index.spec.js.map +0 -1
  332. package/dist/transforms/rename-experimental-table-feature/index.spec.d.ts +0 -2
  333. package/dist/transforms/rename-experimental-table-feature/index.spec.d.ts.map +0 -1
  334. package/dist/transforms/rename-experimental-table-feature/index.spec.js +0 -54
  335. package/dist/transforms/rename-experimental-table-feature/index.spec.js.map +0 -1
  336. package/dist/transforms/rename-storage-adapters-to-storage/index.spec.d.ts +0 -2
  337. package/dist/transforms/rename-storage-adapters-to-storage/index.spec.d.ts.map +0 -1
  338. package/dist/transforms/rename-storage-adapters-to-storage/index.spec.js +0 -55
  339. package/dist/transforms/rename-storage-adapters-to-storage/index.spec.js.map +0 -1
  340. package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.d.ts +0 -2
  341. package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.d.ts.map +0 -1
  342. package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.js +0 -45
  343. package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.js.map +0 -1
  344. package/dist/utils/packageJson.spec.d.ts +0 -2
  345. package/dist/utils/packageJson.spec.d.ts.map +0 -1
  346. package/dist/utils/packageJson.spec.js +0 -41
  347. package/dist/utils/packageJson.spec.js.map +0 -1
@@ -0,0 +1,13 @@
1
+ export const Posts = {
2
+ slug: 'posts',
3
+ fields: [],
4
+ authorship: false
5
+ };
6
+ export const Media = {
7
+ slug: 'media',
8
+ fields: [],
9
+ upload: true,
10
+ authorship: false
11
+ };
12
+
13
+ //# sourceMappingURL=satisfies.output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/migrate-authorship-default/satisfies.output.ts"],"sourcesContent":["import type { CollectionConfig } from 'payload'\n\nexport const Posts = {\n slug: 'posts',\n fields: [],\n authorship: false,\n} satisfies CollectionConfig\n\nexport const Media = {\n slug: 'media',\n fields: [],\n upload: true,\n authorship: false,\n} satisfies CollectionConfig\n"],"names":["Posts","slug","fields","authorship","Media","upload"],"mappings":"AAEA,OAAO,MAAMA,QAAQ;IACnBC,MAAM;IACNC,QAAQ,EAAE;IACVC,YAAY;AACd,EAA4B;AAE5B,OAAO,MAAMC,QAAQ;IACnBH,MAAM;IACNC,QAAQ,EAAE;IACVG,QAAQ;IACRF,YAAY;AACd,EAA4B"}
@@ -0,0 +1,8 @@
1
+ export const CustomTextField = (props)=>{
2
+ return props.value;
3
+ };
4
+ export const CustomUploadField = async function(props) {
5
+ return props.path;
6
+ };
7
+
8
+ //# sourceMappingURL=basic.input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/migrate-field-component-types/basic.input.ts"],"sourcesContent":["import type {\n TextFieldClientComponent,\n UploadFieldServerComponent,\n} from 'payload'\n\nexport const CustomTextField: TextFieldClientComponent = (props) => {\n return props.value\n}\n\nexport const CustomUploadField: UploadFieldServerComponent = async function (props) {\n return props.path\n}\n"],"names":["CustomTextField","props","value","CustomUploadField","path"],"mappings":"AAKA,OAAO,MAAMA,kBAA4C,CAACC;IACxD,OAAOA,MAAMC,KAAK;AACpB,EAAC;AAED,OAAO,MAAMC,oBAAgD,eAAgBF,KAAK;IAChF,OAAOA,MAAMG,IAAI;AACnB,EAAC"}
@@ -0,0 +1,8 @@
1
+ export const CustomTextField = (props)=>{
2
+ return props.value;
3
+ };
4
+ export const CustomUploadField = async function(props) {
5
+ return props.path;
6
+ };
7
+
8
+ //# sourceMappingURL=basic.output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transforms/migrate-field-component-types/basic.output.ts"],"sourcesContent":["import type {\n TextFieldClientProps,\n UploadFieldServerProps,\n} from 'payload'\nimport type React from 'react'\n\nexport const CustomTextField: React.FC<TextFieldClientProps> = (props) => {\n return props.value\n}\n\nexport const CustomUploadField: React.FC<UploadFieldServerProps> = async function (props) {\n return props.path\n}\n"],"names":["CustomTextField","props","value","CustomUploadField","path"],"mappings":"AAMA,OAAO,MAAMA,kBAAkD,CAACC;IAC9D,OAAOA,MAAMC,KAAK;AACpB,EAAC;AAED,OAAO,MAAMC,oBAAsD,eAAgBF,KAAK;IACtF,OAAOA,MAAMG,IAAI;AACnB,EAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Transform } from '../../types.js';
2
+ export declare const migrateFieldComponentTypes: Transform;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transforms/migrate-field-component-types/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAiG/C,eAAO,MAAM,0BAA0B,EAAE,SAkKxC,CAAA"}
@@ -0,0 +1,616 @@
1
+ import { Node, SyntaxKind, VariableDeclarationKind } from 'ts-morph';
2
+ const FIELD_NAMES = [
3
+ 'Array',
4
+ 'Blocks',
5
+ 'Checkbox',
6
+ 'Code',
7
+ 'Collapsible',
8
+ 'Date',
9
+ 'Email',
10
+ 'Group',
11
+ 'Join',
12
+ 'JSON',
13
+ 'Number',
14
+ 'Point',
15
+ 'Radio',
16
+ 'Relationship',
17
+ 'RichText',
18
+ 'Row',
19
+ 'Select',
20
+ 'Tabs',
21
+ 'Text',
22
+ 'Textarea',
23
+ 'UI',
24
+ 'Upload'
25
+ ];
26
+ const FIELDS_WITH_SPECIALIZED_COMPONENTS = [
27
+ 'Array',
28
+ 'Blocks',
29
+ 'Checkbox',
30
+ 'Code',
31
+ 'Collapsible',
32
+ 'Date',
33
+ 'Email',
34
+ 'Group',
35
+ 'Join',
36
+ 'JSON',
37
+ 'Number',
38
+ 'Point',
39
+ 'Radio',
40
+ 'Relationship',
41
+ 'RichText',
42
+ 'Row',
43
+ 'Select',
44
+ 'Tabs',
45
+ 'Text',
46
+ 'Textarea',
47
+ 'Upload'
48
+ ];
49
+ const SPECIALIZED_COMPONENT_NAMES = [
50
+ 'FieldDescriptionClient',
51
+ 'FieldDescriptionServer',
52
+ 'FieldDiffClient',
53
+ 'FieldDiffServer',
54
+ 'FieldErrorClient',
55
+ 'FieldErrorServer',
56
+ 'FieldLabelClient',
57
+ 'FieldLabelServer'
58
+ ];
59
+ const COMPONENT_TO_PROPS = new Map([
60
+ [
61
+ 'BlockRowLabelClientComponent',
62
+ 'BlockRowLabelClientProps'
63
+ ],
64
+ [
65
+ 'BlockRowLabelServerComponent',
66
+ 'BlockRowLabelServerProps'
67
+ ],
68
+ [
69
+ 'FieldClientComponent',
70
+ 'FieldClientProps'
71
+ ],
72
+ [
73
+ 'FieldDescriptionClientComponent',
74
+ 'FieldDescriptionClientProps'
75
+ ],
76
+ [
77
+ 'FieldDescriptionServerComponent',
78
+ 'FieldDescriptionServerProps'
79
+ ],
80
+ [
81
+ 'FieldDiffClientComponent',
82
+ 'FieldDiffClientProps'
83
+ ],
84
+ [
85
+ 'FieldDiffServerComponent',
86
+ 'FieldDiffServerProps'
87
+ ],
88
+ [
89
+ 'FieldErrorClientComponent',
90
+ 'FieldErrorClientProps'
91
+ ],
92
+ [
93
+ 'FieldErrorServerComponent',
94
+ 'FieldErrorServerProps'
95
+ ],
96
+ [
97
+ 'FieldLabelClientComponent',
98
+ 'FieldLabelClientProps'
99
+ ],
100
+ [
101
+ 'FieldLabelServerComponent',
102
+ 'FieldLabelServerProps'
103
+ ],
104
+ [
105
+ 'FieldServerComponent',
106
+ 'FieldServerProps'
107
+ ],
108
+ ...FIELD_NAMES.flatMap((fieldName)=>[
109
+ [
110
+ `${fieldName}FieldClientComponent`,
111
+ `${fieldName}FieldClientProps`
112
+ ],
113
+ [
114
+ `${fieldName}FieldServerComponent`,
115
+ `${fieldName}FieldServerProps`
116
+ ]
117
+ ]),
118
+ ...FIELDS_WITH_SPECIALIZED_COMPONENTS.flatMap((fieldName)=>SPECIALIZED_COMPONENT_NAMES.map((componentName)=>[
119
+ `${fieldName}${componentName}Component`,
120
+ `${fieldName}${componentName}Props`
121
+ ])),
122
+ [
123
+ 'UIFieldDiffClientComponent',
124
+ 'UIFieldDiffClientProps'
125
+ ],
126
+ [
127
+ 'UIFieldDiffServerComponent',
128
+ 'UIFieldDiffServerProps'
129
+ ]
130
+ ]);
131
+ const COMPONENT_GENERIC_DEFAULTS = new Map([
132
+ [
133
+ 'FieldDiffClientComponent',
134
+ [
135
+ 'ClientFieldWithOptionalType'
136
+ ]
137
+ ],
138
+ [
139
+ 'FieldDiffServerComponent',
140
+ [
141
+ 'Field',
142
+ 'ClientFieldWithOptionalType'
143
+ ]
144
+ ],
145
+ [
146
+ 'FieldErrorServerComponent',
147
+ [
148
+ 'Field',
149
+ 'ClientFieldWithOptionalType'
150
+ ]
151
+ ],
152
+ [
153
+ 'FieldLabelClientComponent',
154
+ [
155
+ 'ClientFieldWithOptionalType'
156
+ ]
157
+ ],
158
+ [
159
+ 'FieldLabelServerComponent',
160
+ [
161
+ 'Field',
162
+ 'ClientFieldWithOptionalType'
163
+ ]
164
+ ]
165
+ ]);
166
+ export const migrateFieldComponentTypes = {
167
+ name: 'migrate-field-component-types',
168
+ apply: ({ project })=>{
169
+ const filesChanged = new Set();
170
+ const notes = [];
171
+ for (const file of project.getSourceFiles()){
172
+ collectUnsupportedImportNotes({
173
+ file,
174
+ notes
175
+ });
176
+ let mutated = false;
177
+ let reactBinding;
178
+ for (const importDeclaration of [
179
+ ...file.getImportDeclarations()
180
+ ]){
181
+ if (importDeclaration.getModuleSpecifierValue() !== 'payload') {
182
+ continue;
183
+ }
184
+ const componentImports = importDeclaration.getNamedImports().filter((specifier)=>COMPONENT_TO_PROPS.has(specifier.getName())).map((specifier)=>({
185
+ componentName: specifier.getName(),
186
+ localName: specifier.getAliasNode()?.getText() ?? specifier.getName()
187
+ }));
188
+ let importMutated = false;
189
+ for (const componentImport of componentImports){
190
+ const { componentName, localName } = componentImport;
191
+ const propsName = COMPONENT_TO_PROPS.get(componentName);
192
+ if (!propsName) {
193
+ continue;
194
+ }
195
+ const specifier = importDeclaration.getNamedImports().find((namedImport)=>namedImport.getName() === componentName && (namedImport.getAliasNode()?.getText() ?? namedImport.getName()) === localName);
196
+ if (!specifier) {
197
+ continue;
198
+ }
199
+ const binding = specifier.getAliasNode() ?? specifier.getNameNode();
200
+ const references = binding.findReferencesAsNodes().filter((node)=>node !== binding && node.getSourceFile() === file);
201
+ const unsupportedReference = references.find((reference)=>{
202
+ const parent = reference.getParent();
203
+ return !Node.isTypeReference(parent) || parent.getTypeName() !== reference;
204
+ });
205
+ if (unsupportedReference) {
206
+ notes.push(`${file.getFilePath()}:${unsupportedReference.getStartLineNumber()}: Unsupported use of \`${componentName}\`. Replace it with the corresponding props type manually.`);
207
+ continue;
208
+ }
209
+ const classDeclaration = references.map((reference)=>reference.getFirstAncestorByKind(SyntaxKind.VariableDeclaration)).find((declaration, referenceIndex)=>{
210
+ const initializer = declaration?.getInitializer();
211
+ const reference = references[referenceIndex];
212
+ const componentPropertyPath = reference ? getComponentPropertyPath({
213
+ reference
214
+ }) : undefined;
215
+ return initializer ? initializerContainsClassComponent({
216
+ componentPropertyPath,
217
+ initializer
218
+ }) : false;
219
+ });
220
+ if (classDeclaration) {
221
+ notes.push(`${file.getFilePath()}:${classDeclaration.getStartLineNumber()}: Cannot automatically migrate \`${componentName}\` because it types a class component. Replace it with a compatible props annotation manually.`);
222
+ continue;
223
+ }
224
+ if (references.length === 0) {
225
+ specifier.remove();
226
+ importMutated = true;
227
+ mutated = true;
228
+ continue;
229
+ }
230
+ const propsImport = resolvePropsImport({
231
+ file,
232
+ propsName
233
+ });
234
+ reactBinding ??= resolveReactTypeBinding(file);
235
+ for (const reference of references.reverse()){
236
+ const typeReference = reference.getParentIfKindOrThrow(SyntaxKind.TypeReference);
237
+ const typeArguments = typeReference.getTypeArguments().map((typeArgument)=>typeArgument.getText());
238
+ const propsTypeArguments = materializeGenericDefaults({
239
+ componentName,
240
+ file,
241
+ importDeclaration,
242
+ typeArguments
243
+ });
244
+ const propsType = propsTypeArguments.length > 0 ? `${propsImport.localName}<${propsTypeArguments.join(', ')}>` : propsImport.localName;
245
+ typeReference.replaceWithText(`${reactBinding.localName}.FC<${propsType}>`);
246
+ }
247
+ const currentSpecifier = importDeclaration.getNamedImports().find((namedImport)=>namedImport.getName() === componentName && (namedImport.getAliasNode()?.getText() ?? namedImport.getName()) === localName);
248
+ if (propsImport.exists) {
249
+ currentSpecifier?.remove();
250
+ } else if (currentSpecifier) {
251
+ currentSpecifier.setName(propsName);
252
+ if (propsImport.localName === propsName) {
253
+ currentSpecifier.removeAlias();
254
+ } else {
255
+ currentSpecifier.setAlias(propsImport.localName);
256
+ }
257
+ }
258
+ importMutated = true;
259
+ mutated = true;
260
+ }
261
+ if (importMutated) {
262
+ removeEmptyImport(importDeclaration);
263
+ }
264
+ }
265
+ if (reactBinding?.shouldAddImport) {
266
+ addReactTypeImport({
267
+ file,
268
+ reactName: reactBinding.localName
269
+ });
270
+ }
271
+ if (mutated) {
272
+ filesChanged.add(file.getFilePath());
273
+ }
274
+ }
275
+ return {
276
+ filesChanged: [
277
+ ...filesChanged
278
+ ],
279
+ ...notes.length > 0 ? {
280
+ notes
281
+ } : {}
282
+ };
283
+ },
284
+ description: 'Replace field component aliases imported from `payload` with the corresponding props types wrapped in `React.FC`. Generic arguments are preserved. Explicit class components and unsupported import forms are left unchanged with notes for manual migration.'
285
+ };
286
+ function materializeGenericDefaults({ componentName, file, importDeclaration, typeArguments }) {
287
+ const genericDefaults = COMPONENT_GENERIC_DEFAULTS.get(componentName);
288
+ if (!genericDefaults || typeArguments.length >= genericDefaults.length) {
289
+ return typeArguments;
290
+ }
291
+ return [
292
+ ...typeArguments,
293
+ ...genericDefaults.slice(typeArguments.length).map((typeName)=>resolvePayloadTypeImport({
294
+ file,
295
+ importDeclaration,
296
+ typeName
297
+ }))
298
+ ];
299
+ }
300
+ function resolvePayloadTypeImport({ file, importDeclaration, typeName }) {
301
+ for (const declaration of file.getImportDeclarations()){
302
+ if (declaration.getModuleSpecifierValue() !== 'payload') {
303
+ continue;
304
+ }
305
+ const existing = declaration.getNamedImports().find((namedImport)=>namedImport.getName() === typeName);
306
+ if (existing) {
307
+ const localName = existing.getAliasNode()?.getText() ?? typeName;
308
+ if (!hasCompetingDeclaration({
309
+ file,
310
+ importDeclaration: declaration,
311
+ localName
312
+ })) {
313
+ return localName;
314
+ }
315
+ }
316
+ }
317
+ const localName = getAvailableName({
318
+ file,
319
+ preferredName: typeName,
320
+ suffix: 'Type'
321
+ });
322
+ importDeclaration.addNamedImport({
323
+ name: typeName,
324
+ alias: localName === typeName ? undefined : localName,
325
+ isTypeOnly: !importDeclaration.isTypeOnly()
326
+ });
327
+ return localName;
328
+ }
329
+ function resolvePropsImport({ file, propsName }) {
330
+ for (const declaration of file.getImportDeclarations()){
331
+ if (declaration.getModuleSpecifierValue() !== 'payload') {
332
+ continue;
333
+ }
334
+ const existing = declaration.getNamedImports().find((namedImport)=>namedImport.getName() === propsName);
335
+ if (existing) {
336
+ const localName = existing.getAliasNode()?.getText() ?? propsName;
337
+ if (!hasCompetingDeclaration({
338
+ file,
339
+ importDeclaration: declaration,
340
+ localName
341
+ })) {
342
+ return {
343
+ exists: true,
344
+ localName
345
+ };
346
+ }
347
+ }
348
+ }
349
+ const localName = getAvailableName({
350
+ file,
351
+ preferredName: propsName,
352
+ suffix: 'Type'
353
+ });
354
+ return {
355
+ exists: false,
356
+ localName
357
+ };
358
+ }
359
+ function resolveReactTypeBinding(file) {
360
+ const reactImports = file.getImportDeclarations().filter((declaration)=>declaration.getModuleSpecifierValue() === 'react');
361
+ for (const declaration of reactImports){
362
+ const namespaceImport = declaration.getNamespaceImport();
363
+ if (namespaceImport && !hasCompetingDeclaration({
364
+ file,
365
+ importDeclaration: declaration,
366
+ localName: namespaceImport.getText()
367
+ })) {
368
+ return {
369
+ localName: namespaceImport.getText(),
370
+ shouldAddImport: false
371
+ };
372
+ }
373
+ const defaultImport = declaration.getDefaultImport();
374
+ if (defaultImport && !hasCompetingDeclaration({
375
+ file,
376
+ importDeclaration: declaration,
377
+ localName: defaultImport.getText()
378
+ })) {
379
+ return {
380
+ localName: defaultImport.getText(),
381
+ shouldAddImport: false
382
+ };
383
+ }
384
+ }
385
+ return {
386
+ localName: getAvailableName({
387
+ file,
388
+ preferredName: 'React',
389
+ suffix: 'Type'
390
+ }),
391
+ shouldAddImport: true
392
+ };
393
+ }
394
+ function hasCompetingDeclaration({ file, importDeclaration, localName }) {
395
+ return file.getDescendantsOfKind(SyntaxKind.Identifier).some((identifier)=>{
396
+ if (identifier.getText() !== localName || identifier.getFirstAncestorByKind(SyntaxKind.ImportDeclaration) === importDeclaration) {
397
+ return false;
398
+ }
399
+ const parent = identifier.getParent();
400
+ return (Node.isTypeParameterDeclaration(parent) || Node.isParameterDeclaration(parent) || Node.isVariableDeclaration(parent) || Node.isFunctionDeclaration(parent) || Node.isClassDeclaration(parent) || Node.isTypeAliasDeclaration(parent) || Node.isInterfaceDeclaration(parent)) && parent.getNameNode() === identifier;
401
+ });
402
+ }
403
+ function addReactTypeImport({ file, reactName }) {
404
+ const importDeclarations = file.getImportDeclarations();
405
+ const lastImport = importDeclarations.at(-1);
406
+ const statements = file.getStatements();
407
+ const insertionIndex = lastImport ? statements.indexOf(lastImport) + 1 : 0;
408
+ const nextStatement = statements.at(insertionIndex);
409
+ const needsTerminator = lastImport && nextStatement ? lastImport.getEndLineNumber() === nextStatement.getStartLineNumber() : false;
410
+ file.insertStatements(insertionIndex, `import type ${reactName} from 'react'${needsTerminator ? ';' : ''}`);
411
+ }
412
+ function initializerContainsClassComponent({ componentPropertyPath, initializer, visitedExpressions = new Set() }) {
413
+ let expression = initializer;
414
+ while(Node.isParenthesizedExpression(expression) || Node.isAsExpression(expression) || Node.isSatisfiesExpression(expression) || Node.isTypeAssertion(expression) || Node.isNonNullExpression(expression)){
415
+ expression = expression.getExpression();
416
+ }
417
+ if (visitedExpressions.has(expression)) {
418
+ return false;
419
+ }
420
+ visitedExpressions.add(expression);
421
+ if (Node.isClassExpression(expression)) {
422
+ return true;
423
+ }
424
+ if (Node.isArrayLiteralExpression(expression)) {
425
+ return expression.getElements().some((element)=>{
426
+ const nestedExpression = Node.isSpreadElement(element) ? element.getExpression() : element;
427
+ return Node.isExpression(nestedExpression) ? initializerContainsClassComponent({
428
+ componentPropertyPath,
429
+ initializer: nestedExpression,
430
+ visitedExpressions
431
+ }) : false;
432
+ });
433
+ }
434
+ if (Node.isConditionalExpression(expression)) {
435
+ return [
436
+ expression.getWhenTrue(),
437
+ expression.getWhenFalse()
438
+ ].some((nestedExpression)=>initializerContainsClassComponent({
439
+ componentPropertyPath,
440
+ initializer: nestedExpression,
441
+ visitedExpressions
442
+ }));
443
+ }
444
+ if (Node.isObjectLiteralExpression(expression)) {
445
+ const properties = expression.getProperties();
446
+ const componentPropertyName = componentPropertyPath?.[0];
447
+ const remainingComponentPropertyPath = componentPropertyPath?.slice(1);
448
+ const propertiesToInspect = componentPropertyName ? properties.filter((property)=>{
449
+ if (Node.isSpreadAssignment(property)) {
450
+ return true;
451
+ }
452
+ if (!Node.isPropertyAssignment(property) && !Node.isShorthandPropertyAssignment(property)) {
453
+ return false;
454
+ }
455
+ const propertyName = getStaticPropertyName({
456
+ nameNode: property.getNameNode()
457
+ });
458
+ return propertyName === undefined || propertyName === componentPropertyName;
459
+ }) : properties;
460
+ return propertiesToInspect.some((property)=>{
461
+ if (Node.isPropertyAssignment(property)) {
462
+ const propertyInitializer = property.getInitializer();
463
+ return propertyInitializer && Node.isExpression(propertyInitializer) ? initializerContainsClassComponent({
464
+ componentPropertyPath: remainingComponentPropertyPath,
465
+ initializer: propertyInitializer,
466
+ visitedExpressions
467
+ }) : false;
468
+ }
469
+ if (Node.isShorthandPropertyAssignment(property)) {
470
+ return initializerContainsClassComponent({
471
+ componentPropertyPath: remainingComponentPropertyPath,
472
+ initializer: property.getNameNode(),
473
+ visitedExpressions
474
+ });
475
+ }
476
+ return Node.isSpreadAssignment(property) ? initializerContainsClassComponent({
477
+ componentPropertyPath,
478
+ initializer: property.getExpression(),
479
+ visitedExpressions
480
+ }) : false;
481
+ });
482
+ }
483
+ if (!Node.isIdentifier(expression)) {
484
+ return false;
485
+ }
486
+ return expression.getDefinitions().some((definition)=>{
487
+ const declaration = definition.getDeclarationNode();
488
+ if (Node.isClassDeclaration(declaration)) {
489
+ return true;
490
+ }
491
+ if (Node.isVariableDeclaration(declaration)) {
492
+ const referencedInitializer = declaration.getInitializer();
493
+ return referencedInitializer ? initializerContainsClassComponent({
494
+ componentPropertyPath,
495
+ initializer: referencedInitializer,
496
+ visitedExpressions
497
+ }) : false;
498
+ }
499
+ return false;
500
+ });
501
+ }
502
+ function getComponentPropertyPath({ reference }) {
503
+ const propertySignatures = reference.getAncestors().filter(Node.isPropertySignature).reverse();
504
+ if (propertySignatures.length === 0) {
505
+ return undefined;
506
+ }
507
+ const propertyPath = propertySignatures.map((property)=>getStaticPropertyName({
508
+ nameNode: property.getNameNode()
509
+ }));
510
+ return propertyPath.every((propertyName)=>propertyName !== undefined) ? propertyPath : undefined;
511
+ }
512
+ function getStaticPropertyName({ nameNode }) {
513
+ if (Node.isComputedPropertyName(nameNode)) {
514
+ return getStaticComputedPropertyName({
515
+ expression: nameNode.getExpression()
516
+ });
517
+ }
518
+ if (Node.isStringLiteral(nameNode) || Node.isNoSubstitutionTemplateLiteral(nameNode)) {
519
+ return nameNode.getLiteralText();
520
+ }
521
+ if (Node.isNumericLiteral(nameNode)) {
522
+ return String(nameNode.getLiteralValue());
523
+ }
524
+ return Node.isIdentifier(nameNode) ? nameNode.getText() : undefined;
525
+ }
526
+ function getStaticComputedPropertyName({ expression: initialExpression, visitedExpressions = new Set() }) {
527
+ let expression = initialExpression;
528
+ while(Node.isParenthesizedExpression(expression) || Node.isAsExpression(expression) || Node.isSatisfiesExpression(expression) || Node.isTypeAssertion(expression) || Node.isNonNullExpression(expression)){
529
+ expression = expression.getExpression();
530
+ }
531
+ if (visitedExpressions.has(expression)) {
532
+ return undefined;
533
+ }
534
+ visitedExpressions.add(expression);
535
+ if (Node.isStringLiteral(expression) || Node.isNoSubstitutionTemplateLiteral(expression)) {
536
+ return expression.getLiteralText();
537
+ }
538
+ if (Node.isNumericLiteral(expression)) {
539
+ return String(expression.getLiteralValue());
540
+ }
541
+ if (!Node.isIdentifier(expression)) {
542
+ return undefined;
543
+ }
544
+ for (const definition of expression.getDefinitions()){
545
+ const declaration = definition.getDeclarationNode();
546
+ if (Node.isVariableDeclaration(declaration) && declaration.getVariableStatement()?.getDeclarationKind() === VariableDeclarationKind.Const) {
547
+ const initializer = declaration.getInitializer();
548
+ const propertyName = initializer && Node.isExpression(initializer) ? getStaticComputedPropertyName({
549
+ expression: initializer,
550
+ visitedExpressions
551
+ }) : undefined;
552
+ if (propertyName !== undefined) {
553
+ return propertyName;
554
+ }
555
+ }
556
+ }
557
+ return undefined;
558
+ }
559
+ function getAvailableName({ file, preferredName, suffix }) {
560
+ const usedNames = new Set(file.getDescendantsOfKind(SyntaxKind.Identifier).map((identifier)=>identifier.getText()));
561
+ if (!usedNames.has(preferredName)) {
562
+ return preferredName;
563
+ }
564
+ let candidate = `${preferredName}${suffix}`;
565
+ let index = 2;
566
+ while(usedNames.has(candidate)){
567
+ candidate = `${preferredName}${suffix}${index}`;
568
+ index++;
569
+ }
570
+ return candidate;
571
+ }
572
+ function collectUnsupportedImportNotes({ file, notes }) {
573
+ for (const exportDeclaration of file.getExportDeclarations()){
574
+ if (exportDeclaration.getModuleSpecifierValue() !== 'payload') {
575
+ continue;
576
+ }
577
+ for (const namedExport of exportDeclaration.getNamedExports()){
578
+ if (COMPONENT_TO_PROPS.has(namedExport.getName())) {
579
+ notes.push(`${file.getFilePath()}:${namedExport.getStartLineNumber()}: Unsupported re-export of \`${namedExport.getName()}\`. Replace it with the corresponding props type manually.`);
580
+ }
581
+ }
582
+ }
583
+ for (const importDeclaration of file.getImportDeclarations()){
584
+ if (importDeclaration.getModuleSpecifierValue() !== 'payload') {
585
+ continue;
586
+ }
587
+ const namespaceImport = importDeclaration.getNamespaceImport();
588
+ if (!namespaceImport) {
589
+ continue;
590
+ }
591
+ const namespaceName = namespaceImport.getText();
592
+ for (const qualifiedName of file.getDescendantsOfKind(SyntaxKind.QualifiedName)){
593
+ const componentName = qualifiedName.getRight().getText();
594
+ if (qualifiedName.getLeft().getText() === namespaceName && COMPONENT_TO_PROPS.has(componentName)) {
595
+ notes.push(`${file.getFilePath()}:${qualifiedName.getStartLineNumber()}: Unsupported namespace reference to \`${componentName}\`. Replace it with the corresponding props type manually.`);
596
+ }
597
+ }
598
+ }
599
+ for (const importType of file.getDescendantsOfKind(SyntaxKind.ImportType)){
600
+ const argument = importType.getArgument();
601
+ const literal = Node.isLiteralTypeNode(argument) ? argument.getLiteral() : undefined;
602
+ const qualifier = importType.getQualifier();
603
+ if (Node.isStringLiteral(literal) && literal.getLiteralText() === 'payload' && qualifier && COMPONENT_TO_PROPS.has(qualifier.getText())) {
604
+ const componentName = qualifier.getText();
605
+ notes.push(`${file.getFilePath()}:${importType.getStartLineNumber()}: Unsupported inline import of \`${componentName}\`. Replace it with the corresponding props type manually.`);
606
+ }
607
+ }
608
+ }
609
+ function removeEmptyImport(importDeclaration) {
610
+ if (importDeclaration.wasForgotten() || importDeclaration.getNamedImports().length > 0 || importDeclaration.getDefaultImport() || importDeclaration.getNamespaceImport()) {
611
+ return;
612
+ }
613
+ importDeclaration.remove();
614
+ }
615
+
616
+ //# sourceMappingURL=index.js.map