@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
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { Node, SyntaxKind } from 'ts-morph';
|
|
2
|
+
export const migrateForceSelect = {
|
|
3
|
+
name: 'migrate-force-select',
|
|
4
|
+
apply: ({ project })=>{
|
|
5
|
+
const filesChanged = new Set();
|
|
6
|
+
const notes = [];
|
|
7
|
+
for (const sourceFile of project.getSourceFiles()){
|
|
8
|
+
const targets = sourceFile.getDescendantsOfKind(SyntaxKind.PropertyAssignment).filter((prop)=>prop.getName() === 'forceSelect');
|
|
9
|
+
for (const prop of targets){
|
|
10
|
+
const parent = prop.getParentIfKind(SyntaxKind.ObjectLiteralExpression);
|
|
11
|
+
if (!parent) {
|
|
12
|
+
continue;
|
|
13
|
+
}
|
|
14
|
+
const filePath = sourceFile.getFilePath();
|
|
15
|
+
const initializer = prop.getInitializer();
|
|
16
|
+
const siblingSelect = parent.getProperty('select');
|
|
17
|
+
if (siblingSelect) {
|
|
18
|
+
prop.remove();
|
|
19
|
+
notes.push(`${filePath}: 'forceSelect' removed but sibling 'select' already present — verify the migration covers both.`);
|
|
20
|
+
filesChanged.add(filePath);
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
if (!initializer || !Node.isObjectLiteralExpression(initializer)) {
|
|
24
|
+
prop.remove();
|
|
25
|
+
notes.push(`${filePath}: 'forceSelect' value is not an object literal — migrate manually to 'select: ({ select }) => ...'.`);
|
|
26
|
+
filesChanged.add(filePath);
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
const parts = collectSelectParts(initializer);
|
|
30
|
+
if (!parts) {
|
|
31
|
+
prop.remove();
|
|
32
|
+
notes.push(`${filePath}: 'forceSelect' contains unsupported syntax (shorthand, methods, computed names) — migrate manually to 'select: ({ select }) => ...'.`);
|
|
33
|
+
filesChanged.add(filePath);
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
if (hasNestedObjectLiteral(initializer)) {
|
|
37
|
+
ensureDeepMergeImport(sourceFile);
|
|
38
|
+
prop.set({
|
|
39
|
+
name: 'select',
|
|
40
|
+
initializer: `({ select }) => (select ? deepMergeSimple(select, { ${parts.join(', ')} }) : undefined)`
|
|
41
|
+
});
|
|
42
|
+
filesChanged.add(filePath);
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
prop.set({
|
|
46
|
+
name: 'select',
|
|
47
|
+
initializer: `({ select }) => (select ? { ...select, ${parts.join(', ')} } : undefined)`
|
|
48
|
+
});
|
|
49
|
+
filesChanged.add(filePath);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
filesChanged: Array.from(filesChanged),
|
|
54
|
+
...notes.length > 0 ? {
|
|
55
|
+
notes
|
|
56
|
+
} : {}
|
|
57
|
+
};
|
|
58
|
+
},
|
|
59
|
+
description: "Migrate 'forceSelect: { ... }' to a 'select' function on Collection and Global configs. Shallow values become spread; nested values use 'deepMergeSimple' from 'payload/shared'."
|
|
60
|
+
};
|
|
61
|
+
function hasNestedObjectLiteral(obj) {
|
|
62
|
+
return obj.getProperties().some((p)=>{
|
|
63
|
+
if (!Node.isPropertyAssignment(p)) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
return Node.isObjectLiteralExpression(p.getInitializer());
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
function collectSelectParts(obj) {
|
|
70
|
+
const parts = [];
|
|
71
|
+
for (const prop of obj.getProperties()){
|
|
72
|
+
if (Node.isPropertyAssignment(prop)) {
|
|
73
|
+
const name = prop.getNameNode().getText();
|
|
74
|
+
const init = prop.getInitializer();
|
|
75
|
+
if (!init) {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
parts.push(`${name}: ${init.getText()}`);
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
if (Node.isSpreadAssignment(prop)) {
|
|
82
|
+
parts.push(prop.getText());
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
return parts;
|
|
88
|
+
}
|
|
89
|
+
function ensureDeepMergeImport(sourceFile) {
|
|
90
|
+
const alreadyImported = sourceFile.getImportDeclarations().some((decl)=>{
|
|
91
|
+
return decl.getNamedImports().some((named)=>named.getName() === 'deepMergeSimple');
|
|
92
|
+
});
|
|
93
|
+
if (alreadyImported) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
sourceFile.addImportDeclaration({
|
|
97
|
+
moduleSpecifier: 'payload/shared',
|
|
98
|
+
namedImports: [
|
|
99
|
+
'deepMergeSimple'
|
|
100
|
+
]
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/migrate-force-select/index.ts"],"sourcesContent":["import type { ObjectLiteralExpression, SourceFile } from 'ts-morph'\n\nimport { Node, SyntaxKind } from 'ts-morph'\n\nimport type { Transform } from '../../types.js'\n\nexport const migrateForceSelect: Transform = {\n name: 'migrate-force-select',\n apply: ({ project }) => {\n const filesChanged = new Set<string>()\n const notes: string[] = []\n\n for (const sourceFile of project.getSourceFiles()) {\n const targets = sourceFile\n .getDescendantsOfKind(SyntaxKind.PropertyAssignment)\n .filter((prop) => prop.getName() === 'forceSelect')\n\n for (const prop of targets) {\n const parent = prop.getParentIfKind(SyntaxKind.ObjectLiteralExpression)\n if (!parent) {\n continue\n }\n\n const filePath = sourceFile.getFilePath()\n const initializer = prop.getInitializer()\n const siblingSelect = parent.getProperty('select')\n\n if (siblingSelect) {\n prop.remove()\n notes.push(\n `${filePath}: 'forceSelect' removed but sibling 'select' already present — verify the migration covers both.`,\n )\n filesChanged.add(filePath)\n continue\n }\n\n if (!initializer || !Node.isObjectLiteralExpression(initializer)) {\n prop.remove()\n notes.push(\n `${filePath}: 'forceSelect' value is not an object literal — migrate manually to 'select: ({ select }) => ...'.`,\n )\n filesChanged.add(filePath)\n continue\n }\n\n const parts = collectSelectParts(initializer)\n if (!parts) {\n prop.remove()\n notes.push(\n `${filePath}: 'forceSelect' contains unsupported syntax (shorthand, methods, computed names) — migrate manually to 'select: ({ select }) => ...'.`,\n )\n filesChanged.add(filePath)\n continue\n }\n\n if (hasNestedObjectLiteral(initializer)) {\n ensureDeepMergeImport(sourceFile)\n prop.set({\n name: 'select',\n initializer: `({ select }) => (select ? deepMergeSimple(select, { ${parts.join(', ')} }) : undefined)`,\n })\n filesChanged.add(filePath)\n continue\n }\n\n prop.set({\n name: 'select',\n initializer: `({ select }) => (select ? { ...select, ${parts.join(', ')} } : undefined)`,\n })\n filesChanged.add(filePath)\n }\n }\n\n return {\n filesChanged: Array.from(filesChanged),\n ...(notes.length > 0 ? { notes } : {}),\n }\n },\n description:\n \"Migrate 'forceSelect: { ... }' to a 'select' function on Collection and Global configs. Shallow values become spread; nested values use 'deepMergeSimple' from 'payload/shared'.\",\n}\n\nfunction hasNestedObjectLiteral(obj: ObjectLiteralExpression): boolean {\n return obj.getProperties().some((p) => {\n if (!Node.isPropertyAssignment(p)) {\n return false\n }\n return Node.isObjectLiteralExpression(p.getInitializer())\n })\n}\n\nfunction collectSelectParts(obj: ObjectLiteralExpression): null | string[] {\n const parts: string[] = []\n\n for (const prop of obj.getProperties()) {\n if (Node.isPropertyAssignment(prop)) {\n const name = prop.getNameNode().getText()\n const init = prop.getInitializer()\n if (!init) {\n return null\n }\n parts.push(`${name}: ${init.getText()}`)\n continue\n }\n\n if (Node.isSpreadAssignment(prop)) {\n parts.push(prop.getText())\n continue\n }\n\n return null\n }\n\n return parts\n}\n\nfunction ensureDeepMergeImport(sourceFile: SourceFile): void {\n const alreadyImported = sourceFile.getImportDeclarations().some((decl) => {\n return decl.getNamedImports().some((named) => named.getName() === 'deepMergeSimple')\n })\n if (alreadyImported) {\n return\n }\n sourceFile.addImportDeclaration({\n moduleSpecifier: 'payload/shared',\n namedImports: ['deepMergeSimple'],\n })\n}\n"],"names":["Node","SyntaxKind","migrateForceSelect","name","apply","project","filesChanged","Set","notes","sourceFile","getSourceFiles","targets","getDescendantsOfKind","PropertyAssignment","filter","prop","getName","parent","getParentIfKind","ObjectLiteralExpression","filePath","getFilePath","initializer","getInitializer","siblingSelect","getProperty","remove","push","add","isObjectLiteralExpression","parts","collectSelectParts","hasNestedObjectLiteral","ensureDeepMergeImport","set","join","Array","from","length","description","obj","getProperties","some","p","isPropertyAssignment","getNameNode","getText","init","isSpreadAssignment","alreadyImported","getImportDeclarations","decl","getNamedImports","named","addImportDeclaration","moduleSpecifier","namedImports"],"mappings":"AAEA,SAASA,IAAI,EAAEC,UAAU,QAAQ,WAAU;AAI3C,OAAO,MAAMC,qBAAgC;IAC3CC,MAAM;IACNC,OAAO,CAAC,EAAEC,OAAO,EAAE;QACjB,MAAMC,eAAe,IAAIC;QACzB,MAAMC,QAAkB,EAAE;QAE1B,KAAK,MAAMC,cAAcJ,QAAQK,cAAc,GAAI;YACjD,MAAMC,UAAUF,WACbG,oBAAoB,CAACX,WAAWY,kBAAkB,EAClDC,MAAM,CAAC,CAACC,OAASA,KAAKC,OAAO,OAAO;YAEvC,KAAK,MAAMD,QAAQJ,QAAS;gBAC1B,MAAMM,SAASF,KAAKG,eAAe,CAACjB,WAAWkB,uBAAuB;gBACtE,IAAI,CAACF,QAAQ;oBACX;gBACF;gBAEA,MAAMG,WAAWX,WAAWY,WAAW;gBACvC,MAAMC,cAAcP,KAAKQ,cAAc;gBACvC,MAAMC,gBAAgBP,OAAOQ,WAAW,CAAC;gBAEzC,IAAID,eAAe;oBACjBT,KAAKW,MAAM;oBACXlB,MAAMmB,IAAI,CACR,GAAGP,SAAS,gGAAgG,CAAC;oBAE/Gd,aAAasB,GAAG,CAACR;oBACjB;gBACF;gBAEA,IAAI,CAACE,eAAe,CAACtB,KAAK6B,yBAAyB,CAACP,cAAc;oBAChEP,KAAKW,MAAM;oBACXlB,MAAMmB,IAAI,CACR,GAAGP,SAAS,mGAAmG,CAAC;oBAElHd,aAAasB,GAAG,CAACR;oBACjB;gBACF;gBAEA,MAAMU,QAAQC,mBAAmBT;gBACjC,IAAI,CAACQ,OAAO;oBACVf,KAAKW,MAAM;oBACXlB,MAAMmB,IAAI,CACR,GAAGP,SAAS,qIAAqI,CAAC;oBAEpJd,aAAasB,GAAG,CAACR;oBACjB;gBACF;gBAEA,IAAIY,uBAAuBV,cAAc;oBACvCW,sBAAsBxB;oBACtBM,KAAKmB,GAAG,CAAC;wBACP/B,MAAM;wBACNmB,aAAa,CAAC,oDAAoD,EAAEQ,MAAMK,IAAI,CAAC,MAAM,gBAAgB,CAAC;oBACxG;oBACA7B,aAAasB,GAAG,CAACR;oBACjB;gBACF;gBAEAL,KAAKmB,GAAG,CAAC;oBACP/B,MAAM;oBACNmB,aAAa,CAAC,uCAAuC,EAAEQ,MAAMK,IAAI,CAAC,MAAM,eAAe,CAAC;gBAC1F;gBACA7B,aAAasB,GAAG,CAACR;YACnB;QACF;QAEA,OAAO;YACLd,cAAc8B,MAAMC,IAAI,CAAC/B;YACzB,GAAIE,MAAM8B,MAAM,GAAG,IAAI;gBAAE9B;YAAM,IAAI,CAAC,CAAC;QACvC;IACF;IACA+B,aACE;AACJ,EAAC;AAED,SAASP,uBAAuBQ,GAA4B;IAC1D,OAAOA,IAAIC,aAAa,GAAGC,IAAI,CAAC,CAACC;QAC/B,IAAI,CAAC3C,KAAK4C,oBAAoB,CAACD,IAAI;YACjC,OAAO;QACT;QACA,OAAO3C,KAAK6B,yBAAyB,CAACc,EAAEpB,cAAc;IACxD;AACF;AAEA,SAASQ,mBAAmBS,GAA4B;IACtD,MAAMV,QAAkB,EAAE;IAE1B,KAAK,MAAMf,QAAQyB,IAAIC,aAAa,GAAI;QACtC,IAAIzC,KAAK4C,oBAAoB,CAAC7B,OAAO;YACnC,MAAMZ,OAAOY,KAAK8B,WAAW,GAAGC,OAAO;YACvC,MAAMC,OAAOhC,KAAKQ,cAAc;YAChC,IAAI,CAACwB,MAAM;gBACT,OAAO;YACT;YACAjB,MAAMH,IAAI,CAAC,GAAGxB,KAAK,EAAE,EAAE4C,KAAKD,OAAO,IAAI;YACvC;QACF;QAEA,IAAI9C,KAAKgD,kBAAkB,CAACjC,OAAO;YACjCe,MAAMH,IAAI,CAACZ,KAAK+B,OAAO;YACvB;QACF;QAEA,OAAO;IACT;IAEA,OAAOhB;AACT;AAEA,SAASG,sBAAsBxB,UAAsB;IACnD,MAAMwC,kBAAkBxC,WAAWyC,qBAAqB,GAAGR,IAAI,CAAC,CAACS;QAC/D,OAAOA,KAAKC,eAAe,GAAGV,IAAI,CAAC,CAACW,QAAUA,MAAMrC,OAAO,OAAO;IACpE;IACA,IAAIiC,iBAAiB;QACnB;IACF;IACAxC,WAAW6C,oBAAoB,CAAC;QAC9BC,iBAAiB;QACjBC,cAAc;YAAC;SAAkB;IACnC;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../../../src/transforms/migrate-force-select/index.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { describe, expect, it } from 'vitest';
|
|
5
|
+
import { runTransform } from '../../utils/test-helpers.js';
|
|
6
|
+
import { migrateForceSelect } from './index.js';
|
|
7
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
8
|
+
const fixture = (name)=>readFile(join(here, name), 'utf8');
|
|
9
|
+
describe('migrate-force-select', ()=>{
|
|
10
|
+
it('migrates forceSelect object literal to a select function', async ()=>{
|
|
11
|
+
const input = await fixture('basic.input.ts');
|
|
12
|
+
const output = await fixture('basic.output.ts');
|
|
13
|
+
const result = await runTransform({
|
|
14
|
+
source: input,
|
|
15
|
+
transform: migrateForceSelect
|
|
16
|
+
});
|
|
17
|
+
expect(result).toBe(output);
|
|
18
|
+
});
|
|
19
|
+
it('is idempotent', async ()=>{
|
|
20
|
+
const output = await fixture('basic.output.ts');
|
|
21
|
+
const result = await runTransform({
|
|
22
|
+
source: output,
|
|
23
|
+
transform: migrateForceSelect
|
|
24
|
+
});
|
|
25
|
+
expect(result).toBe(output);
|
|
26
|
+
});
|
|
27
|
+
it('no-ops on unrelated code', async ()=>{
|
|
28
|
+
const input = await fixture('no-match.input.ts');
|
|
29
|
+
const output = await fixture('no-match.output.ts');
|
|
30
|
+
const result = await runTransform({
|
|
31
|
+
source: input,
|
|
32
|
+
transform: migrateForceSelect
|
|
33
|
+
});
|
|
34
|
+
expect(result).toBe(output);
|
|
35
|
+
});
|
|
36
|
+
it('removes forceSelect when sibling select already present', async ()=>{
|
|
37
|
+
const input = `export const Pages = {
|
|
38
|
+
slug: 'pages',
|
|
39
|
+
select: ({ select }) => select,
|
|
40
|
+
forceSelect: {
|
|
41
|
+
title: true,
|
|
42
|
+
},
|
|
43
|
+
fields: [],
|
|
44
|
+
}
|
|
45
|
+
`;
|
|
46
|
+
const result = await runTransform({
|
|
47
|
+
source: input,
|
|
48
|
+
transform: migrateForceSelect
|
|
49
|
+
});
|
|
50
|
+
expect(result).not.toContain('forceSelect');
|
|
51
|
+
expect(result).toContain('select: ({ select }) => select');
|
|
52
|
+
});
|
|
53
|
+
it('removes non-literal forceSelect and emits a manual-migration note', async ()=>{
|
|
54
|
+
const input = `const forced = { title: true }
|
|
55
|
+
export const Pages = {
|
|
56
|
+
slug: 'pages',
|
|
57
|
+
forceSelect: forced,
|
|
58
|
+
fields: [],
|
|
59
|
+
}
|
|
60
|
+
`;
|
|
61
|
+
const result = await runTransform({
|
|
62
|
+
source: input,
|
|
63
|
+
transform: migrateForceSelect
|
|
64
|
+
});
|
|
65
|
+
expect(result).not.toContain('forceSelect');
|
|
66
|
+
});
|
|
67
|
+
it('migrates nested forceSelect using deepMergeSimple', async ()=>{
|
|
68
|
+
const input = `export const Pages = {
|
|
69
|
+
slug: 'pages',
|
|
70
|
+
forceSelect: {
|
|
71
|
+
group: {
|
|
72
|
+
sub: true,
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
fields: [],
|
|
76
|
+
}
|
|
77
|
+
`;
|
|
78
|
+
const result = await runTransform({
|
|
79
|
+
source: input,
|
|
80
|
+
transform: migrateForceSelect
|
|
81
|
+
});
|
|
82
|
+
expect(result).not.toContain('forceSelect');
|
|
83
|
+
expect(result).toContain(`import { deepMergeSimple } from 'payload/shared'`);
|
|
84
|
+
expect(result).toMatch(/select:\s*\(\{\s*select\s*\}\)\s*=>\s*\(select\s*\?\s*deepMergeSimple\(select,\s*\{[\s\S]*group:[\s\S]*sub:\s*true[\s\S]*\}\)\s*:\s*undefined\)/);
|
|
85
|
+
});
|
|
86
|
+
it('does not duplicate the deepMergeSimple import on rerun', async ()=>{
|
|
87
|
+
const input = `import { deepMergeSimple } from 'payload/shared'
|
|
88
|
+
|
|
89
|
+
export const Pages = {
|
|
90
|
+
slug: 'pages',
|
|
91
|
+
forceSelect: {
|
|
92
|
+
group: {
|
|
93
|
+
sub: true,
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
fields: [],
|
|
97
|
+
}
|
|
98
|
+
`;
|
|
99
|
+
const result = await runTransform({
|
|
100
|
+
source: input,
|
|
101
|
+
transform: migrateForceSelect
|
|
102
|
+
});
|
|
103
|
+
expect(result.match(/from 'payload\/shared'/g)?.length).toBe(1);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
//# sourceMappingURL=index.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/migrate-force-select/index.spec.ts"],"sourcesContent":["import { readFile } from 'node:fs/promises'\nimport { dirname, join } from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { describe, expect, it } from 'vitest'\n\nimport { runTransform } from '../../utils/test-helpers.js'\nimport { migrateForceSelect } from './index.js'\n\nconst here = dirname(fileURLToPath(import.meta.url))\nconst fixture = (name: string) => readFile(join(here, name), 'utf8')\n\ndescribe('migrate-force-select', () => {\n it('migrates forceSelect object literal to a select function', async () => {\n const input = await fixture('basic.input.ts')\n const output = await fixture('basic.output.ts')\n\n const result = await runTransform({ source: input, transform: migrateForceSelect })\n\n expect(result).toBe(output)\n })\n\n it('is idempotent', async () => {\n const output = await fixture('basic.output.ts')\n\n const result = await runTransform({ source: output, transform: migrateForceSelect })\n\n expect(result).toBe(output)\n })\n\n it('no-ops on unrelated code', async () => {\n const input = await fixture('no-match.input.ts')\n const output = await fixture('no-match.output.ts')\n\n const result = await runTransform({ source: input, transform: migrateForceSelect })\n\n expect(result).toBe(output)\n })\n\n it('removes forceSelect when sibling select already present', async () => {\n const input = `export const Pages = {\n slug: 'pages',\n select: ({ select }) => select,\n forceSelect: {\n title: true,\n },\n fields: [],\n}\n`\n\n const result = await runTransform({ source: input, transform: migrateForceSelect })\n\n expect(result).not.toContain('forceSelect')\n expect(result).toContain('select: ({ select }) => select')\n })\n\n it('removes non-literal forceSelect and emits a manual-migration note', async () => {\n const input = `const forced = { title: true }\nexport const Pages = {\n slug: 'pages',\n forceSelect: forced,\n fields: [],\n}\n`\n\n const result = await runTransform({ source: input, transform: migrateForceSelect })\n\n expect(result).not.toContain('forceSelect')\n })\n\n it('migrates nested forceSelect using deepMergeSimple', async () => {\n const input = `export const Pages = {\n slug: 'pages',\n forceSelect: {\n group: {\n sub: true,\n },\n },\n fields: [],\n}\n`\n\n const result = await runTransform({ source: input, transform: migrateForceSelect })\n\n expect(result).not.toContain('forceSelect')\n expect(result).toContain(`import { deepMergeSimple } from 'payload/shared'`)\n expect(result).toMatch(\n /select:\\s*\\(\\{\\s*select\\s*\\}\\)\\s*=>\\s*\\(select\\s*\\?\\s*deepMergeSimple\\(select,\\s*\\{[\\s\\S]*group:[\\s\\S]*sub:\\s*true[\\s\\S]*\\}\\)\\s*:\\s*undefined\\)/,\n )\n })\n\n it('does not duplicate the deepMergeSimple import on rerun', async () => {\n const input = `import { deepMergeSimple } from 'payload/shared'\n\nexport const Pages = {\n slug: 'pages',\n forceSelect: {\n group: {\n sub: true,\n },\n },\n fields: [],\n}\n`\n\n const result = await runTransform({ source: input, transform: migrateForceSelect })\n\n expect(result.match(/from 'payload\\/shared'/g)?.length).toBe(1)\n })\n})\n"],"names":["readFile","dirname","join","fileURLToPath","describe","expect","it","runTransform","migrateForceSelect","here","url","fixture","name","input","output","result","source","transform","toBe","not","toContain","toMatch","match","length"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,mBAAkB;AAC3C,SAASC,OAAO,EAAEC,IAAI,QAAQ,YAAW;AACzC,SAASC,aAAa,QAAQ,WAAU;AACxC,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAE7C,SAASC,YAAY,QAAQ,8BAA6B;AAC1D,SAASC,kBAAkB,QAAQ,aAAY;AAE/C,MAAMC,OAAOR,QAAQE,cAAc,YAAYO,GAAG;AAClD,MAAMC,UAAU,CAACC,OAAiBZ,SAASE,KAAKO,MAAMG,OAAO;AAE7DR,SAAS,wBAAwB;IAC/BE,GAAG,4DAA4D;QAC7D,MAAMO,QAAQ,MAAMF,QAAQ;QAC5B,MAAMG,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAAmB;QAEjFH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;IAEAR,GAAG,iBAAiB;QAClB,MAAMQ,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQF;YAAQG,WAAWT;QAAmB;QAElFH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;IAEAR,GAAG,4BAA4B;QAC7B,MAAMO,QAAQ,MAAMF,QAAQ;QAC5B,MAAMG,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAAmB;QAEjFH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;IAEAR,GAAG,2DAA2D;QAC5D,MAAMO,QAAQ,CAAC;;;;;;;;AAQnB,CAAC;QAEG,MAAME,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAAmB;QAEjFH,OAAOU,QAAQI,GAAG,CAACC,SAAS,CAAC;QAC7Bf,OAAOU,QAAQK,SAAS,CAAC;IAC3B;IAEAd,GAAG,qEAAqE;QACtE,MAAMO,QAAQ,CAAC;;;;;;AAMnB,CAAC;QAEG,MAAME,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAAmB;QAEjFH,OAAOU,QAAQI,GAAG,CAACC,SAAS,CAAC;IAC/B;IAEAd,GAAG,qDAAqD;QACtD,MAAMO,QAAQ,CAAC;;;;;;;;;AASnB,CAAC;QAEG,MAAME,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAAmB;QAEjFH,OAAOU,QAAQI,GAAG,CAACC,SAAS,CAAC;QAC7Bf,OAAOU,QAAQK,SAAS,CAAC,CAAC,gDAAgD,CAAC;QAC3Ef,OAAOU,QAAQM,OAAO,CACpB;IAEJ;IAEAf,GAAG,0DAA0D;QAC3D,MAAMO,QAAQ,CAAC;;;;;;;;;;;AAWnB,CAAC;QAEG,MAAME,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAAmB;QAEjFH,OAAOU,OAAOO,KAAK,CAAC,4BAA4BC,QAAQL,IAAI,CAAC;IAC/D;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/migrate-force-select/no-match.input.ts"],"sourcesContent":["export const Pages = {\n slug: 'pages',\n admin: {\n description: 'A list of pages',\n },\n fields: [],\n}\n\nexport const Custom = {\n select: ({ select }: { select?: unknown }) => select,\n}\n"],"names":["Pages","slug","admin","description","fields","Custom","select"],"mappings":"AAAA,OAAO,MAAMA,QAAQ;IACnBC,MAAM;IACNC,OAAO;QACLC,aAAa;IACf;IACAC,QAAQ,EAAE;AACZ,EAAC;AAED,OAAO,MAAMC,SAAS;IACpBC,QAAQ,CAAC,EAAEA,MAAM,EAAwB,GAAKA;AAChD,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/migrate-force-select/no-match.output.ts"],"sourcesContent":["export const Pages = {\n slug: 'pages',\n admin: {\n description: 'A list of pages',\n },\n fields: [],\n}\n\nexport const Custom = {\n select: ({ select }: { select?: unknown }) => select,\n}\n"],"names":["Pages","slug","admin","description","fields","Custom","select"],"mappings":"AAAA,OAAO,MAAMA,QAAQ;IACnBC,MAAM;IACNC,OAAO;QACLC,aAAa;IACf;IACAC,QAAQ,EAAE;AACZ,EAAC;AAED,OAAO,MAAMC,SAAS;IACpBC,QAAQ,CAAC,EAAEA,MAAM,EAAwB,GAAKA;AAChD,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/migrate-hide-api-url/basic.input.ts"],"sourcesContent":["export const Pages = {\n slug: 'pages',\n admin: {\n hideAPIURL: true,\n },\n fields: [],\n}\n"],"names":["Pages","slug","admin","hideAPIURL","fields"],"mappings":"AAAA,OAAO,MAAMA,QAAQ;IACnBC,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ,EAAE;AACZ,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/migrate-hide-api-url/basic.output.ts"],"sourcesContent":["export const Pages = {\n slug: 'pages',\n admin: {\n components: {\n views: {\n edit: {\n api: {\n tab: {\n condition: () => false,\n },\n },\n },\n },\n },\n },\n fields: [],\n}\n"],"names":["Pages","slug","admin","components","views","edit","api","tab","condition","fields"],"mappings":"AAAA,OAAO,MAAMA,QAAQ;IACnBC,MAAM;IACNC,OAAO;QACLC,YAAY;YACVC,OAAO;gBACLC,MAAM;oBACJC,KAAK;wBACHC,KAAK;4BACHC,WAAW,IAAM;wBACnB;oBACF;gBACF;YACF;QACF;IACF;IACAC,QAAQ,EAAE;AACZ,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transforms/migrate-hide-api-url/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAI/C,eAAO,MAAM,iBAAiB,EAAE,SAyD/B,CAAA"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Node, SyntaxKind } from 'ts-morph';
|
|
2
|
+
const NESTED_PATH = [
|
|
3
|
+
'components',
|
|
4
|
+
'views',
|
|
5
|
+
'edit',
|
|
6
|
+
'api',
|
|
7
|
+
'tab'
|
|
8
|
+
];
|
|
9
|
+
export const migrateHideAPIURL = {
|
|
10
|
+
name: 'migrate-hide-api-url',
|
|
11
|
+
apply: ({ project })=>{
|
|
12
|
+
const filesChanged = new Set();
|
|
13
|
+
const notes = [];
|
|
14
|
+
for (const sourceFile of project.getSourceFiles()){
|
|
15
|
+
const targets = sourceFile.getDescendantsOfKind(SyntaxKind.PropertyAssignment).filter((prop)=>{
|
|
16
|
+
if (prop.getName() !== 'hideAPIURL') {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
const parentObject = prop.getParentIfKind(SyntaxKind.ObjectLiteralExpression);
|
|
20
|
+
const adminProp = parentObject?.getParentIfKind(SyntaxKind.PropertyAssignment);
|
|
21
|
+
return adminProp?.getName() === 'admin';
|
|
22
|
+
});
|
|
23
|
+
for (const prop of targets){
|
|
24
|
+
const initializer = prop.getInitializer();
|
|
25
|
+
const kind = initializer?.getKind();
|
|
26
|
+
if (kind === SyntaxKind.FalseKeyword) {
|
|
27
|
+
prop.remove();
|
|
28
|
+
filesChanged.add(sourceFile.getFilePath());
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
if (kind !== SyntaxKind.TrueKeyword) {
|
|
32
|
+
notes.push(`${sourceFile.getFilePath()}: 'admin.hideAPIURL' value is not a boolean literal — migrate manually to admin.components.views.edit.api.tab.condition.`);
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
const adminObject = prop.getParentIfKindOrThrow(SyntaxKind.ObjectLiteralExpression);
|
|
36
|
+
const ok = ensureConditionFalse(adminObject);
|
|
37
|
+
if (!ok) {
|
|
38
|
+
notes.push(`${sourceFile.getFilePath()}: could not insert admin.components.views.edit.api.tab.condition — existing nested value is not an object literal. Migrate manually.`);
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
prop.remove();
|
|
42
|
+
filesChanged.add(sourceFile.getFilePath());
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
filesChanged: Array.from(filesChanged),
|
|
47
|
+
...notes.length > 0 ? {
|
|
48
|
+
notes
|
|
49
|
+
} : {}
|
|
50
|
+
};
|
|
51
|
+
},
|
|
52
|
+
description: 'Migrate admin.hideAPIURL to admin.components.views.edit.api.tab.condition: () => false.'
|
|
53
|
+
};
|
|
54
|
+
function ensureConditionFalse(adminObject) {
|
|
55
|
+
let current = adminObject;
|
|
56
|
+
for (const segment of NESTED_PATH){
|
|
57
|
+
const existing = current.getProperty(segment);
|
|
58
|
+
if (existing) {
|
|
59
|
+
if (!Node.isPropertyAssignment(existing)) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
const init = existing.getInitializer();
|
|
63
|
+
if (!init || !Node.isObjectLiteralExpression(init)) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
current = init;
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
const added = current.addPropertyAssignment({
|
|
70
|
+
name: segment,
|
|
71
|
+
initializer: '{}'
|
|
72
|
+
});
|
|
73
|
+
current = added.getInitializerIfKindOrThrow(SyntaxKind.ObjectLiteralExpression);
|
|
74
|
+
}
|
|
75
|
+
if (current.getProperty('condition')) {
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
current.addPropertyAssignment({
|
|
79
|
+
name: 'condition',
|
|
80
|
+
initializer: '() => false'
|
|
81
|
+
});
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/migrate-hide-api-url/index.ts"],"sourcesContent":["import type { ObjectLiteralExpression } from 'ts-morph'\n\nimport { Node, SyntaxKind } from 'ts-morph'\n\nimport type { Transform } from '../../types.js'\n\nconst NESTED_PATH = ['components', 'views', 'edit', 'api', 'tab'] as const\n\nexport const migrateHideAPIURL: Transform = {\n name: 'migrate-hide-api-url',\n apply: ({ project }) => {\n const filesChanged = new Set<string>()\n const notes: string[] = []\n\n for (const sourceFile of project.getSourceFiles()) {\n const targets = sourceFile\n .getDescendantsOfKind(SyntaxKind.PropertyAssignment)\n .filter((prop) => {\n if (prop.getName() !== 'hideAPIURL') {\n return false\n }\n const parentObject = prop.getParentIfKind(SyntaxKind.ObjectLiteralExpression)\n const adminProp = parentObject?.getParentIfKind(SyntaxKind.PropertyAssignment)\n return adminProp?.getName() === 'admin'\n })\n\n for (const prop of targets) {\n const initializer = prop.getInitializer()\n const kind = initializer?.getKind()\n\n if (kind === SyntaxKind.FalseKeyword) {\n prop.remove()\n filesChanged.add(sourceFile.getFilePath())\n continue\n }\n\n if (kind !== SyntaxKind.TrueKeyword) {\n notes.push(\n `${sourceFile.getFilePath()}: 'admin.hideAPIURL' value is not a boolean literal — migrate manually to admin.components.views.edit.api.tab.condition.`,\n )\n continue\n }\n\n const adminObject = prop.getParentIfKindOrThrow(SyntaxKind.ObjectLiteralExpression)\n const ok = ensureConditionFalse(adminObject)\n\n if (!ok) {\n notes.push(\n `${sourceFile.getFilePath()}: could not insert admin.components.views.edit.api.tab.condition — existing nested value is not an object literal. Migrate manually.`,\n )\n continue\n }\n\n prop.remove()\n filesChanged.add(sourceFile.getFilePath())\n }\n }\n\n return {\n filesChanged: Array.from(filesChanged),\n ...(notes.length > 0 ? { notes } : {}),\n }\n },\n description:\n 'Migrate admin.hideAPIURL to admin.components.views.edit.api.tab.condition: () => false.',\n}\n\nfunction ensureConditionFalse(adminObject: ObjectLiteralExpression): boolean {\n let current = adminObject\n\n for (const segment of NESTED_PATH) {\n const existing = current.getProperty(segment)\n\n if (existing) {\n if (!Node.isPropertyAssignment(existing)) {\n return false\n }\n const init = existing.getInitializer()\n if (!init || !Node.isObjectLiteralExpression(init)) {\n return false\n }\n current = init\n continue\n }\n\n const added = current.addPropertyAssignment({ name: segment, initializer: '{}' })\n current = added.getInitializerIfKindOrThrow(SyntaxKind.ObjectLiteralExpression)\n }\n\n if (current.getProperty('condition')) {\n return true\n }\n\n current.addPropertyAssignment({ name: 'condition', initializer: '() => false' })\n return true\n}\n"],"names":["Node","SyntaxKind","NESTED_PATH","migrateHideAPIURL","name","apply","project","filesChanged","Set","notes","sourceFile","getSourceFiles","targets","getDescendantsOfKind","PropertyAssignment","filter","prop","getName","parentObject","getParentIfKind","ObjectLiteralExpression","adminProp","initializer","getInitializer","kind","getKind","FalseKeyword","remove","add","getFilePath","TrueKeyword","push","adminObject","getParentIfKindOrThrow","ok","ensureConditionFalse","Array","from","length","description","current","segment","existing","getProperty","isPropertyAssignment","init","isObjectLiteralExpression","added","addPropertyAssignment","getInitializerIfKindOrThrow"],"mappings":"AAEA,SAASA,IAAI,EAAEC,UAAU,QAAQ,WAAU;AAI3C,MAAMC,cAAc;IAAC;IAAc;IAAS;IAAQ;IAAO;CAAM;AAEjE,OAAO,MAAMC,oBAA+B;IAC1CC,MAAM;IACNC,OAAO,CAAC,EAAEC,OAAO,EAAE;QACjB,MAAMC,eAAe,IAAIC;QACzB,MAAMC,QAAkB,EAAE;QAE1B,KAAK,MAAMC,cAAcJ,QAAQK,cAAc,GAAI;YACjD,MAAMC,UAAUF,WACbG,oBAAoB,CAACZ,WAAWa,kBAAkB,EAClDC,MAAM,CAAC,CAACC;gBACP,IAAIA,KAAKC,OAAO,OAAO,cAAc;oBACnC,OAAO;gBACT;gBACA,MAAMC,eAAeF,KAAKG,eAAe,CAAClB,WAAWmB,uBAAuB;gBAC5E,MAAMC,YAAYH,cAAcC,gBAAgBlB,WAAWa,kBAAkB;gBAC7E,OAAOO,WAAWJ,cAAc;YAClC;YAEF,KAAK,MAAMD,QAAQJ,QAAS;gBAC1B,MAAMU,cAAcN,KAAKO,cAAc;gBACvC,MAAMC,OAAOF,aAAaG;gBAE1B,IAAID,SAASvB,WAAWyB,YAAY,EAAE;oBACpCV,KAAKW,MAAM;oBACXpB,aAAaqB,GAAG,CAAClB,WAAWmB,WAAW;oBACvC;gBACF;gBAEA,IAAIL,SAASvB,WAAW6B,WAAW,EAAE;oBACnCrB,MAAMsB,IAAI,CACR,GAAGrB,WAAWmB,WAAW,GAAG,wHAAwH,CAAC;oBAEvJ;gBACF;gBAEA,MAAMG,cAAchB,KAAKiB,sBAAsB,CAAChC,WAAWmB,uBAAuB;gBAClF,MAAMc,KAAKC,qBAAqBH;gBAEhC,IAAI,CAACE,IAAI;oBACPzB,MAAMsB,IAAI,CACR,GAAGrB,WAAWmB,WAAW,GAAG,oIAAoI,CAAC;oBAEnK;gBACF;gBAEAb,KAAKW,MAAM;gBACXpB,aAAaqB,GAAG,CAAClB,WAAWmB,WAAW;YACzC;QACF;QAEA,OAAO;YACLtB,cAAc6B,MAAMC,IAAI,CAAC9B;YACzB,GAAIE,MAAM6B,MAAM,GAAG,IAAI;gBAAE7B;YAAM,IAAI,CAAC,CAAC;QACvC;IACF;IACA8B,aACE;AACJ,EAAC;AAED,SAASJ,qBAAqBH,WAAoC;IAChE,IAAIQ,UAAUR;IAEd,KAAK,MAAMS,WAAWvC,YAAa;QACjC,MAAMwC,WAAWF,QAAQG,WAAW,CAACF;QAErC,IAAIC,UAAU;YACZ,IAAI,CAAC1C,KAAK4C,oBAAoB,CAACF,WAAW;gBACxC,OAAO;YACT;YACA,MAAMG,OAAOH,SAASnB,cAAc;YACpC,IAAI,CAACsB,QAAQ,CAAC7C,KAAK8C,yBAAyB,CAACD,OAAO;gBAClD,OAAO;YACT;YACAL,UAAUK;YACV;QACF;QAEA,MAAME,QAAQP,QAAQQ,qBAAqB,CAAC;YAAE5C,MAAMqC;YAASnB,aAAa;QAAK;QAC/EkB,UAAUO,MAAME,2BAA2B,CAAChD,WAAWmB,uBAAuB;IAChF;IAEA,IAAIoB,QAAQG,WAAW,CAAC,cAAc;QACpC,OAAO;IACT;IAEAH,QAAQQ,qBAAqB,CAAC;QAAE5C,MAAM;QAAakB,aAAa;IAAc;IAC9E,OAAO;AACT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../../../src/transforms/migrate-hide-api-url/index.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { describe, expect, it } from 'vitest';
|
|
5
|
+
import { runTransform } from '../../utils/test-helpers.js';
|
|
6
|
+
import { migrateHideAPIURL } from './index.js';
|
|
7
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
8
|
+
const fixture = (name)=>readFile(join(here, name), 'utf8');
|
|
9
|
+
describe('migrate-hide-api-url', ()=>{
|
|
10
|
+
it('migrates admin.hideAPIURL: true to nested condition', async ()=>{
|
|
11
|
+
const input = await fixture('basic.input.ts');
|
|
12
|
+
const output = await fixture('basic.output.ts');
|
|
13
|
+
const result = await runTransform({
|
|
14
|
+
source: input,
|
|
15
|
+
transform: migrateHideAPIURL
|
|
16
|
+
});
|
|
17
|
+
expect(result).toBe(output);
|
|
18
|
+
});
|
|
19
|
+
it('is idempotent', async ()=>{
|
|
20
|
+
const output = await fixture('basic.output.ts');
|
|
21
|
+
const result = await runTransform({
|
|
22
|
+
source: output,
|
|
23
|
+
transform: migrateHideAPIURL
|
|
24
|
+
});
|
|
25
|
+
expect(result).toBe(output);
|
|
26
|
+
});
|
|
27
|
+
it('no-ops on unrelated code', async ()=>{
|
|
28
|
+
const input = await fixture('no-match.input.ts');
|
|
29
|
+
const output = await fixture('no-match.output.ts');
|
|
30
|
+
const result = await runTransform({
|
|
31
|
+
source: input,
|
|
32
|
+
transform: migrateHideAPIURL
|
|
33
|
+
});
|
|
34
|
+
expect(result).toBe(output);
|
|
35
|
+
});
|
|
36
|
+
it('plugs condition into existing admin.components.views.edit.api.tab', async ()=>{
|
|
37
|
+
const input = `export const Pages = {
|
|
38
|
+
slug: 'pages',
|
|
39
|
+
admin: {
|
|
40
|
+
hideAPIURL: true,
|
|
41
|
+
components: {
|
|
42
|
+
views: {
|
|
43
|
+
edit: {
|
|
44
|
+
api: {
|
|
45
|
+
tab: {
|
|
46
|
+
label: 'Custom API',
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
fields: [],
|
|
54
|
+
}
|
|
55
|
+
`;
|
|
56
|
+
const result = await runTransform({
|
|
57
|
+
source: input,
|
|
58
|
+
transform: migrateHideAPIURL
|
|
59
|
+
});
|
|
60
|
+
expect(result).not.toContain('hideAPIURL');
|
|
61
|
+
expect(result).toContain("label: 'Custom API'");
|
|
62
|
+
expect(result).toContain('condition: () => false');
|
|
63
|
+
});
|
|
64
|
+
it('adds missing tab segment when partial path exists', async ()=>{
|
|
65
|
+
const input = `export const Pages = {
|
|
66
|
+
slug: 'pages',
|
|
67
|
+
admin: {
|
|
68
|
+
hideAPIURL: true,
|
|
69
|
+
components: {
|
|
70
|
+
views: {
|
|
71
|
+
edit: {
|
|
72
|
+
api: {},
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
fields: [],
|
|
78
|
+
}
|
|
79
|
+
`;
|
|
80
|
+
const result = await runTransform({
|
|
81
|
+
source: input,
|
|
82
|
+
transform: migrateHideAPIURL
|
|
83
|
+
});
|
|
84
|
+
expect(result).not.toContain('hideAPIURL');
|
|
85
|
+
expect(result).toContain('tab:');
|
|
86
|
+
expect(result).toContain('condition: () => false');
|
|
87
|
+
});
|
|
88
|
+
it('preserves existing condition and removes hideAPIURL', async ()=>{
|
|
89
|
+
const input = `export const Pages = {
|
|
90
|
+
slug: 'pages',
|
|
91
|
+
admin: {
|
|
92
|
+
hideAPIURL: true,
|
|
93
|
+
components: {
|
|
94
|
+
views: {
|
|
95
|
+
edit: {
|
|
96
|
+
api: {
|
|
97
|
+
tab: {
|
|
98
|
+
condition: () => true,
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
fields: [],
|
|
106
|
+
}
|
|
107
|
+
`;
|
|
108
|
+
const result = await runTransform({
|
|
109
|
+
source: input,
|
|
110
|
+
transform: migrateHideAPIURL
|
|
111
|
+
});
|
|
112
|
+
expect(result).not.toContain('hideAPIURL');
|
|
113
|
+
expect(result).toContain('condition: () => true');
|
|
114
|
+
expect(result).not.toContain('condition: () => false');
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
//# sourceMappingURL=index.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/migrate-hide-api-url/index.spec.ts"],"sourcesContent":["import { readFile } from 'node:fs/promises'\nimport { dirname, join } from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { describe, expect, it } from 'vitest'\n\nimport { runTransform } from '../../utils/test-helpers.js'\nimport { migrateHideAPIURL } from './index.js'\n\nconst here = dirname(fileURLToPath(import.meta.url))\nconst fixture = (name: string) => readFile(join(here, name), 'utf8')\n\ndescribe('migrate-hide-api-url', () => {\n it('migrates admin.hideAPIURL: true to nested condition', async () => {\n const input = await fixture('basic.input.ts')\n const output = await fixture('basic.output.ts')\n\n const result = await runTransform({ source: input, transform: migrateHideAPIURL })\n\n expect(result).toBe(output)\n })\n\n it('is idempotent', async () => {\n const output = await fixture('basic.output.ts')\n\n const result = await runTransform({ source: output, transform: migrateHideAPIURL })\n\n expect(result).toBe(output)\n })\n\n it('no-ops on unrelated code', async () => {\n const input = await fixture('no-match.input.ts')\n const output = await fixture('no-match.output.ts')\n\n const result = await runTransform({ source: input, transform: migrateHideAPIURL })\n\n expect(result).toBe(output)\n })\n\n it('plugs condition into existing admin.components.views.edit.api.tab', async () => {\n const input = `export const Pages = {\n slug: 'pages',\n admin: {\n hideAPIURL: true,\n components: {\n views: {\n edit: {\n api: {\n tab: {\n label: 'Custom API',\n },\n },\n },\n },\n },\n },\n fields: [],\n}\n`\n\n const result = await runTransform({ source: input, transform: migrateHideAPIURL })\n\n expect(result).not.toContain('hideAPIURL')\n expect(result).toContain(\"label: 'Custom API'\")\n expect(result).toContain('condition: () => false')\n })\n\n it('adds missing tab segment when partial path exists', async () => {\n const input = `export const Pages = {\n slug: 'pages',\n admin: {\n hideAPIURL: true,\n components: {\n views: {\n edit: {\n api: {},\n },\n },\n },\n },\n fields: [],\n}\n`\n\n const result = await runTransform({ source: input, transform: migrateHideAPIURL })\n\n expect(result).not.toContain('hideAPIURL')\n expect(result).toContain('tab:')\n expect(result).toContain('condition: () => false')\n })\n\n it('preserves existing condition and removes hideAPIURL', async () => {\n const input = `export const Pages = {\n slug: 'pages',\n admin: {\n hideAPIURL: true,\n components: {\n views: {\n edit: {\n api: {\n tab: {\n condition: () => true,\n },\n },\n },\n },\n },\n },\n fields: [],\n}\n`\n\n const result = await runTransform({ source: input, transform: migrateHideAPIURL })\n\n expect(result).not.toContain('hideAPIURL')\n expect(result).toContain('condition: () => true')\n expect(result).not.toContain('condition: () => false')\n })\n})\n"],"names":["readFile","dirname","join","fileURLToPath","describe","expect","it","runTransform","migrateHideAPIURL","here","url","fixture","name","input","output","result","source","transform","toBe","not","toContain"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,mBAAkB;AAC3C,SAASC,OAAO,EAAEC,IAAI,QAAQ,YAAW;AACzC,SAASC,aAAa,QAAQ,WAAU;AACxC,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAE7C,SAASC,YAAY,QAAQ,8BAA6B;AAC1D,SAASC,iBAAiB,QAAQ,aAAY;AAE9C,MAAMC,OAAOR,QAAQE,cAAc,YAAYO,GAAG;AAClD,MAAMC,UAAU,CAACC,OAAiBZ,SAASE,KAAKO,MAAMG,OAAO;AAE7DR,SAAS,wBAAwB;IAC/BE,GAAG,uDAAuD;QACxD,MAAMO,QAAQ,MAAMF,QAAQ;QAC5B,MAAMG,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAAkB;QAEhFH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;IAEAR,GAAG,iBAAiB;QAClB,MAAMQ,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQF;YAAQG,WAAWT;QAAkB;QAEjFH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;IAEAR,GAAG,4BAA4B;QAC7B,MAAMO,QAAQ,MAAMF,QAAQ;QAC5B,MAAMG,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAAkB;QAEhFH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;IAEAR,GAAG,qEAAqE;QACtE,MAAMO,QAAQ,CAAC;;;;;;;;;;;;;;;;;;AAkBnB,CAAC;QAEG,MAAME,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAAkB;QAEhFH,OAAOU,QAAQI,GAAG,CAACC,SAAS,CAAC;QAC7Bf,OAAOU,QAAQK,SAAS,CAAC;QACzBf,OAAOU,QAAQK,SAAS,CAAC;IAC3B;IAEAd,GAAG,qDAAqD;QACtD,MAAMO,QAAQ,CAAC;;;;;;;;;;;;;;AAcnB,CAAC;QAEG,MAAME,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAAkB;QAEhFH,OAAOU,QAAQI,GAAG,CAACC,SAAS,CAAC;QAC7Bf,OAAOU,QAAQK,SAAS,CAAC;QACzBf,OAAOU,QAAQK,SAAS,CAAC;IAC3B;IAEAd,GAAG,uDAAuD;QACxD,MAAMO,QAAQ,CAAC;;;;;;;;;;;;;;;;;;AAkBnB,CAAC;QAEG,MAAME,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAAkB;QAEhFH,OAAOU,QAAQI,GAAG,CAACC,SAAS,CAAC;QAC7Bf,OAAOU,QAAQK,SAAS,CAAC;QACzBf,OAAOU,QAAQI,GAAG,CAACC,SAAS,CAAC;IAC/B;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/migrate-hide-api-url/no-match.input.ts"],"sourcesContent":["export const Pages = {\n slug: 'pages',\n admin: {\n description: 'A list of pages',\n },\n fields: [],\n}\n\nexport const unrelated = { hideAPIURL: true }\n"],"names":["Pages","slug","admin","description","fields","unrelated","hideAPIURL"],"mappings":"AAAA,OAAO,MAAMA,QAAQ;IACnBC,MAAM;IACNC,OAAO;QACLC,aAAa;IACf;IACAC,QAAQ,EAAE;AACZ,EAAC;AAED,OAAO,MAAMC,YAAY;IAAEC,YAAY;AAAK,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/migrate-hide-api-url/no-match.output.ts"],"sourcesContent":["export const Pages = {\n slug: 'pages',\n admin: {\n description: 'A list of pages',\n },\n fields: [],\n}\n\nexport const unrelated = { hideAPIURL: true }\n"],"names":["Pages","slug","admin","description","fields","unrelated","hideAPIURL"],"mappings":"AAAA,OAAO,MAAMA,QAAQ;IACnBC,MAAM;IACNC,OAAO;QACLC,aAAa;IACf;IACAC,QAAQ,EAAE;AACZ,EAAC;AAED,OAAO,MAAMC,YAAY;IAAEC,YAAY;AAAK,EAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const Posts = {
|
|
2
|
+
slug: 'posts',
|
|
3
|
+
fields: [
|
|
4
|
+
{
|
|
5
|
+
name: 'custom',
|
|
6
|
+
type: 'text',
|
|
7
|
+
custom: {
|
|
8
|
+
'plugin-import-export': {
|
|
9
|
+
toCSV: ({ value })=>String(value) + ' transformed'
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=basic.input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/migrate-import-export-hooks/basic.input.ts"],"sourcesContent":["export const Posts = {\n slug: 'posts',\n fields: [\n {\n name: 'custom',\n type: 'text',\n custom: {\n 'plugin-import-export': {\n toCSV: ({ value }) => String(value) + ' transformed',\n },\n },\n },\n ],\n}\n"],"names":["Posts","slug","fields","name","type","custom","toCSV","value","String"],"mappings":"AAAA,OAAO,MAAMA,QAAQ;IACnBC,MAAM;IACNC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,QAAQ;gBACN,wBAAwB;oBACtBC,OAAO,CAAC,EAAEC,KAAK,EAAE,GAAKC,OAAOD,SAAS;gBACxC;YACF;QACF;KACD;AACH,EAAC"}
|