renovate 41.0.0-next.21 → 41.0.0-next.23
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/dist/config/decrypt.js +5 -3
- package/dist/config/decrypt.js.map +1 -1
- package/dist/config/options/index.js +45 -3
- package/dist/config/options/index.js.map +1 -1
- package/dist/config/presets/github/index.js +2 -2
- package/dist/config/presets/github/index.js.map +1 -1
- package/dist/config/presets/internal/group.js +21 -0
- package/dist/config/presets/internal/group.js.map +1 -1
- package/dist/config/presets/internal/workarounds.js +11 -0
- package/dist/config/presets/internal/workarounds.js.map +1 -1
- package/dist/config/secrets.d.ts +2 -0
- package/dist/config/secrets.js +10 -77
- package/dist/config/secrets.js.map +1 -1
- package/dist/config/types.d.ts +9 -1
- package/dist/config/types.js.map +1 -1
- package/dist/config-validator.js +4 -2
- package/dist/config-validator.js.map +1 -1
- package/dist/data/monorepo.json +10 -1
- package/dist/data-files.generated.d.ts +1 -1
- package/dist/data-files.generated.js +2 -1
- package/dist/data-files.generated.js.map +1 -1
- package/dist/instrumentation/index.js +5 -3
- package/dist/instrumentation/index.js.map +1 -1
- package/dist/instrumentation/reporting.d.ts +2 -2
- package/dist/instrumentation/reporting.js +3 -7
- package/dist/instrumentation/reporting.js.map +1 -1
- package/dist/instrumentation/types.d.ts +11 -5
- package/dist/instrumentation/types.js.map +1 -1
- package/dist/instrumentation/utils.js +3 -2
- package/dist/instrumentation/utils.js.map +1 -1
- package/dist/logger/once.js +2 -0
- package/dist/logger/once.js.map +1 -1
- package/dist/modules/datasource/aws-eks-addon/schema.d.ts +14 -38
- package/dist/modules/datasource/aws-eks-addon/schema.js +11 -22
- package/dist/modules/datasource/aws-eks-addon/schema.js.map +1 -1
- package/dist/modules/datasource/cdnjs/index.js +2 -1
- package/dist/modules/datasource/cdnjs/index.js.map +1 -1
- package/dist/modules/datasource/crate/index.js +7 -2
- package/dist/modules/datasource/crate/index.js.map +1 -1
- package/dist/modules/datasource/docker/ecr.js +2 -2
- package/dist/modules/datasource/docker/ecr.js.map +1 -1
- package/dist/modules/datasource/docker/index.js +26 -9
- package/dist/modules/datasource/docker/index.js.map +1 -1
- package/dist/modules/datasource/docker/schema.d.ts +9 -87
- package/dist/modules/datasource/docker/schema.js +1 -1
- package/dist/modules/datasource/docker/schema.js.map +1 -1
- package/dist/modules/datasource/git-refs/base.js +2 -6
- package/dist/modules/datasource/git-refs/base.js.map +1 -1
- package/dist/modules/datasource/go/goproxy-parser.js +6 -2
- package/dist/modules/datasource/go/goproxy-parser.js.map +1 -1
- package/dist/modules/datasource/go/index.js +4 -2
- package/dist/modules/datasource/go/index.js.map +1 -1
- package/dist/modules/datasource/go/releases-goproxy.js +3 -2
- package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
- package/dist/modules/datasource/index.js +1 -1
- package/dist/modules/datasource/index.js.map +1 -1
- package/dist/modules/datasource/maven/index.js +5 -19
- package/dist/modules/datasource/maven/index.js.map +1 -1
- package/dist/modules/datasource/maven/util.js +8 -1
- package/dist/modules/datasource/maven/util.js.map +1 -1
- package/dist/modules/datasource/npm/get.js +2 -1
- package/dist/modules/datasource/npm/get.js.map +1 -1
- package/dist/modules/datasource/npm/npmrc.js +2 -1
- package/dist/modules/datasource/npm/npmrc.js.map +1 -1
- package/dist/modules/datasource/nuget/v3.js +3 -2
- package/dist/modules/datasource/nuget/v3.js.map +1 -1
- package/dist/modules/datasource/pod/index.js +3 -1
- package/dist/modules/datasource/pod/index.js.map +1 -1
- package/dist/modules/datasource/pypi/index.js +2 -1
- package/dist/modules/datasource/pypi/index.js.map +1 -1
- package/dist/modules/datasource/types.d.ts +2 -1
- package/dist/modules/datasource/types.js.map +1 -1
- package/dist/modules/manager/asdf/upgradeable-tooling.js +8 -0
- package/dist/modules/manager/asdf/upgradeable-tooling.js.map +1 -1
- package/dist/modules/manager/bazel/rules/git.d.ts +7 -7
- package/dist/modules/manager/bazel/rules/git.js +6 -1
- package/dist/modules/manager/bazel/rules/git.js.map +1 -1
- package/dist/modules/manager/bazel-module/bazelrc.d.ts +2 -0
- package/dist/modules/manager/bazel-module/bazelrc.js +30 -1
- package/dist/modules/manager/bazel-module/bazelrc.js.map +1 -1
- package/dist/modules/manager/bazel-module/parser/rules.js +1 -0
- package/dist/modules/manager/bazel-module/parser/rules.js.map +1 -1
- package/dist/modules/manager/bazel-module/rules.d.ts +62 -24
- package/dist/modules/manager/bazel-module/rules.js +10 -4
- package/dist/modules/manager/bazel-module/rules.js.map +1 -1
- package/dist/modules/manager/cargo/extract.js +2 -1
- package/dist/modules/manager/cargo/extract.js.map +1 -1
- package/dist/modules/manager/composer/schema.js +1 -1
- package/dist/modules/manager/composer/schema.js.map +1 -1
- package/dist/modules/manager/docker-compose/extract.js +2 -0
- package/dist/modules/manager/docker-compose/extract.js.map +1 -1
- package/dist/modules/manager/docker-compose/schema.d.ts +120 -9
- package/dist/modules/manager/docker-compose/schema.js +35 -4
- package/dist/modules/manager/docker-compose/schema.js.map +1 -1
- package/dist/modules/manager/fingerprint.generated.js +19 -19
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/fleet/extract.js +2 -2
- package/dist/modules/manager/fleet/extract.js.map +1 -1
- package/dist/modules/manager/fleet/schema.d.ts +5 -5
- package/dist/modules/manager/fleet/schema.js +1 -1
- package/dist/modules/manager/fleet/schema.js.map +1 -1
- package/dist/modules/manager/flux/extract.js +1 -1
- package/dist/modules/manager/flux/extract.js.map +1 -1
- package/dist/modules/manager/git-submodules/extract.js +2 -6
- package/dist/modules/manager/git-submodules/extract.js.map +1 -1
- package/dist/modules/manager/git-submodules/update.js +3 -7
- package/dist/modules/manager/git-submodules/update.js.map +1 -1
- package/dist/modules/manager/github-actions/extract.js +1 -1
- package/dist/modules/manager/github-actions/extract.js.map +1 -1
- package/dist/modules/manager/gleam/artifacts.js +5 -1
- package/dist/modules/manager/gleam/artifacts.js.map +1 -1
- package/dist/modules/manager/gomod/artifacts.js +8 -6
- package/dist/modules/manager/gomod/artifacts.js.map +1 -1
- package/dist/modules/manager/gradle/extract.js +4 -1
- package/dist/modules/manager/gradle/extract.js.map +1 -1
- package/dist/modules/manager/gradle/utils.js +8 -14
- package/dist/modules/manager/gradle/utils.js.map +1 -1
- package/dist/modules/manager/helmfile/utils.js +1 -1
- package/dist/modules/manager/helmfile/utils.js.map +1 -1
- package/dist/modules/manager/helmv3/artifacts.js +8 -2
- package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
- package/dist/modules/manager/helmv3/common.d.ts +1 -1
- package/dist/modules/manager/helmv3/common.js +9 -3
- package/dist/modules/manager/helmv3/common.js.map +1 -1
- package/dist/modules/manager/hermit/artifacts.js +2 -2
- package/dist/modules/manager/hermit/artifacts.js.map +1 -1
- package/dist/modules/manager/kubernetes/extract.js +2 -2
- package/dist/modules/manager/kubernetes/extract.js.map +1 -1
- package/dist/modules/manager/kustomize/artifacts.js +1 -1
- package/dist/modules/manager/kustomize/artifacts.js.map +1 -1
- package/dist/modules/manager/maven/extract.d.ts +1 -1
- package/dist/modules/manager/maven/extract.js +82 -24
- package/dist/modules/manager/maven/extract.js.map +1 -1
- package/dist/modules/manager/maven/index.d.ts +0 -1
- package/dist/modules/manager/maven/index.js +2 -4
- package/dist/modules/manager/maven/index.js.map +1 -1
- package/dist/modules/manager/maven/update.js +15 -0
- package/dist/modules/manager/maven/update.js.map +1 -1
- package/dist/modules/manager/mise/backends.d.ts +48 -0
- package/dist/modules/manager/mise/backends.js +219 -0
- package/dist/modules/manager/mise/backends.js.map +1 -0
- package/dist/modules/manager/mise/extract.js +77 -10
- package/dist/modules/manager/mise/extract.js.map +1 -1
- package/dist/modules/manager/mise/index.js +37 -2
- package/dist/modules/manager/mise/index.js.map +1 -1
- package/dist/modules/manager/mise/schema.d.ts +24 -0
- package/dist/modules/manager/mise/schema.js +7 -1
- package/dist/modules/manager/mise/schema.js.map +1 -1
- package/dist/modules/manager/mise/upgradeable-tooling.js +210 -1
- package/dist/modules/manager/mise/upgradeable-tooling.js.map +1 -1
- package/dist/modules/manager/mix/artifacts.js +5 -0
- package/dist/modules/manager/mix/artifacts.js.map +1 -1
- package/dist/modules/manager/npm/extract/index.js +27 -24
- package/dist/modules/manager/npm/extract/index.js.map +1 -1
- package/dist/modules/manager/npm/post-update/index.js +9 -3
- package/dist/modules/manager/npm/post-update/index.js.map +1 -1
- package/dist/modules/manager/npm/post-update/npm.js +8 -5
- package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
- package/dist/modules/manager/npm/post-update/pnpm.js +4 -0
- package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
- package/dist/modules/manager/npm/post-update/utils.js +17 -0
- package/dist/modules/manager/npm/post-update/utils.js.map +1 -1
- package/dist/modules/manager/npm/post-update/yarn.js +7 -5
- package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
- package/dist/modules/manager/npm/schema.d.ts +116 -0
- package/dist/modules/manager/npm/schema.js +9 -0
- package/dist/modules/manager/npm/schema.js.map +1 -1
- package/dist/modules/manager/npm/utils.js +1 -1
- package/dist/modules/manager/npm/utils.js.map +1 -1
- package/dist/modules/manager/nuget/util.js +9 -0
- package/dist/modules/manager/nuget/util.js.map +1 -1
- package/dist/modules/manager/pep621/processors/uv.js +1 -1
- package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
- package/dist/modules/manager/pip-compile/artifacts.js +6 -4
- package/dist/modules/manager/pip-compile/artifacts.js.map +1 -1
- package/dist/modules/manager/pip_requirements/common.js +2 -1
- package/dist/modules/manager/pip_requirements/common.js.map +1 -1
- package/dist/modules/manager/poetry/schema.js +2 -1
- package/dist/modules/manager/poetry/schema.js.map +1 -1
- package/dist/modules/manager/pre-commit/index.js +2 -1
- package/dist/modules/manager/pre-commit/index.js.map +1 -1
- package/dist/modules/manager/renovate-config-presets/index.d.ts +1 -1
- package/dist/modules/manager/renovate-config-presets/index.js +1 -3
- package/dist/modules/manager/renovate-config-presets/index.js.map +1 -1
- package/dist/modules/manager/terraform/extractors/others/modules.js +4 -9
- package/dist/modules/manager/terraform/extractors/others/modules.js.map +1 -1
- package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.d.ts +1 -0
- package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js +9 -4
- package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js.map +1 -1
- package/dist/modules/manager/terraform/extractors/resources/utils.d.ts +1 -0
- package/dist/modules/manager/terraform/extractors/resources/utils.js +4 -1
- package/dist/modules/manager/terraform/extractors/resources/utils.js.map +1 -1
- package/dist/modules/manager/terraform/hcl/types.d.ts +1 -0
- package/dist/modules/manager/terraform/hcl/types.js.map +1 -1
- package/dist/modules/manager/types.d.ts +3 -0
- package/dist/modules/manager/types.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/index.js +4 -2
- package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
- package/dist/modules/platform/codecommit/codecommit-client.js +7 -5
- package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
- package/dist/modules/platform/codecommit/index.js +7 -5
- package/dist/modules/platform/codecommit/index.js.map +1 -1
- package/dist/modules/platform/default-scm.d.ts +1 -0
- package/dist/modules/platform/default-scm.js +3 -0
- package/dist/modules/platform/default-scm.js.map +1 -1
- package/dist/modules/platform/gerrit/client.d.ts +6 -7
- package/dist/modules/platform/gerrit/client.js +58 -38
- package/dist/modules/platform/gerrit/client.js.map +1 -1
- package/dist/modules/platform/gerrit/index.d.ts +4 -3
- package/dist/modules/platform/gerrit/index.js +103 -42
- package/dist/modules/platform/gerrit/index.js.map +1 -1
- package/dist/modules/platform/gerrit/scm.d.ts +1 -1
- package/dist/modules/platform/gerrit/scm.js +56 -34
- package/dist/modules/platform/gerrit/scm.js.map +1 -1
- package/dist/modules/platform/gerrit/types.d.ts +23 -12
- package/dist/modules/platform/gerrit/types.js.map +1 -1
- package/dist/modules/platform/gerrit/utils.d.ts +8 -4
- package/dist/modules/platform/gerrit/utils.js +24 -12
- package/dist/modules/platform/gerrit/utils.js.map +1 -1
- package/dist/modules/platform/gitea/index.js +7 -2
- package/dist/modules/platform/gitea/index.js.map +1 -1
- package/dist/modules/platform/gitea/types.d.ts +2 -1
- package/dist/modules/platform/gitea/types.js.map +1 -1
- package/dist/modules/platform/github/index.js +12 -26
- package/dist/modules/platform/github/index.js.map +1 -1
- package/dist/modules/platform/gitlab/code-owners.d.ts +2 -0
- package/dist/modules/platform/gitlab/code-owners.js +38 -0
- package/dist/modules/platform/gitlab/code-owners.js.map +1 -0
- package/dist/modules/platform/gitlab/index.d.ts +2 -1
- package/dist/modules/platform/gitlab/index.js +29 -56
- package/dist/modules/platform/gitlab/index.js.map +1 -1
- package/dist/modules/platform/gitlab/pr-cache.d.ts +21 -0
- package/dist/modules/platform/gitlab/pr-cache.js +124 -0
- package/dist/modules/platform/gitlab/pr-cache.js.map +1 -0
- package/dist/modules/platform/gitlab/types.d.ts +7 -0
- package/dist/modules/platform/gitlab/types.js.map +1 -1
- package/dist/modules/platform/gitlab/utils.js +1 -0
- package/dist/modules/platform/gitlab/utils.js.map +1 -1
- package/dist/modules/platform/types.d.ts +8 -0
- package/dist/modules/platform/types.js.map +1 -1
- package/dist/modules/versioning/api.js +2 -0
- package/dist/modules/versioning/api.js.map +1 -1
- package/dist/modules/versioning/cargo/index.js +20 -0
- package/dist/modules/versioning/cargo/index.js.map +1 -1
- package/dist/modules/versioning/composer/index.js +4 -0
- package/dist/modules/versioning/composer/index.js.map +1 -1
- package/dist/modules/versioning/lambda-node/index.d.ts +8 -0
- package/dist/modules/versioning/lambda-node/index.js +27 -0
- package/dist/modules/versioning/lambda-node/index.js.map +1 -0
- package/dist/modules/versioning/lambda-node/schedule.d.ts +10 -0
- package/dist/modules/versioning/lambda-node/schedule.js +19 -0
- package/dist/modules/versioning/lambda-node/schedule.js.map +1 -0
- package/dist/modules/versioning/npm/index.js +2 -0
- package/dist/modules/versioning/npm/index.js.map +1 -1
- package/dist/modules/versioning/npm/range.js +4 -0
- package/dist/modules/versioning/npm/range.js.map +1 -1
- package/dist/modules/versioning/pep440/index.js +1 -1
- package/dist/modules/versioning/pep440/index.js.map +1 -1
- package/dist/modules/versioning/python/index.d.ts +1 -0
- package/dist/modules/versioning/python/index.js +9 -0
- package/dist/modules/versioning/python/index.js.map +1 -1
- package/dist/modules/versioning/semver/index.d.ts +1 -0
- package/dist/modules/versioning/semver/index.js +15 -0
- package/dist/modules/versioning/semver/index.js.map +1 -1
- package/dist/modules/versioning/semver-coerced/index.js +9 -0
- package/dist/modules/versioning/semver-coerced/index.js.map +1 -1
- package/dist/modules/versioning/types.d.ts +1 -0
- package/dist/modules/versioning/types.js.map +1 -1
- package/dist/util/cache/memory/index.d.ts +1 -0
- package/dist/util/cache/memory/index.js +17 -6
- package/dist/util/cache/memory/index.js.map +1 -1
- package/dist/util/cache/package/index.js +2 -1
- package/dist/util/cache/package/index.js.map +1 -1
- package/dist/util/cache/package/key.js +1 -1
- package/dist/util/cache/package/key.js.map +1 -1
- package/dist/util/cache/package/types.d.ts +2 -2
- package/dist/util/cache/package/types.js.map +1 -1
- package/dist/util/cache/repository/impl/s3.js +2 -1
- package/dist/util/cache/repository/impl/s3.js.map +1 -1
- package/dist/util/cache/repository/types.d.ts +3 -0
- package/dist/util/cache/repository/types.js.map +1 -1
- package/dist/util/env.d.ts +6 -0
- package/dist/util/env.js +13 -0
- package/dist/util/env.js.map +1 -1
- package/dist/util/exec/common.js +2 -1
- package/dist/util/exec/common.js.map +1 -1
- package/dist/util/exec/containerbase.js +2 -1
- package/dist/util/exec/containerbase.js.map +1 -1
- package/dist/util/exec/env.js +1 -0
- package/dist/util/exec/env.js.map +1 -1
- package/dist/util/exec/utils.d.ts +1 -1
- package/dist/util/exec/utils.js +1 -1
- package/dist/util/exec/utils.js.map +1 -1
- package/dist/util/fs/index.js +2 -2
- package/dist/util/fs/index.js.map +1 -1
- package/dist/util/git/auth.js +4 -2
- package/dist/util/git/auth.js.map +1 -1
- package/dist/util/git/error.js +2 -1
- package/dist/util/git/error.js.map +1 -1
- package/dist/util/git/index.d.ts +20 -0
- package/dist/util/git/index.js +140 -10
- package/dist/util/git/index.js.map +1 -1
- package/dist/util/git/types.d.ts +1 -0
- package/dist/util/git/types.js.map +1 -1
- package/dist/util/github/graphql/datasource-fetcher.js +2 -3
- package/dist/util/github/graphql/datasource-fetcher.js.map +1 -1
- package/dist/util/github/graphql/query-adapters/tags-query-adapter.d.ts +48 -2
- package/dist/util/github/graphql/query-adapters/tags-query-adapter.js +27 -7
- package/dist/util/github/graphql/query-adapters/tags-query-adapter.js.map +1 -1
- package/dist/util/host-rules.js +4 -3
- package/dist/util/host-rules.js.map +1 -1
- package/dist/util/http/cache/package-http-cache-provider.d.ts +4 -4
- package/dist/util/http/cache/package-http-cache-provider.js +4 -4
- package/dist/util/http/cache/package-http-cache-provider.js.map +1 -1
- package/dist/util/http/github.js +20 -12
- package/dist/util/http/github.js.map +1 -1
- package/dist/util/http/gitlab.js +2 -1
- package/dist/util/http/gitlab.js.map +1 -1
- package/dist/util/http/http.js +7 -3
- package/dist/util/http/http.js.map +1 -1
- package/dist/util/interpolator.d.ts +8 -0
- package/dist/util/interpolator.js +85 -0
- package/dist/util/interpolator.js.map +1 -0
- package/dist/util/merge-confidence/index.js +4 -1
- package/dist/util/merge-confidence/index.js.map +1 -1
- package/dist/util/promises.d.ts +4 -4
- package/dist/util/promises.js +3 -4
- package/dist/util/promises.js.map +1 -1
- package/dist/util/regex.js +3 -2
- package/dist/util/regex.js.map +1 -1
- package/dist/util/{schema-utils.d.ts → schema-utils/index.d.ts} +2 -2
- package/dist/util/{schema-utils.js → schema-utils/index.js} +5 -5
- package/dist/util/schema-utils/index.js.map +1 -0
- package/dist/util/schema-utils/v4.d.ts +7 -0
- package/dist/util/schema-utils/v4.js +64 -0
- package/dist/util/schema-utils/v4.js.map +1 -0
- package/dist/util/stats.d.ts +13 -2
- package/dist/util/stats.js +38 -27
- package/dist/util/stats.js.map +1 -1
- package/dist/workers/global/config/parse/codespaces.js +7 -4
- package/dist/workers/global/config/parse/codespaces.js.map +1 -1
- package/dist/workers/global/index.js +7 -5
- package/dist/workers/global/index.js.map +1 -1
- package/dist/workers/repository/config-migration/branch/migrated-data.js +1 -1
- package/dist/workers/repository/config-migration/branch/migrated-data.js.map +1 -1
- package/dist/workers/repository/dependency-dashboard.d.ts +1 -0
- package/dist/workers/repository/dependency-dashboard.js +47 -0
- package/dist/workers/repository/dependency-dashboard.js.map +1 -1
- package/dist/workers/repository/index.js +1 -0
- package/dist/workers/repository/index.js.map +1 -1
- package/dist/workers/repository/init/inherited.js +10 -6
- package/dist/workers/repository/init/inherited.js.map +1 -1
- package/dist/workers/repository/init/merge.d.ts +2 -2
- package/dist/workers/repository/init/merge.js +12 -5
- package/dist/workers/repository/init/merge.js.map +1 -1
- package/dist/workers/repository/package-files.js +11 -1
- package/dist/workers/repository/package-files.js.map +1 -1
- package/dist/workers/repository/process/extract-update.d.ts +1 -1
- package/dist/workers/repository/process/extract-update.js +15 -10
- package/dist/workers/repository/process/extract-update.js.map +1 -1
- package/dist/workers/repository/process/index.d.ts +1 -1
- package/dist/workers/repository/process/index.js +6 -3
- package/dist/workers/repository/process/index.js.map +1 -1
- package/dist/workers/repository/process/libyear.js +15 -7
- package/dist/workers/repository/process/libyear.js.map +1 -1
- package/dist/workers/repository/process/lookup/abandonment.d.ts +3 -0
- package/dist/workers/repository/process/lookup/abandonment.js +50 -0
- package/dist/workers/repository/process/lookup/abandonment.js.map +1 -0
- package/dist/workers/repository/process/lookup/current.js +0 -5
- package/dist/workers/repository/process/lookup/current.js.map +1 -1
- package/dist/workers/repository/process/lookup/generate.js +10 -0
- package/dist/workers/repository/process/lookup/generate.js.map +1 -1
- package/dist/workers/repository/process/lookup/index.js +7 -0
- package/dist/workers/repository/process/lookup/index.js.map +1 -1
- package/dist/workers/repository/process/lookup/timestamps.d.ts +4 -4
- package/dist/workers/repository/process/lookup/timestamps.js +10 -10
- package/dist/workers/repository/process/lookup/timestamps.js.map +1 -1
- package/dist/workers/repository/process/lookup/types.d.ts +4 -0
- package/dist/workers/repository/process/lookup/types.js.map +1 -1
- package/dist/workers/repository/update/branch/auto-replace.js +30 -7
- package/dist/workers/repository/update/branch/auto-replace.js.map +1 -1
- package/dist/workers/repository/update/branch/bump-versions.d.ts +2 -0
- package/dist/workers/repository/update/branch/bump-versions.js +192 -0
- package/dist/workers/repository/update/branch/bump-versions.js.map +1 -0
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +14 -8
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
- package/dist/workers/repository/update/branch/get-updated.js +3 -4
- package/dist/workers/repository/update/branch/get-updated.js.map +1 -1
- package/dist/workers/repository/update/branch/index.js +3 -0
- package/dist/workers/repository/update/branch/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/release-notes.js +23 -19
- package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
- package/dist/workers/repository/update/pr/code-owners.js +13 -9
- package/dist/workers/repository/update/pr/code-owners.js.map +1 -1
- package/dist/workers/repository/updates/generate.js +1 -0
- package/dist/workers/repository/updates/generate.js.map +1 -1
- package/package.json +75 -80
- package/renovate-schema.json +78 -14
- package/dist/util/schema-utils.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../lib/util/exec/common.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../lib/util/exec/common.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ChildProcess } from 'node:child_process';\nimport { spawn } from 'node:child_process';\nimport type { Readable } from 'node:stream';\nimport is from '@sindresorhus/is';\nimport { getEnv } from '../env';\nimport type { ExecErrorData } from './exec-error';\nimport { ExecError } from './exec-error';\nimport type { DataListener, ExecResult, RawExecOptions } from './types';\n\n// https://man7.org/linux/man-pages/man7/signal.7.html#NAME\n// Non TERM/CORE signals\n// The following is step 3. in https://github.com/renovatebot/renovate/issues/16197#issuecomment-1171423890\nconst NONTERM = [\n 'SIGCHLD',\n 'SIGCLD',\n 'SIGCONT',\n 'SIGSTOP',\n 'SIGTSTP',\n 'SIGTTIN',\n 'SIGTTOU',\n 'SIGURG',\n 'SIGWINCH',\n];\n\nconst encoding = 'utf8';\n\nfunction stringify(list: Buffer[]): string {\n return Buffer.concat(list).toString(encoding);\n}\n\nfunction initStreamListeners(\n cp: ChildProcess,\n opts: RawExecOptions & { maxBuffer: number },\n): [Buffer[], Buffer[]] {\n const stdout: Buffer[] = [];\n const stderr: Buffer[] = [];\n let stdoutLen = 0;\n let stderrLen = 0;\n\n registerDataListeners(cp.stdout, opts.outputListeners?.stdout);\n registerDataListeners(cp.stderr, opts.outputListeners?.stderr);\n\n cp.stdout?.on('data', (chunk: Buffer) => {\n // process.stdout.write(data.toString());\n const len = Buffer.byteLength(chunk, encoding);\n stdoutLen += len;\n if (stdoutLen > opts.maxBuffer) {\n cp.emit('error', new Error('stdout maxBuffer exceeded'));\n } else {\n stdout.push(chunk);\n }\n });\n\n cp.stderr?.on('data', (chunk: Buffer) => {\n // process.stderr.write(data.toString());\n const len = Buffer.byteLength(chunk, encoding);\n stderrLen += len;\n if (stderrLen > opts.maxBuffer) {\n cp.emit('error', new Error('stderr maxBuffer exceeded'));\n } else {\n stderr.push(chunk);\n }\n });\n return [stdout, stderr];\n}\n\nfunction registerDataListeners(\n readable: Readable | null,\n dataListeners: DataListener[] | undefined,\n): void {\n if (is.nullOrUndefined(readable) || is.nullOrUndefined(dataListeners)) {\n return;\n }\n\n for (const listener of dataListeners) {\n readable.on('data', listener);\n }\n}\n\nexport function exec(cmd: string, opts: RawExecOptions): Promise<ExecResult> {\n return new Promise((resolve, reject) => {\n const maxBuffer = opts.maxBuffer ?? 10 * 1024 * 1024; // Set default max buffer size to 10MB\n const cp = spawn(cmd, {\n ...opts,\n // force detached on non WIN platforms\n // https://github.com/nodejs/node/issues/21825#issuecomment-611328888\n detached: process.platform !== 'win32',\n shell: typeof opts.shell === 'string' ? opts.shell : true, // force shell\n });\n\n // handle streams\n const [stdout, stderr] = initStreamListeners(cp, {\n ...opts,\n maxBuffer,\n });\n\n // handle process events\n cp.on('error', (error) => {\n kill(cp, 'SIGTERM');\n // rethrowing, use originally emitted error message\n reject(new ExecError(error.message, rejectInfo(), error));\n });\n\n cp.on('exit', (code: number, signal: NodeJS.Signals) => {\n if (NONTERM.includes(signal)) {\n return;\n }\n if (signal) {\n kill(cp, signal);\n reject(\n new ExecError(`Command failed: ${cmd}\\nInterrupted by ${signal}`, {\n ...rejectInfo(),\n signal,\n }),\n );\n return;\n }\n if (code !== 0) {\n reject(\n new ExecError(`Command failed: ${cmd}\\n${stringify(stderr)}`, {\n ...rejectInfo(),\n exitCode: code,\n }),\n );\n return;\n }\n resolve({\n stderr: stringify(stderr),\n stdout: stringify(stdout),\n });\n });\n\n function rejectInfo(): ExecErrorData {\n return {\n cmd: cp.spawnargs.join(' '),\n options: opts,\n stdout: stringify(stdout),\n stderr: stringify(stderr),\n };\n }\n });\n}\n\nfunction kill(cp: ChildProcess, signal: NodeJS.Signals): boolean {\n try {\n if (cp.pid && getEnv().RENOVATE_X_EXEC_GPID_HANDLE) {\n /**\n * If `pid` is negative, but not `-1`, signal shall be sent to all processes\n * (excluding an unspecified set of system processes),\n * whose process group ID (pgid) is equal to the absolute value of pid,\n * and for which the process has permission to send a signal.\n */\n return process.kill(-cp.pid, signal);\n } else {\n // destroying stdio is needed for unref to work\n // https://nodejs.org/api/child_process.html#subprocessunref\n // https://github.com/nodejs/node/blob/4d5ff25a813fd18939c9f76b17e36291e3ea15c3/lib/child_process.js#L412-L426\n cp.stderr?.destroy();\n cp.stdout?.destroy();\n cp.unref();\n return cp.kill(signal);\n }\n } catch {\n // cp is a single node tree, therefore -pid is invalid as there is no such pgid,\n return false;\n }\n}\n\nexport const rawExec: (\n cmd: string,\n opts: RawExecOptions,\n) => Promise<ExecResult> = exec;\n"]}
|
@@ -22,6 +22,7 @@ const python_1 = require("../../modules/versioning/python");
|
|
22
22
|
const ruby_1 = require("../../modules/versioning/ruby");
|
23
23
|
const semver_1 = require("../../modules/versioning/semver");
|
24
24
|
const semver_coerced_1 = require("../../modules/versioning/semver-coerced");
|
25
|
+
const env_1 = require("../env");
|
25
26
|
const allToolConfig = {
|
26
27
|
bun: {
|
27
28
|
datasource: 'github-releases',
|
@@ -244,7 +245,7 @@ function supportsDynamicInstall(toolName) {
|
|
244
245
|
return !!allToolConfig[toolName];
|
245
246
|
}
|
246
247
|
function isContainerbase() {
|
247
|
-
return !!
|
248
|
+
return !!(0, env_1.getEnv)().CONTAINERBASE;
|
248
249
|
}
|
249
250
|
function isDynamicInstall(toolConstraints) {
|
250
251
|
if (global_1.GlobalConfig.get('binarySource') !== 'install') {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"containerbase.js","sourceRoot":"","sources":["../../../lib/util/exec/containerbase.ts"],"names":[],"mappings":";;AAmPA,wDAEC;AAED,0CAEC;AAED,4CAgBC;AAkBD,8CAyEC;AAED,0DAgBC;;AAxXD,kEAAkC;AAClC,iCAA8B;AAC9B,gDAAmD;AACnD,yCAAsC;AAEtC,gFAA0D;AAC1D,gEAA+E;AAC/E,0DAAyE;AACzE,4DAA2E;AAC3E,0DAAyE;AACzE,wDAAuE;AACvE,sDAAqE;AACrE,4DAA2E;AAC3E,4DAA2E;AAC3E,wDAAuE;AACvE,4DAA2E;AAC3E,4EAA0F;AAG1F,MAAM,aAAa,GAA+B;IAChD,GAAG,EAAE;QACH,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,aAAa;QAC1B,cAAc,EAAE,uBAAuB;QACvC,UAAU,EAAE,QAAe;KAC5B;IACD,OAAO,EAAE;QACP,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,SAAS;QACtB,UAAU,EAAE,SAAgB;KAC7B;IACD,SAAS,EAAE;QACT,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,WAAW;QACxB,UAAU,EAAE,SAAgB;KAC7B;IACD,QAAQ,EAAE;QACR,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,iCAAiC;QAC9C,UAAU,EAAE,aAAoB;KACjC;IACD,MAAM,EAAE;QACN,UAAU,EAAE,MAAM;QAClB,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,WAAkB;KAC/B;IACD,QAAQ,EAAE;QACR,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,UAAU;QACvB,UAAU,EAAE,QAAe;KAC5B;IACD,MAAM,EAAE;QACN,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,mBAAmB;QAChC,UAAU,EAAE,WAAkB;KAC/B;IACD,MAAM,EAAE;QACN,UAAU,EAAE,gBAAgB;QAC5B,WAAW,EAAE,YAAY;QACzB,UAAU,EAAE,WAAkB;KAC/B;IACD,MAAM,EAAE;QACN,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,+BAA+B;QAC5C,UAAU,EAAE,mBAAyB;KACtC;IACD,MAAM,EAAE;QACN,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,oBAAoB;QACjC,UAAU,EAAE,WAAkB;KAC/B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,cAAc;QAC3B,UAAU,EAAE,WAAkB;KAC/B;IACD,KAAK,EAAE;QACL,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,kBAAkB;QAC/B,UAAU,EAAE,WAAkB;KAC/B;IACD,MAAM,EAAE;QACN,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,+BAA+B;QAC5C,UAAU,EAAE,QAAe;KAC5B;IACD,MAAM,EAAE;QACN,UAAU,EAAE,gBAAgB;QAC5B,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,WAAkB;KAC/B;IACD,MAAM,EAAE;QACN,UAAU,EAAE,MAAM;QAClB,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,WAAkB;KAC/B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,WAAW;QACxB,UAAU,EAAE,WAAkB;KAC/B;IACD,QAAQ,EAAE;QACR,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,mBAAmB;QAChC,UAAU,EAAE,WAAkB;KAC/B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,cAAc;QAC1B,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE,QAAe;KAC5B;IACD,0BAA0B;IAC1B,YAAY,EAAE;QACZ,UAAU,EAAE,cAAc;QAC1B,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE,UAAiB;KAC9B;IACD,EAAE,EAAE;QACF,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,iCAAiC;QAC9C,UAAU,EAAE,WAAkB;KAC/B;IACD,SAAS,EAAE;QACT,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,2BAA2B;QACxC,cAAc,EAAE,6BAA6B;QAC7C,UAAU,EAAE,WAAkB;KAC/B;IACD,KAAK,EAAE;QACL,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,8BAA8B;QAC3C,UAAU,EAAE,UAAiB;KAC9B;IACD,GAAG,EAAE;QACH,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,4BAA4B;QACzC,UAAU,EAAE,WAAkB;KAC/B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,6BAA6B;QAC1C,UAAU,EAAE,SAAgB;KAC7B;IACD,GAAG,EAAE;QACH,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,KAAK;QAClB,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,QAAe;KAC5B;IACD,GAAG,EAAE;QACH,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,iBAAiB;QAC9B,UAAU,EAAE,WAAkB;KAC/B;IACD,GAAG,EAAE;QACH,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,4BAA4B;QACzC,UAAU,EAAE,aAAoB;KACjC;IACD,WAAW,EAAE;QACX,UAAU,EAAE,MAAM;QAClB,WAAW,EAAE,WAAW;QACxB,UAAU,EAAE,WAAkB;KAC/B;IACD,MAAM,EAAE;QACN,UAAU,EAAE,MAAM;QAClB,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,WAAkB;KAC/B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE,QAAe;KAC5B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,iBAAiB;QAC9B,UAAU,EAAE,UAAiB;QAC7B,cAAc,EAAE,mBAAmB;KACpC;IACD,MAAM,EAAE;QACN,UAAU,EAAE,MAAM;QAClB,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,WAAkB;KAC/B;IACD,MAAM,EAAE;QACN,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,+BAA+B;QAC5C,UAAU,EAAE,WAAkB;KAC/B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,6BAA6B;QAC1C,UAAU,EAAE,SAAgB;KAC7B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE,WAAkB;KAC/B;IACD,EAAE,EAAE;QACF,UAAU,EAAE,MAAM;QAClB,WAAW,EAAE,IAAI;QACjB,UAAU,EAAE,WAAkB;KAC/B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE,QAAe;KAC5B;IACD,WAAW,EAAE;QACX,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE,QAAe;KAC5B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,cAAc;QAC1B,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE,QAAe;KAC5B;IACD,OAAO,EAAE;QACP,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,gCAAgC;QAC7C,UAAU,EAAE,QAAe;KAC5B;IACD,MAAM,EAAE;QACN,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,mBAAmB;QAChC,UAAU,EAAE,WAAkB;KAC/B;CACF,CAAC;AAEF,IAAI,eAAe,GACjB,IAAI,CAAC;AAEP,KAAK,UAAU,cAAc,CAC3B,UAAsB;IAEtB,eAAe,KAAK,MAAM,CAAC,mCAAmC,CAAC,CAAC;IAChE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,eAAe,CAAC;IACjD,OAAO,cAAc,CAAC,UAAU,CAAC,CAAC;AACpC,CAAC;AAED,SAAgB,sBAAsB,CAAC,QAAgB;IACrD,OAAO,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,eAAe;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AACrC,CAAC;AAED,SAAgB,gBAAgB,CAC9B,eAAuC;IAEvC,IAAI,qBAAY,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvB,eAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CACL,CAAC,eAAe;QAChB,eAAe,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,EAAE,CACvC,sBAAsB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAChD,CACF,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CACf,OAAe,EACf,aAA0C,EAC1C,MAAe;IAEf,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,YAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,IAAI,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;YACjD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,cAA8B;IAE9B,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IACpC,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC5D,IAAI,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;IAC3C,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,IAAI,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3C,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,eAAM,CAAC,IAAI,CACT,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,EAC3D,yBAAyB,CAC1B,CAAC;YACF,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAC;IAE7C,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QACtB,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,yBAAyB,CAAC,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAChE,CAAC;IAEF,MAAM,qBAAqB,GAAG,gBAAgB;SAC3C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;SACzE,GAAG,EAAE,EAAE,OAAO,CAAC;IAClB,IAAI,qBAAqB,EAAE,CAAC;QAC1B,eAAM,CAAC,KAAK,CACV,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,qBAAqB,EAAE,EAChE,kCAAkC,CACnC,CAAC;QACF,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC;IAChE,IAAI,uBAAuB,EAAE,CAAC;QAC5B,eAAM,CAAC,KAAK,CACV,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,uBAAuB,EAAE,EAClE,oCAAoC,CACrC,CAAC;QACF,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED,MAAM,aAAa,GAAG,QAAQ;SAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;SACzE,GAAG,EAAE,EAAE,OAAO,CAAC;IAClB,IAAI,aAAa,EAAE,CAAC;QAClB,eAAM,CAAC,IAAI,CACT,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,EACvC,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,EAAG,CAAC,OAAO,CAAC;IAC/C,eAAM,CAAC,IAAI,CACT,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,EACxC,uEAAuE,CACxE,CAAC;IACF,OAAO,cAAc,CAAC;AACxB,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAC3C,eAAsC;IAEtC,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,IAAI,eAAe,EAAE,MAAM,EAAE,CAAC;QAC5B,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;YAC7C,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,cAAc,CAAC,CAAC;YAC5D,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;YACpC,MAAM,cAAc,GAAG,gBAAgB,QAAQ,IAAI,IAAA,aAAK,EAAC,WAAW,CAAC,EAAE,CAAC;YACxE,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACrC,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;gBACjC,eAAe,CAAC,IAAI,CAAC,WAAW,QAAQ,sBAAsB,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport { GlobalConfig } from '../../config/global';\nimport { logger } from '../../logger';\nimport type { ReleaseResult } from '../../modules/datasource';\nimport * as allVersioning from '../../modules/versioning';\nimport { id as composerVersioningId } from '../../modules/versioning/composer';\nimport { id as condaVersioningId } from '../../modules/versioning/conda';\nimport { id as gradleVersioningId } from '../../modules/versioning/gradle';\nimport { id as mavenVersioningId } from '../../modules/versioning/maven';\nimport { id as nodeVersioningId } from '../../modules/versioning/node';\nimport { id as npmVersioningId } from '../../modules/versioning/npm';\nimport { id as pep440VersioningId } from '../../modules/versioning/pep440';\nimport { id as pythonVersioningId } from '../../modules/versioning/python';\nimport { id as rubyVersioningId } from '../../modules/versioning/ruby';\nimport { id as semverVersioningId } from '../../modules/versioning/semver';\nimport { id as semverCoercedVersioningId } from '../../modules/versioning/semver-coerced';\nimport type { Opt, ToolConfig, ToolConstraint } from './types';\n\nconst allToolConfig: Record<string, ToolConfig> = {\n bun: {\n datasource: 'github-releases',\n packageName: 'oven-sh/bun',\n extractVersion: '^bun-v(?<version>.*)$',\n versioning: npmVersioningId,\n },\n bundler: {\n datasource: 'rubygems',\n packageName: 'bundler',\n versioning: rubyVersioningId,\n },\n cocoapods: {\n datasource: 'rubygems',\n packageName: 'cocoapods',\n versioning: rubyVersioningId,\n },\n composer: {\n datasource: 'github-releases',\n packageName: 'containerbase/composer-prebuild',\n versioning: composerVersioningId,\n },\n copier: {\n datasource: 'pypi',\n packageName: 'copier',\n versioning: pep440VersioningId,\n },\n corepack: {\n datasource: 'npm',\n packageName: 'corepack',\n versioning: npmVersioningId,\n },\n devbox: {\n datasource: 'github-releases',\n packageName: 'jetify-com/devbox',\n versioning: semverVersioningId,\n },\n dotnet: {\n datasource: 'dotnet-version',\n packageName: 'dotnet-sdk',\n versioning: semverVersioningId,\n },\n erlang: {\n datasource: 'github-releases',\n packageName: 'containerbase/erlang-prebuild',\n versioning: semverCoercedVersioningId,\n },\n elixir: {\n datasource: 'github-releases',\n packageName: 'elixir-lang/elixir',\n versioning: semverVersioningId,\n },\n flux: {\n datasource: 'github-releases',\n packageName: 'fluxcd/flux2',\n versioning: semverVersioningId,\n },\n gleam: {\n datasource: 'github-releases',\n packageName: 'gleam-lang/gleam',\n versioning: semverVersioningId,\n },\n golang: {\n datasource: 'github-releases',\n packageName: 'containerbase/golang-prebuild',\n versioning: npmVersioningId,\n },\n gradle: {\n datasource: 'gradle-version',\n packageName: 'gradle',\n versioning: gradleVersioningId,\n },\n hashin: {\n datasource: 'pypi',\n packageName: 'hashin',\n versioning: pep440VersioningId,\n },\n helm: {\n datasource: 'github-releases',\n packageName: 'helm/helm',\n versioning: semverVersioningId,\n },\n helmfile: {\n datasource: 'github-releases',\n packageName: 'helmfile/helmfile',\n versioning: semverVersioningId,\n },\n java: {\n datasource: 'java-version',\n packageName: 'java',\n versioning: npmVersioningId,\n },\n /* not used in Renovate */\n 'java-maven': {\n datasource: 'java-version',\n packageName: 'java',\n versioning: mavenVersioningId,\n },\n jb: {\n datasource: 'github-releases',\n packageName: 'jsonnet-bundler/jsonnet-bundler',\n versioning: semverVersioningId,\n },\n kustomize: {\n datasource: 'github-releases',\n packageName: 'kubernetes-sigs/kustomize',\n extractVersion: '^kustomize/v(?<version>.*)$',\n versioning: semverVersioningId,\n },\n maven: {\n datasource: 'github-releases',\n packageName: 'containerbase/maven-prebuild',\n versioning: mavenVersioningId,\n },\n nix: {\n datasource: 'github-releases',\n packageName: 'containerbase/nix-prebuild',\n versioning: semverVersioningId,\n },\n node: {\n datasource: 'github-releases',\n packageName: 'containerbase/node-prebuild',\n versioning: nodeVersioningId,\n },\n npm: {\n datasource: 'npm',\n packageName: 'npm',\n hash: true,\n versioning: npmVersioningId,\n },\n pdm: {\n datasource: 'github-releases',\n packageName: 'pdm-project/pdm',\n versioning: semverVersioningId,\n },\n php: {\n datasource: 'github-releases',\n packageName: 'containerbase/php-prebuild',\n versioning: composerVersioningId,\n },\n 'pip-tools': {\n datasource: 'pypi',\n packageName: 'pip-tools',\n versioning: pep440VersioningId,\n },\n pipenv: {\n datasource: 'pypi',\n packageName: 'pipenv',\n versioning: pep440VersioningId,\n },\n pnpm: {\n datasource: 'npm',\n packageName: 'pnpm',\n versioning: npmVersioningId,\n },\n pixi: {\n datasource: 'github-releases',\n packageName: 'prefix-dev/pixi',\n versioning: condaVersioningId,\n extractVersion: '^v(?<version>.*)$',\n },\n poetry: {\n datasource: 'pypi',\n packageName: 'poetry',\n versioning: pep440VersioningId,\n },\n python: {\n datasource: 'github-releases',\n packageName: 'containerbase/python-prebuild',\n versioning: pythonVersioningId,\n },\n ruby: {\n datasource: 'github-releases',\n packageName: 'containerbase/ruby-prebuild',\n versioning: rubyVersioningId,\n },\n rust: {\n datasource: 'docker',\n packageName: 'rust',\n versioning: semverVersioningId,\n },\n uv: {\n datasource: 'pypi',\n packageName: 'uv',\n versioning: pep440VersioningId,\n },\n yarn: {\n datasource: 'npm',\n packageName: 'yarn',\n versioning: npmVersioningId,\n },\n 'yarn-slim': {\n datasource: 'npm',\n packageName: 'yarn',\n versioning: npmVersioningId,\n },\n dart: {\n datasource: 'dart-version',\n packageName: 'dart',\n versioning: npmVersioningId,\n },\n flutter: {\n datasource: 'github-releases',\n packageName: 'containerbase/flutter-prebuild',\n versioning: npmVersioningId,\n },\n vendir: {\n datasource: 'github-releases',\n packageName: 'carvel-dev/vendir',\n versioning: semverVersioningId,\n },\n};\n\nlet _getPkgReleases: Promise<typeof import('../../modules/datasource')> | null =\n null;\n\nasync function getPkgReleases(\n toolConfig: ToolConfig,\n): Promise<ReleaseResult | null> {\n _getPkgReleases ??= import('../../modules/datasource/index.js');\n const { getPkgReleases } = await _getPkgReleases;\n return getPkgReleases(toolConfig);\n}\n\nexport function supportsDynamicInstall(toolName: string): boolean {\n return !!allToolConfig[toolName];\n}\n\nexport function isContainerbase(): boolean {\n return !!process.env.CONTAINERBASE;\n}\n\nexport function isDynamicInstall(\n toolConstraints?: Opt<ToolConstraint[]>,\n): boolean {\n if (GlobalConfig.get('binarySource') !== 'install') {\n return false;\n }\n if (!isContainerbase()) {\n logger.debug('Falling back to binarySource=global');\n return false;\n }\n return (\n !toolConstraints ||\n toolConstraints.every((toolConstraint) =>\n supportsDynamicInstall(toolConstraint.toolName),\n )\n );\n}\n\nfunction isStable(\n version: string,\n versioningApi: allVersioning.VersioningApi,\n latest?: string,\n): boolean {\n if (!versioningApi.isStable(version)) {\n return false;\n }\n if (is.string(latest)) {\n if (versioningApi.isGreaterThan(version, latest)) {\n return false;\n }\n }\n return true;\n}\n\nexport async function resolveConstraint(\n toolConstraint: ToolConstraint,\n): Promise<string> {\n const { toolName } = toolConstraint;\n const toolConfig = allToolConfig[toolName];\n if (!toolConfig) {\n throw new Error(`Invalid tool to install: ${toolName}`);\n }\n\n const versioning = allVersioning.get(toolConfig.versioning);\n let constraint = toolConstraint.constraint;\n if (constraint) {\n if (versioning.isValid(constraint)) {\n if (versioning.isSingleVersion(constraint)) {\n return constraint.replace(/^=+/, '').trim();\n }\n } else {\n logger.warn(\n { toolName, constraint, versioning: toolConfig.versioning },\n 'Invalid tool constraint',\n );\n constraint = undefined;\n }\n }\n\n const pkgReleases = await getPkgReleases(toolConfig);\n const releases = pkgReleases?.releases ?? [];\n\n if (!releases?.length) {\n logger.warn({ toolConfig }, 'No tool releases found.');\n throw new Error('No tool releases found.');\n }\n\n const matchingReleases = releases.filter(\n (r) => !constraint || versioning.matches(r.version, constraint),\n );\n\n const stableMatchingVersion = matchingReleases\n .filter((r) => isStable(r.version, versioning, pkgReleases?.tags?.latest))\n .pop()?.version;\n if (stableMatchingVersion) {\n logger.debug(\n { toolName, constraint, resolvedVersion: stableMatchingVersion },\n 'Resolved stable matching version',\n );\n return stableMatchingVersion;\n }\n\n const unstableMatchingVersion = matchingReleases.pop()?.version;\n if (unstableMatchingVersion) {\n logger.debug(\n { toolName, constraint, resolvedVersion: unstableMatchingVersion },\n 'Resolved unstable matching version',\n );\n return unstableMatchingVersion;\n }\n\n const stableVersion = releases\n .filter((r) => isStable(r.version, versioning, pkgReleases?.tags?.latest))\n .pop()?.version;\n if (stableVersion) {\n logger.warn(\n { toolName, constraint, stableVersion },\n 'No matching tool versions found for constraint - using latest stable version',\n );\n }\n\n const highestVersion = releases.pop()!.version;\n logger.warn(\n { toolName, constraint, highestVersion },\n 'No matching or stable tool versions found - using an unstable version',\n );\n return highestVersion;\n}\n\nexport async function generateInstallCommands(\n toolConstraints: Opt<ToolConstraint[]>,\n): Promise<string[]> {\n const installCommands: string[] = [];\n if (toolConstraints?.length) {\n for (const toolConstraint of toolConstraints) {\n const toolVersion = await resolveConstraint(toolConstraint);\n const { toolName } = toolConstraint;\n const installCommand = `install-tool ${toolName} ${quote(toolVersion)}`;\n installCommands.push(installCommand);\n if (allToolConfig[toolName].hash) {\n installCommands.push(`hash -d ${toolName} 2>/dev/null || true`);\n }\n }\n }\n return installCommands;\n}\n"]}
|
1
|
+
{"version":3,"file":"containerbase.js","sourceRoot":"","sources":["../../../lib/util/exec/containerbase.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport { GlobalConfig } from '../../config/global';\nimport { logger } from '../../logger';\nimport type { ReleaseResult } from '../../modules/datasource';\nimport * as allVersioning from '../../modules/versioning';\nimport { id as composerVersioningId } from '../../modules/versioning/composer';\nimport { id as condaVersioningId } from '../../modules/versioning/conda';\nimport { id as gradleVersioningId } from '../../modules/versioning/gradle';\nimport { id as mavenVersioningId } from '../../modules/versioning/maven';\nimport { id as nodeVersioningId } from '../../modules/versioning/node';\nimport { id as npmVersioningId } from '../../modules/versioning/npm';\nimport { id as pep440VersioningId } from '../../modules/versioning/pep440';\nimport { id as pythonVersioningId } from '../../modules/versioning/python';\nimport { id as rubyVersioningId } from '../../modules/versioning/ruby';\nimport { id as semverVersioningId } from '../../modules/versioning/semver';\nimport { id as semverCoercedVersioningId } from '../../modules/versioning/semver-coerced';\nimport { getEnv } from '../env';\nimport type { Opt, ToolConfig, ToolConstraint } from './types';\n\nconst allToolConfig: Record<string, ToolConfig> = {\n bun: {\n datasource: 'github-releases',\n packageName: 'oven-sh/bun',\n extractVersion: '^bun-v(?<version>.*)$',\n versioning: npmVersioningId,\n },\n bundler: {\n datasource: 'rubygems',\n packageName: 'bundler',\n versioning: rubyVersioningId,\n },\n cocoapods: {\n datasource: 'rubygems',\n packageName: 'cocoapods',\n versioning: rubyVersioningId,\n },\n composer: {\n datasource: 'github-releases',\n packageName: 'containerbase/composer-prebuild',\n versioning: composerVersioningId,\n },\n copier: {\n datasource: 'pypi',\n packageName: 'copier',\n versioning: pep440VersioningId,\n },\n corepack: {\n datasource: 'npm',\n packageName: 'corepack',\n versioning: npmVersioningId,\n },\n devbox: {\n datasource: 'github-releases',\n packageName: 'jetify-com/devbox',\n versioning: semverVersioningId,\n },\n dotnet: {\n datasource: 'dotnet-version',\n packageName: 'dotnet-sdk',\n versioning: semverVersioningId,\n },\n erlang: {\n datasource: 'github-releases',\n packageName: 'containerbase/erlang-prebuild',\n versioning: semverCoercedVersioningId,\n },\n elixir: {\n datasource: 'github-releases',\n packageName: 'elixir-lang/elixir',\n versioning: semverVersioningId,\n },\n flux: {\n datasource: 'github-releases',\n packageName: 'fluxcd/flux2',\n versioning: semverVersioningId,\n },\n gleam: {\n datasource: 'github-releases',\n packageName: 'gleam-lang/gleam',\n versioning: semverVersioningId,\n },\n golang: {\n datasource: 'github-releases',\n packageName: 'containerbase/golang-prebuild',\n versioning: npmVersioningId,\n },\n gradle: {\n datasource: 'gradle-version',\n packageName: 'gradle',\n versioning: gradleVersioningId,\n },\n hashin: {\n datasource: 'pypi',\n packageName: 'hashin',\n versioning: pep440VersioningId,\n },\n helm: {\n datasource: 'github-releases',\n packageName: 'helm/helm',\n versioning: semverVersioningId,\n },\n helmfile: {\n datasource: 'github-releases',\n packageName: 'helmfile/helmfile',\n versioning: semverVersioningId,\n },\n java: {\n datasource: 'java-version',\n packageName: 'java',\n versioning: npmVersioningId,\n },\n /* not used in Renovate */\n 'java-maven': {\n datasource: 'java-version',\n packageName: 'java',\n versioning: mavenVersioningId,\n },\n jb: {\n datasource: 'github-releases',\n packageName: 'jsonnet-bundler/jsonnet-bundler',\n versioning: semverVersioningId,\n },\n kustomize: {\n datasource: 'github-releases',\n packageName: 'kubernetes-sigs/kustomize',\n extractVersion: '^kustomize/v(?<version>.*)$',\n versioning: semverVersioningId,\n },\n maven: {\n datasource: 'github-releases',\n packageName: 'containerbase/maven-prebuild',\n versioning: mavenVersioningId,\n },\n nix: {\n datasource: 'github-releases',\n packageName: 'containerbase/nix-prebuild',\n versioning: semverVersioningId,\n },\n node: {\n datasource: 'github-releases',\n packageName: 'containerbase/node-prebuild',\n versioning: nodeVersioningId,\n },\n npm: {\n datasource: 'npm',\n packageName: 'npm',\n hash: true,\n versioning: npmVersioningId,\n },\n pdm: {\n datasource: 'github-releases',\n packageName: 'pdm-project/pdm',\n versioning: semverVersioningId,\n },\n php: {\n datasource: 'github-releases',\n packageName: 'containerbase/php-prebuild',\n versioning: composerVersioningId,\n },\n 'pip-tools': {\n datasource: 'pypi',\n packageName: 'pip-tools',\n versioning: pep440VersioningId,\n },\n pipenv: {\n datasource: 'pypi',\n packageName: 'pipenv',\n versioning: pep440VersioningId,\n },\n pnpm: {\n datasource: 'npm',\n packageName: 'pnpm',\n versioning: npmVersioningId,\n },\n pixi: {\n datasource: 'github-releases',\n packageName: 'prefix-dev/pixi',\n versioning: condaVersioningId,\n extractVersion: '^v(?<version>.*)$',\n },\n poetry: {\n datasource: 'pypi',\n packageName: 'poetry',\n versioning: pep440VersioningId,\n },\n python: {\n datasource: 'github-releases',\n packageName: 'containerbase/python-prebuild',\n versioning: pythonVersioningId,\n },\n ruby: {\n datasource: 'github-releases',\n packageName: 'containerbase/ruby-prebuild',\n versioning: rubyVersioningId,\n },\n rust: {\n datasource: 'docker',\n packageName: 'rust',\n versioning: semverVersioningId,\n },\n uv: {\n datasource: 'pypi',\n packageName: 'uv',\n versioning: pep440VersioningId,\n },\n yarn: {\n datasource: 'npm',\n packageName: 'yarn',\n versioning: npmVersioningId,\n },\n 'yarn-slim': {\n datasource: 'npm',\n packageName: 'yarn',\n versioning: npmVersioningId,\n },\n dart: {\n datasource: 'dart-version',\n packageName: 'dart',\n versioning: npmVersioningId,\n },\n flutter: {\n datasource: 'github-releases',\n packageName: 'containerbase/flutter-prebuild',\n versioning: npmVersioningId,\n },\n vendir: {\n datasource: 'github-releases',\n packageName: 'carvel-dev/vendir',\n versioning: semverVersioningId,\n },\n};\n\nlet _getPkgReleases: Promise<typeof import('../../modules/datasource')> | null =\n null;\n\nasync function getPkgReleases(\n toolConfig: ToolConfig,\n): Promise<ReleaseResult | null> {\n _getPkgReleases ??= import('../../modules/datasource/index.js');\n const { getPkgReleases } = await _getPkgReleases;\n return getPkgReleases(toolConfig);\n}\n\nexport function supportsDynamicInstall(toolName: string): boolean {\n return !!allToolConfig[toolName];\n}\n\nexport function isContainerbase(): boolean {\n return !!getEnv().CONTAINERBASE;\n}\n\nexport function isDynamicInstall(\n toolConstraints?: Opt<ToolConstraint[]>,\n): boolean {\n if (GlobalConfig.get('binarySource') !== 'install') {\n return false;\n }\n if (!isContainerbase()) {\n logger.debug('Falling back to binarySource=global');\n return false;\n }\n return (\n !toolConstraints ||\n toolConstraints.every((toolConstraint) =>\n supportsDynamicInstall(toolConstraint.toolName),\n )\n );\n}\n\nfunction isStable(\n version: string,\n versioningApi: allVersioning.VersioningApi,\n latest?: string,\n): boolean {\n if (!versioningApi.isStable(version)) {\n return false;\n }\n if (is.string(latest)) {\n if (versioningApi.isGreaterThan(version, latest)) {\n return false;\n }\n }\n return true;\n}\n\nexport async function resolveConstraint(\n toolConstraint: ToolConstraint,\n): Promise<string> {\n const { toolName } = toolConstraint;\n const toolConfig = allToolConfig[toolName];\n if (!toolConfig) {\n throw new Error(`Invalid tool to install: ${toolName}`);\n }\n\n const versioning = allVersioning.get(toolConfig.versioning);\n let constraint = toolConstraint.constraint;\n if (constraint) {\n if (versioning.isValid(constraint)) {\n if (versioning.isSingleVersion(constraint)) {\n return constraint.replace(/^=+/, '').trim();\n }\n } else {\n logger.warn(\n { toolName, constraint, versioning: toolConfig.versioning },\n 'Invalid tool constraint',\n );\n constraint = undefined;\n }\n }\n\n const pkgReleases = await getPkgReleases(toolConfig);\n const releases = pkgReleases?.releases ?? [];\n\n if (!releases?.length) {\n logger.warn({ toolConfig }, 'No tool releases found.');\n throw new Error('No tool releases found.');\n }\n\n const matchingReleases = releases.filter(\n (r) => !constraint || versioning.matches(r.version, constraint),\n );\n\n const stableMatchingVersion = matchingReleases\n .filter((r) => isStable(r.version, versioning, pkgReleases?.tags?.latest))\n .pop()?.version;\n if (stableMatchingVersion) {\n logger.debug(\n { toolName, constraint, resolvedVersion: stableMatchingVersion },\n 'Resolved stable matching version',\n );\n return stableMatchingVersion;\n }\n\n const unstableMatchingVersion = matchingReleases.pop()?.version;\n if (unstableMatchingVersion) {\n logger.debug(\n { toolName, constraint, resolvedVersion: unstableMatchingVersion },\n 'Resolved unstable matching version',\n );\n return unstableMatchingVersion;\n }\n\n const stableVersion = releases\n .filter((r) => isStable(r.version, versioning, pkgReleases?.tags?.latest))\n .pop()?.version;\n if (stableVersion) {\n logger.warn(\n { toolName, constraint, stableVersion },\n 'No matching tool versions found for constraint - using latest stable version',\n );\n }\n\n const highestVersion = releases.pop()!.version;\n logger.warn(\n { toolName, constraint, highestVersion },\n 'No matching or stable tool versions found - using an unstable version',\n );\n return highestVersion;\n}\n\nexport async function generateInstallCommands(\n toolConstraints: Opt<ToolConstraint[]>,\n): Promise<string[]> {\n const installCommands: string[] = [];\n if (toolConstraints?.length) {\n for (const toolConstraint of toolConstraints) {\n const toolVersion = await resolveConstraint(toolConstraint);\n const { toolName } = toolConstraint;\n const installCommand = `install-tool ${toolName} ${quote(toolVersion)}`;\n installCommands.push(installCommand);\n if (allToolConfig[toolName].hash) {\n installCommands.push(`hash -d ${toolName} 2>/dev/null || true`);\n }\n }\n }\n return installCommands;\n}\n"]}
|
package/dist/util/exec/env.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../lib/util/exec/env.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../lib/util/exec/env.ts"],"names":[],"mappings":";;AA0CA,gDAqBC;AA/DD,gDAAmD;AAEnD,MAAM,YAAY,GAAG;IACnB,IAAI;IACJ,YAAY;IACZ,aAAa;IACb,UAAU;IACV,YAAY;IACZ,aAAa;IACb,UAAU;IACV,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,aAAa;IACb,mBAAmB;IACnB,kBAAkB;IAClB,8BAA8B;IAC9B,yEAAyE;IACzE,cAAc;IACd,eAAe;IACf,qBAAqB;IACrB,yCAAyC;IACzC,cAAc;IACd,mBAAmB;IACnB,SAAS;IACT,cAAc;IACd,+CAA+C;IAC/C,4BAA4B;IAC5B,yBAAyB;IACzB,wBAAwB;IACxB,8BAA8B;IAC9B,oCAAoC;IACpC,eAAe;IACf,yBAAyB;IACzB,uBAAuB;IACvB,oBAAoB;IACpB,uBAAuB;IACvB,uBAAuB;IACvB,eAAe;CAChB,CAAC;AAEF,SAAgB,kBAAkB,CAChC,gBAA0B,EAAE;IAE5B,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,IAAI,qBAAY,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,aAAa,CAAC,CAAC;IACpD,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACzB,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,WAAW,EAAE,CAAC;YAC/C,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,sCAAsC;IACtC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3C,IAAI,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC","sourcesContent":["import { GlobalConfig } from '../../config/global';\n\nconst basicEnvVars = [\n 'CI',\n 'HTTP_PROXY',\n 'HTTPS_PROXY',\n 'NO_PROXY',\n 'http_proxy',\n 'https_proxy',\n 'no_proxy',\n 'HOME',\n 'PATH',\n 'LC_ALL',\n 'LANG',\n 'DOCKER_HOST',\n 'DOCKER_TLS_VERIFY',\n 'DOCKER_CERT_PATH',\n // Custom certificte variables\n // https://github.com/containerbase/base/blob/main/docs/custom-root-ca.md\n 'SSL_CERT_DIR',\n 'SSL_CERT_FILE',\n 'NODE_EXTRA_CA_CERTS',\n // Required for NuGet to work on Windows.\n 'PROGRAMFILES',\n 'PROGRAMFILES(X86)',\n 'APPDATA',\n 'LOCALAPPDATA',\n // Corepack: https://github.com/nodejs/corepack\n 'COREPACK_DEFAULT_TO_LATEST',\n 'COREPACK_ENABLE_NETWORK',\n 'COREPACK_ENABLE_STRICT',\n 'COREPACK_ENABLE_PROJECT_SPEC',\n 'COREPACK_ENABLE_UNSAFE_CUSTOM_URLS',\n 'COREPACK_HOME',\n 'COREPACK_INTEGRITY_KEYS',\n 'COREPACK_NPM_REGISTRY',\n 'COREPACK_NPM_TOKEN',\n 'COREPACK_NPM_USERNAME',\n 'COREPACK_NPM_PASSWORD',\n 'COREPACK_ROOT',\n];\n\nexport function getChildProcessEnv(\n customEnvVars: string[] = [],\n): NodeJS.ProcessEnv {\n const env: NodeJS.ProcessEnv = {};\n if (GlobalConfig.get('exposeAllEnv')) {\n return { ...process.env };\n }\n const envVars = [...basicEnvVars, ...customEnvVars];\n envVars.forEach((envVar) => {\n if (typeof process.env[envVar] !== 'undefined') {\n env[envVar] = process.env[envVar];\n }\n });\n\n // Copy containerbase url replacements\n for (const key of Object.keys(process.env)) {\n if (/^URL_REPLACE_\\d+_(?:FROM|TO)$/.test(key)) {\n env[key] = process.env[key];\n }\n }\n return env;\n}\n"]}
|
@@ -1,2 +1,2 @@
|
|
1
1
|
import type { ExecOptions } from './types';
|
2
|
-
export declare function getChildEnv({ extraEnv, env: forcedEnv, }
|
2
|
+
export declare function getChildEnv({ extraEnv, env: forcedEnv, }?: Pick<ExecOptions, 'env' | 'extraEnv'>): Record<string, string>;
|
package/dist/util/exec/utils.js
CHANGED
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
|
|
5
5
|
const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
|
6
6
|
const env_1 = require("../env");
|
7
7
|
const env_2 = require("./env");
|
8
|
-
function getChildEnv({ extraEnv, env: forcedEnv = {}, }) {
|
8
|
+
function getChildEnv({ extraEnv, env: forcedEnv = {}, } = {}) {
|
9
9
|
const globalConfigEnv = (0, env_1.getCustomEnv)();
|
10
10
|
const userConfiguredEnv = (0, env_1.getUserEnv)();
|
11
11
|
const inheritedKeys = [];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/util/exec/utils.ts"],"names":[],"mappings":";;AAKA,kCA+BC;;AApCD,kEAAkC;AAClC,gCAAkD;AAClD,+BAA2C;AAG3C,SAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,GAAG,EAAE,SAAS,GAAG,EAAE,
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/util/exec/utils.ts"],"names":[],"mappings":";;AAKA,kCA+BC;;AApCD,kEAAkC;AAClC,gCAAkD;AAClD,+BAA2C;AAG3C,SAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,GAAG,EAAE,SAAS,GAAG,EAAE,MACsB,EAAE;IAC3C,MAAM,eAAe,GAAG,IAAA,kBAAY,GAAE,CAAC;IACvC,MAAM,iBAAiB,GAAG,IAAA,gBAAU,GAAE,CAAC;IAEvC,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;QACxD,IAAI,YAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAA,wBAAkB,EAAC,aAAa,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG;QAClB,GAAG,QAAQ;QACX,GAAG,SAAS;QACZ,GAAG,eAAe;QAClB,GAAG,iBAAiB;QACpB,GAAG,SAAS;KACb,CAAC;IAEF,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACrD,IAAI,YAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport { getCustomEnv, getUserEnv } from '../env';\nimport { getChildProcessEnv } from './env';\nimport type { ExecOptions } from './types';\n\nexport function getChildEnv({\n extraEnv,\n env: forcedEnv = {},\n}: Pick<ExecOptions, 'env' | 'extraEnv'> = {}): Record<string, string> {\n const globalConfigEnv = getCustomEnv();\n const userConfiguredEnv = getUserEnv();\n\n const inheritedKeys: string[] = [];\n for (const [key, val] of Object.entries(extraEnv ?? {})) {\n if (is.string(val)) {\n inheritedKeys.push(key);\n }\n }\n\n const parentEnv = getChildProcessEnv(inheritedKeys);\n const combinedEnv = {\n ...extraEnv,\n ...parentEnv,\n ...globalConfigEnv,\n ...userConfiguredEnv,\n ...forcedEnv,\n };\n\n const result: Record<string, string> = {};\n for (const [key, val] of Object.entries(combinedEnv)) {\n if (is.string(val)) {\n result[key] = `${val}`;\n }\n }\n\n return result;\n}\n"]}
|
package/dist/util/fs/index.js
CHANGED
@@ -37,7 +37,7 @@ const tslib_1 = require("tslib");
|
|
37
37
|
const node_stream_1 = tslib_1.__importDefault(require("node:stream"));
|
38
38
|
const node_util_1 = tslib_1.__importDefault(require("node:util"));
|
39
39
|
const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
|
40
|
-
const find_up_1 =
|
40
|
+
const find_up_1 = require("find-up");
|
41
41
|
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
42
42
|
const upath_1 = tslib_1.__importDefault(require("upath"));
|
43
43
|
const global_1 = require("../../config/global");
|
@@ -204,7 +204,7 @@ async function findUpLocal(fileName, cwd) {
|
|
204
204
|
const localDir = global_1.GlobalConfig.get('localDir');
|
205
205
|
const absoluteCwd = upath_1.default.join(localDir, cwd);
|
206
206
|
const normalizedAbsoluteCwd = upath_1.default.normalizeSafe(absoluteCwd);
|
207
|
-
const res = await (0, find_up_1.
|
207
|
+
const res = await (0, find_up_1.findUp)(fileName, {
|
208
208
|
cwd: normalizedAbsoluteCwd,
|
209
209
|
type: 'file',
|
210
210
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/util/fs/index.ts"],"names":[],"mappings":";;;AAYA,oCAEC;AAED,gDAMC;AAOD,sCAcC;AAED,4CAWC;AAED,wCAMC;AAED,0CAUC;AAED,0CAOC;AAED,8BAIC;AAED,wCAIC;AAED,wCAIC;AAOD,0CAGC;AAED,0CASC;AAOD,4CAEC;AAQD,4DAqBC;AAKD,gDAIC;AAED,wDAGC;AAED,sDAGC;AAED,0CAQC;AAED,0DAUC;AAMD,kCA0BC;AAED,wCAMC;AAED,sCASC;AAED,sCASC;AAED,oCASC;AAED,0BAGC;AAED,0CAQC;AAED,0CAQC;AAOD,sCAMC;AAED,0CAMC;AAOD,wCAKC;AAED,0CAKC;AAED,sCAUC;;AAjWD,sEAAiC;AACjC,kEAA6B;AAC7B,kEAAkC;AAClC,8DAA6B;AAC7B,gEAA0B;AAC1B,0DAA0B;AAC1B,gDAAmD;AACnD,yCAAsC;AACtC,iCAAuE;AAE1D,QAAA,QAAQ,GAAG,mBAAI,CAAC,SAAS,CAAC,qBAAM,CAAC,QAAQ,CAAC,CAAC;AAExD,SAAgB,YAAY,CAAC,QAAgB;IAC3C,OAAO,eAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;AACnC,CAAC;AAED,SAAgB,kBAAkB,CAChC,QAAgB,EAChB,WAAmB;IAEnB,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC5C,OAAO,eAAK,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AAC/C,CAAC;AAOM,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,QAAyB;IAEzB,MAAM,aAAa,GAAG,IAAA,sBAAe,EAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,QAAQ;YAC1B,CAAC,CAAC,MAAM,kBAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;YAC5C,CAAC,CAAC,MAAM,kBAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACrC,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,0BAA0B,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,gBAAgB,CACpC,QAAgB;IAEhB,MAAM,aAAa,GAAG,IAAA,sBAAe,EAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACrD,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,6BAA6B,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,WAA4B;IAE5B,MAAM,aAAa,GAAG,IAAA,sBAAe,EAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,kBAAE,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AAClD,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,QAAgB;IACpD,wDAAwD;IACxD,IAAI,qBAAY,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,OAAO,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,QAAQ,GAAG,qBAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,aAAa,GAAG,IAAA,sBAAe,EAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,kBAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,QAAgB,EAChB,MAAc;IAEd,MAAM,QAAQ,GAAG,IAAA,sBAAe,EAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAA,sBAAe,EAAC,MAAM,CAAC,CAAC;IACvC,MAAM,kBAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,OAAe;IAC7C,IAAI,YAAE,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,kBAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,OAAe;IAClD,MAAM,QAAQ,GAAG,IAAA,sBAAe,EAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,kBAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC7B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,IAAY;IAC/C,MAAM,YAAY,GAAG,IAAA,sBAAe,EAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,kBAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACjC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe;IAC7B,MAAM,QAAQ,GAAG,qBAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,eAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC;AAC1D,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,QAAgB;IACpD,8CAA8C;IAC9C,MAAM,IAAI,GAAG,IAAA,sBAAe,EAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,kBAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC,CAAC,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,OAAO,IAAA,kBAAW,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,wBAAwB,CAC5C,wBAAgC,EAChC,aAAqB;IAErB,IAAI,eAAK,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,eAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,GAAG,wBAAwB,CAAC;IACvC,OAAO,OAAO,KAAK,EAAE,EAAE,CAAC;QACtB,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,SAAS,GAAG,eAAK,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACrD,IAAI,MAAM,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,kBAAkB,CAAC,IAAY;IACnD,MAAM,SAAS,GAAG,IAAA,sBAAe,EAAC,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAgB,sBAAsB,CAAC,IAAY;IACjD,MAAM,QAAQ,GAAG,IAAA,sBAAe,EAAC,IAAI,CAAC,CAAC;IACvC,OAAO,kBAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,qBAAqB,CAAC,IAAY;IAChD,MAAM,QAAQ,GAAG,IAAA,sBAAe,EAAC,IAAI,CAAC,CAAC;IACvC,OAAO,kBAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,QAAgB;IACpD,MAAM,IAAI,GAAG,IAAA,sBAAe,EAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,kBAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAC3C,QAAgB;IAEhB,MAAM,IAAI,GAAG,IAAA,sBAAe,EAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,kBAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AAEI,KAAK,UAAU,WAAW,CAC/B,QAA2B,EAC3B,GAAW;IAEX,MAAM,QAAQ,GAAG,qBAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,eAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC9C,MAAM,qBAAqB,GAAG,eAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,MAAM,IAAA,iBAAM,EAAC,QAAQ,EAAE;QACjC,GAAG,EAAE,qBAAqB;QAC1B,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;IACH,+BAA+B;IAC/B,IAAI,CAAC,YAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,YAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,QAAQ,GAAG,eAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1C,sDAAsD;IACtD,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,IAAI,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,mDAAmD;IACnD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,cAAc,CAC5B,QAAgB,EAChB,IAAqB;IAErB,MAAM,YAAY,GAAG,IAAA,sBAAe,EAAC,QAAQ,CAAC,CAAC;IAC/C,OAAO,kBAAE,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,QAAgB;IAEhB,MAAM,YAAY,GAAG,IAAA,sBAAe,EAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC;QACH,OAAO,MAAM,kBAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,QAAgB;IAEhB,MAAM,IAAI,GAAG,IAAA,sBAAe,EAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,OAAO,MAAM,kBAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,YAAY,CAC1B,IAAY,EACZ,UAAkC,EAAE,SAAS,EAAE,KAAK,EAAE;IAEtD,MAAM,QAAQ,GAAG,IAAA,sBAAe,EAAC,IAAI,CAAC,CAAC;IACvC,OAAO,kBAAE,CAAC,OAAO,CAAC,QAAQ,EAAE;QAC1B,QAAQ,EAAE,OAAO;QACjB,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,OAAO,CAAC,IAAY;IACxC,MAAM,QAAQ,GAAG,IAAA,sBAAe,EAAC,IAAI,CAAC,CAAC;IACvC,MAAM,kBAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,QAAgB;IACpD,MAAM,IAAI,GAAG,IAAA,sBAAe,EAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,kBAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC,CAAC,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,QAAgB;IACpD,MAAM,IAAI,GAAG,IAAA,sBAAe,EAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,kBAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAOD,SAAgB,aAAa,CAC3B,QAAgB,EAChB,QAAyB;IAEzB,MAAM,QAAQ,GAAG,IAAA,sBAAe,EAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,QAAQ,CAAC,CAAC,CAAC,kBAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,kBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5E,CAAC;AAED,SAAgB,eAAe,CAC7B,IAAY,EACZ,IAAqC;IAErC,MAAM,QAAQ,GAAG,IAAA,sBAAe,EAAC,IAAI,CAAC,CAAC;IACvC,OAAO,kBAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAOD,SAAgB,cAAc,CAC5B,QAAgB,EAChB,QAAyB;IAEzB,OAAO,QAAQ,CAAC,CAAC,CAAC,kBAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,kBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5E,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,QAAgB,EAChB,IAAqB;IAErB,MAAM,kBAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,SAAmB;IAEnB,MAAM,cAAc,GAAkC,EAAE,CAAC;IAEzD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,cAAc,CAAC,QAAQ,CAAC,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC","sourcesContent":["import stream from 'node:stream';\nimport util from 'node:util';\nimport is from '@sindresorhus/is';\nimport findUp from 'find-up';\nimport fs from 'fs-extra';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../config/global';\nimport { logger } from '../../logger';\nimport { ensureCachePath, ensureLocalPath, isValidPath } from './util';\n\nexport const pipeline = util.promisify(stream.pipeline);\n\nexport function getParentDir(fileName: string): string {\n return upath.parse(fileName).dir;\n}\n\nexport function getSiblingFileName(\n fileName: string,\n siblingName: string,\n): string {\n const subDirectory = getParentDir(fileName);\n return upath.join(subDirectory, siblingName);\n}\n\nexport async function readLocalFile(fileName: string): Promise<Buffer | null>;\nexport async function readLocalFile(\n fileName: string,\n encoding: 'utf8',\n): Promise<string | null>;\nexport async function readLocalFile(\n fileName: string,\n encoding?: BufferEncoding,\n): Promise<string | Buffer | null> {\n const localFileName = ensureLocalPath(fileName);\n try {\n const fileContent = encoding\n ? await fs.readFile(localFileName, encoding)\n : await fs.readFile(localFileName);\n return fileContent;\n } catch (err) {\n logger.trace({ err }, 'Error reading local file');\n return null;\n }\n}\n\nexport async function readLocalSymlink(\n fileName: string,\n): Promise<string | null> {\n const localFileName = ensureLocalPath(fileName);\n try {\n const linkContent = await fs.readlink(localFileName);\n return linkContent;\n } catch (err) {\n logger.trace({ err }, 'Error reading local symlink');\n return null;\n }\n}\n\nexport async function writeLocalFile(\n fileName: string,\n fileContent: string | Buffer,\n): Promise<void> {\n const localFileName = ensureLocalPath(fileName);\n await fs.outputFile(localFileName, fileContent);\n}\n\nexport async function deleteLocalFile(fileName: string): Promise<void> {\n // This a failsafe and hopefully will never be triggered\n if (GlobalConfig.get('platform') === 'local') {\n throw new Error('Cannot delete file when platform=local');\n }\n const localDir = GlobalConfig.get('localDir');\n if (localDir) {\n const localFileName = ensureLocalPath(fileName);\n await fs.remove(localFileName);\n }\n}\n\nexport async function renameLocalFile(\n fromFile: string,\n toFile: string,\n): Promise<void> {\n const fromPath = ensureLocalPath(fromFile);\n const toPath = ensureLocalPath(toFile);\n await fs.move(fromPath, toPath);\n}\n\nexport async function ensureDir(dirName: string): Promise<void> {\n if (is.nonEmptyString(dirName)) {\n await fs.ensureDir(dirName);\n }\n}\n\nexport async function ensureLocalDir(dirName: string): Promise<string> {\n const fullPath = ensureLocalPath(dirName);\n await fs.ensureDir(fullPath);\n return fullPath;\n}\n\nexport async function ensureCacheDir(name: string): Promise<string> {\n const cacheDirName = ensureCachePath(`others/${name}`);\n await fs.ensureDir(cacheDirName);\n return cacheDirName;\n}\n\n/**\n * Return the path of the private cache directory. This directory is wiped\n * between repositories, so they can be used to store private registries' index\n * without risk of that information leaking to other repositories/users.\n */\nexport function privateCacheDir(): string {\n const cacheDir = GlobalConfig.get('cacheDir');\n return upath.join(cacheDir, '__renovate-private-cache');\n}\n\nexport async function localPathExists(pathName: string): Promise<boolean> {\n // Works for both files as well as directories\n const path = ensureLocalPath(pathName);\n try {\n const s = await fs.stat(path);\n return !!s;\n } catch {\n return false;\n }\n}\n\n/**\n * Validate local path without throwing.\n * @param path Path to check\n * @returns `true` if given `path` is a valid local path, otherwise `false`.\n */\nexport function isValidLocalPath(path: string): boolean {\n return isValidPath(path, 'localDir');\n}\n\n/**\n * Tries to find `otherFileName` in the directory where\n * `existingFileNameWithPath` is, then in its parent directory, then in the\n * grandparent, until we reach the top-level directory. All paths\n * must be relative to `localDir`.\n */\nexport async function findLocalSiblingOrParent(\n existingFileNameWithPath: string,\n otherFileName: string,\n): Promise<string | null> {\n if (upath.isAbsolute(existingFileNameWithPath)) {\n return null;\n }\n if (upath.isAbsolute(otherFileName)) {\n return null;\n }\n\n let current = existingFileNameWithPath;\n while (current !== '') {\n current = getParentDir(current);\n const candidate = upath.join(current, otherFileName);\n if (await localPathExists(candidate)) {\n return candidate;\n }\n }\n\n return null;\n}\n\n/**\n * Get files by name from directory\n */\nexport async function readLocalDirectory(path: string): Promise<string[]> {\n const localPath = ensureLocalPath(path);\n const fileList = await fs.readdir(localPath);\n return fileList;\n}\n\nexport function createCacheWriteStream(path: string): fs.WriteStream {\n const fullPath = ensureCachePath(path);\n return fs.createWriteStream(fullPath);\n}\n\nexport function createCacheReadStream(path: string): fs.ReadStream {\n const fullPath = ensureCachePath(path);\n return fs.createReadStream(fullPath);\n}\n\nexport async function localPathIsFile(pathName: string): Promise<boolean> {\n const path = ensureLocalPath(pathName);\n try {\n const s = await fs.stat(path);\n return s.isFile();\n } catch {\n return false;\n }\n}\n\nexport async function localPathIsSymbolicLink(\n pathName: string,\n): Promise<boolean> {\n const path = ensureLocalPath(pathName);\n try {\n const s = await fs.lstat(path);\n return s.isSymbolicLink();\n } catch {\n return false;\n }\n}\n\n/**\n * Find a file or directory by walking up parent directories within localDir\n */\n\nexport async function findUpLocal(\n fileName: string | string[],\n cwd: string,\n): Promise<string | null> {\n const localDir = GlobalConfig.get('localDir');\n const absoluteCwd = upath.join(localDir, cwd);\n const normalizedAbsoluteCwd = upath.normalizeSafe(absoluteCwd);\n const res = await findUp(fileName, {\n cwd: normalizedAbsoluteCwd,\n type: 'file',\n });\n // Return null if nothing found\n if (!is.nonEmptyString(res) || !is.nonEmptyString(localDir)) {\n return null;\n }\n const safePath = upath.normalizeSafe(res);\n // Return relative path if file is inside of local dir\n if (safePath.startsWith(localDir)) {\n let relativePath = safePath.replace(localDir, '');\n if (relativePath.startsWith('/')) {\n relativePath = relativePath.substring(1);\n }\n return relativePath;\n }\n // Return null if found file is outside of localDir\n return null;\n}\n\nexport function chmodLocalFile(\n fileName: string,\n mode: string | number,\n): Promise<void> {\n const fullFileName = ensureLocalPath(fileName);\n return fs.chmod(fullFileName, mode);\n}\n\nexport async function statLocalFile(\n fileName: string,\n): Promise<fs.Stats | null> {\n const fullFileName = ensureLocalPath(fileName);\n try {\n return await fs.stat(fullFileName);\n } catch {\n return null;\n }\n}\n\nexport async function statCacheFile(\n pathName: string,\n): Promise<fs.Stats | null> {\n const path = ensureCachePath(pathName);\n try {\n return await fs.stat(path);\n } catch {\n return null;\n }\n}\n\nexport function listCacheDir(\n path: string,\n options: { recursive: boolean } = { recursive: false },\n): Promise<string[]> {\n const fullPath = ensureCachePath(path);\n return fs.readdir(fullPath, {\n encoding: 'utf-8',\n recursive: options.recursive,\n });\n}\n\nexport async function rmCache(path: string): Promise<void> {\n const fullPath = ensureCachePath(path);\n await fs.rm(fullPath, { recursive: true });\n}\n\nexport async function cachePathExists(pathName: string): Promise<boolean> {\n const path = ensureCachePath(pathName);\n try {\n const s = await fs.stat(path);\n return !!s;\n } catch {\n return false;\n }\n}\n\nexport async function cachePathIsFile(pathName: string): Promise<boolean> {\n const path = ensureCachePath(pathName);\n try {\n const s = await fs.stat(path);\n return s.isFile();\n } catch {\n return false;\n }\n}\n\nexport async function readCacheFile(fileName: string): Promise<Buffer>;\nexport async function readCacheFile(\n fileName: string,\n encoding: 'utf8',\n): Promise<string>;\nexport function readCacheFile(\n fileName: string,\n encoding?: BufferEncoding,\n): Promise<string | Buffer> {\n const fullPath = ensureCachePath(fileName);\n return encoding ? fs.readFile(fullPath, encoding) : fs.readFile(fullPath);\n}\n\nexport function outputCacheFile(\n file: string,\n data: string | NodeJS.ArrayBufferView,\n): Promise<void> {\n const filePath = ensureCachePath(file);\n return fs.outputFile(filePath, data);\n}\n\nexport async function readSystemFile(fileName: string): Promise<Buffer>;\nexport async function readSystemFile(\n fileName: string,\n encoding: 'utf8',\n): Promise<string>;\nexport function readSystemFile(\n fileName: string,\n encoding?: BufferEncoding,\n): Promise<string | Buffer> {\n return encoding ? fs.readFile(fileName, encoding) : fs.readFile(fileName);\n}\n\nexport async function writeSystemFile(\n fileName: string,\n data: string | Buffer,\n): Promise<void> {\n await fs.outputFile(fileName, data);\n}\n\nexport async function getLocalFiles(\n fileNames: string[],\n): Promise<Record<string, string | null>> {\n const fileContentMap: Record<string, string | null> = {};\n\n for (const fileName of fileNames) {\n fileContentMap[fileName] = await readLocalFile(fileName, 'utf8');\n }\n\n return fileContentMap;\n}\n"]}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/util/fs/index.ts"],"names":[],"mappings":"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","sourcesContent":["import stream from 'node:stream';\nimport util from 'node:util';\nimport is from '@sindresorhus/is';\nimport { findUp } from 'find-up';\nimport fs from 'fs-extra';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../config/global';\nimport { logger } from '../../logger';\nimport { ensureCachePath, ensureLocalPath, isValidPath } from './util';\n\nexport const pipeline = util.promisify(stream.pipeline);\n\nexport function getParentDir(fileName: string): string {\n return upath.parse(fileName).dir;\n}\n\nexport function getSiblingFileName(\n fileName: string,\n siblingName: string,\n): string {\n const subDirectory = getParentDir(fileName);\n return upath.join(subDirectory, siblingName);\n}\n\nexport async function readLocalFile(fileName: string): Promise<Buffer | null>;\nexport async function readLocalFile(\n fileName: string,\n encoding: 'utf8',\n): Promise<string | null>;\nexport async function readLocalFile(\n fileName: string,\n encoding?: BufferEncoding,\n): Promise<string | Buffer | null> {\n const localFileName = ensureLocalPath(fileName);\n try {\n const fileContent = encoding\n ? await fs.readFile(localFileName, encoding)\n : await fs.readFile(localFileName);\n return fileContent;\n } catch (err) {\n logger.trace({ err }, 'Error reading local file');\n return null;\n }\n}\n\nexport async function readLocalSymlink(\n fileName: string,\n): Promise<string | null> {\n const localFileName = ensureLocalPath(fileName);\n try {\n const linkContent = await fs.readlink(localFileName);\n return linkContent;\n } catch (err) {\n logger.trace({ err }, 'Error reading local symlink');\n return null;\n }\n}\n\nexport async function writeLocalFile(\n fileName: string,\n fileContent: string | Buffer,\n): Promise<void> {\n const localFileName = ensureLocalPath(fileName);\n await fs.outputFile(localFileName, fileContent);\n}\n\nexport async function deleteLocalFile(fileName: string): Promise<void> {\n // This a failsafe and hopefully will never be triggered\n if (GlobalConfig.get('platform') === 'local') {\n throw new Error('Cannot delete file when platform=local');\n }\n const localDir = GlobalConfig.get('localDir');\n if (localDir) {\n const localFileName = ensureLocalPath(fileName);\n await fs.remove(localFileName);\n }\n}\n\nexport async function renameLocalFile(\n fromFile: string,\n toFile: string,\n): Promise<void> {\n const fromPath = ensureLocalPath(fromFile);\n const toPath = ensureLocalPath(toFile);\n await fs.move(fromPath, toPath);\n}\n\nexport async function ensureDir(dirName: string): Promise<void> {\n if (is.nonEmptyString(dirName)) {\n await fs.ensureDir(dirName);\n }\n}\n\nexport async function ensureLocalDir(dirName: string): Promise<string> {\n const fullPath = ensureLocalPath(dirName);\n await fs.ensureDir(fullPath);\n return fullPath;\n}\n\nexport async function ensureCacheDir(name: string): Promise<string> {\n const cacheDirName = ensureCachePath(`others/${name}`);\n await fs.ensureDir(cacheDirName);\n return cacheDirName;\n}\n\n/**\n * Return the path of the private cache directory. This directory is wiped\n * between repositories, so they can be used to store private registries' index\n * without risk of that information leaking to other repositories/users.\n */\nexport function privateCacheDir(): string {\n const cacheDir = GlobalConfig.get('cacheDir');\n return upath.join(cacheDir, '__renovate-private-cache');\n}\n\nexport async function localPathExists(pathName: string): Promise<boolean> {\n // Works for both files as well as directories\n const path = ensureLocalPath(pathName);\n try {\n const s = await fs.stat(path);\n return !!s;\n } catch {\n return false;\n }\n}\n\n/**\n * Validate local path without throwing.\n * @param path Path to check\n * @returns `true` if given `path` is a valid local path, otherwise `false`.\n */\nexport function isValidLocalPath(path: string): boolean {\n return isValidPath(path, 'localDir');\n}\n\n/**\n * Tries to find `otherFileName` in the directory where\n * `existingFileNameWithPath` is, then in its parent directory, then in the\n * grandparent, until we reach the top-level directory. All paths\n * must be relative to `localDir`.\n */\nexport async function findLocalSiblingOrParent(\n existingFileNameWithPath: string,\n otherFileName: string,\n): Promise<string | null> {\n if (upath.isAbsolute(existingFileNameWithPath)) {\n return null;\n }\n if (upath.isAbsolute(otherFileName)) {\n return null;\n }\n\n let current = existingFileNameWithPath;\n while (current !== '') {\n current = getParentDir(current);\n const candidate = upath.join(current, otherFileName);\n if (await localPathExists(candidate)) {\n return candidate;\n }\n }\n\n return null;\n}\n\n/**\n * Get files by name from directory\n */\nexport async function readLocalDirectory(path: string): Promise<string[]> {\n const localPath = ensureLocalPath(path);\n const fileList = await fs.readdir(localPath);\n return fileList;\n}\n\nexport function createCacheWriteStream(path: string): fs.WriteStream {\n const fullPath = ensureCachePath(path);\n return fs.createWriteStream(fullPath);\n}\n\nexport function createCacheReadStream(path: string): fs.ReadStream {\n const fullPath = ensureCachePath(path);\n return fs.createReadStream(fullPath);\n}\n\nexport async function localPathIsFile(pathName: string): Promise<boolean> {\n const path = ensureLocalPath(pathName);\n try {\n const s = await fs.stat(path);\n return s.isFile();\n } catch {\n return false;\n }\n}\n\nexport async function localPathIsSymbolicLink(\n pathName: string,\n): Promise<boolean> {\n const path = ensureLocalPath(pathName);\n try {\n const s = await fs.lstat(path);\n return s.isSymbolicLink();\n } catch {\n return false;\n }\n}\n\n/**\n * Find a file or directory by walking up parent directories within localDir\n */\n\nexport async function findUpLocal(\n fileName: string | string[],\n cwd: string,\n): Promise<string | null> {\n const localDir = GlobalConfig.get('localDir');\n const absoluteCwd = upath.join(localDir, cwd);\n const normalizedAbsoluteCwd = upath.normalizeSafe(absoluteCwd);\n const res = await findUp(fileName, {\n cwd: normalizedAbsoluteCwd,\n type: 'file',\n });\n // Return null if nothing found\n if (!is.nonEmptyString(res) || !is.nonEmptyString(localDir)) {\n return null;\n }\n const safePath = upath.normalizeSafe(res);\n // Return relative path if file is inside of local dir\n if (safePath.startsWith(localDir)) {\n let relativePath = safePath.replace(localDir, '');\n if (relativePath.startsWith('/')) {\n relativePath = relativePath.substring(1);\n }\n return relativePath;\n }\n // Return null if found file is outside of localDir\n return null;\n}\n\nexport function chmodLocalFile(\n fileName: string,\n mode: string | number,\n): Promise<void> {\n const fullFileName = ensureLocalPath(fileName);\n return fs.chmod(fullFileName, mode);\n}\n\nexport async function statLocalFile(\n fileName: string,\n): Promise<fs.Stats | null> {\n const fullFileName = ensureLocalPath(fileName);\n try {\n return await fs.stat(fullFileName);\n } catch {\n return null;\n }\n}\n\nexport async function statCacheFile(\n pathName: string,\n): Promise<fs.Stats | null> {\n const path = ensureCachePath(pathName);\n try {\n return await fs.stat(path);\n } catch {\n return null;\n }\n}\n\nexport function listCacheDir(\n path: string,\n options: { recursive: boolean } = { recursive: false },\n): Promise<string[]> {\n const fullPath = ensureCachePath(path);\n return fs.readdir(fullPath, {\n encoding: 'utf-8',\n recursive: options.recursive,\n });\n}\n\nexport async function rmCache(path: string): Promise<void> {\n const fullPath = ensureCachePath(path);\n await fs.rm(fullPath, { recursive: true });\n}\n\nexport async function cachePathExists(pathName: string): Promise<boolean> {\n const path = ensureCachePath(pathName);\n try {\n const s = await fs.stat(path);\n return !!s;\n } catch {\n return false;\n }\n}\n\nexport async function cachePathIsFile(pathName: string): Promise<boolean> {\n const path = ensureCachePath(pathName);\n try {\n const s = await fs.stat(path);\n return s.isFile();\n } catch {\n return false;\n }\n}\n\nexport async function readCacheFile(fileName: string): Promise<Buffer>;\nexport async function readCacheFile(\n fileName: string,\n encoding: 'utf8',\n): Promise<string>;\nexport function readCacheFile(\n fileName: string,\n encoding?: BufferEncoding,\n): Promise<string | Buffer> {\n const fullPath = ensureCachePath(fileName);\n return encoding ? fs.readFile(fullPath, encoding) : fs.readFile(fullPath);\n}\n\nexport function outputCacheFile(\n file: string,\n data: string | NodeJS.ArrayBufferView,\n): Promise<void> {\n const filePath = ensureCachePath(file);\n return fs.outputFile(filePath, data);\n}\n\nexport async function readSystemFile(fileName: string): Promise<Buffer>;\nexport async function readSystemFile(\n fileName: string,\n encoding: 'utf8',\n): Promise<string>;\nexport function readSystemFile(\n fileName: string,\n encoding?: BufferEncoding,\n): Promise<string | Buffer> {\n return encoding ? fs.readFile(fileName, encoding) : fs.readFile(fileName);\n}\n\nexport async function writeSystemFile(\n fileName: string,\n data: string | Buffer,\n): Promise<void> {\n await fs.outputFile(fileName, data);\n}\n\nexport async function getLocalFiles(\n fileNames: string[],\n): Promise<Record<string, string | null>> {\n const fileContentMap: Record<string, string | null> = {};\n\n for (const fileName of fileNames) {\n fileContentMap[fileName] = await readLocalFile(fileName, 'utf8');\n }\n\n return fileContentMap;\n}\n"]}
|
package/dist/util/git/auth.js
CHANGED
@@ -8,6 +8,7 @@ const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
|
|
8
8
|
const platforms_1 = require("../../constants/platforms");
|
9
9
|
const logger_1 = require("../../logger");
|
10
10
|
const common_1 = require("../common");
|
11
|
+
const env_1 = require("../env");
|
11
12
|
const host_rules_1 = require("../host-rules");
|
12
13
|
const regex_1 = require("../regex");
|
13
14
|
const url_1 = require("../url");
|
@@ -27,15 +28,16 @@ function getGitAuthenticatedEnvironmentVariables(originalGitUrl, { token, userna
|
|
27
28
|
logger_1.logger.warn({ host: matchHost }, `Could not create environment variable for host as neither token or username and password was set`);
|
28
29
|
return { ...environmentVariables };
|
29
30
|
}
|
31
|
+
const env = (0, env_1.getEnv)();
|
30
32
|
// check if the environmentVariables already contain a GIT_CONFIG_COUNT or if the process has one
|
31
|
-
const gitConfigCountEnvVariable = environmentVariables?.GIT_CONFIG_COUNT ??
|
33
|
+
const gitConfigCountEnvVariable = environmentVariables?.GIT_CONFIG_COUNT ?? env.GIT_CONFIG_COUNT;
|
32
34
|
let gitConfigCount = 0;
|
33
35
|
if (gitConfigCountEnvVariable) {
|
34
36
|
// passthrough the gitConfigCountEnvVariable environment variable as start value of the index count
|
35
37
|
gitConfigCount = parseInt(gitConfigCountEnvVariable, 10);
|
36
38
|
if (Number.isNaN(gitConfigCount)) {
|
37
39
|
logger_1.logger.warn({
|
38
|
-
GIT_CONFIG_COUNT:
|
40
|
+
GIT_CONFIG_COUNT: env.GIT_CONFIG_COUNT,
|
39
41
|
}, `Found GIT_CONFIG_COUNT env variable, but couldn't parse the value to an integer. Ignoring it.`);
|
40
42
|
gitConfigCount = 0;
|
41
43
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../lib/util/git/auth.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { PLATFORM_HOST_TYPES } from '../../constants/platforms';\nimport { logger } from '../../logger';\nimport type { HostRule } from '../../types';\nimport { detectPlatform } from '../common';\nimport { find, getAll } from '../host-rules';\nimport { regEx } from '../regex';\nimport { createURLFromHostOrURL, isHttpUrl } from '../url';\nimport type { AuthenticationRule } from './types';\nimport { parseGitUrl } from './url';\n\nconst githubApiUrls = new Set([\n 'github.com',\n 'api.github.com',\n 'https://api.github.com',\n 'https://api.github.com/',\n]);\n\n/**\n * Add authorization to a Git Url and returns a new environment variables object\n * @returns a new NodeJS.ProcessEnv object without modifying any input parameters\n */\nexport function getGitAuthenticatedEnvironmentVariables(\n originalGitUrl: string,\n { token, username, password, hostType, matchHost }: HostRule,\n environmentVariables?: NodeJS.ProcessEnv,\n): NodeJS.ProcessEnv {\n if (!token && !(username && password)) {\n logger.warn(\n { host: matchHost },\n `Could not create environment variable for host as neither token or username and password was set`,\n );\n return { ...environmentVariables };\n }\n\n // check if the environmentVariables already contain a GIT_CONFIG_COUNT or if the process has one\n const gitConfigCountEnvVariable =\n environmentVariables?.GIT_CONFIG_COUNT ?? process.env.GIT_CONFIG_COUNT;\n let gitConfigCount = 0;\n if (gitConfigCountEnvVariable) {\n // passthrough the gitConfigCountEnvVariable environment variable as start value of the index count\n gitConfigCount = parseInt(gitConfigCountEnvVariable, 10);\n if (Number.isNaN(gitConfigCount)) {\n logger.warn(\n {\n GIT_CONFIG_COUNT: process.env.GIT_CONFIG_COUNT,\n },\n `Found GIT_CONFIG_COUNT env variable, but couldn't parse the value to an integer. Ignoring it.`,\n );\n gitConfigCount = 0;\n }\n }\n let authenticationRules: AuthenticationRule[];\n if (token) {\n authenticationRules = getAuthenticationRulesWithToken(\n originalGitUrl,\n hostType,\n token,\n );\n } else {\n const encodedUsername = encodeURIComponent(username!);\n const encodedPassword = encodeURIComponent(password!);\n\n authenticationRules = getAuthenticationRules(\n originalGitUrl,\n hostType,\n `${encodedUsername}:${encodedPassword}`,\n );\n }\n\n // create a shallow copy of the environmentVariables as base so we don't modify the input parameter object\n // add the two new config key and value to the returnEnvironmentVariables object\n // increase the CONFIG_COUNT by one for each rule and add it to the object\n const newEnvironmentVariables = {\n ...environmentVariables,\n };\n for (const rule of authenticationRules) {\n newEnvironmentVariables[`GIT_CONFIG_KEY_${gitConfigCount}`] =\n `url.${rule.url}.insteadOf`;\n newEnvironmentVariables[`GIT_CONFIG_VALUE_${gitConfigCount}`] =\n rule.insteadOf;\n gitConfigCount++;\n }\n newEnvironmentVariables.GIT_CONFIG_COUNT = gitConfigCount.toString();\n\n return newEnvironmentVariables;\n}\n\nfunction getAuthenticationRulesWithToken(\n url: string,\n hostType: string | undefined | null,\n authToken: string,\n): AuthenticationRule[] {\n let token = authToken;\n let type = hostType;\n type ??= detectPlatform(url);\n if (type === 'gitlab') {\n token = `gitlab-ci-token:${authToken}`;\n }\n return getAuthenticationRules(url, type, token);\n}\n\n/**\n * Generates the authentication rules for later git usage for the given host\n * @link https://coolaj86.com/articles/vanilla-devops-git-credentials-cheatsheet/\n * @param gitUrl Git repository URL\n * @param hostType Git host type\n * @param token Authentication token or `username:password` string\n */\nexport function getAuthenticationRules(\n gitUrl: string,\n hostType: string | undefined | null,\n token: string,\n): AuthenticationRule[] {\n const authenticationRules = [];\n const hasUser = token.split(':').length > 1;\n const insteadUrl = parseGitUrl(gitUrl);\n let sshPort = insteadUrl.port;\n\n if (hostType === 'bitbucket-server') {\n // For Bitbucket Server/Data Center, `source` must be `bitbucket-server`\n // to generate HTTP(s) URLs correctly.\n // https://github.com/IonicaBizau/git-url-parse/blob/28828546c148d58bbcff61409915a4e1e8f7eb11/lib/index.js#L304\n insteadUrl.source = 'bitbucket-server';\n\n // sshPort is string, wrong type!\n // https://github.com/DefinitelyTyped/DefinitelyTyped/pull/72361\n // https://github.com/IonicaBizau/parse-path/blob/87f71f273da90f85f6845937a70b7c032eeae4e3/lib/index.js#L45\n if (!sshPort || is.emptyString(sshPort)) {\n // By default, bitbucket-server SSH port is 7999.\n // For non-default port, the generated auth config will likely be incorrect.\n sshPort = '7999';\n }\n }\n\n const url = { ...insteadUrl };\n const protocol = regEx(/^https?$/).test(url.protocol)\n ? url.protocol\n : 'https';\n\n // ssh protocol with user if empty\n url.token = hasUser ? token : `ssh:${token}`;\n authenticationRules.push({\n url: url.toString(protocol),\n // only edge case, need to stringify ourself because the exact syntax is not supported by the library\n // https://github.com/IonicaBizau/git-url-parse/blob/246c9119fb42c2ea1c280028fe77c53eb34c190c/lib/index.js#L246\n insteadOf: `ssh://git@${insteadUrl.resource}${\n sshPort ? `:${sshPort}` : ''\n }/${insteadUrl.full_name}${insteadUrl.git_suffix ? '.git' : ''}`,\n });\n\n // alternative ssh protocol with user if empty\n url.token = hasUser ? token : `git:${token}`;\n authenticationRules.push({\n url: url.toString(protocol),\n insteadOf: { ...insteadUrl, port: sshPort }.toString('ssh'),\n });\n\n // https protocol with no user as default fallback\n url.token = token;\n authenticationRules.push({\n url: url.toString(protocol),\n insteadOf: insteadUrl.toString(protocol),\n });\n\n return authenticationRules;\n}\n\nexport function getGitEnvironmentVariables(\n additionalHostTypes: string[] = [],\n): NodeJS.ProcessEnv {\n let environmentVariables: NodeJS.ProcessEnv = {};\n\n // hard-coded logic to use authentication for github.com based on the githubToken for api.github.com\n const gitHubHostRule = find({\n hostType: 'github',\n url: 'https://api.github.com/',\n });\n\n if (gitHubHostRule?.token) {\n environmentVariables = getGitAuthenticatedEnvironmentVariables(\n 'https://github.com/',\n gitHubHostRule,\n );\n }\n\n // construct the Set of allowed hostTypes consisting of the standard Git provides\n // plus additionalHostTypes, which are provided as parameter\n const gitAllowedHostTypes = new Set<string>([\n ...PLATFORM_HOST_TYPES,\n ...additionalHostTypes,\n ]);\n\n // filter rules without `matchHost` and `token` or username and password and github api github rules\n const hostRules = getAll()\n .filter((r) => r.matchHost && (r.token ?? (r.username && r.password)))\n .filter((r) => !gitHubHostRule || !githubApiUrls.has(r.matchHost!));\n\n // for each hostRule without hostType we add additional authentication variables to the environmentVariables\n // for each hostRule with hostType we add additional authentication variables to the environmentVariables\n for (const hostRule of hostRules) {\n if (!hostRule.hostType || gitAllowedHostTypes.has(hostRule.hostType)) {\n environmentVariables = addAuthFromHostRule(\n hostRule,\n environmentVariables,\n );\n }\n }\n return environmentVariables;\n}\n\nfunction addAuthFromHostRule(\n hostRule: HostRule,\n env: NodeJS.ProcessEnv,\n): NodeJS.ProcessEnv {\n let environmentVariables = env;\n const httpUrl = createURLFromHostOrURL(hostRule.matchHost!)?.toString();\n if (isHttpUrl(httpUrl)) {\n logger.trace(`Adding Git authentication for ${httpUrl} using token auth.`);\n environmentVariables = getGitAuthenticatedEnvironmentVariables(\n httpUrl!,\n hostRule,\n environmentVariables,\n );\n } else {\n logger.debug(\n `Could not parse registryUrl ${hostRule.matchHost!} or not using http(s). Ignoring`,\n );\n }\n return environmentVariables;\n}\n"]}
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../lib/util/git/auth.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { PLATFORM_HOST_TYPES } from '../../constants/platforms';\nimport { logger } from '../../logger';\nimport type { HostRule } from '../../types';\nimport { detectPlatform } from '../common';\nimport { getEnv } from '../env';\nimport { find, getAll } from '../host-rules';\nimport { regEx } from '../regex';\nimport { createURLFromHostOrURL, isHttpUrl } from '../url';\nimport type { AuthenticationRule } from './types';\nimport { parseGitUrl } from './url';\n\nconst githubApiUrls = new Set([\n 'github.com',\n 'api.github.com',\n 'https://api.github.com',\n 'https://api.github.com/',\n]);\n\n/**\n * Add authorization to a Git Url and returns a new environment variables object\n * @returns a new NodeJS.ProcessEnv object without modifying any input parameters\n */\nexport function getGitAuthenticatedEnvironmentVariables(\n originalGitUrl: string,\n { token, username, password, hostType, matchHost }: HostRule,\n environmentVariables?: NodeJS.ProcessEnv,\n): NodeJS.ProcessEnv {\n if (!token && !(username && password)) {\n logger.warn(\n { host: matchHost },\n `Could not create environment variable for host as neither token or username and password was set`,\n );\n return { ...environmentVariables };\n }\n\n const env = getEnv();\n // check if the environmentVariables already contain a GIT_CONFIG_COUNT or if the process has one\n const gitConfigCountEnvVariable =\n environmentVariables?.GIT_CONFIG_COUNT ?? env.GIT_CONFIG_COUNT;\n let gitConfigCount = 0;\n if (gitConfigCountEnvVariable) {\n // passthrough the gitConfigCountEnvVariable environment variable as start value of the index count\n gitConfigCount = parseInt(gitConfigCountEnvVariable, 10);\n if (Number.isNaN(gitConfigCount)) {\n logger.warn(\n {\n GIT_CONFIG_COUNT: env.GIT_CONFIG_COUNT,\n },\n `Found GIT_CONFIG_COUNT env variable, but couldn't parse the value to an integer. Ignoring it.`,\n );\n gitConfigCount = 0;\n }\n }\n let authenticationRules: AuthenticationRule[];\n if (token) {\n authenticationRules = getAuthenticationRulesWithToken(\n originalGitUrl,\n hostType,\n token,\n );\n } else {\n const encodedUsername = encodeURIComponent(username!);\n const encodedPassword = encodeURIComponent(password!);\n\n authenticationRules = getAuthenticationRules(\n originalGitUrl,\n hostType,\n `${encodedUsername}:${encodedPassword}`,\n );\n }\n\n // create a shallow copy of the environmentVariables as base so we don't modify the input parameter object\n // add the two new config key and value to the returnEnvironmentVariables object\n // increase the CONFIG_COUNT by one for each rule and add it to the object\n const newEnvironmentVariables = {\n ...environmentVariables,\n };\n for (const rule of authenticationRules) {\n newEnvironmentVariables[`GIT_CONFIG_KEY_${gitConfigCount}`] =\n `url.${rule.url}.insteadOf`;\n newEnvironmentVariables[`GIT_CONFIG_VALUE_${gitConfigCount}`] =\n rule.insteadOf;\n gitConfigCount++;\n }\n newEnvironmentVariables.GIT_CONFIG_COUNT = gitConfigCount.toString();\n\n return newEnvironmentVariables;\n}\n\nfunction getAuthenticationRulesWithToken(\n url: string,\n hostType: string | undefined | null,\n authToken: string,\n): AuthenticationRule[] {\n let token = authToken;\n let type = hostType;\n type ??= detectPlatform(url);\n if (type === 'gitlab') {\n token = `gitlab-ci-token:${authToken}`;\n }\n return getAuthenticationRules(url, type, token);\n}\n\n/**\n * Generates the authentication rules for later git usage for the given host\n * @link https://coolaj86.com/articles/vanilla-devops-git-credentials-cheatsheet/\n * @param gitUrl Git repository URL\n * @param hostType Git host type\n * @param token Authentication token or `username:password` string\n */\nexport function getAuthenticationRules(\n gitUrl: string,\n hostType: string | undefined | null,\n token: string,\n): AuthenticationRule[] {\n const authenticationRules = [];\n const hasUser = token.split(':').length > 1;\n const insteadUrl = parseGitUrl(gitUrl);\n let sshPort = insteadUrl.port;\n\n if (hostType === 'bitbucket-server') {\n // For Bitbucket Server/Data Center, `source` must be `bitbucket-server`\n // to generate HTTP(s) URLs correctly.\n // https://github.com/IonicaBizau/git-url-parse/blob/28828546c148d58bbcff61409915a4e1e8f7eb11/lib/index.js#L304\n insteadUrl.source = 'bitbucket-server';\n\n // sshPort is string, wrong type!\n // https://github.com/DefinitelyTyped/DefinitelyTyped/pull/72361\n // https://github.com/IonicaBizau/parse-path/blob/87f71f273da90f85f6845937a70b7c032eeae4e3/lib/index.js#L45\n if (!sshPort || is.emptyString(sshPort)) {\n // By default, bitbucket-server SSH port is 7999.\n // For non-default port, the generated auth config will likely be incorrect.\n sshPort = '7999';\n }\n }\n\n const url = { ...insteadUrl };\n const protocol = regEx(/^https?$/).test(url.protocol)\n ? url.protocol\n : 'https';\n\n // ssh protocol with user if empty\n url.token = hasUser ? token : `ssh:${token}`;\n authenticationRules.push({\n url: url.toString(protocol),\n // only edge case, need to stringify ourself because the exact syntax is not supported by the library\n // https://github.com/IonicaBizau/git-url-parse/blob/246c9119fb42c2ea1c280028fe77c53eb34c190c/lib/index.js#L246\n insteadOf: `ssh://git@${insteadUrl.resource}${\n sshPort ? `:${sshPort}` : ''\n }/${insteadUrl.full_name}${insteadUrl.git_suffix ? '.git' : ''}`,\n });\n\n // alternative ssh protocol with user if empty\n url.token = hasUser ? token : `git:${token}`;\n authenticationRules.push({\n url: url.toString(protocol),\n insteadOf: { ...insteadUrl, port: sshPort }.toString('ssh'),\n });\n\n // https protocol with no user as default fallback\n url.token = token;\n authenticationRules.push({\n url: url.toString(protocol),\n insteadOf: insteadUrl.toString(protocol),\n });\n\n return authenticationRules;\n}\n\nexport function getGitEnvironmentVariables(\n additionalHostTypes: string[] = [],\n): NodeJS.ProcessEnv {\n let environmentVariables: NodeJS.ProcessEnv = {};\n\n // hard-coded logic to use authentication for github.com based on the githubToken for api.github.com\n const gitHubHostRule = find({\n hostType: 'github',\n url: 'https://api.github.com/',\n });\n\n if (gitHubHostRule?.token) {\n environmentVariables = getGitAuthenticatedEnvironmentVariables(\n 'https://github.com/',\n gitHubHostRule,\n );\n }\n\n // construct the Set of allowed hostTypes consisting of the standard Git provides\n // plus additionalHostTypes, which are provided as parameter\n const gitAllowedHostTypes = new Set<string>([\n ...PLATFORM_HOST_TYPES,\n ...additionalHostTypes,\n ]);\n\n // filter rules without `matchHost` and `token` or username and password and github api github rules\n const hostRules = getAll()\n .filter((r) => r.matchHost && (r.token ?? (r.username && r.password)))\n .filter((r) => !gitHubHostRule || !githubApiUrls.has(r.matchHost!));\n\n // for each hostRule without hostType we add additional authentication variables to the environmentVariables\n // for each hostRule with hostType we add additional authentication variables to the environmentVariables\n for (const hostRule of hostRules) {\n if (!hostRule.hostType || gitAllowedHostTypes.has(hostRule.hostType)) {\n environmentVariables = addAuthFromHostRule(\n hostRule,\n environmentVariables,\n );\n }\n }\n return environmentVariables;\n}\n\nfunction addAuthFromHostRule(\n hostRule: HostRule,\n env: NodeJS.ProcessEnv,\n): NodeJS.ProcessEnv {\n let environmentVariables = env;\n const httpUrl = createURLFromHostOrURL(hostRule.matchHost!)?.toString();\n if (isHttpUrl(httpUrl)) {\n logger.trace(`Adding Git authentication for ${httpUrl} using token auth.`);\n environmentVariables = getGitAuthenticatedEnvironmentVariables(\n httpUrl!,\n hostRule,\n environmentVariables,\n );\n } else {\n logger.debug(\n `Could not parse registryUrl ${hostRule.matchHost!} or not using http(s). Ignoring`,\n );\n }\n return environmentVariables;\n}\n"]}
|
package/dist/util/git/error.js
CHANGED
@@ -6,8 +6,9 @@ exports.bulkChangesDisallowed = bulkChangesDisallowed;
|
|
6
6
|
const error_messages_1 = require("../../constants/error-messages");
|
7
7
|
const logger_1 = require("../../logger");
|
8
8
|
const external_host_error_1 = require("../../types/errors/external-host-error");
|
9
|
+
const env_1 = require("../env");
|
9
10
|
function checkForPlatformFailure(err) {
|
10
|
-
if (
|
11
|
+
if ((0, env_1.getEnv)().NODE_ENV === 'test') {
|
11
12
|
return null;
|
12
13
|
}
|
13
14
|
const externalHostFailureStrings = [
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../lib/util/git/error.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../lib/util/git/error.ts"],"names":[],"mappings":"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","sourcesContent":["import { CONFIG_VALIDATION } from '../../constants/error-messages';\nimport { logger } from '../../logger';\nimport { ExternalHostError } from '../../types/errors/external-host-error';\nimport { getEnv } from '../env';\nimport type { FileChange } from './types';\n\nexport function checkForPlatformFailure(err: Error): Error | null {\n if (getEnv().NODE_ENV === 'test') {\n return null;\n }\n const externalHostFailureStrings = [\n 'remote: Invalid username or password',\n 'gnutls_handshake() failed',\n 'The requested URL returned error: 403',\n 'The requested URL returned error: 5',\n 'The remote end hung up unexpectedly',\n 'access denied or repository not exported',\n 'Could not write new index file',\n 'Failed to connect to',\n 'Connection timed out',\n 'malformed object name',\n 'Could not resolve host',\n 'early EOF',\n 'fatal: bad config', // .gitmodules problem\n 'expected flush after ref listing',\n ];\n for (const errorStr of externalHostFailureStrings) {\n if (err.message.includes(errorStr)) {\n logger.debug({ err }, 'Converting git error to ExternalHostError');\n return new ExternalHostError(err, 'git');\n }\n /* v8 ignore start -- TODO: add test */\n }\n\n const configErrorStrings = [\n {\n error: 'GitLab: Branch name does not follow the pattern',\n message:\n \"Cannot push because branch name does not follow project's push rules\",\n },\n {\n error: 'GitLab: Commit message does not follow the pattern',\n message:\n \"Cannot push because commit message does not follow project's push rules\",\n },\n {\n error: ' is not a member of team',\n message:\n 'The `Restrict commits to existing GitLab users` rule is blocking Renovate push. Check the Renovate `gitAuthor` setting',\n },\n {\n error: 'TF401027:',\n message:\n 'You need the Git `GenericContribute` permission to perform this action',\n },\n {\n error: 'matches more than one',\n message:\n \"Renovate cannot push branches if there are tags with names the same as Renovate's branches. Please remove conflicting tag names or change Renovate's branchPrefix to avoid conflicts.\",\n },\n ];\n for (const { error, message } of configErrorStrings) {\n if (err.message.includes(error)) {\n logger.debug({ err }, 'Converting git error to CONFIG_VALIDATION error');\n const res = new Error(CONFIG_VALIDATION);\n res.validationError = message;\n res.validationMessage = `\\`${err.message.replaceAll('`', \"'\")}\\``;\n return res;\n }\n }\n\n return null;\n}\n/* v8 ignore stop */\n\n/* v8 ignore start -- TODO: add tests */\nexport function handleCommitError(\n err: Error,\n branchName: string,\n files?: FileChange[],\n): null {\n checkForPlatformFailure(err);\n if (err.message.includes(`'refs/heads/renovate' exists`)) {\n const error = new Error(CONFIG_VALIDATION);\n error.validationSource = 'None';\n error.validationError = 'An existing branch is blocking Renovate';\n error.validationMessage = `Renovate needs to create the branch \\`${branchName}\\` but is blocked from doing so because of an existing branch called \\`renovate\\`. Please remove it so that Renovate can proceed.`;\n throw error;\n }\n if (\n err.message.includes(\n 'refusing to allow a GitHub App to create or update workflow',\n )\n ) {\n logger.warn(\n 'App has not been granted permissions to update Workflows - aborting branch.',\n );\n return null;\n }\n if (\n (err.message.includes('remote rejected') || err.message.includes('403')) &&\n files?.some((file) => file.path?.startsWith('.github/workflows/'))\n ) {\n logger.debug({ err }, 'commitFiles error');\n logger.info('Workflows update rejection - aborting branch.');\n return null;\n }\n if (err.message.includes('protected branch hook declined')) {\n const error = new Error(CONFIG_VALIDATION);\n error.validationSource = branchName;\n error.validationError = 'Renovate branch is protected';\n error.validationMessage = `Renovate cannot push to its branch because branch protection has been enabled.`;\n throw error;\n }\n if (err.message.includes('can only push your own commits')) {\n const error = new Error(CONFIG_VALIDATION);\n error.validationSource = branchName;\n error.validationError = 'Bitbucket committer error';\n error.validationMessage = `Renovate has experienced the following error when attempting to push its branch to the server: \\`${err.message.replaceAll(\n '`',\n \"'\",\n )}\\``;\n throw error;\n }\n if (err.message.includes('remote: error: cannot lock ref')) {\n logger.error({ err }, 'Error committing files.');\n return null;\n }\n if (\n err.message.includes('denying non-fast-forward') ||\n err.message.includes('GH003: Sorry, force-pushing')\n ) {\n logger.debug({ err }, 'Permission denied to update branch');\n const error = new Error(CONFIG_VALIDATION);\n error.validationSource = branchName;\n error.validationError = 'Force push denied';\n error.validationMessage = `Renovate is unable to update branch(es) due to force pushes being disallowed.`;\n throw error;\n }\n logger.debug({ err }, 'Unknown error committing files');\n // We don't know why this happened, so this will cause bubble up to a branch error\n throw err;\n}\n/* v8 ignore stop */\n\nexport function bulkChangesDisallowed(err: Error): boolean {\n return err.message.includes('update more than');\n}\n"]}
|
package/dist/util/git/index.d.ts
CHANGED
@@ -3,6 +3,7 @@ import type { GitProtocol } from '../../types/git';
|
|
3
3
|
import type { CommitFilesConfig, CommitResult, LongCommitSha, PushFilesConfig, StatusResult, StorageConfig, TreeItem } from './types';
|
4
4
|
export { setNoVerify } from './config';
|
5
5
|
export { setPrivateKey } from './private-key';
|
6
|
+
export declare const RENOVATE_FORK_UPSTREAM = "renovate-fork-upstream";
|
6
7
|
export declare function gitRetry<T>(gitFunc: () => Promise<T>): Promise<T>;
|
7
8
|
export declare const GIT_MINIMUM_VERSION = "2.33.0";
|
8
9
|
export declare function validateGitVersion(): Promise<boolean>;
|
@@ -21,6 +22,9 @@ export declare function branchExists(branchName: string): boolean;
|
|
21
22
|
export declare function getBranchCommit(branchName: string): LongCommitSha | null;
|
22
23
|
export declare function getCommitMessages(): Promise<string[]>;
|
23
24
|
export declare function checkoutBranch(branchName: string): Promise<LongCommitSha>;
|
25
|
+
export declare function checkoutBranchFromRemote(branchName: string, remoteName: string): Promise<LongCommitSha>;
|
26
|
+
export declare function resetHardFromRemote(remoteAndBranch: string): Promise<void>;
|
27
|
+
export declare function forcePushToRemote(branchName: string, remote: string): Promise<void>;
|
24
28
|
export declare function getFileList(): Promise<string[]>;
|
25
29
|
export declare function getBranchList(): string[];
|
26
30
|
export declare function isBranchBehindBase(branchName: string, baseBranch: string): Promise<boolean>;
|
@@ -113,3 +117,19 @@ export declare function clearRenovateRefs(): Promise<void>;
|
|
113
117
|
*
|
114
118
|
*/
|
115
119
|
export declare function listCommitTree(commitSha: LongCommitSha): Promise<TreeItem[]>;
|
120
|
+
/**
|
121
|
+
* Synchronize a forked branch with its upstream counterpart.
|
122
|
+
*
|
123
|
+
* syncForkWithUpstream updates the fork's branch, to match the corresponding branch in the upstream repository.
|
124
|
+
* The steps are:
|
125
|
+
* 1. Check if the branch exists locally.
|
126
|
+
* 2. If the branch exists locally: checkout the local branch.
|
127
|
+
* 3. If the branch does _not_ exist locally: checkout the upstream branch.
|
128
|
+
* 4. Reset the local branch to match the upstream branch.
|
129
|
+
* 5. Force push the (updated) local branch to the origin repository.
|
130
|
+
*
|
131
|
+
* @param {string} branchName - The name of the branch to synchronize.
|
132
|
+
* @returns A promise that resolves to True if the synchronization is successful, or `false` if an error occurs.
|
133
|
+
*/
|
134
|
+
export declare function syncForkWithUpstream(branchName: string): Promise<void>;
|
135
|
+
export declare function getRemotes(): Promise<string[]>;
|