renovate 42.0.0-next.2 → 42.0.0
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/app-strings.d.ts +2 -1
- package/dist/config/app-strings.js +10 -2
- package/dist/config/app-strings.js.map +1 -1
- package/dist/config/decrypt/bcpgp.d.ts +1 -0
- package/dist/config/decrypt/bcpgp.js +57 -0
- package/dist/config/decrypt/bcpgp.js.map +1 -0
- package/dist/config/decrypt/openpgp.js +0 -4
- package/dist/config/decrypt/openpgp.js.map +1 -1
- package/dist/config/decrypt.d.ts +1 -1
- package/dist/config/decrypt.js +9 -26
- package/dist/config/decrypt.js.map +1 -1
- package/dist/config/global.js +1 -0
- package/dist/config/global.js.map +1 -1
- package/dist/config/migrations/custom/schedule-migration.js +9 -11
- package/dist/config/migrations/custom/schedule-migration.js.map +1 -1
- package/dist/config/migrations/custom/unpublish-safe-migration.js +3 -2
- package/dist/config/migrations/custom/unpublish-safe-migration.js.map +1 -1
- package/dist/config/options/index.js +49 -2
- package/dist/config/options/index.js.map +1 -1
- package/dist/config/presets/common.js +1 -0
- package/dist/config/presets/common.js.map +1 -1
- package/dist/config/presets/internal/abandonments.js +4 -1
- package/dist/config/presets/internal/abandonments.js.map +1 -1
- package/dist/config/presets/internal/config.js +15 -0
- package/dist/config/presets/internal/config.js.map +1 -1
- package/dist/config/presets/internal/custom-managers.js +2 -2
- package/dist/config/presets/internal/custom-managers.js.map +1 -1
- package/dist/config/presets/internal/default.js +12 -1
- package/dist/config/presets/internal/default.js.map +1 -1
- package/dist/config/presets/internal/group.js +13 -0
- package/dist/config/presets/internal/group.js.map +1 -1
- package/dist/config/presets/internal/npm.js +1 -8
- package/dist/config/presets/internal/npm.js.map +1 -1
- package/dist/config/presets/internal/packages.js +5 -1
- package/dist/config/presets/internal/packages.js.map +1 -1
- package/dist/config/presets/internal/security.js +8 -0
- package/dist/config/presets/internal/security.js.map +1 -1
- package/dist/config/presets/internal/workarounds.js +2 -2
- package/dist/config/presets/internal/workarounds.js.map +1 -1
- package/dist/config/schema.d.ts +1 -1
- package/dist/config/secrets.js +2 -2
- package/dist/config/secrets.js.map +1 -1
- package/dist/config/types.d.ts +26 -1
- package/dist/config/types.js.map +1 -1
- package/dist/config/validation.js +4 -3
- package/dist/config/validation.js.map +1 -1
- package/dist/config-validator.js +1 -1
- package/dist/config-validator.js.map +1 -1
- package/dist/constants/platforms.js +1 -0
- package/dist/constants/platforms.js.map +1 -1
- package/dist/data/monorepo.json +13 -2
- package/dist/data/node-js-schedule.json +1 -1
- package/dist/data/replacements.json +34 -0
- package/dist/data-files.generated.js +3 -3
- package/dist/data-files.generated.js.map +1 -1
- package/dist/logger/renovate-logger.d.ts +1 -0
- package/dist/logger/renovate-logger.js +3 -0
- package/dist/logger/renovate-logger.js.map +1 -1
- package/dist/logger/utils.js +2 -1
- package/dist/logger/utils.js.map +1 -1
- package/dist/manager-list.generated.d.ts +1 -1
- package/dist/manager-list.generated.js +1 -1
- package/dist/manager-list.generated.js.map +1 -1
- package/dist/modules/datasource/api.js +4 -0
- package/dist/modules/datasource/api.js.map +1 -1
- package/dist/modules/datasource/aws-eks-addon/schema.d.ts +1 -8
- package/dist/modules/datasource/aws-eks-addon/schema.js +7 -5
- package/dist/modules/datasource/aws-eks-addon/schema.js.map +1 -1
- package/dist/modules/datasource/azure-pipelines-tasks/schema.d.ts +12 -12
- package/dist/modules/datasource/bitrise/schema.d.ts +1 -1
- package/dist/modules/datasource/buildpacks-registry/index.js +1 -1
- package/dist/modules/datasource/buildpacks-registry/index.js.map +1 -1
- package/dist/modules/datasource/buildpacks-registry/schema.d.ts +1 -1
- package/dist/modules/datasource/buildpacks-registry/schema.js +2 -2
- package/dist/modules/datasource/buildpacks-registry/schema.js.map +1 -1
- package/dist/modules/datasource/cdnjs/index.js +2 -2
- package/dist/modules/datasource/cdnjs/index.js.map +1 -1
- package/dist/modules/datasource/cdnjs/schema.d.ts +8 -8
- package/dist/modules/datasource/cdnjs/schema.js +3 -3
- package/dist/modules/datasource/cdnjs/schema.js.map +1 -1
- package/dist/modules/datasource/conan/schema.d.ts +3 -3
- package/dist/modules/datasource/conda/prefix-dev.js +1 -1
- package/dist/modules/datasource/conda/prefix-dev.js.map +1 -1
- package/dist/modules/datasource/conda/schema/prefix-dev.d.ts +7 -7
- package/dist/modules/datasource/conda/schema/prefix-dev.js +2 -2
- package/dist/modules/datasource/conda/schema/prefix-dev.js.map +1 -1
- package/dist/modules/datasource/cpan/schema.js +2 -2
- package/dist/modules/datasource/cpan/schema.js.map +1 -1
- package/dist/modules/datasource/crate/index.js +12 -11
- package/dist/modules/datasource/crate/index.js.map +1 -1
- package/dist/modules/datasource/crate/schema.d.ts +1 -1
- package/dist/modules/datasource/crate/schema.js +2 -2
- package/dist/modules/datasource/crate/schema.js.map +1 -1
- package/dist/modules/datasource/custom/index.d.ts +1 -1
- package/dist/modules/datasource/custom/index.js +2 -2
- package/dist/modules/datasource/custom/index.js.map +1 -1
- package/dist/modules/datasource/custom/schema.d.ts +1 -1
- package/dist/modules/datasource/custom/schema.js +2 -2
- package/dist/modules/datasource/custom/schema.js.map +1 -1
- package/dist/modules/datasource/docker/index.d.ts +1 -1
- package/dist/modules/datasource/docker/index.js +4 -1
- package/dist/modules/datasource/docker/index.js.map +1 -1
- package/dist/modules/datasource/docker/schema.d.ts +4 -4
- package/dist/modules/datasource/forgejo-releases/index.js +3 -3
- package/dist/modules/datasource/forgejo-releases/index.js.map +1 -1
- package/dist/modules/datasource/forgejo-releases/schema.d.ts +6 -6
- package/dist/modules/datasource/forgejo-releases/schema.js +3 -3
- package/dist/modules/datasource/forgejo-releases/schema.js.map +1 -1
- package/dist/modules/datasource/forgejo-tags/index.js +3 -3
- package/dist/modules/datasource/forgejo-tags/index.js.map +1 -1
- package/dist/modules/datasource/forgejo-tags/schema.d.ts +4 -4
- package/dist/modules/datasource/forgejo-tags/schema.js +7 -7
- package/dist/modules/datasource/forgejo-tags/schema.js.map +1 -1
- package/dist/modules/datasource/gitea-releases/index.js +3 -3
- package/dist/modules/datasource/gitea-releases/index.js.map +1 -1
- package/dist/modules/datasource/gitea-releases/schema.d.ts +6 -6
- package/dist/modules/datasource/gitea-releases/schema.js +3 -3
- package/dist/modules/datasource/gitea-releases/schema.js.map +1 -1
- package/dist/modules/datasource/gitea-tags/index.js +3 -3
- package/dist/modules/datasource/gitea-tags/index.js.map +1 -1
- package/dist/modules/datasource/gitea-tags/schema.d.ts +4 -4
- package/dist/modules/datasource/gitea-tags/schema.js +7 -7
- package/dist/modules/datasource/gitea-tags/schema.js.map +1 -1
- package/dist/modules/datasource/github-runners/index.js +5 -3
- package/dist/modules/datasource/github-runners/index.js.map +1 -1
- package/dist/modules/datasource/go/base.js +3 -2
- package/dist/modules/datasource/go/base.js.map +1 -1
- package/dist/modules/datasource/go/common.js +13 -9
- package/dist/modules/datasource/go/common.js.map +1 -1
- package/dist/modules/datasource/go/index.js +7 -2
- package/dist/modules/datasource/go/index.js.map +1 -1
- package/dist/modules/datasource/go/releases-direct.d.ts +2 -0
- package/dist/modules/datasource/go/releases-direct.js +7 -1
- package/dist/modules/datasource/go/releases-direct.js.map +1 -1
- package/dist/modules/datasource/go/releases-goproxy.js +1 -1
- package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
- package/dist/modules/datasource/helm/index.js +1 -1
- package/dist/modules/datasource/helm/index.js.map +1 -1
- package/dist/modules/datasource/helm/schema.d.ts +2 -2
- package/dist/modules/datasource/helm/schema.js +4 -4
- package/dist/modules/datasource/helm/schema.js.map +1 -1
- package/dist/modules/datasource/jsr/common.d.ts +1 -0
- package/dist/modules/datasource/jsr/common.js +12 -0
- package/dist/modules/datasource/jsr/common.js.map +1 -0
- package/dist/modules/datasource/jsr/index.d.ts +12 -0
- package/dist/modules/datasource/jsr/index.js +66 -0
- package/dist/modules/datasource/jsr/index.js.map +1 -0
- package/dist/modules/datasource/jsr/schema.d.ts +27 -0
- package/dist/modules/datasource/jsr/schema.js +20 -0
- package/dist/modules/datasource/jsr/schema.js.map +1 -0
- package/dist/modules/datasource/jsr/util.d.ts +4 -0
- package/dist/modules/datasource/jsr/util.js +53 -0
- package/dist/modules/datasource/jsr/util.js.map +1 -0
- package/dist/modules/datasource/maven/index.js +14 -0
- package/dist/modules/datasource/maven/index.js.map +1 -1
- package/dist/modules/datasource/maven/util.js +10 -0
- 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/types.d.ts +7 -0
- package/dist/modules/datasource/npm/types.js.map +1 -1
- package/dist/modules/datasource/nuget/v3.js +3 -1
- package/dist/modules/datasource/nuget/v3.js.map +1 -1
- package/dist/modules/datasource/packagist/schema.d.ts +12 -12
- package/dist/modules/datasource/pypi/index.d.ts +1 -0
- package/dist/modules/datasource/pypi/index.js +1 -0
- package/dist/modules/datasource/pypi/index.js.map +1 -1
- package/dist/modules/datasource/python-version/schema.d.ts +3 -3
- package/dist/modules/datasource/rpm/index.d.ts +7 -0
- package/dist/modules/datasource/rpm/index.js +7 -0
- package/dist/modules/datasource/rpm/index.js.map +1 -1
- package/dist/modules/datasource/types.d.ts +2 -0
- package/dist/modules/datasource/types.js.map +1 -1
- package/dist/modules/datasource/typst/index.d.ts +11 -0
- package/dist/modules/datasource/typst/index.js +65 -0
- package/dist/modules/datasource/typst/index.js.map +1 -0
- package/dist/modules/datasource/typst/schema.d.ts +31 -0
- package/dist/modules/datasource/typst/schema.js +28 -0
- package/dist/modules/datasource/typst/schema.js.map +1 -0
- package/dist/modules/datasource/unity3d-packages/schema.d.ts +4 -4
- package/dist/modules/manager/api.js +6 -0
- package/dist/modules/manager/api.js.map +1 -1
- package/dist/modules/manager/argocd/extract.js +1 -1
- package/dist/modules/manager/argocd/extract.js.map +1 -1
- package/dist/modules/manager/argocd/schema.d.ts +1 -1
- package/dist/modules/manager/argocd/schema.js +2 -2
- package/dist/modules/manager/argocd/schema.js.map +1 -1
- package/dist/modules/manager/azure-pipelines/schema.d.ts +1 -1
- package/dist/modules/manager/batect/extract.js +1 -1
- package/dist/modules/manager/batect/extract.js.map +1 -1
- package/dist/modules/manager/batect/schema.d.ts +4 -4
- package/dist/modules/manager/batect/schema.js +2 -2
- package/dist/modules/manager/batect/schema.js.map +1 -1
- package/dist/modules/manager/bazel/rules/docker.d.ts +3 -3
- package/dist/modules/manager/bazel/rules/git.d.ts +5 -5
- package/dist/modules/manager/bazel/rules/go.d.ts +5 -5
- package/dist/modules/manager/bazel/rules/oci.d.ts +3 -3
- package/dist/modules/manager/bazel-module/extract.js +5 -0
- package/dist/modules/manager/bazel-module/extract.js.map +1 -1
- package/dist/modules/manager/bazel-module/parser/context.d.ts +6 -0
- package/dist/modules/manager/bazel-module/parser/context.js +42 -2
- package/dist/modules/manager/bazel-module/parser/context.js.map +1 -1
- package/dist/modules/manager/bazel-module/parser/fragments.d.ts +276 -112
- package/dist/modules/manager/bazel-module/parser/fragments.js +70 -32
- package/dist/modules/manager/bazel-module/parser/fragments.js.map +1 -1
- package/dist/modules/manager/bazel-module/parser/index.js +3 -1
- package/dist/modules/manager/bazel-module/parser/index.js.map +1 -1
- package/dist/modules/manager/bazel-module/parser/maven.d.ts +27 -27
- package/dist/modules/manager/bazel-module/parser/maven.js +7 -7
- package/dist/modules/manager/bazel-module/parser/maven.js.map +1 -1
- package/dist/modules/manager/bazel-module/parser/oci.d.ts +38 -38
- package/dist/modules/manager/bazel-module/parser/oci.js +5 -5
- package/dist/modules/manager/bazel-module/parser/oci.js.map +1 -1
- package/dist/modules/manager/bazel-module/parser/repo-rules.d.ts +5 -0
- package/dist/modules/manager/bazel-module/parser/repo-rules.js +71 -0
- package/dist/modules/manager/bazel-module/parser/repo-rules.js.map +1 -0
- package/dist/modules/manager/bazel-module/rules-img.d.ts +229 -0
- package/dist/modules/manager/bazel-module/rules-img.js +74 -0
- package/dist/modules/manager/bazel-module/rules-img.js.map +1 -0
- package/dist/modules/manager/bazel-module/rules.d.ts +101 -101
- package/dist/modules/manager/bazel-module/rules.js +18 -18
- package/dist/modules/manager/bazel-module/rules.js.map +1 -1
- package/dist/modules/manager/bitrise/schema.d.ts +1 -1
- package/dist/modules/manager/bun/artifacts.js +5 -4
- package/dist/modules/manager/bun/artifacts.js.map +1 -1
- package/dist/modules/manager/bundler/locked-version.js +44 -23
- package/dist/modules/manager/bundler/locked-version.js.map +1 -1
- package/dist/modules/manager/cargo/artifacts.js +15 -11
- package/dist/modules/manager/cargo/artifacts.js.map +1 -1
- package/dist/modules/manager/cargo/extract.js +6 -3
- package/dist/modules/manager/cargo/extract.js.map +1 -1
- package/dist/modules/manager/cargo/index.d.ts +0 -1
- package/dist/modules/manager/cargo/index.js +11 -4
- package/dist/modules/manager/cargo/index.js.map +1 -1
- package/dist/modules/manager/cargo/locked-version.d.ts +2 -2
- package/dist/modules/manager/cargo/locked-version.js +1 -1
- package/dist/modules/manager/cargo/locked-version.js.map +1 -1
- package/dist/modules/manager/cargo/schema.d.ts +206 -35
- package/dist/modules/manager/cargo/schema.js +26 -18
- package/dist/modules/manager/cargo/schema.js.map +1 -1
- package/dist/modules/manager/cloudbuild/schema.d.ts +1 -1
- package/dist/modules/manager/composer/schema.d.ts +98 -98
- package/dist/modules/manager/conan/artifacts.js +12 -2
- package/dist/modules/manager/conan/artifacts.js.map +1 -1
- package/dist/modules/manager/conan/extract.js +1 -1
- package/dist/modules/manager/conan/extract.js.map +1 -1
- package/dist/modules/manager/conan/index.d.ts +0 -1
- package/dist/modules/manager/conan/index.js +0 -1
- package/dist/modules/manager/conan/index.js.map +1 -1
- package/dist/modules/manager/copier/artifacts.js +5 -5
- package/dist/modules/manager/copier/artifacts.js.map +1 -1
- package/dist/modules/manager/copier/schema.d.ts +2 -2
- package/dist/modules/manager/copier/schema.js +5 -1
- package/dist/modules/manager/copier/schema.js.map +1 -1
- package/dist/modules/manager/crossplane/extract.js +1 -1
- package/dist/modules/manager/crossplane/extract.js.map +1 -1
- package/dist/modules/manager/crossplane/schema.d.ts +2 -2
- package/dist/modules/manager/crossplane/schema.js +2 -2
- package/dist/modules/manager/crossplane/schema.js.map +1 -1
- package/dist/modules/manager/crow/extract.d.ts +2 -0
- package/dist/modules/manager/crow/extract.js +35 -0
- package/dist/modules/manager/crow/extract.js.map +1 -0
- package/dist/modules/manager/crow/index.d.ts +8 -0
- package/dist/modules/manager/crow/index.js +13 -0
- package/dist/modules/manager/crow/index.js.map +1 -0
- package/dist/modules/manager/crow/schema.d.ts +66 -0
- package/dist/modules/manager/crow/schema.js +15 -0
- package/dist/modules/manager/crow/schema.js.map +1 -0
- package/dist/modules/manager/custom/jsonata/schema.d.ts +1 -1
- package/dist/modules/manager/custom/jsonata/schema.js +4 -4
- package/dist/modules/manager/custom/jsonata/schema.js.map +1 -1
- package/dist/modules/manager/custom/jsonata/utils.js +3 -3
- package/dist/modules/manager/custom/jsonata/utils.js.map +1 -1
- package/dist/modules/manager/devbox/extract.js +1 -1
- package/dist/modules/manager/devbox/extract.js.map +1 -1
- package/dist/modules/manager/devbox/schema.d.ts +1 -1
- package/dist/modules/manager/devbox/schema.js +2 -2
- package/dist/modules/manager/devbox/schema.js.map +1 -1
- package/dist/modules/manager/devcontainer/schema.d.ts +1 -1
- package/dist/modules/manager/fingerprint.generated.js +35 -32
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/fleet/schema.d.ts +16 -16
- package/dist/modules/manager/flux/schema.d.ts +24 -24
- package/dist/modules/manager/github-actions/community.d.ts +96 -0
- package/dist/modules/manager/github-actions/community.js +116 -10
- package/dist/modules/manager/github-actions/community.js.map +1 -1
- package/dist/modules/manager/github-actions/extract.js +2 -1
- package/dist/modules/manager/github-actions/extract.js.map +1 -1
- package/dist/modules/manager/github-actions/schema.d.ts +3 -3
- package/dist/modules/manager/github-actions/schema.js +7 -7
- package/dist/modules/manager/github-actions/schema.js.map +1 -1
- package/dist/modules/manager/gitlabci/extract.js +2 -0
- package/dist/modules/manager/gitlabci/extract.js.map +1 -1
- package/dist/modules/manager/glasskube/schema.d.ts +12 -12
- package/dist/modules/manager/gleam/schema.d.ts +4 -4
- package/dist/modules/manager/gomod/artifacts.js +8 -4
- package/dist/modules/manager/gomod/artifacts.js.map +1 -1
- package/dist/modules/manager/gradle/parser/dependencies.js +23 -2
- package/dist/modules/manager/gradle/parser/dependencies.js.map +1 -1
- package/dist/modules/manager/gradle/parser/objects.js +15 -0
- package/dist/modules/manager/gradle/parser/objects.js.map +1 -1
- package/dist/modules/manager/gradle/parser.js +1 -1
- package/dist/modules/manager/gradle/parser.js.map +1 -1
- package/dist/modules/manager/helmfile/extract.js +26 -21
- package/dist/modules/manager/helmfile/extract.js.map +1 -1
- package/dist/modules/manager/helmfile/index.js +4 -1
- package/dist/modules/manager/helmfile/index.js.map +1 -1
- package/dist/modules/manager/helmfile/schema.d.ts +4 -4
- package/dist/modules/manager/maven-wrapper/artifacts.js +1 -1
- package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
- package/dist/modules/manager/maven-wrapper/extract.js +4 -4
- package/dist/modules/manager/maven-wrapper/extract.js.map +1 -1
- package/dist/modules/manager/maven-wrapper/index.d.ts +1 -1
- package/dist/modules/manager/maven-wrapper/index.js +5 -2
- package/dist/modules/manager/maven-wrapper/index.js.map +1 -1
- package/dist/modules/manager/mise/backends.d.ts +2 -2
- package/dist/modules/manager/mise/backends.js +1 -1
- package/dist/modules/manager/mise/backends.js.map +1 -1
- package/dist/modules/manager/mise/extract.js.map +1 -1
- package/dist/modules/manager/mise/schema.d.ts +6 -29
- package/dist/modules/manager/mise/schema.js +7 -8
- package/dist/modules/manager/mise/schema.js.map +1 -1
- package/dist/modules/manager/mise/upgradeable-tooling.js +1 -1
- package/dist/modules/manager/mise/upgradeable-tooling.js.map +1 -1
- package/dist/modules/manager/mise/utils.d.ts +2 -2
- package/dist/modules/manager/mise/utils.js +1 -1
- package/dist/modules/manager/mise/utils.js.map +1 -1
- package/dist/modules/manager/nix/artifacts.js +2 -2
- package/dist/modules/manager/nix/artifacts.js.map +1 -1
- package/dist/modules/manager/nix/extract.d.ts +2 -2
- package/dist/modules/manager/nix/extract.js +79 -67
- package/dist/modules/manager/nix/extract.js.map +1 -1
- package/dist/modules/manager/nix/index.d.ts +1 -0
- package/dist/modules/manager/nix/index.js +3 -1
- package/dist/modules/manager/nix/index.js.map +1 -1
- package/dist/modules/manager/nix/range.d.ts +3 -0
- package/dist/modules/manager/nix/range.js +10 -0
- package/dist/modules/manager/nix/range.js.map +1 -0
- package/dist/modules/manager/nix/schema.d.ts +42 -28
- package/dist/modules/manager/nix/schema.js +4 -1
- package/dist/modules/manager/nix/schema.js.map +1 -1
- package/dist/modules/manager/npm/extract/common/package-file.d.ts +1 -0
- package/dist/modules/manager/npm/extract/common/package-file.js +8 -0
- package/dist/modules/manager/npm/extract/common/package-file.js.map +1 -1
- package/dist/modules/manager/npm/extract/index.js +24 -7
- package/dist/modules/manager/npm/extract/index.js.map +1 -1
- package/dist/modules/manager/npm/extract/pnpm.d.ts +4 -3
- package/dist/modules/manager/npm/extract/pnpm.js +1 -1
- package/dist/modules/manager/npm/extract/pnpm.js.map +1 -1
- package/dist/modules/manager/npm/extract/post/locked-versions.js +6 -0
- package/dist/modules/manager/npm/extract/post/locked-versions.js.map +1 -1
- package/dist/modules/manager/npm/extract/yarn.d.ts +4 -0
- package/dist/modules/manager/npm/extract/yarn.js +35 -0
- package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
- package/dist/modules/manager/npm/extract/yarnrc.d.ts +4 -4
- package/dist/modules/manager/npm/extract/yarnrc.js +1 -2
- package/dist/modules/manager/npm/extract/yarnrc.js.map +1 -1
- package/dist/modules/manager/npm/index.js +1 -0
- package/dist/modules/manager/npm/index.js.map +1 -1
- package/dist/modules/manager/npm/post-update/index.js +2 -1
- package/dist/modules/manager/npm/post-update/index.js.map +1 -1
- package/dist/modules/manager/npm/post-update/npm.js +14 -1
- package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
- package/dist/modules/manager/npm/post-update/pnpm.js +6 -1
- package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
- package/dist/modules/manager/npm/post-update/types.d.ts +5 -5
- package/dist/modules/manager/npm/post-update/types.js.map +1 -1
- package/dist/modules/manager/npm/post-update/utils.d.ts +3 -4
- package/dist/modules/manager/npm/post-update/utils.js +2 -13
- package/dist/modules/manager/npm/post-update/utils.js.map +1 -1
- package/dist/modules/manager/npm/schema.d.ts +35 -97
- package/dist/modules/manager/npm/schema.js +21 -16
- package/dist/modules/manager/npm/schema.js.map +1 -1
- package/dist/modules/manager/npm/update/dependency/index.js +4 -0
- package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
- package/dist/modules/manager/npm/update/dependency/pnpm.js +1 -1
- package/dist/modules/manager/npm/update/dependency/pnpm.js.map +1 -1
- package/dist/modules/manager/npm/update/dependency/yarn.d.ts +2 -0
- package/dist/modules/manager/npm/update/dependency/yarn.js +102 -0
- package/dist/modules/manager/npm/update/dependency/yarn.js.map +1 -0
- package/dist/modules/manager/npm/utils.d.ts +2 -0
- package/dist/modules/manager/npm/utils.js +10 -0
- package/dist/modules/manager/npm/utils.js.map +1 -1
- package/dist/modules/manager/nuget/extract.js +5 -0
- package/dist/modules/manager/nuget/extract.js.map +1 -1
- package/dist/modules/manager/nuget/schema.d.ts +3 -56
- package/dist/modules/manager/nuget/schema.js +5 -6
- package/dist/modules/manager/nuget/schema.js.map +1 -1
- package/dist/modules/manager/nvm/extract.js +8 -1
- package/dist/modules/manager/nvm/extract.js.map +1 -1
- package/dist/modules/manager/ocb/extract.js +1 -1
- package/dist/modules/manager/ocb/extract.js.map +1 -1
- package/dist/modules/manager/ocb/schema.d.ts +4 -4
- package/dist/modules/manager/ocb/schema.js +9 -9
- package/dist/modules/manager/ocb/schema.js.map +1 -1
- package/dist/modules/manager/pep621/extract.d.ts +1 -1
- package/dist/modules/manager/pep621/extract.js +11 -3
- package/dist/modules/manager/pep621/extract.js.map +1 -1
- package/dist/modules/manager/pep621/processors/abstract.d.ts +10 -0
- package/dist/modules/manager/pep621/processors/abstract.js +25 -0
- package/dist/modules/manager/pep621/processors/abstract.js.map +1 -0
- package/dist/modules/manager/pep621/processors/hatch.d.ts +2 -2
- package/dist/modules/manager/pep621/processors/hatch.js +2 -1
- package/dist/modules/manager/pep621/processors/hatch.js.map +1 -1
- package/dist/modules/manager/pep621/processors/index.d.ts +2 -4
- package/dist/modules/manager/pep621/processors/index.js.map +1 -1
- package/dist/modules/manager/pep621/processors/pdm.d.ts +3 -2
- package/dist/modules/manager/pep621/processors/pdm.js +5 -4
- package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
- package/dist/modules/manager/pep621/processors/types.d.ts +1 -0
- package/dist/modules/manager/pep621/processors/types.js.map +1 -1
- package/dist/modules/manager/pep621/processors/uv.d.ts +3 -2
- package/dist/modules/manager/pep621/processors/uv.js +8 -6
- package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
- package/dist/modules/manager/pep621/schema.d.ts +35 -257
- package/dist/modules/manager/pep621/schema.js +17 -21
- package/dist/modules/manager/pep621/schema.js.map +1 -1
- package/dist/modules/manager/pep723/extract.js +1 -1
- package/dist/modules/manager/pep723/extract.js.map +1 -1
- package/dist/modules/manager/pep723/schema.d.ts +1 -1
- package/dist/modules/manager/pep723/schema.js +2 -2
- package/dist/modules/manager/pep723/schema.js.map +1 -1
- package/dist/modules/manager/pip-compile/extract.d.ts +1 -1
- package/dist/modules/manager/pip-compile/extract.js +9 -6
- package/dist/modules/manager/pip-compile/extract.js.map +1 -1
- package/dist/modules/manager/pixi/extract.js +4 -7
- package/dist/modules/manager/pixi/extract.js.map +1 -1
- package/dist/modules/manager/pixi/schema.d.ts +296 -4
- package/dist/modules/manager/pixi/schema.js +11 -4
- package/dist/modules/manager/pixi/schema.js.map +1 -1
- package/dist/modules/manager/poetry/artifacts.js +2 -2
- package/dist/modules/manager/poetry/artifacts.js.map +1 -1
- package/dist/modules/manager/poetry/extract.js +1 -1
- package/dist/modules/manager/poetry/extract.js.map +1 -1
- package/dist/modules/manager/poetry/index.d.ts +1 -0
- package/dist/modules/manager/poetry/index.js +2 -1
- package/dist/modules/manager/poetry/index.js.map +1 -1
- package/dist/modules/manager/poetry/schema.d.ts +45 -138
- package/dist/modules/manager/poetry/schema.js +49 -32
- package/dist/modules/manager/poetry/schema.js.map +1 -1
- package/dist/modules/manager/poetry/update-locked.js +2 -2
- package/dist/modules/manager/poetry/update-locked.js.map +1 -1
- package/dist/modules/manager/pre-commit/extract.js +2 -1
- package/dist/modules/manager/pre-commit/extract.js.map +1 -1
- package/dist/modules/manager/pub/extract.js +38 -8
- package/dist/modules/manager/pub/extract.js.map +1 -1
- package/dist/modules/manager/pub/index.d.ts +0 -1
- package/dist/modules/manager/pub/index.js +0 -3
- package/dist/modules/manager/pub/index.js.map +1 -1
- package/dist/modules/manager/pub/schema.d.ts +25 -79
- package/dist/modules/manager/pub/schema.js +17 -10
- package/dist/modules/manager/pub/schema.js.map +1 -1
- package/dist/modules/manager/pub/utils.d.ts +3 -3
- package/dist/modules/manager/pub/utils.js +2 -2
- package/dist/modules/manager/pub/utils.js.map +1 -1
- package/dist/modules/manager/quadlet/extract.d.ts +2 -0
- package/dist/modules/manager/quadlet/extract.js +54 -0
- package/dist/modules/manager/quadlet/extract.js.map +1 -0
- package/dist/modules/manager/quadlet/index.d.ts +8 -0
- package/dist/modules/manager/quadlet/index.js +13 -0
- package/dist/modules/manager/quadlet/index.js.map +1 -0
- package/dist/modules/manager/quadlet/schema.d.ts +45 -0
- package/dist/modules/manager/quadlet/schema.js +23 -0
- package/dist/modules/manager/quadlet/schema.js.map +1 -0
- package/dist/modules/manager/renovate-config-presets/extract.js +1 -1
- package/dist/modules/manager/renovate-config-presets/extract.js.map +1 -1
- package/dist/modules/manager/renovate-config-presets/index.js +1 -1
- package/dist/modules/manager/renovate-config-presets/index.js.map +1 -1
- package/dist/modules/manager/renovate-config-presets/schema.d.ts +1 -1
- package/dist/modules/manager/renovate-config-presets/schema.js +2 -2
- package/dist/modules/manager/renovate-config-presets/schema.js.map +1 -1
- package/dist/modules/manager/swift/extract.js +25 -9
- package/dist/modules/manager/swift/extract.js.map +1 -1
- package/dist/modules/manager/swift/index.js +7 -1
- package/dist/modules/manager/swift/index.js.map +1 -1
- package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js +1 -1
- package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js.map +1 -1
- package/dist/modules/manager/terraform/lockfile/hash.js +1 -1
- package/dist/modules/manager/terraform/lockfile/hash.js.map +1 -1
- package/dist/modules/manager/terragrunt/util.js +1 -1
- package/dist/modules/manager/terragrunt/util.js.map +1 -1
- package/dist/modules/manager/types.d.ts +2 -0
- package/dist/modules/manager/types.js.map +1 -1
- package/dist/modules/manager/typst/extract.d.ts +2 -0
- package/dist/modules/manager/typst/extract.js +31 -0
- package/dist/modules/manager/typst/extract.js.map +1 -0
- package/dist/modules/manager/typst/index.d.ts +7 -0
- package/dist/modules/manager/typst/index.js +12 -0
- package/dist/modules/manager/typst/index.js.map +1 -0
- package/dist/modules/manager/util.js +3 -2
- package/dist/modules/manager/util.js.map +1 -1
- package/dist/modules/manager/vendir/schema.d.ts +13 -13
- package/dist/modules/platform/azure/azure-helper.js +1 -1
- package/dist/modules/platform/azure/azure-helper.js.map +1 -1
- package/dist/modules/platform/azure/schema.d.ts +3 -3
- package/dist/modules/platform/azure/schema.js +4 -4
- package/dist/modules/platform/azure/schema.js.map +1 -1
- package/dist/modules/platform/bitbucket/index.js +12 -9
- package/dist/modules/platform/bitbucket/index.js.map +1 -1
- package/dist/modules/platform/bitbucket/schema.d.ts +7 -7
- package/dist/modules/platform/bitbucket/schema.js +7 -7
- package/dist/modules/platform/bitbucket/schema.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/index.js +7 -6
- package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/schema.d.ts +16 -17
- package/dist/modules/platform/bitbucket-server/schema.js +6 -8
- package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
- package/dist/modules/platform/codecommit/index.d.ts +0 -8
- package/dist/modules/platform/codecommit/index.js +16 -16
- package/dist/modules/platform/codecommit/index.js.map +1 -1
- package/dist/modules/platform/forgejo/index.js +39 -38
- package/dist/modules/platform/forgejo/index.js.map +1 -1
- package/dist/modules/platform/forgejo/types.d.ts +3 -2
- package/dist/modules/platform/forgejo/types.js.map +1 -1
- package/dist/modules/platform/forgejo/utils.d.ts +1 -0
- package/dist/modules/platform/forgejo/utils.js +17 -0
- package/dist/modules/platform/forgejo/utils.js.map +1 -1
- package/dist/modules/platform/gerrit/client.d.ts +1 -1
- package/dist/modules/platform/gerrit/client.js +32 -33
- package/dist/modules/platform/gerrit/client.js.map +1 -1
- package/dist/modules/platform/gerrit/index.d.ts +1 -2
- package/dist/modules/platform/gerrit/index.js +8 -16
- package/dist/modules/platform/gerrit/index.js.map +1 -1
- package/dist/modules/platform/gerrit/scm.js +7 -13
- package/dist/modules/platform/gerrit/scm.js.map +1 -1
- package/dist/modules/platform/gerrit/types.d.ts +27 -1
- package/dist/modules/platform/gerrit/types.js.map +1 -1
- package/dist/modules/platform/gitea/index.js +34 -37
- package/dist/modules/platform/gitea/index.js.map +1 -1
- package/dist/modules/platform/gitea/schema.d.ts +3 -3
- package/dist/modules/platform/gitea/schema.js +3 -3
- package/dist/modules/platform/gitea/schema.js.map +1 -1
- package/dist/modules/platform/gitea/types.d.ts +3 -2
- package/dist/modules/platform/gitea/types.js.map +1 -1
- package/dist/modules/platform/gitea/utils.d.ts +1 -0
- package/dist/modules/platform/gitea/utils.js +17 -0
- package/dist/modules/platform/gitea/utils.js.map +1 -1
- package/dist/modules/platform/github/index.d.ts +1 -1
- package/dist/modules/platform/github/index.js +92 -33
- package/dist/modules/platform/github/index.js.map +1 -1
- package/dist/modules/platform/github/schema.d.ts +32 -2
- package/dist/modules/platform/github/schema.js +32 -8
- package/dist/modules/platform/github/schema.js.map +1 -1
- package/dist/modules/platform/github/types.d.ts +2 -2
- package/dist/modules/platform/github/types.js.map +1 -1
- package/dist/modules/platform/github/user.d.ts +2 -1
- package/dist/modules/platform/github/user.js.map +1 -1
- package/dist/modules/platform/gitlab/index.js.map +1 -1
- package/dist/modules/platform/gitlab/pr-cache.d.ts +0 -2
- package/dist/modules/platform/gitlab/pr-cache.js +28 -37
- package/dist/modules/platform/gitlab/pr-cache.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 +1 -1
- 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 +7 -7
- package/dist/modules/versioning/cargo/index.js.map +1 -1
- package/dist/modules/versioning/composer/index.js +0 -4
- package/dist/modules/versioning/composer/index.js.map +1 -1
- package/dist/modules/versioning/conan/index.js +1 -1
- package/dist/modules/versioning/conan/index.js.map +1 -1
- package/dist/modules/versioning/conda/index.d.ts +2 -0
- package/dist/modules/versioning/conda/index.js +4 -4
- package/dist/modules/versioning/conda/index.js.map +1 -1
- package/dist/modules/versioning/debian/index.d.ts +1 -1
- package/dist/modules/versioning/debian/index.js +2 -17
- package/dist/modules/versioning/debian/index.js.map +1 -1
- package/dist/modules/versioning/gradle/index.js +2 -2
- package/dist/modules/versioning/gradle/index.js.map +1 -1
- package/dist/modules/versioning/hashicorp/index.js +0 -1
- package/dist/modules/versioning/hashicorp/index.js.map +1 -1
- package/dist/modules/versioning/helm/index.js +0 -1
- package/dist/modules/versioning/helm/index.js.map +1 -1
- package/dist/modules/versioning/hex/index.js +0 -1
- package/dist/modules/versioning/hex/index.js.map +1 -1
- package/dist/modules/versioning/ivy/index.js +1 -2
- package/dist/modules/versioning/ivy/index.js.map +1 -1
- package/dist/modules/versioning/npm/index.js +0 -1
- package/dist/modules/versioning/npm/index.js.map +1 -1
- package/dist/modules/versioning/npm/range.js +2 -3
- package/dist/modules/versioning/npm/range.js.map +1 -1
- package/dist/modules/versioning/nuget/index.js +8 -4
- package/dist/modules/versioning/nuget/index.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/pep440/range.d.ts +1 -0
- package/dist/modules/versioning/pep440/range.js +4 -3
- package/dist/modules/versioning/pep440/range.js.map +1 -1
- package/dist/modules/versioning/poetry/index.js +0 -4
- package/dist/modules/versioning/poetry/index.js.map +1 -1
- package/dist/modules/versioning/rez/index.js +0 -1
- package/dist/modules/versioning/rez/index.js.map +1 -1
- package/dist/modules/versioning/ruby/index.js +5 -5
- package/dist/modules/versioning/ruby/index.js.map +1 -1
- package/dist/modules/versioning/ruby/strategies/index.d.ts +1 -2
- package/dist/modules/versioning/ruby/strategies/index.js +1 -3
- package/dist/modules/versioning/ruby/strategies/index.js.map +1 -1
- package/dist/modules/versioning/semver-partial/index.d.ts +8 -0
- package/dist/modules/versioning/semver-partial/index.js +211 -0
- package/dist/modules/versioning/semver-partial/index.js.map +1 -0
- package/dist/modules/versioning/swift/index.js +0 -1
- package/dist/modules/versioning/swift/index.js.map +1 -1
- package/dist/modules/versioning/types.d.ts +5 -0
- package/dist/modules/versioning/types.js.map +1 -1
- package/dist/renovate.js +0 -0
- package/dist/util/cache/package/decorator.js +20 -9
- package/dist/util/cache/package/decorator.js.map +1 -1
- package/dist/util/cache/package/file.d.ts +1 -1
- package/dist/util/cache/package/file.js +3 -3
- package/dist/util/cache/package/file.js.map +1 -1
- package/dist/util/cache/package/index.d.ts +9 -2
- package/dist/util/cache/package/index.js +19 -4
- package/dist/util/cache/package/index.js.map +1 -1
- package/dist/util/cache/package/namespaces.d.ts +1 -1
- package/dist/util/cache/package/namespaces.js +3 -0
- package/dist/util/cache/package/namespaces.js.map +1 -1
- package/dist/util/cache/package/redis.d.ts +1 -1
- package/dist/util/cache/package/redis.js +17 -7
- package/dist/util/cache/package/redis.js.map +1 -1
- package/dist/util/cache/package/sqlite.d.ts +1 -1
- package/dist/util/cache/package/sqlite.js +2 -2
- package/dist/util/cache/package/sqlite.js.map +1 -1
- package/dist/util/cache/package/types.d.ts +1 -1
- package/dist/util/cache/package/types.js.map +1 -1
- package/dist/util/cache/repository/http-cache.js +1 -1
- package/dist/util/cache/repository/http-cache.js.map +1 -1
- package/dist/util/cache/repository/schema.d.ts +1 -1
- package/dist/util/cache/repository/types.d.ts +1 -0
- package/dist/util/cache/repository/types.js.map +1 -1
- package/dist/util/emoji.js +2 -2
- package/dist/util/emoji.js.map +1 -1
- package/dist/util/exec/containerbase.js +5 -0
- package/dist/util/exec/containerbase.js.map +1 -1
- package/dist/util/git/index.js +6 -3
- package/dist/util/git/index.js.map +1 -1
- package/dist/util/git/private-key.js +23 -3
- package/dist/util/git/private-key.js.map +1 -1
- package/dist/util/git/types.d.ts +2 -1
- package/dist/util/git/types.js.map +1 -1
- package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +6 -6
- package/dist/util/http/bitbucket.js +0 -1
- package/dist/util/http/bitbucket.js.map +1 -1
- package/dist/util/http/cache/abstract-http-cache-provider.d.ts +7 -7
- package/dist/util/http/cache/abstract-http-cache-provider.js +11 -11
- package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
- package/dist/util/http/cache/memory-http-cache-provider.d.ts +3 -3
- package/dist/util/http/cache/memory-http-cache-provider.js +8 -8
- package/dist/util/http/cache/memory-http-cache-provider.js.map +1 -1
- package/dist/util/http/cache/package-http-cache-provider.d.ts +5 -4
- package/dist/util/http/cache/package-http-cache-provider.js +17 -11
- package/dist/util/http/cache/package-http-cache-provider.js.map +1 -1
- package/dist/util/http/cache/repository-http-cache-provider.d.ts +16 -3
- package/dist/util/http/cache/repository-http-cache-provider.js +60 -3
- package/dist/util/http/cache/repository-http-cache-provider.js.map +1 -1
- package/dist/util/http/cache/schema.d.ts +2 -2
- package/dist/util/http/cache/schema.js +2 -2
- package/dist/util/http/cache/schema.js.map +1 -1
- package/dist/util/http/cache/types.d.ts +3 -3
- package/dist/util/http/cache/types.js.map +1 -1
- package/dist/util/http/gerrit.d.ts +1 -1
- package/dist/util/http/gerrit.js +1 -1
- package/dist/util/http/gerrit.js.map +1 -1
- package/dist/util/http/gitlab.js +0 -1
- package/dist/util/http/gitlab.js.map +1 -1
- package/dist/util/http/host-rules.js +10 -0
- package/dist/util/http/host-rules.js.map +1 -1
- package/dist/util/http/http.d.ts +1 -1
- package/dist/util/http/http.js +17 -15
- package/dist/util/http/http.js.map +1 -1
- package/dist/util/http/retry-after.js +1 -1
- package/dist/util/http/retry-after.js.map +1 -1
- package/dist/util/interpolator.js +2 -0
- package/dist/util/interpolator.js.map +1 -1
- package/dist/util/markdown.js +3 -3
- package/dist/util/markdown.js.map +1 -1
- package/dist/util/merge-confidence/index.js +3 -1
- package/dist/util/merge-confidence/index.js.map +1 -1
- package/dist/util/schema-utils/index.d.ts +8 -4
- package/dist/util/schema-utils/index.js +16 -1
- package/dist/util/schema-utils/index.js.map +1 -1
- package/dist/util/template/index.d.ts +1 -0
- package/dist/util/template/index.js +70 -64
- package/dist/util/template/index.js.map +1 -1
- package/dist/workers/global/config/parse/file.js +6 -0
- package/dist/workers/global/config/parse/file.js.map +1 -1
- package/dist/workers/global/config/parse/index.js +2 -1
- package/dist/workers/global/config/parse/index.js.map +1 -1
- package/dist/workers/repository/config-migration/branch/commit-message.js +2 -1
- package/dist/workers/repository/config-migration/branch/commit-message.js.map +1 -1
- package/dist/workers/repository/config-migration/branch/create.js +1 -0
- package/dist/workers/repository/config-migration/branch/create.js.map +1 -1
- package/dist/workers/repository/config-migration/branch/rebase.js +1 -0
- package/dist/workers/repository/config-migration/branch/rebase.js.map +1 -1
- package/dist/workers/repository/dependency-dashboard.js +42 -5
- package/dist/workers/repository/dependency-dashboard.js.map +1 -1
- package/dist/workers/repository/error-config.js +1 -1
- package/dist/workers/repository/error-config.js.map +1 -1
- package/dist/workers/repository/error.js +1 -1
- package/dist/workers/repository/error.js.map +1 -1
- package/dist/workers/repository/extract/supersedes.d.ts +1 -1
- package/dist/workers/repository/extract/supersedes.js +31 -17
- package/dist/workers/repository/extract/supersedes.js.map +1 -1
- package/dist/workers/repository/finalize/index.js +1 -1
- package/dist/workers/repository/finalize/index.js.map +1 -1
- package/dist/workers/repository/finalize/prune.js +4 -3
- package/dist/workers/repository/finalize/prune.js.map +1 -1
- package/dist/workers/repository/index.js +49 -20
- package/dist/workers/repository/index.js.map +1 -1
- package/dist/workers/repository/init/inherited.js +7 -0
- package/dist/workers/repository/init/inherited.js.map +1 -1
- package/dist/workers/repository/init/merge.js +1 -1
- package/dist/workers/repository/init/merge.js.map +1 -1
- package/dist/workers/repository/onboarding/branch/check.js +5 -3
- package/dist/workers/repository/onboarding/branch/check.js.map +1 -1
- package/dist/workers/repository/onboarding/branch/create.js +1 -0
- package/dist/workers/repository/onboarding/branch/create.js.map +1 -1
- package/dist/workers/repository/onboarding/branch/rebase.js +1 -0
- package/dist/workers/repository/onboarding/branch/rebase.js.map +1 -1
- package/dist/workers/repository/onboarding/common.js +3 -2
- package/dist/workers/repository/onboarding/common.js.map +1 -1
- package/dist/workers/repository/process/extract-update.js +2 -2
- package/dist/workers/repository/process/extract-update.js.map +1 -1
- package/dist/workers/repository/process/fetch.js +4 -3
- package/dist/workers/repository/process/fetch.js.map +1 -1
- package/dist/workers/repository/process/index.d.ts +1 -0
- package/dist/workers/repository/process/index.js +25 -5
- package/dist/workers/repository/process/index.js.map +1 -1
- package/dist/workers/repository/process/lookup/filter-checks.js +42 -8
- package/dist/workers/repository/process/lookup/filter-checks.js.map +1 -1
- package/dist/workers/repository/process/lookup/filter.js +5 -7
- package/dist/workers/repository/process/lookup/filter.js.map +1 -1
- package/dist/workers/repository/process/lookup/index.js +10 -13
- package/dist/workers/repository/process/lookup/index.js.map +1 -1
- package/dist/workers/repository/process/vulnerabilities.d.ts +1 -1
- package/dist/workers/repository/process/vulnerabilities.js +13 -8
- package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
- package/dist/workers/repository/reconfigure/comment.js +1 -1
- package/dist/workers/repository/reconfigure/comment.js.map +1 -1
- package/dist/workers/repository/reconfigure/index.js +1 -1
- package/dist/workers/repository/reconfigure/index.js.map +1 -1
- package/dist/workers/repository/update/branch/commit.js +2 -0
- package/dist/workers/repository/update/branch/commit.js.map +1 -1
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +12 -1
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
- package/dist/workers/repository/update/branch/index.js +65 -20
- package/dist/workers/repository/update/branch/index.js.map +1 -1
- package/dist/workers/repository/update/branch/status-checks.js +5 -0
- package/dist/workers/repository/update/branch/status-checks.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +1 -1
- package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/forgejo/index.js +3 -3
- package/dist/workers/repository/update/pr/changelog/forgejo/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/gitea/index.js +3 -3
- package/dist/workers/repository/update/pr/changelog/gitea/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/release-notes.js +9 -4
- package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
- package/dist/workers/repository/update/pr/index.js +28 -11
- package/dist/workers/repository/update/pr/index.js.map +1 -1
- package/dist/workers/repository/update/pr/pr-reuse.d.ts +1 -1
- package/dist/workers/repository/update/pr/pr-reuse.js +2 -2
- package/dist/workers/repository/update/pr/pr-reuse.js.map +1 -1
- package/dist/workers/repository/updates/generate.js +1 -0
- package/dist/workers/repository/updates/generate.js.map +1 -1
- package/dist/workers/types.d.ts +1 -0
- package/dist/workers/types.js.map +1 -1
- package/package.json +136 -153
- package/renovate-schema.json +325 -111
- package/dist/config/decrypt/kbpgp.d.ts +0 -1
- package/dist/config/decrypt/kbpgp.js +0 -58
- package/dist/config/decrypt/kbpgp.js.map +0 -1
- package/dist/config/decrypt/legacy.d.ts +0 -2
- package/dist/config/decrypt/legacy.js +0 -36
- package/dist/config/decrypt/legacy.js.map +0 -1
- package/dist/modules/versioning/ruby/strategies/pin.d.ts +0 -4
- package/dist/modules/versioning/ruby/strategies/pin.js +0 -4
- package/dist/modules/versioning/ruby/strategies/pin.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-rules.js","sourceRoot":"","sources":["../../../lib/util/http/host-rules.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { GlobalConfig } from '../../config/global';\nimport {\n BITBUCKET_API_USING_HOST_TYPES,\n BITBUCKET_SERVER_API_USING_HOST_TYPES,\n GITEA_API_USING_HOST_TYPES,\n GITHUB_API_USING_HOST_TYPES,\n GITLAB_API_USING_HOST_TYPES,\n} from '../../constants';\nimport { logger } from '../../logger';\nimport { hasProxy } from '../../proxy';\nimport type { HostRule } from '../../types';\nimport * as hostRules from '../host-rules';\nimport { matchRegexOrGlobList } from '../string-match';\nimport { parseUrl } from '../url';\nimport type { InternalHttpOptions } from './http';\nimport { keepAliveAgents } from './keep-alive';\nimport type { GotOptions } from './types';\n\nexport type HostRulesGotOptions = Pick<\n GotOptions & InternalHttpOptions,\n | 'hostType'\n | 'url'\n | 'noAuth'\n | 'headers'\n | 'token'\n | 'username'\n | 'password'\n | 'context'\n | 'enabled'\n | 'abortOnError'\n | 'abortIgnoreStatusCodes'\n | 'timeout'\n | 'lookup'\n | 'agent'\n | 'http2'\n | 'https'\n | 'readOnly'\n>;\n\nexport function findMatchingRule<GotOptions extends HostRulesGotOptions>(\n url: string,\n options: GotOptions,\n): HostRule {\n const { hostType, readOnly } = options;\n let res = hostRules.find({ hostType, url, readOnly });\n\n if (\n is.nonEmptyString(res.token) ||\n is.nonEmptyString(res.username) ||\n is.nonEmptyString(res.password)\n ) {\n // do not fallback if we already have auth infos\n return res;\n }\n\n // Fallback to `github` hostType\n if (\n hostType &&\n GITHUB_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'github'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'github',\n url,\n }),\n ...res,\n };\n }\n\n // Fallback to `gitlab` hostType\n if (\n hostType &&\n GITLAB_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'gitlab'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'gitlab',\n url,\n }),\n ...res,\n };\n }\n\n // Fallback to `bitbucket` hostType\n if (\n hostType &&\n BITBUCKET_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'bitbucket'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'bitbucket',\n url,\n }),\n ...res,\n };\n }\n\n // Fallback to `bitbucket-server` hostType\n if (\n hostType &&\n BITBUCKET_SERVER_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'bitbucket-server'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'bitbucket-server',\n url,\n }),\n ...res,\n };\n }\n\n // Fallback to `gitea` hostType\n if (\n hostType &&\n GITEA_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'gitea'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'gitea',\n url,\n }),\n ...res,\n };\n }\n\n return res;\n}\n\n// Apply host rules to requests\nexport function applyHostRule<GotOptions extends HostRulesGotOptions>(\n url: string,\n options: GotOptions,\n hostRule: HostRule,\n): GotOptions {\n if (hostRule.enabled === false) {\n options.enabled = false;\n return options;\n }\n\n const { username, password, token, authType } = hostRule;\n const host = parseUrl(url)?.host;\n if (options.noAuth) {\n logger.trace({ url }, `Authorization disabled`);\n } else if (\n is.nonEmptyString(options.headers?.authorization) ||\n is.nonEmptyString(options.password) ||\n is.nonEmptyString(options.token)\n ) {\n logger.once.debug(`hostRules: authentication already set for ${host}`);\n logger.trace({ url }, `Authorization already set`);\n } else if (password !== undefined) {\n logger.once.debug(`hostRules: applying Basic authentication for ${host}`);\n logger.trace({ url }, `Applying Basic authentication`);\n options.username = username;\n options.password = password;\n } else if (token) {\n logger.once.debug(`hostRules: applying Bearer authentication for ${host}`);\n logger.trace({ url }, `Applying Bearer authentication`);\n options.token = token;\n options.context = { ...options.context, authType };\n } else {\n logger.once.debug(`hostRules: no authentication for ${host}`);\n }\n // Apply optional params\n if (hostRule.abortOnError) {\n options.abortOnError = hostRule.abortOnError;\n }\n\n if (hostRule.abortIgnoreStatusCodes) {\n options.abortIgnoreStatusCodes = hostRule.abortIgnoreStatusCodes;\n }\n\n if (hostRule.timeout) {\n options.timeout = hostRule.timeout;\n }\n\n if (hostRule.headers) {\n const allowedHeaders = GlobalConfig.get('allowedHeaders', []);\n const filteredHeaders: Record<string, string> = {};\n\n for (const [header, value] of Object.entries(hostRule.headers)) {\n if (matchRegexOrGlobList(header, allowedHeaders)) {\n filteredHeaders[header] = value;\n } else {\n logger.once.error(\n { allowedHeaders, header },\n 'Disallowed hostRules headers',\n );\n }\n }\n\n options.headers = {\n ...options.headers,\n ...filteredHeaders,\n };\n }\n\n if (hostRule.keepAlive) {\n options.agent = keepAliveAgents;\n }\n\n if (!hasProxy() && hostRule.enableHttp2 === true) {\n options.http2 = true;\n }\n\n if (is.nonEmptyString(hostRule.httpsCertificateAuthority)) {\n options.https = {\n ...(options.https ?? {}),\n certificateAuthority: hostRule.httpsCertificateAuthority,\n };\n }\n\n if (is.nonEmptyString(hostRule.httpsPrivateKey)) {\n options.https = {\n ...(options.https ?? {}),\n key: hostRule.httpsPrivateKey,\n };\n }\n\n if (is.nonEmptyString(hostRule.httpsCertificate)) {\n options.https = {\n ...(options.https ?? {}),\n certificate: hostRule.httpsCertificate,\n };\n }\n\n return options;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"host-rules.js","sourceRoot":"","sources":["../../../lib/util/http/host-rules.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { GlobalConfig } from '../../config/global';\nimport {\n BITBUCKET_API_USING_HOST_TYPES,\n BITBUCKET_SERVER_API_USING_HOST_TYPES,\n GITEA_API_USING_HOST_TYPES,\n GITHUB_API_USING_HOST_TYPES,\n GITLAB_API_USING_HOST_TYPES,\n} from '../../constants';\nimport { logger } from '../../logger';\nimport { hasProxy } from '../../proxy';\nimport type { HostRule } from '../../types';\nimport * as hostRules from '../host-rules';\nimport { matchRegexOrGlobList } from '../string-match';\nimport { parseUrl } from '../url';\nimport type { InternalHttpOptions } from './http';\nimport { keepAliveAgents } from './keep-alive';\nimport type { GotOptions } from './types';\n\nexport type HostRulesGotOptions = Pick<\n GotOptions & InternalHttpOptions,\n | 'hostType'\n | 'url'\n | 'noAuth'\n | 'headers'\n | 'token'\n | 'username'\n | 'password'\n | 'context'\n | 'enabled'\n | 'abortOnError'\n | 'abortIgnoreStatusCodes'\n | 'timeout'\n | 'lookup'\n | 'agent'\n | 'http2'\n | 'https'\n | 'readOnly'\n>;\n\nexport function findMatchingRule<GotOptions extends HostRulesGotOptions>(\n url: string,\n options: GotOptions,\n): HostRule {\n const { hostType, readOnly } = options;\n let res = hostRules.find({ hostType, url, readOnly });\n\n if (\n is.nonEmptyString(res.token) ||\n is.nonEmptyString(res.username) ||\n is.nonEmptyString(res.password)\n ) {\n // do not fallback if we already have auth infos\n return res;\n }\n\n // Fallback to `github` hostType\n if (\n hostType &&\n GITHUB_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'github'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'github',\n url,\n }),\n ...res,\n };\n }\n\n // in the case that an API URL is used for GitHub.com, fallback to `github` hostType, and use the `url`'s host to find a `matchHost: api.github.com` (or `matchHost: github.com`)\n if (url.startsWith('https://api.github.com/')) {\n res = {\n ...hostRules.find({\n hostType: 'github',\n url,\n }),\n ...res,\n };\n }\n\n // Fallback to `gitlab` hostType\n if (\n hostType &&\n GITLAB_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'gitlab'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'gitlab',\n url,\n }),\n ...res,\n };\n }\n\n // Fallback to `bitbucket` hostType\n if (\n hostType &&\n BITBUCKET_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'bitbucket'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'bitbucket',\n url,\n }),\n ...res,\n };\n }\n\n // Fallback to `bitbucket-server` hostType\n if (\n hostType &&\n BITBUCKET_SERVER_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'bitbucket-server'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'bitbucket-server',\n url,\n }),\n ...res,\n };\n }\n\n // Fallback to `gitea` hostType\n if (\n hostType &&\n GITEA_API_USING_HOST_TYPES.includes(hostType) &&\n hostType !== 'gitea'\n ) {\n res = {\n ...hostRules.find({\n hostType: 'gitea',\n url,\n }),\n ...res,\n };\n }\n\n return res;\n}\n\n// Apply host rules to requests\nexport function applyHostRule<GotOptions extends HostRulesGotOptions>(\n url: string,\n options: GotOptions,\n hostRule: HostRule,\n): GotOptions {\n if (hostRule.enabled === false) {\n options.enabled = false;\n return options;\n }\n\n const { username, password, token, authType } = hostRule;\n const host = parseUrl(url)?.host;\n if (options.noAuth) {\n logger.trace({ url }, `Authorization disabled`);\n } else if (\n is.nonEmptyString(options.headers?.authorization) ||\n is.nonEmptyString(options.password) ||\n is.nonEmptyString(options.token)\n ) {\n logger.once.debug(`hostRules: authentication already set for ${host}`);\n logger.trace({ url }, `Authorization already set`);\n } else if (password !== undefined) {\n logger.once.debug(`hostRules: applying Basic authentication for ${host}`);\n logger.trace({ url }, `Applying Basic authentication`);\n options.username = username;\n options.password = password;\n } else if (token) {\n logger.once.debug(`hostRules: applying Bearer authentication for ${host}`);\n logger.trace({ url }, `Applying Bearer authentication`);\n options.token = token;\n options.context = { ...options.context, authType };\n } else {\n logger.once.debug(`hostRules: no authentication for ${host}`);\n }\n // Apply optional params\n if (hostRule.abortOnError) {\n options.abortOnError = hostRule.abortOnError;\n }\n\n if (hostRule.abortIgnoreStatusCodes) {\n options.abortIgnoreStatusCodes = hostRule.abortIgnoreStatusCodes;\n }\n\n if (hostRule.timeout) {\n options.timeout = hostRule.timeout;\n }\n\n if (hostRule.headers) {\n const allowedHeaders = GlobalConfig.get('allowedHeaders', []);\n const filteredHeaders: Record<string, string> = {};\n\n for (const [header, value] of Object.entries(hostRule.headers)) {\n if (matchRegexOrGlobList(header, allowedHeaders)) {\n filteredHeaders[header] = value;\n } else {\n logger.once.error(\n { allowedHeaders, header },\n 'Disallowed hostRules headers',\n );\n }\n }\n\n options.headers = {\n ...options.headers,\n ...filteredHeaders,\n };\n }\n\n if (hostRule.keepAlive) {\n options.agent = keepAliveAgents;\n }\n\n if (!hasProxy() && hostRule.enableHttp2 === true) {\n options.http2 = true;\n }\n\n if (is.nonEmptyString(hostRule.httpsCertificateAuthority)) {\n options.https = {\n ...(options.https ?? {}),\n certificateAuthority: hostRule.httpsCertificateAuthority,\n };\n }\n\n if (is.nonEmptyString(hostRule.httpsPrivateKey)) {\n options.https = {\n ...(options.https ?? {}),\n key: hostRule.httpsPrivateKey,\n };\n }\n\n if (is.nonEmptyString(hostRule.httpsCertificate)) {\n options.https = {\n ...(options.https ?? {}),\n certificate: hostRule.httpsCertificate,\n };\n }\n\n return options;\n}\n"]}
|
package/dist/util/http/http.d.ts
CHANGED
|
@@ -26,7 +26,7 @@ export declare abstract class HttpBase<JSONOpts extends HttpOptions = HttpOption
|
|
|
26
26
|
private request;
|
|
27
27
|
protected processOptions(_url: URL, _options: InternalHttpOptions): void;
|
|
28
28
|
protected handleError(_url: string | URL, _httpOptions: HttpOptions, err: Error): never;
|
|
29
|
-
|
|
29
|
+
resolveUrl(requestUrl: string | URL, options?: HttpOptions | undefined): URL;
|
|
30
30
|
protected calculateRetryDelay({ computedValue }: RetryObject): number;
|
|
31
31
|
get(url: string, options?: HttpOptions): Promise<HttpResponse<string | Buffer>>;
|
|
32
32
|
head(url: string, options?: HttpOptions): Promise<HttpResponse<never>>;
|
package/dist/util/http/http.js
CHANGED
|
@@ -31,7 +31,7 @@ function applyDefaultHeaders(options) {
|
|
|
31
31
|
options.headers = {
|
|
32
32
|
...options.headers,
|
|
33
33
|
'user-agent': global_1.GlobalConfig.get('userAgent') ??
|
|
34
|
-
`
|
|
34
|
+
`Renovate/${renovateVersion} (https://github.com/renovatebot/renovate)`,
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
class HttpBase {
|
|
@@ -61,13 +61,14 @@ class HttpBase {
|
|
|
61
61
|
...this.options,
|
|
62
62
|
hostType: this.hostType,
|
|
63
63
|
}, httpOptions, { isMergeableObject: is_1.default.plainObject });
|
|
64
|
-
|
|
64
|
+
const method = options.method.toLowerCase();
|
|
65
|
+
const isReadMethod = ['head', 'get'].includes(method);
|
|
66
|
+
logger_1.logger.trace(`HTTP request: ${method.toUpperCase()} ${url}`);
|
|
65
67
|
options.hooks = {
|
|
66
68
|
beforeRedirect: [auth_1.removeAuthorization],
|
|
67
69
|
};
|
|
68
70
|
applyDefaultHeaders(options);
|
|
69
|
-
if (is_1.default.undefined(options.readOnly) &&
|
|
70
|
-
['head', 'get'].includes(options.method)) {
|
|
71
|
+
if (is_1.default.undefined(options.readOnly) && isReadMethod) {
|
|
71
72
|
options.readOnly = true;
|
|
72
73
|
}
|
|
73
74
|
const hostRule = (0, host_rules_1.findMatchingRule)(url, options);
|
|
@@ -78,18 +79,21 @@ class HttpBase {
|
|
|
78
79
|
}
|
|
79
80
|
options = (0, auth_1.applyAuthorization)(options);
|
|
80
81
|
options.timeout ??= 60000;
|
|
81
|
-
|
|
82
|
+
let cacheProvider;
|
|
83
|
+
if (isReadMethod && options.cacheProvider) {
|
|
84
|
+
cacheProvider = options.cacheProvider;
|
|
85
|
+
}
|
|
82
86
|
const memCacheKey = !process.env.RENOVATE_X_DISABLE_HTTP_MEMCACHE &&
|
|
83
87
|
!cacheProvider &&
|
|
84
88
|
options.memCache !== false &&
|
|
85
|
-
|
|
89
|
+
isReadMethod
|
|
86
90
|
? (0, hash_1.hash)(`got-${JSON.stringify({
|
|
87
91
|
url,
|
|
88
92
|
headers: options.headers,
|
|
89
|
-
method
|
|
93
|
+
method,
|
|
90
94
|
})}`)
|
|
91
95
|
: null;
|
|
92
|
-
const cachedResponse = await cacheProvider?.bypassServer(url);
|
|
96
|
+
const cachedResponse = await cacheProvider?.bypassServer(method, url);
|
|
93
97
|
if (cachedResponse) {
|
|
94
98
|
return cachedResponse;
|
|
95
99
|
}
|
|
@@ -105,7 +109,7 @@ class HttpBase {
|
|
|
105
109
|
}
|
|
106
110
|
if (!resPromise) {
|
|
107
111
|
if (cacheProvider) {
|
|
108
|
-
await cacheProvider.setCacheHeaders(url, options);
|
|
112
|
+
await cacheProvider.setCacheHeaders(method, url, options);
|
|
109
113
|
}
|
|
110
114
|
const startTime = Date.now();
|
|
111
115
|
const httpTask = () => {
|
|
@@ -115,9 +119,7 @@ class HttpBase {
|
|
|
115
119
|
const throttle = (0, throttle_1.getThrottle)(url);
|
|
116
120
|
const throttledTask = throttle ? () => throttle.add(httpTask) : httpTask;
|
|
117
121
|
const queue = (0, queue_1.getQueue)(url);
|
|
118
|
-
const queuedTask = queue
|
|
119
|
-
? () => queue.add(throttledTask, { throwOnTimeout: true })
|
|
120
|
-
: throttledTask;
|
|
122
|
+
const queuedTask = queue ? () => queue.add(throttledTask) : throttledTask;
|
|
121
123
|
const { maxRetryAfter = 60 } = hostRule;
|
|
122
124
|
resPromise = (0, retry_after_1.wrapWithRetry)(queuedTask, url, retry_after_1.getRetryAfter, maxRetryAfter);
|
|
123
125
|
if (memCacheKey) {
|
|
@@ -130,7 +132,7 @@ class HttpBase {
|
|
|
130
132
|
const resCopy = (0, util_1.copyResponse)(res, deepCopyNeeded);
|
|
131
133
|
resCopy.authorization = !!options?.headers?.authorization;
|
|
132
134
|
if (cacheProvider) {
|
|
133
|
-
return await cacheProvider.wrapServerResponse(url, resCopy);
|
|
135
|
+
return await cacheProvider.wrapServerResponse(method, url, resCopy);
|
|
134
136
|
}
|
|
135
137
|
return resCopy;
|
|
136
138
|
}
|
|
@@ -139,7 +141,7 @@ class HttpBase {
|
|
|
139
141
|
if (abortOnError && !abortIgnoreStatusCodes?.includes(err.statusCode)) {
|
|
140
142
|
throw new external_host_error_1.ExternalHostError(err);
|
|
141
143
|
}
|
|
142
|
-
const staleResponse = await cacheProvider?.bypassServer(url, true);
|
|
144
|
+
const staleResponse = await cacheProvider?.bypassServer(method, url, true);
|
|
143
145
|
if (staleResponse) {
|
|
144
146
|
logger_1.logger.debug({ err }, `Request error: returning stale cache instead for ${url}`);
|
|
145
147
|
return staleResponse;
|
|
@@ -153,7 +155,7 @@ class HttpBase {
|
|
|
153
155
|
handleError(_url, _httpOptions, err) {
|
|
154
156
|
throw err;
|
|
155
157
|
}
|
|
156
|
-
resolveUrl(requestUrl, options) {
|
|
158
|
+
resolveUrl(requestUrl, options = undefined) {
|
|
157
159
|
let url = requestUrl;
|
|
158
160
|
if (url instanceof URL) {
|
|
159
161
|
// already a aboslute URL
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../lib/util/http/http.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport merge from 'deepmerge';\nimport type { Options, RetryObject } from 'got';\nimport type { Merge, SetRequired } from 'type-fest';\nimport type { infer as Infer } from 'zod';\nimport { ZodType } from 'zod';\nimport { GlobalConfig } from '../../config/global';\nimport { HOST_DISABLED } from '../../constants/error-messages';\nimport { pkg } from '../../expose.cjs';\nimport { logger } from '../../logger';\nimport { ExternalHostError } from '../../types/errors/external-host-error';\nimport * as memCache from '../cache/memory';\nimport { getEnv } from '../env';\nimport { hash } from '../hash';\nimport { type AsyncResult, Result } from '../result';\nimport { Toml } from '../schema-utils';\nimport { ObsoleteCacheHitLogger } from '../stats';\nimport { isHttpUrl, parseUrl, resolveBaseUrl } from '../url';\nimport { parseSingleYaml } from '../yaml';\nimport { applyAuthorization, removeAuthorization } from './auth';\nimport { fetch, stream } from './got';\nimport { applyHostRule, findMatchingRule } from './host-rules';\n\nimport { getQueue } from './queue';\nimport { getRetryAfter, wrapWithRetry } from './retry-after';\nimport { getThrottle } from './throttle';\nimport type {\n GotOptions,\n GotStreamOptions,\n GotTask,\n HttpMethod,\n HttpOptions,\n HttpResponse,\n SafeJsonError,\n} from './types';\nimport { copyResponse } from './util';\n\nexport interface InternalJsonUnsafeOptions<\n Opts extends HttpOptions = HttpOptions,\n> {\n url: string | URL;\n httpOptions?: Opts;\n}\n\nexport interface InternalJsonOptions<\n Opts extends HttpOptions,\n ResT = unknown,\n Schema extends ZodType<ResT> = ZodType<ResT>,\n> extends InternalJsonUnsafeOptions<Opts> {\n schema?: Schema;\n}\n\nexport type InternalGotOptions = SetRequired<GotOptions, 'method' | 'context'>;\n\nexport interface InternalHttpOptions extends HttpOptions {\n json?: HttpOptions['body'];\n\n method?: HttpMethod;\n\n parseJson?: Options['parseJson'];\n}\n\nexport function applyDefaultHeaders(options: Options): void {\n const renovateVersion = pkg.version;\n options.headers = {\n ...options.headers,\n 'user-agent':\n GlobalConfig.get('userAgent') ??\n `RenovateBot/${renovateVersion} (https://github.com/renovatebot/renovate)`,\n };\n}\n\nexport abstract class HttpBase<\n JSONOpts extends HttpOptions = HttpOptions,\n Opts extends HttpOptions = HttpOptions,\n> {\n private readonly options: InternalGotOptions;\n\n protected get baseUrl(): string | undefined {\n return undefined;\n }\n\n constructor(\n protected hostType: string,\n options: HttpOptions = {},\n ) {\n const retryLimit = getEnv().NODE_ENV === 'test' ? 0 : 2;\n this.options = merge<InternalGotOptions>(\n options,\n {\n method: 'get',\n context: { hostType },\n retry: {\n calculateDelay: (retryObject) =>\n this.calculateRetryDelay(retryObject),\n limit: retryLimit,\n maxRetryAfter: 0, // Don't rely on `got` retry-after handling, just let it fail and then we'll handle it\n },\n },\n { isMergeableObject: is.plainObject },\n );\n }\n private async request(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions,\n ): Promise<HttpResponse<string>>;\n private async request(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions & { responseType: 'text' },\n ): Promise<HttpResponse<string>>;\n private async request(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions & { responseType: 'buffer' },\n ): Promise<HttpResponse<Buffer>>;\n private async request<T = unknown>(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions & { responseType: 'json' },\n ): Promise<HttpResponse<T>>;\n\n private async request(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions,\n ): Promise<HttpResponse<unknown>> {\n const resolvedUrl = this.resolveUrl(requestUrl, httpOptions);\n const url = resolvedUrl.toString();\n\n this.processOptions(resolvedUrl, httpOptions);\n\n let options = merge<InternalGotOptions, InternalHttpOptions>(\n {\n ...this.options,\n hostType: this.hostType,\n },\n httpOptions,\n { isMergeableObject: is.plainObject },\n );\n\n logger.trace(`HTTP request: ${options.method.toUpperCase()} ${url}`);\n\n options.hooks = {\n beforeRedirect: [removeAuthorization],\n };\n\n applyDefaultHeaders(options);\n\n if (\n is.undefined(options.readOnly) &&\n ['head', 'get'].includes(options.method)\n ) {\n options.readOnly = true;\n }\n\n const hostRule = findMatchingRule(url, options);\n options = applyHostRule(url, options, hostRule);\n if (options.enabled === false) {\n logger.debug(`Host is disabled - rejecting request. HostUrl: ${url}`);\n throw new Error(HOST_DISABLED);\n }\n options = applyAuthorization(options);\n options.timeout ??= 60000;\n\n const { cacheProvider } = options;\n\n const memCacheKey =\n !process.env.RENOVATE_X_DISABLE_HTTP_MEMCACHE &&\n !cacheProvider &&\n options.memCache !== false &&\n (options.method === 'get' || options.method === 'head')\n ? hash(\n `got-${JSON.stringify({\n url,\n headers: options.headers,\n method: options.method,\n })}`,\n )\n : null;\n\n const cachedResponse = await cacheProvider?.bypassServer<unknown>(url);\n if (cachedResponse) {\n return cachedResponse;\n }\n\n let resPromise: Promise<HttpResponse<unknown>> | null = null;\n\n // Cache GET requests unless memCache=false\n if (memCacheKey) {\n resPromise = memCache.get(memCacheKey);\n\n /* v8 ignore start: temporary code */\n if (resPromise && !cacheProvider) {\n ObsoleteCacheHitLogger.write(url);\n }\n /* v8 ignore stop: temporary code */\n }\n\n if (!resPromise) {\n if (cacheProvider) {\n await cacheProvider.setCacheHeaders(url, options);\n }\n\n const startTime = Date.now();\n const httpTask: GotTask = () => {\n const queueMs = Date.now() - startTime;\n return fetch(url, options, { queueMs });\n };\n\n const throttle = getThrottle(url);\n const throttledTask = throttle ? () => throttle.add(httpTask) : httpTask;\n\n const queue = getQueue(url);\n const queuedTask = queue\n ? () => queue.add(throttledTask, { throwOnTimeout: true })\n : throttledTask;\n\n const { maxRetryAfter = 60 } = hostRule;\n resPromise = wrapWithRetry(queuedTask, url, getRetryAfter, maxRetryAfter);\n\n if (memCacheKey) {\n memCache.set(memCacheKey, resPromise);\n }\n }\n\n try {\n const res = await resPromise;\n const deepCopyNeeded = !!memCacheKey && res.statusCode !== 304;\n const resCopy = copyResponse(res, deepCopyNeeded);\n resCopy.authorization = !!options?.headers?.authorization;\n\n if (cacheProvider) {\n return await cacheProvider.wrapServerResponse(url, resCopy);\n }\n\n return resCopy;\n } catch (err) {\n const { abortOnError, abortIgnoreStatusCodes } = options;\n if (abortOnError && !abortIgnoreStatusCodes?.includes(err.statusCode)) {\n throw new ExternalHostError(err);\n }\n\n const staleResponse = await cacheProvider?.bypassServer<string | Buffer>(\n url,\n true,\n );\n if (staleResponse) {\n logger.debug(\n { err },\n `Request error: returning stale cache instead for ${url}`,\n );\n return staleResponse;\n }\n\n this.handleError(requestUrl, httpOptions, err);\n }\n }\n\n protected processOptions(_url: URL, _options: InternalHttpOptions): void {\n // noop\n }\n\n protected handleError(\n _url: string | URL,\n _httpOptions: HttpOptions,\n err: Error,\n ): never {\n throw err;\n }\n\n protected resolveUrl(\n requestUrl: string | URL,\n options: HttpOptions | undefined,\n ): URL {\n let url = requestUrl;\n\n if (url instanceof URL) {\n // already a aboslute URL\n return url;\n }\n\n const baseUrl = options?.baseUrl ?? this.baseUrl;\n if (baseUrl) {\n url = resolveBaseUrl(baseUrl, url);\n }\n\n const parsedUrl = parseUrl(url);\n if (!parsedUrl || !isHttpUrl(parsedUrl)) {\n logger.error(\n { url: requestUrl, baseUrl, resolvedUrl: url },\n 'Request Error: cannot parse url',\n );\n throw new Error('Invalid URL');\n }\n return parsedUrl;\n }\n\n protected calculateRetryDelay({ computedValue }: RetryObject): number {\n return computedValue;\n }\n\n get(\n url: string,\n options: HttpOptions = {},\n ): Promise<HttpResponse<string | Buffer>> {\n return this.request(url, options);\n }\n\n head(url: string, options: HttpOptions = {}): Promise<HttpResponse<never>> {\n // to complex to validate\n return this.request(url, {\n ...options,\n responseType: 'text',\n method: 'head',\n }) as Promise<HttpResponse<never>>;\n }\n\n getText(\n url: string | URL,\n options: HttpOptions = {},\n ): Promise<HttpResponse<string>> {\n return this.request(url, { ...options, responseType: 'text' });\n }\n\n getBuffer(\n url: string | URL,\n options: HttpOptions = {},\n ): Promise<HttpResponse<Buffer>> {\n return this.request(url, { ...options, responseType: 'buffer' });\n }\n\n protected requestJsonUnsafe<ResT>(\n method: HttpMethod,\n { url, httpOptions: requestOptions }: InternalJsonUnsafeOptions<JSONOpts>,\n ): Promise<HttpResponse<ResT>> {\n const { body: json, ...httpOptions } = { ...requestOptions };\n const opts: InternalHttpOptions = {\n ...httpOptions,\n method,\n };\n // signal that we expect a json response\n opts.headers = {\n accept: 'application/json',\n ...opts.headers,\n };\n if (json) {\n opts.json = json;\n }\n return this.request<ResT>(url, { ...opts, responseType: 'json' });\n }\n\n private async requestJson<ResT, Schema extends ZodType<ResT> = ZodType<ResT>>(\n method: HttpMethod,\n options: InternalJsonOptions<JSONOpts, ResT, Schema>,\n ): Promise<HttpResponse<ResT>> {\n const res = await this.requestJsonUnsafe<ResT>(method, options);\n\n if (options.schema) {\n res.body = await options.schema.parseAsync(res.body);\n }\n\n return res;\n }\n\n private resolveArgs<ResT = unknown>(\n arg1: string,\n arg2: JSONOpts | ZodType<ResT> | undefined,\n arg3: ZodType<ResT> | undefined,\n ): InternalJsonOptions<JSONOpts, ResT> {\n const res: InternalJsonOptions<JSONOpts, ResT> = { url: arg1 };\n\n if (arg2 instanceof ZodType) {\n res.schema = arg2;\n } else if (arg2) {\n res.httpOptions = arg2;\n }\n\n if (arg3) {\n res.schema = arg3;\n }\n\n return res;\n }\n\n async getPlain(url: string, options?: Opts): Promise<HttpResponse> {\n const opt = options ?? {};\n return await this.getText(url, {\n headers: {\n Accept: 'text/plain',\n },\n ...opt,\n });\n }\n\n /**\n * @deprecated use `getYaml` instead\n */\n async getYamlUnchecked<ResT>(\n url: string,\n options?: Opts,\n ): Promise<HttpResponse<ResT>> {\n const res = await this.getText(url, options);\n const body = parseSingleYaml<ResT>(res.body);\n return { ...res, body };\n }\n\n async getYaml<Schema extends ZodType<any, any, any>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n async getYaml<Schema extends ZodType<any, any, any>>(\n url: string,\n options: Opts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n async getYaml<Schema extends ZodType<any, any, any>>(\n arg1: string,\n arg2?: Opts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<Infer<Schema>>> {\n const url = arg1;\n let schema: Schema;\n let httpOptions: Opts | undefined;\n if (arg3) {\n schema = arg3;\n httpOptions = arg2 as Opts;\n } else {\n schema = arg2 as Schema;\n }\n\n const opts: InternalHttpOptions = {\n ...httpOptions,\n method: 'get',\n };\n\n const res = await this.getText(url, opts);\n const body = await schema.parseAsync(parseSingleYaml(res.body));\n return { ...res, body };\n }\n\n getYamlSafe<\n ResT extends NonNullable<unknown>,\n Schema extends ZodType<ResT> = ZodType<ResT>,\n >(url: string, schema: Schema): AsyncResult<Infer<Schema>, SafeJsonError>;\n getYamlSafe<\n ResT extends NonNullable<unknown>,\n Schema extends ZodType<ResT> = ZodType<ResT>,\n >(\n url: string,\n options: Opts,\n schema: Schema,\n ): AsyncResult<Infer<Schema>, SafeJsonError>;\n getYamlSafe<\n ResT extends NonNullable<unknown>,\n Schema extends ZodType<ResT> = ZodType<ResT>,\n >(\n arg1: string,\n arg2: Opts | Schema,\n arg3?: Schema,\n ): AsyncResult<ResT, SafeJsonError> {\n const url = arg1;\n let schema: Schema;\n let httpOptions: Opts | undefined;\n if (arg3) {\n schema = arg3;\n httpOptions = arg2 as Opts;\n } else {\n schema = arg2 as Schema;\n }\n\n let res: AsyncResult<HttpResponse<ResT>, SafeJsonError>;\n if (httpOptions) {\n res = Result.wrap(this.getYaml(url, httpOptions, schema));\n } else {\n res = Result.wrap(this.getYaml(url, schema));\n }\n\n return res.transform((response) => Result.ok(response.body));\n }\n\n /**\n * Request JSON and return the response without any validation.\n *\n * The usage of this method is discouraged, please use `getJson` instead.\n *\n * If you're new to Zod schema validation library:\n * - consult the [documentation of Zod library](https://github.com/colinhacks/zod?tab=readme-ov-file#basic-usage)\n * - search the Renovate codebase for 'zod' module usage\n * - take a look at the `schema-utils.ts` file for Renovate-specific schemas and utilities\n */\n getJsonUnchecked<ResT = unknown>(\n url: string,\n options?: JSONOpts,\n ): Promise<HttpResponse<ResT>> {\n return this.requestJson<ResT>('get', { url, httpOptions: options });\n }\n\n /**\n * Request JSON with a Zod schema for the response,\n * throwing an error if the response is not valid.\n *\n * @param url\n * @param schema Zod schema for the response\n */\n getJson<Schema extends ZodType<any, any, any>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n getJson<Schema extends ZodType<any, any, any>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n getJson<Schema extends ZodType<any, any, any>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<Infer<Schema>>> {\n const args = this.resolveArgs<Infer<Schema>>(arg1, arg2, arg3);\n return this.requestJson<Infer<Schema>>('get', args);\n }\n\n /**\n * Request JSON with a Zod schema for the response,\n * wrapping response data in a `Result` class.\n *\n * @param url\n * @param schema Zod schema for the response\n */\n getJsonSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT>>(\n url: string,\n schema: Schema,\n ): AsyncResult<Infer<Schema>, SafeJsonError>;\n getJsonSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): AsyncResult<Infer<Schema>, SafeJsonError>;\n getJsonSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): AsyncResult<ResT, SafeJsonError> {\n const args = this.resolveArgs<ResT>(arg1, arg2, arg3);\n return Result.wrap(this.requestJson<ResT>('get', args)).transform(\n (response) => Result.ok(response.body),\n );\n }\n\n /**\n * @deprecated use `head` instead\n */\n headJson(url: string, httpOptions?: JSONOpts): Promise<HttpResponse<never>> {\n return this.requestJson<never>('head', { url, httpOptions });\n }\n\n postJson<T>(url: string, options?: JSONOpts): Promise<HttpResponse<T>>;\n postJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n postJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n postJson<T = unknown, Schema extends ZodType<T> = ZodType<T>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<T>> {\n const args = this.resolveArgs(arg1, arg2, arg3);\n return this.requestJson<T>('post', args);\n }\n\n putJson<T>(url: string, options?: JSONOpts): Promise<HttpResponse<T>>;\n putJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n putJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n putJson<T = unknown, Schema extends ZodType<T> = ZodType<T>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: ZodType,\n ): Promise<HttpResponse<T>> {\n const args = this.resolveArgs(arg1, arg2, arg3);\n return this.requestJson<T>('put', args);\n }\n\n patchJson<T>(url: string, options?: JSONOpts): Promise<HttpResponse<T>>;\n patchJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n patchJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n patchJson<T = unknown, Schema extends ZodType<T> = ZodType<T>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<T>> {\n const args = this.resolveArgs(arg1, arg2, arg3);\n return this.requestJson<T>('patch', args);\n }\n\n deleteJson<T>(url: string, options?: JSONOpts): Promise<HttpResponse<T>>;\n deleteJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n deleteJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n deleteJson<T = unknown, Schema extends ZodType<T> = ZodType<T>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<T>> {\n const args = this.resolveArgs(arg1, arg2, arg3);\n return this.requestJson<T>('delete', args);\n }\n\n stream(url: string, options?: HttpOptions): NodeJS.ReadableStream {\n let combinedOptions: Merge<\n GotStreamOptions,\n SetRequired<InternalHttpOptions, 'method'>\n > = {\n ...this.options,\n hostType: this.hostType,\n ...options,\n method: 'get',\n };\n\n const resolvedUrl = this.resolveUrl(url, options).toString();\n\n applyDefaultHeaders(combinedOptions);\n\n if (\n is.undefined(combinedOptions.readOnly) &&\n ['head', 'get'].includes(combinedOptions.method)\n ) {\n combinedOptions.readOnly = true;\n }\n\n const hostRule = findMatchingRule(url, combinedOptions);\n combinedOptions = applyHostRule(resolvedUrl, combinedOptions, hostRule);\n if (combinedOptions.enabled === false) {\n throw new Error(HOST_DISABLED);\n }\n combinedOptions = applyAuthorization(combinedOptions);\n\n return stream(resolvedUrl, combinedOptions);\n }\n\n async getToml<Schema extends ZodType<any, any, any>>(\n url: string,\n schema?: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n async getToml<Schema extends ZodType<any, any, any>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n async getToml<Schema extends ZodType<any, any, any>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<Infer<Schema>>> {\n const { url, schema, httpOptions } = this.resolveArgs<Infer<Schema>>(\n arg1,\n arg2,\n arg3,\n );\n\n const opts: InternalHttpOptions = {\n ...httpOptions,\n method: 'get',\n headers: {\n 'Content-Type': 'application/toml',\n ...httpOptions?.headers,\n },\n };\n\n const res = await this.getText(url, opts);\n if (schema) {\n res.body = await Toml.pipe(schema).parseAsync(res.body);\n } else {\n res.body = (await Toml.parseAsync(res.body)) as Infer<Schema>;\n }\n\n return res;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../lib/util/http/http.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport merge from 'deepmerge';\nimport type { Options, RetryObject } from 'got';\nimport type { Merge, SetRequired } from 'type-fest';\nimport type { infer as Infer } from 'zod';\nimport { ZodType } from 'zod';\nimport { GlobalConfig } from '../../config/global';\nimport { HOST_DISABLED } from '../../constants/error-messages';\nimport { pkg } from '../../expose.cjs';\nimport { logger } from '../../logger';\nimport { ExternalHostError } from '../../types/errors/external-host-error';\nimport * as memCache from '../cache/memory';\nimport { getEnv } from '../env';\nimport { hash } from '../hash';\nimport { type AsyncResult, Result } from '../result';\nimport { Toml } from '../schema-utils';\nimport { ObsoleteCacheHitLogger } from '../stats';\nimport { isHttpUrl, parseUrl, resolveBaseUrl } from '../url';\nimport { parseSingleYaml } from '../yaml';\nimport { applyAuthorization, removeAuthorization } from './auth';\nimport type { HttpCacheProvider } from './cache/types';\nimport { fetch, stream } from './got';\nimport { applyHostRule, findMatchingRule } from './host-rules';\n\nimport { getQueue } from './queue';\nimport { getRetryAfter, wrapWithRetry } from './retry-after';\nimport { getThrottle } from './throttle';\nimport type {\n GotOptions,\n GotStreamOptions,\n GotTask,\n HttpMethod,\n HttpOptions,\n HttpResponse,\n SafeJsonError,\n} from './types';\nimport { copyResponse } from './util';\n\nexport interface InternalJsonUnsafeOptions<\n Opts extends HttpOptions = HttpOptions,\n> {\n url: string | URL;\n httpOptions?: Opts;\n}\n\nexport interface InternalJsonOptions<\n Opts extends HttpOptions,\n ResT = unknown,\n Schema extends ZodType<ResT> = ZodType<ResT>,\n> extends InternalJsonUnsafeOptions<Opts> {\n schema?: Schema;\n}\n\nexport type InternalGotOptions = SetRequired<GotOptions, 'method' | 'context'>;\n\nexport interface InternalHttpOptions extends HttpOptions {\n json?: HttpOptions['body'];\n\n method?: HttpMethod;\n\n parseJson?: Options['parseJson'];\n}\n\nexport function applyDefaultHeaders(options: Options): void {\n const renovateVersion = pkg.version;\n options.headers = {\n ...options.headers,\n 'user-agent':\n GlobalConfig.get('userAgent') ??\n `Renovate/${renovateVersion} (https://github.com/renovatebot/renovate)`,\n };\n}\n\nexport abstract class HttpBase<\n JSONOpts extends HttpOptions = HttpOptions,\n Opts extends HttpOptions = HttpOptions,\n> {\n private readonly options: InternalGotOptions;\n\n protected get baseUrl(): string | undefined {\n return undefined;\n }\n\n constructor(\n protected hostType: string,\n options: HttpOptions = {},\n ) {\n const retryLimit = getEnv().NODE_ENV === 'test' ? 0 : 2;\n this.options = merge<InternalGotOptions>(\n options,\n {\n method: 'get',\n context: { hostType },\n retry: {\n calculateDelay: (retryObject) =>\n this.calculateRetryDelay(retryObject),\n limit: retryLimit,\n maxRetryAfter: 0, // Don't rely on `got` retry-after handling, just let it fail and then we'll handle it\n },\n },\n { isMergeableObject: is.plainObject },\n );\n }\n private async request(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions,\n ): Promise<HttpResponse<string>>;\n private async request(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions & { responseType: 'text' },\n ): Promise<HttpResponse<string>>;\n private async request(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions & { responseType: 'buffer' },\n ): Promise<HttpResponse<Buffer>>;\n private async request<T = unknown>(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions & { responseType: 'json' },\n ): Promise<HttpResponse<T>>;\n\n private async request(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions,\n ): Promise<HttpResponse<unknown>> {\n const resolvedUrl = this.resolveUrl(requestUrl, httpOptions);\n const url = resolvedUrl.toString();\n\n this.processOptions(resolvedUrl, httpOptions);\n\n let options = merge<InternalGotOptions, InternalHttpOptions>(\n {\n ...this.options,\n hostType: this.hostType,\n },\n httpOptions,\n { isMergeableObject: is.plainObject },\n );\n\n const method = options.method.toLowerCase();\n const isReadMethod = ['head', 'get'].includes(method);\n\n logger.trace(`HTTP request: ${method.toUpperCase()} ${url}`);\n\n options.hooks = {\n beforeRedirect: [removeAuthorization],\n };\n\n applyDefaultHeaders(options);\n\n if (is.undefined(options.readOnly) && isReadMethod) {\n options.readOnly = true;\n }\n\n const hostRule = findMatchingRule(url, options);\n options = applyHostRule(url, options, hostRule);\n if (options.enabled === false) {\n logger.debug(`Host is disabled - rejecting request. HostUrl: ${url}`);\n throw new Error(HOST_DISABLED);\n }\n options = applyAuthorization(options);\n options.timeout ??= 60000;\n\n let cacheProvider: HttpCacheProvider | undefined;\n if (isReadMethod && options.cacheProvider) {\n cacheProvider = options.cacheProvider;\n }\n\n const memCacheKey =\n !process.env.RENOVATE_X_DISABLE_HTTP_MEMCACHE &&\n !cacheProvider &&\n options.memCache !== false &&\n isReadMethod\n ? hash(\n `got-${JSON.stringify({\n url,\n headers: options.headers,\n method,\n })}`,\n )\n : null;\n\n const cachedResponse = await cacheProvider?.bypassServer<unknown>(\n method,\n url,\n );\n if (cachedResponse) {\n return cachedResponse;\n }\n\n let resPromise: Promise<HttpResponse<unknown>> | null = null;\n\n // Cache GET requests unless memCache=false\n if (memCacheKey) {\n resPromise = memCache.get(memCacheKey);\n\n /* v8 ignore start: temporary code */\n if (resPromise && !cacheProvider) {\n ObsoleteCacheHitLogger.write(url);\n }\n /* v8 ignore stop: temporary code */\n }\n\n if (!resPromise) {\n if (cacheProvider) {\n await cacheProvider.setCacheHeaders(method, url, options);\n }\n\n const startTime = Date.now();\n const httpTask: GotTask = () => {\n const queueMs = Date.now() - startTime;\n return fetch(url, options, { queueMs });\n };\n\n const throttle = getThrottle(url);\n const throttledTask = throttle ? () => throttle.add(httpTask) : httpTask;\n\n const queue = getQueue(url);\n const queuedTask = queue ? () => queue.add(throttledTask) : throttledTask;\n\n const { maxRetryAfter = 60 } = hostRule;\n resPromise = wrapWithRetry(queuedTask, url, getRetryAfter, maxRetryAfter);\n\n if (memCacheKey) {\n memCache.set(memCacheKey, resPromise);\n }\n }\n\n try {\n const res = await resPromise;\n const deepCopyNeeded = !!memCacheKey && res.statusCode !== 304;\n const resCopy = copyResponse(res, deepCopyNeeded);\n resCopy.authorization = !!options?.headers?.authorization;\n\n if (cacheProvider) {\n return await cacheProvider.wrapServerResponse(method, url, resCopy);\n }\n\n return resCopy;\n } catch (err) {\n const { abortOnError, abortIgnoreStatusCodes } = options;\n if (abortOnError && !abortIgnoreStatusCodes?.includes(err.statusCode)) {\n throw new ExternalHostError(err);\n }\n\n const staleResponse = await cacheProvider?.bypassServer<string | Buffer>(\n method,\n url,\n true,\n );\n if (staleResponse) {\n logger.debug(\n { err },\n `Request error: returning stale cache instead for ${url}`,\n );\n return staleResponse;\n }\n\n this.handleError(requestUrl, httpOptions, err);\n }\n }\n\n protected processOptions(_url: URL, _options: InternalHttpOptions): void {\n // noop\n }\n\n protected handleError(\n _url: string | URL,\n _httpOptions: HttpOptions,\n err: Error,\n ): never {\n throw err;\n }\n\n resolveUrl(\n requestUrl: string | URL,\n options: HttpOptions | undefined = undefined,\n ): URL {\n let url = requestUrl;\n\n if (url instanceof URL) {\n // already a aboslute URL\n return url;\n }\n\n const baseUrl = options?.baseUrl ?? this.baseUrl;\n if (baseUrl) {\n url = resolveBaseUrl(baseUrl, url);\n }\n\n const parsedUrl = parseUrl(url);\n if (!parsedUrl || !isHttpUrl(parsedUrl)) {\n logger.error(\n { url: requestUrl, baseUrl, resolvedUrl: url },\n 'Request Error: cannot parse url',\n );\n throw new Error('Invalid URL');\n }\n return parsedUrl;\n }\n\n protected calculateRetryDelay({ computedValue }: RetryObject): number {\n return computedValue;\n }\n\n get(\n url: string,\n options: HttpOptions = {},\n ): Promise<HttpResponse<string | Buffer>> {\n return this.request(url, options);\n }\n\n head(url: string, options: HttpOptions = {}): Promise<HttpResponse<never>> {\n // to complex to validate\n return this.request(url, {\n ...options,\n responseType: 'text',\n method: 'head',\n }) as Promise<HttpResponse<never>>;\n }\n\n getText(\n url: string | URL,\n options: HttpOptions = {},\n ): Promise<HttpResponse<string>> {\n return this.request(url, { ...options, responseType: 'text' });\n }\n\n getBuffer(\n url: string | URL,\n options: HttpOptions = {},\n ): Promise<HttpResponse<Buffer>> {\n return this.request(url, { ...options, responseType: 'buffer' });\n }\n\n protected requestJsonUnsafe<ResT>(\n method: HttpMethod,\n { url, httpOptions: requestOptions }: InternalJsonUnsafeOptions<JSONOpts>,\n ): Promise<HttpResponse<ResT>> {\n const { body: json, ...httpOptions } = { ...requestOptions };\n const opts: InternalHttpOptions = {\n ...httpOptions,\n method,\n };\n // signal that we expect a json response\n opts.headers = {\n accept: 'application/json',\n ...opts.headers,\n };\n if (json) {\n opts.json = json;\n }\n return this.request<ResT>(url, { ...opts, responseType: 'json' });\n }\n\n private async requestJson<ResT, Schema extends ZodType<ResT> = ZodType<ResT>>(\n method: HttpMethod,\n options: InternalJsonOptions<JSONOpts, ResT, Schema>,\n ): Promise<HttpResponse<ResT>> {\n const res = await this.requestJsonUnsafe<ResT>(method, options);\n\n if (options.schema) {\n res.body = await options.schema.parseAsync(res.body);\n }\n\n return res;\n }\n\n private resolveArgs<ResT = unknown>(\n arg1: string,\n arg2: JSONOpts | ZodType<ResT> | undefined,\n arg3: ZodType<ResT> | undefined,\n ): InternalJsonOptions<JSONOpts, ResT> {\n const res: InternalJsonOptions<JSONOpts, ResT> = { url: arg1 };\n\n if (arg2 instanceof ZodType) {\n res.schema = arg2;\n } else if (arg2) {\n res.httpOptions = arg2;\n }\n\n if (arg3) {\n res.schema = arg3;\n }\n\n return res;\n }\n\n async getPlain(url: string, options?: Opts): Promise<HttpResponse> {\n const opt = options ?? {};\n return await this.getText(url, {\n headers: {\n Accept: 'text/plain',\n },\n ...opt,\n });\n }\n\n /**\n * @deprecated use `getYaml` instead\n */\n async getYamlUnchecked<ResT>(\n url: string,\n options?: Opts,\n ): Promise<HttpResponse<ResT>> {\n const res = await this.getText(url, options);\n const body = parseSingleYaml<ResT>(res.body);\n return { ...res, body };\n }\n\n async getYaml<Schema extends ZodType<any, any, any>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n async getYaml<Schema extends ZodType<any, any, any>>(\n url: string,\n options: Opts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n async getYaml<Schema extends ZodType<any, any, any>>(\n arg1: string,\n arg2?: Opts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<Infer<Schema>>> {\n const url = arg1;\n let schema: Schema;\n let httpOptions: Opts | undefined;\n if (arg3) {\n schema = arg3;\n httpOptions = arg2 as Opts;\n } else {\n schema = arg2 as Schema;\n }\n\n const opts: InternalHttpOptions = {\n ...httpOptions,\n method: 'get',\n };\n\n const res = await this.getText(url, opts);\n const body = await schema.parseAsync(parseSingleYaml(res.body));\n return { ...res, body };\n }\n\n getYamlSafe<\n ResT extends NonNullable<unknown>,\n Schema extends ZodType<ResT> = ZodType<ResT>,\n >(url: string, schema: Schema): AsyncResult<Infer<Schema>, SafeJsonError>;\n getYamlSafe<\n ResT extends NonNullable<unknown>,\n Schema extends ZodType<ResT> = ZodType<ResT>,\n >(\n url: string,\n options: Opts,\n schema: Schema,\n ): AsyncResult<Infer<Schema>, SafeJsonError>;\n getYamlSafe<\n ResT extends NonNullable<unknown>,\n Schema extends ZodType<ResT> = ZodType<ResT>,\n >(\n arg1: string,\n arg2: Opts | Schema,\n arg3?: Schema,\n ): AsyncResult<ResT, SafeJsonError> {\n const url = arg1;\n let schema: Schema;\n let httpOptions: Opts | undefined;\n if (arg3) {\n schema = arg3;\n httpOptions = arg2 as Opts;\n } else {\n schema = arg2 as Schema;\n }\n\n let res: AsyncResult<HttpResponse<ResT>, SafeJsonError>;\n if (httpOptions) {\n res = Result.wrap(this.getYaml(url, httpOptions, schema));\n } else {\n res = Result.wrap(this.getYaml(url, schema));\n }\n\n return res.transform((response) => Result.ok(response.body));\n }\n\n /**\n * Request JSON and return the response without any validation.\n *\n * The usage of this method is discouraged, please use `getJson` instead.\n *\n * If you're new to Zod schema validation library:\n * - consult the [documentation of Zod library](https://github.com/colinhacks/zod?tab=readme-ov-file#basic-usage)\n * - search the Renovate codebase for 'zod' module usage\n * - take a look at the `schema-utils.ts` file for Renovate-specific schemas and utilities\n */\n getJsonUnchecked<ResT = unknown>(\n url: string,\n options?: JSONOpts,\n ): Promise<HttpResponse<ResT>> {\n return this.requestJson<ResT>('get', { url, httpOptions: options });\n }\n\n /**\n * Request JSON with a Zod schema for the response,\n * throwing an error if the response is not valid.\n *\n * @param url\n * @param schema Zod schema for the response\n */\n getJson<Schema extends ZodType<any, any, any>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n getJson<Schema extends ZodType<any, any, any>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n getJson<Schema extends ZodType<any, any, any>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<Infer<Schema>>> {\n const args = this.resolveArgs<Infer<Schema>>(arg1, arg2, arg3);\n return this.requestJson<Infer<Schema>>('get', args);\n }\n\n /**\n * Request JSON with a Zod schema for the response,\n * wrapping response data in a `Result` class.\n *\n * @param url\n * @param schema Zod schema for the response\n */\n getJsonSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT>>(\n url: string,\n schema: Schema,\n ): AsyncResult<Infer<Schema>, SafeJsonError>;\n getJsonSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): AsyncResult<Infer<Schema>, SafeJsonError>;\n getJsonSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): AsyncResult<ResT, SafeJsonError> {\n const args = this.resolveArgs<ResT>(arg1, arg2, arg3);\n return Result.wrap(this.requestJson<ResT>('get', args)).transform(\n (response) => Result.ok(response.body),\n );\n }\n\n /**\n * @deprecated use `head` instead\n */\n headJson(url: string, httpOptions?: JSONOpts): Promise<HttpResponse<never>> {\n return this.requestJson<never>('head', { url, httpOptions });\n }\n\n postJson<T>(url: string, options?: JSONOpts): Promise<HttpResponse<T>>;\n postJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n postJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n postJson<T = unknown, Schema extends ZodType<T> = ZodType<T>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<T>> {\n const args = this.resolveArgs(arg1, arg2, arg3);\n return this.requestJson<T>('post', args);\n }\n\n putJson<T>(url: string, options?: JSONOpts): Promise<HttpResponse<T>>;\n putJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n putJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n putJson<T = unknown, Schema extends ZodType<T> = ZodType<T>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: ZodType,\n ): Promise<HttpResponse<T>> {\n const args = this.resolveArgs(arg1, arg2, arg3);\n return this.requestJson<T>('put', args);\n }\n\n patchJson<T>(url: string, options?: JSONOpts): Promise<HttpResponse<T>>;\n patchJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n patchJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n patchJson<T = unknown, Schema extends ZodType<T> = ZodType<T>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<T>> {\n const args = this.resolveArgs(arg1, arg2, arg3);\n return this.requestJson<T>('patch', args);\n }\n\n deleteJson<T>(url: string, options?: JSONOpts): Promise<HttpResponse<T>>;\n deleteJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n deleteJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n deleteJson<T = unknown, Schema extends ZodType<T> = ZodType<T>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<T>> {\n const args = this.resolveArgs(arg1, arg2, arg3);\n return this.requestJson<T>('delete', args);\n }\n\n stream(url: string, options?: HttpOptions): NodeJS.ReadableStream {\n let combinedOptions: Merge<\n GotStreamOptions,\n SetRequired<InternalHttpOptions, 'method'>\n > = {\n ...this.options,\n hostType: this.hostType,\n ...options,\n method: 'get',\n };\n\n const resolvedUrl = this.resolveUrl(url, options).toString();\n\n applyDefaultHeaders(combinedOptions);\n\n if (\n is.undefined(combinedOptions.readOnly) &&\n ['head', 'get'].includes(combinedOptions.method)\n ) {\n combinedOptions.readOnly = true;\n }\n\n const hostRule = findMatchingRule(url, combinedOptions);\n combinedOptions = applyHostRule(resolvedUrl, combinedOptions, hostRule);\n if (combinedOptions.enabled === false) {\n throw new Error(HOST_DISABLED);\n }\n combinedOptions = applyAuthorization(combinedOptions);\n\n return stream(resolvedUrl, combinedOptions);\n }\n\n async getToml<Schema extends ZodType<any, any, any>>(\n url: string,\n schema?: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n async getToml<Schema extends ZodType<any, any, any>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n async getToml<Schema extends ZodType<any, any, any>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<Infer<Schema>>> {\n const { url, schema, httpOptions } = this.resolveArgs<Infer<Schema>>(\n arg1,\n arg2,\n arg3,\n );\n\n const opts: InternalHttpOptions = {\n ...httpOptions,\n method: 'get',\n headers: {\n 'Content-Type': 'application/toml',\n ...httpOptions?.headers,\n },\n };\n\n const res = await this.getText(url, opts);\n if (schema) {\n res.body = await Toml.pipe(schema).parseAsync(res.body);\n } else {\n res.body = (await Toml.parseAsync(res.body)) as Infer<Schema>;\n }\n\n return res;\n }\n}\n"]}
|
|
@@ -41,7 +41,7 @@ async function wrapWithRetry(task, url, getRetryAfter, maxRetryAfter) {
|
|
|
41
41
|
}
|
|
42
42
|
logger_1.logger.debug(`Retry-After: will retry ${url} after ${delaySeconds} seconds`);
|
|
43
43
|
const delay = Promise.all([
|
|
44
|
-
hostDelays.get(key),
|
|
44
|
+
hostDelays.get(key) ?? Promise.resolve(),
|
|
45
45
|
(0, promises_1.setTimeout)(1000 * delaySeconds),
|
|
46
46
|
]);
|
|
47
47
|
hostDelays.set(key, delay);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry-after.js","sourceRoot":"","sources":["../../../lib/util/http/retry-after.ts"],"names":[],"mappings":";;AAmBA,sCA+CC;AAED,sCA8CC;AAlHD,8CAA6C;AAC7C,6BAAmC;AACnC,iCAAiC;AACjC,yCAAsC;AACtC,gCAAkC;AAGlC,MAAM,UAAU,GAAG,IAAI,GAAG,EAA4B,CAAC;AAEvD,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB;;;;;;;GAOG;AACI,KAAK,UAAU,aAAa,CACjC,IAAa,EACb,GAAW,EACX,aAA8C,EAC9C,aAAqB;IAErB,MAAM,GAAG,GAAG,IAAA,cAAQ,EAAC,GAAG,CAAC,EAAE,IAAI,IAAI,GAAG,CAAC;IAEvC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,SAAS,CAAC;QACR,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1B,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEvB,OAAO,MAAM,IAAI,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;gBAC1B,MAAM,GAAG,CAAC;YACZ,CAAC;YAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC3B,eAAM,CAAC,KAAK,CACV,yCAAyC,UAAU,SAAS,GAAG,EAAE,CAClE,CAAC;gBACF,MAAM,GAAG,CAAC;YACZ,CAAC;YAED,IAAI,YAAY,GAAG,aAAa,EAAE,CAAC;gBACjC,eAAM,CAAC,KAAK,CACV,sBAAsB,YAAY,kCAAkC,aAAa,gBAAgB,GAAG,EAAE,CACvG,CAAC;gBACF,MAAM,GAAG,CAAC;YACZ,CAAC;YAED,eAAM,CAAC,KAAK,CACV,2BAA2B,GAAG,UAAU,YAAY,UAAU,CAC/D,CAAC;YAEF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;gBACxB,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"retry-after.js","sourceRoot":"","sources":["../../../lib/util/http/retry-after.ts"],"names":[],"mappings":"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","sourcesContent":["import { setTimeout } from 'timers/promises';\nimport { RequestError } from 'got';\nimport { DateTime } from 'luxon';\nimport { logger } from '../../logger';\nimport { parseUrl } from '../url';\nimport type { Task } from './types';\n\nconst hostDelays = new Map<string, Promise<unknown>>();\n\nconst maxRetries = 2;\n\n/**\n * Given a task that returns a promise, retry the task if it fails with a\n * 429 Too Many Requests or 403 Forbidden response, using the Retry-After\n * header to determine the delay.\n *\n * For response codes other than 429 or 403, or if the Retry-After header\n * is not present or invalid, the task is not retried, throwing the error.\n */\nexport async function wrapWithRetry<T>(\n task: Task<T>,\n url: string,\n getRetryAfter: (err: unknown) => number | null,\n maxRetryAfter: number,\n): Promise<T> {\n const key = parseUrl(url)?.host ?? url;\n\n let retries = 0;\n for (;;) {\n try {\n await hostDelays.get(key);\n hostDelays.delete(key);\n\n return await task();\n } catch (err) {\n const delaySeconds = getRetryAfter(err);\n if (delaySeconds === null) {\n throw err;\n }\n\n if (retries === maxRetries) {\n logger.debug(\n `Retry-After: reached maximum retries (${maxRetries}) for ${url}`,\n );\n throw err;\n }\n\n if (delaySeconds > maxRetryAfter) {\n logger.debug(\n `Retry-After: delay ${delaySeconds} seconds exceeds maxRetryAfter ${maxRetryAfter} seconds for ${url}`,\n );\n throw err;\n }\n\n logger.debug(\n `Retry-After: will retry ${url} after ${delaySeconds} seconds`,\n );\n\n const delay = Promise.all([\n hostDelays.get(key) ?? Promise.resolve(),\n setTimeout(1000 * delaySeconds),\n ]);\n hostDelays.set(key, delay);\n retries += 1;\n }\n }\n}\n\nexport function getRetryAfter(err: unknown): number | null {\n if (!(err instanceof RequestError)) {\n return null;\n }\n\n if (!err.response) {\n return null;\n }\n\n if (err.response.statusCode < 400 || err.response.statusCode >= 500) {\n logger.debug(\n { url: err.response.url },\n `Retry-After: unexpected status code ${err.response.statusCode}`,\n );\n return null;\n }\n\n const retryAfter = err.response.headers['retry-after']?.trim();\n if (!retryAfter) {\n return null;\n }\n\n const date = DateTime.fromHTTP(retryAfter);\n if (date.isValid) {\n const seconds = Math.floor(date.diffNow('seconds').seconds);\n if (seconds < 0) {\n logger.debug(\n { url: err.response.url, retryAfter },\n 'Retry-After: date in the past',\n );\n return null;\n }\n\n return seconds;\n }\n\n const seconds = parseInt(retryAfter);\n if (!Number.isNaN(seconds) && seconds >= 0) {\n return seconds;\n }\n\n logger.debug(\n { url: err.response.url, retryAfter },\n 'Retry-After: unsupported format',\n );\n return null;\n}\n"]}
|
|
@@ -33,6 +33,8 @@ function validateInterpolatedValues(input, options) {
|
|
|
33
33
|
}
|
|
34
34
|
function replaceInterpolatedValuesInString(key, value, input, options) {
|
|
35
35
|
const { name, templateRegex } = options;
|
|
36
|
+
// Reset regex lastIndex for global regexes to ensure consistent behavior
|
|
37
|
+
templateRegex.lastIndex = 0;
|
|
36
38
|
// do nothing if no interpolator template found
|
|
37
39
|
if (!templateRegex.test(value)) {
|
|
38
40
|
return value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpolator.js","sourceRoot":"","sources":["../../lib/util/interpolator.ts"],"names":[],"mappings":";;AAgBA,gEAkCC;
|
|
1
|
+
{"version":3,"file":"interpolator.js","sourceRoot":"","sources":["../../lib/util/interpolator.ts"],"names":[],"mappings":";;AAgBA,gEAkCC;AAuCD,8EAiDC;;AA1ID,kEAAkC;AAElC,gEAIqC;AACrC,sCAAmC;AACnC,qCAAsC;AAQtC,SAAgB,0BAA0B,CACxC,KAAc,EACd,OAA4B;IAE5B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAEpC,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,IAAI,YAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,gBAAgB,CAAC,IAAI,CAAC,WAAW,IAAI,UAAU,GAAG,GAAG,CAAC,CAAC;YACzD,CAAC;YACD,IAAI,CAAC,YAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,gBAAgB,CAAC,IAAI,CACnB,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,uCAAuC,OAAO,KAAK,QAAQ,IAAI,IAAI,GAAG,EAAE,CAC5F,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,gBAAgB,CAAC,IAAI,CACnB,UAAU,IAAI,oCAAoC,OAAO,KAAK,EAAE,CACjE,CAAC;IACJ,CAAC;IAED,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC5B,eAAM,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,EAAE,WAAW,IAAI,cAAc,CAAC,CAAC;QAClE,MAAM,IAAI,KAAK,CACb,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,uCAAsB,CAAC,CAAC,CAAC,yCAAwB,CACvE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,iCAAiC,CACxC,GAAW,EACX,KAAa,EACb,KAA6B,EAC7B,OAA4B;IAE5B,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IACxC,yEAAyE;IACzE,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC;IAE5B,+CAA+C;IAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC3E,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,kCAAiB,CAAC,CAAC;QAC3C,KAAK,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QAClC,KAAK,CAAC,eAAe,GAAG,cAAc,IAAI,eAAe,CAAC;QAC1D,KAAK,CAAC,iBAAiB,GAAG,eAAe,GAAG,kBAAkB,IAAI,eAAe,CAAC;QAClF,MAAM,KAAK,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QAC7C,IAAI,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,kCAAiB,CAAC,CAAC;QAC3C,KAAK,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QAClC,KAAK,CAAC,eAAe,GAAG,WAAW,IAAI,OAAO,CAAC;QAC/C,KAAK,CAAC,iBAAiB,GAAG,iBAAiB,IAAI,kCAAkC,MAAM,CACrF,GAAG,CACJ,EAAE,CAAC;QACJ,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,iCAAiC,CAC/C,OAAuB,EACvB,KAA6B,EAC7B,OAA4B,EAC5B,YAAY,GAAG,IAAI;IAEnB,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACzB,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,YAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,GAAG,iCAAiC,CAC7C,KAAK,EACL,KAAK,EACL,OAAO,EACP,YAAY,CACb,CAAC;QACJ,CAAC;QACD,IAAI,YAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,CAAC,GAAG,iCAAiC,CAC7C,GAAG,EACH,KAAK,EACL,KAAK,EACL,OAAO,CACR,CAAC;QACJ,CAAC;QACD,IAAI,YAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,KAAK,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBACtD,IAAI,YAAE,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC9B,KAAK,CAAC,UAAU,CAAC,GAAG,iCAAiC,CACnD,SAAS,EACT,KAAK,EACL,OAAO,EACP,YAAY,CACb,CAAC;gBACJ,CAAC;qBAAM,IAAI,YAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;oBAChC,KAAK,CAAC,UAAU,CAAC,GAAG,iCAAiC,CACnD,GAAG,EACH,SAAS,EACT,KAAK,EACL,OAAO,CACR,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport type { RenovateConfig } from '../config/types';\nimport {\n CONFIG_SECRETS_INVALID,\n CONFIG_VALIDATION,\n CONFIG_VARIABLES_INVALID,\n} from '../constants/error-messages';\nimport { logger } from '../logger';\nimport { capitalize } from './string';\n\nexport interface InterpolatorOptions {\n name: 'secrets' | 'variables';\n templateRegex: RegExp;\n nameRegex: RegExp;\n}\n\nexport function validateInterpolatedValues(\n input: unknown,\n options: InterpolatorOptions,\n): void {\n if (!input) {\n return;\n }\n\n const { name, nameRegex } = options;\n\n const validationErrors: string[] = [];\n if (is.plainObject(input)) {\n for (const [key, value] of Object.entries(input)) {\n if (!nameRegex.test(key)) {\n validationErrors.push(`Invalid ${name} name \"${key}\"`);\n }\n if (!is.string(value)) {\n validationErrors.push(\n `${capitalize(name)} values must be strings. Found type ${typeof value} for ${name} ${key}`,\n );\n }\n }\n } else {\n validationErrors.push(\n `Config ${name}s must be a plain object. Found: ${typeof input}`,\n );\n }\n\n if (validationErrors.length) {\n logger.error({ validationErrors }, `Invalid ${name}s configured`);\n throw new Error(\n name === 'secrets' ? CONFIG_SECRETS_INVALID : CONFIG_VARIABLES_INVALID,\n );\n }\n}\n\nfunction replaceInterpolatedValuesInString(\n key: string,\n value: string,\n input: Record<string, string>,\n options: InterpolatorOptions,\n): string {\n const { name, templateRegex } = options;\n // Reset regex lastIndex for global regexes to ensure consistent behavior\n templateRegex.lastIndex = 0;\n\n // do nothing if no interpolator template found\n if (!templateRegex.test(value)) {\n return value;\n }\n\n const disallowedPrefixes = ['branch', 'commit', 'group', 'pr', 'semantic'];\n if (disallowedPrefixes.some((prefix) => key.startsWith(prefix))) {\n const error = new Error(CONFIG_VALIDATION);\n error.validationSource = 'config';\n error.validationError = `Disallowed ${name} substitution`;\n error.validationMessage = `The field \\`${key}\\` may not use ${name} substitution`;\n throw error;\n }\n return value.replace(templateRegex, (_, key) => {\n if (input?.[key]) {\n return input[key];\n }\n const error = new Error(CONFIG_VALIDATION);\n error.validationSource = 'config';\n error.validationError = `Unknown ${name} name`;\n error.validationMessage = `The following ${name} name was not found in config: ${String(\n key,\n )}`;\n throw error;\n });\n}\n\nexport function replaceInterpolatedValuesInObject(\n config_: RenovateConfig,\n input: Record<string, string>,\n options: InterpolatorOptions,\n deleteValues = true,\n): RenovateConfig {\n const config = { ...config_ };\n const { name } = options;\n if (deleteValues) {\n delete config[name];\n }\n for (const [key, value] of Object.entries(config)) {\n if (is.plainObject(value)) {\n config[key] = replaceInterpolatedValuesInObject(\n value,\n input,\n options,\n deleteValues,\n );\n }\n if (is.string(value)) {\n config[key] = replaceInterpolatedValuesInString(\n key,\n value,\n input,\n options,\n );\n }\n if (is.array(value)) {\n for (const [arrayIndex, arrayItem] of value.entries()) {\n if (is.plainObject(arrayItem)) {\n value[arrayIndex] = replaceInterpolatedValuesInObject(\n arrayItem,\n input,\n options,\n deleteValues,\n );\n } else if (is.string(arrayItem)) {\n value[arrayIndex] = replaceInterpolatedValuesInString(\n key,\n arrayItem,\n input,\n options,\n );\n }\n }\n }\n }\n return config;\n}\n"]}
|
package/dist/util/markdown.js
CHANGED
|
@@ -4,6 +4,7 @@ exports.sanitizeMarkdown = sanitizeMarkdown;
|
|
|
4
4
|
exports.linkify = linkify;
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
const remark_1 = require("remark");
|
|
7
|
+
const remark_gfm_1 = tslib_1.__importDefault(require("remark-gfm"));
|
|
7
8
|
const remark_github_1 = tslib_1.__importDefault(require("remark-github"));
|
|
8
9
|
const regex_1 = require("./regex");
|
|
9
10
|
// Generic replacements/link-breakers
|
|
@@ -35,10 +36,9 @@ async function linkify(content, options) {
|
|
|
35
36
|
// https://github.com/syntax-tree/mdast-util-to-markdown#optionsbullet
|
|
36
37
|
const output = await (0, remark_1.remark)()
|
|
37
38
|
.use({ settings: { bullet: '-' } })
|
|
39
|
+
.use(remark_gfm_1.default)
|
|
38
40
|
.use(remark_github_1.default, { mentionStrong: false, ...options })
|
|
39
41
|
.process(content);
|
|
40
|
-
return output
|
|
41
|
-
.toString()
|
|
42
|
-
.replace((0, regex_1.regEx)(/-\/merge\\_requests\/(\d+)/g), '-/merge_requests/$1');
|
|
42
|
+
return output.toString();
|
|
43
43
|
}
|
|
44
44
|
//# sourceMappingURL=markdown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../lib/util/markdown.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../lib/util/markdown.ts"],"names":[],"mappings":";;AAOA,4CAoBC;AAQD,0BAWC;;AA9CD,mCAAgC;AAChC,oEAA6B;AAE7B,0EAAmC;AACnC,mCAAgC;AAEhC,qCAAqC;AACrC,SAAgB,gBAAgB,CAAC,QAAgB;IAC/C,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,2DAA2D;IAC3D,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,aAAa,CAAC,EAAE,cAAc,CAAC,CAAC;IACxD,iFAAiF;IACjF,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;IAC3C,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,CAAC;IAClD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC,CAAC;IACpD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,sBAAsB,CAAC,EAAE,YAAY,CAAC,CAAC;IAC/D,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,qCAAqC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC1E,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,wBAAwB,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACrE,sCAAsC;IACtC,MAAM,UAAU,GAAG,IAAA,aAAK,EAAC,uBAAuB,CAAC,CAAC;IAClD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACtC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC,CAAC;IACtD,GAAG,GAAG,GAAG,CAAC,OAAO,CACf,IAAA,aAAK,EAAC,kCAAkC,CAAC,EACzC,qBAAqB,CACtB,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,OAAO,CAC3B,OAAe,EACf,OAA4B;IAE5B,sEAAsE;IACtE,MAAM,MAAM,GAAG,MAAM,IAAA,eAAM,GAAE;SAC1B,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;SAClC,GAAG,CAAC,oBAAG,CAAC;SACR,GAAG,CAAC,uBAAM,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;SACjD,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC","sourcesContent":["import { remark } from 'remark';\nimport gfm from 'remark-gfm';\nimport type { Options as RemarkGithubOptions } from 'remark-github';\nimport github from 'remark-github';\nimport { regEx } from './regex';\n\n// Generic replacements/link-breakers\nexport function sanitizeMarkdown(markdown: string): string {\n let res = markdown;\n // Put a zero width space after every # followed by a digit\n res = res.replace(regEx(/(\\W)#(\\d)/gi), '$1#​$2');\n // Put a zero width space after every @ symbol to prevent unintended hyperlinking\n res = res.replace(regEx(/@/g), '@​');\n res = res.replace(regEx(/(`\\[?@)​/g), '$1');\n res = res.replace(regEx(/([a-z]@)​/gi), '$1');\n res = res.replace(regEx(/\\/compare\\/@​/g), '/compare/@');\n res = res.replace(regEx(/(\\(https:\\/\\/[^)]*?)\\.\\.\\.@​/g), '$1...@');\n res = res.replace(regEx(/([\\s(])#(\\d+)([)\\s]?)/g), '$1#​$2$3');\n // convert escaped backticks back to `\n const backTickRe = regEx(/`([^/]*?)`/g);\n res = res.replace(backTickRe, '`$1`');\n res = res.replace(regEx(/`#​(\\d+)`/g), '`#$1`');\n res = res.replace(\n regEx(/(?<before>[^\\n]\\n)(?<title>#.*)/g),\n '$<before>\\n$<title>',\n );\n return res;\n}\n\n/**\n *\n * @param content content to process\n * @param options github options\n * @returns linkified content\n */\nexport async function linkify(\n content: string,\n options: RemarkGithubOptions,\n): Promise<string> {\n // https://github.com/syntax-tree/mdast-util-to-markdown#optionsbullet\n const output = await remark()\n .use({ settings: { bullet: '-' } })\n .use(gfm)\n .use(github, { mentionStrong: false, ...options })\n .process(content);\n return output.toString();\n}\n"]}
|
|
@@ -115,7 +115,9 @@ async function queryApi(datasource, packageName, currentVersion, newVersion) {
|
|
|
115
115
|
if (is_1.default.nullOrUndefined(apiBaseUrl) || is_1.default.nullOrUndefined(token)) {
|
|
116
116
|
return 'neutral';
|
|
117
117
|
}
|
|
118
|
-
const escapedPackageName = packageName
|
|
118
|
+
const escapedPackageName = packageName
|
|
119
|
+
.replace((0, regex_1.regEx)(/\//g), '%2f')
|
|
120
|
+
.replace((0, regex_1.regEx)(/:/g), '%3A');
|
|
119
121
|
const url = (0, url_1.joinUrlParts)(apiBaseUrl, 'api/mc/json', datasource, escapedPackageName, currentVersion, newVersion);
|
|
120
122
|
const cacheKey = `${token}:${url}`;
|
|
121
123
|
const cachedResult = await packageCache.get(hostType, cacheKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/util/merge-confidence/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { supportedDatasources as presetSupportedDatasources } from '../../config/presets/internal/merge-confidence';\nimport type { AllConfig, UpdateType } from '../../config/types';\nimport { logger } from '../../logger';\nimport { ExternalHostError } from '../../types/errors/external-host-error';\nimport * as packageCache from '../cache/package';\nimport * as hostRules from '../host-rules';\nimport { Http } from '../http';\nimport { memCacheProvider } from '../http/cache/memory-http-cache-provider';\nimport { regEx } from '../regex';\nimport { ensureTrailingSlash, joinUrlParts } from '../url';\nimport { MERGE_CONFIDENCE } from './common';\nimport type { MergeConfidence } from './types';\n\nconst hostType = 'merge-confidence';\nconst http = new Http(hostType);\nlet token: string | undefined;\nlet apiBaseUrl: string | undefined;\nlet supportedDatasources: string[] = [];\n\nexport const confidenceLevels: Record<MergeConfidence, number> = {\n low: -1,\n neutral: 0,\n high: 1,\n 'very high': 2,\n};\n\nexport function initConfig({\n mergeConfidenceEndpoint,\n mergeConfidenceDatasources,\n}: AllConfig): void {\n apiBaseUrl = getApiBaseUrl(mergeConfidenceEndpoint);\n token = getApiToken();\n\n supportedDatasources =\n mergeConfidenceDatasources ?? presetSupportedDatasources;\n\n if (!is.nullOrUndefined(token)) {\n logger.debug(`Merge confidence token found for ${apiBaseUrl}`);\n }\n}\n\nexport function resetConfig(): void {\n token = undefined;\n apiBaseUrl = undefined;\n supportedDatasources = [];\n}\n\nexport function isMergeConfidence(value: string): value is MergeConfidence {\n return MERGE_CONFIDENCE.includes(value as MergeConfidence);\n}\n\nexport function isActiveConfidenceLevel(confidence: string): boolean {\n return isMergeConfidence(confidence) && confidence !== 'low';\n}\n\nexport function satisfiesConfidenceLevel(\n confidence: MergeConfidence,\n minimumConfidence: MergeConfidence,\n): boolean {\n return confidenceLevels[confidence] >= confidenceLevels[minimumConfidence];\n}\n\nconst updateTypeConfidenceMapping: Record<UpdateType, MergeConfidence | null> =\n {\n pin: 'high',\n digest: 'neutral',\n pinDigest: 'high',\n bump: 'neutral',\n lockFileMaintenance: 'neutral',\n lockfileUpdate: 'neutral',\n rollback: 'neutral',\n replacement: 'neutral',\n major: null,\n minor: null,\n patch: null,\n };\n\n/**\n * Retrieves the merge confidence of a package update if the merge confidence API is enabled. Otherwise, undefined is returned.\n *\n * @param datasource\n * @param packageName\n * @param currentVersion\n * @param newVersion\n * @param updateType\n *\n * @returns The merge confidence level for the given package release.\n * @throws {ExternalHostError} If a request has been made and an error occurs during the request, such as a timeout, connection reset, authentication failure, or internal server error.\n */\nexport async function getMergeConfidenceLevel(\n datasource: string,\n packageName: string,\n currentVersion: string,\n newVersion: string,\n updateType: UpdateType,\n): Promise<MergeConfidence | undefined> {\n if (is.nullOrUndefined(apiBaseUrl) || is.nullOrUndefined(token)) {\n return undefined;\n }\n\n if (!supportedDatasources.includes(datasource)) {\n return undefined;\n }\n\n if (!(currentVersion && newVersion && updateType)) {\n return 'neutral';\n }\n\n const mappedConfidence = updateTypeConfidenceMapping[updateType];\n if (mappedConfidence) {\n return mappedConfidence;\n }\n\n return await queryApi(datasource, packageName, currentVersion, newVersion);\n}\n\n/**\n * Queries the Merge Confidence API with the given package release information.\n *\n * @param datasource\n * @param packageName\n * @param currentVersion\n * @param newVersion\n *\n * @returns The merge confidence level for the given package release.\n * @throws {ExternalHostError} if a timeout or connection reset error, authentication failure, or internal server error occurs during the request.\n *\n * @remarks\n * Results are cached for 60 minutes to reduce the number of API calls.\n */\nasync function queryApi(\n datasource: string,\n packageName: string,\n currentVersion: string,\n newVersion: string,\n): Promise<MergeConfidence> {\n // istanbul ignore if: defensive, already been validated before calling this function\n if (is.nullOrUndefined(apiBaseUrl) || is.nullOrUndefined(token)) {\n return 'neutral';\n }\n\n const escapedPackageName = packageName.replace(regEx(/\\//g), '%2f');\n const url = joinUrlParts(\n apiBaseUrl,\n 'api/mc/json',\n datasource,\n escapedPackageName,\n currentVersion,\n newVersion,\n );\n const cacheKey = `${token}:${url}`;\n const cachedResult = await packageCache.get(hostType, cacheKey);\n\n // istanbul ignore if\n if (cachedResult) {\n logger.debug(\n {\n datasource,\n packageName,\n currentVersion,\n newVersion,\n cachedResult,\n },\n 'using merge confidence cached result',\n );\n return cachedResult;\n }\n\n let confidence: MergeConfidence = 'neutral';\n try {\n const res = (\n await http.getJsonUnchecked<{ confidence: MergeConfidence }>(url, {\n cacheProvider: memCacheProvider,\n })\n ).body;\n if (isMergeConfidence(res.confidence)) {\n confidence = res.confidence;\n }\n } catch (err) {\n apiErrorHandler(err);\n }\n\n await packageCache.set(hostType, cacheKey, confidence, 60);\n return confidence;\n}\n\n/**\n * Checks the health of the Merge Confidence API by attempting to authenticate with it.\n *\n * @returns Resolves when the API health check is completed successfully.\n *\n * @throws {ExternalHostError} if a timeout, connection reset error, authentication failure, or internal server error occurs during the request.\n *\n * @remarks\n * This function first checks that the API base URL and an authentication bearer token are defined before attempting to\n * authenticate with the API. If either the base URL or token is not defined, it will immediately return\n * without making a request.\n */\nexport async function initMergeConfidence(config: AllConfig): Promise<void> {\n initConfig(config);\n\n if (is.nullOrUndefined(apiBaseUrl) || is.nullOrUndefined(token)) {\n logger.trace('merge confidence API usage is disabled');\n return;\n }\n\n const url = joinUrlParts(apiBaseUrl, 'api/mc/availability');\n try {\n await http.get(url);\n } catch (err) {\n apiErrorHandler(err);\n }\n\n logger.debug(\n { supportedDatasources },\n 'merge confidence API - successfully authenticated',\n );\n return;\n}\n\nfunction getApiBaseUrl(mergeConfidenceEndpoint: string | undefined): string {\n const defaultBaseUrl = 'https://developer.mend.io/';\n const baseFromEnv = mergeConfidenceEndpoint ?? defaultBaseUrl;\n\n try {\n const parsedBaseUrl = new URL(baseFromEnv).toString();\n logger.trace(\n { baseUrl: parsedBaseUrl },\n 'using merge confidence API base found in environment variables',\n );\n return ensureTrailingSlash(parsedBaseUrl);\n } catch (err) {\n logger.warn(\n { err, baseFromEnv },\n 'invalid merge confidence API base URL found in environment variables - using default value instead',\n );\n return defaultBaseUrl;\n }\n}\n\nexport function getApiToken(): string | undefined {\n return hostRules.find({\n url: apiBaseUrl,\n hostType,\n })?.token;\n}\n\n/**\n * Handles errors returned by the Merge Confidence API.\n *\n * @param err - The error object returned by the API.\n * @throws {ExternalHostError} if a timeout or connection reset error, authentication failure, or internal server error occurs during the request.\n */\nfunction apiErrorHandler(err: any): void {\n if (err.code === 'ETIMEDOUT' || err.code === 'ECONNRESET') {\n logger.error({ err }, 'merge confidence API request failed - aborting run');\n throw new ExternalHostError(err, hostType);\n }\n\n if (err.statusCode === 403) {\n logger.error({ err }, 'merge confidence API token rejected - aborting run');\n throw new ExternalHostError(err, hostType);\n }\n\n if (err.statusCode >= 500 && err.statusCode < 600) {\n logger.error({ err }, 'merge confidence API failure: 5xx - aborting run');\n throw new ExternalHostError(err, hostType);\n }\n\n logger.warn({ err }, 'error fetching merge confidence data');\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/util/merge-confidence/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { supportedDatasources as presetSupportedDatasources } from '../../config/presets/internal/merge-confidence';\nimport type { AllConfig, UpdateType } from '../../config/types';\nimport { logger } from '../../logger';\nimport { ExternalHostError } from '../../types/errors/external-host-error';\nimport * as packageCache from '../cache/package';\nimport * as hostRules from '../host-rules';\nimport { Http } from '../http';\nimport { memCacheProvider } from '../http/cache/memory-http-cache-provider';\nimport { regEx } from '../regex';\nimport { ensureTrailingSlash, joinUrlParts } from '../url';\nimport { MERGE_CONFIDENCE } from './common';\nimport type { MergeConfidence } from './types';\n\nconst hostType = 'merge-confidence';\nconst http = new Http(hostType);\nlet token: string | undefined;\nlet apiBaseUrl: string | undefined;\nlet supportedDatasources: string[] = [];\n\nexport const confidenceLevels: Record<MergeConfidence, number> = {\n low: -1,\n neutral: 0,\n high: 1,\n 'very high': 2,\n};\n\nexport function initConfig({\n mergeConfidenceEndpoint,\n mergeConfidenceDatasources,\n}: AllConfig): void {\n apiBaseUrl = getApiBaseUrl(mergeConfidenceEndpoint);\n token = getApiToken();\n\n supportedDatasources =\n mergeConfidenceDatasources ?? presetSupportedDatasources;\n\n if (!is.nullOrUndefined(token)) {\n logger.debug(`Merge confidence token found for ${apiBaseUrl}`);\n }\n}\n\nexport function resetConfig(): void {\n token = undefined;\n apiBaseUrl = undefined;\n supportedDatasources = [];\n}\n\nexport function isMergeConfidence(value: string): value is MergeConfidence {\n return MERGE_CONFIDENCE.includes(value as MergeConfidence);\n}\n\nexport function isActiveConfidenceLevel(confidence: string): boolean {\n return isMergeConfidence(confidence) && confidence !== 'low';\n}\n\nexport function satisfiesConfidenceLevel(\n confidence: MergeConfidence,\n minimumConfidence: MergeConfidence,\n): boolean {\n return confidenceLevels[confidence] >= confidenceLevels[minimumConfidence];\n}\n\nconst updateTypeConfidenceMapping: Record<UpdateType, MergeConfidence | null> =\n {\n pin: 'high',\n digest: 'neutral',\n pinDigest: 'high',\n bump: 'neutral',\n lockFileMaintenance: 'neutral',\n lockfileUpdate: 'neutral',\n rollback: 'neutral',\n replacement: 'neutral',\n major: null,\n minor: null,\n patch: null,\n };\n\n/**\n * Retrieves the merge confidence of a package update if the merge confidence API is enabled. Otherwise, undefined is returned.\n *\n * @param datasource\n * @param packageName\n * @param currentVersion\n * @param newVersion\n * @param updateType\n *\n * @returns The merge confidence level for the given package release.\n * @throws {ExternalHostError} If a request has been made and an error occurs during the request, such as a timeout, connection reset, authentication failure, or internal server error.\n */\nexport async function getMergeConfidenceLevel(\n datasource: string,\n packageName: string,\n currentVersion: string,\n newVersion: string,\n updateType: UpdateType,\n): Promise<MergeConfidence | undefined> {\n if (is.nullOrUndefined(apiBaseUrl) || is.nullOrUndefined(token)) {\n return undefined;\n }\n\n if (!supportedDatasources.includes(datasource)) {\n return undefined;\n }\n\n if (!(currentVersion && newVersion && updateType)) {\n return 'neutral';\n }\n\n const mappedConfidence = updateTypeConfidenceMapping[updateType];\n if (mappedConfidence) {\n return mappedConfidence;\n }\n\n return await queryApi(datasource, packageName, currentVersion, newVersion);\n}\n\n/**\n * Queries the Merge Confidence API with the given package release information.\n *\n * @param datasource\n * @param packageName\n * @param currentVersion\n * @param newVersion\n *\n * @returns The merge confidence level for the given package release.\n * @throws {ExternalHostError} if a timeout or connection reset error, authentication failure, or internal server error occurs during the request.\n *\n * @remarks\n * Results are cached for 60 minutes to reduce the number of API calls.\n */\nasync function queryApi(\n datasource: string,\n packageName: string,\n currentVersion: string,\n newVersion: string,\n): Promise<MergeConfidence> {\n // istanbul ignore if: defensive, already been validated before calling this function\n if (is.nullOrUndefined(apiBaseUrl) || is.nullOrUndefined(token)) {\n return 'neutral';\n }\n\n const escapedPackageName = packageName\n .replace(regEx(/\\//g), '%2f')\n .replace(regEx(/:/g), '%3A');\n const url = joinUrlParts(\n apiBaseUrl,\n 'api/mc/json',\n datasource,\n escapedPackageName,\n currentVersion,\n newVersion,\n );\n const cacheKey = `${token}:${url}`;\n const cachedResult = await packageCache.get(hostType, cacheKey);\n\n // istanbul ignore if\n if (cachedResult) {\n logger.debug(\n {\n datasource,\n packageName,\n currentVersion,\n newVersion,\n cachedResult,\n },\n 'using merge confidence cached result',\n );\n return cachedResult;\n }\n\n let confidence: MergeConfidence = 'neutral';\n try {\n const res = (\n await http.getJsonUnchecked<{ confidence: MergeConfidence }>(url, {\n cacheProvider: memCacheProvider,\n })\n ).body;\n if (isMergeConfidence(res.confidence)) {\n confidence = res.confidence;\n }\n } catch (err) {\n apiErrorHandler(err);\n }\n\n await packageCache.set(hostType, cacheKey, confidence, 60);\n return confidence;\n}\n\n/**\n * Checks the health of the Merge Confidence API by attempting to authenticate with it.\n *\n * @returns Resolves when the API health check is completed successfully.\n *\n * @throws {ExternalHostError} if a timeout, connection reset error, authentication failure, or internal server error occurs during the request.\n *\n * @remarks\n * This function first checks that the API base URL and an authentication bearer token are defined before attempting to\n * authenticate with the API. If either the base URL or token is not defined, it will immediately return\n * without making a request.\n */\nexport async function initMergeConfidence(config: AllConfig): Promise<void> {\n initConfig(config);\n\n if (is.nullOrUndefined(apiBaseUrl) || is.nullOrUndefined(token)) {\n logger.trace('merge confidence API usage is disabled');\n return;\n }\n\n const url = joinUrlParts(apiBaseUrl, 'api/mc/availability');\n try {\n await http.get(url);\n } catch (err) {\n apiErrorHandler(err);\n }\n\n logger.debug(\n { supportedDatasources },\n 'merge confidence API - successfully authenticated',\n );\n return;\n}\n\nfunction getApiBaseUrl(mergeConfidenceEndpoint: string | undefined): string {\n const defaultBaseUrl = 'https://developer.mend.io/';\n const baseFromEnv = mergeConfidenceEndpoint ?? defaultBaseUrl;\n\n try {\n const parsedBaseUrl = new URL(baseFromEnv).toString();\n logger.trace(\n { baseUrl: parsedBaseUrl },\n 'using merge confidence API base found in environment variables',\n );\n return ensureTrailingSlash(parsedBaseUrl);\n } catch (err) {\n logger.warn(\n { err, baseFromEnv },\n 'invalid merge confidence API base URL found in environment variables - using default value instead',\n );\n return defaultBaseUrl;\n }\n}\n\nexport function getApiToken(): string | undefined {\n return hostRules.find({\n url: apiBaseUrl,\n hostType,\n })?.token;\n}\n\n/**\n * Handles errors returned by the Merge Confidence API.\n *\n * @param err - The error object returned by the API.\n * @throws {ExternalHostError} if a timeout or connection reset error, authentication failure, or internal server error occurs during the request.\n */\nfunction apiErrorHandler(err: any): void {\n if (err.code === 'ETIMEDOUT' || err.code === 'ECONNRESET') {\n logger.error({ err }, 'merge confidence API request failed - aborting run');\n throw new ExternalHostError(err, hostType);\n }\n\n if (err.statusCode === 403) {\n logger.error({ err }, 'merge confidence API token rejected - aborting run');\n throw new ExternalHostError(err, hostType);\n }\n\n if (err.statusCode >= 500 && err.statusCode < 600) {\n logger.error({ err }, 'merge confidence API failure: 5xx - aborting run');\n throw new ExternalHostError(err, hostType);\n }\n\n logger.warn({ err }, 'error fetching merge confidence data');\n}\n"]}
|
|
@@ -38,14 +38,15 @@ export declare function LooseRecord<ValueSchema extends z.ZodTypeAny>(Value: Val
|
|
|
38
38
|
export declare function LooseRecord<KeySchema extends z.ZodTypeAny, ValueSchema extends z.ZodTypeAny>(Key: KeySchema, Value: ValueSchema): LooseRecordResult<KeySchema, ValueSchema>;
|
|
39
39
|
export declare function LooseRecord<ValueSchema extends z.ZodTypeAny>(Value: ValueSchema, { onError }: LooseRecordOpts<z.ZodString, ValueSchema>): LooseRecordResult<z.ZodString, ValueSchema>;
|
|
40
40
|
export declare function LooseRecord<KeySchema extends z.ZodTypeAny, ValueSchema extends z.ZodTypeAny>(Key: KeySchema, Value: ValueSchema, { onError }: LooseRecordOpts<KeySchema, ValueSchema>): LooseRecordResult<KeySchema, ValueSchema>;
|
|
41
|
-
export declare const Json: ZodEffects<ZodString, string | number | boolean | import("type-fest").JsonObject | JsonValue[] | readonly JsonValue[] | null, string>;
|
|
42
|
-
export declare const Json5: ZodEffects<ZodString, string | number | boolean | import("type-fest").JsonObject | JsonValue[] | readonly JsonValue[] | null, string>;
|
|
43
|
-
export declare const Jsonc: ZodEffects<ZodString, string | number | boolean | import("type-fest").JsonObject | JsonValue[] | readonly JsonValue[] | null, string>;
|
|
41
|
+
export declare const Json: ZodEffects<ZodString, string | number | boolean | import("type-fest", { with: { "resolution-mode": "import" } }).JsonObject | JsonValue[] | readonly JsonValue[] | null, string>;
|
|
42
|
+
export declare const Json5: ZodEffects<ZodString, string | number | boolean | import("type-fest", { with: { "resolution-mode": "import" } }).JsonObject | JsonValue[] | readonly JsonValue[] | null, string>;
|
|
43
|
+
export declare const Jsonc: ZodEffects<ZodString, string | number | boolean | import("type-fest", { with: { "resolution-mode": "import" } }).JsonObject | JsonValue[] | readonly JsonValue[] | null, string>;
|
|
44
44
|
export declare const UtcDate: ZodEffects<ZodString, DateTime<boolean>, string>;
|
|
45
|
-
export declare const Yaml: ZodEffects<ZodString, string | number | boolean | import("type-fest").JsonObject | JsonValue[] | readonly JsonValue[] | null, string>;
|
|
45
|
+
export declare const Yaml: ZodEffects<ZodString, string | number | boolean | import("type-fest", { with: { "resolution-mode": "import" } }).JsonObject | JsonValue[] | readonly JsonValue[] | null, string>;
|
|
46
46
|
export declare const MultidocYaml: ZodEffects<ZodString, JsonValue[] | readonly JsonValue[], string>;
|
|
47
47
|
export declare function multidocYaml(opts?: Omit<YamlOptions, 'customSchema'>): ZodEffects<ZodString, JsonArray, string>;
|
|
48
48
|
export declare const Toml: ZodEffects<ZodString, unknown, string>;
|
|
49
|
+
export declare const Ini: ZodEffects<ZodString, Record<string, unknown>, string>;
|
|
49
50
|
export declare function withDepType<Output extends PackageDependency[], Schema extends ZodType<Output, ZodTypeDef, unknown>>(schema: Schema, depType: string, force?: boolean): ZodEffects<Schema>;
|
|
50
51
|
export declare function withDebugMessage<Input, Output>(value: Output, msg: string): (ctx: {
|
|
51
52
|
error: z.ZodError;
|
|
@@ -56,4 +57,7 @@ export declare function withTraceMessage<Input, Output>(value: Output, msg: stri
|
|
|
56
57
|
input: Input;
|
|
57
58
|
}) => Output;
|
|
58
59
|
export declare const NotCircular: ZodEffects<z.ZodUnknown, unknown, unknown>;
|
|
60
|
+
export declare const EmailAddress: ZodString;
|
|
61
|
+
export type EmailAddress = z.infer<typeof EmailAddress>;
|
|
62
|
+
export declare function isEmailAdress(value: string): boolean;
|
|
59
63
|
export {};
|