@payloadcms/codemod 4.0.0-internal.c3ac604 → 4.0.0-internal.cb69780
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +91 -27
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +41 -27
- package/dist/cli.js.map +1 -1
- package/dist/cli.parseFlags.d.ts +14 -0
- package/dist/cli.parseFlags.d.ts.map +1 -1
- package/dist/cli.parseFlags.js +29 -2
- package/dist/cli.parseFlags.js.map +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +15 -1
- package/dist/registry.js.map +1 -1
- package/dist/runbook/payload-v4-upgrade.md +55 -0
- package/dist/runbook/v4.mdx +2168 -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 +616 -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-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 +71 -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 +44 -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 +123 -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 +4 -0
- package/dist/utils/project.d.ts.map +1 -0
- package/dist/utils/project.js +30 -0
- package/dist/utils/project.js.map +1 -0
- package/package.json +8 -4
- 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,21 @@
|
|
|
1
|
+
import type { TransformRunResult } from '../runner.js';
|
|
2
|
+
export type VersionReportRow = {
|
|
3
|
+
name: string;
|
|
4
|
+
ok: boolean;
|
|
5
|
+
resolved?: string;
|
|
6
|
+
wrote: string;
|
|
7
|
+
};
|
|
8
|
+
export type ReportModel = {
|
|
9
|
+
floorsWritten: string[];
|
|
10
|
+
/** Absolute path to the bundled migration guide, when it shipped with this build. */
|
|
11
|
+
migrationGuidePath?: string;
|
|
12
|
+
nextTarget: null | string;
|
|
13
|
+
overridesRemoved: string[];
|
|
14
|
+
placeholdersSkipped: string[];
|
|
15
|
+
runbookPath: string;
|
|
16
|
+
transforms: TransformRunResult[];
|
|
17
|
+
versions: VersionReportRow[];
|
|
18
|
+
};
|
|
19
|
+
/** Build the honest end-of-run report string. Pure — the caller prints it. */
|
|
20
|
+
export declare function renderReport(model: ReportModel): string;
|
|
21
|
+
//# sourceMappingURL=report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/upgrade/report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEtD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,OAAO,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,UAAU,EAAE,IAAI,GAAG,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,mBAAmB,EAAE,MAAM,EAAE,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,kBAAkB,EAAE,CAAA;IAChC,QAAQ,EAAE,gBAAgB,EAAE,CAAA;CAC7B,CAAA;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAyDvD"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** Build the honest end-of-run report string. Pure — the caller prints it. */ export function renderReport(model) {
|
|
2
|
+
const lines = [];
|
|
3
|
+
lines.push('Payload v4 upgrade — mechanical steps complete', '');
|
|
4
|
+
lines.push('Versions written -> resolved');
|
|
5
|
+
for (const v of model.versions){
|
|
6
|
+
const resolved = v.resolved ?? '(unresolved)';
|
|
7
|
+
lines.push(` ${v.name} ${v.wrote} -> ${resolved} ${v.ok ? 'ok' : 'MISMATCH'}`);
|
|
8
|
+
}
|
|
9
|
+
const anyMismatch = model.versions.some((v)=>!v.ok);
|
|
10
|
+
if (anyMismatch) {
|
|
11
|
+
lines.push(' ! Resolution mismatch — tree is NOT confirmed v4. Investigate before continuing.');
|
|
12
|
+
}
|
|
13
|
+
lines.push('');
|
|
14
|
+
if (model.overridesRemoved.length > 0) {
|
|
15
|
+
lines.push(`Overrides removed: ${model.overridesRemoved.join(', ')}`, '');
|
|
16
|
+
}
|
|
17
|
+
if (model.placeholdersSkipped.length > 0) {
|
|
18
|
+
lines.push(`Left as-is (workspace/catalog/link specs): ${model.placeholdersSkipped.join(', ')}`, '');
|
|
19
|
+
}
|
|
20
|
+
if (model.floorsWritten.length > 0) {
|
|
21
|
+
lines.push(`Floors written: ${model.floorsWritten.join(', ')}`, '');
|
|
22
|
+
}
|
|
23
|
+
lines.push('Transforms');
|
|
24
|
+
for (const r of model.transforms){
|
|
25
|
+
if (r.error) {
|
|
26
|
+
lines.push(` [FAIL] ${r.name} — ${r.error.message}`);
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
lines.push(` [ok] ${r.name} — ${r.filesChanged.length} file(s) changed`);
|
|
30
|
+
for (const note of r.notes ?? []){
|
|
31
|
+
lines.push(` note: ${note}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
lines.push('');
|
|
35
|
+
lines.push('Next.js: not upgraded by this command');
|
|
36
|
+
lines.push(` Target Next version: ${model.nextTarget ?? '(see @payloadcms/next peer range)'}`);
|
|
37
|
+
lines.push(' The unmet @payloadcms/next peer is expected until you upgrade Next — that is the immediate next step.');
|
|
38
|
+
lines.push('');
|
|
39
|
+
lines.push('Not done by this command. See these for the remaining steps:');
|
|
40
|
+
lines.push(` runbook: ${model.runbookPath}`);
|
|
41
|
+
if (model.migrationGuidePath) {
|
|
42
|
+
lines.push(` migration guide: ${model.migrationGuidePath}`);
|
|
43
|
+
}
|
|
44
|
+
return lines.join('\n');
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/upgrade/report.ts"],"sourcesContent":["import type { TransformRunResult } from '../runner.js'\n\nexport type VersionReportRow = {\n name: string\n ok: boolean\n resolved?: string\n wrote: string\n}\n\nexport type ReportModel = {\n floorsWritten: string[]\n /** Absolute path to the bundled migration guide, when it shipped with this build. */\n migrationGuidePath?: string\n nextTarget: null | string\n overridesRemoved: string[]\n placeholdersSkipped: string[]\n runbookPath: string\n transforms: TransformRunResult[]\n versions: VersionReportRow[]\n}\n\n/** Build the honest end-of-run report string. Pure — the caller prints it. */\nexport function renderReport(model: ReportModel): string {\n const lines: string[] = []\n lines.push('Payload v4 upgrade — mechanical steps complete', '')\n\n lines.push('Versions written -> resolved')\n for (const v of model.versions) {\n const resolved = v.resolved ?? '(unresolved)'\n lines.push(` ${v.name} ${v.wrote} -> ${resolved} ${v.ok ? 'ok' : 'MISMATCH'}`)\n }\n const anyMismatch = model.versions.some((v) => !v.ok)\n if (anyMismatch) {\n lines.push(' ! Resolution mismatch — tree is NOT confirmed v4. Investigate before continuing.')\n }\n lines.push('')\n\n if (model.overridesRemoved.length > 0) {\n lines.push(`Overrides removed: ${model.overridesRemoved.join(', ')}`, '')\n }\n\n if (model.placeholdersSkipped.length > 0) {\n lines.push(\n `Left as-is (workspace/catalog/link specs): ${model.placeholdersSkipped.join(', ')}`,\n '',\n )\n }\n\n if (model.floorsWritten.length > 0) {\n lines.push(`Floors written: ${model.floorsWritten.join(', ')}`, '')\n }\n\n lines.push('Transforms')\n for (const r of model.transforms) {\n if (r.error) {\n lines.push(` [FAIL] ${r.name} — ${r.error.message}`)\n continue\n }\n lines.push(` [ok] ${r.name} — ${r.filesChanged.length} file(s) changed`)\n for (const note of r.notes ?? []) {\n lines.push(` note: ${note}`)\n }\n }\n lines.push('')\n\n lines.push('Next.js: not upgraded by this command')\n lines.push(` Target Next version: ${model.nextTarget ?? '(see @payloadcms/next peer range)'}`)\n lines.push(\n ' The unmet @payloadcms/next peer is expected until you upgrade Next — that is the immediate next step.',\n )\n lines.push('')\n\n lines.push('Not done by this command. See these for the remaining steps:')\n lines.push(` runbook: ${model.runbookPath}`)\n if (model.migrationGuidePath) {\n lines.push(` migration guide: ${model.migrationGuidePath}`)\n }\n\n return lines.join('\\n')\n}\n"],"names":["renderReport","model","lines","push","v","versions","resolved","name","wrote","ok","anyMismatch","some","overridesRemoved","length","join","placeholdersSkipped","floorsWritten","r","transforms","error","message","filesChanged","note","notes","nextTarget","runbookPath","migrationGuidePath"],"mappings":"AAqBA,4EAA4E,GAC5E,OAAO,SAASA,aAAaC,KAAkB;IAC7C,MAAMC,QAAkB,EAAE;IAC1BA,MAAMC,IAAI,CAAC,kDAAkD;IAE7DD,MAAMC,IAAI,CAAC;IACX,KAAK,MAAMC,KAAKH,MAAMI,QAAQ,CAAE;QAC9B,MAAMC,WAAWF,EAAEE,QAAQ,IAAI;QAC/BJ,MAAMC,IAAI,CAAC,CAAC,EAAE,EAAEC,EAAEG,IAAI,CAAC,EAAE,EAAEH,EAAEI,KAAK,CAAC,IAAI,EAAEF,SAAS,EAAE,EAAEF,EAAEK,EAAE,GAAG,OAAO,YAAY;IAClF;IACA,MAAMC,cAAcT,MAAMI,QAAQ,CAACM,IAAI,CAAC,CAACP,IAAM,CAACA,EAAEK,EAAE;IACpD,IAAIC,aAAa;QACfR,MAAMC,IAAI,CAAC;IACb;IACAD,MAAMC,IAAI,CAAC;IAEX,IAAIF,MAAMW,gBAAgB,CAACC,MAAM,GAAG,GAAG;QACrCX,MAAMC,IAAI,CAAC,CAAC,mBAAmB,EAAEF,MAAMW,gBAAgB,CAACE,IAAI,CAAC,OAAO,EAAE;IACxE;IAEA,IAAIb,MAAMc,mBAAmB,CAACF,MAAM,GAAG,GAAG;QACxCX,MAAMC,IAAI,CACR,CAAC,2CAA2C,EAAEF,MAAMc,mBAAmB,CAACD,IAAI,CAAC,OAAO,EACpF;IAEJ;IAEA,IAAIb,MAAMe,aAAa,CAACH,MAAM,GAAG,GAAG;QAClCX,MAAMC,IAAI,CAAC,CAAC,gBAAgB,EAAEF,MAAMe,aAAa,CAACF,IAAI,CAAC,OAAO,EAAE;IAClE;IAEAZ,MAAMC,IAAI,CAAC;IACX,KAAK,MAAMc,KAAKhB,MAAMiB,UAAU,CAAE;QAChC,IAAID,EAAEE,KAAK,EAAE;YACXjB,MAAMC,IAAI,CAAC,CAAC,SAAS,EAAEc,EAAEV,IAAI,CAAC,GAAG,EAAEU,EAAEE,KAAK,CAACC,OAAO,EAAE;YACpD;QACF;QACAlB,MAAMC,IAAI,CAAC,CAAC,OAAO,EAAEc,EAAEV,IAAI,CAAC,GAAG,EAAEU,EAAEI,YAAY,CAACR,MAAM,CAAC,gBAAgB,CAAC;QACxE,KAAK,MAAMS,QAAQL,EAAEM,KAAK,IAAI,EAAE,CAAE;YAChCrB,MAAMC,IAAI,CAAC,CAAC,YAAY,EAAEmB,MAAM;QAClC;IACF;IACApB,MAAMC,IAAI,CAAC;IAEXD,MAAMC,IAAI,CAAC;IACXD,MAAMC,IAAI,CAAC,CAAC,uBAAuB,EAAEF,MAAMuB,UAAU,IAAI,qCAAqC;IAC9FtB,MAAMC,IAAI,CACR;IAEFD,MAAMC,IAAI,CAAC;IAEXD,MAAMC,IAAI,CAAC;IACXD,MAAMC,IAAI,CAAC,CAAC,WAAW,EAAEF,MAAMwB,WAAW,EAAE;IAC5C,IAAIxB,MAAMyB,kBAAkB,EAAE;QAC5BxB,MAAMC,IAAI,CAAC,CAAC,mBAAmB,EAAEF,MAAMyB,kBAAkB,EAAE;IAC7D;IAEA,OAAOxB,MAAMY,IAAI,CAAC;AACpB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { FetchRegistry, ResolvedVersions } from './types.js';
|
|
2
|
+
type ResolveVersionsArgs = {
|
|
3
|
+
fetchRegistry: FetchRegistry;
|
|
4
|
+
tag: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Resolve the v4 target version set from the registry. Reads payload's engines
|
|
8
|
+
* and @payloadcms/next's peer range at their `tag` dist-tag, then picks the
|
|
9
|
+
* newest satisfying patch for @types/node and next. `nextTarget` is report-only.
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolveVersions({ fetchRegistry, tag, }: ResolveVersionsArgs): Promise<ResolvedVersions>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=resolveVersions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveVersions.d.ts","sourceRoot":"","sources":["../../src/upgrade/resolveVersions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAIjE,KAAK,mBAAmB,GAAG;IACzB,aAAa,EAAE,aAAa,CAAA;IAC5B,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,EACpC,aAAa,EACb,GAAG,GACJ,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsBjD"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import semver from 'semver';
|
|
2
|
+
import { TS_FLOOR } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Resolve the v4 target version set from the registry. Reads payload's engines
|
|
5
|
+
* and @payloadcms/next's peer range at their `tag` dist-tag, then picks the
|
|
6
|
+
* newest satisfying patch for @types/node and next. `nextTarget` is report-only.
|
|
7
|
+
*/ export async function resolveVersions({ fetchRegistry, tag }) {
|
|
8
|
+
const payloadDoc = await fetchRegistry('payload');
|
|
9
|
+
const payloadVersion = payloadDoc['dist-tags']?.[tag];
|
|
10
|
+
if (!payloadVersion) {
|
|
11
|
+
throw new Error(`payload has no dist-tag "${tag}" on the npm registry.`);
|
|
12
|
+
}
|
|
13
|
+
const enginesNode = payloadDoc.versions?.[payloadVersion]?.engines?.node;
|
|
14
|
+
if (!enginesNode) {
|
|
15
|
+
throw new Error(`payload@${payloadVersion} does not declare engines.node.`);
|
|
16
|
+
}
|
|
17
|
+
const typesNode = await newestWithinMajor(fetchRegistry, '@types/node', nodeMajor(enginesNode));
|
|
18
|
+
const nextTarget = await resolveNextTarget(fetchRegistry, tag);
|
|
19
|
+
return {
|
|
20
|
+
enginesNode,
|
|
21
|
+
nextTarget,
|
|
22
|
+
payloadVersion,
|
|
23
|
+
typescript: TS_FLOOR,
|
|
24
|
+
typesNode
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function nodeMajor(enginesNode) {
|
|
28
|
+
const min = semver.minVersion(enginesNode);
|
|
29
|
+
if (!min) {
|
|
30
|
+
throw new Error(`Could not parse a Node major from engines.node "${enginesNode}".`);
|
|
31
|
+
}
|
|
32
|
+
return min.major;
|
|
33
|
+
}
|
|
34
|
+
async function newestWithinMajor(fetchRegistry, packageName, major) {
|
|
35
|
+
const doc = await fetchRegistry(packageName);
|
|
36
|
+
const versions = Object.keys(doc.versions ?? {});
|
|
37
|
+
const range = `>=${major}.0.0 <${major + 1}.0.0`;
|
|
38
|
+
const best = semver.maxSatisfying(versions, range);
|
|
39
|
+
if (!best) {
|
|
40
|
+
throw new Error(`No ${packageName} version found within major ${major}.`);
|
|
41
|
+
}
|
|
42
|
+
return best;
|
|
43
|
+
}
|
|
44
|
+
async function resolveNextTarget(fetchRegistry, tag) {
|
|
45
|
+
const nextDoc = await fetchRegistry('@payloadcms/next');
|
|
46
|
+
const version = nextDoc['dist-tags']?.[tag];
|
|
47
|
+
const range = version ? nextDoc.versions?.[version]?.peerDependencies?.next : undefined;
|
|
48
|
+
if (!range) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
const versions = Object.keys((await fetchRegistry('next')).versions ?? {});
|
|
52
|
+
return semver.maxSatisfying(versions, range);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=resolveVersions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/upgrade/resolveVersions.ts"],"sourcesContent":["import semver from 'semver'\n\nimport type { FetchRegistry, ResolvedVersions } from './types.js'\n\nimport { TS_FLOOR } from './types.js'\n\ntype ResolveVersionsArgs = {\n fetchRegistry: FetchRegistry\n tag: string\n}\n\n/**\n * Resolve the v4 target version set from the registry. Reads payload's engines\n * and @payloadcms/next's peer range at their `tag` dist-tag, then picks the\n * newest satisfying patch for @types/node and next. `nextTarget` is report-only.\n */\nexport async function resolveVersions({\n fetchRegistry,\n tag,\n}: ResolveVersionsArgs): Promise<ResolvedVersions> {\n const payloadDoc = await fetchRegistry('payload')\n const payloadVersion = payloadDoc['dist-tags']?.[tag]\n if (!payloadVersion) {\n throw new Error(`payload has no dist-tag \"${tag}\" on the npm registry.`)\n }\n\n const enginesNode = payloadDoc.versions?.[payloadVersion]?.engines?.node\n if (!enginesNode) {\n throw new Error(`payload@${payloadVersion} does not declare engines.node.`)\n }\n\n const typesNode = await newestWithinMajor(fetchRegistry, '@types/node', nodeMajor(enginesNode))\n const nextTarget = await resolveNextTarget(fetchRegistry, tag)\n\n return {\n enginesNode,\n nextTarget,\n payloadVersion,\n typescript: TS_FLOOR,\n typesNode,\n }\n}\n\nfunction nodeMajor(enginesNode: string): number {\n const min = semver.minVersion(enginesNode)\n if (!min) {\n throw new Error(`Could not parse a Node major from engines.node \"${enginesNode}\".`)\n }\n return min.major\n}\n\nasync function newestWithinMajor(\n fetchRegistry: FetchRegistry,\n packageName: string,\n major: number,\n): Promise<string> {\n const doc = await fetchRegistry(packageName)\n const versions = Object.keys(doc.versions ?? {})\n const range = `>=${major}.0.0 <${major + 1}.0.0`\n const best = semver.maxSatisfying(versions, range)\n if (!best) {\n throw new Error(`No ${packageName} version found within major ${major}.`)\n }\n return best\n}\n\nasync function resolveNextTarget(\n fetchRegistry: FetchRegistry,\n tag: string,\n): Promise<null | string> {\n const nextDoc = await fetchRegistry('@payloadcms/next')\n const version = nextDoc['dist-tags']?.[tag]\n const range = version ? nextDoc.versions?.[version]?.peerDependencies?.next : undefined\n if (!range) {\n return null\n }\n const versions = Object.keys((await fetchRegistry('next')).versions ?? {})\n return semver.maxSatisfying(versions, range)\n}\n"],"names":["semver","TS_FLOOR","resolveVersions","fetchRegistry","tag","payloadDoc","payloadVersion","Error","enginesNode","versions","engines","node","typesNode","newestWithinMajor","nodeMajor","nextTarget","resolveNextTarget","typescript","min","minVersion","major","packageName","doc","Object","keys","range","best","maxSatisfying","nextDoc","version","peerDependencies","next","undefined"],"mappings":"AAAA,OAAOA,YAAY,SAAQ;AAI3B,SAASC,QAAQ,QAAQ,aAAY;AAOrC;;;;CAIC,GACD,OAAO,eAAeC,gBAAgB,EACpCC,aAAa,EACbC,GAAG,EACiB;IACpB,MAAMC,aAAa,MAAMF,cAAc;IACvC,MAAMG,iBAAiBD,UAAU,CAAC,YAAY,EAAE,CAACD,IAAI;IACrD,IAAI,CAACE,gBAAgB;QACnB,MAAM,IAAIC,MAAM,CAAC,yBAAyB,EAAEH,IAAI,sBAAsB,CAAC;IACzE;IAEA,MAAMI,cAAcH,WAAWI,QAAQ,EAAE,CAACH,eAAe,EAAEI,SAASC;IACpE,IAAI,CAACH,aAAa;QAChB,MAAM,IAAID,MAAM,CAAC,QAAQ,EAAED,eAAe,+BAA+B,CAAC;IAC5E;IAEA,MAAMM,YAAY,MAAMC,kBAAkBV,eAAe,eAAeW,UAAUN;IAClF,MAAMO,aAAa,MAAMC,kBAAkBb,eAAeC;IAE1D,OAAO;QACLI;QACAO;QACAT;QACAW,YAAYhB;QACZW;IACF;AACF;AAEA,SAASE,UAAUN,WAAmB;IACpC,MAAMU,MAAMlB,OAAOmB,UAAU,CAACX;IAC9B,IAAI,CAACU,KAAK;QACR,MAAM,IAAIX,MAAM,CAAC,gDAAgD,EAAEC,YAAY,EAAE,CAAC;IACpF;IACA,OAAOU,IAAIE,KAAK;AAClB;AAEA,eAAeP,kBACbV,aAA4B,EAC5BkB,WAAmB,EACnBD,KAAa;IAEb,MAAME,MAAM,MAAMnB,cAAckB;IAChC,MAAMZ,WAAWc,OAAOC,IAAI,CAACF,IAAIb,QAAQ,IAAI,CAAC;IAC9C,MAAMgB,QAAQ,CAAC,EAAE,EAAEL,MAAM,MAAM,EAAEA,QAAQ,EAAE,IAAI,CAAC;IAChD,MAAMM,OAAO1B,OAAO2B,aAAa,CAAClB,UAAUgB;IAC5C,IAAI,CAACC,MAAM;QACT,MAAM,IAAInB,MAAM,CAAC,GAAG,EAAEc,YAAY,4BAA4B,EAAED,MAAM,CAAC,CAAC;IAC1E;IACA,OAAOM;AACT;AAEA,eAAeV,kBACbb,aAA4B,EAC5BC,GAAW;IAEX,MAAMwB,UAAU,MAAMzB,cAAc;IACpC,MAAM0B,UAAUD,OAAO,CAAC,YAAY,EAAE,CAACxB,IAAI;IAC3C,MAAMqB,QAAQI,UAAUD,QAAQnB,QAAQ,EAAE,CAACoB,QAAQ,EAAEC,kBAAkBC,OAAOC;IAC9E,IAAI,CAACP,OAAO;QACV,OAAO;IACT;IACA,MAAMhB,WAAWc,OAAOC,IAAI,CAAC,AAAC,CAAA,MAAMrB,cAAc,OAAM,EAAGM,QAAQ,IAAI,CAAC;IACxE,OAAOT,OAAO2B,aAAa,CAAClB,UAAUgB;AACxC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ResolvedVersions } from './types.js';
|
|
2
|
+
type RewriteArgs = {
|
|
3
|
+
data: Record<string, unknown>;
|
|
4
|
+
resolved: ResolvedVersions;
|
|
5
|
+
};
|
|
6
|
+
export type RewriteSummary = {
|
|
7
|
+
floorsWritten: string[];
|
|
8
|
+
overridesRemoved: string[];
|
|
9
|
+
pinnedPayload: string[];
|
|
10
|
+
placeholdersSkipped: string[];
|
|
11
|
+
};
|
|
12
|
+
export declare const isPayloadPackage: (name: string) => boolean;
|
|
13
|
+
/**
|
|
14
|
+
* The `@payloadcms/eslint-*` packages are versioned independently of the core
|
|
15
|
+
* payload packages, so they are tracked on `latest` rather than lockstep-pinned.
|
|
16
|
+
*/
|
|
17
|
+
export declare const isPayloadEslintPackage: (name: string) => boolean;
|
|
18
|
+
/**
|
|
19
|
+
* A dependency whose version is resolved by the package manager, not a semver
|
|
20
|
+
* range: `workspace:*`, `catalog:`, `link:`, `file:`, `npm:` aliases, URLs.
|
|
21
|
+
* Overwriting one with an exact version would break the link, so it is left as-is.
|
|
22
|
+
*/
|
|
23
|
+
export declare const isPlaceholderSpec: (spec: unknown) => boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Mutate `data` in place for a v4 upgrade: exact-pin payload packages, drop
|
|
26
|
+
* payload dependency overrides, and write the toolchain floors. Never touches
|
|
27
|
+
* next/react — the Next.js upgrade is delegated to Next's own workflow.
|
|
28
|
+
* Returns a summary for the report. Idempotent.
|
|
29
|
+
*/
|
|
30
|
+
export declare function rewritePackageJson({ data, resolved }: RewriteArgs): RewriteSummary;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=rewritePackageJson.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rewritePackageJson.d.ts","sourceRoot":"","sources":["../../src/upgrade/rewritePackageJson.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,QAAQ,EAAE,gBAAgB,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,mBAAmB,EAAE,MAAM,EAAE,CAAA;CAC9B,CAAA;AAOD,eAAO,MAAM,gBAAgB,SAAU,MAAM,KAAG,OACO,CAAA;AAEvD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,SAAU,MAAM,KAAG,OACf,CAAA;AAEvC;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,SAAU,OAAO,KAAG,OACO,CAAA;AAEzD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,GAAG,cAAc,CAKlF"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
const DEP_FIELDS = [
|
|
2
|
+
'dependencies',
|
|
3
|
+
'devDependencies'
|
|
4
|
+
];
|
|
5
|
+
/** Any protocol-prefixed specifier (`workspace:*`, `catalog:`, `link:`, `file:`, `npm:`, a URL). */ const PLACEHOLDER_SPEC = /^[a-z][a-z0-9+.-]*:/i;
|
|
6
|
+
export const isPayloadPackage = (name)=>name === 'payload' || name.startsWith('@payloadcms/');
|
|
7
|
+
/**
|
|
8
|
+
* The `@payloadcms/eslint-*` packages are versioned independently of the core
|
|
9
|
+
* payload packages, so they are tracked on `latest` rather than lockstep-pinned.
|
|
10
|
+
*/ export const isPayloadEslintPackage = (name)=>name.startsWith('@payloadcms/eslint');
|
|
11
|
+
/**
|
|
12
|
+
* A dependency whose version is resolved by the package manager, not a semver
|
|
13
|
+
* range: `workspace:*`, `catalog:`, `link:`, `file:`, `npm:` aliases, URLs.
|
|
14
|
+
* Overwriting one with an exact version would break the link, so it is left as-is.
|
|
15
|
+
*/ export const isPlaceholderSpec = (spec)=>typeof spec === 'string' && PLACEHOLDER_SPEC.test(spec);
|
|
16
|
+
/**
|
|
17
|
+
* Mutate `data` in place for a v4 upgrade: exact-pin payload packages, drop
|
|
18
|
+
* payload dependency overrides, and write the toolchain floors. Never touches
|
|
19
|
+
* next/react — the Next.js upgrade is delegated to Next's own workflow.
|
|
20
|
+
* Returns a summary for the report. Idempotent.
|
|
21
|
+
*/ export function rewritePackageJson({ data, resolved }) {
|
|
22
|
+
const { pinnedPayload, placeholdersSkipped } = pinPayloadPackages(data, resolved.payloadVersion);
|
|
23
|
+
const overridesRemoved = removePayloadOverrides(data);
|
|
24
|
+
const floorsWritten = writeFloors(data, resolved);
|
|
25
|
+
return {
|
|
26
|
+
floorsWritten,
|
|
27
|
+
overridesRemoved,
|
|
28
|
+
pinnedPayload,
|
|
29
|
+
placeholdersSkipped
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function pinPayloadPackages(data, version) {
|
|
33
|
+
const pinned = [];
|
|
34
|
+
const skipped = [];
|
|
35
|
+
for (const field of DEP_FIELDS){
|
|
36
|
+
const deps = data[field];
|
|
37
|
+
if (!isRecord(deps)) {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
for (const name of Object.keys(deps)){
|
|
41
|
+
if (!isPayloadPackage(name)) {
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
// A workspace/catalog/link spec resolves itself; pinning it breaks the link.
|
|
45
|
+
if (isPlaceholderSpec(deps[name])) {
|
|
46
|
+
skipped.push(name);
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
if (isPayloadEslintPackage(name)) {
|
|
50
|
+
deps[name] = 'latest';
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
deps[name] = version;
|
|
54
|
+
pinned.push(name);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
pinnedPayload: pinned,
|
|
59
|
+
placeholdersSkipped: skipped
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function removePayloadOverrides(data) {
|
|
63
|
+
const removed = [];
|
|
64
|
+
const pnpm = data.pnpm;
|
|
65
|
+
if (isRecord(pnpm) && isRecord(pnpm.overrides)) {
|
|
66
|
+
pruneOverrideBlock(pnpm.overrides, 'pnpm.overrides', removed);
|
|
67
|
+
if (Object.keys(pnpm.overrides).length === 0) {
|
|
68
|
+
delete pnpm.overrides;
|
|
69
|
+
}
|
|
70
|
+
if (Object.keys(pnpm).length === 0) {
|
|
71
|
+
delete data.pnpm;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
for (const key of [
|
|
75
|
+
'overrides',
|
|
76
|
+
'resolutions'
|
|
77
|
+
]){
|
|
78
|
+
const block = data[key];
|
|
79
|
+
if (isRecord(block)) {
|
|
80
|
+
pruneOverrideBlock(block, key, removed);
|
|
81
|
+
if (Object.keys(block).length === 0) {
|
|
82
|
+
delete data[key];
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return removed;
|
|
87
|
+
}
|
|
88
|
+
function pruneOverrideBlock(block, label, removed) {
|
|
89
|
+
for (const name of Object.keys(block)){
|
|
90
|
+
if (isPayloadPackage(name)) {
|
|
91
|
+
delete block[name];
|
|
92
|
+
removed.push(`${label}.${name}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function writeFloors(data, resolved) {
|
|
97
|
+
const written = [];
|
|
98
|
+
pinDep(data, 'typescript', resolved.typescript);
|
|
99
|
+
pinDep(data, '@types/node', resolved.typesNode);
|
|
100
|
+
written.push('typescript', '@types/node');
|
|
101
|
+
const engines = isRecord(data.engines) ? data.engines : {};
|
|
102
|
+
engines.node = resolved.enginesNode;
|
|
103
|
+
data.engines = engines;
|
|
104
|
+
written.push('engines.node');
|
|
105
|
+
return written;
|
|
106
|
+
}
|
|
107
|
+
/** Update a dep wherever it already lives, else add it to devDependencies. */ function pinDep(data, name, version) {
|
|
108
|
+
for (const field of DEP_FIELDS){
|
|
109
|
+
const deps = data[field];
|
|
110
|
+
if (isRecord(deps) && name in deps) {
|
|
111
|
+
deps[name] = version;
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
const devDeps = isRecord(data.devDependencies) ? data.devDependencies : {};
|
|
116
|
+
devDeps[name] = version;
|
|
117
|
+
data.devDependencies = devDeps;
|
|
118
|
+
}
|
|
119
|
+
function isRecord(value) {
|
|
120
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
//# sourceMappingURL=rewritePackageJson.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/upgrade/rewritePackageJson.ts"],"sourcesContent":["import 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 pinDep(data, 'typescript', resolved.typescript)\n pinDep(data, '@types/node', resolved.typesNode)\n written.push('typescript', '@types/node')\n\n const engines = isRecord(data.engines) ? data.engines : {}\n engines.node = resolved.enginesNode\n data.engines = engines\n written.push('engines.node')\n\n return written\n}\n\n/** Update a dep wherever it already lives, else add it to devDependencies. */\nfunction pinDep(data: Record<string, unknown>, name: string, version: string): void {\n for (const field of DEP_FIELDS) {\n const deps = data[field]\n if (isRecord(deps) && name in deps) {\n deps[name] = version\n return\n }\n }\n const devDeps = isRecord(data.devDependencies) ? data.devDependencies : {}\n devDeps[name] = version\n data.devDependencies = devDeps\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n"],"names":["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","pinDep","typescript","typesNode","engines","node","enginesNode","devDeps","devDependencies","value","Array","isArray"],"mappings":"AAcA,MAAMA,aAAa;IAAC;IAAgB;CAAkB;AAEtD,kGAAkG,GAClG,MAAMC,mBAAmB;AAEzB,OAAO,MAAMC,mBAAmB,CAACC,OAC/BA,SAAS,aAAaA,KAAKC,UAAU,CAAC,gBAAe;AAEvD;;;CAGC,GACD,OAAO,MAAMC,yBAAyB,CAACF,OACrCA,KAAKC,UAAU,CAAC,sBAAqB;AAEvC;;;;CAIC,GACD,OAAO,MAAME,oBAAoB,CAACC,OAChC,OAAOA,SAAS,YAAYN,iBAAiBO,IAAI,CAACD,MAAK;AAEzD;;;;;CAKC,GACD,OAAO,SAASE,mBAAmB,EAAEC,IAAI,EAAEC,QAAQ,EAAe;IAChE,MAAM,EAAEC,aAAa,EAAEC,mBAAmB,EAAE,GAAGC,mBAAmBJ,MAAMC,SAASI,cAAc;IAC/F,MAAMC,mBAAmBC,uBAAuBP;IAChD,MAAMQ,gBAAgBC,YAAYT,MAAMC;IACxC,OAAO;QAAEO;QAAeF;QAAkBJ;QAAeC;IAAoB;AAC/E;AAEA,SAASC,mBACPJ,IAA6B,EAC7BU,OAAe;IAEf,MAAMC,SAAmB,EAAE;IAC3B,MAAMC,UAAoB,EAAE;IAC5B,KAAK,MAAMC,SAASvB,WAAY;QAC9B,MAAMwB,OAAOd,IAAI,CAACa,MAAM;QACxB,IAAI,CAACE,SAASD,OAAO;YACnB;QACF;QACA,KAAK,MAAMrB,QAAQuB,OAAOC,IAAI,CAACH,MAAO;YACpC,IAAI,CAACtB,iBAAiBC,OAAO;gBAC3B;YACF;YACA,6EAA6E;YAC7E,IAAIG,kBAAkBkB,IAAI,CAACrB,KAAK,GAAG;gBACjCmB,QAAQM,IAAI,CAACzB;gBACb;YACF;YACA,IAAIE,uBAAuBF,OAAO;gBAChCqB,IAAI,CAACrB,KAAK,GAAG;gBACb;YACF;YACAqB,IAAI,CAACrB,KAAK,GAAGiB;YACbC,OAAOO,IAAI,CAACzB;QACd;IACF;IACA,OAAO;QAAES,eAAeS;QAAQR,qBAAqBS;IAAQ;AAC/D;AAEA,SAASL,uBAAuBP,IAA6B;IAC3D,MAAMmB,UAAoB,EAAE;IAE5B,MAAMC,OAAOpB,KAAKoB,IAAI;IACtB,IAAIL,SAASK,SAASL,SAASK,KAAKC,SAAS,GAAG;QAC9CC,mBAAmBF,KAAKC,SAAS,EAAE,kBAAkBF;QACrD,IAAIH,OAAOC,IAAI,CAACG,KAAKC,SAAS,EAAEE,MAAM,KAAK,GAAG;YAC5C,OAAOH,KAAKC,SAAS;QACvB;QACA,IAAIL,OAAOC,IAAI,CAACG,MAAMG,MAAM,KAAK,GAAG;YAClC,OAAOvB,KAAKoB,IAAI;QAClB;IACF;IAEA,KAAK,MAAMI,OAAO;QAAC;QAAa;KAAc,CAAW;QACvD,MAAMC,QAAQzB,IAAI,CAACwB,IAAI;QACvB,IAAIT,SAASU,QAAQ;YACnBH,mBAAmBG,OAAOD,KAAKL;YAC/B,IAAIH,OAAOC,IAAI,CAACQ,OAAOF,MAAM,KAAK,GAAG;gBACnC,OAAOvB,IAAI,CAACwB,IAAI;YAClB;QACF;IACF;IAEA,OAAOL;AACT;AAEA,SAASG,mBACPG,KAA8B,EAC9BC,KAAa,EACbP,OAAiB;IAEjB,KAAK,MAAM1B,QAAQuB,OAAOC,IAAI,CAACQ,OAAQ;QACrC,IAAIjC,iBAAiBC,OAAO;YAC1B,OAAOgC,KAAK,CAAChC,KAAK;YAClB0B,QAAQD,IAAI,CAAC,GAAGQ,MAAM,CAAC,EAAEjC,MAAM;QACjC;IACF;AACF;AAEA,SAASgB,YAAYT,IAA6B,EAAEC,QAA0B;IAC5E,MAAM0B,UAAoB,EAAE;IAC5BC,OAAO5B,MAAM,cAAcC,SAAS4B,UAAU;IAC9CD,OAAO5B,MAAM,eAAeC,SAAS6B,SAAS;IAC9CH,QAAQT,IAAI,CAAC,cAAc;IAE3B,MAAMa,UAAUhB,SAASf,KAAK+B,OAAO,IAAI/B,KAAK+B,OAAO,GAAG,CAAC;IACzDA,QAAQC,IAAI,GAAG/B,SAASgC,WAAW;IACnCjC,KAAK+B,OAAO,GAAGA;IACfJ,QAAQT,IAAI,CAAC;IAEb,OAAOS;AACT;AAEA,4EAA4E,GAC5E,SAASC,OAAO5B,IAA6B,EAAEP,IAAY,EAAEiB,OAAe;IAC1E,KAAK,MAAMG,SAASvB,WAAY;QAC9B,MAAMwB,OAAOd,IAAI,CAACa,MAAM;QACxB,IAAIE,SAASD,SAASrB,QAAQqB,MAAM;YAClCA,IAAI,CAACrB,KAAK,GAAGiB;YACb;QACF;IACF;IACA,MAAMwB,UAAUnB,SAASf,KAAKmC,eAAe,IAAInC,KAAKmC,eAAe,GAAG,CAAC;IACzED,OAAO,CAACzC,KAAK,GAAGiB;IAChBV,KAAKmC,eAAe,GAAGD;AACzB;AAEA,SAASnB,SAASqB,KAAc;IAC9B,OAAO,OAAOA,UAAU,YAAYA,UAAU,QAAQ,CAACC,MAAMC,OAAO,CAACF;AACvE"}
|
|
@@ -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"}
|