renovate 43.256.0 → 43.256.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/decrypt.js +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/migrations/custom/package-rules-migration.js +1 -1
- package/dist/config/migrations/index.js +2 -2
- package/dist/config/options/index.js +1 -1
- package/dist/config/options/index.js.map +1 -1
- package/dist/config/presets/index.js +1 -1
- package/dist/config/presets/internal/index.js +1 -1
- package/dist/config/presets/local/common.js +1 -1
- package/dist/config/secrets.js +1 -1
- package/dist/constants/category.d.ts +1 -1
- package/dist/constants/platforms.d.ts +1 -1
- package/dist/global-config-option-defaults.generated.js +1 -1
- package/dist/global-config-option-defaults.generated.js.map +1 -1
- package/dist/instrumentation/index.js +1 -1
- package/dist/logger/bunyan.js +1 -1
- package/dist/logger/index.js +2 -1
- package/dist/logger/index.js.map +1 -1
- package/dist/logger/pretty-stdout.js +1 -1
- package/dist/logger/problem-stream.js +1 -1
- package/dist/logger/utils.js +1 -1
- package/dist/manager-list.generated.d.ts +1 -1
- package/dist/modules/datasource/azure-pipelines-tasks/schema.js +1 -1
- package/dist/modules/datasource/bitrise/index.js +1 -1
- package/dist/modules/datasource/cdnjs/schema.js +1 -1
- package/dist/modules/datasource/conda/schema/prefix-dev.js +1 -1
- package/dist/modules/datasource/conda/schema.js +1 -1
- package/dist/modules/datasource/crate/schema.js +1 -1
- package/dist/modules/datasource/custom/utils.js +1 -1
- package/dist/modules/datasource/dart-version/index.js +1 -1
- package/dist/modules/datasource/deb/packages.js +1 -1
- package/dist/modules/datasource/deno/schema.js +1 -1
- package/dist/modules/datasource/devbox/schema.js +1 -1
- package/dist/modules/datasource/docker/common.js +1 -1
- package/dist/modules/datasource/docker/schema.js +1 -1
- package/dist/modules/datasource/flutter-version/index.js +1 -1
- package/dist/modules/datasource/flutter-version/schema.js +1 -1
- package/dist/modules/datasource/forgejo-releases/schema.js +1 -1
- package/dist/modules/datasource/forgejo-tags/schema.js +1 -1
- package/dist/modules/datasource/gitea-releases/schema.js +1 -1
- package/dist/modules/datasource/gitea-tags/schema.js +1 -1
- package/dist/modules/datasource/go/releases-goproxy.js +2 -2
- package/dist/modules/datasource/golang-version/index.js +1 -1
- package/dist/modules/datasource/gradle-version/schema.js +5 -3
- package/dist/modules/datasource/gradle-version/schema.js.map +1 -1
- package/dist/modules/datasource/hackage/index.js +1 -1
- package/dist/modules/datasource/hex/v2/package.js +1 -1
- package/dist/modules/datasource/java-version/schema.js +1 -1
- package/dist/modules/datasource/jenkins-plugins/schema.js +1 -1
- package/dist/modules/datasource/jsr/schema.js +1 -1
- package/dist/modules/datasource/maven/common.js +3 -2
- package/dist/modules/datasource/maven/common.js.map +1 -1
- package/dist/modules/datasource/maven/index.js +2 -2
- package/dist/modules/datasource/maven/schema.js +1 -1
- package/dist/modules/datasource/maven/util.js +3 -2
- package/dist/modules/datasource/maven/util.js.map +1 -1
- package/dist/modules/datasource/metadata.js +1 -1
- package/dist/modules/datasource/nextcloud/schema.js +1 -1
- package/dist/modules/datasource/node-version/schema.js +5 -3
- package/dist/modules/datasource/node-version/schema.js.map +1 -1
- package/dist/modules/datasource/npm/index.js +2 -2
- package/dist/modules/datasource/npm/npmrc.js +1 -1
- package/dist/modules/datasource/nuget/common.js +1 -1
- package/dist/modules/datasource/nuget/schema.js +1 -1
- package/dist/modules/datasource/nuget/v3.js +1 -1
- package/dist/modules/datasource/packagist/schema.js +1 -1
- package/dist/modules/datasource/puppet-forge/schema.js +1 -1
- package/dist/modules/datasource/pypi/schema.js +1 -1
- package/dist/modules/datasource/repology/schema.js +5 -3
- package/dist/modules/datasource/repology/schema.js.map +1 -1
- package/dist/modules/datasource/rubygems/common.js +1 -1
- package/dist/modules/datasource/rubygems/metadata-cache.js +4 -1
- package/dist/modules/datasource/rubygems/metadata-cache.js.map +1 -1
- package/dist/modules/datasource/rubygems/versions-endpoint-cache.js +1 -1
- package/dist/modules/datasource/terraform-module/schema.js +1 -1
- package/dist/modules/datasource/terraform-provider/schema.js +1 -1
- package/dist/modules/datasource/unity3d-packages/index.js +1 -1
- package/dist/modules/manager/ansible/index.js +1 -1
- package/dist/modules/manager/ansible-galaxy/extract.js +1 -1
- package/dist/modules/manager/ansible-galaxy/index.js +1 -1
- package/dist/modules/manager/ant/index.js +1 -1
- package/dist/modules/manager/argocd/index.js +1 -1
- package/dist/modules/manager/argocd/schema.js +1 -1
- package/dist/modules/manager/asdf/index.js +1 -1
- package/dist/modules/manager/azure-pipelines/extract.js +1 -1
- package/dist/modules/manager/azure-pipelines/index.js +1 -1
- package/dist/modules/manager/azure-pipelines/schema.js +1 -1
- package/dist/modules/manager/batect/index.js +1 -1
- package/dist/modules/manager/batect-wrapper/index.js +1 -1
- package/dist/modules/manager/bazel/common.js +1 -1
- package/dist/modules/manager/bazel/index.js +1 -1
- package/dist/modules/manager/bazel/rules/http.js +1 -1
- package/dist/modules/manager/bazel/rules/index.js +1 -1
- package/dist/modules/manager/bazel-module/bazelrc.js +1 -1
- package/dist/modules/manager/bazel-module/index.js +1 -1
- package/dist/modules/manager/bazel-module/parser/context.js +1 -1
- package/dist/modules/manager/bazel-module/parser/fragments.js +1 -1
- package/dist/modules/manager/bazel-module/rules-img.js +1 -1
- package/dist/modules/manager/bazel-module/rules.js +1 -1
- package/dist/modules/manager/bazelisk/index.js +1 -1
- package/dist/modules/manager/bicep/index.js +1 -1
- package/dist/modules/manager/bitbucket-pipelines/index.js +1 -1
- package/dist/modules/manager/bitrise/index.js +1 -1
- package/dist/modules/manager/bitrise/utils.js +1 -1
- package/dist/modules/manager/buildkite/extract.js +1 -1
- package/dist/modules/manager/buildkite/index.js +1 -1
- package/dist/modules/manager/buildpacks/extract.js +1 -1
- package/dist/modules/manager/buildpacks/index.js +1 -1
- package/dist/modules/manager/buildpacks/schema.js +1 -1
- package/dist/modules/manager/bun/extract.js +1 -1
- package/dist/modules/manager/bun/index.js +1 -1
- package/dist/modules/manager/bun/utils.js +1 -1
- package/dist/modules/manager/bun-version/index.js +1 -1
- package/dist/modules/manager/bundler/index.js +1 -1
- package/dist/modules/manager/cake/index.js +1 -1
- package/dist/modules/manager/cargo/extract.js +1 -1
- package/dist/modules/manager/cargo/index.js +1 -1
- package/dist/modules/manager/cargo/locked-version.js +1 -1
- package/dist/modules/manager/cdnurl/index.js +1 -1
- package/dist/modules/manager/circleci/index.js +1 -1
- package/dist/modules/manager/circleci/schema.js +3 -2
- package/dist/modules/manager/circleci/schema.js.map +1 -1
- package/dist/modules/manager/cloudbuild/index.js +1 -1
- package/dist/modules/manager/cocoapods/extract.js +1 -1
- package/dist/modules/manager/cocoapods/index.js +1 -1
- package/dist/modules/manager/composer/index.js +1 -1
- package/dist/modules/manager/composer/schema.js +2 -2
- package/dist/modules/manager/composer/update-locked.js +1 -1
- package/dist/modules/manager/composer/utils.js +2 -2
- package/dist/modules/manager/conan/index.js +1 -1
- package/dist/modules/manager/copier/index.js +1 -1
- package/dist/modules/manager/cpanfile/index.js +1 -1
- package/dist/modules/manager/crossplane/index.js +1 -1
- package/dist/modules/manager/crow/index.js +1 -1
- package/dist/modules/manager/crow/schema.js +1 -1
- package/dist/modules/manager/custom/jsonata/index.js +1 -1
- package/dist/modules/manager/custom/jsonata/types.d.ts +1 -1
- package/dist/modules/manager/custom/jsonata/utils.js +1 -1
- package/dist/modules/manager/custom/regex/index.js +1 -1
- package/dist/modules/manager/custom/regex/types.d.ts +1 -1
- package/dist/modules/manager/custom/types.d.ts +1 -1
- package/dist/modules/manager/deno/extract.js +1 -1
- package/dist/modules/manager/deno/index.js +1 -1
- package/dist/modules/manager/deno/post.js +2 -2
- package/dist/modules/manager/deno/schema.js +1 -1
- package/dist/modules/manager/deps-edn/index.js +1 -1
- package/dist/modules/manager/devbox/index.js +1 -1
- package/dist/modules/manager/devbox/schema.js +1 -1
- package/dist/modules/manager/devbox/tool-versioning.js +5 -5
- package/dist/modules/manager/devcontainer/index.js +1 -1
- package/dist/modules/manager/docker-compose/index.js +1 -1
- package/dist/modules/manager/dockerfile/extract.js +2 -2
- package/dist/modules/manager/dockerfile/index.js +1 -1
- package/dist/modules/manager/droneci/index.js +1 -1
- package/dist/modules/manager/fleet/index.js +1 -1
- package/dist/modules/manager/flux/index.js +1 -1
- package/dist/modules/manager/flux/schema.js +1 -1
- package/dist/modules/manager/fvm/index.js +1 -1
- package/dist/modules/manager/git-submodules/extract.js +1 -1
- package/dist/modules/manager/git-submodules/index.js +1 -1
- package/dist/modules/manager/github-actions/community.js +1 -1
- package/dist/modules/manager/github-actions/extract.js +1 -1
- package/dist/modules/manager/github-actions/index.js +1 -1
- package/dist/modules/manager/github-actions/parse.js +1 -1
- package/dist/modules/manager/gitlabci/index.js +1 -1
- package/dist/modules/manager/gitlabci-include/index.js +1 -1
- package/dist/modules/manager/gitlabci-include/schema.js +4 -3
- package/dist/modules/manager/gitlabci-include/schema.js.map +1 -1
- package/dist/modules/manager/glasskube/index.js +1 -1
- package/dist/modules/manager/glasskube/schema.js +1 -1
- package/dist/modules/manager/gleam/extract.js +1 -1
- package/dist/modules/manager/gleam/index.js +1 -1
- package/dist/modules/manager/gleam/locked-version.js +1 -1
- package/dist/modules/manager/gomod/artifacts-extra.js +1 -1
- package/dist/modules/manager/gomod/artifacts.js +2 -2
- package/dist/modules/manager/gomod/extract.js +1 -1
- package/dist/modules/manager/gomod/index.js +1 -1
- package/dist/modules/manager/gomod/line-parser.js +1 -1
- package/dist/modules/manager/gradle/extract/consistent-versions-plugin.js +1 -1
- package/dist/modules/manager/gradle/extract.js +2 -2
- package/dist/modules/manager/gradle/index.js +1 -1
- package/dist/modules/manager/gradle/parser/common.js +1 -1
- package/dist/modules/manager/gradle/utils.js +2 -2
- package/dist/modules/manager/gradle-wrapper/artifacts.js +1 -1
- package/dist/modules/manager/gradle-wrapper/index.js +1 -1
- package/dist/modules/manager/gradle-wrapper/utils.js +2 -2
- package/dist/modules/manager/haskell-cabal/extract.js +1 -1
- package/dist/modules/manager/haskell-cabal/index.js +1 -1
- package/dist/modules/manager/helm-requirements/index.js +1 -1
- package/dist/modules/manager/helm-values/extract.js +1 -1
- package/dist/modules/manager/helm-values/index.js +1 -1
- package/dist/modules/manager/helmfile/index.js +1 -1
- package/dist/modules/manager/helmfile/schema.js +1 -1
- package/dist/modules/manager/helmsman/index.js +1 -1
- package/dist/modules/manager/helmv3/index.js +1 -1
- package/dist/modules/manager/helmv3/utils.js +1 -1
- package/dist/modules/manager/hermit/artifacts.js +1 -1
- package/dist/modules/manager/hermit/index.js +1 -1
- package/dist/modules/manager/homeassistant-manifest/index.js +1 -1
- package/dist/modules/manager/homebrew/index.js +1 -1
- package/dist/modules/manager/html/extract.js +1 -1
- package/dist/modules/manager/html/index.js +1 -1
- package/dist/modules/manager/jenkins/index.js +1 -1
- package/dist/modules/manager/jsonnet-bundler/index.js +1 -1
- package/dist/modules/manager/kotlin-script/index.js +1 -1
- package/dist/modules/manager/kubernetes/index.js +1 -1
- package/dist/modules/manager/kubernetes/schema.js +1 -1
- package/dist/modules/manager/kustomize/extract.js +1 -1
- package/dist/modules/manager/kustomize/index.js +1 -1
- package/dist/modules/manager/leiningen/extract.js +1 -1
- package/dist/modules/manager/leiningen/index.js +1 -1
- package/dist/modules/manager/maven/extract.js +3 -2
- package/dist/modules/manager/maven/extract.js.map +1 -1
- package/dist/modules/manager/maven/index.js +1 -1
- package/dist/modules/manager/maven/update.js +1 -1
- package/dist/modules/manager/maven-wrapper/artifacts.js +2 -2
- package/dist/modules/manager/maven-wrapper/index.js +1 -1
- package/dist/modules/manager/meteor/index.js +1 -1
- package/dist/modules/manager/mint/index.js +1 -1
- package/dist/modules/manager/mise/index.js +1 -1
- package/dist/modules/manager/mise/upgradeable-tooling.js +1 -1
- package/dist/modules/manager/mix/index.js +1 -1
- package/dist/modules/manager/nix/index.js +1 -1
- package/dist/modules/manager/nodenv/index.js +1 -1
- package/dist/modules/manager/npm/extract/common/catalogs.js +1 -1
- package/dist/modules/manager/npm/extract/common/dependency.js +1 -1
- package/dist/modules/manager/npm/extract/index.js +1 -1
- package/dist/modules/manager/npm/extract/pnpm.js +1 -1
- package/dist/modules/manager/npm/index.js +1 -1
- package/dist/modules/manager/npm/post-update/index.js +1 -1
- package/dist/modules/manager/npm/post-update/node-version.js +1 -1
- package/dist/modules/manager/npm/post-update/npm.js +1 -1
- package/dist/modules/manager/npm/post-update/pnpm.js +1 -1
- package/dist/modules/manager/npm/post-update/yarn.js +1 -1
- package/dist/modules/manager/npm/schema.js +1 -1
- package/dist/modules/manager/npm/update/index.js +4 -4
- package/dist/modules/manager/npm/update/locked-dependency/common/parent-version.js +1 -1
- package/dist/modules/manager/npm/update/locked-dependency/index.js +1 -1
- package/dist/modules/manager/npm/update/locked-dependency/package-lock/dep-constraints.js +1 -1
- package/dist/modules/manager/npm/update/locked-dependency/package-lock/index.js +1 -1
- package/dist/modules/manager/npm/update/locked-dependency/yarn-lock/get-locked.js +1 -1
- package/dist/modules/manager/npm/update/locked-dependency/yarn-lock/index.js +1 -1
- package/dist/modules/manager/nuget/extract.js +1 -1
- package/dist/modules/manager/nuget/index.js +1 -1
- package/dist/modules/manager/nvm/index.js +1 -1
- package/dist/modules/manager/ocb/extract.js +1 -1
- package/dist/modules/manager/ocb/index.js +1 -1
- package/dist/modules/manager/osgi/index.js +1 -1
- package/dist/modules/manager/pep621/index.js +1 -1
- package/dist/modules/manager/pep621/utils.js +1 -1
- package/dist/modules/manager/pep723/index.js +1 -1
- package/dist/modules/manager/pip-compile/artifacts.js +1 -1
- package/dist/modules/manager/pip-compile/common.js +1 -1
- package/dist/modules/manager/pip-compile/index.js +1 -1
- package/dist/modules/manager/pip_requirements/extract.js +1 -1
- package/dist/modules/manager/pip_requirements/index.js +1 -1
- package/dist/modules/manager/pip_setup/index.js +1 -1
- package/dist/modules/manager/pipenv/artifacts.js +1 -1
- package/dist/modules/manager/pipenv/extract.js +5 -2
- package/dist/modules/manager/pipenv/extract.js.map +1 -1
- package/dist/modules/manager/pipenv/index.js +1 -1
- package/dist/modules/manager/pixi/artifacts.js +1 -1
- package/dist/modules/manager/pixi/index.js +1 -1
- package/dist/modules/manager/pixi/schema.js +1 -1
- package/dist/modules/manager/poetry/artifacts.js +1 -1
- package/dist/modules/manager/poetry/index.js +1 -1
- package/dist/modules/manager/poetry/schema.js +4 -3
- package/dist/modules/manager/poetry/schema.js.map +1 -1
- package/dist/modules/manager/pre-commit/index.js +1 -1
- package/dist/modules/manager/proto/index.js +1 -1
- package/dist/modules/manager/proto/schema.js +1 -1
- package/dist/modules/manager/pub/index.js +1 -1
- package/dist/modules/manager/puppet/common.js +1 -1
- package/dist/modules/manager/puppet/index.js +1 -1
- package/dist/modules/manager/puppet/puppetfile-parser.js +1 -1
- package/dist/modules/manager/pyenv/index.js +1 -1
- package/dist/modules/manager/quadlet/index.js +1 -1
- package/dist/modules/manager/renovate-config/index.js +1 -1
- package/dist/modules/manager/ruby-version/index.js +1 -1
- package/dist/modules/manager/runtime-version/extract.js +1 -1
- package/dist/modules/manager/runtime-version/index.js +1 -1
- package/dist/modules/manager/rust-toolchain/extract.js +1 -1
- package/dist/modules/manager/rust-toolchain/index.js +1 -1
- package/dist/modules/manager/sbt/extract.js +1 -1
- package/dist/modules/manager/sbt/index.js +1 -1
- package/dist/modules/manager/scalafmt/index.js +1 -1
- package/dist/modules/manager/setup-cfg/index.js +1 -1
- package/dist/modules/manager/sveltos/extract.js +1 -1
- package/dist/modules/manager/sveltos/index.js +1 -1
- package/dist/modules/manager/sveltos/schema.js +1 -1
- package/dist/modules/manager/swift/index.js +1 -1
- package/dist/modules/manager/tekton/index.js +1 -1
- package/dist/modules/manager/terraform/extractors/others/modules.js +1 -1
- package/dist/modules/manager/terraform/index.js +1 -1
- package/dist/modules/manager/terraform/lockfile/index.js +1 -1
- package/dist/modules/manager/terraform-version/index.js +1 -1
- package/dist/modules/manager/terragrunt/index.js +1 -1
- package/dist/modules/manager/terragrunt/modules.js +1 -1
- package/dist/modules/manager/terragrunt-version/index.js +1 -1
- package/dist/modules/manager/tflint-plugin/index.js +1 -1
- package/dist/modules/manager/travis/index.js +1 -1
- package/dist/modules/manager/typst/index.js +1 -1
- package/dist/modules/manager/unity3d/index.js +1 -1
- package/dist/modules/manager/velaci/index.js +1 -1
- package/dist/modules/manager/vendir/extract.js +1 -1
- package/dist/modules/manager/vendir/index.js +1 -1
- package/dist/modules/manager/vendir/schema.js +1 -1
- package/dist/modules/manager/woodpecker/index.js +1 -1
- package/dist/modules/manager/xcodegen/index.js +1 -1
- package/dist/modules/platform/azure/azure-got-wrapper.js +1 -1
- package/dist/modules/platform/azure/index.js +1 -1
- package/dist/modules/platform/azure/util.js +1 -1
- package/dist/modules/platform/bitbucket/index.js +2 -1
- package/dist/modules/platform/bitbucket/index.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/schema.js +1 -1
- package/dist/modules/platform/bitbucket-server/utils.js +3 -1
- package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
- package/dist/modules/platform/codecommit/index.js +1 -1
- package/dist/modules/platform/forgejo/index.js +1 -1
- package/dist/modules/platform/forgejo/schema.js +3 -2
- package/dist/modules/platform/forgejo/schema.js.map +1 -1
- package/dist/modules/platform/gerrit/index.js +1 -1
- package/dist/modules/platform/gerrit/schema.js +1 -1
- package/dist/modules/platform/gerrit/scm.js +1 -1
- package/dist/modules/platform/gerrit/utils.js +1 -1
- package/dist/modules/platform/gitea/index.js +1 -1
- package/dist/modules/platform/github/index.js +1 -1
- package/dist/modules/platform/github/schema.d.ts +1 -1
- package/dist/modules/platform/github/schema.js +1 -1
- package/dist/modules/platform/gitlab/schema.js +1 -1
- package/dist/modules/platform/local/index.js +1 -1
- package/dist/modules/platform/pr-body.js +1 -1
- package/dist/modules/platform/scm-manager/index.js +1 -1
- package/dist/modules/platform/scm-manager/schema.js +1 -1
- package/dist/modules/platform/scm-manager/scm-manager-helper.js +1 -1
- package/dist/modules/platform/scm.js +1 -1
- package/dist/modules/platform/utils/read-only-issue-body.js +1 -1
- package/dist/modules/versioning/api.js +51 -51
- package/dist/modules/versioning/apk/index.js +1 -1
- package/dist/modules/versioning/aws-eks-addon/index.js +4 -3
- package/dist/modules/versioning/aws-eks-addon/index.js.map +1 -1
- package/dist/modules/versioning/aws-machine-image/index.js +1 -1
- package/dist/modules/versioning/azure-rest-api/index.js +1 -1
- package/dist/modules/versioning/bazel-module/bzlmod-version.js +1 -1
- package/dist/modules/versioning/bazel-module/index.js +1 -1
- package/dist/modules/versioning/cargo/index.js +2 -2
- package/dist/modules/versioning/composer/index.js +2 -2
- package/dist/modules/versioning/conan/index.js +2 -2
- package/dist/modules/versioning/conan/range.js +1 -1
- package/dist/modules/versioning/conda/index.js +1 -1
- package/dist/modules/versioning/deb/index.js +1 -1
- package/dist/modules/versioning/debian/index.js +1 -1
- package/dist/modules/versioning/deno/index.js +2 -2
- package/dist/modules/versioning/devbox/index.js +1 -1
- package/dist/modules/versioning/docker/index.js +1 -1
- package/dist/modules/versioning/elm/index.js +1 -1
- package/dist/modules/versioning/exact/index.js +1 -1
- package/dist/modules/versioning/git/index.js +1 -1
- package/dist/modules/versioning/github-actions/index.js +1 -1
- package/dist/modules/versioning/glasskube/index.js +1 -1
- package/dist/modules/versioning/go-mod-directive/index.js +2 -2
- package/dist/modules/versioning/gradle/compare.js +1 -1
- package/dist/modules/versioning/gradle/index.js +5 -3
- package/dist/modules/versioning/gradle/index.js.map +1 -1
- package/dist/modules/versioning/hashicorp/index.js +2 -2
- package/dist/modules/versioning/helm/index.js +1 -1
- package/dist/modules/versioning/hermit/index.js +3 -2
- package/dist/modules/versioning/hermit/index.js.map +1 -1
- package/dist/modules/versioning/hex/index.js +2 -2
- package/dist/modules/versioning/ivy/index.js +2 -2
- package/dist/modules/versioning/ivy/parse.js +2 -2
- package/dist/modules/versioning/kubernetes-api/index.js +4 -3
- package/dist/modules/versioning/kubernetes-api/index.js.map +1 -1
- package/dist/modules/versioning/lambda-node/index.js +2 -2
- package/dist/modules/versioning/loose/index.js +1 -1
- package/dist/modules/versioning/maven/compare.js +1 -1
- package/dist/modules/versioning/maven/index.js +2 -2
- package/dist/modules/versioning/nixpkgs/index.js +3 -2
- package/dist/modules/versioning/nixpkgs/index.js.map +1 -1
- package/dist/modules/versioning/node/index.js +2 -2
- package/dist/modules/versioning/node/schedule.js +3 -2
- package/dist/modules/versioning/node/schedule.js.map +1 -1
- package/dist/modules/versioning/npm/index.js +1 -1
- package/dist/modules/versioning/nuget/index.js +1 -1
- package/dist/modules/versioning/nuget/parser.js +1 -1
- package/dist/modules/versioning/paket/index.js +1 -1
- package/dist/modules/versioning/paket/range.js +1 -1
- package/dist/modules/versioning/pep440/index.js +1 -1
- package/dist/modules/versioning/pep440/range.js +7 -3
- package/dist/modules/versioning/pep440/range.js.map +1 -1
- package/dist/modules/versioning/perl/index.js +1 -1
- package/dist/modules/versioning/poetry/index.js +3 -3
- package/dist/modules/versioning/pvp/index.js +1 -1
- package/dist/modules/versioning/python/index.js +3 -3
- package/dist/modules/versioning/redhat/index.js +1 -1
- package/dist/modules/versioning/regex/index.js +1 -1
- package/dist/modules/versioning/rez/index.js +3 -3
- package/dist/modules/versioning/rpm/index.js +1 -1
- package/dist/modules/versioning/ruby/index.js +1 -1
- package/dist/modules/versioning/ruby/strategies/index.js +4 -4
- package/dist/modules/versioning/rust-release-channel/index.js +1 -1
- package/dist/modules/versioning/same-major/index.js +2 -2
- package/dist/modules/versioning/schema.js +1 -1
- package/dist/modules/versioning/semver/index.js +1 -1
- package/dist/modules/versioning/semver-coerced/index.d.ts +1 -1
- package/dist/modules/versioning/semver-coerced/index.js +1 -1
- package/dist/modules/versioning/semver-partial/index.js +1 -1
- package/dist/modules/versioning/swift/index.js +1 -1
- package/dist/modules/versioning/unity3d/index.js +1 -1
- package/dist/modules/versioning/unity3d-packages/index.js +1 -1
- package/dist/util/cache/package/impl/redis.js +1 -1
- package/dist/util/cache/package/impl/sqlite.js +2 -1
- package/dist/util/cache/package/impl/sqlite.js.map +1 -1
- package/dist/util/cache/package/namespaces.d.ts +1 -1
- package/dist/util/check-token.js +1 -1
- package/dist/util/common.js +1 -1
- package/dist/util/emoji.js +1 -1
- package/dist/util/exec/containerbase.js +1 -1
- package/dist/util/exec/docker/index.js +1 -1
- package/dist/util/exec/env.js +1 -1
- package/dist/util/exec/hermit.js +1 -1
- package/dist/util/git/auth.js +1 -1
- package/dist/util/git/instrument.js +1 -1
- package/dist/util/git/types.d.ts +1 -1
- package/dist/util/github/url.js +1 -1
- package/dist/util/http/cache/memory-http-cache-provider.js +1 -1
- package/dist/util/http/cache/repository-http-cache-provider.js +1 -1
- package/dist/util/http/got.js +1 -1
- package/dist/util/http/http.js +1 -1
- package/dist/util/http/throttle.js +1 -1
- package/dist/util/json-writer/index.js +3 -3
- package/dist/util/merge-confidence/index.js +1 -1
- package/dist/util/mutex.js +1 -1
- package/dist/util/result.d.ts +1 -1
- package/dist/util/schema-utils/index.js +7 -4
- package/dist/util/schema-utils/index.js.map +1 -1
- package/dist/util/stats.js +1 -1
- package/dist/util/template/index.js +12 -6
- package/dist/util/template/index.js.map +1 -1
- package/dist/util/yaml.js +1 -1
- package/dist/versioning-list.generated.d.ts +1 -1
- package/dist/workers/global/config/parse/cli.js +1 -1
- package/dist/workers/global/config/parse/env.js +1 -1
- package/dist/workers/global/index.js +1 -1
- package/dist/workers/global/limits.js +1 -1
- package/dist/workers/repository/changelog/index.js +1 -1
- package/dist/workers/repository/common.js +1 -1
- package/dist/workers/repository/config-migration/branch/index.js +1 -1
- package/dist/workers/repository/config-migration/branch/rebase.js +1 -1
- package/dist/workers/repository/dependency-dashboard.js +1 -1
- package/dist/workers/repository/extract/file-match.js +1 -1
- package/dist/workers/repository/finalize/repository-statistics.js +1 -1
- package/dist/workers/repository/index.js +1 -1
- package/dist/workers/repository/init/merge.js +1 -1
- package/dist/workers/repository/init/types.d.ts +1 -1
- package/dist/workers/repository/process/extract-update.js +1 -1
- package/dist/workers/repository/process/index.js +5 -3
- package/dist/workers/repository/process/index.js.map +1 -1
- package/dist/workers/repository/process/lookup/utils.js +1 -1
- package/dist/workers/repository/process/vulnerabilities.js +2 -1
- package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
- package/dist/workers/repository/process/write.js +1 -1
- package/dist/workers/repository/reconfigure/comment.js +1 -1
- package/dist/workers/repository/update/branch/auto-replace.js +1 -1
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +1 -1
- package/dist/workers/repository/update/branch/schedule.js +1 -1
- package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +4 -2
- package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.js +4 -2
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/forgejo/index.js +4 -2
- package/dist/workers/repository/update/pr/changelog/forgejo/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/gitea/index.js +4 -2
- package/dist/workers/repository/update/pr/changelog/gitea/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/github/index.js +4 -2
- package/dist/workers/repository/update/pr/changelog/github/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/gitlab/index.js +4 -2
- package/dist/workers/repository/update/pr/changelog/gitlab/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/index.js +1 -1
- package/dist/workers/repository/update/pr/changelog/release-notes.js +3 -2
- package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/types.d.ts +1 -1
- package/dist/workers/repository/update/pr/index.js +1 -1
- package/dist/workers/repository/update/pr/labels.js +1 -1
- package/dist/workers/repository/updates/flatten.js +1 -1
- package/package.json +6 -6
- package/renovate-schema.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","names":["packageCache.get","HttpError","packageCache.set","packageCache.getCacheType"],"sources":["../../../../lib/modules/datasource/maven/util.ts"],"sourcesContent":["import { Readable } from 'node:stream';\nimport { GetObjectCommand } from '@aws-sdk/client-s3';\nimport { XmlDocument } from 'xmldoc';\nimport { HOST_DISABLED } from '../../../constants/error-messages.ts';\nimport { logger } from '../../../logger/index.ts';\nimport { ExternalHostError } from '../../../types/errors/external-host-error.ts';\nimport * as packageCache from '../../../util/cache/package/index.ts';\nimport { PackageHttpCacheProvider } from '../../../util/http/cache/package-http-cache-provider.ts';\nimport { type Http, HttpError } from '../../../util/http/index.ts';\nimport type { HttpOptions, HttpResponse } from '../../../util/http/types.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { Result } from '../../../util/result.ts';\nimport { getS3Client, parseS3Url } from '../../../util/s3.ts';\nimport { streamToString } from '../../../util/streams.ts';\nimport { asTimestamp } from '../../../util/timestamp.ts';\nimport { ensureTrailingSlash, isHttpUrl } from '../../../util/url.ts';\nimport { getGoogleAuthToken } from '../util.ts';\nimport { isMavenCentral } from './common.ts';\nimport { CachedMavenXml } from './schema.ts';\nimport type {\n DependencyInfo,\n MavenDependency,\n MavenFetchResult,\n MavenFetchSuccess,\n} from './types.ts';\n\nfunction isTemporaryError(err: HttpError): boolean {\n if (err.code === 'ECONNRESET') {\n return true;\n }\n\n if (err.response) {\n const status = err.response.statusCode;\n return status === 429 || (status >= 500 && status < 600);\n }\n\n return false;\n}\n\nfunction isHostError(err: HttpError): boolean {\n return err.code === 'ETIMEDOUT';\n}\n\nfunction isNotFoundError(err: HttpError): boolean {\n return err.code === 'ENOTFOUND' || err.response?.statusCode === 404;\n}\n\nfunction isPermissionsIssue(err: HttpError): boolean {\n const status = err.response?.statusCode;\n return status === 401 || status === 403;\n}\n\nfunction isConnectionError(err: HttpError): boolean {\n return (\n err.code === 'EAI_AGAIN' ||\n err.code === 'ERR_TLS_CERT_ALTNAME_INVALID' ||\n err.code === 'ECONNREFUSED'\n );\n}\n\nfunction isUnsupportedHostError(err: HttpError): boolean {\n return err.name === 'UnsupportedProtocolError';\n}\n\nconst cacheProvider = new PackageHttpCacheProvider({\n namespace: 'datasource-maven:cache-provider',\n softTtlMinutes: 15,\n checkAuthorizationHeader: true,\n checkCacheControlHeader: false, // Maven doesn't respond with `cache-control` headers\n writeSchema: CachedMavenXml,\n});\n\n// Release POMs and timestamped snapshot POMs are immutable once published, so we can cache them much longer than mutable metadata files.\nconst pomCacheProvider = new PackageHttpCacheProvider({\n namespace: 'datasource-maven:pom-cache-provider',\n softTtlMinutes: 60 * 24 * 28, // 28 days before we'll give it another check, just in case it's updated\n checkAuthorizationHeader: true,\n checkCacheControlHeader: false,\n writeSchema: CachedMavenXml,\n});\n\nfunction selectCacheProvider(url: string): PackageHttpCacheProvider {\n // Non-timestamped -SNAPSHOT.pom files are mutable; everything else ending in .pom (release POMs and timestamped snapshot POMs) is immutable.\n if (url.endsWith('.pom') && !url.endsWith('-SNAPSHOT.pom')) {\n return pomCacheProvider;\n }\n return cacheProvider;\n}\n\nconst METADATA_NOT_FOUND_NAMESPACE =\n 'datasource-maven:metadata-not-found' as const;\nconst METADATA_NOT_FOUND_TTL_MINUTES = 60 * 12; // 12 hours\n\n/** introduces jitter to make sure that a given repo's cache expiring doesn't lead to many requests leading to high traffic and/or rate limits */\nfunction getMetadataNotFoundTtl(): number {\n const jitter = Math.floor(Math.random() * 60 * 2); // 0–120 minutes\n return METADATA_NOT_FOUND_TTL_MINUTES + jitter;\n}\n\nfunction isMetadataUrl(url: string): boolean {\n return url.endsWith('/maven-metadata.xml');\n}\n\nexport async function downloadHttpProtocol(\n http: Http,\n pkgUrl: URL | string,\n opts: HttpOptions = {},\n): Promise<MavenFetchResult> {\n const url = pkgUrl.toString();\n\n if (isMetadataUrl(url)) {\n const cacheHasNotFoundResponse = await packageCache.get<true>(\n METADATA_NOT_FOUND_NAMESPACE,\n url,\n );\n if (cacheHasNotFoundResponse) {\n logger.trace(\n { url },\n 'Returning cached 404 response for the metadata-metadata URL request',\n );\n return Result.err({ type: 'not-found' });\n }\n }\n\n const fetchResult = await Result.wrap<HttpResponse, Error>(\n http.getText(url, { ...opts, cacheProvider: selectCacheProvider(url) }),\n )\n .transform((res): MavenFetchSuccess => {\n const result: MavenFetchSuccess = { data: res.body };\n\n if (!res.authorization) {\n result.isCacheable = true;\n }\n\n const lastModified = asTimestamp(res?.headers?.['last-modified']);\n if (lastModified) {\n result.lastModified = lastModified;\n }\n\n return result;\n })\n .catch(async (err): Promise<MavenFetchResult> => {\n /* v8 ignore next: never happens, needs for type narrowing */\n if (!(err instanceof HttpError)) {\n return Result.err({ type: 'unknown', err });\n }\n\n const failedUrl = url;\n if (err.message === HOST_DISABLED) {\n logger.trace({ failedUrl }, 'Host disabled');\n return Result.err({ type: 'host-disabled' });\n }\n\n if (isNotFoundError(err)) {\n logger.trace({ failedUrl }, `Url not found`);\n if (isMetadataUrl(failedUrl)) {\n await packageCache.set(\n METADATA_NOT_FOUND_NAMESPACE,\n failedUrl,\n true,\n getMetadataNotFoundTtl(),\n );\n }\n return Result.err({ type: 'not-found' });\n }\n\n if (isHostError(err)) {\n logger.debug(`Cannot connect to host ${failedUrl}`);\n return Result.err({ type: 'host-error' });\n }\n\n if (isPermissionsIssue(err)) {\n logger.debug(\n `Dependency lookup unauthorized. Please add authentication with a hostRule for ${failedUrl}`,\n );\n return Result.err({ type: 'permission-issue' });\n }\n\n if (isTemporaryError(err)) {\n logger.debug({ failedUrl, err }, 'Temporary error');\n\n if (isMavenCentral(url)) {\n const statusCode = err?.response?.statusCode;\n if (statusCode === 429) {\n if (packageCache.getCacheType() === 'redis') {\n logger.once.warn(\n { failedUrl },\n 'Maven Central rate limiting detected despite Redis caching.',\n );\n } else {\n logger.once.warn(\n { failedUrl },\n 'Maven Central rate limiting detected. Persistent caching required.',\n );\n }\n }\n return Result.err({ type: 'maven-central-temporary-error', err });\n } else {\n return Result.err({ type: 'temporary-error' });\n }\n }\n\n if (isConnectionError(err)) {\n logger.debug(`Connection refused to maven registry ${failedUrl}`);\n return Result.err({ type: 'connection-error' });\n }\n\n if (isUnsupportedHostError(err)) {\n logger.debug(`Unsupported host ${failedUrl}`);\n return Result.err({ type: 'unsupported-host' });\n }\n\n logger.info({ failedUrl, err }, 'Unknown HTTP download error');\n return Result.err({ type: 'unknown', err });\n });\n\n const { err } = fetchResult.unwrap();\n if (err?.type === 'maven-central-temporary-error') {\n throw new ExternalHostError(err.err);\n }\n\n return fetchResult;\n}\n\nexport async function downloadHttpContent(\n http: Http,\n pkgUrl: URL | string,\n opts: HttpOptions = {},\n): Promise<string | null> {\n const fetchResult = await downloadHttpProtocol(http, pkgUrl, opts);\n return fetchResult.transform(({ data }) => data).unwrapOrNull();\n}\n\nfunction isS3NotFound(err: Error): boolean {\n return err.message === 'NotFound' || err.message === 'NoSuchKey';\n}\n\nexport async function downloadS3Protocol(\n pkgUrl: URL,\n): Promise<MavenFetchResult> {\n logger.trace({ url: pkgUrl.toString() }, `Attempting to load S3 dependency`);\n\n const s3Url = parseS3Url(pkgUrl);\n if (!s3Url) {\n return Result.err({ type: 'invalid-url' });\n }\n\n return await Result.wrap(() => {\n const command = new GetObjectCommand(s3Url);\n const client = getS3Client();\n return client.send(command);\n })\n .transform(\n async ({\n Body,\n LastModified,\n DeleteMarker,\n }): Promise<MavenFetchResult> => {\n if (DeleteMarker) {\n logger.trace(\n { failedUrl: pkgUrl.toString() },\n 'Maven S3 lookup error: DeleteMarker encountered',\n );\n return Result.err({ type: 'not-found' });\n }\n\n if (!(Body instanceof Readable)) {\n logger.debug(\n { failedUrl: pkgUrl.toString() },\n 'Maven S3 lookup error: unsupported Body type',\n );\n return Result.err({ type: 'unsupported-format' });\n }\n\n const data = await streamToString(Body);\n const result: MavenFetchSuccess = { data };\n\n const lastModified = asTimestamp(LastModified);\n if (lastModified) {\n result.lastModified = lastModified;\n }\n\n return Result.ok(result);\n },\n )\n .catch((err): MavenFetchResult => {\n if (!(err instanceof Error)) {\n return Result.err(err);\n }\n\n const failedUrl = pkgUrl.toString();\n\n if (err.name === 'CredentialsProviderError') {\n logger.debug(\n { failedUrl },\n 'Maven S3 lookup error: credentials provider error, check \"AWS_ACCESS_KEY_ID\" and \"AWS_SECRET_ACCESS_KEY\" variables',\n );\n return Result.err({ type: 'credentials-error' });\n }\n\n if (err.message === 'Region is missing') {\n logger.debug(\n { failedUrl },\n 'Maven S3 lookup error: missing region, check \"AWS_REGION\" variable',\n );\n return Result.err({ type: 'missing-aws-region' });\n }\n\n if (isS3NotFound(err)) {\n logger.trace({ failedUrl }, 'Maven S3 lookup error: object not found');\n return Result.err({ type: 'not-found' });\n }\n\n logger.debug({ failedUrl, err }, 'Maven S3 lookup error: unknown error');\n return Result.err({ type: 'unknown', err });\n });\n}\n\nexport async function downloadArtifactRegistryProtocol(\n http: Http,\n pkgUrl: URL,\n): Promise<MavenFetchResult> {\n const opts: HttpOptions = {};\n const host = pkgUrl.host;\n const path = pkgUrl.pathname;\n\n logger.trace({ host, path }, `Using google auth for Maven repository`);\n const auth = await getGoogleAuthToken();\n if (auth) {\n opts.headers = { authorization: `Basic ${auth}` };\n } else {\n logger.once.debug(\n { host, path },\n 'Could not get Google access token, using no auth',\n );\n }\n\n const url = pkgUrl.toString().replace('artifactregistry:', 'https:');\n\n return downloadHttpProtocol(http, url, opts);\n}\n\nfunction containsPlaceholder(str: string): boolean {\n return regEx(/\\${.*?}/g).test(str);\n}\n\nfunction removeKnownPlaceholders(str: string): string {\n return str.replace(regEx(/\\/tree\\/\\${[^}]+}/), '');\n}\n\nexport function getMavenUrl(\n dependency: MavenDependency,\n repoUrl: string,\n path: string,\n): URL {\n return new URL(\n `${dependency.dependencyUrl}/${path}`,\n ensureTrailingSlash(repoUrl),\n );\n}\n\nexport async function downloadMaven(\n http: Http,\n url: URL,\n): Promise<MavenFetchResult> {\n const protocol = url.protocol;\n\n let result: MavenFetchResult = Result.err({ type: 'unsupported-protocol' });\n\n if (isHttpUrl(url)) {\n result = await downloadHttpProtocol(http, url);\n }\n\n if (protocol === 'artifactregistry:') {\n result = await downloadArtifactRegistryProtocol(http, url);\n }\n\n if (protocol === 's3:') {\n result = await downloadS3Protocol(url);\n }\n\n return result.onError((err) => {\n if (err.type === 'unsupported-protocol') {\n logger.debug(\n { url: url.toString() },\n `Maven lookup error: unsupported protocol (${protocol})`,\n );\n }\n });\n}\n\nexport async function downloadMavenXml(\n http: Http,\n url: URL,\n): Promise<MavenFetchResult<XmlDocument>> {\n const rawResult = await downloadMaven(http, url);\n return rawResult.transform((result): MavenFetchResult<XmlDocument> => {\n try {\n return Result.ok({\n ...result,\n data: new XmlDocument(result.data),\n });\n } catch (err) {\n return Result.err({ type: 'xml-parse-error', err });\n }\n });\n}\n\nexport function getDependencyParts(packageName: string): MavenDependency {\n const [group, name] = packageName.split(':');\n const dependencyUrl = `${group.replace(regEx(/\\./g), '/')}/${name}`;\n return {\n display: packageName,\n group,\n name,\n dependencyUrl,\n };\n}\n\nfunction extractSnapshotVersion(metadata: XmlDocument): string | null {\n // Parse the maven-metadata.xml for the snapshot version and determine\n // the fixed version of the latest deployed snapshot.\n // The metadata descriptor can be found at\n // https://maven.apache.org/ref/3.3.3/maven-repository-metadata/repository-metadata.html\n //\n // Basically, we need to replace -SNAPSHOT with the artifact timestanp & build number,\n // so for example 1.0.0-SNAPSHOT will become 1.0.0-<timestamp>-<buildNumber>\n const version = metadata\n .descendantWithPath('version')\n ?.val?.replace('-SNAPSHOT', '');\n\n const snapshot = metadata.descendantWithPath('versioning.snapshot');\n const timestamp = snapshot?.childNamed('timestamp')?.val;\n const build = snapshot?.childNamed('buildNumber')?.val;\n\n // If we weren't able to parse out the required 3 version elements,\n // return null because we can't determine the fixed version of the latest snapshot.\n if (!version || !timestamp || !build) {\n return null;\n }\n return `${version}-${timestamp}-${build}`;\n}\n\nasync function getSnapshotFullVersion(\n http: Http,\n version: string,\n dependency: MavenDependency,\n repoUrl: string,\n): Promise<string | null> {\n // To determine what actual files are available for the snapshot, first we have to fetch and parse\n // the metadata located at http://<repo>/<group>/<artifact>/<version-SNAPSHOT>/maven-metadata.xml\n const metadataUrl = getMavenUrl(\n dependency,\n repoUrl,\n `${version}/maven-metadata.xml`,\n );\n\n const metadataXmlResult = await downloadMavenXml(http, metadataUrl);\n\n return metadataXmlResult\n .transform(({ data }) =>\n Result.wrapNullable(extractSnapshotVersion(data), {\n type: 'snapshot-extract-error',\n }),\n )\n .unwrapOrNull();\n}\n\nfunction isSnapshotVersion(version: string): boolean {\n if (version.endsWith('-SNAPSHOT')) {\n return true;\n }\n return false;\n}\n\nexport async function createUrlForDependencyPom(\n http: Http,\n version: string,\n dependency: MavenDependency,\n repoUrl: string,\n): Promise<string> {\n if (isSnapshotVersion(version)) {\n // By default, Maven snapshots are deployed to the repository with fixed file names.\n // Resolve the full, actual pom file name for the version.\n const fullVersion = await getSnapshotFullVersion(\n http,\n version,\n dependency,\n repoUrl,\n );\n\n // If we were able to resolve the version, use that, otherwise fall back to using -SNAPSHOT\n if (fullVersion !== null) {\n // TODO: types (#22198)\n return `${version}/${dependency.name}-${fullVersion}.pom`;\n }\n }\n\n // TODO: types (#22198)\n return `${version}/${dependency.name}-${version}.pom`;\n}\n\nexport async function getDependencyInfo(\n http: Http,\n dependency: MavenDependency,\n repoUrl: string,\n version: string,\n recursionLimit = 5,\n): Promise<DependencyInfo> {\n const path = await createUrlForDependencyPom(\n http,\n version,\n dependency,\n repoUrl,\n );\n\n const pomUrl = getMavenUrl(dependency, repoUrl, path);\n const pomXmlResult = await downloadMavenXml(http, pomUrl);\n const dependencyInfoResult = await pomXmlResult.transform(\n async ({ data: pomContent }) => {\n const result: DependencyInfo = {};\n\n const homepage = pomContent.valueWithPath('url');\n if (homepage && !containsPlaceholder(homepage)) {\n result.homepage = homepage;\n }\n\n const sourceUrl = pomContent.valueWithPath('scm.url');\n if (\n sourceUrl &&\n !containsPlaceholder(removeKnownPlaceholders(sourceUrl))\n ) {\n result.sourceUrl = sourceUrl\n .replace(regEx(/^scm:/), '')\n .replace(regEx(/^git:/), '')\n .replace(regEx(/^git@github.com:/), 'https://github.com/')\n .replace(regEx(/^git@github.com\\//), 'https://github.com/');\n\n if (result.sourceUrl.startsWith('//')) {\n // most likely the result of us stripping scm:, git: etc\n // going with prepending https: here which should result in potential information retrival\n result.sourceUrl = `https:${result.sourceUrl}`;\n }\n }\n\n const relocation = pomContent.descendantWithPath(\n 'distributionManagement.relocation',\n );\n if (relocation) {\n const relocationGroup =\n relocation.valueWithPath('groupId') ?? dependency.group;\n const relocationName =\n relocation.valueWithPath('artifactId') ?? dependency.name;\n result.replacementName = `${relocationGroup}:${relocationName}`;\n const relocationVersion = relocation.valueWithPath('version');\n result.replacementVersion = relocationVersion ?? version;\n const relocationMessage = relocation.valueWithPath('message');\n if (relocationMessage) {\n result.deprecationMessage = relocationMessage;\n }\n }\n\n const groupId = pomContent.valueWithPath('groupId');\n if (groupId) {\n result.packageScope = groupId;\n }\n\n const parent = pomContent.childNamed('parent');\n if (\n recursionLimit > 0 &&\n parent &&\n (!result.sourceUrl || !result.homepage)\n ) {\n // if we found a parent and are missing some information\n // trying to get the scm/homepage information from it\n const [parentGroupId, parentArtifactId, parentVersion] = [\n 'groupId',\n 'artifactId',\n 'version',\n ].map((k) => parent.valueWithPath(k)?.replace(/\\s+/g, ''));\n if (parentGroupId && parentArtifactId && parentVersion) {\n const parentDisplayId = `${parentGroupId}:${parentArtifactId}`;\n const parentDependency = getDependencyParts(parentDisplayId);\n const parentInformation = await getDependencyInfo(\n http,\n parentDependency,\n repoUrl,\n parentVersion,\n recursionLimit - 1,\n );\n if (!result.sourceUrl && parentInformation.sourceUrl) {\n result.sourceUrl = parentInformation.sourceUrl;\n }\n if (!result.homepage && parentInformation.homepage) {\n result.homepage = parentInformation.homepage;\n }\n }\n }\n\n return result;\n },\n );\n\n return dependencyInfoResult.unwrapOr({});\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"util.js","names":["packageCache.get","HttpError","packageCache.set","packageCache.getCacheType"],"sources":["../../../../lib/modules/datasource/maven/util.ts"],"sourcesContent":["import { Readable } from 'node:stream';\nimport { GetObjectCommand } from '@aws-sdk/client-s3';\nimport { XmlDocument } from 'xmldoc';\nimport { HOST_DISABLED } from '../../../constants/error-messages.ts';\nimport { logger } from '../../../logger/index.ts';\nimport { ExternalHostError } from '../../../types/errors/external-host-error.ts';\nimport * as packageCache from '../../../util/cache/package/index.ts';\nimport { PackageHttpCacheProvider } from '../../../util/http/cache/package-http-cache-provider.ts';\nimport { type Http, HttpError } from '../../../util/http/index.ts';\nimport type { HttpOptions, HttpResponse } from '../../../util/http/types.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { Result } from '../../../util/result.ts';\nimport { getS3Client, parseS3Url } from '../../../util/s3.ts';\nimport { streamToString } from '../../../util/streams.ts';\nimport { asTimestamp } from '../../../util/timestamp.ts';\nimport { ensureTrailingSlash, isHttpUrl } from '../../../util/url.ts';\nimport { getGoogleAuthToken } from '../util.ts';\nimport { isMavenCentral } from './common.ts';\nimport { CachedMavenXml } from './schema.ts';\nimport type {\n DependencyInfo,\n MavenDependency,\n MavenFetchResult,\n MavenFetchSuccess,\n} from './types.ts';\n\nfunction isTemporaryError(err: HttpError): boolean {\n if (err.code === 'ECONNRESET') {\n return true;\n }\n\n if (err.response) {\n const status = err.response.statusCode;\n return status === 429 || (status >= 500 && status < 600);\n }\n\n return false;\n}\n\nfunction isHostError(err: HttpError): boolean {\n return err.code === 'ETIMEDOUT';\n}\n\nfunction isNotFoundError(err: HttpError): boolean {\n return err.code === 'ENOTFOUND' || err.response?.statusCode === 404;\n}\n\nfunction isPermissionsIssue(err: HttpError): boolean {\n const status = err.response?.statusCode;\n return status === 401 || status === 403;\n}\n\nfunction isConnectionError(err: HttpError): boolean {\n return (\n err.code === 'EAI_AGAIN' ||\n err.code === 'ERR_TLS_CERT_ALTNAME_INVALID' ||\n err.code === 'ECONNREFUSED'\n );\n}\n\nfunction isUnsupportedHostError(err: HttpError): boolean {\n return err.name === 'UnsupportedProtocolError';\n}\n\nconst cacheProvider = new PackageHttpCacheProvider({\n namespace: 'datasource-maven:cache-provider',\n softTtlMinutes: 15,\n checkAuthorizationHeader: true,\n checkCacheControlHeader: false, // Maven doesn't respond with `cache-control` headers\n writeSchema: CachedMavenXml,\n});\n\n// Release POMs and timestamped snapshot POMs are immutable once published, so we can cache them much longer than mutable metadata files.\nconst pomCacheProvider = new PackageHttpCacheProvider({\n namespace: 'datasource-maven:pom-cache-provider',\n softTtlMinutes: 60 * 24 * 28, // 28 days before we'll give it another check, just in case it's updated\n checkAuthorizationHeader: true,\n checkCacheControlHeader: false,\n writeSchema: CachedMavenXml,\n});\n\nfunction selectCacheProvider(url: string): PackageHttpCacheProvider {\n // Non-timestamped -SNAPSHOT.pom files are mutable; everything else ending in .pom (release POMs and timestamped snapshot POMs) is immutable.\n if (url.endsWith('.pom') && !url.endsWith('-SNAPSHOT.pom')) {\n return pomCacheProvider;\n }\n return cacheProvider;\n}\n\nconst METADATA_NOT_FOUND_NAMESPACE =\n 'datasource-maven:metadata-not-found' as const;\nconst METADATA_NOT_FOUND_TTL_MINUTES = 60 * 12; // 12 hours\n\n/** introduces jitter to make sure that a given repo's cache expiring doesn't lead to many requests leading to high traffic and/or rate limits */\nfunction getMetadataNotFoundTtl(): number {\n const jitter = Math.floor(Math.random() * 60 * 2); // 0–120 minutes\n return METADATA_NOT_FOUND_TTL_MINUTES + jitter;\n}\n\nfunction isMetadataUrl(url: string): boolean {\n return url.endsWith('/maven-metadata.xml');\n}\n\nexport async function downloadHttpProtocol(\n http: Http,\n pkgUrl: URL | string,\n opts: HttpOptions = {},\n): Promise<MavenFetchResult> {\n const url = pkgUrl.toString();\n\n if (isMetadataUrl(url)) {\n const cacheHasNotFoundResponse = await packageCache.get<true>(\n METADATA_NOT_FOUND_NAMESPACE,\n url,\n );\n if (cacheHasNotFoundResponse) {\n logger.trace(\n { url },\n 'Returning cached 404 response for the metadata-metadata URL request',\n );\n return Result.err({ type: 'not-found' });\n }\n }\n\n const fetchResult = await Result.wrap<HttpResponse, Error>(\n http.getText(url, { ...opts, cacheProvider: selectCacheProvider(url) }),\n )\n .transform((res): MavenFetchSuccess => {\n const result: MavenFetchSuccess = { data: res.body };\n\n if (!res.authorization) {\n result.isCacheable = true;\n }\n\n const lastModified = asTimestamp(res?.headers?.['last-modified']);\n if (lastModified) {\n result.lastModified = lastModified;\n }\n\n return result;\n })\n .catch(async (err): Promise<MavenFetchResult> => {\n /* v8 ignore next: never happens, needs for type narrowing */\n if (!(err instanceof HttpError)) {\n return Result.err({ type: 'unknown', err });\n }\n\n const failedUrl = url;\n if (err.message === HOST_DISABLED) {\n logger.trace({ failedUrl }, 'Host disabled');\n return Result.err({ type: 'host-disabled' });\n }\n\n if (isNotFoundError(err)) {\n logger.trace({ failedUrl }, `Url not found`);\n if (isMetadataUrl(failedUrl)) {\n await packageCache.set(\n METADATA_NOT_FOUND_NAMESPACE,\n failedUrl,\n true,\n getMetadataNotFoundTtl(),\n );\n }\n return Result.err({ type: 'not-found' });\n }\n\n if (isHostError(err)) {\n logger.debug(`Cannot connect to host ${failedUrl}`);\n return Result.err({ type: 'host-error' });\n }\n\n if (isPermissionsIssue(err)) {\n logger.debug(\n `Dependency lookup unauthorized. Please add authentication with a hostRule for ${failedUrl}`,\n );\n return Result.err({ type: 'permission-issue' });\n }\n\n if (isTemporaryError(err)) {\n logger.debug({ failedUrl, err }, 'Temporary error');\n\n if (isMavenCentral(url)) {\n const statusCode = err?.response?.statusCode;\n if (statusCode === 429) {\n if (packageCache.getCacheType() === 'redis') {\n logger.once.warn(\n { failedUrl },\n 'Maven Central rate limiting detected despite Redis caching.',\n );\n } else {\n logger.once.warn(\n { failedUrl },\n 'Maven Central rate limiting detected. Persistent caching required.',\n );\n }\n }\n return Result.err({ type: 'maven-central-temporary-error', err });\n } else {\n return Result.err({ type: 'temporary-error' });\n }\n }\n\n if (isConnectionError(err)) {\n logger.debug(`Connection refused to maven registry ${failedUrl}`);\n return Result.err({ type: 'connection-error' });\n }\n\n if (isUnsupportedHostError(err)) {\n logger.debug(`Unsupported host ${failedUrl}`);\n return Result.err({ type: 'unsupported-host' });\n }\n\n logger.info({ failedUrl, err }, 'Unknown HTTP download error');\n return Result.err({ type: 'unknown', err });\n });\n\n const { err } = fetchResult.unwrap();\n if (err?.type === 'maven-central-temporary-error') {\n throw new ExternalHostError(err.err);\n }\n\n return fetchResult;\n}\n\nexport async function downloadHttpContent(\n http: Http,\n pkgUrl: URL | string,\n opts: HttpOptions = {},\n): Promise<string | null> {\n const fetchResult = await downloadHttpProtocol(http, pkgUrl, opts);\n return fetchResult.transform(({ data }) => data).unwrapOrNull();\n}\n\nfunction isS3NotFound(err: Error): boolean {\n return err.message === 'NotFound' || err.message === 'NoSuchKey';\n}\n\nexport async function downloadS3Protocol(\n pkgUrl: URL,\n): Promise<MavenFetchResult> {\n logger.trace({ url: pkgUrl.toString() }, `Attempting to load S3 dependency`);\n\n const s3Url = parseS3Url(pkgUrl);\n if (!s3Url) {\n return Result.err({ type: 'invalid-url' });\n }\n\n return await Result.wrap(() => {\n const command = new GetObjectCommand(s3Url);\n const client = getS3Client();\n return client.send(command);\n })\n .transform(\n async ({\n Body,\n LastModified,\n DeleteMarker,\n }): Promise<MavenFetchResult> => {\n if (DeleteMarker) {\n logger.trace(\n { failedUrl: pkgUrl.toString() },\n 'Maven S3 lookup error: DeleteMarker encountered',\n );\n return Result.err({ type: 'not-found' });\n }\n\n if (!(Body instanceof Readable)) {\n logger.debug(\n { failedUrl: pkgUrl.toString() },\n 'Maven S3 lookup error: unsupported Body type',\n );\n return Result.err({ type: 'unsupported-format' });\n }\n\n const data = await streamToString(Body);\n const result: MavenFetchSuccess = { data };\n\n const lastModified = asTimestamp(LastModified);\n if (lastModified) {\n result.lastModified = lastModified;\n }\n\n return Result.ok(result);\n },\n )\n .catch((err): MavenFetchResult => {\n if (!(err instanceof Error)) {\n return Result.err(err);\n }\n\n const failedUrl = pkgUrl.toString();\n\n if (err.name === 'CredentialsProviderError') {\n logger.debug(\n { failedUrl },\n 'Maven S3 lookup error: credentials provider error, check \"AWS_ACCESS_KEY_ID\" and \"AWS_SECRET_ACCESS_KEY\" variables',\n );\n return Result.err({ type: 'credentials-error' });\n }\n\n if (err.message === 'Region is missing') {\n logger.debug(\n { failedUrl },\n 'Maven S3 lookup error: missing region, check \"AWS_REGION\" variable',\n );\n return Result.err({ type: 'missing-aws-region' });\n }\n\n if (isS3NotFound(err)) {\n logger.trace({ failedUrl }, 'Maven S3 lookup error: object not found');\n return Result.err({ type: 'not-found' });\n }\n\n logger.debug({ failedUrl, err }, 'Maven S3 lookup error: unknown error');\n return Result.err({ type: 'unknown', err });\n });\n}\n\nexport async function downloadArtifactRegistryProtocol(\n http: Http,\n pkgUrl: URL,\n): Promise<MavenFetchResult> {\n const opts: HttpOptions = {};\n const host = pkgUrl.host;\n const path = pkgUrl.pathname;\n\n logger.trace({ host, path }, `Using google auth for Maven repository`);\n const auth = await getGoogleAuthToken();\n if (auth) {\n opts.headers = { authorization: `Basic ${auth}` };\n } else {\n logger.once.debug(\n { host, path },\n 'Could not get Google access token, using no auth',\n );\n }\n\n const url = pkgUrl.toString().replace('artifactregistry:', 'https:');\n\n return downloadHttpProtocol(http, url, opts);\n}\n\nfunction containsPlaceholder(str: string): boolean {\n return regEx(/\\${.*?}/g).test(str);\n}\n\nfunction removeKnownPlaceholders(str: string): string {\n return str.replace(regEx(/\\/tree\\/\\${[^}]+}/), '');\n}\n\nexport function getMavenUrl(\n dependency: MavenDependency,\n repoUrl: string,\n path: string,\n): URL {\n return new URL(\n `${dependency.dependencyUrl}/${path}`,\n ensureTrailingSlash(repoUrl),\n );\n}\n\nexport async function downloadMaven(\n http: Http,\n url: URL,\n): Promise<MavenFetchResult> {\n const protocol = url.protocol;\n\n let result: MavenFetchResult = Result.err({ type: 'unsupported-protocol' });\n\n if (isHttpUrl(url)) {\n result = await downloadHttpProtocol(http, url);\n }\n\n if (protocol === 'artifactregistry:') {\n result = await downloadArtifactRegistryProtocol(http, url);\n }\n\n if (protocol === 's3:') {\n result = await downloadS3Protocol(url);\n }\n\n return result.onError((err) => {\n if (err.type === 'unsupported-protocol') {\n logger.debug(\n { url: url.toString() },\n `Maven lookup error: unsupported protocol (${protocol})`,\n );\n }\n });\n}\n\nexport async function downloadMavenXml(\n http: Http,\n url: URL,\n): Promise<MavenFetchResult<XmlDocument>> {\n const rawResult = await downloadMaven(http, url);\n return rawResult.transform((result): MavenFetchResult<XmlDocument> => {\n try {\n return Result.ok({\n ...result,\n data: new XmlDocument(result.data),\n });\n } catch (err) {\n return Result.err({ type: 'xml-parse-error', err });\n }\n });\n}\n\nexport function getDependencyParts(packageName: string): MavenDependency {\n const [group, name] = packageName.split(':');\n const dependencyUrl = `${group.replace(regEx(/\\./g), '/')}/${name}`;\n return {\n display: packageName,\n group,\n name,\n dependencyUrl,\n };\n}\n\nfunction extractSnapshotVersion(metadata: XmlDocument): string | null {\n // Parse the maven-metadata.xml for the snapshot version and determine\n // the fixed version of the latest deployed snapshot.\n // The metadata descriptor can be found at\n // https://maven.apache.org/ref/3.3.3/maven-repository-metadata/repository-metadata.html\n //\n // Basically, we need to replace -SNAPSHOT with the artifact timestanp & build number,\n // so for example 1.0.0-SNAPSHOT will become 1.0.0-<timestamp>-<buildNumber>\n const version = metadata\n .descendantWithPath('version')\n ?.val?.replace('-SNAPSHOT', '');\n\n const snapshot = metadata.descendantWithPath('versioning.snapshot');\n const timestamp = snapshot?.childNamed('timestamp')?.val;\n const build = snapshot?.childNamed('buildNumber')?.val;\n\n // If we weren't able to parse out the required 3 version elements,\n // return null because we can't determine the fixed version of the latest snapshot.\n if (!version || !timestamp || !build) {\n return null;\n }\n return `${version}-${timestamp}-${build}`;\n}\n\nasync function getSnapshotFullVersion(\n http: Http,\n version: string,\n dependency: MavenDependency,\n repoUrl: string,\n): Promise<string | null> {\n // To determine what actual files are available for the snapshot, first we have to fetch and parse\n // the metadata located at http://<repo>/<group>/<artifact>/<version-SNAPSHOT>/maven-metadata.xml\n const metadataUrl = getMavenUrl(\n dependency,\n repoUrl,\n `${version}/maven-metadata.xml`,\n );\n\n const metadataXmlResult = await downloadMavenXml(http, metadataUrl);\n\n return metadataXmlResult\n .transform(({ data }) =>\n Result.wrapNullable(extractSnapshotVersion(data), {\n type: 'snapshot-extract-error',\n }),\n )\n .unwrapOrNull();\n}\n\nfunction isSnapshotVersion(version: string): boolean {\n if (version.endsWith('-SNAPSHOT')) {\n return true;\n }\n return false;\n}\n\nexport async function createUrlForDependencyPom(\n http: Http,\n version: string,\n dependency: MavenDependency,\n repoUrl: string,\n): Promise<string> {\n if (isSnapshotVersion(version)) {\n // By default, Maven snapshots are deployed to the repository with fixed file names.\n // Resolve the full, actual pom file name for the version.\n const fullVersion = await getSnapshotFullVersion(\n http,\n version,\n dependency,\n repoUrl,\n );\n\n // If we were able to resolve the version, use that, otherwise fall back to using -SNAPSHOT\n if (fullVersion !== null) {\n // TODO: types (#22198)\n return `${version}/${dependency.name}-${fullVersion}.pom`;\n }\n }\n\n // TODO: types (#22198)\n return `${version}/${dependency.name}-${version}.pom`;\n}\n\nexport async function getDependencyInfo(\n http: Http,\n dependency: MavenDependency,\n repoUrl: string,\n version: string,\n recursionLimit = 5,\n): Promise<DependencyInfo> {\n const path = await createUrlForDependencyPom(\n http,\n version,\n dependency,\n repoUrl,\n );\n\n const pomUrl = getMavenUrl(dependency, repoUrl, path);\n const pomXmlResult = await downloadMavenXml(http, pomUrl);\n const dependencyInfoResult = await pomXmlResult.transform(\n async ({ data: pomContent }) => {\n const result: DependencyInfo = {};\n\n const homepage = pomContent.valueWithPath('url');\n if (homepage && !containsPlaceholder(homepage)) {\n result.homepage = homepage;\n }\n\n const sourceUrl = pomContent.valueWithPath('scm.url');\n if (\n sourceUrl &&\n !containsPlaceholder(removeKnownPlaceholders(sourceUrl))\n ) {\n result.sourceUrl = sourceUrl\n .replace(regEx(/^scm:/), '')\n .replace(regEx(/^git:/), '')\n .replace(regEx(/^git@github.com:/), 'https://github.com/')\n .replace(regEx(/^git@github.com\\//), 'https://github.com/');\n\n if (result.sourceUrl.startsWith('//')) {\n // most likely the result of us stripping scm:, git: etc\n // going with prepending https: here which should result in potential information retrival\n result.sourceUrl = `https:${result.sourceUrl}`;\n }\n }\n\n const relocation = pomContent.descendantWithPath(\n 'distributionManagement.relocation',\n );\n if (relocation) {\n const relocationGroup =\n relocation.valueWithPath('groupId') ?? dependency.group;\n const relocationName =\n relocation.valueWithPath('artifactId') ?? dependency.name;\n result.replacementName = `${relocationGroup}:${relocationName}`;\n const relocationVersion = relocation.valueWithPath('version');\n result.replacementVersion = relocationVersion ?? version;\n const relocationMessage = relocation.valueWithPath('message');\n if (relocationMessage) {\n result.deprecationMessage = relocationMessage;\n }\n }\n\n const groupId = pomContent.valueWithPath('groupId');\n if (groupId) {\n result.packageScope = groupId;\n }\n\n const parent = pomContent.childNamed('parent');\n if (\n recursionLimit > 0 &&\n parent &&\n (!result.sourceUrl || !result.homepage)\n ) {\n // if we found a parent and are missing some information\n // trying to get the scm/homepage information from it\n const [parentGroupId, parentArtifactId, parentVersion] = [\n 'groupId',\n 'artifactId',\n 'version',\n ].map((k) => parent.valueWithPath(k)?.replace(/\\s+/g, ''));\n if (parentGroupId && parentArtifactId && parentVersion) {\n const parentDisplayId = `${parentGroupId}:${parentArtifactId}`;\n const parentDependency = getDependencyParts(parentDisplayId);\n const parentInformation = await getDependencyInfo(\n http,\n parentDependency,\n repoUrl,\n parentVersion,\n recursionLimit - 1,\n );\n if (!result.sourceUrl && parentInformation.sourceUrl) {\n result.sourceUrl = parentInformation.sourceUrl;\n }\n if (!result.homepage && parentInformation.homepage) {\n result.homepage = parentInformation.homepage;\n }\n }\n }\n\n return result;\n },\n );\n\n return dependencyInfoResult.unwrapOr({});\n}\n"],"mappings":"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"}
|
|
@@ -100,6 +100,6 @@ function shouldDeleteHomepage(sourceUrl, homepage) {
|
|
|
100
100
|
return massagedSourceUrl === homepage;
|
|
101
101
|
}
|
|
102
102
|
//#endregion
|
|
103
|
-
export { addMetaData, massageGithubUrl };
|
|
103
|
+
export { addMetaData, massageGithubUrl, massageGitlabUrl, massageUrl, shouldDeleteHomepage };
|
|
104
104
|
|
|
105
105
|
//# sourceMappingURL=metadata.js.map
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { LooseArray } from "../../../util/schema-utils/index.js";
|
|
2
2
|
import { z } from "zod/v4";
|
|
3
|
-
|
|
3
|
+
//#region lib/modules/datasource/node-version/schema.ts
|
|
4
|
+
const NodeRelease = z.object({
|
|
4
5
|
/** node version */
|
|
5
6
|
version: z.string(),
|
|
6
7
|
/** release date */
|
|
7
8
|
date: z.string().optional(),
|
|
8
9
|
/** Is LTS release */
|
|
9
10
|
lts: z.union([z.literal(false), z.string()])
|
|
10
|
-
})
|
|
11
|
+
});
|
|
12
|
+
const NodeReleases = LooseArray(NodeRelease);
|
|
11
13
|
//#endregion
|
|
12
|
-
export { NodeReleases };
|
|
14
|
+
export { NodeRelease, NodeReleases };
|
|
13
15
|
|
|
14
16
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/node-version/schema.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { LooseArray } from '../../../util/schema-utils/index.ts';\n\nexport const NodeRelease = z.object({\n /** node version */\n version: z.string(),\n /** release date */\n date: z.string().optional(),\n /** Is LTS release */\n lts: z.union([z.literal(false), z.string()]),\n});\n\nexport type NodeRelease = z.infer<typeof NodeRelease>;\n\nexport const NodeReleases = LooseArray(NodeRelease);\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/node-version/schema.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { LooseArray } from '../../../util/schema-utils/index.ts';\n\nexport const NodeRelease = z.object({\n /** node version */\n version: z.string(),\n /** release date */\n date: z.string().optional(),\n /** Is LTS release */\n lts: z.union([z.literal(false), z.string()]),\n});\n\nexport type NodeRelease = z.infer<typeof NodeRelease>;\n\nexport const NodeReleases = LooseArray(NodeRelease);\n"],"mappings":";;;AAGA,MAAa,cAAc,EAAE,OAAO;;CAElC,SAAS,EAAE,OAAO;;CAElB,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS;;CAE1B,KAAK,EAAE,MAAM,CAAC,EAAE,QAAQ,KAAK,GAAG,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC;AAID,MAAa,eAAe,WAAW,WAAW"}
|
|
@@ -2,7 +2,7 @@ import "../../versioning/npm/index.js";
|
|
|
2
2
|
import { Datasource } from "../datasource.js";
|
|
3
3
|
import { defaultRegistryUrl } from "./common.js";
|
|
4
4
|
import { getDependency } from "./get.js";
|
|
5
|
-
import "./npmrc.js";
|
|
5
|
+
import { setNpmrc } from "./npmrc.js";
|
|
6
6
|
//#region lib/modules/datasource/npm/index.ts
|
|
7
7
|
var NpmDatasource = class NpmDatasource extends Datasource {
|
|
8
8
|
static id = "npm";
|
|
@@ -24,6 +24,6 @@ var NpmDatasource = class NpmDatasource extends Datasource {
|
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
26
|
//#endregion
|
|
27
|
-
export { NpmDatasource };
|
|
27
|
+
export { NpmDatasource, setNpmrc };
|
|
28
28
|
|
|
29
29
|
//# sourceMappingURL=index.js.map
|
|
@@ -126,6 +126,6 @@ function resolvePackageUrl(registryUrl, packageName) {
|
|
|
126
126
|
return new URL(encodeURIComponent(packageName).replace(regEx(/^%40/), "@"), ensureTrailingSlash(registryUrl)).href;
|
|
127
127
|
}
|
|
128
128
|
//#endregion
|
|
129
|
-
export { resolvePackageUrl, resolveRegistryUrl, setNpmrc };
|
|
129
|
+
export { convertNpmrcToRules, getMatchHostFromNpmrcHost, resolvePackageUrl, resolveRegistryUrl, setNpmrc };
|
|
130
130
|
|
|
131
131
|
//# sourceMappingURL=npmrc.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { regEx } from "../../../util/regex.js";
|
|
2
2
|
import { logger } from "../../../logger/index.js";
|
|
3
3
|
import { parseUrl } from "../../../util/url.js";
|
|
4
|
-
import api from "../../versioning/nuget/index.js";
|
|
4
|
+
import { api } from "../../versioning/nuget/index.js";
|
|
5
5
|
//#region lib/modules/datasource/nuget/common.ts
|
|
6
6
|
const buildMetaRe = regEx(/\+.+$/g);
|
|
7
7
|
function removeBuildMeta(version) {
|
|
@@ -21,6 +21,6 @@ const CatalogPage = z.object({
|
|
|
21
21
|
});
|
|
22
22
|
const PackageRegistration = z.object({ items: LooseArray(CatalogPage).default([]) });
|
|
23
23
|
//#endregion
|
|
24
|
-
export { CatalogPage, PackageRegistration, ServicesIndexRaw };
|
|
24
|
+
export { CatalogEntry, CatalogPage, PackageRegistration, ServicesIndexRaw };
|
|
25
25
|
|
|
26
26
|
//# sourceMappingURL=schema.js.map
|
|
@@ -5,7 +5,7 @@ import { ensureTrailingSlash } from "../../../util/url.js";
|
|
|
5
5
|
import { coerceArray } from "../../../util/array.js";
|
|
6
6
|
import { ExternalHostError } from "../../../types/errors/external-host-error.js";
|
|
7
7
|
import { createCacheWriteStream, ensureCacheDir, pipeline, readCacheFile, rmCache } from "../../../util/fs/index.js";
|
|
8
|
-
import api from "../../versioning/nuget/index.js";
|
|
8
|
+
import { api } from "../../versioning/nuget/index.js";
|
|
9
9
|
import { get, set } from "../../../util/cache/package/index.js";
|
|
10
10
|
import { withCache } from "../../../util/cache/package/with-cache.js";
|
|
11
11
|
import { RequestError } from "../../../util/http/got.js";
|
|
@@ -124,6 +124,6 @@ const RegistryMeta = z.record(z.string(), z.unknown()).catch({}).pipe(PackagistF
|
|
|
124
124
|
availablePackages
|
|
125
125
|
}));
|
|
126
126
|
//#endregion
|
|
127
|
-
export { PackagesResponse, PackagistFile, RegistryMeta, extractDepReleases, parsePackagesResponses };
|
|
127
|
+
export { ComposerPackagesResponse, ComposerRelease, ComposerReleases, HashSpec, MinifiedArray, PackagesResponse, PackagistFile, RegistryMeta, extractDepReleases, extractReleaseResult, parsePackagesResponse, parsePackagesResponses };
|
|
128
128
|
|
|
129
129
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { LooseArray } from "../../../util/schema-utils/index.js";
|
|
2
2
|
import { z } from "zod/v4";
|
|
3
|
-
|
|
3
|
+
//#region lib/modules/datasource/repology/schema.ts
|
|
4
|
+
const RepologyPackage = z.object({
|
|
4
5
|
repo: z.string(),
|
|
5
6
|
visiblename: z.string(),
|
|
6
7
|
version: z.string(),
|
|
7
8
|
srcname: z.string().nullable().optional(),
|
|
8
9
|
binname: z.string().nullable().optional(),
|
|
9
10
|
origversion: z.string().nullable().optional()
|
|
10
|
-
})
|
|
11
|
+
});
|
|
12
|
+
const RepologyPackages = LooseArray(RepologyPackage).catch([]);
|
|
11
13
|
//#endregion
|
|
12
|
-
export { RepologyPackages };
|
|
14
|
+
export { RepologyPackage, RepologyPackages };
|
|
13
15
|
|
|
14
16
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/repology/schema.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { LooseArray } from '../../../util/schema-utils/index.ts';\n\nexport const RepologyPackage = z.object({\n repo: z.string(),\n visiblename: z.string(),\n version: z.string(),\n srcname: z.string().nullable().optional(),\n binname: z.string().nullable().optional(),\n origversion: z.string().nullable().optional(),\n});\n\nexport type RepologyPackage = z.infer<typeof RepologyPackage>;\n\nexport const RepologyPackages = LooseArray(RepologyPackage).catch([]);\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/repology/schema.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { LooseArray } from '../../../util/schema-utils/index.ts';\n\nexport const RepologyPackage = z.object({\n repo: z.string(),\n visiblename: z.string(),\n version: z.string(),\n srcname: z.string().nullable().optional(),\n binname: z.string().nullable().optional(),\n origversion: z.string().nullable().optional(),\n});\n\nexport type RepologyPackage = z.infer<typeof RepologyPackage>;\n\nexport const RepologyPackages = LooseArray(RepologyPackage).catch([]);\n"],"mappings":";;;AAGA,MAAa,kBAAkB,EAAE,OAAO;CACtC,MAAM,EAAE,OAAO;CACf,aAAa,EAAE,OAAO;CACtB,SAAS,EAAE,OAAO;CAClB,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACxC,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACxC,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AAC9C,CAAC;AAID,MAAa,mBAAmB,WAAW,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -18,6 +18,6 @@ function getV1Releases(http, registryUrl, packageName) {
|
|
|
18
18
|
return http.getJsonSafe(versionsUrl, GemVersions).transform((releaseResult) => getV1Metadata(http, registryUrl, packageName).transform((metadata) => assignMetadata(releaseResult, metadata)).unwrapOr(releaseResult));
|
|
19
19
|
}
|
|
20
20
|
//#endregion
|
|
21
|
-
export { getV1Releases };
|
|
21
|
+
export { assignMetadata, getV1Metadata, getV1Releases };
|
|
22
22
|
|
|
23
23
|
//# sourceMappingURL=common.js.map
|
|
@@ -27,7 +27,10 @@ var MetadataCache = class {
|
|
|
27
27
|
});
|
|
28
28
|
});
|
|
29
29
|
const saveCache = async (cache, ttlMinutes = 2400 * 60, ttlDelta = 14400) => {
|
|
30
|
-
if (parseUrl(registryUrl)?.hostname === "rubygems.org")
|
|
30
|
+
if (parseUrl(registryUrl)?.hostname === "rubygems.org") {
|
|
31
|
+
const ttl = ttlMinutes + Math.floor(Math.random() * ttlDelta);
|
|
32
|
+
await set(cacheNs, cacheKey, cache, ttl);
|
|
33
|
+
}
|
|
31
34
|
};
|
|
32
35
|
return await loadCache().catch((err) => getV1Releases(this.http, registryUrl, packageName).transform(async (data) => {
|
|
33
36
|
const dataHash = hashReleases(data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-cache.js","names":["packageCache.get","packageCache.set"],"sources":["../../../../lib/modules/datasource/rubygems/metadata-cache.ts"],"sourcesContent":["import { logger } from '../../../logger/index.ts';\nimport * as packageCache from '../../../util/cache/package/index.ts';\nimport { toSha256 } from '../../../util/hash.ts';\nimport type { Http } from '../../../util/http/index.ts';\nimport type { AsyncResult } from '../../../util/result.ts';\nimport { Result } from '../../../util/result.ts';\nimport { parseUrl } from '../../../util/url.ts';\nimport type { ReleaseResult } from '../types.ts';\nimport { getV1Releases } from './common.ts';\n\ninterface CacheRecord {\n hash: string;\n data: ReleaseResult;\n isFallback?: true;\n}\n\nfunction hashVersions(versions: string[]): string {\n return toSha256(versions.sort().join(','));\n}\n\nfunction hashReleases(releases: ReleaseResult): string {\n return hashVersions(releases.releases.map((release) => release.version));\n}\n\ninterface CacheNotFoundError {\n type: 'cache-not-found';\n}\ninterface CacheStaleError {\n type: 'cache-stale';\n cache: CacheRecord;\n}\ninterface CacheInvalidError {\n type: 'cache-invalid';\n}\ntype CacheLoadError = CacheNotFoundError | CacheStaleError;\ntype CacheError = CacheNotFoundError | CacheStaleError | CacheInvalidError;\n\nexport class MetadataCache {\n private readonly http: Http;\n\n constructor(http: Http) {\n this.http = http;\n }\n\n async getRelease(\n registryUrl: string,\n packageName: string,\n versions: string[],\n ): Promise<ReleaseResult> {\n const cacheNs = `datasource-rubygems`;\n const cacheKey = `metadata-cache:${registryUrl}:${packageName}`;\n const versionsHash = hashVersions(versions);\n\n const loadCache = (): AsyncResult<ReleaseResult, CacheLoadError> =>\n Result.wrapNullable<CacheRecord, CacheLoadError, CacheLoadError>(\n packageCache.get<CacheRecord>(cacheNs, cacheKey),\n { type: 'cache-not-found' },\n ).transform((cache) => {\n return versionsHash === cache.hash\n ? Result.ok(cache.data)\n : Result.err({ type: 'cache-stale', cache });\n });\n\n const saveCache = async (\n cache: CacheRecord,\n ttlMinutes = 100 * 24 * 60,\n ttlDelta = 10 * 24 * 60,\n ): Promise<void> => {\n const registryHostname = parseUrl(registryUrl)?.hostname;\n if (registryHostname === 'rubygems.org') {\n const ttlRandomDelta = Math.floor(Math.random() * ttlDelta);\n const ttl = ttlMinutes + ttlRandomDelta;\n await packageCache.set(cacheNs, cacheKey, cache, ttl);\n }\n };\n\n return await loadCache()\n .catch((err) =>\n getV1Releases(this.http, registryUrl, packageName).transform(\n async (\n data: ReleaseResult,\n ): Promise<Result<ReleaseResult, CacheError>> => {\n const dataHash = hashReleases(data);\n if (dataHash === versionsHash) {\n await saveCache({\n hash: dataHash,\n data,\n });\n return Result.ok(data);\n }\n\n /**\n * Return stale cache for 24 hours,\n * if metadata is inconsistent with versions list.\n */\n if (err.type === 'cache-stale') {\n const staleCache = err.cache;\n if (!staleCache.isFallback) {\n await saveCache(\n { ...staleCache, isFallback: true },\n 24 * 60,\n 0,\n );\n }\n return Result.ok(staleCache.data);\n }\n\n return Result.err({ type: 'cache-invalid' });\n },\n ),\n )\n .catch((err) => {\n logger.debug(\n { err },\n 'Rubygems: error fetching rubygems data, falling back to versions-only result',\n );\n const releases = versions.map((version) => ({ version }));\n return Result.ok({ releases } as ReleaseResult);\n })\n .unwrapOrThrow();\n }\n}\n"],"mappings":";;;;;;;AAgBA,SAAS,aAAa,UAA4B;CAChD,OAAO,SAAS,SAAS,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC;AAC3C;AAEA,SAAS,aAAa,UAAiC;CACrD,OAAO,aAAa,SAAS,SAAS,KAAK,YAAY,QAAQ,OAAO,CAAC;AACzE;AAeA,IAAa,gBAAb,MAA2B;CACzB;CAEA,YAAY,MAAY;EACtB,KAAK,OAAO;CACd;CAEA,MAAM,WACJ,aACA,aACA,UACwB;EACxB,MAAM,UAAU;EAChB,MAAM,WAAW,kBAAkB,YAAY,GAAG;EAClD,MAAM,eAAe,aAAa,QAAQ;EAE1C,MAAM,kBACJ,OAAO,aACLA,IAA8B,SAAS,QAAQ,GAC/C,EAAE,MAAM,kBAAkB,CAC5B,CAAC,CAAC,WAAW,UAAU;GACrB,OAAO,iBAAiB,MAAM,OAC1B,OAAO,GAAG,MAAM,IAAI,IACpB,OAAO,IAAI;IAAE,MAAM;IAAe;GAAM,CAAC;EAC/C,CAAC;EAEH,MAAM,YAAY,OAChB,OACA,aAAa,OAAW,IACxB,WAAW,UACO;GAElB,IADyB,SAAS,WAAW,CAAC,EAAE,aACvB,
|
|
1
|
+
{"version":3,"file":"metadata-cache.js","names":["packageCache.get","packageCache.set"],"sources":["../../../../lib/modules/datasource/rubygems/metadata-cache.ts"],"sourcesContent":["import { logger } from '../../../logger/index.ts';\nimport * as packageCache from '../../../util/cache/package/index.ts';\nimport { toSha256 } from '../../../util/hash.ts';\nimport type { Http } from '../../../util/http/index.ts';\nimport type { AsyncResult } from '../../../util/result.ts';\nimport { Result } from '../../../util/result.ts';\nimport { parseUrl } from '../../../util/url.ts';\nimport type { ReleaseResult } from '../types.ts';\nimport { getV1Releases } from './common.ts';\n\ninterface CacheRecord {\n hash: string;\n data: ReleaseResult;\n isFallback?: true;\n}\n\nfunction hashVersions(versions: string[]): string {\n return toSha256(versions.sort().join(','));\n}\n\nfunction hashReleases(releases: ReleaseResult): string {\n return hashVersions(releases.releases.map((release) => release.version));\n}\n\ninterface CacheNotFoundError {\n type: 'cache-not-found';\n}\ninterface CacheStaleError {\n type: 'cache-stale';\n cache: CacheRecord;\n}\ninterface CacheInvalidError {\n type: 'cache-invalid';\n}\ntype CacheLoadError = CacheNotFoundError | CacheStaleError;\ntype CacheError = CacheNotFoundError | CacheStaleError | CacheInvalidError;\n\nexport class MetadataCache {\n private readonly http: Http;\n\n constructor(http: Http) {\n this.http = http;\n }\n\n async getRelease(\n registryUrl: string,\n packageName: string,\n versions: string[],\n ): Promise<ReleaseResult> {\n const cacheNs = `datasource-rubygems`;\n const cacheKey = `metadata-cache:${registryUrl}:${packageName}`;\n const versionsHash = hashVersions(versions);\n\n const loadCache = (): AsyncResult<ReleaseResult, CacheLoadError> =>\n Result.wrapNullable<CacheRecord, CacheLoadError, CacheLoadError>(\n packageCache.get<CacheRecord>(cacheNs, cacheKey),\n { type: 'cache-not-found' },\n ).transform((cache) => {\n return versionsHash === cache.hash\n ? Result.ok(cache.data)\n : Result.err({ type: 'cache-stale', cache });\n });\n\n const saveCache = async (\n cache: CacheRecord,\n ttlMinutes = 100 * 24 * 60,\n ttlDelta = 10 * 24 * 60,\n ): Promise<void> => {\n const registryHostname = parseUrl(registryUrl)?.hostname;\n if (registryHostname === 'rubygems.org') {\n const ttlRandomDelta = Math.floor(Math.random() * ttlDelta);\n const ttl = ttlMinutes + ttlRandomDelta;\n await packageCache.set(cacheNs, cacheKey, cache, ttl);\n }\n };\n\n return await loadCache()\n .catch((err) =>\n getV1Releases(this.http, registryUrl, packageName).transform(\n async (\n data: ReleaseResult,\n ): Promise<Result<ReleaseResult, CacheError>> => {\n const dataHash = hashReleases(data);\n if (dataHash === versionsHash) {\n await saveCache({\n hash: dataHash,\n data,\n });\n return Result.ok(data);\n }\n\n /**\n * Return stale cache for 24 hours,\n * if metadata is inconsistent with versions list.\n */\n if (err.type === 'cache-stale') {\n const staleCache = err.cache;\n if (!staleCache.isFallback) {\n await saveCache(\n { ...staleCache, isFallback: true },\n 24 * 60,\n 0,\n );\n }\n return Result.ok(staleCache.data);\n }\n\n return Result.err({ type: 'cache-invalid' });\n },\n ),\n )\n .catch((err) => {\n logger.debug(\n { err },\n 'Rubygems: error fetching rubygems data, falling back to versions-only result',\n );\n const releases = versions.map((version) => ({ version }));\n return Result.ok({ releases } as ReleaseResult);\n })\n .unwrapOrThrow();\n }\n}\n"],"mappings":";;;;;;;AAgBA,SAAS,aAAa,UAA4B;CAChD,OAAO,SAAS,SAAS,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC;AAC3C;AAEA,SAAS,aAAa,UAAiC;CACrD,OAAO,aAAa,SAAS,SAAS,KAAK,YAAY,QAAQ,OAAO,CAAC;AACzE;AAeA,IAAa,gBAAb,MAA2B;CACzB;CAEA,YAAY,MAAY;EACtB,KAAK,OAAO;CACd;CAEA,MAAM,WACJ,aACA,aACA,UACwB;EACxB,MAAM,UAAU;EAChB,MAAM,WAAW,kBAAkB,YAAY,GAAG;EAClD,MAAM,eAAe,aAAa,QAAQ;EAE1C,MAAM,kBACJ,OAAO,aACLA,IAA8B,SAAS,QAAQ,GAC/C,EAAE,MAAM,kBAAkB,CAC5B,CAAC,CAAC,WAAW,UAAU;GACrB,OAAO,iBAAiB,MAAM,OAC1B,OAAO,GAAG,MAAM,IAAI,IACpB,OAAO,IAAI;IAAE,MAAM;IAAe;GAAM,CAAC;EAC/C,CAAC;EAEH,MAAM,YAAY,OAChB,OACA,aAAa,OAAW,IACxB,WAAW,UACO;GAElB,IADyB,SAAS,WAAW,CAAC,EAAE,aACvB,gBAAgB;IAEvC,MAAM,MAAM,aADW,KAAK,MAAM,KAAK,OAAO,IAAI,QACZ;IACtC,MAAMC,IAAiB,SAAS,UAAU,OAAO,GAAG;GACtD;EACF;EAEA,OAAO,MAAM,UAAU,CAAC,CACrB,OAAO,QACN,cAAc,KAAK,MAAM,aAAa,WAAW,CAAC,CAAC,UACjD,OACE,SAC+C;GAC/C,MAAM,WAAW,aAAa,IAAI;GAClC,IAAI,aAAa,cAAc;IAC7B,MAAM,UAAU;KACd,MAAM;KACN;IACF,CAAC;IACD,OAAO,OAAO,GAAG,IAAI;GACvB;;;;;GAMA,IAAI,IAAI,SAAS,eAAe;IAC9B,MAAM,aAAa,IAAI;IACvB,IAAI,CAAC,WAAW,YACd,MAAM,UACJ;KAAE,GAAG;KAAY,YAAY;IAAK,GAClC,MACA,CACF;IAEF,OAAO,OAAO,GAAG,WAAW,IAAI;GAClC;GAEA,OAAO,OAAO,IAAI,EAAE,MAAM,gBAAgB,CAAC;EAC7C,CACF,CACF,CAAC,CACA,OAAO,QAAQ;GACd,OAAO,MACL,EAAE,IAAI,GACN,8EACF;GACA,MAAM,WAAW,SAAS,KAAK,aAAa,EAAE,QAAQ,EAAE;GACxD,OAAO,OAAO,GAAG,EAAE,SAAS,CAAkB;EAChD,CAAC,CAAC,CACD,cAAc;CACnB;AACF"}
|
|
@@ -53,6 +53,6 @@ const TerraformModule = z.object({
|
|
|
53
53
|
}).refine(({ versions }) => isNonEmptyArray(versions), "Empty versions array in module response");
|
|
54
54
|
const ProtocolModuleResponse = z.object({ modules: LooseArray(TerraformModule) }).refine(({ modules }) => isNonEmptyArray(modules), "Empty response from `/v1/modules` endpoint").transform(({ modules: [module] }) => module);
|
|
55
55
|
//#endregion
|
|
56
|
-
export { OpenTofuModuleDocsResponse, ProtocolModuleResponse, ServiceDiscoveryResponse, TerraformModuleResponse, TerraformModuleV2Response };
|
|
56
|
+
export { OpenTofuModuleDocsResponse, ProtocolModuleResponse, ServiceDiscoveryResponse, TerraformModule, TerraformModuleResponse, TerraformModuleV2Response, TerraformModuleVersion };
|
|
57
57
|
|
|
58
58
|
//# sourceMappingURL=schema.js.map
|
|
@@ -66,6 +66,6 @@ const TerraformRegistryBuildResponse = z.object({
|
|
|
66
66
|
shasums_url: z.string().optional()
|
|
67
67
|
});
|
|
68
68
|
//#endregion
|
|
69
|
-
export { OpenTofuProviderDocsResponse, TerraformProviderReleaseBackend, TerraformProviderV2Response, TerraformProviderVersions, TerraformRegistryBuildResponse, TerraformRegistryVersions, VersionDetailResponse };
|
|
69
|
+
export { OpenTofuProviderDocsResponse, TerraformBuild, TerraformProviderReleaseBackend, TerraformProviderV2Response, TerraformProviderVersions, TerraformRegistryBuildResponse, TerraformRegistryVersions, VersionDetailResponse };
|
|
70
70
|
|
|
71
71
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import api,
|
|
1
|
+
import { api, id } from "../../versioning/unity3d-packages/index.js";
|
|
2
2
|
import { withCache } from "../../../util/cache/package/with-cache.js";
|
|
3
3
|
import { asTimestamp } from "../../../util/timestamp.js";
|
|
4
4
|
import { Datasource } from "../datasource.js";
|
|
@@ -14,6 +14,6 @@ const categories = ["ansible", "iac"];
|
|
|
14
14
|
const defaultConfig = { managerFilePatterns: ["/(^|/)tasks/[^/]+\\.ya?ml$/"] };
|
|
15
15
|
const supportedDatasources = [DockerDatasource.id];
|
|
16
16
|
//#endregion
|
|
17
|
-
export { ansible_exports };
|
|
17
|
+
export { ansible_exports, categories, defaultConfig, extractPackageFile, supportedDatasources, url };
|
|
18
18
|
|
|
19
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -22,6 +22,6 @@ const supportedDatasources = [
|
|
|
22
22
|
GithubTagsDatasource.id
|
|
23
23
|
];
|
|
24
24
|
//#endregion
|
|
25
|
-
export { ansible_galaxy_exports };
|
|
25
|
+
export { ansible_galaxy_exports, categories, defaultConfig, extractPackageFile, knownDepTypes, supportedDatasources, url };
|
|
26
26
|
|
|
27
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -19,6 +19,6 @@ const categories = ["java"];
|
|
|
19
19
|
const defaultConfig = { managerFilePatterns: ["**/build.xml"] };
|
|
20
20
|
const supportedDatasources = [MavenDatasource.id];
|
|
21
21
|
//#endregion
|
|
22
|
-
export { ant_exports };
|
|
22
|
+
export { ant_exports, categories, defaultConfig, displayName, extractAllPackageFiles, extractPackageFile, supportedDatasources, updateDependency, url };
|
|
23
23
|
|
|
24
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -24,6 +24,6 @@ const ApplicationSet = KubernetesResource.extend({
|
|
|
24
24
|
const ApplicationDefinition = Application.or(ApplicationSet);
|
|
25
25
|
const ApplicationDefinitions = multidocYaml({ removeTemplates: true }).pipe(LooseArray(ApplicationDefinition));
|
|
26
26
|
//#endregion
|
|
27
|
-
export { ApplicationDefinitions };
|
|
27
|
+
export { Application, ApplicationDefinition, ApplicationDefinitions, ApplicationKustomize, ApplicationSet, ApplicationSource, ApplicationSpec, KubernetesResource };
|
|
28
28
|
|
|
29
29
|
//# sourceMappingURL=schema.js.map
|
|
@@ -38,6 +38,6 @@ const supportedDatasources = [
|
|
|
38
38
|
RubyVersionDatasource.id
|
|
39
39
|
];
|
|
40
40
|
//#endregion
|
|
41
|
-
export { asdf_exports, supportedDatasources };
|
|
41
|
+
export { asdf_exports, defaultConfig, displayName, extractPackageFile, supportedDatasources, url };
|
|
42
42
|
|
|
43
43
|
//# sourceMappingURL=index.js.map
|
|
@@ -120,6 +120,6 @@ function extractPackageFile(content, packageFile, config) {
|
|
|
120
120
|
return { deps };
|
|
121
121
|
}
|
|
122
122
|
//#endregion
|
|
123
|
-
export { extractPackageFile };
|
|
123
|
+
export { extractAzurePipelinesTasks, extractContainer, extractPackageFile, extractRepository, parseAzurePipelines };
|
|
124
124
|
|
|
125
125
|
//# sourceMappingURL=extract.js.map
|
|
@@ -20,6 +20,6 @@ const defaultConfig = {
|
|
|
20
20
|
};
|
|
21
21
|
const supportedDatasources = [AzurePipelinesTasksDatasource.id, GitTagsDatasource.id];
|
|
22
22
|
//#endregion
|
|
23
|
-
export { azure_pipelines_exports };
|
|
23
|
+
export { azure_pipelines_exports, categories, defaultConfig, extractPackageFile, knownDepTypes, supportedDatasources, url };
|
|
24
24
|
|
|
25
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -42,6 +42,6 @@ const AzurePipelines = z.object({
|
|
|
42
42
|
}).partial();
|
|
43
43
|
const AzurePipelinesYaml = Yaml.pipe(AzurePipelines);
|
|
44
44
|
//#endregion
|
|
45
|
-
export { AzurePipelinesYaml };
|
|
45
|
+
export { AzurePipelines, AzurePipelinesYaml, Container, Deploy, Deployment, Job, Jobs, Repository, Resources, Stage, Step };
|
|
46
46
|
|
|
47
47
|
//# sourceMappingURL=schema.js.map
|
|
@@ -16,6 +16,6 @@ const categories = ["batect"];
|
|
|
16
16
|
const defaultConfig = { managerFilePatterns: ["/(^|/)batect(-bundle)?\\.ya?ml$/"] };
|
|
17
17
|
const supportedDatasources = [DockerDatasource.id, GitTagsDatasource.id];
|
|
18
18
|
//#endregion
|
|
19
|
-
export { batect_exports };
|
|
19
|
+
export { batect_exports, categories, defaultConfig, extractAllPackageFiles, extractPackageFile, supportedDatasources, url };
|
|
20
20
|
|
|
21
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -18,6 +18,6 @@ const defaultConfig = {
|
|
|
18
18
|
};
|
|
19
19
|
const supportedDatasources = [GithubReleasesDatasource.id];
|
|
20
20
|
//#endregion
|
|
21
|
-
export { batect_wrapper_exports };
|
|
21
|
+
export { batect_wrapper_exports, categories, defaultConfig, extractPackageFile, supportedDatasources, updateArtifacts };
|
|
22
22
|
|
|
23
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -31,6 +31,6 @@ function updateCode(input, path, updater) {
|
|
|
31
31
|
return patchCodeAtFragment(input, fragment, updater);
|
|
32
32
|
}
|
|
33
33
|
//#endregion
|
|
34
|
-
export { findCodeFragment, patchCodeAtFragments, updateCode };
|
|
34
|
+
export { findCodeFragment, patchCodeAtFragment, patchCodeAtFragments, updateCode };
|
|
35
35
|
|
|
36
36
|
//# sourceMappingURL=common.js.map
|
|
@@ -30,6 +30,6 @@ const supportedDatasources = [
|
|
|
30
30
|
GoDatasource.id
|
|
31
31
|
];
|
|
32
32
|
//#endregion
|
|
33
|
-
export { bazel_exports };
|
|
33
|
+
export { bazel_exports, categories, defaultConfig, extractPackageFile, knownDepTypes, supportedDatasources, updateArtifacts, url };
|
|
34
34
|
|
|
35
35
|
//# sourceMappingURL=index.js.map
|
|
@@ -42,6 +42,6 @@ function extract(fragment) {
|
|
|
42
42
|
return fragment.children.map(extract);
|
|
43
43
|
}
|
|
44
44
|
//#endregion
|
|
45
|
-
export { extractDepsFromFragment, supportedRulesRegex };
|
|
45
|
+
export { extract, extractDepsFromFragment, extractDepsFromFragmentData, supportedRulesRegex };
|
|
46
46
|
|
|
47
47
|
//# sourceMappingURL=index.js.map
|
|
@@ -121,6 +121,6 @@ async function read(workspaceDir) {
|
|
|
121
121
|
return await readFile(upath.join(workspaceDir, ".bazelrc"), workspaceDir, /* @__PURE__ */ new Set());
|
|
122
122
|
}
|
|
123
123
|
//#endregion
|
|
124
|
-
export { read };
|
|
124
|
+
export { BazelOption, CommandEntry, ImportEntry, expandWorkspacePath, parse, read, sanitizeOptions };
|
|
125
125
|
|
|
126
126
|
//# sourceMappingURL=bazelrc.js.map
|
|
@@ -31,6 +31,6 @@ const supportedDatasources = [
|
|
|
31
31
|
];
|
|
32
32
|
const lockFileNames = ["MODULE.bazel.lock"];
|
|
33
33
|
//#endregion
|
|
34
|
-
export { bazel_module_exports };
|
|
34
|
+
export { bazel_module_exports, categories, defaultConfig, extractPackageFile, knownDepTypes, lockFileNames, supportedDatasources, updateArtifacts, url };
|
|
35
35
|
|
|
36
36
|
//# sourceMappingURL=index.js.map
|
|
@@ -167,6 +167,6 @@ function isPrimitive(data) {
|
|
|
167
167
|
return PrimitiveFragments.safeParse(data).success;
|
|
168
168
|
}
|
|
169
169
|
//#endregion
|
|
170
|
-
export { ExtensionTagFragment, RepoRuleCallFragment, RuleFragment, StringArrayFragment, StringFragment, array, attribute, boolean, extensionTag, isPrimitive, isValue, preparedExtensionTag, repoRuleCall, rule, string, useRepoRule };
|
|
170
|
+
export { ArrayFragment, AttributeFragment, BooleanFragment, ExtensionTagFragment, PreparedExtensionTagFragment, RepoRuleCallFragment, RuleFragment, StringArrayFragment, StringFragment, UseRepoRuleFragment, array, attribute, boolean, extensionTag, isPrimitive, isValue, preparedExtensionTag, repoRuleCall, rule, string, useRepoRule };
|
|
171
171
|
|
|
172
172
|
//# sourceMappingURL=fragments.js.map
|
|
@@ -179,6 +179,6 @@ const GitRepositoryToPackageDep = RuleFragment.extend({
|
|
|
179
179
|
return gitRepo;
|
|
180
180
|
});
|
|
181
181
|
//#endregion
|
|
182
|
-
export { GitRepositoryToPackageDep, RuleToBazelModulePackageDep, toPackageDependencies };
|
|
182
|
+
export { GitRepositoryToPackageDep, RuleToBazelModulePackageDep, bazelModulePackageDepToPackageDependency, processModulePkgDeps, toPackageDependencies };
|
|
183
183
|
|
|
184
184
|
//# sourceMappingURL=rules.js.map
|
|
@@ -24,6 +24,6 @@ const defaultConfig = {
|
|
|
24
24
|
const supportedDatasources = [GithubReleasesDatasource.id];
|
|
25
25
|
const lockFileNames = ["MODULE.bazel.lock"];
|
|
26
26
|
//#endregion
|
|
27
|
-
export { bazelisk_exports };
|
|
27
|
+
export { bazelisk_exports, categories, defaultConfig, extractPackageFile, lockFileNames, supportedDatasources, updateArtifacts, url };
|
|
28
28
|
|
|
29
29
|
//# sourceMappingURL=index.js.map
|