@payloadcms/codemod 4.0.0-internal.cc18726 → 4.0.0-internal.cd47d20
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 +92 -28
- 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 +14 -0
- package/dist/registry.js.map +1 -1
- package/dist/runbook/payload-v4-upgrade.md +55 -0
- package/dist/runbook/v4.mdx +2186 -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-strict-draft-types/basic.input.js +28 -0
- package/dist/transforms/remove-strict-draft-types/basic.input.js.map +1 -0
- package/dist/transforms/remove-strict-draft-types/basic.output.js +24 -0
- package/dist/transforms/remove-strict-draft-types/basic.output.js.map +1 -0
- package/dist/transforms/remove-strict-draft-types/index.d.ts +3 -0
- package/dist/transforms/remove-strict-draft-types/index.d.ts.map +1 -0
- package/dist/transforms/remove-strict-draft-types/index.js +44 -0
- package/dist/transforms/remove-strict-draft-types/index.js.map +1 -0
- package/dist/transforms/remove-strict-draft-types/no-match.input.js +11 -0
- package/dist/transforms/remove-strict-draft-types/no-match.input.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/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-experimental-table-feature/index.spec.d.ts +0 -2
- package/dist/transforms/rename-experimental-table-feature/index.spec.d.ts.map +0 -1
- package/dist/transforms/rename-experimental-table-feature/index.spec.js +0 -54
- package/dist/transforms/rename-experimental-table-feature/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,41 @@
|
|
|
1
|
+
// payload.find() relying on the Payload 3 default
|
|
2
|
+
const posts = await payload.find({
|
|
3
|
+
collection: 'posts'
|
|
4
|
+
});
|
|
5
|
+
// payload.findByID() relying on the default
|
|
6
|
+
const post = await payload.findByID({
|
|
7
|
+
id: 1,
|
|
8
|
+
collection: 'posts'
|
|
9
|
+
});
|
|
10
|
+
// Reached through req.payload
|
|
11
|
+
const created = await req.payload.create({
|
|
12
|
+
collection: 'posts',
|
|
13
|
+
data: {
|
|
14
|
+
title: 'hello'
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
// A global operation
|
|
18
|
+
const menu = await payload.findGlobal({
|
|
19
|
+
slug: 'menu'
|
|
20
|
+
});
|
|
21
|
+
// Already explicit — must not change
|
|
22
|
+
const scoped = await payload.find({
|
|
23
|
+
collection: 'posts',
|
|
24
|
+
overrideAccess: false
|
|
25
|
+
});
|
|
26
|
+
// Jobs Local API operations also relied on the Payload 3 default
|
|
27
|
+
await payload.jobs.queue({
|
|
28
|
+
input: {},
|
|
29
|
+
task: 'sync'
|
|
30
|
+
});
|
|
31
|
+
await req.payload.jobs.run({
|
|
32
|
+
silent: true
|
|
33
|
+
});
|
|
34
|
+
await payload.jobs.run();
|
|
35
|
+
await payload.jobs.queue({
|
|
36
|
+
input: {},
|
|
37
|
+
task: 'sync'
|
|
38
|
+
});
|
|
39
|
+
export { };
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=basic.input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/add-override-access-true/basic.input.ts"],"sourcesContent":["import type { Config } from 'payload'\n\n// payload.find() relying on the Payload 3 default\nconst posts = await payload.find({\n collection: 'posts',\n})\n\n// payload.findByID() relying on the default\nconst post = await payload.findByID({\n id: 1,\n collection: 'posts',\n})\n\n// Reached through req.payload\nconst created = await req.payload.create({\n collection: 'posts',\n data: { title: 'hello' },\n})\n\n// A global operation\nconst menu = await payload.findGlobal({\n slug: 'menu',\n})\n\n// Already explicit — must not change\nconst scoped = await payload.find({\n collection: 'posts',\n overrideAccess: false,\n})\n\n// Jobs Local API operations also relied on the Payload 3 default\nawait payload.jobs.queue({ input: {}, task: 'sync' })\nawait req.payload.jobs.run({ silent: true })\nawait payload.jobs.run()\nawait payload.jobs.queue({ input: {}, task: 'sync' } as never)\n"],"names":["posts","payload","find","collection","post","findByID","id","created","req","create","data","title","menu","findGlobal","slug","scoped","overrideAccess","jobs","queue","input","task","run","silent"],"mappings":"AAEA,kDAAkD;AAClD,MAAMA,QAAQ,MAAMC,QAAQC,IAAI,CAAC;IAC/BC,YAAY;AACd;AAEA,4CAA4C;AAC5C,MAAMC,OAAO,MAAMH,QAAQI,QAAQ,CAAC;IAClCC,IAAI;IACJH,YAAY;AACd;AAEA,8BAA8B;AAC9B,MAAMI,UAAU,MAAMC,IAAIP,OAAO,CAACQ,MAAM,CAAC;IACvCN,YAAY;IACZO,MAAM;QAAEC,OAAO;IAAQ;AACzB;AAEA,qBAAqB;AACrB,MAAMC,OAAO,MAAMX,QAAQY,UAAU,CAAC;IACpCC,MAAM;AACR;AAEA,qCAAqC;AACrC,MAAMC,SAAS,MAAMd,QAAQC,IAAI,CAAC;IAChCC,YAAY;IACZa,gBAAgB;AAClB;AAEA,iEAAiE;AACjE,MAAMf,QAAQgB,IAAI,CAACC,KAAK,CAAC;IAAEC,OAAO,CAAC;IAAGC,MAAM;AAAO;AACnD,MAAMZ,IAAIP,OAAO,CAACgB,IAAI,CAACI,GAAG,CAAC;IAAEC,QAAQ;AAAK;AAC1C,MAAMrB,QAAQgB,IAAI,CAACI,GAAG;AACtB,MAAMpB,QAAQgB,IAAI,CAACC,KAAK,CAAC;IAAEC,OAAO,CAAC;IAAGC,MAAM;AAAO;AAlCnD,WAAqC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// payload.find() relying on the Payload 3 default
|
|
2
|
+
const posts = await payload.find({
|
|
3
|
+
collection: 'posts',
|
|
4
|
+
overrideAccess: true
|
|
5
|
+
});
|
|
6
|
+
// payload.findByID() relying on the default
|
|
7
|
+
const post = await payload.findByID({
|
|
8
|
+
id: 1,
|
|
9
|
+
collection: 'posts',
|
|
10
|
+
overrideAccess: true
|
|
11
|
+
});
|
|
12
|
+
// Reached through req.payload
|
|
13
|
+
const created = await req.payload.create({
|
|
14
|
+
collection: 'posts',
|
|
15
|
+
data: {
|
|
16
|
+
title: 'hello'
|
|
17
|
+
},
|
|
18
|
+
overrideAccess: true
|
|
19
|
+
});
|
|
20
|
+
// A global operation
|
|
21
|
+
const menu = await payload.findGlobal({
|
|
22
|
+
slug: 'menu',
|
|
23
|
+
overrideAccess: true
|
|
24
|
+
});
|
|
25
|
+
// Already explicit — must not change
|
|
26
|
+
const scoped = await payload.find({
|
|
27
|
+
collection: 'posts',
|
|
28
|
+
overrideAccess: false
|
|
29
|
+
});
|
|
30
|
+
// Jobs Local API operations also relied on the Payload 3 default
|
|
31
|
+
await payload.jobs.queue({
|
|
32
|
+
input: {},
|
|
33
|
+
task: 'sync',
|
|
34
|
+
overrideAccess: true
|
|
35
|
+
});
|
|
36
|
+
await req.payload.jobs.run({
|
|
37
|
+
silent: true,
|
|
38
|
+
overrideAccess: true
|
|
39
|
+
});
|
|
40
|
+
await payload.jobs.run({
|
|
41
|
+
overrideAccess: true
|
|
42
|
+
});
|
|
43
|
+
await payload.jobs.queue({
|
|
44
|
+
input: {},
|
|
45
|
+
task: 'sync',
|
|
46
|
+
overrideAccess: true
|
|
47
|
+
});
|
|
48
|
+
export { };
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=basic.output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/add-override-access-true/basic.output.ts"],"sourcesContent":["import type { Config } from 'payload'\n\n// payload.find() relying on the Payload 3 default\nconst posts = await payload.find({\n collection: 'posts',\n overrideAccess: true,\n})\n\n// payload.findByID() relying on the default\nconst post = await payload.findByID({\n id: 1,\n collection: 'posts',\n overrideAccess: true,\n})\n\n// Reached through req.payload\nconst created = await req.payload.create({\n collection: 'posts',\n data: { title: 'hello' },\n overrideAccess: true,\n})\n\n// A global operation\nconst menu = await payload.findGlobal({\n slug: 'menu',\n overrideAccess: true,\n})\n\n// Already explicit — must not change\nconst scoped = await payload.find({\n collection: 'posts',\n overrideAccess: false,\n})\n\n// Jobs Local API operations also relied on the Payload 3 default\nawait payload.jobs.queue({ input: {}, task: 'sync', overrideAccess: true })\nawait req.payload.jobs.run({ silent: true, overrideAccess: true })\nawait payload.jobs.run({ overrideAccess: true })\nawait payload.jobs.queue({ input: {}, task: 'sync', overrideAccess: true } as never)\n"],"names":["posts","payload","find","collection","overrideAccess","post","findByID","id","created","req","create","data","title","menu","findGlobal","slug","scoped","jobs","queue","input","task","run","silent"],"mappings":"AAEA,kDAAkD;AAClD,MAAMA,QAAQ,MAAMC,QAAQC,IAAI,CAAC;IAC/BC,YAAY;IACZC,gBAAgB;AAClB;AAEA,4CAA4C;AAC5C,MAAMC,OAAO,MAAMJ,QAAQK,QAAQ,CAAC;IAClCC,IAAI;IACJJ,YAAY;IACZC,gBAAgB;AAClB;AAEA,8BAA8B;AAC9B,MAAMI,UAAU,MAAMC,IAAIR,OAAO,CAACS,MAAM,CAAC;IACvCP,YAAY;IACZQ,MAAM;QAAEC,OAAO;IAAQ;IACvBR,gBAAgB;AAClB;AAEA,qBAAqB;AACrB,MAAMS,OAAO,MAAMZ,QAAQa,UAAU,CAAC;IACpCC,MAAM;IACNX,gBAAgB;AAClB;AAEA,qCAAqC;AACrC,MAAMY,SAAS,MAAMf,QAAQC,IAAI,CAAC;IAChCC,YAAY;IACZC,gBAAgB;AAClB;AAEA,iEAAiE;AACjE,MAAMH,QAAQgB,IAAI,CAACC,KAAK,CAAC;IAAEC,OAAO,CAAC;IAAGC,MAAM;IAAQhB,gBAAgB;AAAK;AACzE,MAAMK,IAAIR,OAAO,CAACgB,IAAI,CAACI,GAAG,CAAC;IAAEC,QAAQ;IAAMlB,gBAAgB;AAAK;AAChE,MAAMH,QAAQgB,IAAI,CAACI,GAAG,CAAC;IAAEjB,gBAAgB;AAAK;AAC9C,MAAMH,QAAQgB,IAAI,CAACC,KAAK,CAAC;IAAEC,OAAO,CAAC;IAAGC,MAAM;IAAQhB,gBAAgB;AAAK;AAtCzE,WAAqC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// A comment between two properties previously corrupted the preceding comma
|
|
2
|
+
// and placed the insert before the trailing property instead of at the end.
|
|
3
|
+
const doc = await payload.findByID({
|
|
4
|
+
id,
|
|
5
|
+
collection,
|
|
6
|
+
req,
|
|
7
|
+
// Include trashed documents when the document being synced is trashed
|
|
8
|
+
trash: isTrashDocument
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=comment-between-properties.input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/add-override-access-true/comment-between-properties.input.ts"],"sourcesContent":["// A comment between two properties previously corrupted the preceding comma\n// and placed the insert before the trailing property instead of at the end.\nconst doc = await payload.findByID({\n id,\n collection,\n req,\n // Include trashed documents when the document being synced is trashed\n trash: isTrashDocument,\n})\n"],"names":["doc","payload","findByID","id","collection","req","trash","isTrashDocument"],"mappings":"AAAA,4EAA4E;AAC5E,4EAA4E;AAC5E,MAAMA,MAAM,MAAMC,QAAQC,QAAQ,CAAC;IACjCC;IACAC;IACAC;IACA,sEAAsE;IACtEC,OAAOC;AACT"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// A comment between two properties previously corrupted the preceding comma
|
|
2
|
+
// and placed the insert before the trailing property instead of at the end.
|
|
3
|
+
const doc = await payload.findByID({
|
|
4
|
+
id,
|
|
5
|
+
collection,
|
|
6
|
+
req,
|
|
7
|
+
// Include trashed documents when the document being synced is trashed
|
|
8
|
+
trash: isTrashDocument,
|
|
9
|
+
overrideAccess: true
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=comment-between-properties.output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/add-override-access-true/comment-between-properties.output.ts"],"sourcesContent":["// A comment between two properties previously corrupted the preceding comma\n// and placed the insert before the trailing property instead of at the end.\nconst doc = await payload.findByID({\n id,\n collection,\n req,\n // Include trashed documents when the document being synced is trashed\n trash: isTrashDocument,\n overrideAccess: true,\n})\n"],"names":["doc","payload","findByID","id","collection","req","trash","isTrashDocument","overrideAccess"],"mappings":"AAAA,4EAA4E;AAC5E,4EAA4E;AAC5E,MAAMA,MAAM,MAAMC,QAAQC,QAAQ,CAAC;IACjCC;IACAC;IACAC;IACA,sEAAsE;IACtEC,OAAOC;IACPC,gBAAgB;AAClB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Transform } from '../../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Adds an explicit `overrideAccess: true` to Local API calls that omit it,
|
|
4
|
+
* preserving the Payload 3 default of skipping access control now that
|
|
5
|
+
* Payload 4 changes the default to `false`.
|
|
6
|
+
*
|
|
7
|
+
* Only matches calls on a receiver named `payload` — `payload.find(...)`,
|
|
8
|
+
* `req.payload.find(...)`, and their `payload.jobs.*` equivalents. Internal
|
|
9
|
+
* operations such as `findOperation(...)` are deliberately never matched: a
|
|
10
|
+
* missing value means `false` there, so inserting `true` would disable access
|
|
11
|
+
* control on every REST and GraphQL request.
|
|
12
|
+
*
|
|
13
|
+
* Detection is purely syntactic so the transform works on JavaScript projects,
|
|
14
|
+
* where ts-morph has no type information to consult.
|
|
15
|
+
*
|
|
16
|
+
* The property is appended rather than sorted. Callers are expected to run
|
|
17
|
+
* ESLint's `perfectionist/sort-objects` fixer afterwards.
|
|
18
|
+
*/
|
|
19
|
+
export declare const addOverrideAccessTrue: Transform;
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transforms/add-override-access-true/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAkC/C;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAwEnC,CAAA"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { Node, SyntaxKind } from 'ts-morph';
|
|
2
|
+
/**
|
|
3
|
+
* Local API methods that accept `overrideAccess`.
|
|
4
|
+
*
|
|
5
|
+
* Excludes `auth` and `verifyEmail`, which have no such option, and
|
|
6
|
+
* `resetPassword`, which has no destructuring default to preserve.
|
|
7
|
+
*/ const LOCAL_API_OPERATIONS = new Set([
|
|
8
|
+
'count',
|
|
9
|
+
'countGlobalVersions',
|
|
10
|
+
'countVersions',
|
|
11
|
+
'create',
|
|
12
|
+
'delete',
|
|
13
|
+
'duplicate',
|
|
14
|
+
'find',
|
|
15
|
+
'findByID',
|
|
16
|
+
'findDistinct',
|
|
17
|
+
'findGlobal',
|
|
18
|
+
'findGlobalVersionByID',
|
|
19
|
+
'findGlobalVersions',
|
|
20
|
+
'findVersionByID',
|
|
21
|
+
'findVersions',
|
|
22
|
+
'forgotPassword',
|
|
23
|
+
'login',
|
|
24
|
+
'restoreGlobalVersion',
|
|
25
|
+
'restoreVersion',
|
|
26
|
+
'unlock',
|
|
27
|
+
'update',
|
|
28
|
+
'updateGlobal'
|
|
29
|
+
]);
|
|
30
|
+
const JOBS_LOCAL_API_OPERATIONS = new Set([
|
|
31
|
+
'cancel',
|
|
32
|
+
'cancelByID',
|
|
33
|
+
'queue',
|
|
34
|
+
'run',
|
|
35
|
+
'runByID'
|
|
36
|
+
]);
|
|
37
|
+
/**
|
|
38
|
+
* Adds an explicit `overrideAccess: true` to Local API calls that omit it,
|
|
39
|
+
* preserving the Payload 3 default of skipping access control now that
|
|
40
|
+
* Payload 4 changes the default to `false`.
|
|
41
|
+
*
|
|
42
|
+
* Only matches calls on a receiver named `payload` — `payload.find(...)`,
|
|
43
|
+
* `req.payload.find(...)`, and their `payload.jobs.*` equivalents. Internal
|
|
44
|
+
* operations such as `findOperation(...)` are deliberately never matched: a
|
|
45
|
+
* missing value means `false` there, so inserting `true` would disable access
|
|
46
|
+
* control on every REST and GraphQL request.
|
|
47
|
+
*
|
|
48
|
+
* Detection is purely syntactic so the transform works on JavaScript projects,
|
|
49
|
+
* where ts-morph has no type information to consult.
|
|
50
|
+
*
|
|
51
|
+
* The property is appended rather than sorted. Callers are expected to run
|
|
52
|
+
* ESLint's `perfectionist/sort-objects` fixer afterwards.
|
|
53
|
+
*/ export const addOverrideAccessTrue = {
|
|
54
|
+
name: 'add-override-access-true',
|
|
55
|
+
apply: ({ project })=>{
|
|
56
|
+
const filesChanged = new Set();
|
|
57
|
+
for (const sourceFile of project.getSourceFiles()){
|
|
58
|
+
const insertions = [];
|
|
59
|
+
sourceFile.forEachDescendant((node)=>{
|
|
60
|
+
if (!Node.isCallExpression(node)) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const callee = node.getExpression();
|
|
64
|
+
if (!Node.isPropertyAccessExpression(callee)) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const receiver = callee.getExpression();
|
|
68
|
+
const isLocalAPICall = LOCAL_API_OPERATIONS.has(callee.getName()) && isPayloadReceiver({
|
|
69
|
+
receiver
|
|
70
|
+
});
|
|
71
|
+
const isJobsLocalAPICall = JOBS_LOCAL_API_OPERATIONS.has(callee.getName()) && isPayloadJobsReceiver({
|
|
72
|
+
receiver
|
|
73
|
+
});
|
|
74
|
+
if (!isLocalAPICall && !isJobsLocalAPICall) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const [firstArg] = node.getArguments();
|
|
78
|
+
if (!firstArg && isJobsLocalAPICall) {
|
|
79
|
+
const openParen = node.getFirstChildByKindOrThrow(SyntaxKind.OpenParenToken);
|
|
80
|
+
insertions.push({
|
|
81
|
+
position: openParen.getEnd(),
|
|
82
|
+
text: '{ overrideAccess: true }'
|
|
83
|
+
});
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const object = firstArg && getObjectLiteral({
|
|
87
|
+
node: firstArg
|
|
88
|
+
});
|
|
89
|
+
if (!object) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
if (object.getProperty('overrideAccess')) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
// A spread may already carry the property. Refuse to guess.
|
|
96
|
+
if (object.getProperties().some((property)=>Node.isSpreadAssignment(property))) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
insertions.push(planInsertion({
|
|
100
|
+
object
|
|
101
|
+
}));
|
|
102
|
+
});
|
|
103
|
+
if (insertions.length === 0) {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
// Applying back to front keeps every earlier offset valid, and means nested
|
|
107
|
+
// calls are handled before the call that contains them.
|
|
108
|
+
for (const { position, text } of insertions.sort((a, b)=>b.position - a.position)){
|
|
109
|
+
sourceFile.insertText(position, text);
|
|
110
|
+
}
|
|
111
|
+
filesChanged.add(sourceFile.getFilePath());
|
|
112
|
+
}
|
|
113
|
+
return {
|
|
114
|
+
filesChanged: [
|
|
115
|
+
...filesChanged
|
|
116
|
+
]
|
|
117
|
+
};
|
|
118
|
+
},
|
|
119
|
+
description: 'Add an explicit `overrideAccess: true` to Local API calls that omit it. Payload 4 changes the default to `false`; `true` preserves the Payload 3 default of skipping access control. Review each inserted value and switch to `false` wherever the operation acts on behalf of a user.'
|
|
120
|
+
};
|
|
121
|
+
/** Handles an object wrapped in the common `as SomeType` assertion. */ const getObjectLiteral = ({ node })=>{
|
|
122
|
+
if (Node.isObjectLiteralExpression(node)) {
|
|
123
|
+
return node;
|
|
124
|
+
}
|
|
125
|
+
if (Node.isAsExpression(node)) {
|
|
126
|
+
const expression = node.getExpression();
|
|
127
|
+
if (Node.isObjectLiteralExpression(expression)) {
|
|
128
|
+
return expression;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* Works out where to put `overrideAccess: true` and what to write, without
|
|
134
|
+
* asking ts-morph to insert a property node.
|
|
135
|
+
*
|
|
136
|
+
* ts-morph's property insertion mishandles the comma whenever the object holds a
|
|
137
|
+
* comment — it emitted `req,,` for a comment sitting between two properties, and
|
|
138
|
+
* a double comma for one trailing the last property. Both produce a file that no
|
|
139
|
+
* longer parses, which in turn makes ESLint report nothing at all. Writing the
|
|
140
|
+
* text ourselves sidesteps the whole problem.
|
|
141
|
+
*
|
|
142
|
+
* The property goes last so the surrounding formatting is left alone. Callers are
|
|
143
|
+
* expected to run ESLint's `perfectionist/sort-objects` fixer afterwards.
|
|
144
|
+
*/ const planInsertion = ({ object })=>{
|
|
145
|
+
const properties = object.getProperties();
|
|
146
|
+
const isSingleLine = !object.getText().includes('\n');
|
|
147
|
+
if (properties.length === 0) {
|
|
148
|
+
const openBrace = object.getFirstChildByKindOrThrow(SyntaxKind.OpenBraceToken);
|
|
149
|
+
return {
|
|
150
|
+
position: openBrace.getEnd(),
|
|
151
|
+
text: isSingleLine ? ' overrideAccess: true ' : `\n overrideAccess: true,`
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
const lastProperty = properties[properties.length - 1];
|
|
155
|
+
const fullText = object.getSourceFile().getFullText();
|
|
156
|
+
// Step past trivia to find an existing trailing comma, including when a
|
|
157
|
+
// comment sits between the last property and the comma.
|
|
158
|
+
let cursor = lastProperty.getEnd();
|
|
159
|
+
while(cursor < object.getEnd()){
|
|
160
|
+
if (/\s/.test(fullText[cursor])) {
|
|
161
|
+
cursor += 1;
|
|
162
|
+
} else if (fullText.startsWith('//', cursor)) {
|
|
163
|
+
const newline = fullText.indexOf('\n', cursor + 2);
|
|
164
|
+
cursor = newline === -1 ? object.getEnd() : newline;
|
|
165
|
+
} else if (fullText.startsWith('/*', cursor)) {
|
|
166
|
+
const commentEnd = fullText.indexOf('*/', cursor + 2);
|
|
167
|
+
cursor = commentEnd === -1 ? object.getEnd() : commentEnd + 2;
|
|
168
|
+
} else {
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
const hasTrailingComma = fullText[cursor] === ',';
|
|
173
|
+
const position = hasTrailingComma ? cursor + 1 : lastProperty.getEnd();
|
|
174
|
+
if (isSingleLine) {
|
|
175
|
+
return {
|
|
176
|
+
position,
|
|
177
|
+
text: hasTrailingComma ? ' overrideAccess: true,' : ', overrideAccess: true'
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
const indent = lastProperty.getIndentationText();
|
|
181
|
+
return {
|
|
182
|
+
position,
|
|
183
|
+
text: hasTrailingComma ? `\n${indent}overrideAccess: true,` : `,\n${indent}overrideAccess: true,`
|
|
184
|
+
};
|
|
185
|
+
};
|
|
186
|
+
/**
|
|
187
|
+
* True when the receiver of a call is a Payload instance, recognised
|
|
188
|
+
* syntactically as an identifier named `payload` or any property access ending
|
|
189
|
+
* in `.payload`.
|
|
190
|
+
*/ const isPayloadReceiver = ({ receiver })=>{
|
|
191
|
+
if (Node.isIdentifier(receiver)) {
|
|
192
|
+
return receiver.getText() === 'payload';
|
|
193
|
+
}
|
|
194
|
+
if (Node.isPropertyAccessExpression(receiver)) {
|
|
195
|
+
return receiver.getName() === 'payload';
|
|
196
|
+
}
|
|
197
|
+
return false;
|
|
198
|
+
};
|
|
199
|
+
/** True for `payload.jobs` and property-access chains ending in `.payload.jobs`. */ const isPayloadJobsReceiver = ({ receiver })=>{
|
|
200
|
+
if (!Node.isPropertyAccessExpression(receiver) || receiver.getName() !== 'jobs') {
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
return isPayloadReceiver({
|
|
204
|
+
receiver: receiver.getExpression()
|
|
205
|
+
});
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/add-override-access-true/index.ts"],"sourcesContent":["import type { ObjectLiteralExpression } from 'ts-morph'\n\nimport { Node, SyntaxKind } from 'ts-morph'\n\nimport type { Transform } from '../../types.js'\n\n/**\n * Local API methods that accept `overrideAccess`.\n *\n * Excludes `auth` and `verifyEmail`, which have no such option, and\n * `resetPassword`, which has no destructuring default to preserve.\n */\nconst LOCAL_API_OPERATIONS = new Set([\n 'count',\n 'countGlobalVersions',\n 'countVersions',\n 'create',\n 'delete',\n 'duplicate',\n 'find',\n 'findByID',\n 'findDistinct',\n 'findGlobal',\n 'findGlobalVersionByID',\n 'findGlobalVersions',\n 'findVersionByID',\n 'findVersions',\n 'forgotPassword',\n 'login',\n 'restoreGlobalVersion',\n 'restoreVersion',\n 'unlock',\n 'update',\n 'updateGlobal',\n])\n\nconst JOBS_LOCAL_API_OPERATIONS = new Set(['cancel', 'cancelByID', 'queue', 'run', 'runByID'])\n\n/**\n * Adds an explicit `overrideAccess: true` to Local API calls that omit it,\n * preserving the Payload 3 default of skipping access control now that\n * Payload 4 changes the default to `false`.\n *\n * Only matches calls on a receiver named `payload` — `payload.find(...)`,\n * `req.payload.find(...)`, and their `payload.jobs.*` equivalents. Internal\n * operations such as `findOperation(...)` are deliberately never matched: a\n * missing value means `false` there, so inserting `true` would disable access\n * control on every REST and GraphQL request.\n *\n * Detection is purely syntactic so the transform works on JavaScript projects,\n * where ts-morph has no type information to consult.\n *\n * The property is appended rather than sorted. Callers are expected to run\n * ESLint's `perfectionist/sort-objects` fixer afterwards.\n */\nexport const addOverrideAccessTrue: Transform = {\n name: 'add-override-access-true',\n apply: ({ project }) => {\n const filesChanged = new Set<string>()\n\n for (const sourceFile of project.getSourceFiles()) {\n const insertions: Insertion[] = []\n\n sourceFile.forEachDescendant((node) => {\n if (!Node.isCallExpression(node)) {\n return\n }\n\n const callee = node.getExpression()\n\n if (!Node.isPropertyAccessExpression(callee)) {\n return\n }\n\n const receiver = callee.getExpression()\n const isLocalAPICall =\n LOCAL_API_OPERATIONS.has(callee.getName()) && isPayloadReceiver({ receiver })\n const isJobsLocalAPICall =\n JOBS_LOCAL_API_OPERATIONS.has(callee.getName()) && isPayloadJobsReceiver({ receiver })\n\n if (!isLocalAPICall && !isJobsLocalAPICall) {\n return\n }\n\n const [firstArg] = node.getArguments()\n\n if (!firstArg && isJobsLocalAPICall) {\n const openParen = node.getFirstChildByKindOrThrow(SyntaxKind.OpenParenToken)\n insertions.push({ position: openParen.getEnd(), text: '{ overrideAccess: true }' })\n return\n }\n\n const object = firstArg && getObjectLiteral({ node: firstArg })\n\n if (!object) {\n return\n }\n\n if (object.getProperty('overrideAccess')) {\n return\n }\n\n // A spread may already carry the property. Refuse to guess.\n if (object.getProperties().some((property) => Node.isSpreadAssignment(property))) {\n return\n }\n\n insertions.push(planInsertion({ object }))\n })\n\n if (insertions.length === 0) {\n continue\n }\n\n // Applying back to front keeps every earlier offset valid, and means nested\n // calls are handled before the call that contains them.\n for (const { position, text } of insertions.sort((a, b) => b.position - a.position)) {\n sourceFile.insertText(position, text)\n }\n\n filesChanged.add(sourceFile.getFilePath())\n }\n\n return { filesChanged: [...filesChanged] }\n },\n description:\n 'Add an explicit `overrideAccess: true` to Local API calls that omit it. Payload 4 changes the default to `false`; `true` preserves the Payload 3 default of skipping access control. Review each inserted value and switch to `false` wherever the operation acts on behalf of a user.',\n}\n\ntype Insertion = {\n position: number\n text: string\n}\n\n/** Handles an object wrapped in the common `as SomeType` assertion. */\nconst getObjectLiteral = ({ node }: { node: Node }): ObjectLiteralExpression | undefined => {\n if (Node.isObjectLiteralExpression(node)) {\n return node\n }\n\n if (Node.isAsExpression(node)) {\n const expression = node.getExpression()\n\n if (Node.isObjectLiteralExpression(expression)) {\n return expression\n }\n }\n}\n\n/**\n * Works out where to put `overrideAccess: true` and what to write, without\n * asking ts-morph to insert a property node.\n *\n * ts-morph's property insertion mishandles the comma whenever the object holds a\n * comment — it emitted `req,,` for a comment sitting between two properties, and\n * a double comma for one trailing the last property. Both produce a file that no\n * longer parses, which in turn makes ESLint report nothing at all. Writing the\n * text ourselves sidesteps the whole problem.\n *\n * The property goes last so the surrounding formatting is left alone. Callers are\n * expected to run ESLint's `perfectionist/sort-objects` fixer afterwards.\n */\nconst planInsertion = ({ object }: { object: ObjectLiteralExpression }): Insertion => {\n const properties = object.getProperties()\n const isSingleLine = !object.getText().includes('\\n')\n\n if (properties.length === 0) {\n const openBrace = object.getFirstChildByKindOrThrow(SyntaxKind.OpenBraceToken)\n\n return {\n position: openBrace.getEnd(),\n text: isSingleLine ? ' overrideAccess: true ' : `\\n overrideAccess: true,`,\n }\n }\n\n const lastProperty = properties[properties.length - 1]!\n const fullText = object.getSourceFile().getFullText()\n\n // Step past trivia to find an existing trailing comma, including when a\n // comment sits between the last property and the comma.\n let cursor = lastProperty.getEnd()\n\n while (cursor < object.getEnd()) {\n if (/\\s/.test(fullText[cursor]!)) {\n cursor += 1\n } else if (fullText.startsWith('//', cursor)) {\n const newline = fullText.indexOf('\\n', cursor + 2)\n cursor = newline === -1 ? object.getEnd() : newline\n } else if (fullText.startsWith('/*', cursor)) {\n const commentEnd = fullText.indexOf('*/', cursor + 2)\n cursor = commentEnd === -1 ? object.getEnd() : commentEnd + 2\n } else {\n break\n }\n }\n\n const hasTrailingComma = fullText[cursor] === ','\n const position = hasTrailingComma ? cursor + 1 : lastProperty.getEnd()\n\n if (isSingleLine) {\n return {\n position,\n text: hasTrailingComma ? ' overrideAccess: true,' : ', overrideAccess: true',\n }\n }\n\n const indent = lastProperty.getIndentationText()\n\n return {\n position,\n text: hasTrailingComma\n ? `\\n${indent}overrideAccess: true,`\n : `,\\n${indent}overrideAccess: true,`,\n }\n}\n\n/**\n * True when the receiver of a call is a Payload instance, recognised\n * syntactically as an identifier named `payload` or any property access ending\n * in `.payload`.\n */\nconst isPayloadReceiver = ({ receiver }: { receiver: Node }): boolean => {\n if (Node.isIdentifier(receiver)) {\n return receiver.getText() === 'payload'\n }\n\n if (Node.isPropertyAccessExpression(receiver)) {\n return receiver.getName() === 'payload'\n }\n\n return false\n}\n\n/** True for `payload.jobs` and property-access chains ending in `.payload.jobs`. */\nconst isPayloadJobsReceiver = ({ receiver }: { receiver: Node }): boolean => {\n if (!Node.isPropertyAccessExpression(receiver) || receiver.getName() !== 'jobs') {\n return false\n }\n\n return isPayloadReceiver({ receiver: receiver.getExpression() })\n}\n"],"names":["Node","SyntaxKind","LOCAL_API_OPERATIONS","Set","JOBS_LOCAL_API_OPERATIONS","addOverrideAccessTrue","name","apply","project","filesChanged","sourceFile","getSourceFiles","insertions","forEachDescendant","node","isCallExpression","callee","getExpression","isPropertyAccessExpression","receiver","isLocalAPICall","has","getName","isPayloadReceiver","isJobsLocalAPICall","isPayloadJobsReceiver","firstArg","getArguments","openParen","getFirstChildByKindOrThrow","OpenParenToken","push","position","getEnd","text","object","getObjectLiteral","getProperty","getProperties","some","property","isSpreadAssignment","planInsertion","length","sort","a","b","insertText","add","getFilePath","description","isObjectLiteralExpression","isAsExpression","expression","properties","isSingleLine","getText","includes","openBrace","OpenBraceToken","lastProperty","fullText","getSourceFile","getFullText","cursor","test","startsWith","newline","indexOf","commentEnd","hasTrailingComma","indent","getIndentationText","isIdentifier"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"javascript.input.d.ts","sourceRoot":"","sources":["../../../src/transforms/add-override-access-true/javascript.input.js"],"names":[],"mappings":"AAGA,eAAO,MAAM,GAAG;;;;EAgBf,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// A JavaScript project has no tsconfig.json, so ts-morph has no type
|
|
2
|
+
// information. Detection must stay purely syntactic.
|
|
3
|
+
export const run = async (payload, req)=>{
|
|
4
|
+
const posts = await payload.find({
|
|
5
|
+
collection: 'posts'
|
|
6
|
+
});
|
|
7
|
+
const created = await req.payload.create({
|
|
8
|
+
collection: 'posts',
|
|
9
|
+
data: {
|
|
10
|
+
title: 'hello'
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
const scoped = await payload.find({
|
|
14
|
+
collection: 'posts',
|
|
15
|
+
overrideAccess: false
|
|
16
|
+
});
|
|
17
|
+
return {
|
|
18
|
+
created,
|
|
19
|
+
posts,
|
|
20
|
+
scoped
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=javascript.input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/add-override-access-true/javascript.input.js"],"sourcesContent":["// A JavaScript project has no tsconfig.json, so ts-morph has no type\n// information. Detection must stay purely syntactic.\n\nexport const run = async (payload, req) => {\n const posts = await payload.find({\n collection: 'posts',\n })\n\n const created = await req.payload.create({\n collection: 'posts',\n data: { title: 'hello' },\n })\n\n const scoped = await payload.find({\n collection: 'posts',\n overrideAccess: false,\n })\n\n return { created, posts, scoped }\n}\n"],"names":["run","payload","req","posts","find","collection","created","create","data","title","scoped","overrideAccess"],"mappings":"AAAA,qEAAqE;AACrE,qDAAqD;AAErD,OAAO,MAAMA,MAAM,OAAOC,SAASC;IACjC,MAAMC,QAAQ,MAAMF,QAAQG,IAAI,CAAC;QAC/BC,YAAY;IACd;IAEA,MAAMC,UAAU,MAAMJ,IAAID,OAAO,CAACM,MAAM,CAAC;QACvCF,YAAY;QACZG,MAAM;YAAEC,OAAO;QAAQ;IACzB;IAEA,MAAMC,SAAS,MAAMT,QAAQG,IAAI,CAAC;QAChCC,YAAY;QACZM,gBAAgB;IAClB;IAEA,OAAO;QAAEL;QAASH;QAAOO;IAAO;AAClC,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"javascript.output.d.ts","sourceRoot":"","sources":["../../../src/transforms/add-override-access-true/javascript.output.js"],"names":[],"mappings":"AAGA,eAAO,MAAM,GAAG;;;;EAkBf,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// A JavaScript project has no tsconfig.json, so ts-morph has no type
|
|
2
|
+
// information. Detection must stay purely syntactic.
|
|
3
|
+
export const run = async (payload, req)=>{
|
|
4
|
+
const posts = await payload.find({
|
|
5
|
+
collection: 'posts',
|
|
6
|
+
overrideAccess: true
|
|
7
|
+
});
|
|
8
|
+
const created = await req.payload.create({
|
|
9
|
+
collection: 'posts',
|
|
10
|
+
data: {
|
|
11
|
+
title: 'hello'
|
|
12
|
+
},
|
|
13
|
+
overrideAccess: true
|
|
14
|
+
});
|
|
15
|
+
const scoped = await payload.find({
|
|
16
|
+
collection: 'posts',
|
|
17
|
+
overrideAccess: false
|
|
18
|
+
});
|
|
19
|
+
return {
|
|
20
|
+
created,
|
|
21
|
+
posts,
|
|
22
|
+
scoped
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=javascript.output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/add-override-access-true/javascript.output.js"],"sourcesContent":["// A JavaScript project has no tsconfig.json, so ts-morph has no type\n// information. Detection must stay purely syntactic.\n\nexport const run = async (payload, req) => {\n const posts = await payload.find({\n collection: 'posts',\n overrideAccess: true,\n })\n\n const created = await req.payload.create({\n collection: 'posts',\n data: { title: 'hello' },\n overrideAccess: true,\n })\n\n const scoped = await payload.find({\n collection: 'posts',\n overrideAccess: false,\n })\n\n return { created, posts, scoped }\n}\n"],"names":["run","payload","req","posts","find","collection","overrideAccess","created","create","data","title","scoped"],"mappings":"AAAA,qEAAqE;AACrE,qDAAqD;AAErD,OAAO,MAAMA,MAAM,OAAOC,SAASC;IACjC,MAAMC,QAAQ,MAAMF,QAAQG,IAAI,CAAC;QAC/BC,YAAY;QACZC,gBAAgB;IAClB;IAEA,MAAMC,UAAU,MAAML,IAAID,OAAO,CAACO,MAAM,CAAC;QACvCH,YAAY;QACZI,MAAM;YAAEC,OAAO;QAAQ;QACvBJ,gBAAgB;IAClB;IAEA,MAAMK,SAAS,MAAMV,QAAQG,IAAI,CAAC;QAChCC,YAAY;QACZC,gBAAgB;IAClB;IAEA,OAAO;QAAEC;QAASJ;QAAOQ;IAAO;AAClC,EAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { findOperation, updateOperation } from 'payload';
|
|
2
|
+
// Internal operations: a missing value means `false` here, so inserting `true`
|
|
3
|
+
// would disable access control on every REST and GraphQL request.
|
|
4
|
+
const internalFind = await findOperation({
|
|
5
|
+
collection,
|
|
6
|
+
req
|
|
7
|
+
});
|
|
8
|
+
const internalUpdate = await updateOperation({
|
|
9
|
+
collection,
|
|
10
|
+
data: {
|
|
11
|
+
title: 'hello'
|
|
12
|
+
},
|
|
13
|
+
req
|
|
14
|
+
});
|
|
15
|
+
// Already required in Payload 3 — never touched.
|
|
16
|
+
const reset = await payload.resetPassword({
|
|
17
|
+
collection: 'users',
|
|
18
|
+
data: {
|
|
19
|
+
password: 'x',
|
|
20
|
+
token: 'y'
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
// No overrideAccess option exists on these.
|
|
24
|
+
const authed = await payload.auth({
|
|
25
|
+
headers: req.headers
|
|
26
|
+
});
|
|
27
|
+
const verified = await payload.verifyEmail({
|
|
28
|
+
collection: 'users',
|
|
29
|
+
token: 'y'
|
|
30
|
+
});
|
|
31
|
+
// A spread may already carry the property. The transform must not guess.
|
|
32
|
+
const spread = await payload.find({
|
|
33
|
+
...baseArgs
|
|
34
|
+
});
|
|
35
|
+
// Not a Payload receiver.
|
|
36
|
+
const elsewhere = await someService.find({
|
|
37
|
+
collection: 'posts'
|
|
38
|
+
});
|
|
39
|
+
// Not an object literal argument.
|
|
40
|
+
const forwarded = await payload.find(buildArgs());
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=non-matching.input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/add-override-access-true/non-matching.input.ts"],"sourcesContent":["import { findOperation, updateOperation } from 'payload'\n\n// Internal operations: a missing value means `false` here, so inserting `true`\n// would disable access control on every REST and GraphQL request.\nconst internalFind = await findOperation({\n collection,\n req,\n})\n\nconst internalUpdate = await updateOperation({\n collection,\n data: { title: 'hello' },\n req,\n})\n\n// Already required in Payload 3 — never touched.\nconst reset = await payload.resetPassword({\n collection: 'users',\n data: { password: 'x', token: 'y' },\n})\n\n// No overrideAccess option exists on these.\nconst authed = await payload.auth({\n headers: req.headers,\n})\n\nconst verified = await payload.verifyEmail({\n collection: 'users',\n token: 'y',\n})\n\n// A spread may already carry the property. The transform must not guess.\nconst spread = await payload.find({\n ...baseArgs,\n})\n\n// Not a Payload receiver.\nconst elsewhere = await someService.find({\n collection: 'posts',\n})\n\n// Not an object literal argument.\nconst forwarded = await payload.find(buildArgs())\n"],"names":["findOperation","updateOperation","internalFind","collection","req","internalUpdate","data","title","reset","payload","resetPassword","password","token","authed","auth","headers","verified","verifyEmail","spread","find","baseArgs","elsewhere","someService","forwarded","buildArgs"],"mappings":"AAAA,SAASA,aAAa,EAAEC,eAAe,QAAQ,UAAS;AAExD,+EAA+E;AAC/E,kEAAkE;AAClE,MAAMC,eAAe,MAAMF,cAAc;IACvCG;IACAC;AACF;AAEA,MAAMC,iBAAiB,MAAMJ,gBAAgB;IAC3CE;IACAG,MAAM;QAAEC,OAAO;IAAQ;IACvBH;AACF;AAEA,iDAAiD;AACjD,MAAMI,QAAQ,MAAMC,QAAQC,aAAa,CAAC;IACxCP,YAAY;IACZG,MAAM;QAAEK,UAAU;QAAKC,OAAO;IAAI;AACpC;AAEA,4CAA4C;AAC5C,MAAMC,SAAS,MAAMJ,QAAQK,IAAI,CAAC;IAChCC,SAASX,IAAIW,OAAO;AACtB;AAEA,MAAMC,WAAW,MAAMP,QAAQQ,WAAW,CAAC;IACzCd,YAAY;IACZS,OAAO;AACT;AAEA,yEAAyE;AACzE,MAAMM,SAAS,MAAMT,QAAQU,IAAI,CAAC;IAChC,GAAGC,QAAQ;AACb;AAEA,0BAA0B;AAC1B,MAAMC,YAAY,MAAMC,YAAYH,IAAI,CAAC;IACvChB,YAAY;AACd;AAEA,kCAAkC;AAClC,MAAMoB,YAAY,MAAMd,QAAQU,IAAI,CAACK"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { findOperation, updateOperation } from 'payload';
|
|
2
|
+
// Internal operations: a missing value means `false` here, so inserting `true`
|
|
3
|
+
// would disable access control on every REST and GraphQL request.
|
|
4
|
+
const internalFind = await findOperation({
|
|
5
|
+
collection,
|
|
6
|
+
req
|
|
7
|
+
});
|
|
8
|
+
const internalUpdate = await updateOperation({
|
|
9
|
+
collection,
|
|
10
|
+
data: {
|
|
11
|
+
title: 'hello'
|
|
12
|
+
},
|
|
13
|
+
req
|
|
14
|
+
});
|
|
15
|
+
// Already required in Payload 3 — never touched.
|
|
16
|
+
const reset = await payload.resetPassword({
|
|
17
|
+
collection: 'users',
|
|
18
|
+
data: {
|
|
19
|
+
password: 'x',
|
|
20
|
+
token: 'y'
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
// No overrideAccess option exists on these.
|
|
24
|
+
const authed = await payload.auth({
|
|
25
|
+
headers: req.headers
|
|
26
|
+
});
|
|
27
|
+
const verified = await payload.verifyEmail({
|
|
28
|
+
collection: 'users',
|
|
29
|
+
token: 'y'
|
|
30
|
+
});
|
|
31
|
+
// A spread may already carry the property. The transform must not guess.
|
|
32
|
+
const spread = await payload.find({
|
|
33
|
+
...baseArgs
|
|
34
|
+
});
|
|
35
|
+
// Not a Payload receiver.
|
|
36
|
+
const elsewhere = await someService.find({
|
|
37
|
+
collection: 'posts'
|
|
38
|
+
});
|
|
39
|
+
// Not an object literal argument.
|
|
40
|
+
const forwarded = await payload.find(buildArgs());
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=non-matching.output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/add-override-access-true/non-matching.output.ts"],"sourcesContent":["import { findOperation, updateOperation } from 'payload'\n\n// Internal operations: a missing value means `false` here, so inserting `true`\n// would disable access control on every REST and GraphQL request.\nconst internalFind = await findOperation({\n collection,\n req,\n})\n\nconst internalUpdate = await updateOperation({\n collection,\n data: { title: 'hello' },\n req,\n})\n\n// Already required in Payload 3 — never touched.\nconst reset = await payload.resetPassword({\n collection: 'users',\n data: { password: 'x', token: 'y' },\n})\n\n// No overrideAccess option exists on these.\nconst authed = await payload.auth({\n headers: req.headers,\n})\n\nconst verified = await payload.verifyEmail({\n collection: 'users',\n token: 'y',\n})\n\n// A spread may already carry the property. The transform must not guess.\nconst spread = await payload.find({\n ...baseArgs,\n})\n\n// Not a Payload receiver.\nconst elsewhere = await someService.find({\n collection: 'posts',\n})\n\n// Not an object literal argument.\nconst forwarded = await payload.find(buildArgs())\n"],"names":["findOperation","updateOperation","internalFind","collection","req","internalUpdate","data","title","reset","payload","resetPassword","password","token","authed","auth","headers","verified","verifyEmail","spread","find","baseArgs","elsewhere","someService","forwarded","buildArgs"],"mappings":"AAAA,SAASA,aAAa,EAAEC,eAAe,QAAQ,UAAS;AAExD,+EAA+E;AAC/E,kEAAkE;AAClE,MAAMC,eAAe,MAAMF,cAAc;IACvCG;IACAC;AACF;AAEA,MAAMC,iBAAiB,MAAMJ,gBAAgB;IAC3CE;IACAG,MAAM;QAAEC,OAAO;IAAQ;IACvBH;AACF;AAEA,iDAAiD;AACjD,MAAMI,QAAQ,MAAMC,QAAQC,aAAa,CAAC;IACxCP,YAAY;IACZG,MAAM;QAAEK,UAAU;QAAKC,OAAO;IAAI;AACpC;AAEA,4CAA4C;AAC5C,MAAMC,SAAS,MAAMJ,QAAQK,IAAI,CAAC;IAChCC,SAASX,IAAIW,OAAO;AACtB;AAEA,MAAMC,WAAW,MAAMP,QAAQQ,WAAW,CAAC;IACzCd,YAAY;IACZS,OAAO;AACT;AAEA,yEAAyE;AACzE,MAAMM,SAAS,MAAMT,QAAQU,IAAI,CAAC;IAChC,GAAGC,QAAQ;AACb;AAEA,0BAA0B;AAC1B,MAAMC,YAAY,MAAMC,YAAYH,IAAI,CAAC;IACvChB,YAAY;AACd;AAEA,kCAAkC;AAClC,MAAMoB,YAAY,MAAMd,QAAQU,IAAI,CAACK"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// A single-line object should stay on one line rather than being split open.
|
|
2
|
+
const posts = await payload.find({
|
|
3
|
+
collection: 'posts'
|
|
4
|
+
});
|
|
5
|
+
// Trailing comma on one line.
|
|
6
|
+
const one = await payload.findByID({
|
|
7
|
+
id,
|
|
8
|
+
collection: 'posts'
|
|
9
|
+
});
|
|
10
|
+
// An empty argument object.
|
|
11
|
+
const all = await payload.find({});
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=single-line.input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/add-override-access-true/single-line.input.ts"],"sourcesContent":["// A single-line object should stay on one line rather than being split open.\nconst posts = await payload.find({ collection: 'posts' })\n\n// Trailing comma on one line.\nconst one = await payload.findByID({ id, collection: 'posts', })\n\n// An empty argument object.\nconst all = await payload.find({})\n"],"names":["posts","payload","find","collection","one","findByID","id","all"],"mappings":"AAAA,6EAA6E;AAC7E,MAAMA,QAAQ,MAAMC,QAAQC,IAAI,CAAC;IAAEC,YAAY;AAAQ;AAEvD,8BAA8B;AAC9B,MAAMC,MAAM,MAAMH,QAAQI,QAAQ,CAAC;IAAEC;IAAIH,YAAY;AAAS;AAE9D,4BAA4B;AAC5B,MAAMI,MAAM,MAAMN,QAAQC,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// A single-line object should stay on one line rather than being split open.
|
|
2
|
+
const posts = await payload.find({
|
|
3
|
+
collection: 'posts',
|
|
4
|
+
overrideAccess: true
|
|
5
|
+
});
|
|
6
|
+
// Trailing comma on one line.
|
|
7
|
+
const one = await payload.findByID({
|
|
8
|
+
id,
|
|
9
|
+
collection: 'posts',
|
|
10
|
+
overrideAccess: true
|
|
11
|
+
});
|
|
12
|
+
// An empty argument object.
|
|
13
|
+
const all = await payload.find({
|
|
14
|
+
overrideAccess: true
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=single-line.output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/add-override-access-true/single-line.output.ts"],"sourcesContent":["// A single-line object should stay on one line rather than being split open.\nconst posts = await payload.find({ collection: 'posts', overrideAccess: true })\n\n// Trailing comma on one line.\nconst one = await payload.findByID({ id, collection: 'posts', overrideAccess: true, })\n\n// An empty argument object.\nconst all = await payload.find({ overrideAccess: true })\n"],"names":["posts","payload","find","collection","overrideAccess","one","findByID","id","all"],"mappings":"AAAA,6EAA6E;AAC7E,MAAMA,QAAQ,MAAMC,QAAQC,IAAI,CAAC;IAAEC,YAAY;IAASC,gBAAgB;AAAK;AAE7E,8BAA8B;AAC9B,MAAMC,MAAM,MAAMJ,QAAQK,QAAQ,CAAC;IAAEC;IAAIJ,YAAY;IAASC,gBAAgB;AAAM;AAEpF,4BAA4B;AAC5B,MAAMI,MAAM,MAAMP,QAAQC,IAAI,CAAC;IAAEE,gBAAgB;AAAK"}
|