@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.
- package/LICENSE.md +22 -0
- package/README.md +62 -0
- package/bin/cli.js +8 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +120 -0
- package/dist/cli.js.map +1 -0
- package/dist/cli.parseFlags.d.ts +9 -0
- package/dist/cli.parseFlags.d.ts.map +1 -0
- package/dist/cli.parseFlags.js +37 -0
- package/dist/cli.parseFlags.js.map +1 -0
- package/dist/cli.parseFlags.spec.d.ts +2 -0
- package/dist/cli.parseFlags.spec.d.ts.map +1 -0
- package/dist/cli.parseFlags.spec.js +49 -0
- package/dist/cli.parseFlags.spec.js.map +1 -0
- package/dist/registry.d.ts +3 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +54 -0
- package/dist/registry.js.map +1 -0
- package/dist/runner.d.ts +17 -0
- package/dist/runner.d.ts.map +1 -0
- package/dist/runner.js +37 -0
- package/dist/runner.js.map +1 -0
- package/dist/runner.spec.d.ts +2 -0
- package/dist/runner.spec.d.ts.map +1 -0
- package/dist/runner.spec.js +88 -0
- package/dist/runner.spec.js.map +1 -0
- package/dist/transforms/example-noop/basic.input.js +3 -0
- package/dist/transforms/example-noop/basic.input.js.map +1 -0
- package/dist/transforms/example-noop/basic.output.js +3 -0
- package/dist/transforms/example-noop/basic.output.js.map +1 -0
- package/dist/transforms/example-noop/index.d.ts +3 -0
- package/dist/transforms/example-noop/index.d.ts.map +1 -0
- package/dist/transforms/example-noop/index.js +9 -0
- package/dist/transforms/example-noop/index.js.map +1 -0
- package/dist/transforms/example-noop/index.spec.d.ts +2 -0
- package/dist/transforms/example-noop/index.spec.d.ts.map +1 -0
- package/dist/transforms/example-noop/index.spec.js +29 -0
- package/dist/transforms/example-noop/index.spec.js.map +1 -0
- package/dist/transforms/globals-components-edit/basic.input.js +23 -0
- package/dist/transforms/globals-components-edit/basic.input.js.map +1 -0
- package/dist/transforms/globals-components-edit/basic.output.js +23 -0
- package/dist/transforms/globals-components-edit/basic.output.js.map +1 -0
- package/dist/transforms/globals-components-edit/collection.input.js +19 -0
- package/dist/transforms/globals-components-edit/collection.input.js.map +1 -0
- package/dist/transforms/globals-components-edit/index.d.ts +3 -0
- package/dist/transforms/globals-components-edit/index.d.ts.map +1 -0
- package/dist/transforms/globals-components-edit/index.js +92 -0
- package/dist/transforms/globals-components-edit/index.js.map +1 -0
- package/dist/transforms/globals-components-edit/index.spec.d.ts +2 -0
- package/dist/transforms/globals-components-edit/index.spec.d.ts.map +1 -0
- package/dist/transforms/globals-components-edit/index.spec.js +37 -0
- package/dist/transforms/globals-components-edit/index.spec.js.map +1 -0
- package/dist/transforms/migrate-after-operation-read/alias.input.js +16 -0
- package/dist/transforms/migrate-after-operation-read/alias.input.js.map +1 -0
- package/dist/transforms/migrate-after-operation-read/alias.output.js +16 -0
- package/dist/transforms/migrate-after-operation-read/alias.output.js.map +1 -0
- package/dist/transforms/migrate-after-operation-read/basic.input.js +19 -0
- package/dist/transforms/migrate-after-operation-read/basic.input.js.map +1 -0
- package/dist/transforms/migrate-after-operation-read/basic.output.js +19 -0
- package/dist/transforms/migrate-after-operation-read/basic.output.js.map +1 -0
- package/dist/transforms/migrate-after-operation-read/external.input.js +12 -0
- package/dist/transforms/migrate-after-operation-read/external.input.js.map +1 -0
- package/dist/transforms/migrate-after-operation-read/index.d.ts +3 -0
- package/dist/transforms/migrate-after-operation-read/index.d.ts.map +1 -0
- package/dist/transforms/migrate-after-operation-read/index.js +148 -0
- package/dist/transforms/migrate-after-operation-read/index.js.map +1 -0
- package/dist/transforms/migrate-after-operation-read/index.spec.d.ts +2 -0
- package/dist/transforms/migrate-after-operation-read/index.spec.d.ts.map +1 -0
- package/dist/transforms/migrate-after-operation-read/index.spec.js +62 -0
- package/dist/transforms/migrate-after-operation-read/index.spec.js.map +1 -0
- package/dist/transforms/migrate-after-operation-read/non-matching.input.js +16 -0
- package/dist/transforms/migrate-after-operation-read/non-matching.input.js.map +1 -0
- package/dist/transforms/migrate-aliased-exports/basic.input.js +9 -0
- package/dist/transforms/migrate-aliased-exports/basic.input.js.map +1 -0
- package/dist/transforms/migrate-aliased-exports/basic.output.js +9 -0
- package/dist/transforms/migrate-aliased-exports/basic.output.js.map +1 -0
- package/dist/transforms/migrate-aliased-exports/index.d.ts +3 -0
- package/dist/transforms/migrate-aliased-exports/index.d.ts.map +1 -0
- package/dist/transforms/migrate-aliased-exports/index.js +215 -0
- package/dist/transforms/migrate-aliased-exports/index.js.map +1 -0
- package/dist/transforms/migrate-aliased-exports/index.spec.d.ts +2 -0
- package/dist/transforms/migrate-aliased-exports/index.spec.d.ts.map +1 -0
- package/dist/transforms/migrate-aliased-exports/index.spec.js +55 -0
- package/dist/transforms/migrate-aliased-exports/index.spec.js.map +1 -0
- package/dist/transforms/migrate-aliased-exports/merge.input.js +6 -0
- package/dist/transforms/migrate-aliased-exports/merge.input.js.map +1 -0
- package/dist/transforms/migrate-aliased-exports/merge.output.js +6 -0
- package/dist/transforms/migrate-aliased-exports/merge.output.js.map +1 -0
- package/dist/transforms/migrate-aliased-exports/non-matching.input.js +6 -0
- package/dist/transforms/migrate-aliased-exports/non-matching.input.js.map +1 -0
- package/dist/transforms/migrate-aliased-exports/rename.input.js +3 -0
- package/dist/transforms/migrate-aliased-exports/rename.input.js.map +1 -0
- package/dist/transforms/migrate-aliased-exports/rename.output.js +3 -0
- package/dist/transforms/migrate-aliased-exports/rename.output.js.map +1 -0
- package/dist/transforms/migrate-azure-chunk-large-files/basic.input.js +16 -0
- package/dist/transforms/migrate-azure-chunk-large-files/basic.input.js.map +1 -0
- package/dist/transforms/migrate-azure-chunk-large-files/basic.output.js +14 -0
- package/dist/transforms/migrate-azure-chunk-large-files/basic.output.js.map +1 -0
- package/dist/transforms/migrate-azure-chunk-large-files/index.d.ts +3 -0
- package/dist/transforms/migrate-azure-chunk-large-files/index.d.ts.map +1 -0
- package/dist/transforms/migrate-azure-chunk-large-files/index.js +49 -0
- package/dist/transforms/migrate-azure-chunk-large-files/index.js.map +1 -0
- package/dist/transforms/migrate-azure-chunk-large-files/index.spec.d.ts +2 -0
- package/dist/transforms/migrate-azure-chunk-large-files/index.spec.d.ts.map +1 -0
- package/dist/transforms/migrate-azure-chunk-large-files/index.spec.js +67 -0
- package/dist/transforms/migrate-azure-chunk-large-files/index.spec.js.map +1 -0
- package/dist/transforms/migrate-azure-chunk-large-files/no-match.input.js +14 -0
- package/dist/transforms/migrate-azure-chunk-large-files/no-match.input.js.map +1 -0
- package/dist/transforms/migrate-azure-chunk-large-files/no-match.output.js +14 -0
- package/dist/transforms/migrate-azure-chunk-large-files/no-match.output.js.map +1 -0
- package/dist/transforms/migrate-azure-chunk-large-files/with-access.input.js +17 -0
- package/dist/transforms/migrate-azure-chunk-large-files/with-access.input.js.map +1 -0
- package/dist/transforms/migrate-azure-chunk-large-files/with-access.output.js +16 -0
- package/dist/transforms/migrate-azure-chunk-large-files/with-access.output.js.map +1 -0
- package/dist/transforms/migrate-block-references-to-blocks/basic.input.js +27 -0
- package/dist/transforms/migrate-block-references-to-blocks/basic.input.js.map +1 -0
- package/dist/transforms/migrate-block-references-to-blocks/basic.output.js +26 -0
- package/dist/transforms/migrate-block-references-to-blocks/basic.output.js.map +1 -0
- package/dist/transforms/migrate-block-references-to-blocks/index.d.ts +3 -0
- package/dist/transforms/migrate-block-references-to-blocks/index.d.ts.map +1 -0
- package/dist/transforms/migrate-block-references-to-blocks/index.js +76 -0
- package/dist/transforms/migrate-block-references-to-blocks/index.js.map +1 -0
- package/dist/transforms/migrate-block-references-to-blocks/index.spec.d.ts +2 -0
- package/dist/transforms/migrate-block-references-to-blocks/index.spec.d.ts.map +1 -0
- package/dist/transforms/migrate-block-references-to-blocks/index.spec.js +45 -0
- package/dist/transforms/migrate-block-references-to-blocks/index.spec.js.map +1 -0
- package/dist/transforms/migrate-block-references-to-blocks/non-matching.input.js +20 -0
- package/dist/transforms/migrate-block-references-to-blocks/non-matching.input.js.map +1 -0
- package/dist/transforms/migrate-block-references-to-blocks/sibling.input.js +21 -0
- package/dist/transforms/migrate-block-references-to-blocks/sibling.input.js.map +1 -0
- package/dist/transforms/migrate-build-script/index.d.ts +3 -0
- package/dist/transforms/migrate-build-script/index.d.ts.map +1 -0
- package/dist/transforms/migrate-build-script/index.js +28 -0
- package/dist/transforms/migrate-build-script/index.js.map +1 -0
- package/dist/transforms/migrate-build-script/index.spec.d.ts +2 -0
- package/dist/transforms/migrate-build-script/index.spec.d.ts.map +1 -0
- package/dist/transforms/migrate-build-script/index.spec.js +81 -0
- package/dist/transforms/migrate-build-script/index.spec.js.map +1 -0
- package/dist/transforms/migrate-db-types-subpath/basic.input.js +3 -0
- package/dist/transforms/migrate-db-types-subpath/basic.input.js.map +1 -0
- package/dist/transforms/migrate-db-types-subpath/basic.output.js +3 -0
- package/dist/transforms/migrate-db-types-subpath/basic.output.js.map +1 -0
- package/dist/transforms/migrate-db-types-subpath/index.d.ts +3 -0
- package/dist/transforms/migrate-db-types-subpath/index.d.ts.map +1 -0
- package/dist/transforms/migrate-db-types-subpath/index.js +56 -0
- package/dist/transforms/migrate-db-types-subpath/index.js.map +1 -0
- package/dist/transforms/migrate-db-types-subpath/index.spec.d.ts +2 -0
- package/dist/transforms/migrate-db-types-subpath/index.spec.d.ts.map +1 -0
- package/dist/transforms/migrate-db-types-subpath/index.spec.js +46 -0
- package/dist/transforms/migrate-db-types-subpath/index.spec.js.map +1 -0
- package/dist/transforms/migrate-db-types-subpath/module-augmentation.input.js +2 -0
- package/dist/transforms/migrate-db-types-subpath/module-augmentation.input.js.map +1 -0
- package/dist/transforms/migrate-db-types-subpath/module-augmentation.output.js +2 -0
- package/dist/transforms/migrate-db-types-subpath/module-augmentation.output.js.map +1 -0
- package/dist/transforms/migrate-db-types-subpath/non-matching.input.js +3 -0
- package/dist/transforms/migrate-db-types-subpath/non-matching.input.js.map +1 -0
- package/dist/transforms/migrate-disabled-fields/basic.input.js +27 -0
- package/dist/transforms/migrate-disabled-fields/basic.input.js.map +1 -0
- package/dist/transforms/migrate-disabled-fields/basic.output.js +31 -0
- package/dist/transforms/migrate-disabled-fields/basic.output.js.map +1 -0
- package/dist/transforms/migrate-disabled-fields/imagesize.input.js +32 -0
- package/dist/transforms/migrate-disabled-fields/imagesize.input.js.map +1 -0
- package/dist/transforms/migrate-disabled-fields/imagesize.output.js +36 -0
- package/dist/transforms/migrate-disabled-fields/imagesize.output.js.map +1 -0
- package/dist/transforms/migrate-disabled-fields/index.d.ts +3 -0
- package/dist/transforms/migrate-disabled-fields/index.d.ts.map +1 -0
- package/dist/transforms/migrate-disabled-fields/index.js +124 -0
- package/dist/transforms/migrate-disabled-fields/index.js.map +1 -0
- package/dist/transforms/migrate-disabled-fields/index.spec.d.ts +2 -0
- package/dist/transforms/migrate-disabled-fields/index.spec.d.ts.map +1 -0
- package/dist/transforms/migrate-disabled-fields/index.spec.js +73 -0
- package/dist/transforms/migrate-disabled-fields/index.spec.js.map +1 -0
- package/dist/transforms/migrate-disabled-fields/merge.input.js +17 -0
- package/dist/transforms/migrate-disabled-fields/merge.input.js.map +1 -0
- package/dist/transforms/migrate-disabled-fields/merge.output.js +17 -0
- package/dist/transforms/migrate-disabled-fields/merge.output.js.map +1 -0
- package/dist/transforms/migrate-disabled-fields/non-matching.input.js +8 -0
- package/dist/transforms/migrate-disabled-fields/non-matching.input.js.map +1 -0
- package/dist/transforms/migrate-disabled-fields/non-matching.output.js +8 -0
- package/dist/transforms/migrate-disabled-fields/non-matching.output.js.map +1 -0
- package/dist/transforms/migrate-disabled-fields/preserve-true.input.js +16 -0
- package/dist/transforms/migrate-disabled-fields/preserve-true.input.js.map +1 -0
- package/dist/transforms/migrate-disabled-fields/preserve-true.output.js +14 -0
- package/dist/transforms/migrate-disabled-fields/preserve-true.output.js.map +1 -0
- package/dist/transforms/migrate-document-title-context/basic.input.js +23 -0
- package/dist/transforms/migrate-document-title-context/basic.input.js.map +1 -0
- package/dist/transforms/migrate-document-title-context/basic.output.js +25 -0
- package/dist/transforms/migrate-document-title-context/basic.output.js.map +1 -0
- package/dist/transforms/migrate-document-title-context/index.d.ts +3 -0
- package/dist/transforms/migrate-document-title-context/index.d.ts.map +1 -0
- package/dist/transforms/migrate-document-title-context/index.js +133 -0
- package/dist/transforms/migrate-document-title-context/index.js.map +1 -0
- package/dist/transforms/migrate-document-title-context/index.spec.d.ts +2 -0
- package/dist/transforms/migrate-document-title-context/index.spec.d.ts.map +1 -0
- package/dist/transforms/migrate-document-title-context/index.spec.js +86 -0
- package/dist/transforms/migrate-document-title-context/index.spec.js.map +1 -0
- package/dist/transforms/migrate-document-title-context/no-match.input.js +21 -0
- package/dist/transforms/migrate-document-title-context/no-match.input.js.map +1 -0
- package/dist/transforms/migrate-document-title-context/no-match.output.js +21 -0
- package/dist/transforms/migrate-document-title-context/no-match.output.js.map +1 -0
- package/dist/transforms/migrate-force-select/basic.input.js +10 -0
- package/dist/transforms/migrate-force-select/basic.input.js.map +1 -0
- package/dist/transforms/migrate-force-select/basic.output.js +11 -0
- package/dist/transforms/migrate-force-select/basic.output.js.map +1 -0
- package/dist/transforms/migrate-force-select/index.d.ts +3 -0
- package/dist/transforms/migrate-force-select/index.d.ts.map +1 -0
- package/dist/transforms/migrate-force-select/index.js +104 -0
- package/dist/transforms/migrate-force-select/index.js.map +1 -0
- package/dist/transforms/migrate-force-select/index.spec.d.ts +2 -0
- package/dist/transforms/migrate-force-select/index.spec.d.ts.map +1 -0
- package/dist/transforms/migrate-force-select/index.spec.js +107 -0
- package/dist/transforms/migrate-force-select/index.spec.js.map +1 -0
- package/dist/transforms/migrate-force-select/no-match.input.js +12 -0
- package/dist/transforms/migrate-force-select/no-match.input.js.map +1 -0
- package/dist/transforms/migrate-force-select/no-match.output.js +12 -0
- package/dist/transforms/migrate-force-select/no-match.output.js.map +1 -0
- package/dist/transforms/migrate-hide-api-url/basic.input.js +9 -0
- package/dist/transforms/migrate-hide-api-url/basic.input.js.map +1 -0
- package/dist/transforms/migrate-hide-api-url/basic.output.js +19 -0
- package/dist/transforms/migrate-hide-api-url/basic.output.js.map +1 -0
- package/dist/transforms/migrate-hide-api-url/index.d.ts +3 -0
- package/dist/transforms/migrate-hide-api-url/index.d.ts.map +1 -0
- package/dist/transforms/migrate-hide-api-url/index.js +85 -0
- package/dist/transforms/migrate-hide-api-url/index.js.map +1 -0
- package/dist/transforms/migrate-hide-api-url/index.spec.d.ts +2 -0
- package/dist/transforms/migrate-hide-api-url/index.spec.d.ts.map +1 -0
- package/dist/transforms/migrate-hide-api-url/index.spec.js +118 -0
- package/dist/transforms/migrate-hide-api-url/index.spec.js.map +1 -0
- package/dist/transforms/migrate-hide-api-url/no-match.input.js +12 -0
- package/dist/transforms/migrate-hide-api-url/no-match.input.js.map +1 -0
- package/dist/transforms/migrate-hide-api-url/no-match.output.js +12 -0
- package/dist/transforms/migrate-hide-api-url/no-match.output.js.map +1 -0
- package/dist/transforms/migrate-import-export-hooks/basic.input.js +16 -0
- package/dist/transforms/migrate-import-export-hooks/basic.input.js.map +1 -0
- package/dist/transforms/migrate-import-export-hooks/basic.output.js +18 -0
- package/dist/transforms/migrate-import-export-hooks/basic.output.js.map +1 -0
- package/dist/transforms/migrate-import-export-hooks/both.input.js +18 -0
- package/dist/transforms/migrate-import-export-hooks/both.input.js.map +1 -0
- package/dist/transforms/migrate-import-export-hooks/both.output.js +20 -0
- package/dist/transforms/migrate-import-export-hooks/both.output.js.map +1 -0
- package/dist/transforms/migrate-import-export-hooks/existing-hooks.input.js +20 -0
- package/dist/transforms/migrate-import-export-hooks/existing-hooks.input.js.map +1 -0
- package/dist/transforms/migrate-import-export-hooks/existing-hooks.output.js +20 -0
- package/dist/transforms/migrate-import-export-hooks/existing-hooks.output.js.map +1 -0
- package/dist/transforms/migrate-import-export-hooks/hooks-priority.input.js +19 -0
- package/dist/transforms/migrate-import-export-hooks/hooks-priority.input.js.map +1 -0
- package/dist/transforms/migrate-import-export-hooks/hooks-priority.output.js +18 -0
- package/dist/transforms/migrate-import-export-hooks/hooks-priority.output.js.map +1 -0
- package/dist/transforms/migrate-import-export-hooks/index.d.ts +3 -0
- package/dist/transforms/migrate-import-export-hooks/index.d.ts.map +1 -0
- package/dist/transforms/migrate-import-export-hooks/index.js +88 -0
- package/dist/transforms/migrate-import-export-hooks/index.js.map +1 -0
- package/dist/transforms/migrate-import-export-hooks/index.spec.d.ts +2 -0
- package/dist/transforms/migrate-import-export-hooks/index.spec.d.ts.map +1 -0
- package/dist/transforms/migrate-import-export-hooks/index.spec.js +65 -0
- package/dist/transforms/migrate-import-export-hooks/index.spec.js.map +1 -0
- package/dist/transforms/migrate-import-export-hooks/non-matching.input.js +19 -0
- package/dist/transforms/migrate-import-export-hooks/non-matching.input.js.map +1 -0
- package/dist/transforms/migrate-import-export-hooks/non-matching.output.js +19 -0
- package/dist/transforms/migrate-import-export-hooks/non-matching.output.js.map +1 -0
- package/dist/transforms/migrate-list-view-select-api/basic.input.js +15 -0
- package/dist/transforms/migrate-list-view-select-api/basic.input.js.map +1 -0
- package/dist/transforms/migrate-list-view-select-api/basic.output.js +14 -0
- package/dist/transforms/migrate-list-view-select-api/basic.output.js.map +1 -0
- package/dist/transforms/migrate-list-view-select-api/index.d.ts +3 -0
- package/dist/transforms/migrate-list-view-select-api/index.d.ts.map +1 -0
- package/dist/transforms/migrate-list-view-select-api/index.js +38 -0
- package/dist/transforms/migrate-list-view-select-api/index.js.map +1 -0
- package/dist/transforms/migrate-list-view-select-api/index.spec.d.ts +2 -0
- package/dist/transforms/migrate-list-view-select-api/index.spec.d.ts.map +1 -0
- package/dist/transforms/migrate-list-view-select-api/index.spec.js +37 -0
- package/dist/transforms/migrate-list-view-select-api/index.spec.js.map +1 -0
- package/dist/transforms/migrate-list-view-select-api/no-match.input.js +17 -0
- package/dist/transforms/migrate-list-view-select-api/no-match.input.js.map +1 -0
- package/dist/transforms/migrate-next-generate-viewport-export/basic.input.js +22 -0
- package/dist/transforms/migrate-next-generate-viewport-export/basic.input.js.map +1 -0
- package/dist/transforms/migrate-next-generate-viewport-export/basic.output.js +23 -0
- package/dist/transforms/migrate-next-generate-viewport-export/basic.output.js.map +1 -0
- package/dist/transforms/migrate-next-generate-viewport-export/index.d.ts +3 -0
- package/dist/transforms/migrate-next-generate-viewport-export/index.d.ts.map +1 -0
- package/dist/transforms/migrate-next-generate-viewport-export/index.js +69 -0
- package/dist/transforms/migrate-next-generate-viewport-export/index.js.map +1 -0
- package/dist/transforms/migrate-next-generate-viewport-export/index.spec.d.ts +2 -0
- package/dist/transforms/migrate-next-generate-viewport-export/index.spec.d.ts.map +1 -0
- package/dist/transforms/migrate-next-generate-viewport-export/index.spec.js +41 -0
- package/dist/transforms/migrate-next-generate-viewport-export/index.spec.js.map +1 -0
- package/dist/transforms/migrate-next-generate-viewport-export/non-matching.input.js +8 -0
- package/dist/transforms/migrate-next-generate-viewport-export/non-matching.input.js.map +1 -0
- package/dist/transforms/migrate-next-generate-viewport-export/non-matching.output.js +8 -0
- package/dist/transforms/migrate-next-generate-viewport-export/non-matching.output.js.map +1 -0
- package/dist/transforms/migrate-next-subpath-exports/basic.input.js +20 -0
- package/dist/transforms/migrate-next-subpath-exports/basic.input.js.map +1 -0
- package/dist/transforms/migrate-next-subpath-exports/basic.output.js +20 -0
- package/dist/transforms/migrate-next-subpath-exports/basic.output.js.map +1 -0
- package/dist/transforms/migrate-next-subpath-exports/index.d.ts +3 -0
- package/dist/transforms/migrate-next-subpath-exports/index.d.ts.map +1 -0
- package/dist/transforms/migrate-next-subpath-exports/index.js +92 -0
- package/dist/transforms/migrate-next-subpath-exports/index.js.map +1 -0
- package/dist/transforms/migrate-next-subpath-exports/index.spec.d.ts +2 -0
- package/dist/transforms/migrate-next-subpath-exports/index.spec.d.ts.map +1 -0
- package/dist/transforms/migrate-next-subpath-exports/index.spec.js +46 -0
- package/dist/transforms/migrate-next-subpath-exports/index.spec.js.map +1 -0
- package/dist/transforms/migrate-next-subpath-exports/non-matching.input.js +22 -0
- package/dist/transforms/migrate-next-subpath-exports/non-matching.input.js.map +1 -0
- package/dist/transforms/migrate-next-subpath-exports/re-export.input.js +5 -0
- package/dist/transforms/migrate-next-subpath-exports/re-export.input.js.map +1 -0
- package/dist/transforms/migrate-next-subpath-exports/re-export.output.js +5 -0
- package/dist/transforms/migrate-next-subpath-exports/re-export.output.js.map +1 -0
- package/dist/transforms/migrate-slug-field/basic.input.js +21 -0
- package/dist/transforms/migrate-slug-field/basic.input.js.map +1 -0
- package/dist/transforms/migrate-slug-field/basic.output.js +26 -0
- package/dist/transforms/migrate-slug-field/basic.output.js.map +1 -0
- package/dist/transforms/migrate-slug-field/index.d.ts +3 -0
- package/dist/transforms/migrate-slug-field/index.d.ts.map +1 -0
- package/dist/transforms/migrate-slug-field/index.js +157 -0
- package/dist/transforms/migrate-slug-field/index.js.map +1 -0
- package/dist/transforms/migrate-slug-field/index.spec.d.ts +2 -0
- package/dist/transforms/migrate-slug-field/index.spec.d.ts.map +1 -0
- package/dist/transforms/migrate-slug-field/index.spec.js +47 -0
- package/dist/transforms/migrate-slug-field/index.spec.js.map +1 -0
- package/dist/transforms/migrate-slug-field/no-match.input.js +11 -0
- package/dist/transforms/migrate-slug-field/no-match.input.js.map +1 -0
- package/dist/transforms/migrate-slug-field/no-match.output.js +11 -0
- package/dist/transforms/migrate-slug-field/no-match.output.js.map +1 -0
- package/dist/transforms/migrate-slug-field/overrides.input.js +15 -0
- package/dist/transforms/migrate-slug-field/overrides.input.js.map +1 -0
- package/dist/transforms/migrate-slug-field/overrides.output.js +15 -0
- package/dist/transforms/migrate-slug-field/overrides.output.js.map +1 -0
- package/dist/transforms/migrate-storage-adapters-to-config/basic.input.js +22 -0
- package/dist/transforms/migrate-storage-adapters-to-config/basic.input.js.map +1 -0
- package/dist/transforms/migrate-storage-adapters-to-config/basic.output.js +22 -0
- package/dist/transforms/migrate-storage-adapters-to-config/basic.output.js.map +1 -0
- package/dist/transforms/migrate-storage-adapters-to-config/index.d.ts +3 -0
- package/dist/transforms/migrate-storage-adapters-to-config/index.d.ts.map +1 -0
- package/dist/transforms/migrate-storage-adapters-to-config/index.js +80 -0
- package/dist/transforms/migrate-storage-adapters-to-config/index.js.map +1 -0
- package/dist/transforms/migrate-storage-adapters-to-config/index.spec.d.ts +2 -0
- package/dist/transforms/migrate-storage-adapters-to-config/index.spec.d.ts.map +1 -0
- package/dist/transforms/migrate-storage-adapters-to-config/index.spec.js +85 -0
- package/dist/transforms/migrate-storage-adapters-to-config/index.spec.js.map +1 -0
- package/dist/transforms/migrate-storage-adapters-to-config/mixed-plugins.input.js +24 -0
- package/dist/transforms/migrate-storage-adapters-to-config/mixed-plugins.input.js.map +1 -0
- package/dist/transforms/migrate-storage-adapters-to-config/mixed-plugins.output.js +26 -0
- package/dist/transforms/migrate-storage-adapters-to-config/mixed-plugins.output.js.map +1 -0
- package/dist/transforms/migrate-storage-adapters-to-config/no-match.input.js +14 -0
- package/dist/transforms/migrate-storage-adapters-to-config/no-match.input.js.map +1 -0
- package/dist/transforms/migrate-storage-adapters-to-config/no-match.output.js +14 -0
- package/dist/transforms/migrate-storage-adapters-to-config/no-match.output.js.map +1 -0
- package/dist/transforms/migrate-versions-default/already-set.input.js +16 -0
- package/dist/transforms/migrate-versions-default/already-set.input.js.map +1 -0
- package/dist/transforms/migrate-versions-default/already-set.output.js +16 -0
- package/dist/transforms/migrate-versions-default/already-set.output.js.map +1 -0
- package/dist/transforms/migrate-versions-default/basic.input.js +16 -0
- package/dist/transforms/migrate-versions-default/basic.input.js.map +1 -0
- package/dist/transforms/migrate-versions-default/basic.output.js +18 -0
- package/dist/transforms/migrate-versions-default/basic.output.js.map +1 -0
- package/dist/transforms/migrate-versions-default/globals.input.js +16 -0
- package/dist/transforms/migrate-versions-default/globals.input.js.map +1 -0
- package/dist/transforms/migrate-versions-default/globals.output.js +17 -0
- package/dist/transforms/migrate-versions-default/globals.output.js.map +1 -0
- package/dist/transforms/migrate-versions-default/index.d.ts +10 -0
- package/dist/transforms/migrate-versions-default/index.d.ts.map +1 -0
- package/dist/transforms/migrate-versions-default/index.js +106 -0
- package/dist/transforms/migrate-versions-default/index.js.map +1 -0
- package/dist/transforms/migrate-versions-default/index.test.d.ts +2 -0
- package/dist/transforms/migrate-versions-default/index.test.d.ts.map +1 -0
- package/dist/transforms/migrate-versions-default/index.test.js +81 -0
- package/dist/transforms/migrate-versions-default/index.test.js.map +1 -0
- package/dist/transforms/migrate-versions-default/non-matching.input.js +10 -0
- package/dist/transforms/migrate-versions-default/non-matching.input.js.map +1 -0
- package/dist/transforms/migrate-versions-default/non-matching.output.js +10 -0
- package/dist/transforms/migrate-versions-default/non-matching.output.js.map +1 -0
- package/dist/transforms/migrate-versions-default/satisfies.input.js +11 -0
- package/dist/transforms/migrate-versions-default/satisfies.input.js.map +1 -0
- package/dist/transforms/migrate-versions-default/satisfies.output.js +13 -0
- package/dist/transforms/migrate-versions-default/satisfies.output.js.map +1 -0
- package/dist/transforms/remove-group-by-true/basic.input.js +22 -0
- package/dist/transforms/remove-group-by-true/basic.input.js.map +1 -0
- package/dist/transforms/remove-group-by-true/basic.output.js +19 -0
- package/dist/transforms/remove-group-by-true/basic.output.js.map +1 -0
- package/dist/transforms/remove-group-by-true/index.d.ts +3 -0
- package/dist/transforms/remove-group-by-true/index.d.ts.map +1 -0
- package/dist/transforms/remove-group-by-true/index.js +36 -0
- package/dist/transforms/remove-group-by-true/index.js.map +1 -0
- package/dist/transforms/remove-group-by-true/index.spec.d.ts +2 -0
- package/dist/transforms/remove-group-by-true/index.spec.d.ts.map +1 -0
- package/dist/transforms/remove-group-by-true/index.spec.js +47 -0
- package/dist/transforms/remove-group-by-true/index.spec.js.map +1 -0
- package/dist/transforms/remove-group-by-true/no-match.input.js +13 -0
- package/dist/transforms/remove-group-by-true/no-match.input.js.map +1 -0
- package/dist/transforms/remove-group-by-true/no-match.output.js +13 -0
- package/dist/transforms/remove-group-by-true/no-match.output.js.map +1 -0
- package/dist/transforms/remove-group-by-true/non-boolean.input.js +15 -0
- package/dist/transforms/remove-group-by-true/non-boolean.input.js.map +1 -0
- package/dist/transforms/remove-group-by-true/non-boolean.output.js +15 -0
- package/dist/transforms/remove-group-by-true/non-boolean.output.js.map +1 -0
- package/dist/transforms/remove-localize-status-config/basic.input.js +27 -0
- package/dist/transforms/remove-localize-status-config/basic.input.js.map +1 -0
- package/dist/transforms/remove-localize-status-config/basic.output.js +23 -0
- package/dist/transforms/remove-localize-status-config/basic.output.js.map +1 -0
- package/dist/transforms/remove-localize-status-config/index.d.ts +11 -0
- package/dist/transforms/remove-localize-status-config/index.d.ts.map +1 -0
- package/dist/transforms/remove-localize-status-config/index.js +34 -0
- package/dist/transforms/remove-localize-status-config/index.js.map +1 -0
- package/dist/transforms/remove-localize-status-config/index.spec.d.ts +2 -0
- package/dist/transforms/remove-localize-status-config/index.spec.d.ts.map +1 -0
- package/dist/transforms/remove-localize-status-config/index.spec.js +38 -0
- package/dist/transforms/remove-localize-status-config/index.spec.js.map +1 -0
- package/dist/transforms/remove-localize-status-config/preserve-false.input.js +23 -0
- package/dist/transforms/remove-localize-status-config/preserve-false.input.js.map +1 -0
- package/dist/transforms/remove-localize-status-config/preserve-false.output.js +23 -0
- package/dist/transforms/remove-localize-status-config/preserve-false.output.js.map +1 -0
- package/dist/transforms/remove-publish-specific-locale/already-has-locale.input.js +12 -0
- package/dist/transforms/remove-publish-specific-locale/already-has-locale.input.js.map +1 -0
- package/dist/transforms/remove-publish-specific-locale/already-has-locale.output.js +11 -0
- package/dist/transforms/remove-publish-specific-locale/already-has-locale.output.js.map +1 -0
- package/dist/transforms/remove-publish-specific-locale/basic.input.js +20 -0
- package/dist/transforms/remove-publish-specific-locale/basic.input.js.map +1 -0
- package/dist/transforms/remove-publish-specific-locale/basic.output.js +20 -0
- package/dist/transforms/remove-publish-specific-locale/basic.output.js.map +1 -0
- package/dist/transforms/remove-publish-specific-locale/index.d.ts +11 -0
- package/dist/transforms/remove-publish-specific-locale/index.d.ts.map +1 -0
- package/dist/transforms/remove-publish-specific-locale/index.js +76 -0
- package/dist/transforms/remove-publish-specific-locale/index.js.map +1 -0
- package/dist/transforms/remove-publish-specific-locale/index.spec.d.ts +2 -0
- package/dist/transforms/remove-publish-specific-locale/index.spec.d.ts.map +1 -0
- package/dist/transforms/remove-publish-specific-locale/index.spec.js +47 -0
- package/dist/transforms/remove-publish-specific-locale/index.spec.js.map +1 -0
- package/dist/transforms/remove-publish-specific-locale/non-matching.input.js +6 -0
- package/dist/transforms/remove-publish-specific-locale/non-matching.input.js.map +1 -0
- package/dist/transforms/remove-publish-specific-locale/non-matching.output.js +6 -0
- package/dist/transforms/remove-publish-specific-locale/non-matching.output.js.map +1 -0
- package/dist/transforms/remove-versions-true/basic.input.js +12 -0
- package/dist/transforms/remove-versions-true/basic.input.js.map +1 -0
- package/dist/transforms/remove-versions-true/basic.output.js +10 -0
- package/dist/transforms/remove-versions-true/basic.output.js.map +1 -0
- package/dist/transforms/remove-versions-true/index.d.ts +12 -0
- package/dist/transforms/remove-versions-true/index.d.ts.map +1 -0
- package/dist/transforms/remove-versions-true/index.js +100 -0
- package/dist/transforms/remove-versions-true/index.js.map +1 -0
- package/dist/transforms/remove-versions-true/index.test.d.ts +2 -0
- package/dist/transforms/remove-versions-true/index.test.d.ts.map +1 -0
- package/dist/transforms/remove-versions-true/index.test.js +38 -0
- package/dist/transforms/remove-versions-true/index.test.js.map +1 -0
- package/dist/transforms/remove-versions-true/non-matching.input.js +20 -0
- package/dist/transforms/remove-versions-true/non-matching.input.js.map +1 -0
- package/dist/transforms/remove-versions-true/non-matching.output.js +20 -0
- package/dist/transforms/remove-versions-true/non-matching.output.js.map +1 -0
- package/dist/transforms/rename-storage-adapters-to-storage/basic.input.js +18 -0
- package/dist/transforms/rename-storage-adapters-to-storage/basic.input.js.map +1 -0
- package/dist/transforms/rename-storage-adapters-to-storage/basic.output.js +18 -0
- package/dist/transforms/rename-storage-adapters-to-storage/basic.output.js.map +1 -0
- package/dist/transforms/rename-storage-adapters-to-storage/index.d.ts +3 -0
- package/dist/transforms/rename-storage-adapters-to-storage/index.d.ts.map +1 -0
- package/dist/transforms/rename-storage-adapters-to-storage/index.js +31 -0
- package/dist/transforms/rename-storage-adapters-to-storage/index.js.map +1 -0
- package/dist/transforms/rename-storage-adapters-to-storage/index.spec.d.ts +2 -0
- package/dist/transforms/rename-storage-adapters-to-storage/index.spec.d.ts.map +1 -0
- package/dist/transforms/rename-storage-adapters-to-storage/index.spec.js +55 -0
- package/dist/transforms/rename-storage-adapters-to-storage/index.spec.js.map +1 -0
- package/dist/transforms/rename-storage-adapters-to-storage/no-match.input.js +7 -0
- package/dist/transforms/rename-storage-adapters-to-storage/no-match.input.js.map +1 -0
- package/dist/transforms/rename-storage-adapters-to-storage/no-match.output.js +7 -0
- package/dist/transforms/rename-storage-adapters-to-storage/no-match.output.js.map +1 -0
- package/dist/transforms/rename-typescript-schema-to-json-schema/basic.input.js +25 -0
- package/dist/transforms/rename-typescript-schema-to-json-schema/basic.input.js.map +1 -0
- package/dist/transforms/rename-typescript-schema-to-json-schema/basic.output.js +25 -0
- package/dist/transforms/rename-typescript-schema-to-json-schema/basic.output.js.map +1 -0
- package/dist/transforms/rename-typescript-schema-to-json-schema/index.d.ts +3 -0
- package/dist/transforms/rename-typescript-schema-to-json-schema/index.d.ts.map +1 -0
- package/dist/transforms/rename-typescript-schema-to-json-schema/index.js +54 -0
- package/dist/transforms/rename-typescript-schema-to-json-schema/index.js.map +1 -0
- package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.d.ts +2 -0
- package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.d.ts.map +1 -0
- package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.js +45 -0
- package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.js.map +1 -0
- package/dist/transforms/rename-typescript-schema-to-json-schema/non-matching.input.js +12 -0
- package/dist/transforms/rename-typescript-schema-to-json-schema/non-matching.input.js.map +1 -0
- package/dist/transforms/rename-typescript-schema-to-json-schema/sibling.input.js +18 -0
- package/dist/transforms/rename-typescript-schema-to-json-schema/sibling.input.js.map +1 -0
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/packageJson.d.ts +17 -0
- package/dist/utils/packageJson.d.ts.map +1 -0
- package/dist/utils/packageJson.js +46 -0
- package/dist/utils/packageJson.js.map +1 -0
- package/dist/utils/packageJson.spec.d.ts +2 -0
- package/dist/utils/packageJson.spec.d.ts.map +1 -0
- package/dist/utils/packageJson.spec.js +41 -0
- package/dist/utils/packageJson.spec.js.map +1 -0
- package/dist/utils/test-helpers.d.ts +23 -0
- package/dist/utils/test-helpers.d.ts.map +1 -0
- package/dist/utils/test-helpers.js +53 -0
- package/dist/utils/test-helpers.js.map +1 -0
- package/package.json +53 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2018-2026 Payload CMS, LLC <info@payloadcms.com>
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
'Software'), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
19
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
20
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
21
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
22
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# @payloadcms/codemod
|
|
2
|
+
|
|
3
|
+
CLI for auto-migrating Payload projects across deprecations. Initial target: v3 -> v4.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
Run against your project root:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npx @payloadcms/codemod [path]
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
With no arguments, runs every registered transform against the current directory. Transforms are idempotent and no-op on code that doesn't match their pattern, so running the full set against a partially migrated project is safe.
|
|
14
|
+
|
|
15
|
+
### Flags
|
|
16
|
+
|
|
17
|
+
- `--transform <name>` — run a single transform by name.
|
|
18
|
+
- `--list` — print registered transforms.
|
|
19
|
+
- `--dry` — analyze only; write nothing.
|
|
20
|
+
- `--print` — print transformed sources to stdout instead of writing.
|
|
21
|
+
|
|
22
|
+
## How it works
|
|
23
|
+
|
|
24
|
+
The tool loads your project via [ts-morph](https://ts-morph.com/), using your `tsconfig.json` when present, otherwise globbing `**/*.{ts,tsx,js,jsx}` (excluding `node_modules`, `dist`, `.next`, `build`). Each registered transform is applied in order against the shared project; changes are saved at the end unless `--dry` or `--print` is passed.
|
|
25
|
+
|
|
26
|
+
## Transforms
|
|
27
|
+
|
|
28
|
+
- `migrate-list-view-select-api` — Removes `admin.enableListViewSelectAPI` from Collection Configs. The List View's Select API is the default in v4.
|
|
29
|
+
- `migrate-disabled-fields` — migrates `field.admin.disableListColumn`, `disableListFilter`, `disableGroupBy`, `disableBulkEdit` and their equivalents on `imageSize.admin` into the consolidated `disabled` object form.
|
|
30
|
+
- `globals-components-edit` — Globals: rename `admin.components.elements` to `admin.components.edit` and hoist `Description` to top-level `admin.components.Description` to match Collection conventions.
|
|
31
|
+
- `migrate-force-select` — migrates `forceSelect: { ... }` on Collection/Global configs to a `select` function that augments the caller's `select` when present and returns `undefined` (preserving full-document reads) when not. Shallow values become a spread (`{ ...select, ... }`); nested values use `deepMergeSimple` from `payload/shared` (auto-imported) to preserve the previous deep-merge semantics. Non-literal values, sibling `select` already present, and unsupported member kinds are surfaced as notes for manual review.
|
|
32
|
+
- `migrate-block-references-to-blocks` — renames blocks field `blockReferences` configs to `blocks`, and removes a sibling `blocks: []` placeholder when present. If a non-empty `blocks` sibling already exists, the transform leaves the field untouched and surfaces a note for manual review.
|
|
33
|
+
- `migrate-hide-api-url` — migrates `admin.hideAPIURL: true` to `admin.components.views.edit.api.tab.condition: () => false` on collection and global configs.
|
|
34
|
+
- `migrate-aliased-exports` — rewrites imports of types and utilities that used to be re-exported from `@payloadcms/ui` and `@payloadcms/next/utilities` to their canonical sources in `payload` / `payload/shared`.
|
|
35
|
+
- `migrate-document-title-context` — migrates `title` and `setDocumentTitle` destructured from `useDocumentInfo()` to `useDocumentTitle()`. They were removed from `DocumentInfoContext` in v4 and now live on `DocumentTitleContext`.
|
|
36
|
+
- `migrate-storage-adapters-to-config` — moves storage adapter factory calls (`s3Storage`, `gcsStorage`, `azureStorage`, `r2Storage`, `vercelBlobStorage`) from `plugins` to the new top-level `storage` array. Removes `plugins` if it becomes empty after the move. **Limitations:** aliased imports (e.g. `import { s3Storage as myS3 }`) are not detected; rename any aliases to the canonical factory name before running, or migrate those calls manually. The transform preserves AST structure but does not re-format output — run `prettier --write` (or your project's formatter) after applying.
|
|
37
|
+
- `rename-storage-adapters-to-storage` — renames the top-level `storageAdapters` config property to `storage`. Skips any object that already has a `storage` property. Run this if you previously ran `migrate-storage-adapters-to-config` and need to update the property name.
|
|
38
|
+
- `migrate-azure-chunk-large-files` — removes the `chunkLargeFiles` option from `azureStorage` `clientUploads` config. Chunked client uploads are the default in v4, so the flag no longer exists; `clientUploads: { chunkLargeFiles: true }` collapses to `clientUploads: true`. Surfaces a note when `chunkLargeFiles: false` was removed, since v4 can no longer disable chunking (and its broader CORS requirements apply).
|
|
39
|
+
- `migrate-import-export-hooks` — migrates the deprecated `toCSV` and `fromCSV` field options in `custom['plugin-import-export']` to `hooks.beforeExport` and `hooks.beforeImport`. If a `hooks` object already exists it is merged into; if `hooks.beforeExport`/`hooks.beforeImport` already exist the deprecated sibling is dropped without overwriting. Review argument shapes after migration: `beforeExport` uses `siblingData` (not `row`) and `data` is the top-level document (previously `doc`).
|
|
40
|
+
- `migrate-db-types-subpath` — rewrites imports from the removed `/types` subpath exports of `@payloadcms/drizzle`, `@payloadcms/db-postgres`, `@payloadcms/db-sqlite`, `@payloadcms/db-vercel-postgres`, and `@payloadcms/db-d1-sqlite` to their main entry points. Also handles re-export declarations and `declare module` augmentations.
|
|
41
|
+
- `migrate-next-subpath-exports` — rewrites imports, re-exports, and string-literal component paths from the removed `@payloadcms/next/client`, `@payloadcms/next/rsc`, and `@payloadcms/next/templates` subpaths to their canonical `@payloadcms/ui` or `@payloadcms/ui/rsc` sources. After running, regenerate the import map with `payload generate:importmap`.
|
|
42
|
+
- `migrate-next-generate-viewport-export` — adds a `generateViewport` export to app router layout files that already use Payload's shared Next.js layout, preserving Next.js viewport behavior without touching custom viewport implementations.
|
|
43
|
+
- `migrate-lexical-is-html-element` — rewrites imports of the removed `isHTMLElement` utility from `@payloadcms/richtext-lexical` (and `/client`) to its canonical source, `lexical`, splitting it out of mixed imports and merging into an existing `lexical` import when present. Surfaces a note reminding you that `lexical` is now a required dependency (`pnpm add lexical`).
|
|
44
|
+
- `migrate-after-operation-read` — rewrites `operation === 'read'` checks inside collection `afterOperation` hooks to handle the `find` and `findByID` operations (the deprecated `'read'` value was removed). Handles `===`/`!==`/`==`/`!=` against a destructured (or aliased) or property-accessed `operation` argument. Leaves `beforeOperation` (which still uses `'read'`) untouched, and surfaces notes for non-inline hooks and `switch` statements that need manual review.
|
|
45
|
+
- `migrate-versions-default` — adds `versions: false` to every `CollectionConfig` or `GlobalConfig` object that does not already have a `versions` property. Preserves the previous opt-in behaviour now that `versions` defaults to `true` for both collections and globals. Detects the three common annotation forms: `: CollectionConfig`, `satisfies GlobalConfig`, and `as CollectionConfig`.
|
|
46
|
+
- `remove-versions-true` — removes the now-redundant `versions: true` property from `CollectionConfig` and `GlobalConfig` objects. Only removes the bare boolean `true`; object-form configs (e.g. `versions: { drafts: true }`) are left untouched.
|
|
47
|
+
- `remove-group-by-true` — removes `admin.groupBy` from `CollectionConfig` objects. The experimental `groupBy` flag has been removed; groupBy is now an always-available per-user UI preference.
|
|
48
|
+
- `rename-typescript-schema-to-json-schema` — renames the `typescriptSchema` field-config property to `jsonSchema` (it always accepted JSON Schema, not TypeScript). Skips any object that already defines a `jsonSchema` sibling and surfaces it as a note for manual review.
|
|
49
|
+
- `migrate-build-script` — rewrites the `build` npm script in `package.json` from `next build` to `payload build`, so the Import Map (and types) are generated before the Next.js build. Matches the `next build` invocation only (leaves `next build-storybook` and the like untouched) and is a no-op when `build` is already `payload build`.
|
|
50
|
+
- `migrate-slug-field` — converts the removed experimental `slugField()` helper (imported from `payload`) into the native `{ type: 'slug' }` field, mapping `useAsSlug`/`fieldToUse`, `slugify`, `required`, `localized`, `disableUnique` (→ `unique: false`), and `position` (→ `admin.position`), and dropping the obsolete `checkboxName`. Removes the now-unused `slugField` import. Calls using `overrides` (or other unrecognized options) are left in place with a note for manual migration.
|
|
51
|
+
|
|
52
|
+
## Contributing
|
|
53
|
+
|
|
54
|
+
To add a transform:
|
|
55
|
+
|
|
56
|
+
1. Create `src/transforms/<name>/` with `index.ts` exporting a `Transform`.
|
|
57
|
+
2. Add fixtures as `<case>.input.ts` and `<case>.output.ts` siblings of `index.ts`.
|
|
58
|
+
3. Add `index.spec.ts` verifying both the fixture pair and idempotency (running the transform on the output produces the output unchanged).
|
|
59
|
+
4. Register in `src/registry.ts`.
|
|
60
|
+
5. Update the transform list in this README.
|
|
61
|
+
|
|
62
|
+
Ship the transform in the same PR as the deprecation it migrates.
|
package/bin/cli.js
ADDED
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAaA,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DhF"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/* eslint-disable no-console */ import { existsSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import { IndentationText, Project, QuoteKind } from 'ts-morph';
|
|
4
|
+
import { parseFlags } from './cli.parseFlags.js';
|
|
5
|
+
import { transforms as registry } from './registry.js';
|
|
6
|
+
import { runTransforms } from './runner.js';
|
|
7
|
+
import { loadPackageJsons, serializePackageJson } from './utils/packageJson.js';
|
|
8
|
+
export async function main(argv = process.argv.slice(2)) {
|
|
9
|
+
const flags = parseFlags(argv);
|
|
10
|
+
if (flags.list) {
|
|
11
|
+
printList();
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const selected = selectTransforms(registry, flags.transform);
|
|
15
|
+
if (selected.length === 0) {
|
|
16
|
+
console.error(`No transforms matched${flags.transform ? ` "${flags.transform}"` : ''}.`);
|
|
17
|
+
process.exitCode = 1;
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const project = loadProject(resolve(flags.path));
|
|
21
|
+
const snapshot = snapshotProject(project);
|
|
22
|
+
const packageJsons = loadPackageJsons(resolve(flags.path));
|
|
23
|
+
const { failed, results } = await runTransforms({
|
|
24
|
+
// Shares the same `data` reference, so transform mutations are visible
|
|
25
|
+
// below for change detection (do not clone here).
|
|
26
|
+
packageJsons: packageJsons.map(({ data, path })=>({
|
|
27
|
+
data,
|
|
28
|
+
path
|
|
29
|
+
})),
|
|
30
|
+
project,
|
|
31
|
+
transforms: selected
|
|
32
|
+
});
|
|
33
|
+
const changed = project.getSourceFiles().filter((file)=>snapshot.get(file.getFilePath()) !== file.getFullText());
|
|
34
|
+
const changedPackageJsons = packageJsons.filter((pkg)=>serializePackageJson(pkg.data, pkg.originalText) !== pkg.originalText);
|
|
35
|
+
if (flags.print) {
|
|
36
|
+
if (changed.length === 0 && changedPackageJsons.length === 0) {
|
|
37
|
+
console.log('(no files changed)');
|
|
38
|
+
} else {
|
|
39
|
+
for (const file of changed){
|
|
40
|
+
console.log(`// ${file.getFilePath()}`);
|
|
41
|
+
console.log(file.getFullText());
|
|
42
|
+
}
|
|
43
|
+
for (const pkg of changedPackageJsons){
|
|
44
|
+
console.log(`// ${pkg.path}`);
|
|
45
|
+
console.log(serializePackageJson(pkg.data, pkg.originalText));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
} else if (!flags.dry) {
|
|
49
|
+
await Promise.all(changed.map((file)=>file.save()));
|
|
50
|
+
for (const pkg of changedPackageJsons){
|
|
51
|
+
writeFileSync(pkg.path, serializePackageJson(pkg.data, pkg.originalText));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
printSummary(results);
|
|
55
|
+
if (failed) {
|
|
56
|
+
process.exitCode = 1;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function selectTransforms(available, name) {
|
|
60
|
+
if (!name) {
|
|
61
|
+
return available;
|
|
62
|
+
}
|
|
63
|
+
return available.filter((t)=>t.name === name);
|
|
64
|
+
}
|
|
65
|
+
function printList() {
|
|
66
|
+
if (registry.length === 0) {
|
|
67
|
+
console.log('No transforms registered.');
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
for (const t of registry){
|
|
71
|
+
console.log(`${t.name} ${t.description}`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function loadProject(path) {
|
|
75
|
+
const manipulationSettings = {
|
|
76
|
+
indentationText: IndentationText.TwoSpaces,
|
|
77
|
+
quoteKind: QuoteKind.Single,
|
|
78
|
+
useTrailingCommas: true
|
|
79
|
+
};
|
|
80
|
+
const tsconfigPath = resolve(path, 'tsconfig.json');
|
|
81
|
+
if (existsSync(tsconfigPath)) {
|
|
82
|
+
return new Project({
|
|
83
|
+
manipulationSettings,
|
|
84
|
+
tsConfigFilePath: tsconfigPath
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
const project = new Project({
|
|
88
|
+
manipulationSettings
|
|
89
|
+
});
|
|
90
|
+
project.addSourceFilesAtPaths([
|
|
91
|
+
`${path}/**/*.{ts,tsx,js,jsx}`,
|
|
92
|
+
'!**/node_modules/**',
|
|
93
|
+
'!**/dist/**',
|
|
94
|
+
'!**/.next/**',
|
|
95
|
+
'!**/build/**'
|
|
96
|
+
]);
|
|
97
|
+
return project;
|
|
98
|
+
}
|
|
99
|
+
function snapshotProject(project) {
|
|
100
|
+
return new Map(project.getSourceFiles().map((file)=>[
|
|
101
|
+
file.getFilePath(),
|
|
102
|
+
file.getFullText()
|
|
103
|
+
]));
|
|
104
|
+
}
|
|
105
|
+
function printSummary(results) {
|
|
106
|
+
console.log('');
|
|
107
|
+
console.log('Codemod summary:');
|
|
108
|
+
for (const r of results){
|
|
109
|
+
if (r.error) {
|
|
110
|
+
console.log(` [FAIL] ${r.name} — ${r.error.message}`);
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
console.log(` [ok] ${r.name} — ${r.filesChanged.length} file(s) changed`);
|
|
114
|
+
for (const note of r.notes ?? []){
|
|
115
|
+
console.log(` note: ${note}`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport { existsSync, writeFileSync } from 'node:fs'\nimport { resolve } from 'node:path'\nimport { IndentationText, Project, QuoteKind } from 'ts-morph'\n\nimport type { TransformRunResult } from './runner.js'\nimport type { Transform } from './types.js'\n\nimport { parseFlags } from './cli.parseFlags.js'\nimport { transforms as registry } from './registry.js'\nimport { runTransforms } from './runner.js'\nimport { loadPackageJsons, serializePackageJson } from './utils/packageJson.js'\n\nexport async function main(argv: string[] = process.argv.slice(2)): Promise<void> {\n const flags = parseFlags(argv)\n\n if (flags.list) {\n printList()\n return\n }\n\n const selected = selectTransforms(registry, flags.transform)\n if (selected.length === 0) {\n console.error(`No transforms matched${flags.transform ? ` \"${flags.transform}\"` : ''}.`)\n process.exitCode = 1\n return\n }\n\n const project = loadProject(resolve(flags.path))\n const snapshot = snapshotProject(project)\n\n const packageJsons = loadPackageJsons(resolve(flags.path))\n\n const { failed, results } = await runTransforms({\n // Shares the same `data` reference, so transform mutations are visible\n // below for change detection (do not clone here).\n packageJsons: packageJsons.map(({ data, path }) => ({ data, path })),\n project,\n transforms: selected,\n })\n\n const changed = project\n .getSourceFiles()\n .filter((file) => snapshot.get(file.getFilePath()) !== file.getFullText())\n\n const changedPackageJsons = packageJsons.filter(\n (pkg) => serializePackageJson(pkg.data, pkg.originalText) !== pkg.originalText,\n )\n\n if (flags.print) {\n if (changed.length === 0 && changedPackageJsons.length === 0) {\n console.log('(no files changed)')\n } else {\n for (const file of changed) {\n console.log(`// ${file.getFilePath()}`)\n console.log(file.getFullText())\n }\n for (const pkg of changedPackageJsons) {\n console.log(`// ${pkg.path}`)\n console.log(serializePackageJson(pkg.data, pkg.originalText))\n }\n }\n } else if (!flags.dry) {\n await Promise.all(changed.map((file) => file.save()))\n for (const pkg of changedPackageJsons) {\n writeFileSync(pkg.path, serializePackageJson(pkg.data, pkg.originalText))\n }\n }\n\n printSummary(results)\n\n if (failed) {\n process.exitCode = 1\n }\n}\n\nfunction selectTransforms(available: Transform[], name: string | undefined): Transform[] {\n if (!name) {\n return available\n }\n return available.filter((t) => t.name === name)\n}\n\nfunction printList(): void {\n if (registry.length === 0) {\n console.log('No transforms registered.')\n return\n }\n for (const t of registry) {\n console.log(`${t.name} ${t.description}`)\n }\n}\n\nfunction loadProject(path: string): Project {\n const manipulationSettings = {\n indentationText: IndentationText.TwoSpaces,\n quoteKind: QuoteKind.Single,\n useTrailingCommas: true,\n }\n const tsconfigPath = resolve(path, 'tsconfig.json')\n if (existsSync(tsconfigPath)) {\n return new Project({ manipulationSettings, tsConfigFilePath: tsconfigPath })\n }\n const project = new Project({ manipulationSettings })\n project.addSourceFilesAtPaths([\n `${path}/**/*.{ts,tsx,js,jsx}`,\n '!**/node_modules/**',\n '!**/dist/**',\n '!**/.next/**',\n '!**/build/**',\n ])\n return project\n}\n\nfunction snapshotProject(project: Project): Map<string, string> {\n return new Map(project.getSourceFiles().map((file) => [file.getFilePath(), file.getFullText()]))\n}\n\nfunction printSummary(results: TransformRunResult[]): void {\n console.log('')\n console.log('Codemod summary:')\n for (const r of results) {\n if (r.error) {\n console.log(` [FAIL] ${r.name} — ${r.error.message}`)\n continue\n }\n console.log(` [ok] ${r.name} — ${r.filesChanged.length} file(s) changed`)\n for (const note of r.notes ?? []) {\n console.log(` note: ${note}`)\n }\n }\n}\n"],"names":["existsSync","writeFileSync","resolve","IndentationText","Project","QuoteKind","parseFlags","transforms","registry","runTransforms","loadPackageJsons","serializePackageJson","main","argv","process","slice","flags","list","printList","selected","selectTransforms","transform","length","console","error","exitCode","project","loadProject","path","snapshot","snapshotProject","packageJsons","failed","results","map","data","changed","getSourceFiles","filter","file","get","getFilePath","getFullText","changedPackageJsons","pkg","originalText","print","log","dry","Promise","all","save","printSummary","available","name","t","description","manipulationSettings","indentationText","TwoSpaces","quoteKind","Single","useTrailingCommas","tsconfigPath","tsConfigFilePath","addSourceFilesAtPaths","Map","r","message","filesChanged","note","notes"],"mappings":"AAAA,6BAA6B,GAC7B,SAASA,UAAU,EAAEC,aAAa,QAAQ,UAAS;AACnD,SAASC,OAAO,QAAQ,YAAW;AACnC,SAASC,eAAe,EAAEC,OAAO,EAAEC,SAAS,QAAQ,WAAU;AAK9D,SAASC,UAAU,QAAQ,sBAAqB;AAChD,SAASC,cAAcC,QAAQ,QAAQ,gBAAe;AACtD,SAASC,aAAa,QAAQ,cAAa;AAC3C,SAASC,gBAAgB,EAAEC,oBAAoB,QAAQ,yBAAwB;AAE/E,OAAO,eAAeC,KAAKC,OAAiBC,QAAQD,IAAI,CAACE,KAAK,CAAC,EAAE;IAC/D,MAAMC,QAAQV,WAAWO;IAEzB,IAAIG,MAAMC,IAAI,EAAE;QACdC;QACA;IACF;IAEA,MAAMC,WAAWC,iBAAiBZ,UAAUQ,MAAMK,SAAS;IAC3D,IAAIF,SAASG,MAAM,KAAK,GAAG;QACzBC,QAAQC,KAAK,CAAC,CAAC,qBAAqB,EAAER,MAAMK,SAAS,GAAG,CAAC,EAAE,EAAEL,MAAMK,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QACvFP,QAAQW,QAAQ,GAAG;QACnB;IACF;IAEA,MAAMC,UAAUC,YAAYzB,QAAQc,MAAMY,IAAI;IAC9C,MAAMC,WAAWC,gBAAgBJ;IAEjC,MAAMK,eAAerB,iBAAiBR,QAAQc,MAAMY,IAAI;IAExD,MAAM,EAAEI,MAAM,EAAEC,OAAO,EAAE,GAAG,MAAMxB,cAAc;QAC9C,uEAAuE;QACvE,kDAAkD;QAClDsB,cAAcA,aAAaG,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAEP,IAAI,EAAE,GAAM,CAAA;gBAAEO;gBAAMP;YAAK,CAAA;QACjEF;QACAnB,YAAYY;IACd;IAEA,MAAMiB,UAAUV,QACbW,cAAc,GACdC,MAAM,CAAC,CAACC,OAASV,SAASW,GAAG,CAACD,KAAKE,WAAW,QAAQF,KAAKG,WAAW;IAEzE,MAAMC,sBAAsBZ,aAAaO,MAAM,CAC7C,CAACM,MAAQjC,qBAAqBiC,IAAIT,IAAI,EAAES,IAAIC,YAAY,MAAMD,IAAIC,YAAY;IAGhF,IAAI7B,MAAM8B,KAAK,EAAE;QACf,IAAIV,QAAQd,MAAM,KAAK,KAAKqB,oBAAoBrB,MAAM,KAAK,GAAG;YAC5DC,QAAQwB,GAAG,CAAC;QACd,OAAO;YACL,KAAK,MAAMR,QAAQH,QAAS;gBAC1Bb,QAAQwB,GAAG,CAAC,CAAC,GAAG,EAAER,KAAKE,WAAW,IAAI;gBACtClB,QAAQwB,GAAG,CAACR,KAAKG,WAAW;YAC9B;YACA,KAAK,MAAME,OAAOD,oBAAqB;gBACrCpB,QAAQwB,GAAG,CAAC,CAAC,GAAG,EAAEH,IAAIhB,IAAI,EAAE;gBAC5BL,QAAQwB,GAAG,CAACpC,qBAAqBiC,IAAIT,IAAI,EAAES,IAAIC,YAAY;YAC7D;QACF;IACF,OAAO,IAAI,CAAC7B,MAAMgC,GAAG,EAAE;QACrB,MAAMC,QAAQC,GAAG,CAACd,QAAQF,GAAG,CAAC,CAACK,OAASA,KAAKY,IAAI;QACjD,KAAK,MAAMP,OAAOD,oBAAqB;YACrC1C,cAAc2C,IAAIhB,IAAI,EAAEjB,qBAAqBiC,IAAIT,IAAI,EAAES,IAAIC,YAAY;QACzE;IACF;IAEAO,aAAanB;IAEb,IAAID,QAAQ;QACVlB,QAAQW,QAAQ,GAAG;IACrB;AACF;AAEA,SAASL,iBAAiBiC,SAAsB,EAAEC,IAAwB;IACxE,IAAI,CAACA,MAAM;QACT,OAAOD;IACT;IACA,OAAOA,UAAUf,MAAM,CAAC,CAACiB,IAAMA,EAAED,IAAI,KAAKA;AAC5C;AAEA,SAASpC;IACP,IAAIV,SAASc,MAAM,KAAK,GAAG;QACzBC,QAAQwB,GAAG,CAAC;QACZ;IACF;IACA,KAAK,MAAMQ,KAAK/C,SAAU;QACxBe,QAAQwB,GAAG,CAAC,GAAGQ,EAAED,IAAI,CAAC,EAAE,EAAEC,EAAEC,WAAW,EAAE;IAC3C;AACF;AAEA,SAAS7B,YAAYC,IAAY;IAC/B,MAAM6B,uBAAuB;QAC3BC,iBAAiBvD,gBAAgBwD,SAAS;QAC1CC,WAAWvD,UAAUwD,MAAM;QAC3BC,mBAAmB;IACrB;IACA,MAAMC,eAAe7D,QAAQ0B,MAAM;IACnC,IAAI5B,WAAW+D,eAAe;QAC5B,OAAO,IAAI3D,QAAQ;YAAEqD;YAAsBO,kBAAkBD;QAAa;IAC5E;IACA,MAAMrC,UAAU,IAAItB,QAAQ;QAAEqD;IAAqB;IACnD/B,QAAQuC,qBAAqB,CAAC;QAC5B,GAAGrC,KAAK,qBAAqB,CAAC;QAC9B;QACA;QACA;QACA;KACD;IACD,OAAOF;AACT;AAEA,SAASI,gBAAgBJ,OAAgB;IACvC,OAAO,IAAIwC,IAAIxC,QAAQW,cAAc,GAAGH,GAAG,CAAC,CAACK,OAAS;YAACA,KAAKE,WAAW;YAAIF,KAAKG,WAAW;SAAG;AAChG;AAEA,SAASU,aAAanB,OAA6B;IACjDV,QAAQwB,GAAG,CAAC;IACZxB,QAAQwB,GAAG,CAAC;IACZ,KAAK,MAAMoB,KAAKlC,QAAS;QACvB,IAAIkC,EAAE3C,KAAK,EAAE;YACXD,QAAQwB,GAAG,CAAC,CAAC,SAAS,EAAEoB,EAAEb,IAAI,CAAC,GAAG,EAAEa,EAAE3C,KAAK,CAAC4C,OAAO,EAAE;YACrD;QACF;QACA7C,QAAQwB,GAAG,CAAC,CAAC,OAAO,EAAEoB,EAAEb,IAAI,CAAC,GAAG,EAAEa,EAAEE,YAAY,CAAC/C,MAAM,CAAC,gBAAgB,CAAC;QACzE,KAAK,MAAMgD,QAAQH,EAAEI,KAAK,IAAI,EAAE,CAAE;YAChChD,QAAQwB,GAAG,CAAC,CAAC,YAAY,EAAEuB,MAAM;QACnC;IACF;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.parseFlags.d.ts","sourceRoot":"","sources":["../src/cli.parseFlags.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,EAAE,OAAO,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,CAoBnD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { parseArgs } from 'node:util';
|
|
2
|
+
export function parseFlags(argv) {
|
|
3
|
+
const { positionals, values } = parseArgs({
|
|
4
|
+
allowPositionals: true,
|
|
5
|
+
args: argv,
|
|
6
|
+
options: {
|
|
7
|
+
dry: {
|
|
8
|
+
type: 'boolean',
|
|
9
|
+
default: false
|
|
10
|
+
},
|
|
11
|
+
'dry-run': {
|
|
12
|
+
type: 'boolean',
|
|
13
|
+
default: false
|
|
14
|
+
},
|
|
15
|
+
list: {
|
|
16
|
+
type: 'boolean',
|
|
17
|
+
default: false
|
|
18
|
+
},
|
|
19
|
+
print: {
|
|
20
|
+
type: 'boolean',
|
|
21
|
+
default: false
|
|
22
|
+
},
|
|
23
|
+
transform: {
|
|
24
|
+
type: 'string'
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
return {
|
|
29
|
+
dry: Boolean(values.dry) || Boolean(values['dry-run']),
|
|
30
|
+
list: Boolean(values.list),
|
|
31
|
+
path: positionals[0] ?? process.cwd(),
|
|
32
|
+
print: Boolean(values.print),
|
|
33
|
+
transform: values.transform
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=cli.parseFlags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli.parseFlags.ts"],"sourcesContent":["import { parseArgs } from 'node:util'\n\nexport type CliFlags = {\n dry: boolean\n list: boolean\n path: string\n print: boolean\n transform?: string\n}\n\nexport function parseFlags(argv: string[]): CliFlags {\n const { positionals, values } = parseArgs({\n allowPositionals: true,\n args: argv,\n options: {\n dry: { type: 'boolean', default: false },\n 'dry-run': { type: 'boolean', default: false },\n list: { type: 'boolean', default: false },\n print: { type: 'boolean', default: false },\n transform: { type: 'string' },\n },\n })\n\n return {\n dry: Boolean(values.dry) || Boolean(values['dry-run']),\n list: Boolean(values.list),\n path: positionals[0] ?? process.cwd(),\n print: Boolean(values.print),\n transform: values.transform,\n }\n}\n"],"names":["parseArgs","parseFlags","argv","positionals","values","allowPositionals","args","options","dry","type","default","list","print","transform","Boolean","path","process","cwd"],"mappings":"AAAA,SAASA,SAAS,QAAQ,YAAW;AAUrC,OAAO,SAASC,WAAWC,IAAc;IACvC,MAAM,EAAEC,WAAW,EAAEC,MAAM,EAAE,GAAGJ,UAAU;QACxCK,kBAAkB;QAClBC,MAAMJ;QACNK,SAAS;YACPC,KAAK;gBAAEC,MAAM;gBAAWC,SAAS;YAAM;YACvC,WAAW;gBAAED,MAAM;gBAAWC,SAAS;YAAM;YAC7CC,MAAM;gBAAEF,MAAM;gBAAWC,SAAS;YAAM;YACxCE,OAAO;gBAAEH,MAAM;gBAAWC,SAAS;YAAM;YACzCG,WAAW;gBAAEJ,MAAM;YAAS;QAC9B;IACF;IAEA,OAAO;QACLD,KAAKM,QAAQV,OAAOI,GAAG,KAAKM,QAAQV,MAAM,CAAC,UAAU;QACrDO,MAAMG,QAAQV,OAAOO,IAAI;QACzBI,MAAMZ,WAAW,CAAC,EAAE,IAAIa,QAAQC,GAAG;QACnCL,OAAOE,QAAQV,OAAOQ,KAAK;QAC3BC,WAAWT,OAAOS,SAAS;IAC7B;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.parseFlags.spec.d.ts","sourceRoot":"","sources":["../src/cli.parseFlags.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { parseFlags } from './cli.parseFlags.js';
|
|
3
|
+
describe('parseFlags', ()=>{
|
|
4
|
+
it('defaults path to cwd when no positional arg is given', ()=>{
|
|
5
|
+
expect(parseFlags([])).toEqual({
|
|
6
|
+
dry: false,
|
|
7
|
+
list: false,
|
|
8
|
+
path: process.cwd(),
|
|
9
|
+
print: false,
|
|
10
|
+
transform: undefined
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
it('reads positional path', ()=>{
|
|
14
|
+
expect(parseFlags([
|
|
15
|
+
'./src'
|
|
16
|
+
]).path).toBe('./src');
|
|
17
|
+
});
|
|
18
|
+
it('parses flags', ()=>{
|
|
19
|
+
expect(parseFlags([
|
|
20
|
+
'./src',
|
|
21
|
+
'--dry',
|
|
22
|
+
'--print'
|
|
23
|
+
])).toMatchObject({
|
|
24
|
+
dry: true,
|
|
25
|
+
path: './src',
|
|
26
|
+
print: true
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
it('parses --transform', ()=>{
|
|
30
|
+
expect(parseFlags([
|
|
31
|
+
'--transform',
|
|
32
|
+
'rename-slate-export'
|
|
33
|
+
])).toMatchObject({
|
|
34
|
+
transform: 'rename-slate-export'
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
it('parses --list', ()=>{
|
|
38
|
+
expect(parseFlags([
|
|
39
|
+
'--list'
|
|
40
|
+
]).list).toBe(true);
|
|
41
|
+
});
|
|
42
|
+
it('treats --dry-run as an alias for --dry', ()=>{
|
|
43
|
+
expect(parseFlags([
|
|
44
|
+
'--dry-run'
|
|
45
|
+
]).dry).toBe(true);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=cli.parseFlags.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli.parseFlags.spec.ts"],"sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { parseFlags } from './cli.parseFlags.js'\n\ndescribe('parseFlags', () => {\n it('defaults path to cwd when no positional arg is given', () => {\n expect(parseFlags([])).toEqual({\n dry: false,\n list: false,\n path: process.cwd(),\n print: false,\n transform: undefined,\n })\n })\n\n it('reads positional path', () => {\n expect(parseFlags(['./src']).path).toBe('./src')\n })\n\n it('parses flags', () => {\n expect(parseFlags(['./src', '--dry', '--print'])).toMatchObject({\n dry: true,\n path: './src',\n print: true,\n })\n })\n\n it('parses --transform', () => {\n expect(parseFlags(['--transform', 'rename-slate-export'])).toMatchObject({\n transform: 'rename-slate-export',\n })\n })\n\n it('parses --list', () => {\n expect(parseFlags(['--list']).list).toBe(true)\n })\n\n it('treats --dry-run as an alias for --dry', () => {\n expect(parseFlags(['--dry-run']).dry).toBe(true)\n })\n})\n"],"names":["describe","expect","it","parseFlags","toEqual","dry","list","path","process","cwd","print","transform","undefined","toBe","toMatchObject"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAE7C,SAASC,UAAU,QAAQ,sBAAqB;AAEhDH,SAAS,cAAc;IACrBE,GAAG,wDAAwD;QACzDD,OAAOE,WAAW,EAAE,GAAGC,OAAO,CAAC;YAC7BC,KAAK;YACLC,MAAM;YACNC,MAAMC,QAAQC,GAAG;YACjBC,OAAO;YACPC,WAAWC;QACb;IACF;IAEAV,GAAG,yBAAyB;QAC1BD,OAAOE,WAAW;YAAC;SAAQ,EAAEI,IAAI,EAAEM,IAAI,CAAC;IAC1C;IAEAX,GAAG,gBAAgB;QACjBD,OAAOE,WAAW;YAAC;YAAS;YAAS;SAAU,GAAGW,aAAa,CAAC;YAC9DT,KAAK;YACLE,MAAM;YACNG,OAAO;QACT;IACF;IAEAR,GAAG,sBAAsB;QACvBD,OAAOE,WAAW;YAAC;YAAe;SAAsB,GAAGW,aAAa,CAAC;YACvEH,WAAW;QACb;IACF;IAEAT,GAAG,iBAAiB;QAClBD,OAAOE,WAAW;YAAC;SAAS,EAAEG,IAAI,EAAEO,IAAI,CAAC;IAC3C;IAEAX,GAAG,0CAA0C;QAC3CD,OAAOE,WAAW;YAAC;SAAY,EAAEE,GAAG,EAAEQ,IAAI,CAAC;IAC7C;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AA4B3C,eAAO,MAAM,UAAU,EAAE,SAAS,EA0BjC,CAAA"}
|
package/dist/registry.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { exampleNoop } from './transforms/example-noop/index.js';
|
|
2
|
+
import { globalsComponentsEdit } from './transforms/globals-components-edit/index.js';
|
|
3
|
+
import { migrateAfterOperationRead } from './transforms/migrate-after-operation-read/index.js';
|
|
4
|
+
import { migrateAliasedExports } from './transforms/migrate-aliased-exports/index.js';
|
|
5
|
+
import { migrateAzureChunkLargeFiles } from './transforms/migrate-azure-chunk-large-files/index.js';
|
|
6
|
+
import { migrateBlockReferencesToBlocks } from './transforms/migrate-block-references-to-blocks/index.js';
|
|
7
|
+
import { migrateBuildScript } from './transforms/migrate-build-script/index.js';
|
|
8
|
+
import { migrateDbTypesSubpath } from './transforms/migrate-db-types-subpath/index.js';
|
|
9
|
+
import { migrateDisabledFields } from './transforms/migrate-disabled-fields/index.js';
|
|
10
|
+
import { migrateDocumentTitleContext } from './transforms/migrate-document-title-context/index.js';
|
|
11
|
+
import { migrateForceSelect } from './transforms/migrate-force-select/index.js';
|
|
12
|
+
import { migrateHideAPIURL } from './transforms/migrate-hide-api-url/index.js';
|
|
13
|
+
import { migrateImportExportHooks } from './transforms/migrate-import-export-hooks/index.js';
|
|
14
|
+
import { migrateListViewSelectAPI } from './transforms/migrate-list-view-select-api/index.js';
|
|
15
|
+
import { migrateNextGenerateViewportExport } from './transforms/migrate-next-generate-viewport-export/index.js';
|
|
16
|
+
import { migrateNextSubpathExports } from './transforms/migrate-next-subpath-exports/index.js';
|
|
17
|
+
import { migrateSlugField } from './transforms/migrate-slug-field/index.js';
|
|
18
|
+
import { migrateStorageAdaptersToConfig } from './transforms/migrate-storage-adapters-to-config/index.js';
|
|
19
|
+
import { migrateVersionsDefault } from './transforms/migrate-versions-default/index.js';
|
|
20
|
+
import { removeGroupByTrue } from './transforms/remove-group-by-true/index.js';
|
|
21
|
+
import { removeLocalizeStatusConfig } from './transforms/remove-localize-status-config/index.js';
|
|
22
|
+
import { removePublishSpecificLocale } from './transforms/remove-publish-specific-locale/index.js';
|
|
23
|
+
import { removeVersionsTrue } from './transforms/remove-versions-true/index.js';
|
|
24
|
+
import { renameStorageAdaptersToStorage } from './transforms/rename-storage-adapters-to-storage/index.js';
|
|
25
|
+
import { renameTypescriptSchemaToJsonSchema } from './transforms/rename-typescript-schema-to-json-schema/index.js';
|
|
26
|
+
export const transforms = [
|
|
27
|
+
exampleNoop,
|
|
28
|
+
migrateAfterOperationRead,
|
|
29
|
+
migrateHideAPIURL,
|
|
30
|
+
globalsComponentsEdit,
|
|
31
|
+
migrateListViewSelectAPI,
|
|
32
|
+
migrateDisabledFields,
|
|
33
|
+
migrateForceSelect,
|
|
34
|
+
migrateAliasedExports,
|
|
35
|
+
migrateBlockReferencesToBlocks,
|
|
36
|
+
migrateBuildScript,
|
|
37
|
+
migrateDocumentTitleContext,
|
|
38
|
+
migrateStorageAdaptersToConfig,
|
|
39
|
+
migrateAzureChunkLargeFiles,
|
|
40
|
+
renameStorageAdaptersToStorage,
|
|
41
|
+
migrateImportExportHooks,
|
|
42
|
+
migrateDbTypesSubpath,
|
|
43
|
+
migrateNextGenerateViewportExport,
|
|
44
|
+
migrateNextSubpathExports,
|
|
45
|
+
migrateSlugField,
|
|
46
|
+
migrateVersionsDefault,
|
|
47
|
+
removeGroupByTrue,
|
|
48
|
+
removeLocalizeStatusConfig,
|
|
49
|
+
removeVersionsTrue,
|
|
50
|
+
removePublishSpecificLocale,
|
|
51
|
+
renameTypescriptSchemaToJsonSchema
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/registry.ts"],"sourcesContent":["import type { Transform } from './types.js'\n\nimport { exampleNoop } from './transforms/example-noop/index.js'\nimport { globalsComponentsEdit } from './transforms/globals-components-edit/index.js'\nimport { migrateAfterOperationRead } from './transforms/migrate-after-operation-read/index.js'\nimport { migrateAliasedExports } from './transforms/migrate-aliased-exports/index.js'\nimport { migrateAzureChunkLargeFiles } from './transforms/migrate-azure-chunk-large-files/index.js'\nimport { migrateBlockReferencesToBlocks } from './transforms/migrate-block-references-to-blocks/index.js'\nimport { migrateBuildScript } from './transforms/migrate-build-script/index.js'\nimport { migrateDbTypesSubpath } from './transforms/migrate-db-types-subpath/index.js'\nimport { migrateDisabledFields } from './transforms/migrate-disabled-fields/index.js'\nimport { migrateDocumentTitleContext } from './transforms/migrate-document-title-context/index.js'\nimport { migrateForceSelect } from './transforms/migrate-force-select/index.js'\nimport { migrateHideAPIURL } from './transforms/migrate-hide-api-url/index.js'\nimport { migrateImportExportHooks } from './transforms/migrate-import-export-hooks/index.js'\nimport { migrateListViewSelectAPI } from './transforms/migrate-list-view-select-api/index.js'\nimport { migrateNextGenerateViewportExport } from './transforms/migrate-next-generate-viewport-export/index.js'\nimport { migrateNextSubpathExports } from './transforms/migrate-next-subpath-exports/index.js'\nimport { migrateSlugField } from './transforms/migrate-slug-field/index.js'\nimport { migrateStorageAdaptersToConfig } from './transforms/migrate-storage-adapters-to-config/index.js'\nimport { migrateVersionsDefault } from './transforms/migrate-versions-default/index.js'\nimport { removeGroupByTrue } from './transforms/remove-group-by-true/index.js'\nimport { removeLocalizeStatusConfig } from './transforms/remove-localize-status-config/index.js'\nimport { removePublishSpecificLocale } from './transforms/remove-publish-specific-locale/index.js'\nimport { removeVersionsTrue } from './transforms/remove-versions-true/index.js'\nimport { renameStorageAdaptersToStorage } from './transforms/rename-storage-adapters-to-storage/index.js'\nimport { renameTypescriptSchemaToJsonSchema } from './transforms/rename-typescript-schema-to-json-schema/index.js'\n\nexport const transforms: Transform[] = [\n exampleNoop,\n migrateAfterOperationRead,\n migrateHideAPIURL,\n globalsComponentsEdit,\n migrateListViewSelectAPI,\n migrateDisabledFields,\n migrateForceSelect,\n migrateAliasedExports,\n migrateBlockReferencesToBlocks,\n migrateBuildScript,\n migrateDocumentTitleContext,\n migrateStorageAdaptersToConfig,\n migrateAzureChunkLargeFiles,\n renameStorageAdaptersToStorage,\n migrateImportExportHooks,\n migrateDbTypesSubpath,\n migrateNextGenerateViewportExport,\n migrateNextSubpathExports,\n migrateSlugField,\n migrateVersionsDefault,\n removeGroupByTrue,\n removeLocalizeStatusConfig,\n removeVersionsTrue,\n removePublishSpecificLocale,\n renameTypescriptSchemaToJsonSchema,\n]\n"],"names":["exampleNoop","globalsComponentsEdit","migrateAfterOperationRead","migrateAliasedExports","migrateAzureChunkLargeFiles","migrateBlockReferencesToBlocks","migrateBuildScript","migrateDbTypesSubpath","migrateDisabledFields","migrateDocumentTitleContext","migrateForceSelect","migrateHideAPIURL","migrateImportExportHooks","migrateListViewSelectAPI","migrateNextGenerateViewportExport","migrateNextSubpathExports","migrateSlugField","migrateStorageAdaptersToConfig","migrateVersionsDefault","removeGroupByTrue","removeLocalizeStatusConfig","removePublishSpecificLocale","removeVersionsTrue","renameStorageAdaptersToStorage","renameTypescriptSchemaToJsonSchema","transforms"],"mappings":"AAEA,SAASA,WAAW,QAAQ,qCAAoC;AAChE,SAASC,qBAAqB,QAAQ,gDAA+C;AACrF,SAASC,yBAAyB,QAAQ,qDAAoD;AAC9F,SAASC,qBAAqB,QAAQ,gDAA+C;AACrF,SAASC,2BAA2B,QAAQ,wDAAuD;AACnG,SAASC,8BAA8B,QAAQ,2DAA0D;AACzG,SAASC,kBAAkB,QAAQ,6CAA4C;AAC/E,SAASC,qBAAqB,QAAQ,iDAAgD;AACtF,SAASC,qBAAqB,QAAQ,gDAA+C;AACrF,SAASC,2BAA2B,QAAQ,uDAAsD;AAClG,SAASC,kBAAkB,QAAQ,6CAA4C;AAC/E,SAASC,iBAAiB,QAAQ,6CAA4C;AAC9E,SAASC,wBAAwB,QAAQ,oDAAmD;AAC5F,SAASC,wBAAwB,QAAQ,qDAAoD;AAC7F,SAASC,iCAAiC,QAAQ,8DAA6D;AAC/G,SAASC,yBAAyB,QAAQ,qDAAoD;AAC9F,SAASC,gBAAgB,QAAQ,2CAA0C;AAC3E,SAASC,8BAA8B,QAAQ,2DAA0D;AACzG,SAASC,sBAAsB,QAAQ,iDAAgD;AACvF,SAASC,iBAAiB,QAAQ,6CAA4C;AAC9E,SAASC,0BAA0B,QAAQ,sDAAqD;AAChG,SAASC,2BAA2B,QAAQ,uDAAsD;AAClG,SAASC,kBAAkB,QAAQ,6CAA4C;AAC/E,SAASC,8BAA8B,QAAQ,2DAA0D;AACzG,SAASC,kCAAkC,QAAQ,gEAA+D;AAElH,OAAO,MAAMC,aAA0B;IACrCzB;IACAE;IACAS;IACAV;IACAY;IACAL;IACAE;IACAP;IACAE;IACAC;IACAG;IACAQ;IACAb;IACAmB;IACAX;IACAL;IACAO;IACAC;IACAC;IACAE;IACAC;IACAC;IACAE;IACAD;IACAG;CACD,CAAA"}
|
package/dist/runner.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Project } from 'ts-morph';
|
|
2
|
+
import type { PackageJsonFile, Transform, TransformResult } from './types.js';
|
|
3
|
+
export type RunTransformsArgs = {
|
|
4
|
+
packageJsons?: PackageJsonFile[];
|
|
5
|
+
project: Project;
|
|
6
|
+
transforms: Transform[];
|
|
7
|
+
};
|
|
8
|
+
export type TransformRunResult = {
|
|
9
|
+
error?: Error;
|
|
10
|
+
name: string;
|
|
11
|
+
} & TransformResult;
|
|
12
|
+
export type RunTransformsResult = {
|
|
13
|
+
failed: boolean;
|
|
14
|
+
results: TransformRunResult[];
|
|
15
|
+
};
|
|
16
|
+
export declare function runTransforms({ packageJsons, project, transforms, }: RunTransformsArgs): Promise<RunTransformsResult>;
|
|
17
|
+
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAIvC,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE7E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,CAAC,EAAE,eAAe,EAAE,CAAA;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,SAAS,EAAE,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb,GAAG,eAAe,CAAA;AAEnB,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,kBAAkB,EAAE,CAAA;CAC9B,CAAA;AAED,wBAAsB,aAAa,CAAC,EAClC,YAAiB,EACjB,OAAO,EACP,UAAU,GACX,EAAE,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAuBlD"}
|
package/dist/runner.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { IndentationText, NewLineKind, QuoteKind } from 'ts-morph';
|
|
2
|
+
export async function runTransforms({ packageJsons = [], project, transforms }) {
|
|
3
|
+
project.manipulationSettings.set({
|
|
4
|
+
indentationText: IndentationText.TwoSpaces,
|
|
5
|
+
newLineKind: NewLineKind.LineFeed,
|
|
6
|
+
quoteKind: QuoteKind.Single,
|
|
7
|
+
useTrailingCommas: true
|
|
8
|
+
});
|
|
9
|
+
const results = [];
|
|
10
|
+
let failed = false;
|
|
11
|
+
for (const transform of transforms){
|
|
12
|
+
try {
|
|
13
|
+
const result = await transform.apply({
|
|
14
|
+
packageJsons,
|
|
15
|
+
project
|
|
16
|
+
});
|
|
17
|
+
results.push({
|
|
18
|
+
name: transform.name,
|
|
19
|
+
...result
|
|
20
|
+
});
|
|
21
|
+
} catch (err) {
|
|
22
|
+
failed = true;
|
|
23
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
24
|
+
results.push({
|
|
25
|
+
name: transform.name,
|
|
26
|
+
error,
|
|
27
|
+
filesChanged: []
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
failed,
|
|
33
|
+
results
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/runner.ts"],"sourcesContent":["import type { Project } from 'ts-morph'\n\nimport { IndentationText, NewLineKind, QuoteKind } from 'ts-morph'\n\nimport type { PackageJsonFile, Transform, TransformResult } from './types.js'\n\nexport type RunTransformsArgs = {\n packageJsons?: PackageJsonFile[]\n project: Project\n transforms: Transform[]\n}\n\nexport type TransformRunResult = {\n error?: Error\n name: string\n} & TransformResult\n\nexport type RunTransformsResult = {\n failed: boolean\n results: TransformRunResult[]\n}\n\nexport async function runTransforms({\n packageJsons = [],\n project,\n transforms,\n}: RunTransformsArgs): Promise<RunTransformsResult> {\n project.manipulationSettings.set({\n indentationText: IndentationText.TwoSpaces,\n newLineKind: NewLineKind.LineFeed,\n quoteKind: QuoteKind.Single,\n useTrailingCommas: true,\n })\n\n const results: TransformRunResult[] = []\n let failed = false\n\n for (const transform of transforms) {\n try {\n const result = await transform.apply({ packageJsons, project })\n results.push({ name: transform.name, ...result })\n } catch (err) {\n failed = true\n const error = err instanceof Error ? err : new Error(String(err))\n results.push({ name: transform.name, error, filesChanged: [] })\n }\n }\n\n return { failed, results }\n}\n"],"names":["IndentationText","NewLineKind","QuoteKind","runTransforms","packageJsons","project","transforms","manipulationSettings","set","indentationText","TwoSpaces","newLineKind","LineFeed","quoteKind","Single","useTrailingCommas","results","failed","transform","result","apply","push","name","err","error","Error","String","filesChanged"],"mappings":"AAEA,SAASA,eAAe,EAAEC,WAAW,EAAEC,SAAS,QAAQ,WAAU;AAoBlE,OAAO,eAAeC,cAAc,EAClCC,eAAe,EAAE,EACjBC,OAAO,EACPC,UAAU,EACQ;IAClBD,QAAQE,oBAAoB,CAACC,GAAG,CAAC;QAC/BC,iBAAiBT,gBAAgBU,SAAS;QAC1CC,aAAaV,YAAYW,QAAQ;QACjCC,WAAWX,UAAUY,MAAM;QAC3BC,mBAAmB;IACrB;IAEA,MAAMC,UAAgC,EAAE;IACxC,IAAIC,SAAS;IAEb,KAAK,MAAMC,aAAaZ,WAAY;QAClC,IAAI;YACF,MAAMa,SAAS,MAAMD,UAAUE,KAAK,CAAC;gBAAEhB;gBAAcC;YAAQ;YAC7DW,QAAQK,IAAI,CAAC;gBAAEC,MAAMJ,UAAUI,IAAI;gBAAE,GAAGH,MAAM;YAAC;QACjD,EAAE,OAAOI,KAAK;YACZN,SAAS;YACT,MAAMO,QAAQD,eAAeE,QAAQF,MAAM,IAAIE,MAAMC,OAAOH;YAC5DP,QAAQK,IAAI,CAAC;gBAAEC,MAAMJ,UAAUI,IAAI;gBAAEE;gBAAOG,cAAc,EAAE;YAAC;QAC/D;IACF;IAEA,OAAO;QAAEV;QAAQD;IAAQ;AAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.spec.d.ts","sourceRoot":"","sources":["../src/runner.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { Project } from 'ts-morph';
|
|
2
|
+
import { describe, expect, it } from 'vitest';
|
|
3
|
+
import { runTransforms } from './runner.js';
|
|
4
|
+
function makeProject(files) {
|
|
5
|
+
const project = new Project({
|
|
6
|
+
useInMemoryFileSystem: true
|
|
7
|
+
});
|
|
8
|
+
for (const [path, contents] of Object.entries(files)){
|
|
9
|
+
project.createSourceFile(path, contents);
|
|
10
|
+
}
|
|
11
|
+
return project;
|
|
12
|
+
}
|
|
13
|
+
describe('runTransforms', ()=>{
|
|
14
|
+
it('applies each transform in order and aggregates results', async ()=>{
|
|
15
|
+
const project = makeProject({
|
|
16
|
+
'a.ts': 'export const a = 1'
|
|
17
|
+
});
|
|
18
|
+
const t1 = {
|
|
19
|
+
name: 't1',
|
|
20
|
+
apply: ()=>({
|
|
21
|
+
filesChanged: [
|
|
22
|
+
'a.ts'
|
|
23
|
+
]
|
|
24
|
+
}),
|
|
25
|
+
description: ''
|
|
26
|
+
};
|
|
27
|
+
const t2 = {
|
|
28
|
+
name: 't2',
|
|
29
|
+
apply: ()=>({
|
|
30
|
+
filesChanged: [],
|
|
31
|
+
notes: [
|
|
32
|
+
'nothing to do'
|
|
33
|
+
]
|
|
34
|
+
}),
|
|
35
|
+
description: ''
|
|
36
|
+
};
|
|
37
|
+
const result = await runTransforms({
|
|
38
|
+
project,
|
|
39
|
+
transforms: [
|
|
40
|
+
t1,
|
|
41
|
+
t2
|
|
42
|
+
]
|
|
43
|
+
});
|
|
44
|
+
expect(result.results.map((r)=>r.name)).toEqual([
|
|
45
|
+
't1',
|
|
46
|
+
't2'
|
|
47
|
+
]);
|
|
48
|
+
expect(result.results[0].filesChanged).toEqual([
|
|
49
|
+
'a.ts'
|
|
50
|
+
]);
|
|
51
|
+
expect(result.failed).toBe(false);
|
|
52
|
+
});
|
|
53
|
+
it('continues past a throwing transform and marks the run failed', async ()=>{
|
|
54
|
+
const project = makeProject({
|
|
55
|
+
'a.ts': 'export const a = 1'
|
|
56
|
+
});
|
|
57
|
+
const boom = {
|
|
58
|
+
name: 'boom',
|
|
59
|
+
apply: ()=>{
|
|
60
|
+
throw new Error('kaboom');
|
|
61
|
+
},
|
|
62
|
+
description: ''
|
|
63
|
+
};
|
|
64
|
+
const ok = {
|
|
65
|
+
name: 'ok',
|
|
66
|
+
apply: ()=>({
|
|
67
|
+
filesChanged: []
|
|
68
|
+
}),
|
|
69
|
+
description: ''
|
|
70
|
+
};
|
|
71
|
+
const result = await runTransforms({
|
|
72
|
+
project,
|
|
73
|
+
transforms: [
|
|
74
|
+
boom,
|
|
75
|
+
ok
|
|
76
|
+
]
|
|
77
|
+
});
|
|
78
|
+
expect(result.failed).toBe(true);
|
|
79
|
+
expect(result.results.map((r)=>r.name)).toEqual([
|
|
80
|
+
'boom',
|
|
81
|
+
'ok'
|
|
82
|
+
]);
|
|
83
|
+
expect(result.results[0].error).toBeInstanceOf(Error);
|
|
84
|
+
expect(result.results[1].error).toBeUndefined();
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
//# sourceMappingURL=runner.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/runner.spec.ts"],"sourcesContent":["import { Project } from 'ts-morph'\nimport { describe, expect, it } from 'vitest'\n\nimport type { Transform } from './types.js'\n\nimport { runTransforms } from './runner.js'\n\nfunction makeProject(files: Record<string, string>): Project {\n const project = new Project({ useInMemoryFileSystem: true })\n for (const [path, contents] of Object.entries(files)) {\n project.createSourceFile(path, contents)\n }\n return project\n}\n\ndescribe('runTransforms', () => {\n it('applies each transform in order and aggregates results', async () => {\n const project = makeProject({ 'a.ts': 'export const a = 1' })\n\n const t1: Transform = {\n name: 't1',\n apply: () => ({ filesChanged: ['a.ts'] }),\n description: '',\n }\n const t2: Transform = {\n name: 't2',\n apply: () => ({ filesChanged: [], notes: ['nothing to do'] }),\n description: '',\n }\n\n const result = await runTransforms({\n project,\n transforms: [t1, t2],\n })\n\n expect(result.results.map((r) => r.name)).toEqual(['t1', 't2'])\n expect(result.results[0]!.filesChanged).toEqual(['a.ts'])\n expect(result.failed).toBe(false)\n })\n\n it('continues past a throwing transform and marks the run failed', async () => {\n const project = makeProject({ 'a.ts': 'export const a = 1' })\n\n const boom: Transform = {\n name: 'boom',\n apply: () => {\n throw new Error('kaboom')\n },\n description: '',\n }\n const ok: Transform = {\n name: 'ok',\n apply: () => ({ filesChanged: [] }),\n description: '',\n }\n\n const result = await runTransforms({\n project,\n transforms: [boom, ok],\n })\n\n expect(result.failed).toBe(true)\n expect(result.results.map((r) => r.name)).toEqual(['boom', 'ok'])\n expect(result.results[0]!.error).toBeInstanceOf(Error)\n expect(result.results[1]!.error).toBeUndefined()\n })\n})\n"],"names":["Project","describe","expect","it","runTransforms","makeProject","files","project","useInMemoryFileSystem","path","contents","Object","entries","createSourceFile","t1","name","apply","filesChanged","description","t2","notes","result","transforms","results","map","r","toEqual","failed","toBe","boom","Error","ok","error","toBeInstanceOf","toBeUndefined"],"mappings":"AAAA,SAASA,OAAO,QAAQ,WAAU;AAClC,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAI7C,SAASC,aAAa,QAAQ,cAAa;AAE3C,SAASC,YAAYC,KAA6B;IAChD,MAAMC,UAAU,IAAIP,QAAQ;QAAEQ,uBAAuB;IAAK;IAC1D,KAAK,MAAM,CAACC,MAAMC,SAAS,IAAIC,OAAOC,OAAO,CAACN,OAAQ;QACpDC,QAAQM,gBAAgB,CAACJ,MAAMC;IACjC;IACA,OAAOH;AACT;AAEAN,SAAS,iBAAiB;IACxBE,GAAG,0DAA0D;QAC3D,MAAMI,UAAUF,YAAY;YAAE,QAAQ;QAAqB;QAE3D,MAAMS,KAAgB;YACpBC,MAAM;YACNC,OAAO,IAAO,CAAA;oBAAEC,cAAc;wBAAC;qBAAO;gBAAC,CAAA;YACvCC,aAAa;QACf;QACA,MAAMC,KAAgB;YACpBJ,MAAM;YACNC,OAAO,IAAO,CAAA;oBAAEC,cAAc,EAAE;oBAAEG,OAAO;wBAAC;qBAAgB;gBAAC,CAAA;YAC3DF,aAAa;QACf;QAEA,MAAMG,SAAS,MAAMjB,cAAc;YACjCG;YACAe,YAAY;gBAACR;gBAAIK;aAAG;QACtB;QAEAjB,OAAOmB,OAAOE,OAAO,CAACC,GAAG,CAAC,CAACC,IAAMA,EAAEV,IAAI,GAAGW,OAAO,CAAC;YAAC;YAAM;SAAK;QAC9DxB,OAAOmB,OAAOE,OAAO,CAAC,EAAE,CAAEN,YAAY,EAAES,OAAO,CAAC;YAAC;SAAO;QACxDxB,OAAOmB,OAAOM,MAAM,EAAEC,IAAI,CAAC;IAC7B;IAEAzB,GAAG,gEAAgE;QACjE,MAAMI,UAAUF,YAAY;YAAE,QAAQ;QAAqB;QAE3D,MAAMwB,OAAkB;YACtBd,MAAM;YACNC,OAAO;gBACL,MAAM,IAAIc,MAAM;YAClB;YACAZ,aAAa;QACf;QACA,MAAMa,KAAgB;YACpBhB,MAAM;YACNC,OAAO,IAAO,CAAA;oBAAEC,cAAc,EAAE;gBAAC,CAAA;YACjCC,aAAa;QACf;QAEA,MAAMG,SAAS,MAAMjB,cAAc;YACjCG;YACAe,YAAY;gBAACO;gBAAME;aAAG;QACxB;QAEA7B,OAAOmB,OAAOM,MAAM,EAAEC,IAAI,CAAC;QAC3B1B,OAAOmB,OAAOE,OAAO,CAACC,GAAG,CAAC,CAACC,IAAMA,EAAEV,IAAI,GAAGW,OAAO,CAAC;YAAC;YAAQ;SAAK;QAChExB,OAAOmB,OAAOE,OAAO,CAAC,EAAE,CAAES,KAAK,EAAEC,cAAc,CAACH;QAChD5B,OAAOmB,OAAOE,OAAO,CAAC,EAAE,CAAES,KAAK,EAAEE,aAAa;IAChD;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/example-noop/basic.input.ts"],"sourcesContent":["export const value = 1\n"],"names":["value"],"mappings":"AAAA,OAAO,MAAMA,QAAQ,EAAC"}
|