@payloadcms/codemod 4.0.0-internal.f05c47f → 4.0.0-internal.f15737c
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/README.md +94 -27
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.help.d.ts +4 -0
- package/dist/cli.help.d.ts.map +1 -0
- package/dist/cli.help.js +29 -0
- package/dist/cli.help.js.map +1 -0
- package/dist/cli.js +49 -27
- package/dist/cli.js.map +1 -1
- package/dist/cli.parseFlags.d.ts +15 -0
- package/dist/cli.parseFlags.d.ts.map +1 -1
- package/dist/cli.parseFlags.js +35 -2
- package/dist/cli.parseFlags.js.map +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +17 -1
- package/dist/registry.js.map +1 -1
- package/dist/runbook/payload-v4-upgrade.md +55 -0
- package/dist/runbook/v4.mdx +2299 -0
- package/dist/transforms/add-override-access-true/basic.input.js +41 -0
- package/dist/transforms/add-override-access-true/basic.input.js.map +1 -0
- package/dist/transforms/add-override-access-true/basic.output.js +50 -0
- package/dist/transforms/add-override-access-true/basic.output.js.map +1 -0
- package/dist/transforms/add-override-access-true/comment-between-properties.input.js +11 -0
- package/dist/transforms/add-override-access-true/comment-between-properties.input.js.map +1 -0
- package/dist/transforms/add-override-access-true/comment-between-properties.output.js +12 -0
- package/dist/transforms/add-override-access-true/comment-between-properties.output.js.map +1 -0
- package/dist/transforms/add-override-access-true/index.d.ts +20 -0
- package/dist/transforms/add-override-access-true/index.d.ts.map +1 -0
- package/dist/transforms/add-override-access-true/index.js +208 -0
- package/dist/transforms/add-override-access-true/index.js.map +1 -0
- package/dist/transforms/add-override-access-true/javascript.input.d.ts +6 -0
- package/dist/transforms/add-override-access-true/javascript.input.d.ts.map +1 -0
- package/dist/transforms/add-override-access-true/javascript.input.js +24 -0
- package/dist/transforms/add-override-access-true/javascript.input.js.map +1 -0
- package/dist/transforms/add-override-access-true/javascript.output.d.ts +6 -0
- package/dist/transforms/add-override-access-true/javascript.output.d.ts.map +1 -0
- package/dist/transforms/add-override-access-true/javascript.output.js +26 -0
- package/dist/transforms/add-override-access-true/javascript.output.js.map +1 -0
- package/dist/transforms/add-override-access-true/non-matching.input.js +42 -0
- package/dist/transforms/add-override-access-true/non-matching.input.js.map +1 -0
- package/dist/transforms/add-override-access-true/non-matching.output.js +42 -0
- package/dist/transforms/add-override-access-true/non-matching.output.js.map +1 -0
- package/dist/transforms/add-override-access-true/single-line.input.js +13 -0
- package/dist/transforms/add-override-access-true/single-line.input.js.map +1 -0
- package/dist/transforms/add-override-access-true/single-line.output.js +17 -0
- package/dist/transforms/add-override-access-true/single-line.output.js.map +1 -0
- package/dist/transforms/add-override-access-true/trailing-comment.input.js +10 -0
- package/dist/transforms/add-override-access-true/trailing-comment.input.js.map +1 -0
- package/dist/transforms/add-override-access-true/trailing-comment.output.js +12 -0
- package/dist/transforms/add-override-access-true/trailing-comment.output.js.map +1 -0
- package/dist/transforms/migrate-aliased-exports/index.d.ts.map +1 -1
- package/dist/transforms/migrate-aliased-exports/index.js +6 -5
- package/dist/transforms/migrate-aliased-exports/index.js.map +1 -1
- package/dist/transforms/migrate-aliased-exports/request.input.js +6 -0
- package/dist/transforms/migrate-aliased-exports/request.input.js.map +1 -0
- package/dist/transforms/migrate-aliased-exports/request.output.js +5 -0
- package/dist/transforms/migrate-aliased-exports/request.output.js.map +1 -0
- package/dist/transforms/migrate-authorship-default/already-set.input.js +15 -0
- package/dist/transforms/migrate-authorship-default/already-set.input.js.map +1 -0
- package/dist/transforms/migrate-authorship-default/already-set.output.js +15 -0
- package/dist/transforms/migrate-authorship-default/already-set.output.js.map +1 -0
- package/dist/transforms/migrate-authorship-default/basic.input.js +16 -0
- package/dist/transforms/migrate-authorship-default/basic.input.js.map +1 -0
- package/dist/transforms/migrate-authorship-default/basic.output.js +18 -0
- package/dist/transforms/migrate-authorship-default/basic.output.js.map +1 -0
- package/dist/transforms/migrate-authorship-default/build-config.input.js +32 -0
- package/dist/transforms/migrate-authorship-default/build-config.input.js.map +1 -0
- package/dist/transforms/migrate-authorship-default/build-config.output.js +35 -0
- package/dist/transforms/migrate-authorship-default/build-config.output.js.map +1 -0
- package/dist/transforms/migrate-authorship-default/globals.input.js +16 -0
- package/dist/transforms/migrate-authorship-default/globals.input.js.map +1 -0
- package/dist/transforms/migrate-authorship-default/globals.output.js +17 -0
- package/dist/transforms/migrate-authorship-default/globals.output.js.map +1 -0
- package/dist/transforms/migrate-authorship-default/index.d.ts +11 -0
- package/dist/transforms/migrate-authorship-default/index.d.ts.map +1 -0
- package/dist/transforms/migrate-authorship-default/index.js +141 -0
- package/dist/transforms/migrate-authorship-default/index.js.map +1 -0
- package/dist/transforms/migrate-authorship-default/non-matching.input.js +18 -0
- package/dist/transforms/migrate-authorship-default/non-matching.input.js.map +1 -0
- package/dist/transforms/migrate-authorship-default/non-matching.output.js +18 -0
- package/dist/transforms/migrate-authorship-default/non-matching.output.js.map +1 -0
- package/dist/transforms/migrate-authorship-default/satisfies.input.js +11 -0
- package/dist/transforms/migrate-authorship-default/satisfies.input.js.map +1 -0
- package/dist/transforms/migrate-authorship-default/satisfies.output.js +13 -0
- package/dist/transforms/migrate-authorship-default/satisfies.output.js.map +1 -0
- package/dist/transforms/migrate-field-component-types/basic.input.js +8 -0
- package/dist/transforms/migrate-field-component-types/basic.input.js.map +1 -0
- package/dist/transforms/migrate-field-component-types/basic.output.js +8 -0
- package/dist/transforms/migrate-field-component-types/basic.output.js.map +1 -0
- package/dist/transforms/migrate-field-component-types/index.d.ts +3 -0
- package/dist/transforms/migrate-field-component-types/index.d.ts.map +1 -0
- package/dist/transforms/migrate-field-component-types/index.js +620 -0
- package/dist/transforms/migrate-field-component-types/index.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/aliases.input.js +8 -0
- package/dist/transforms/migrate-payload-request-creation/aliases.input.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/aliases.output.js +31 -0
- package/dist/transforms/migrate-payload-request-creation/aliases.output.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/collision.input.js +9 -0
- package/dist/transforms/migrate-payload-request-creation/collision.input.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/comments.input.js +9 -0
- package/dist/transforms/migrate-payload-request-creation/comments.input.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/comments.output.js +34 -0
- package/dist/transforms/migrate-payload-request-creation/comments.output.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/empty.input.js +5 -0
- package/dist/transforms/migrate-payload-request-creation/empty.input.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/empty.output.js +7 -0
- package/dist/transforms/migrate-payload-request-creation/empty.output.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/evaluation-order.input.js +10 -0
- package/dist/transforms/migrate-payload-request-creation/evaluation-order.input.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/expression.input.js +8 -0
- package/dist/transforms/migrate-payload-request-creation/expression.input.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/expression.output.js +8 -0
- package/dist/transforms/migrate-payload-request-creation/expression.output.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/getters.input.js +52 -0
- package/dist/transforms/migrate-payload-request-creation/getters.input.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/index.d.ts +3 -0
- package/dist/transforms/migrate-payload-request-creation/index.d.ts.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/index.js +236 -0
- package/dist/transforms/migrate-payload-request-creation/index.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/internal.input.js +6 -0
- package/dist/transforms/migrate-payload-request-creation/internal.input.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/internal.output.js +6 -0
- package/dist/transforms/migrate-payload-request-creation/internal.output.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/non-matching.input.js +5 -0
- package/dist/transforms/migrate-payload-request-creation/non-matching.input.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/populated.input.js +7 -0
- package/dist/transforms/migrate-payload-request-creation/populated.input.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/populated.output.js +30 -0
- package/dist/transforms/migrate-payload-request-creation/populated.output.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/shadowed.input.js +7 -0
- package/dist/transforms/migrate-payload-request-creation/shadowed.input.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/shadowed.output.js +9 -0
- package/dist/transforms/migrate-payload-request-creation/shadowed.output.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/shorthand.input.js +12 -0
- package/dist/transforms/migrate-payload-request-creation/shorthand.input.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/shorthand.output.js +12 -0
- package/dist/transforms/migrate-payload-request-creation/shorthand.output.js.map +1 -0
- package/dist/transforms/migrate-payload-request-creation/unsupported.input.js +9 -0
- package/dist/transforms/migrate-payload-request-creation/unsupported.input.js.map +1 -0
- package/dist/transforms/migrate-sharp-to-transformer/basic.input.js +28 -0
- package/dist/transforms/migrate-sharp-to-transformer/basic.input.js.map +1 -0
- package/dist/transforms/migrate-sharp-to-transformer/basic.output.js +39 -0
- package/dist/transforms/migrate-sharp-to-transformer/basic.output.js.map +1 -0
- package/dist/transforms/migrate-sharp-to-transformer/existing-transformers.input.js +27 -0
- package/dist/transforms/migrate-sharp-to-transformer/existing-transformers.input.js.map +1 -0
- package/dist/transforms/migrate-sharp-to-transformer/existing-transformers.output.js +33 -0
- package/dist/transforms/migrate-sharp-to-transformer/existing-transformers.output.js.map +1 -0
- package/dist/transforms/migrate-sharp-to-transformer/index.d.ts +3 -0
- package/dist/transforms/migrate-sharp-to-transformer/index.d.ts.map +1 -0
- package/dist/transforms/migrate-sharp-to-transformer/index.js +430 -0
- package/dist/transforms/migrate-sharp-to-transformer/index.js.map +1 -0
- package/dist/transforms/migrate-sharp-to-transformer/no-match.input.js +11 -0
- package/dist/transforms/migrate-sharp-to-transformer/no-match.input.js.map +1 -0
- package/dist/transforms/migrate-sharp-to-transformer/no-match.output.js +11 -0
- package/dist/transforms/migrate-sharp-to-transformer/no-match.output.js.map +1 -0
- package/dist/transforms/migrate-versions-default/index.js +5 -5
- package/dist/transforms/migrate-versions-default/index.js.map +1 -1
- package/dist/transforms/remove-default-locale-publish-option/all-value.input.js +13 -0
- package/dist/transforms/remove-default-locale-publish-option/all-value.input.js.map +1 -0
- package/dist/transforms/remove-default-locale-publish-option/basic.input.js +13 -0
- package/dist/transforms/remove-default-locale-publish-option/basic.input.js.map +1 -0
- package/dist/transforms/remove-default-locale-publish-option/basic.output.js +12 -0
- package/dist/transforms/remove-default-locale-publish-option/basic.output.js.map +1 -0
- package/dist/transforms/remove-default-locale-publish-option/dynamic.input.js +17 -0
- package/dist/transforms/remove-default-locale-publish-option/dynamic.input.js.map +1 -0
- package/dist/transforms/remove-default-locale-publish-option/index.d.ts +10 -0
- package/dist/transforms/remove-default-locale-publish-option/index.d.ts.map +1 -0
- package/dist/transforms/remove-default-locale-publish-option/index.js +103 -0
- package/dist/transforms/remove-default-locale-publish-option/index.js.map +1 -0
- package/dist/transforms/remove-default-locale-publish-option/no-match.input.js +10 -0
- package/dist/transforms/remove-default-locale-publish-option/no-match.input.js.map +1 -0
- package/dist/transforms/remove-default-locale-publish-option/no-match.output.js +10 -0
- package/dist/transforms/remove-default-locale-publish-option/no-match.output.js.map +1 -0
- package/dist/transforms/remove-default-locale-publish-option/reassigned.input.js +22 -0
- package/dist/transforms/remove-default-locale-publish-option/reassigned.input.js.map +1 -0
- package/dist/transforms/remove-default-locale-publish-option/shorthand.input.js +14 -0
- package/dist/transforms/remove-default-locale-publish-option/shorthand.input.js.map +1 -0
- package/dist/transforms/remove-default-locale-publish-option/shorthand.output.js +13 -0
- package/dist/transforms/remove-default-locale-publish-option/shorthand.output.js.map +1 -0
- package/dist/transforms/remove-publish-specific-locale/index.d.ts.map +1 -1
- package/dist/transforms/remove-publish-specific-locale/index.js.map +1 -1
- package/dist/transforms/remove-storage-always-insert-fields/aliased.input.js +11 -0
- package/dist/transforms/remove-storage-always-insert-fields/aliased.input.js.map +1 -0
- package/dist/transforms/remove-storage-always-insert-fields/aliased.output.js +10 -0
- package/dist/transforms/remove-storage-always-insert-fields/aliased.output.js.map +1 -0
- package/dist/transforms/remove-storage-always-insert-fields/basic.input.js +54 -0
- package/dist/transforms/remove-storage-always-insert-fields/basic.input.js.map +1 -0
- package/dist/transforms/remove-storage-always-insert-fields/basic.output.js +48 -0
- package/dist/transforms/remove-storage-always-insert-fields/basic.output.js.map +1 -0
- package/dist/transforms/remove-storage-always-insert-fields/index.d.ts +3 -0
- package/dist/transforms/remove-storage-always-insert-fields/index.d.ts.map +1 -0
- package/dist/transforms/remove-storage-always-insert-fields/index.js +75 -0
- package/dist/transforms/remove-storage-always-insert-fields/index.js.map +1 -0
- package/dist/transforms/remove-storage-always-insert-fields/no-match.input.js +27 -0
- package/dist/transforms/remove-storage-always-insert-fields/no-match.input.js.map +1 -0
- package/dist/transforms/remove-storage-always-insert-fields/no-match.output.js +27 -0
- package/dist/transforms/remove-storage-always-insert-fields/no-match.output.js.map +1 -0
- package/dist/transforms/remove-versions-true/index.js +4 -4
- package/dist/transforms/remove-versions-true/index.js.map +1 -1
- package/dist/transforms/rename-experimental-table-feature/alias.input.js +6 -0
- package/dist/transforms/rename-experimental-table-feature/alias.input.js.map +1 -0
- package/dist/transforms/rename-experimental-table-feature/alias.output.js +6 -0
- package/dist/transforms/rename-experimental-table-feature/alias.output.js.map +1 -0
- package/dist/transforms/rename-experimental-table-feature/basic.input.js +19 -0
- package/dist/transforms/rename-experimental-table-feature/basic.input.js.map +1 -0
- package/dist/transforms/rename-experimental-table-feature/basic.output.js +19 -0
- package/dist/transforms/rename-experimental-table-feature/basic.output.js.map +1 -0
- package/dist/transforms/rename-experimental-table-feature/collision.input.js +7 -0
- package/dist/transforms/rename-experimental-table-feature/collision.input.js.map +1 -0
- package/dist/transforms/rename-experimental-table-feature/index.d.ts +3 -0
- package/dist/transforms/rename-experimental-table-feature/index.d.ts.map +1 -0
- package/dist/transforms/rename-experimental-table-feature/index.js +50 -0
- package/dist/transforms/rename-experimental-table-feature/index.js.map +1 -0
- package/dist/transforms/rename-experimental-table-feature/no-match.input.js +9 -0
- package/dist/transforms/rename-experimental-table-feature/no-match.input.js.map +1 -0
- package/dist/upgrade/defaultTag.d.ts +9 -0
- package/dist/upgrade/defaultTag.d.ts.map +1 -0
- package/dist/upgrade/defaultTag.js +25 -0
- package/dist/upgrade/defaultTag.js.map +1 -0
- package/dist/upgrade/detectPackageManager.d.ts +8 -0
- package/dist/upgrade/detectPackageManager.d.ts.map +1 -0
- package/dist/upgrade/detectPackageManager.js +38 -0
- package/dist/upgrade/detectPackageManager.js.map +1 -0
- package/dist/upgrade/dispatch.d.ts +38 -0
- package/dist/upgrade/dispatch.d.ts.map +1 -0
- package/dist/upgrade/dispatch.js +132 -0
- package/dist/upgrade/dispatch.js.map +1 -0
- package/dist/upgrade/index.d.ts +25 -0
- package/dist/upgrade/index.d.ts.map +1 -0
- package/dist/upgrade/index.js +209 -0
- package/dist/upgrade/index.js.map +1 -0
- package/dist/upgrade/prompt.d.ts +14 -0
- package/dist/upgrade/prompt.d.ts.map +1 -0
- package/dist/upgrade/prompt.js +77 -0
- package/dist/upgrade/prompt.js.map +1 -0
- package/dist/upgrade/report.d.ts +21 -0
- package/dist/upgrade/report.d.ts.map +1 -0
- package/dist/upgrade/report.js +47 -0
- package/dist/upgrade/report.js.map +1 -0
- package/dist/upgrade/resolveVersions.d.ts +13 -0
- package/dist/upgrade/resolveVersions.d.ts.map +1 -0
- package/dist/upgrade/resolveVersions.js +55 -0
- package/dist/upgrade/resolveVersions.js.map +1 -0
- package/dist/upgrade/rewritePackageJson.d.ts +32 -0
- package/dist/upgrade/rewritePackageJson.d.ts.map +1 -0
- package/dist/upgrade/rewritePackageJson.js +164 -0
- package/dist/upgrade/rewritePackageJson.js.map +1 -0
- package/dist/upgrade/runInstall.d.ts +16 -0
- package/dist/upgrade/runInstall.d.ts.map +1 -0
- package/dist/upgrade/runInstall.js +17 -0
- package/dist/upgrade/runInstall.js.map +1 -0
- package/dist/upgrade/selectAgent.d.ts +45 -0
- package/dist/upgrade/selectAgent.d.ts.map +1 -0
- package/dist/upgrade/selectAgent.js +54 -0
- package/dist/upgrade/selectAgent.js.map +1 -0
- package/dist/upgrade/selfCommand.d.ts +13 -0
- package/dist/upgrade/selfCommand.d.ts.map +1 -0
- package/dist/upgrade/selfCommand.js +17 -0
- package/dist/upgrade/selfCommand.js.map +1 -0
- package/dist/upgrade/types.d.ts +47 -0
- package/dist/upgrade/types.d.ts.map +1 -0
- package/dist/upgrade/types.js +11 -0
- package/dist/upgrade/types.js.map +1 -0
- package/dist/utils/project.d.ts +10 -0
- package/dist/utils/project.d.ts.map +1 -0
- package/dist/utils/project.js +43 -0
- package/dist/utils/project.js.map +1 -0
- package/package.json +9 -5
- package/dist/cli.parseFlags.spec.d.ts +0 -2
- package/dist/cli.parseFlags.spec.d.ts.map +0 -1
- package/dist/cli.parseFlags.spec.js +0 -49
- package/dist/cli.parseFlags.spec.js.map +0 -1
- package/dist/runner.spec.d.ts +0 -2
- package/dist/runner.spec.d.ts.map +0 -1
- package/dist/runner.spec.js +0 -88
- package/dist/runner.spec.js.map +0 -1
- package/dist/transforms/example-noop/index.spec.d.ts +0 -2
- package/dist/transforms/example-noop/index.spec.d.ts.map +0 -1
- package/dist/transforms/example-noop/index.spec.js +0 -29
- package/dist/transforms/example-noop/index.spec.js.map +0 -1
- package/dist/transforms/globals-components-edit/index.spec.d.ts +0 -2
- package/dist/transforms/globals-components-edit/index.spec.d.ts.map +0 -1
- package/dist/transforms/globals-components-edit/index.spec.js +0 -37
- package/dist/transforms/globals-components-edit/index.spec.js.map +0 -1
- package/dist/transforms/migrate-after-operation-read/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-after-operation-read/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-after-operation-read/index.spec.js +0 -62
- package/dist/transforms/migrate-after-operation-read/index.spec.js.map +0 -1
- package/dist/transforms/migrate-aliased-exports/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-aliased-exports/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-aliased-exports/index.spec.js +0 -55
- package/dist/transforms/migrate-aliased-exports/index.spec.js.map +0 -1
- package/dist/transforms/migrate-azure-chunk-large-files/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-azure-chunk-large-files/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-azure-chunk-large-files/index.spec.js +0 -67
- package/dist/transforms/migrate-azure-chunk-large-files/index.spec.js.map +0 -1
- package/dist/transforms/migrate-block-references-to-blocks/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-block-references-to-blocks/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-block-references-to-blocks/index.spec.js +0 -45
- package/dist/transforms/migrate-block-references-to-blocks/index.spec.js.map +0 -1
- package/dist/transforms/migrate-build-script/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-build-script/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-build-script/index.spec.js +0 -81
- package/dist/transforms/migrate-build-script/index.spec.js.map +0 -1
- package/dist/transforms/migrate-db-types-subpath/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-db-types-subpath/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-db-types-subpath/index.spec.js +0 -46
- package/dist/transforms/migrate-db-types-subpath/index.spec.js.map +0 -1
- package/dist/transforms/migrate-disabled-fields/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-disabled-fields/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-disabled-fields/index.spec.js +0 -73
- package/dist/transforms/migrate-disabled-fields/index.spec.js.map +0 -1
- package/dist/transforms/migrate-document-title-context/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-document-title-context/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-document-title-context/index.spec.js +0 -86
- package/dist/transforms/migrate-document-title-context/index.spec.js.map +0 -1
- package/dist/transforms/migrate-force-select/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-force-select/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-force-select/index.spec.js +0 -107
- package/dist/transforms/migrate-force-select/index.spec.js.map +0 -1
- package/dist/transforms/migrate-hide-api-url/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-hide-api-url/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-hide-api-url/index.spec.js +0 -118
- package/dist/transforms/migrate-hide-api-url/index.spec.js.map +0 -1
- package/dist/transforms/migrate-import-export-hooks/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-import-export-hooks/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-import-export-hooks/index.spec.js +0 -65
- package/dist/transforms/migrate-import-export-hooks/index.spec.js.map +0 -1
- package/dist/transforms/migrate-list-view-select-api/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-list-view-select-api/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-list-view-select-api/index.spec.js +0 -37
- package/dist/transforms/migrate-list-view-select-api/index.spec.js.map +0 -1
- package/dist/transforms/migrate-next-generate-viewport-export/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-next-generate-viewport-export/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-next-generate-viewport-export/index.spec.js +0 -41
- package/dist/transforms/migrate-next-generate-viewport-export/index.spec.js.map +0 -1
- package/dist/transforms/migrate-next-subpath-exports/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-next-subpath-exports/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-next-subpath-exports/index.spec.js +0 -46
- package/dist/transforms/migrate-next-subpath-exports/index.spec.js.map +0 -1
- package/dist/transforms/migrate-slug-field/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-slug-field/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-slug-field/index.spec.js +0 -47
- package/dist/transforms/migrate-slug-field/index.spec.js.map +0 -1
- package/dist/transforms/migrate-storage-adapters-to-config/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-storage-adapters-to-config/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-storage-adapters-to-config/index.spec.js +0 -85
- package/dist/transforms/migrate-storage-adapters-to-config/index.spec.js.map +0 -1
- package/dist/transforms/migrate-versions-default/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-versions-default/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-versions-default/index.spec.js +0 -81
- package/dist/transforms/migrate-versions-default/index.spec.js.map +0 -1
- package/dist/transforms/remove-group-by-true/index.spec.d.ts +0 -2
- package/dist/transforms/remove-group-by-true/index.spec.d.ts.map +0 -1
- package/dist/transforms/remove-group-by-true/index.spec.js +0 -47
- package/dist/transforms/remove-group-by-true/index.spec.js.map +0 -1
- package/dist/transforms/remove-localize-status-config/index.spec.d.ts +0 -2
- package/dist/transforms/remove-localize-status-config/index.spec.d.ts.map +0 -1
- package/dist/transforms/remove-localize-status-config/index.spec.js +0 -38
- package/dist/transforms/remove-localize-status-config/index.spec.js.map +0 -1
- package/dist/transforms/remove-publish-specific-locale/index.spec.d.ts +0 -2
- package/dist/transforms/remove-publish-specific-locale/index.spec.d.ts.map +0 -1
- package/dist/transforms/remove-publish-specific-locale/index.spec.js +0 -47
- package/dist/transforms/remove-publish-specific-locale/index.spec.js.map +0 -1
- package/dist/transforms/remove-versions-true/index.spec.d.ts +0 -2
- package/dist/transforms/remove-versions-true/index.spec.d.ts.map +0 -1
- package/dist/transforms/remove-versions-true/index.spec.js +0 -38
- package/dist/transforms/remove-versions-true/index.spec.js.map +0 -1
- package/dist/transforms/rename-storage-adapters-to-storage/index.spec.d.ts +0 -2
- package/dist/transforms/rename-storage-adapters-to-storage/index.spec.d.ts.map +0 -1
- package/dist/transforms/rename-storage-adapters-to-storage/index.spec.js +0 -55
- package/dist/transforms/rename-storage-adapters-to-storage/index.spec.js.map +0 -1
- package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.d.ts +0 -2
- package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.d.ts.map +0 -1
- package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.js +0 -45
- package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.js.map +0 -1
- package/dist/utils/packageJson.spec.d.ts +0 -2
- package/dist/utils/packageJson.spec.d.ts.map +0 -1
- package/dist/utils/packageJson.spec.js +0 -41
- package/dist/utils/packageJson.spec.js.map +0 -1
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import semver from 'semver';
|
|
2
|
+
const DEP_FIELDS = [
|
|
3
|
+
'dependencies',
|
|
4
|
+
'devDependencies'
|
|
5
|
+
];
|
|
6
|
+
/** Any protocol-prefixed specifier (`workspace:*`, `catalog:`, `link:`, `file:`, `npm:`, a URL). */ const PLACEHOLDER_SPEC = /^[a-z][a-z0-9+.-]*:/i;
|
|
7
|
+
export const isPayloadPackage = (name)=>name === 'payload' || name.startsWith('@payloadcms/');
|
|
8
|
+
/**
|
|
9
|
+
* The `@payloadcms/eslint-*` packages are versioned independently of the core
|
|
10
|
+
* payload packages, so they are tracked on `latest` rather than lockstep-pinned.
|
|
11
|
+
*/ export const isPayloadEslintPackage = (name)=>name.startsWith('@payloadcms/eslint');
|
|
12
|
+
/**
|
|
13
|
+
* A dependency whose version is resolved by the package manager, not a semver
|
|
14
|
+
* range: `workspace:*`, `catalog:`, `link:`, `file:`, `npm:` aliases, URLs.
|
|
15
|
+
* Overwriting one with an exact version would break the link, so it is left as-is.
|
|
16
|
+
*/ export const isPlaceholderSpec = (spec)=>typeof spec === 'string' && PLACEHOLDER_SPEC.test(spec);
|
|
17
|
+
/**
|
|
18
|
+
* Mutate `data` in place for a v4 upgrade: exact-pin payload packages, drop
|
|
19
|
+
* payload dependency overrides, and write the toolchain floors. Never touches
|
|
20
|
+
* next/react — the Next.js upgrade is delegated to Next's own workflow.
|
|
21
|
+
* Returns a summary for the report. Idempotent.
|
|
22
|
+
*/ export function rewritePackageJson({ data, resolved }) {
|
|
23
|
+
const { pinnedPayload, placeholdersSkipped } = pinPayloadPackages(data, resolved.payloadVersion);
|
|
24
|
+
const overridesRemoved = removePayloadOverrides(data);
|
|
25
|
+
const floorsWritten = writeFloors(data, resolved);
|
|
26
|
+
return {
|
|
27
|
+
floorsWritten,
|
|
28
|
+
overridesRemoved,
|
|
29
|
+
pinnedPayload,
|
|
30
|
+
placeholdersSkipped
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function pinPayloadPackages(data, version) {
|
|
34
|
+
const pinned = [];
|
|
35
|
+
const skipped = [];
|
|
36
|
+
for (const field of DEP_FIELDS){
|
|
37
|
+
const deps = data[field];
|
|
38
|
+
if (!isRecord(deps)) {
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
for (const name of Object.keys(deps)){
|
|
42
|
+
if (!isPayloadPackage(name)) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
// A workspace/catalog/link spec resolves itself; pinning it breaks the link.
|
|
46
|
+
if (isPlaceholderSpec(deps[name])) {
|
|
47
|
+
skipped.push(name);
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (isPayloadEslintPackage(name)) {
|
|
51
|
+
deps[name] = 'latest';
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
deps[name] = version;
|
|
55
|
+
pinned.push(name);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
pinnedPayload: pinned,
|
|
60
|
+
placeholdersSkipped: skipped
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function removePayloadOverrides(data) {
|
|
64
|
+
const removed = [];
|
|
65
|
+
const pnpm = data.pnpm;
|
|
66
|
+
if (isRecord(pnpm) && isRecord(pnpm.overrides)) {
|
|
67
|
+
pruneOverrideBlock(pnpm.overrides, 'pnpm.overrides', removed);
|
|
68
|
+
if (Object.keys(pnpm.overrides).length === 0) {
|
|
69
|
+
delete pnpm.overrides;
|
|
70
|
+
}
|
|
71
|
+
if (Object.keys(pnpm).length === 0) {
|
|
72
|
+
delete data.pnpm;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
for (const key of [
|
|
76
|
+
'overrides',
|
|
77
|
+
'resolutions'
|
|
78
|
+
]){
|
|
79
|
+
const block = data[key];
|
|
80
|
+
if (isRecord(block)) {
|
|
81
|
+
pruneOverrideBlock(block, key, removed);
|
|
82
|
+
if (Object.keys(block).length === 0) {
|
|
83
|
+
delete data[key];
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return removed;
|
|
88
|
+
}
|
|
89
|
+
function pruneOverrideBlock(block, label, removed) {
|
|
90
|
+
for (const name of Object.keys(block)){
|
|
91
|
+
if (isPayloadPackage(name)) {
|
|
92
|
+
delete block[name];
|
|
93
|
+
removed.push(`${label}.${name}`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function writeFloors(data, resolved) {
|
|
98
|
+
const written = [];
|
|
99
|
+
if (writeDepFloor({
|
|
100
|
+
name: 'typescript',
|
|
101
|
+
data,
|
|
102
|
+
floor: resolved.typescript
|
|
103
|
+
})) {
|
|
104
|
+
written.push('typescript');
|
|
105
|
+
}
|
|
106
|
+
if (writeDepFloor({
|
|
107
|
+
name: '@types/node',
|
|
108
|
+
data,
|
|
109
|
+
floor: resolved.typesNode
|
|
110
|
+
})) {
|
|
111
|
+
written.push('@types/node');
|
|
112
|
+
}
|
|
113
|
+
const engines = isRecord(data.engines) ? data.engines : {};
|
|
114
|
+
if (engines.node === undefined || isBelowFloor({
|
|
115
|
+
floor: resolved.enginesNode,
|
|
116
|
+
spec: engines.node
|
|
117
|
+
})) {
|
|
118
|
+
engines.node = resolved.enginesNode;
|
|
119
|
+
data.engines = engines;
|
|
120
|
+
written.push('engines.node');
|
|
121
|
+
}
|
|
122
|
+
return written;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Raise a dep to `floor` wherever it already lives, else add it to devDependencies.
|
|
126
|
+
* Placeholder specs, non-semver specs (e.g. `latest`), and ranges already at or
|
|
127
|
+
* above the floor are left as-is. Returns whether the dep was written.
|
|
128
|
+
*/ function writeDepFloor({ name, data, floor }) {
|
|
129
|
+
for (const field of DEP_FIELDS){
|
|
130
|
+
const deps = data[field];
|
|
131
|
+
if (!isRecord(deps) || !(name in deps)) {
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
const spec = deps[name];
|
|
135
|
+
if (isPlaceholderSpec(spec) || !isBelowFloor({
|
|
136
|
+
floor,
|
|
137
|
+
spec
|
|
138
|
+
})) {
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
141
|
+
deps[name] = floor;
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
144
|
+
const devDeps = isRecord(data.devDependencies) ? data.devDependencies : {};
|
|
145
|
+
devDeps[name] = floor;
|
|
146
|
+
data.devDependencies = devDeps;
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
/** True only when `spec` is a semver range whose lowest version is below the floor's. */ function isBelowFloor({ floor, spec }) {
|
|
150
|
+
if (typeof spec !== 'string' || !semver.validRange(spec)) {
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
const specMin = semver.minVersion(spec);
|
|
154
|
+
const floorMin = semver.minVersion(floor);
|
|
155
|
+
if (!specMin || !floorMin) {
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
return semver.lt(specMin, floorMin);
|
|
159
|
+
}
|
|
160
|
+
function isRecord(value) {
|
|
161
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
//# sourceMappingURL=rewritePackageJson.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/upgrade/rewritePackageJson.ts"],"sourcesContent":["import semver from 'semver'\n\nimport type { ResolvedVersions } from './types.js'\n\ntype RewriteArgs = {\n data: Record<string, unknown>\n resolved: ResolvedVersions\n}\n\nexport type RewriteSummary = {\n floorsWritten: string[]\n overridesRemoved: string[]\n pinnedPayload: string[]\n placeholdersSkipped: string[]\n}\n\nconst DEP_FIELDS = ['dependencies', 'devDependencies'] as const\n\n/** Any protocol-prefixed specifier (`workspace:*`, `catalog:`, `link:`, `file:`, `npm:`, a URL). */\nconst PLACEHOLDER_SPEC = /^[a-z][a-z0-9+.-]*:/i\n\nexport const isPayloadPackage = (name: string): boolean =>\n name === 'payload' || name.startsWith('@payloadcms/')\n\n/**\n * The `@payloadcms/eslint-*` packages are versioned independently of the core\n * payload packages, so they are tracked on `latest` rather than lockstep-pinned.\n */\nexport const isPayloadEslintPackage = (name: string): boolean =>\n name.startsWith('@payloadcms/eslint')\n\n/**\n * A dependency whose version is resolved by the package manager, not a semver\n * range: `workspace:*`, `catalog:`, `link:`, `file:`, `npm:` aliases, URLs.\n * Overwriting one with an exact version would break the link, so it is left as-is.\n */\nexport const isPlaceholderSpec = (spec: unknown): boolean =>\n typeof spec === 'string' && PLACEHOLDER_SPEC.test(spec)\n\n/**\n * Mutate `data` in place for a v4 upgrade: exact-pin payload packages, drop\n * payload dependency overrides, and write the toolchain floors. Never touches\n * next/react — the Next.js upgrade is delegated to Next's own workflow.\n * Returns a summary for the report. Idempotent.\n */\nexport function rewritePackageJson({ data, resolved }: RewriteArgs): RewriteSummary {\n const { pinnedPayload, placeholdersSkipped } = pinPayloadPackages(data, resolved.payloadVersion)\n const overridesRemoved = removePayloadOverrides(data)\n const floorsWritten = writeFloors(data, resolved)\n return { floorsWritten, overridesRemoved, pinnedPayload, placeholdersSkipped }\n}\n\nfunction pinPayloadPackages(\n data: Record<string, unknown>,\n version: string,\n): { pinnedPayload: string[]; placeholdersSkipped: string[] } {\n const pinned: string[] = []\n const skipped: string[] = []\n for (const field of DEP_FIELDS) {\n const deps = data[field]\n if (!isRecord(deps)) {\n continue\n }\n for (const name of Object.keys(deps)) {\n if (!isPayloadPackage(name)) {\n continue\n }\n // A workspace/catalog/link spec resolves itself; pinning it breaks the link.\n if (isPlaceholderSpec(deps[name])) {\n skipped.push(name)\n continue\n }\n if (isPayloadEslintPackage(name)) {\n deps[name] = 'latest'\n continue\n }\n deps[name] = version\n pinned.push(name)\n }\n }\n return { pinnedPayload: pinned, placeholdersSkipped: skipped }\n}\n\nfunction removePayloadOverrides(data: Record<string, unknown>): string[] {\n const removed: string[] = []\n\n const pnpm = data.pnpm\n if (isRecord(pnpm) && isRecord(pnpm.overrides)) {\n pruneOverrideBlock(pnpm.overrides, 'pnpm.overrides', removed)\n if (Object.keys(pnpm.overrides).length === 0) {\n delete pnpm.overrides\n }\n if (Object.keys(pnpm).length === 0) {\n delete data.pnpm\n }\n }\n\n for (const key of ['overrides', 'resolutions'] as const) {\n const block = data[key]\n if (isRecord(block)) {\n pruneOverrideBlock(block, key, removed)\n if (Object.keys(block).length === 0) {\n delete data[key]\n }\n }\n }\n\n return removed\n}\n\nfunction pruneOverrideBlock(\n block: Record<string, unknown>,\n label: string,\n removed: string[],\n): void {\n for (const name of Object.keys(block)) {\n if (isPayloadPackage(name)) {\n delete block[name]\n removed.push(`${label}.${name}`)\n }\n }\n}\n\nfunction writeFloors(data: Record<string, unknown>, resolved: ResolvedVersions): string[] {\n const written: string[] = []\n if (writeDepFloor({ name: 'typescript', data, floor: resolved.typescript })) {\n written.push('typescript')\n }\n if (writeDepFloor({ name: '@types/node', data, floor: resolved.typesNode })) {\n written.push('@types/node')\n }\n\n const engines = isRecord(data.engines) ? data.engines : {}\n if (\n engines.node === undefined ||\n isBelowFloor({ floor: resolved.enginesNode, spec: engines.node })\n ) {\n engines.node = resolved.enginesNode\n data.engines = engines\n written.push('engines.node')\n }\n\n return written\n}\n\n/**\n * Raise a dep to `floor` wherever it already lives, else add it to devDependencies.\n * Placeholder specs, non-semver specs (e.g. `latest`), and ranges already at or\n * above the floor are left as-is. Returns whether the dep was written.\n */\nfunction writeDepFloor({\n name,\n data,\n floor,\n}: {\n data: Record<string, unknown>\n floor: string\n name: string\n}): boolean {\n for (const field of DEP_FIELDS) {\n const deps = data[field]\n if (!isRecord(deps) || !(name in deps)) {\n continue\n }\n const spec = deps[name]\n if (isPlaceholderSpec(spec) || !isBelowFloor({ floor, spec })) {\n return false\n }\n deps[name] = floor\n return true\n }\n const devDeps = isRecord(data.devDependencies) ? data.devDependencies : {}\n devDeps[name] = floor\n data.devDependencies = devDeps\n return true\n}\n\n/** True only when `spec` is a semver range whose lowest version is below the floor's. */\nfunction isBelowFloor({ floor, spec }: { floor: string; spec: unknown }): boolean {\n if (typeof spec !== 'string' || !semver.validRange(spec)) {\n return false\n }\n const specMin = semver.minVersion(spec)\n const floorMin = semver.minVersion(floor)\n if (!specMin || !floorMin) {\n return false\n }\n return semver.lt(specMin, floorMin)\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n"],"names":["semver","DEP_FIELDS","PLACEHOLDER_SPEC","isPayloadPackage","name","startsWith","isPayloadEslintPackage","isPlaceholderSpec","spec","test","rewritePackageJson","data","resolved","pinnedPayload","placeholdersSkipped","pinPayloadPackages","payloadVersion","overridesRemoved","removePayloadOverrides","floorsWritten","writeFloors","version","pinned","skipped","field","deps","isRecord","Object","keys","push","removed","pnpm","overrides","pruneOverrideBlock","length","key","block","label","written","writeDepFloor","floor","typescript","typesNode","engines","node","undefined","isBelowFloor","enginesNode","devDeps","devDependencies","validRange","specMin","minVersion","floorMin","lt","value","Array","isArray"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { PackageManager, Spawn } from './types.js';
|
|
2
|
+
type RunInstallArgs = {
|
|
3
|
+
packageManager: PackageManager;
|
|
4
|
+
path: string;
|
|
5
|
+
spawn: Spawn;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Install dependencies with the detected package manager. `install` is the same
|
|
9
|
+
* subcommand across pnpm/npm/yarn/bun. Corepack's interactive download prompt is
|
|
10
|
+
* disabled so a non-interactive run cannot hang and abort the install.
|
|
11
|
+
*/
|
|
12
|
+
export declare function runInstall({ packageManager, path, spawn, }: RunInstallArgs): Promise<{
|
|
13
|
+
code: number;
|
|
14
|
+
}>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=runInstall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runInstall.d.ts","sourceRoot":"","sources":["../../src/upgrade/runInstall.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvD,KAAK,cAAc,GAAG;IACpB,cAAc,EAAE,cAAc,CAAA;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,cAAc,EACd,IAAI,EACJ,KAAK,GACN,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAK5C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Install dependencies with the detected package manager. `install` is the same
|
|
3
|
+
* subcommand across pnpm/npm/yarn/bun. Corepack's interactive download prompt is
|
|
4
|
+
* disabled so a non-interactive run cannot hang and abort the install.
|
|
5
|
+
*/ export function runInstall({ packageManager, path, spawn }) {
|
|
6
|
+
return spawn(packageManager, [
|
|
7
|
+
'install'
|
|
8
|
+
], {
|
|
9
|
+
cwd: path,
|
|
10
|
+
env: {
|
|
11
|
+
...process.env,
|
|
12
|
+
COREPACK_ENABLE_DOWNLOAD_PROMPT: '0'
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=runInstall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/upgrade/runInstall.ts"],"sourcesContent":["import type { PackageManager, Spawn } from './types.js'\n\ntype RunInstallArgs = {\n packageManager: PackageManager\n path: string\n spawn: Spawn\n}\n\n/**\n * Install dependencies with the detected package manager. `install` is the same\n * subcommand across pnpm/npm/yarn/bun. Corepack's interactive download prompt is\n * disabled so a non-interactive run cannot hang and abort the install.\n */\nexport function runInstall({\n packageManager,\n path,\n spawn,\n}: RunInstallArgs): Promise<{ code: number }> {\n return spawn(packageManager, ['install'], {\n cwd: path,\n env: { ...process.env, COREPACK_ENABLE_DOWNLOAD_PROMPT: '0' },\n })\n}\n"],"names":["runInstall","packageManager","path","spawn","cwd","env","process","COREPACK_ENABLE_DOWNLOAD_PROMPT"],"mappings":"AAQA;;;;CAIC,GACD,OAAO,SAASA,WAAW,EACzBC,cAAc,EACdC,IAAI,EACJC,KAAK,EACU;IACf,OAAOA,MAAMF,gBAAgB;QAAC;KAAU,EAAE;QACxCG,KAAKF;QACLG,KAAK;YAAE,GAAGC,QAAQD,GAAG;YAAEE,iCAAiC;QAAI;IAC9D;AACF"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export type AgentId = 'claude' | 'codex';
|
|
2
|
+
export type Agent = {
|
|
3
|
+
/** Executable expected on PATH. */
|
|
4
|
+
command: string;
|
|
5
|
+
id: AgentId;
|
|
6
|
+
/** Human label shown in the picker. */
|
|
7
|
+
label: string;
|
|
8
|
+
};
|
|
9
|
+
/** Coding agents the dispatcher can hand the orchestration prompt to. */
|
|
10
|
+
export declare const AGENTS: Agent[];
|
|
11
|
+
/**
|
|
12
|
+
* Hand the prompt to `agent`, run the mechanical slice here, or print the
|
|
13
|
+
* prompt to stdout for manual use.
|
|
14
|
+
*/
|
|
15
|
+
export type DispatchChoice = {
|
|
16
|
+
agent: Agent;
|
|
17
|
+
kind: 'agent';
|
|
18
|
+
} | {
|
|
19
|
+
kind: 'print';
|
|
20
|
+
} | {
|
|
21
|
+
kind: 'run';
|
|
22
|
+
};
|
|
23
|
+
export type SelectDispatchArgs = {
|
|
24
|
+
/** Value of `--agent`, if the user pinned one. */
|
|
25
|
+
agentFlag?: string;
|
|
26
|
+
/** Agents found on PATH. */
|
|
27
|
+
installed: Agent[];
|
|
28
|
+
/** Both stdin and stdout are a TTY, so a picker can run. */
|
|
29
|
+
isInteractive: boolean;
|
|
30
|
+
/** Interactive picker; only called when a choice is genuinely needed. */
|
|
31
|
+
prompt: (agents: Agent[]) => Promise<DispatchChoice>;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Decide how to dispatch the upgrade, kept pure so the branching is unit-tested
|
|
35
|
+
* without a terminal. `--agent` wins and is strict (unknown or not-installed
|
|
36
|
+
* throws). A non-interactive session falls back to printing the prompt. Any TTY
|
|
37
|
+
* opens the picker, which offers running the mechanical slice or printing even
|
|
38
|
+
* when no agent is installed.
|
|
39
|
+
*/
|
|
40
|
+
export declare function selectDispatch({ agentFlag, installed, isInteractive, prompt, }: SelectDispatchArgs): Promise<DispatchChoice>;
|
|
41
|
+
/** Filter the registry down to agents whose command resolves on PATH. */
|
|
42
|
+
export declare function detectInstalledAgents(isAvailable?: (command: string) => boolean): Agent[];
|
|
43
|
+
/** Cross-platform PATH probe using the OS command locator. */
|
|
44
|
+
export declare function isCommandAvailable(command: string): boolean;
|
|
45
|
+
//# sourceMappingURL=selectAgent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectAgent.d.ts","sourceRoot":"","sources":["../../src/upgrade/selectAgent.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;AAExC,MAAM,MAAM,KAAK,GAAG;IAClB,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,EAAE,EAAE,OAAO,CAAA;IACX,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,yEAAyE;AACzE,eAAO,MAAM,MAAM,EAAE,KAAK,EAGzB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAA;AAElG,MAAM,MAAM,kBAAkB,GAAG;IAC/B,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4BAA4B;IAC5B,SAAS,EAAE,KAAK,EAAE,CAAA;IAClB,4DAA4D;IAC5D,aAAa,EAAE,OAAO,CAAA;IACtB,yEAAyE;IACzE,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;CACrD,CAAA;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,EACnC,SAAS,EACT,SAAS,EACT,aAAa,EACb,MAAM,GACP,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAqB9C;AAED,yEAAyE;AACzE,wBAAgB,qBAAqB,CACnC,WAAW,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAA4B,GAC7D,KAAK,EAAE,CAET;AAED,8DAA8D;AAC9D,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAI3D"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { spawnSync } from 'node:child_process';
|
|
2
|
+
/** Coding agents the dispatcher can hand the orchestration prompt to. */ export const AGENTS = [
|
|
3
|
+
{
|
|
4
|
+
id: 'claude',
|
|
5
|
+
command: 'claude',
|
|
6
|
+
label: 'Claude Code'
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
id: 'codex',
|
|
10
|
+
command: 'codex',
|
|
11
|
+
label: 'Codex'
|
|
12
|
+
}
|
|
13
|
+
];
|
|
14
|
+
/**
|
|
15
|
+
* Decide how to dispatch the upgrade, kept pure so the branching is unit-tested
|
|
16
|
+
* without a terminal. `--agent` wins and is strict (unknown or not-installed
|
|
17
|
+
* throws). A non-interactive session falls back to printing the prompt. Any TTY
|
|
18
|
+
* opens the picker, which offers running the mechanical slice or printing even
|
|
19
|
+
* when no agent is installed.
|
|
20
|
+
*/ export async function selectDispatch({ agentFlag, installed, isInteractive, prompt }) {
|
|
21
|
+
if (agentFlag) {
|
|
22
|
+
const known = AGENTS.find((a)=>a.id === agentFlag);
|
|
23
|
+
if (!known) {
|
|
24
|
+
throw new Error(`Unknown agent "${agentFlag}". Supported: ${AGENTS.map((a)=>a.id).join(', ')}.`);
|
|
25
|
+
}
|
|
26
|
+
if (!installed.some((a)=>a.id === known.id)) {
|
|
27
|
+
throw new Error(`Agent "${agentFlag}" is not installed (command "${known.command}" not found).`);
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
agent: known,
|
|
31
|
+
kind: 'agent'
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
if (!isInteractive) {
|
|
35
|
+
return {
|
|
36
|
+
kind: 'print'
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return prompt(installed);
|
|
40
|
+
}
|
|
41
|
+
/** Filter the registry down to agents whose command resolves on PATH. */ export function detectInstalledAgents(isAvailable = isCommandAvailable) {
|
|
42
|
+
return AGENTS.filter((agent)=>isAvailable(agent.command));
|
|
43
|
+
}
|
|
44
|
+
/** Cross-platform PATH probe using the OS command locator. */ export function isCommandAvailable(command) {
|
|
45
|
+
const locator = process.platform === 'win32' ? 'where' : 'which';
|
|
46
|
+
const result = spawnSync(locator, [
|
|
47
|
+
command
|
|
48
|
+
], {
|
|
49
|
+
stdio: 'ignore'
|
|
50
|
+
});
|
|
51
|
+
return result.status === 0;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
//# sourceMappingURL=selectAgent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/upgrade/selectAgent.ts"],"sourcesContent":["import { spawnSync } from 'node:child_process'\n\nexport type AgentId = 'claude' | 'codex'\n\nexport type Agent = {\n /** Executable expected on PATH. */\n command: string\n id: AgentId\n /** Human label shown in the picker. */\n label: string\n}\n\n/** Coding agents the dispatcher can hand the orchestration prompt to. */\nexport const AGENTS: Agent[] = [\n { id: 'claude', command: 'claude', label: 'Claude Code' },\n { id: 'codex', command: 'codex', label: 'Codex' },\n]\n\n/**\n * Hand the prompt to `agent`, run the mechanical slice here, or print the\n * prompt to stdout for manual use.\n */\nexport type DispatchChoice = { agent: Agent; kind: 'agent' } | { kind: 'print' } | { kind: 'run' }\n\nexport type SelectDispatchArgs = {\n /** Value of `--agent`, if the user pinned one. */\n agentFlag?: string\n /** Agents found on PATH. */\n installed: Agent[]\n /** Both stdin and stdout are a TTY, so a picker can run. */\n isInteractive: boolean\n /** Interactive picker; only called when a choice is genuinely needed. */\n prompt: (agents: Agent[]) => Promise<DispatchChoice>\n}\n\n/**\n * Decide how to dispatch the upgrade, kept pure so the branching is unit-tested\n * without a terminal. `--agent` wins and is strict (unknown or not-installed\n * throws). A non-interactive session falls back to printing the prompt. Any TTY\n * opens the picker, which offers running the mechanical slice or printing even\n * when no agent is installed.\n */\nexport async function selectDispatch({\n agentFlag,\n installed,\n isInteractive,\n prompt,\n}: SelectDispatchArgs): Promise<DispatchChoice> {\n if (agentFlag) {\n const known = AGENTS.find((a) => a.id === agentFlag)\n if (!known) {\n throw new Error(\n `Unknown agent \"${agentFlag}\". Supported: ${AGENTS.map((a) => a.id).join(', ')}.`,\n )\n }\n if (!installed.some((a) => a.id === known.id)) {\n throw new Error(\n `Agent \"${agentFlag}\" is not installed (command \"${known.command}\" not found).`,\n )\n }\n return { agent: known, kind: 'agent' }\n }\n\n if (!isInteractive) {\n return { kind: 'print' }\n }\n\n return prompt(installed)\n}\n\n/** Filter the registry down to agents whose command resolves on PATH. */\nexport function detectInstalledAgents(\n isAvailable: (command: string) => boolean = isCommandAvailable,\n): Agent[] {\n return AGENTS.filter((agent) => isAvailable(agent.command))\n}\n\n/** Cross-platform PATH probe using the OS command locator. */\nexport function isCommandAvailable(command: string): boolean {\n const locator = process.platform === 'win32' ? 'where' : 'which'\n const result = spawnSync(locator, [command], { stdio: 'ignore' })\n return result.status === 0\n}\n"],"names":["spawnSync","AGENTS","id","command","label","selectDispatch","agentFlag","installed","isInteractive","prompt","known","find","a","Error","map","join","some","agent","kind","detectInstalledAgents","isAvailable","isCommandAvailable","filter","locator","process","platform","result","stdio","status"],"mappings":"AAAA,SAASA,SAAS,QAAQ,qBAAoB;AAY9C,uEAAuE,GACvE,OAAO,MAAMC,SAAkB;IAC7B;QAAEC,IAAI;QAAUC,SAAS;QAAUC,OAAO;IAAc;IACxD;QAAEF,IAAI;QAASC,SAAS;QAASC,OAAO;IAAQ;CACjD,CAAA;AAmBD;;;;;;CAMC,GACD,OAAO,eAAeC,eAAe,EACnCC,SAAS,EACTC,SAAS,EACTC,aAAa,EACbC,MAAM,EACa;IACnB,IAAIH,WAAW;QACb,MAAMI,QAAQT,OAAOU,IAAI,CAAC,CAACC,IAAMA,EAAEV,EAAE,KAAKI;QAC1C,IAAI,CAACI,OAAO;YACV,MAAM,IAAIG,MACR,CAAC,eAAe,EAAEP,UAAU,cAAc,EAAEL,OAAOa,GAAG,CAAC,CAACF,IAAMA,EAAEV,EAAE,EAAEa,IAAI,CAAC,MAAM,CAAC,CAAC;QAErF;QACA,IAAI,CAACR,UAAUS,IAAI,CAAC,CAACJ,IAAMA,EAAEV,EAAE,KAAKQ,MAAMR,EAAE,GAAG;YAC7C,MAAM,IAAIW,MACR,CAAC,OAAO,EAAEP,UAAU,6BAA6B,EAAEI,MAAMP,OAAO,CAAC,aAAa,CAAC;QAEnF;QACA,OAAO;YAAEc,OAAOP;YAAOQ,MAAM;QAAQ;IACvC;IAEA,IAAI,CAACV,eAAe;QAClB,OAAO;YAAEU,MAAM;QAAQ;IACzB;IAEA,OAAOT,OAAOF;AAChB;AAEA,uEAAuE,GACvE,OAAO,SAASY,sBACdC,cAA4CC,kBAAkB;IAE9D,OAAOpB,OAAOqB,MAAM,CAAC,CAACL,QAAUG,YAAYH,MAAMd,OAAO;AAC3D;AAEA,4DAA4D,GAC5D,OAAO,SAASkB,mBAAmBlB,OAAe;IAChD,MAAMoB,UAAUC,QAAQC,QAAQ,KAAK,UAAU,UAAU;IACzD,MAAMC,SAAS1B,UAAUuB,SAAS;QAACpB;KAAQ,EAAE;QAAEwB,OAAO;IAAS;IAC/D,OAAOD,OAAOE,MAAM,KAAK;AAC3B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type ResolveSelfCommandArgs = {
|
|
2
|
+
argv1?: string;
|
|
3
|
+
override?: string;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* The command a follower types to re-invoke this CLI. A published install lives
|
|
7
|
+
* under node_modules and is reached with npx; a source checkout is reached with
|
|
8
|
+
* `node <bin>` so local testing runs the local build, not a published version.
|
|
9
|
+
* `PAYLOAD_CODEMOD_COMMAND` overrides both.
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolveSelfCommand({ argv1, override, }?: ResolveSelfCommandArgs): string;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=selfCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selfCommand.d.ts","sourceRoot":"","sources":["../../src/upgrade/selfCommand.ts"],"names":[],"mappings":"AAEA,KAAK,sBAAsB,GAAG;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,KAAuB,EACvB,QAA8C,GAC/C,GAAE,sBAA2B,GAAG,MAAM,CAQtC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { resolve } from 'node:path';
|
|
2
|
+
/**
|
|
3
|
+
* The command a follower types to re-invoke this CLI. A published install lives
|
|
4
|
+
* under node_modules and is reached with npx; a source checkout is reached with
|
|
5
|
+
* `node <bin>` so local testing runs the local build, not a published version.
|
|
6
|
+
* `PAYLOAD_CODEMOD_COMMAND` overrides both.
|
|
7
|
+
*/ export function resolveSelfCommand({ argv1 = process.argv[1], override = process.env.PAYLOAD_CODEMOD_COMMAND } = {}) {
|
|
8
|
+
if (override) {
|
|
9
|
+
return override;
|
|
10
|
+
}
|
|
11
|
+
if (argv1 && !argv1.includes('node_modules')) {
|
|
12
|
+
return `node ${resolve(argv1)}`;
|
|
13
|
+
}
|
|
14
|
+
return 'npx @payloadcms/codemod';
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=selfCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/upgrade/selfCommand.ts"],"sourcesContent":["import { resolve } from 'node:path'\n\ntype ResolveSelfCommandArgs = {\n argv1?: string\n override?: string\n}\n\n/**\n * The command a follower types to re-invoke this CLI. A published install lives\n * under node_modules and is reached with npx; a source checkout is reached with\n * `node <bin>` so local testing runs the local build, not a published version.\n * `PAYLOAD_CODEMOD_COMMAND` overrides both.\n */\nexport function resolveSelfCommand({\n argv1 = process.argv[1],\n override = process.env.PAYLOAD_CODEMOD_COMMAND,\n}: ResolveSelfCommandArgs = {}): string {\n if (override) {\n return override\n }\n if (argv1 && !argv1.includes('node_modules')) {\n return `node ${resolve(argv1)}`\n }\n return 'npx @payloadcms/codemod'\n}\n"],"names":["resolve","resolveSelfCommand","argv1","process","argv","override","env","PAYLOAD_CODEMOD_COMMAND","includes"],"mappings":"AAAA,SAASA,OAAO,QAAQ,YAAW;AAOnC;;;;;CAKC,GACD,OAAO,SAASC,mBAAmB,EACjCC,QAAQC,QAAQC,IAAI,CAAC,EAAE,EACvBC,WAAWF,QAAQG,GAAG,CAACC,uBAAuB,EACvB,GAAG,CAAC,CAAC;IAC5B,IAAIF,UAAU;QACZ,OAAOA;IACT;IACA,IAAIH,SAAS,CAACA,MAAMM,QAAQ,CAAC,iBAAiB;QAC5C,OAAO,CAAC,KAAK,EAAER,QAAQE,QAAQ;IACjC;IACA,OAAO;AACT"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** Minimal shape of an npm registry packument we read. */
|
|
2
|
+
export type RegistryPackument = {
|
|
3
|
+
'dist-tags'?: Record<string, string>;
|
|
4
|
+
versions?: Record<string, {
|
|
5
|
+
engines?: Record<string, string>;
|
|
6
|
+
peerDependencies?: Record<string, string>;
|
|
7
|
+
}>;
|
|
8
|
+
};
|
|
9
|
+
export type FetchRegistry = (packageName: string) => Promise<RegistryPackument>;
|
|
10
|
+
export type Spawn = (command: string, args: string[], options: {
|
|
11
|
+
cwd: string;
|
|
12
|
+
env: NodeJS.ProcessEnv;
|
|
13
|
+
}) => Promise<{
|
|
14
|
+
code: number;
|
|
15
|
+
}>;
|
|
16
|
+
export type PackageManager = 'bun' | 'npm' | 'pnpm' | 'yarn';
|
|
17
|
+
/** Target versions the command resolves. Only some are written; see `written`. */
|
|
18
|
+
export type ResolvedVersions = {
|
|
19
|
+
/** Copied verbatim into engines.node. */
|
|
20
|
+
enginesNode: string;
|
|
21
|
+
/** Newest patch within @payloadcms/next's peer range. REPORT ONLY, never written. */
|
|
22
|
+
nextTarget: null | string;
|
|
23
|
+
/** Exact canary, applied in lockstep to payload + every @payloadcms/*. */
|
|
24
|
+
payloadVersion: string;
|
|
25
|
+
/** TypeScript floor (guide-sourced constant). */
|
|
26
|
+
typescript: string;
|
|
27
|
+
/** Newest @types/node patch within the Node major. */
|
|
28
|
+
typesNode: string;
|
|
29
|
+
};
|
|
30
|
+
export type UpgradeDeps = {
|
|
31
|
+
exists: (path: string) => boolean;
|
|
32
|
+
fetchRegistry: FetchRegistry;
|
|
33
|
+
spawn: Spawn;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* TypeScript floor for Payload v4. Nothing machine-readable declares it, so it
|
|
37
|
+
* lives here, sourced from the v4 migration guide prose. Bump alongside the guide.
|
|
38
|
+
*/
|
|
39
|
+
export declare const TS_FLOOR = "6.0.3";
|
|
40
|
+
/** Path (relative to dist/) of the bundled runbook the command points users to. */
|
|
41
|
+
export declare const RUNBOOK_RELATIVE_PATH = "runbook/payload-v4-upgrade.md";
|
|
42
|
+
/**
|
|
43
|
+
* Path (relative to dist/) of the bundled migration guide. Present only when the
|
|
44
|
+
* monorepo copy was available at build time; the report points at it when it exists.
|
|
45
|
+
*/
|
|
46
|
+
export declare const MIGRATION_GUIDE_RELATIVE_PATH = "runbook/v4.mdx";
|
|
47
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/upgrade/types.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,QAAQ,CAAC,EAAE,MAAM,CACf,MAAM,EACN;QACE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAC1C,CACF,CAAA;CACF,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAE/E,MAAM,MAAM,KAAK,GAAG,CAClB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;CAAE,KAC7C,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAE9B,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;AAE5D,kFAAkF;AAClF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAA;IACnB,qFAAqF;IACrF,UAAU,EAAE,IAAI,GAAG,MAAM,CAAA;IACzB,0EAA0E;IAC1E,cAAc,EAAE,MAAM,CAAA;IACtB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAA;IAClB,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;IACjC,aAAa,EAAE,aAAa,CAAA;IAC5B,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,UAAU,CAAA;AAE/B,mFAAmF;AACnF,eAAO,MAAM,qBAAqB,kCAAkC,CAAA;AAEpE;;;GAGG;AACH,eAAO,MAAM,6BAA6B,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Minimal shape of an npm registry packument we read. */ /**
|
|
2
|
+
* TypeScript floor for Payload v4. Nothing machine-readable declares it, so it
|
|
3
|
+
* lives here, sourced from the v4 migration guide prose. Bump alongside the guide.
|
|
4
|
+
*/ export const TS_FLOOR = '6.0.3';
|
|
5
|
+
/** Path (relative to dist/) of the bundled runbook the command points users to. */ export const RUNBOOK_RELATIVE_PATH = 'runbook/payload-v4-upgrade.md';
|
|
6
|
+
/**
|
|
7
|
+
* Path (relative to dist/) of the bundled migration guide. Present only when the
|
|
8
|
+
* monorepo copy was available at build time; the report points at it when it exists.
|
|
9
|
+
*/ export const MIGRATION_GUIDE_RELATIVE_PATH = 'runbook/v4.mdx';
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/upgrade/types.ts"],"sourcesContent":["/** Minimal shape of an npm registry packument we read. */\nexport type RegistryPackument = {\n 'dist-tags'?: Record<string, string>\n versions?: Record<\n string,\n {\n engines?: Record<string, string>\n peerDependencies?: Record<string, string>\n }\n >\n}\n\nexport type FetchRegistry = (packageName: string) => Promise<RegistryPackument>\n\nexport type Spawn = (\n command: string,\n args: string[],\n options: { cwd: string; env: NodeJS.ProcessEnv },\n) => Promise<{ code: number }>\n\nexport type PackageManager = 'bun' | 'npm' | 'pnpm' | 'yarn'\n\n/** Target versions the command resolves. Only some are written; see `written`. */\nexport type ResolvedVersions = {\n /** Copied verbatim into engines.node. */\n enginesNode: string\n /** Newest patch within @payloadcms/next's peer range. REPORT ONLY, never written. */\n nextTarget: null | string\n /** Exact canary, applied in lockstep to payload + every @payloadcms/*. */\n payloadVersion: string\n /** TypeScript floor (guide-sourced constant). */\n typescript: string\n /** Newest @types/node patch within the Node major. */\n typesNode: string\n}\n\nexport type UpgradeDeps = {\n exists: (path: string) => boolean\n fetchRegistry: FetchRegistry\n spawn: Spawn\n}\n\n/**\n * TypeScript floor for Payload v4. Nothing machine-readable declares it, so it\n * lives here, sourced from the v4 migration guide prose. Bump alongside the guide.\n */\nexport const TS_FLOOR = '6.0.3'\n\n/** Path (relative to dist/) of the bundled runbook the command points users to. */\nexport const RUNBOOK_RELATIVE_PATH = 'runbook/payload-v4-upgrade.md'\n\n/**\n * Path (relative to dist/) of the bundled migration guide. Present only when the\n * monorepo copy was available at build time; the report points at it when it exists.\n */\nexport const MIGRATION_GUIDE_RELATIVE_PATH = 'runbook/v4.mdx'\n"],"names":["TS_FLOOR","RUNBOOK_RELATIVE_PATH","MIGRATION_GUIDE_RELATIVE_PATH"],"mappings":"AAAA,wDAAwD,GA0CxD;;;CAGC,GACD,OAAO,MAAMA,WAAW,QAAO;AAE/B,iFAAiF,GACjF,OAAO,MAAMC,wBAAwB,gCAA+B;AAEpE;;;CAGC,GACD,OAAO,MAAMC,gCAAgC,iBAAgB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Project } from 'ts-morph';
|
|
2
|
+
/**
|
|
3
|
+
* Load a ts-morph Project rooted at `path`, using its tsconfig.json if present.
|
|
4
|
+
*
|
|
5
|
+
* Falls back to globbing when the tsconfig resolves no source files (e.g. a
|
|
6
|
+
* solution-style config with only `references`), so transforms never silently
|
|
7
|
+
* run against an empty project.
|
|
8
|
+
*/
|
|
9
|
+
export declare function loadProject(path: string): Project;
|
|
10
|
+
//# sourceMappingURL=project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,OAAO,EAAa,MAAM,UAAU,CAAA;AAQ9D;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAgBjD"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import { IndentationText, Project, QuoteKind } from 'ts-morph';
|
|
4
|
+
const manipulationSettings = {
|
|
5
|
+
indentationText: IndentationText.TwoSpaces,
|
|
6
|
+
quoteKind: QuoteKind.Single,
|
|
7
|
+
useTrailingCommas: true
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Load a ts-morph Project rooted at `path`, using its tsconfig.json if present.
|
|
11
|
+
*
|
|
12
|
+
* Falls back to globbing when the tsconfig resolves no source files (e.g. a
|
|
13
|
+
* solution-style config with only `references`), so transforms never silently
|
|
14
|
+
* run against an empty project.
|
|
15
|
+
*/ export function loadProject(path) {
|
|
16
|
+
const tsconfigPath = resolve(path, 'tsconfig.json');
|
|
17
|
+
if (existsSync(tsconfigPath)) {
|
|
18
|
+
const project = new Project({
|
|
19
|
+
manipulationSettings,
|
|
20
|
+
tsConfigFilePath: tsconfigPath
|
|
21
|
+
});
|
|
22
|
+
if (project.getSourceFiles().length > 0) {
|
|
23
|
+
return project;
|
|
24
|
+
}
|
|
25
|
+
console.warn(`Warning: ${tsconfigPath} resolved no source files. Falling back to globbing ${path}.`);
|
|
26
|
+
}
|
|
27
|
+
return loadProjectFromGlob(path);
|
|
28
|
+
}
|
|
29
|
+
function loadProjectFromGlob(path) {
|
|
30
|
+
const project = new Project({
|
|
31
|
+
manipulationSettings
|
|
32
|
+
});
|
|
33
|
+
project.addSourceFilesAtPaths([
|
|
34
|
+
`${path}/**/*.{ts,tsx,js,jsx}`,
|
|
35
|
+
'!**/node_modules/**',
|
|
36
|
+
'!**/dist/**',
|
|
37
|
+
'!**/.next/**',
|
|
38
|
+
'!**/build/**'
|
|
39
|
+
]);
|
|
40
|
+
return project;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/project.ts"],"sourcesContent":["import { existsSync } from 'node:fs'\nimport { resolve } from 'node:path'\nimport { IndentationText, Project, QuoteKind } from 'ts-morph'\n\nconst manipulationSettings = {\n indentationText: IndentationText.TwoSpaces,\n quoteKind: QuoteKind.Single,\n useTrailingCommas: true,\n}\n\n/**\n * Load a ts-morph Project rooted at `path`, using its tsconfig.json if present.\n *\n * Falls back to globbing when the tsconfig resolves no source files (e.g. a\n * solution-style config with only `references`), so transforms never silently\n * run against an empty project.\n */\nexport function loadProject(path: string): Project {\n const tsconfigPath = resolve(path, 'tsconfig.json')\n\n if (existsSync(tsconfigPath)) {\n const project = new Project({ manipulationSettings, tsConfigFilePath: tsconfigPath })\n\n if (project.getSourceFiles().length > 0) {\n return project\n }\n\n console.warn(\n `Warning: ${tsconfigPath} resolved no source files. Falling back to globbing ${path}.`,\n )\n }\n\n return loadProjectFromGlob(path)\n}\n\nfunction loadProjectFromGlob(path: string): Project {\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"],"names":["existsSync","resolve","IndentationText","Project","QuoteKind","manipulationSettings","indentationText","TwoSpaces","quoteKind","Single","useTrailingCommas","loadProject","path","tsconfigPath","project","tsConfigFilePath","getSourceFiles","length","console","warn","loadProjectFromGlob","addSourceFilesAtPaths"],"mappings":"AAAA,SAASA,UAAU,QAAQ,UAAS;AACpC,SAASC,OAAO,QAAQ,YAAW;AACnC,SAASC,eAAe,EAAEC,OAAO,EAAEC,SAAS,QAAQ,WAAU;AAE9D,MAAMC,uBAAuB;IAC3BC,iBAAiBJ,gBAAgBK,SAAS;IAC1CC,WAAWJ,UAAUK,MAAM;IAC3BC,mBAAmB;AACrB;AAEA;;;;;;CAMC,GACD,OAAO,SAASC,YAAYC,IAAY;IACtC,MAAMC,eAAeZ,QAAQW,MAAM;IAEnC,IAAIZ,WAAWa,eAAe;QAC5B,MAAMC,UAAU,IAAIX,QAAQ;YAAEE;YAAsBU,kBAAkBF;QAAa;QAEnF,IAAIC,QAAQE,cAAc,GAAGC,MAAM,GAAG,GAAG;YACvC,OAAOH;QACT;QAEAI,QAAQC,IAAI,CACV,CAAC,SAAS,EAAEN,aAAa,oDAAoD,EAAED,KAAK,CAAC,CAAC;IAE1F;IAEA,OAAOQ,oBAAoBR;AAC7B;AAEA,SAASQ,oBAAoBR,IAAY;IACvC,MAAME,UAAU,IAAIX,QAAQ;QAAEE;IAAqB;IACnDS,QAAQO,qBAAqB,CAAC;QAC5B,GAAGT,KAAK,qBAAqB,CAAC;QAC9B;QACA;QACA;QACA;KACD;IACD,OAAOE;AACT"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/codemod",
|
|
3
|
-
"version": "4.0.0-internal.
|
|
3
|
+
"version": "4.0.0-internal.f15737c",
|
|
4
4
|
"description": "Codemods for migrating Payload projects across versions.",
|
|
5
5
|
"homepage": "https://payloadcms.com",
|
|
6
6
|
"repository": {
|
|
@@ -29,20 +29,24 @@
|
|
|
29
29
|
"README.md"
|
|
30
30
|
],
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"
|
|
32
|
+
"@clack/prompts": "1.2.0",
|
|
33
|
+
"semver": "^7.8.5",
|
|
34
|
+
"ts-morph": "^28.0.0"
|
|
33
35
|
},
|
|
34
36
|
"devDependencies": {
|
|
35
37
|
"@swc/core": "1.15.3",
|
|
36
38
|
"@types/node": "24.12.3",
|
|
39
|
+
"@types/semver": "^7.7.1",
|
|
37
40
|
"rimraf": "6.0.1",
|
|
38
|
-
"typescript": "6.0.
|
|
39
|
-
"vitest": "
|
|
41
|
+
"typescript": "npm:@typescript/typescript6@6.0.2",
|
|
42
|
+
"vitest": "5.0.1"
|
|
40
43
|
},
|
|
41
44
|
"engines": {
|
|
42
45
|
"node": ">=24.15.0"
|
|
43
46
|
},
|
|
44
47
|
"scripts": {
|
|
45
|
-
"build": "pnpm typecheck && pnpm build:swc",
|
|
48
|
+
"build": "pnpm typecheck && pnpm build:swc && pnpm build:copy-docs",
|
|
49
|
+
"build:copy-docs": "node scripts/copy-migration-guide.mjs",
|
|
46
50
|
"build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
|
|
47
51
|
"clean": "rimraf -g {dist,*.tsbuildinfo}",
|
|
48
52
|
"lint": "eslint .",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.parseFlags.spec.d.ts","sourceRoot":"","sources":["../src/cli.parseFlags.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,49 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/runner.spec.d.ts
DELETED