renovate 40.0.0-next.4 → 40.0.0-next.41
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/legacy.js +0 -1
- package/dist/config/decrypt/legacy.js.map +1 -1
- package/dist/config/decrypt.d.ts +3 -1
- package/dist/config/decrypt.js +56 -13
- package/dist/config/decrypt.js.map +1 -1
- package/dist/config/migrate-validate.js +3 -2
- package/dist/config/migrate-validate.js.map +1 -1
- package/dist/config/migration.js +2 -1
- package/dist/config/migration.js.map +1 -1
- package/dist/config/migrations/custom/rebase-stale-prs-migration.js +1 -1
- package/dist/config/migrations/custom/rebase-stale-prs-migration.js.map +1 -1
- package/dist/config/options/index.js +17 -3
- package/dist/config/options/index.js.map +1 -1
- package/dist/config/parse.js +2 -2
- package/dist/config/parse.js.map +1 -1
- package/dist/config/presets/common.js +1 -0
- package/dist/config/presets/common.js.map +1 -1
- package/dist/config/presets/gitea/index.js +0 -1
- package/dist/config/presets/gitea/index.js.map +1 -1
- package/dist/config/presets/github/index.js +0 -1
- package/dist/config/presets/github/index.js.map +1 -1
- package/dist/config/presets/gitlab/index.js +1 -1
- package/dist/config/presets/gitlab/index.js.map +1 -1
- package/dist/config/presets/http/index.js +1 -2
- package/dist/config/presets/http/index.js.map +1 -1
- package/dist/config/presets/index.js +0 -7
- package/dist/config/presets/index.js.map +1 -1
- package/dist/config/presets/internal/custom-managers.js +18 -4
- package/dist/config/presets/internal/custom-managers.js.map +1 -1
- package/dist/config/presets/internal/group.js +30 -1
- package/dist/config/presets/internal/group.js.map +1 -1
- package/dist/config/presets/internal/index.js +1 -3
- package/dist/config/presets/internal/index.js.map +1 -1
- package/dist/config/presets/internal/workarounds.js +1 -0
- package/dist/config/presets/internal/workarounds.js.map +1 -1
- package/dist/config/presets/parse.js +2 -1
- package/dist/config/presets/parse.js.map +1 -1
- package/dist/config/schema.d.ts +2 -2
- package/dist/config/types.d.ts +4 -1
- package/dist/config/types.js.map +1 -1
- package/dist/config/validation.js +3 -5
- package/dist/config/validation.js.map +1 -1
- package/dist/config-validator.js +0 -1
- package/dist/config-validator.js.map +1 -1
- package/dist/constants/category.js +0 -1
- package/dist/constants/category.js.map +1 -1
- package/dist/constants/platforms.js +5 -1
- package/dist/constants/platforms.js.map +1 -1
- package/dist/data/monorepo.json +8 -2
- package/dist/data/source-urls.json +1 -0
- package/dist/data-files.generated.js +2 -2
- package/dist/data-files.generated.js.map +1 -1
- package/dist/instrumentation/index.js +39 -15
- package/dist/instrumentation/index.js.map +1 -1
- package/dist/instrumentation/utils.js +1 -1
- package/dist/instrumentation/utils.js.map +1 -1
- package/dist/logger/cmd-serializer.js +0 -1
- package/dist/logger/cmd-serializer.js.map +1 -1
- package/dist/logger/config-serializer.js +0 -1
- package/dist/logger/config-serializer.js.map +1 -1
- package/dist/logger/index.js +1 -4
- package/dist/logger/index.js.map +1 -1
- package/dist/logger/once.js +4 -2
- package/dist/logger/once.js.map +1 -1
- package/dist/logger/pretty-stdout.js +0 -1
- package/dist/logger/pretty-stdout.js.map +1 -1
- package/dist/logger/renovate-logger.js +1 -1
- package/dist/logger/renovate-logger.js.map +1 -1
- package/dist/logger/utils.js +6 -11
- package/dist/logger/utils.js.map +1 -1
- package/dist/modules/datasource/api.js +4 -0
- package/dist/modules/datasource/api.js.map +1 -1
- package/dist/modules/datasource/artifactory/index.js +1 -2
- package/dist/modules/datasource/artifactory/index.js.map +1 -1
- package/dist/modules/datasource/aws-eks-addon/index.d.ts +11 -0
- package/dist/modules/datasource/aws-eks-addon/index.js +75 -0
- package/dist/modules/datasource/aws-eks-addon/index.js.map +1 -0
- package/dist/modules/datasource/aws-eks-addon/schema.d.ts +40 -0
- package/dist/modules/datasource/aws-eks-addon/schema.js +31 -0
- package/dist/modules/datasource/aws-eks-addon/schema.js.map +1 -0
- package/dist/modules/datasource/aws-machine-image/index.js +6 -5
- package/dist/modules/datasource/aws-machine-image/index.js.map +1 -1
- package/dist/modules/datasource/azure-pipelines-tasks/index.js +15 -1
- package/dist/modules/datasource/azure-pipelines-tasks/index.js.map +1 -1
- package/dist/modules/datasource/azure-pipelines-tasks/schema.d.ts +24 -0
- package/dist/modules/datasource/azure-pipelines-tasks/schema.js +3 -0
- package/dist/modules/datasource/azure-pipelines-tasks/schema.js.map +1 -1
- package/dist/modules/datasource/bazel/index.js +18 -2
- package/dist/modules/datasource/bazel/index.js.map +1 -1
- package/dist/modules/datasource/bazel/schema.d.ts +1 -0
- package/dist/modules/datasource/bazel/schema.js.map +1 -1
- package/dist/modules/datasource/bitbucket-server-tags/index.d.ts +19 -0
- package/dist/modules/datasource/bitbucket-server-tags/index.js +133 -0
- package/dist/modules/datasource/bitbucket-server-tags/index.js.map +1 -0
- package/dist/modules/datasource/bitbucket-server-tags/schema.d.ts +28 -0
- package/dist/modules/datasource/bitbucket-server-tags/schema.js +13 -0
- package/dist/modules/datasource/bitbucket-server-tags/schema.js.map +1 -0
- package/dist/modules/datasource/bitrise/index.js +1 -1
- package/dist/modules/datasource/bitrise/index.js.map +1 -1
- package/dist/modules/datasource/cdnjs/schema.d.ts +2 -2
- package/dist/modules/datasource/conda/index.js +18 -1
- package/dist/modules/datasource/conda/index.js.map +1 -1
- package/dist/modules/datasource/conda/prefix-dev.d.ts +3 -0
- package/dist/modules/datasource/conda/prefix-dev.js +81 -0
- package/dist/modules/datasource/conda/prefix-dev.js.map +1 -0
- package/dist/modules/datasource/conda/schema/prefix-dev.d.ts +189 -0
- package/dist/modules/datasource/conda/schema/prefix-dev.js +31 -0
- package/dist/modules/datasource/conda/schema/prefix-dev.js.map +1 -0
- package/dist/modules/datasource/conda/types.d.ts +1 -20
- package/dist/modules/datasource/conda/types.js.map +1 -1
- package/dist/modules/datasource/cpan/index.js +2 -4
- package/dist/modules/datasource/cpan/index.js.map +1 -1
- package/dist/modules/datasource/crate/index.js +3 -3
- package/dist/modules/datasource/crate/index.js.map +1 -1
- package/dist/modules/datasource/custom/formats/html.js +1 -1
- package/dist/modules/datasource/custom/formats/html.js.map +1 -1
- package/dist/modules/datasource/custom/formats/yaml.js +1 -1
- package/dist/modules/datasource/custom/formats/yaml.js.map +1 -1
- package/dist/modules/datasource/custom/index.js +4 -2
- package/dist/modules/datasource/custom/index.js.map +1 -1
- package/dist/modules/datasource/custom/schema.d.ts +22 -22
- package/dist/modules/datasource/custom/utils.js +1 -0
- package/dist/modules/datasource/custom/utils.js.map +1 -1
- package/dist/modules/datasource/dart/index.js +1 -1
- package/dist/modules/datasource/dart/index.js.map +1 -1
- package/dist/modules/datasource/dart-version/index.js +1 -1
- package/dist/modules/datasource/dart-version/index.js.map +1 -1
- package/dist/modules/datasource/datasource.js +0 -1
- package/dist/modules/datasource/datasource.js.map +1 -1
- package/dist/modules/datasource/deb/index.d.ts +4 -5
- package/dist/modules/datasource/deb/index.js +10 -11
- package/dist/modules/datasource/deb/index.js.map +1 -1
- package/dist/modules/datasource/deb/url.d.ts +3 -3
- package/dist/modules/datasource/deb/url.js +17 -13
- package/dist/modules/datasource/deb/url.js.map +1 -1
- package/dist/modules/datasource/deno/index.js +1 -1
- package/dist/modules/datasource/deno/index.js.map +1 -1
- package/dist/modules/datasource/deno/schema.d.ts +1 -1
- package/dist/modules/datasource/devbox/index.js +0 -1
- package/dist/modules/datasource/devbox/index.js.map +1 -1
- package/dist/modules/datasource/docker/common.js +5 -2
- package/dist/modules/datasource/docker/common.js.map +1 -1
- package/dist/modules/datasource/docker/index.js +10 -8
- package/dist/modules/datasource/docker/index.js.map +1 -1
- package/dist/modules/datasource/docker/schema.d.ts +77 -101
- package/dist/modules/datasource/docker/schema.js +2 -1
- package/dist/modules/datasource/docker/schema.js.map +1 -1
- package/dist/modules/datasource/flutter-version/index.js +1 -1
- package/dist/modules/datasource/flutter-version/index.js.map +1 -1
- package/dist/modules/datasource/galaxy/schema.d.ts +1 -1
- package/dist/modules/datasource/galaxy-collection/schema.d.ts +8 -8
- package/dist/modules/datasource/git-refs/index.js +1 -1
- package/dist/modules/datasource/git-refs/index.js.map +1 -1
- package/dist/modules/datasource/gitea-releases/schema.d.ts +2 -2
- package/dist/modules/datasource/gitea-tags/schema.d.ts +4 -4
- package/dist/modules/datasource/github-release-attachments/index.js +2 -2
- package/dist/modules/datasource/github-release-attachments/index.js.map +1 -1
- package/dist/modules/datasource/github-runners/index.js +2 -2
- package/dist/modules/datasource/github-runners/index.js.map +1 -1
- package/dist/modules/datasource/gitlab-packages/index.js +1 -1
- package/dist/modules/datasource/gitlab-packages/index.js.map +1 -1
- package/dist/modules/datasource/gitlab-releases/index.js +1 -3
- package/dist/modules/datasource/gitlab-releases/index.js.map +1 -1
- package/dist/modules/datasource/go/base.js +1 -1
- package/dist/modules/datasource/go/base.js.map +1 -1
- package/dist/modules/datasource/go/index.js +1 -1
- package/dist/modules/datasource/go/index.js.map +1 -1
- package/dist/modules/datasource/go/releases-direct.js +7 -4
- package/dist/modules/datasource/go/releases-direct.js.map +1 -1
- package/dist/modules/datasource/go/releases-goproxy.js +1 -1
- package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
- package/dist/modules/datasource/golang-version/index.js +2 -2
- package/dist/modules/datasource/golang-version/index.js.map +1 -1
- package/dist/modules/datasource/gradle-version/index.js +1 -1
- package/dist/modules/datasource/gradle-version/index.js.map +1 -1
- package/dist/modules/datasource/helm/index.js +1 -1
- package/dist/modules/datasource/helm/index.js.map +1 -1
- package/dist/modules/datasource/hex/index.js +1 -1
- package/dist/modules/datasource/hex/index.js.map +1 -1
- package/dist/modules/datasource/hex/schema.d.ts +11 -11
- package/dist/modules/datasource/hexpm-bob/index.js +1 -1
- package/dist/modules/datasource/hexpm-bob/index.js.map +1 -1
- package/dist/modules/datasource/index.js +4 -4
- package/dist/modules/datasource/index.js.map +1 -1
- package/dist/modules/datasource/java-version/index.js +0 -1
- package/dist/modules/datasource/java-version/index.js.map +1 -1
- package/dist/modules/datasource/jenkins-plugins/index.js +1 -1
- package/dist/modules/datasource/jenkins-plugins/index.js.map +1 -1
- package/dist/modules/datasource/maven/index.js +35 -27
- package/dist/modules/datasource/maven/index.js.map +1 -1
- package/dist/modules/datasource/maven/types.d.ts +3 -6
- package/dist/modules/datasource/maven/types.js.map +1 -1
- package/dist/modules/datasource/maven/util.d.ts +4 -5
- package/dist/modules/datasource/maven/util.js +94 -157
- package/dist/modules/datasource/maven/util.js.map +1 -1
- package/dist/modules/datasource/metadata.js +9 -1
- package/dist/modules/datasource/metadata.js.map +1 -1
- package/dist/modules/datasource/node-version/index.js +1 -1
- package/dist/modules/datasource/node-version/index.js.map +1 -1
- package/dist/modules/datasource/npm/get.d.ts +0 -1
- package/dist/modules/datasource/npm/get.js +14 -68
- package/dist/modules/datasource/npm/get.js.map +1 -1
- package/dist/modules/datasource/npm/index.js +1 -1
- package/dist/modules/datasource/npm/index.js.map +1 -1
- package/dist/modules/datasource/npm/npmrc.js +1 -1
- package/dist/modules/datasource/npm/npmrc.js.map +1 -1
- package/dist/modules/datasource/npm/types.d.ts +0 -8
- package/dist/modules/datasource/npm/types.js.map +1 -1
- package/dist/modules/datasource/nuget/index.js +1 -1
- package/dist/modules/datasource/nuget/index.js.map +1 -1
- package/dist/modules/datasource/nuget/v2.js +1 -1
- package/dist/modules/datasource/nuget/v2.js.map +1 -1
- package/dist/modules/datasource/nuget/v3.js +6 -6
- package/dist/modules/datasource/nuget/v3.js.map +1 -1
- package/dist/modules/datasource/orb/index.js +1 -1
- package/dist/modules/datasource/orb/index.js.map +1 -1
- package/dist/modules/datasource/packagist/index.js +2 -2
- package/dist/modules/datasource/packagist/index.js.map +1 -1
- package/dist/modules/datasource/packagist/schema.d.ts +32 -32
- package/dist/modules/datasource/pod/index.js +2 -2
- package/dist/modules/datasource/pod/index.js.map +1 -1
- package/dist/modules/datasource/postprocess-release.js +1 -1
- package/dist/modules/datasource/postprocess-release.js.map +1 -1
- package/dist/modules/datasource/pypi/index.js +1 -1
- package/dist/modules/datasource/pypi/index.js.map +1 -1
- package/dist/modules/datasource/python-version/index.js +1 -1
- package/dist/modules/datasource/python-version/index.js.map +1 -1
- package/dist/modules/datasource/repology/index.js +1 -1
- package/dist/modules/datasource/repology/index.js.map +1 -1
- package/dist/modules/datasource/ruby-version/index.js +1 -1
- package/dist/modules/datasource/ruby-version/index.js.map +1 -1
- package/dist/modules/datasource/rubygems/index.js +2 -2
- package/dist/modules/datasource/rubygems/index.js.map +1 -1
- package/dist/modules/datasource/rubygems/versions-endpoint-cache.js +2 -2
- package/dist/modules/datasource/rubygems/versions-endpoint-cache.js.map +1 -1
- package/dist/modules/datasource/sbt-package/index.js +1 -1
- package/dist/modules/datasource/sbt-package/index.js.map +1 -1
- package/dist/modules/datasource/sbt-plugin/index.js +1 -1
- package/dist/modules/datasource/sbt-plugin/index.js.map +1 -1
- package/dist/modules/datasource/schema.d.ts +4 -4
- package/dist/modules/datasource/terraform-module/index.js +1 -1
- package/dist/modules/datasource/terraform-module/index.js.map +1 -1
- package/dist/modules/datasource/terraform-provider/index.js +2 -3
- package/dist/modules/datasource/terraform-provider/index.js.map +1 -1
- package/dist/modules/datasource/types.d.ts +2 -0
- package/dist/modules/datasource/types.js.map +1 -1
- package/dist/modules/datasource/unity3d/index.d.ts +4 -1
- package/dist/modules/datasource/unity3d/index.js +36 -42
- package/dist/modules/datasource/unity3d/index.js.map +1 -1
- package/dist/modules/datasource/unity3d/schema.d.ts +47 -0
- package/dist/modules/datasource/unity3d/schema.js +17 -0
- package/dist/modules/datasource/unity3d/schema.js.map +1 -0
- package/dist/modules/manager/api.js +2 -0
- package/dist/modules/manager/api.js.map +1 -1
- package/dist/modules/manager/argocd/extract.js +1 -1
- package/dist/modules/manager/argocd/extract.js.map +1 -1
- package/dist/modules/manager/argocd/schema.d.ts +22 -22
- package/dist/modules/manager/asdf/upgradeable-tooling.js +94 -0
- package/dist/modules/manager/asdf/upgradeable-tooling.js.map +1 -1
- package/dist/modules/manager/azure-pipelines/schema.d.ts +32 -32
- package/dist/modules/manager/batect/schema.d.ts +4 -4
- package/dist/modules/manager/batect-wrapper/artifacts.js +1 -1
- package/dist/modules/manager/batect-wrapper/artifacts.js.map +1 -1
- package/dist/modules/manager/bazel/rules/docker.d.ts +6 -6
- package/dist/modules/manager/bazel/rules/git.d.ts +10 -10
- package/dist/modules/manager/bazel/rules/git.js +9 -2
- package/dist/modules/manager/bazel/rules/git.js.map +1 -1
- package/dist/modules/manager/bazel/rules/go.d.ts +5 -5
- package/dist/modules/manager/bazel/rules/maven.d.ts +7 -7
- package/dist/modules/manager/bazel/rules/oci.d.ts +6 -6
- package/dist/modules/manager/bazel-module/parser/fragments.d.ts +40 -40
- package/dist/modules/manager/bazel-module/parser/maven.d.ts +44 -90
- package/dist/modules/manager/bazel-module/parser/oci.d.ts +19 -42
- package/dist/modules/manager/bazel-module/rules.d.ts +50 -160
- package/dist/modules/manager/bun/artifacts.js +0 -1
- package/dist/modules/manager/bun/artifacts.js.map +1 -1
- package/dist/modules/manager/bun/extract.d.ts +1 -0
- package/dist/modules/manager/bun/extract.js +53 -27
- package/dist/modules/manager/bun/extract.js.map +1 -1
- package/dist/modules/manager/bun/index.js +1 -1
- package/dist/modules/manager/bun/index.js.map +1 -1
- package/dist/modules/manager/bun/utils.d.ts +2 -0
- package/dist/modules/manager/bun/utils.js +22 -0
- package/dist/modules/manager/bun/utils.js.map +1 -0
- package/dist/modules/manager/bundler/artifacts.js +0 -1
- package/dist/modules/manager/bundler/artifacts.js.map +1 -1
- package/dist/modules/manager/bundler/extract.js +2 -1
- package/dist/modules/manager/bundler/extract.js.map +1 -1
- package/dist/modules/manager/cake/index.js +4 -2
- package/dist/modules/manager/cake/index.js.map +1 -1
- package/dist/modules/manager/cargo/artifacts.js +5 -7
- package/dist/modules/manager/cargo/artifacts.js.map +1 -1
- package/dist/modules/manager/cargo/schema.d.ts +117 -117
- package/dist/modules/manager/circleci/extract.js +21 -30
- package/dist/modules/manager/circleci/extract.js.map +1 -1
- package/dist/modules/manager/circleci/schema.d.ts +33 -144
- package/dist/modules/manager/circleci/schema.js +21 -17
- package/dist/modules/manager/circleci/schema.js.map +1 -1
- package/dist/modules/manager/cocoapods/artifacts.js +1 -2
- package/dist/modules/manager/cocoapods/artifacts.js.map +1 -1
- package/dist/modules/manager/composer/artifacts.js +1 -2
- package/dist/modules/manager/composer/artifacts.js.map +1 -1
- package/dist/modules/manager/composer/schema.d.ts +32 -34
- package/dist/modules/manager/composer/schema.js +1 -1
- package/dist/modules/manager/composer/schema.js.map +1 -1
- package/dist/modules/manager/composer/utils.d.ts +1 -0
- package/dist/modules/manager/composer/utils.js +18 -6
- package/dist/modules/manager/composer/utils.js.map +1 -1
- package/dist/modules/manager/conan/artifacts.d.ts +2 -0
- package/dist/modules/manager/conan/artifacts.js +76 -0
- package/dist/modules/manager/conan/artifacts.js.map +1 -0
- package/dist/modules/manager/conan/index.d.ts +2 -0
- package/dist/modules/manager/conan/index.js +4 -1
- package/dist/modules/manager/conan/index.js.map +1 -1
- package/dist/modules/manager/copier/artifacts.js +0 -1
- package/dist/modules/manager/copier/artifacts.js.map +1 -1
- package/dist/modules/manager/crossplane/schema.d.ts +2 -2
- package/dist/modules/manager/custom/jsonata/index.js +4 -0
- package/dist/modules/manager/custom/jsonata/index.js.map +1 -1
- package/dist/modules/manager/custom/jsonata/schema.d.ts +21 -21
- package/dist/modules/manager/custom/regex/index.js +2 -0
- package/dist/modules/manager/custom/regex/index.js.map +1 -1
- package/dist/modules/manager/deps-edn/extract.js +2 -1
- package/dist/modules/manager/deps-edn/extract.js.map +1 -1
- package/dist/modules/manager/devbox/artifacts.d.ts +1 -1
- package/dist/modules/manager/devbox/artifacts.js +35 -11
- package/dist/modules/manager/devbox/artifacts.js.map +1 -1
- package/dist/modules/manager/devbox/schema.js +1 -1
- package/dist/modules/manager/devbox/schema.js.map +1 -1
- package/dist/modules/manager/devcontainer/extract.js +43 -1
- package/dist/modules/manager/devcontainer/extract.js.map +1 -1
- package/dist/modules/manager/devcontainer/index.js +11 -1
- package/dist/modules/manager/devcontainer/index.js.map +1 -1
- package/dist/modules/manager/devcontainer/schema.d.ts +7 -3
- package/dist/modules/manager/devcontainer/schema.js +3 -1
- package/dist/modules/manager/devcontainer/schema.js.map +1 -1
- package/dist/modules/manager/docker-compose/schema.d.ts +6 -6
- package/dist/modules/manager/dockerfile/extract.js +2 -6
- package/dist/modules/manager/dockerfile/extract.js.map +1 -1
- package/dist/modules/manager/fingerprint.generated.js +86 -85
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/flux/artifacts.js +0 -1
- package/dist/modules/manager/flux/artifacts.js.map +1 -1
- package/dist/modules/manager/flux/extract.js +27 -24
- package/dist/modules/manager/flux/extract.js.map +1 -1
- package/dist/modules/manager/flux/schema.d.ts +130 -154
- package/dist/modules/manager/github-actions/extract.js +60 -39
- package/dist/modules/manager/github-actions/extract.js.map +1 -1
- package/dist/modules/manager/github-actions/schema.d.ts +66 -0
- package/dist/modules/manager/github-actions/schema.js +38 -0
- package/dist/modules/manager/github-actions/schema.js.map +1 -0
- package/dist/modules/manager/gitlabci/extract.d.ts +1 -5
- package/dist/modules/manager/gitlabci/extract.js +27 -126
- package/dist/modules/manager/gitlabci/extract.js.map +1 -1
- package/dist/modules/manager/gitlabci/schema.d.ts +55 -0
- package/dist/modules/manager/gitlabci/schema.js +63 -0
- package/dist/modules/manager/gitlabci/schema.js.map +1 -0
- package/dist/modules/manager/gitlabci-include/extract.js +6 -54
- package/dist/modules/manager/gitlabci-include/extract.js.map +1 -1
- package/dist/modules/manager/gitlabci-include/schema.d.ts +13 -0
- package/dist/modules/manager/gitlabci-include/schema.js +46 -0
- package/dist/modules/manager/gitlabci-include/schema.js.map +1 -0
- package/dist/modules/manager/glasskube/schema.d.ts +8 -8
- package/dist/modules/manager/gomod/artifacts-extra.js +12 -4
- package/dist/modules/manager/gomod/artifacts-extra.js.map +1 -1
- package/dist/modules/manager/gomod/artifacts.js +24 -10
- package/dist/modules/manager/gomod/artifacts.js.map +1 -1
- package/dist/modules/manager/gomod/extract.js +23 -0
- package/dist/modules/manager/gomod/extract.js.map +1 -1
- package/dist/modules/manager/gomod/line-parser.js +16 -0
- package/dist/modules/manager/gomod/line-parser.js.map +1 -1
- package/dist/modules/manager/gomod/update.js +5 -3
- package/dist/modules/manager/gomod/update.js.map +1 -1
- package/dist/modules/manager/gradle/artifacts.js +0 -1
- package/dist/modules/manager/gradle/artifacts.js.map +1 -1
- package/dist/modules/manager/gradle/extract/catalog.js +1 -1
- package/dist/modules/manager/gradle/extract/catalog.js.map +1 -1
- package/dist/modules/manager/gradle/extract.js +8 -13
- package/dist/modules/manager/gradle/extract.js.map +1 -1
- package/dist/modules/manager/gradle/parser/assignments.js +2 -2
- package/dist/modules/manager/gradle/parser/assignments.js.map +1 -1
- package/dist/modules/manager/gradle/parser/handlers.d.ts +1 -2
- package/dist/modules/manager/gradle/parser/handlers.js +17 -24
- package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
- package/dist/modules/manager/gradle/parser/registry-urls.js +46 -12
- package/dist/modules/manager/gradle/parser/registry-urls.js.map +1 -1
- package/dist/modules/manager/gradle/types.d.ts +1 -0
- package/dist/modules/manager/gradle/types.js.map +1 -1
- package/dist/modules/manager/gradle-wrapper/artifacts.js +1 -2
- package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
- package/dist/modules/manager/helmfile/artifacts.js +0 -1
- package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
- package/dist/modules/manager/helmfile/extract.js +4 -0
- package/dist/modules/manager/helmfile/extract.js.map +1 -1
- package/dist/modules/manager/helmfile/schema.d.ts +9 -9
- package/dist/modules/manager/helmv3/artifacts.js +0 -1
- package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
- package/dist/modules/manager/helmv3/utils.js +3 -1
- package/dist/modules/manager/helmv3/utils.js.map +1 -1
- package/dist/modules/manager/hermit/artifacts.js +0 -1
- package/dist/modules/manager/hermit/artifacts.js.map +1 -1
- package/dist/modules/manager/homebrew/extract.js +0 -1
- package/dist/modules/manager/homebrew/extract.js.map +1 -1
- package/dist/modules/manager/jsonnet-bundler/artifacts.js +0 -1
- package/dist/modules/manager/jsonnet-bundler/artifacts.js.map +1 -1
- package/dist/modules/manager/kustomize/artifacts.d.ts +2 -0
- package/dist/modules/manager/kustomize/artifacts.js +154 -0
- package/dist/modules/manager/kustomize/artifacts.js.map +1 -0
- package/dist/modules/manager/kustomize/common.d.ts +3 -0
- package/dist/modules/manager/kustomize/common.js +22 -0
- package/dist/modules/manager/kustomize/common.js.map +1 -0
- package/dist/modules/manager/kustomize/index.d.ts +1 -0
- package/dist/modules/manager/kustomize/index.js +3 -1
- package/dist/modules/manager/kustomize/index.js.map +1 -1
- package/dist/modules/manager/kustomize/types.d.ts +4 -0
- package/dist/modules/manager/kustomize/types.js.map +1 -1
- package/dist/modules/manager/maven/extract.js +4 -4
- package/dist/modules/manager/maven/extract.js.map +1 -1
- package/dist/modules/manager/maven-wrapper/artifacts.js +0 -1
- package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
- package/dist/modules/manager/mise/extract.js +1 -1
- package/dist/modules/manager/mise/extract.js.map +1 -1
- package/dist/modules/manager/mix/artifacts.js +64 -14
- package/dist/modules/manager/mix/artifacts.js.map +1 -1
- package/dist/modules/manager/mix/index.d.ts +1 -0
- package/dist/modules/manager/mix/index.js +2 -1
- package/dist/modules/manager/mix/index.js.map +1 -1
- package/dist/modules/manager/nix/artifacts.js +0 -1
- package/dist/modules/manager/nix/artifacts.js.map +1 -1
- package/dist/modules/manager/nix/extract.js +1 -1
- package/dist/modules/manager/nix/extract.js.map +1 -1
- package/dist/modules/manager/nix/schema.d.ts +20 -20
- package/dist/modules/manager/nix/schema.js +1 -0
- package/dist/modules/manager/nix/schema.js.map +1 -1
- package/dist/modules/manager/npm/artifacts.js +0 -1
- package/dist/modules/manager/npm/artifacts.js.map +1 -1
- package/dist/modules/manager/npm/extract/common/package-file.js +1 -0
- package/dist/modules/manager/npm/extract/common/package-file.js.map +1 -1
- package/dist/modules/manager/npm/extract/yarn.js +2 -2
- package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
- package/dist/modules/manager/npm/post-update/npm.js +0 -1
- package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
- package/dist/modules/manager/npm/post-update/pnpm.js +13 -2
- package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
- package/dist/modules/manager/npm/post-update/rules.js +11 -1
- package/dist/modules/manager/npm/post-update/rules.js.map +1 -1
- package/dist/modules/manager/npm/post-update/yarn.js +0 -1
- package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
- package/dist/modules/manager/npm/schema.d.ts +13 -13
- package/dist/modules/manager/npm/update/dependency/index.js +1 -1
- package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
- package/dist/modules/manager/nuget/artifacts.js +1 -2
- package/dist/modules/manager/nuget/artifacts.js.map +1 -1
- package/dist/modules/manager/nuget/extract.js +21 -18
- package/dist/modules/manager/nuget/extract.js.map +1 -1
- package/dist/modules/manager/nuget/package-tree.js +4 -0
- package/dist/modules/manager/nuget/package-tree.js.map +1 -1
- package/dist/modules/manager/nuget/schema.d.ts +8 -8
- package/dist/modules/manager/nuget/util.js +4 -1
- package/dist/modules/manager/nuget/util.js.map +1 -1
- package/dist/modules/manager/ocb/schema.d.ts +6 -6
- package/dist/modules/manager/pep621/processors/pdm.js +0 -1
- package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
- package/dist/modules/manager/pep621/processors/uv.js +0 -1
- package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
- package/dist/modules/manager/pep621/schema.d.ts +346 -54
- package/dist/modules/manager/pep621/schema.js +2 -0
- package/dist/modules/manager/pep621/schema.js.map +1 -1
- package/dist/modules/manager/pep621/utils.js +1 -1
- package/dist/modules/manager/pep621/utils.js.map +1 -1
- package/dist/modules/manager/pip-compile/common.js +0 -1
- package/dist/modules/manager/pip-compile/common.js.map +1 -1
- package/dist/modules/manager/pip_requirements/artifacts.js +0 -1
- package/dist/modules/manager/pip_requirements/artifacts.js.map +1 -1
- package/dist/modules/manager/pip_requirements/common.js +2 -6
- package/dist/modules/manager/pip_requirements/common.js.map +1 -1
- package/dist/modules/manager/pipenv/artifacts.js +0 -1
- package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
- package/dist/modules/manager/pixi/artifacts.d.ts +3 -0
- package/dist/modules/manager/pixi/artifacts.js +78 -0
- package/dist/modules/manager/pixi/artifacts.js.map +1 -0
- package/dist/modules/manager/pixi/extract.d.ts +4 -0
- package/dist/modules/manager/pixi/extract.js +131 -0
- package/dist/modules/manager/pixi/extract.js.map +1 -0
- package/dist/modules/manager/pixi/index.d.ts +10 -0
- package/dist/modules/manager/pixi/index.js +20 -0
- package/dist/modules/manager/pixi/index.js.map +1 -0
- package/dist/modules/manager/pixi/schema.d.ts +405 -0
- package/dist/modules/manager/pixi/schema.js +147 -0
- package/dist/modules/manager/pixi/schema.js.map +1 -0
- package/dist/modules/manager/poetry/artifacts.js +3 -4
- package/dist/modules/manager/poetry/artifacts.js.map +1 -1
- package/dist/modules/manager/poetry/extract.js +2 -1
- package/dist/modules/manager/poetry/extract.js.map +1 -1
- package/dist/modules/manager/poetry/schema.d.ts +48 -48
- package/dist/modules/manager/pub/artifacts.js +0 -1
- package/dist/modules/manager/pub/artifacts.js.map +1 -1
- package/dist/modules/manager/pub/schema.d.ts +8 -8
- package/dist/modules/manager/scalafmt/extract.js +1 -1
- package/dist/modules/manager/scalafmt/extract.js.map +1 -1
- package/dist/modules/manager/sveltos/schema.d.ts +30 -42
- package/dist/modules/manager/terraform/lockfile/hash.d.ts +1 -1
- package/dist/modules/manager/terraform/util.js +1 -3
- package/dist/modules/manager/terraform/util.js.map +1 -1
- package/dist/modules/manager/types.d.ts +6 -2
- package/dist/modules/manager/types.js.map +1 -1
- package/dist/modules/manager/vendir/schema.d.ts +7 -7
- package/dist/modules/platform/api.d.ts +1 -1
- package/dist/modules/platform/azure/azure-helper.js +2 -2
- package/dist/modules/platform/azure/azure-helper.js.map +1 -1
- package/dist/modules/platform/azure/index.js +14 -14
- package/dist/modules/platform/azure/index.js.map +1 -1
- package/dist/modules/platform/bitbucket/comments.js +4 -4
- package/dist/modules/platform/bitbucket/comments.js.map +1 -1
- package/dist/modules/platform/bitbucket/index.d.ts +1 -0
- package/dist/modules/platform/bitbucket/index.js +54 -44
- package/dist/modules/platform/bitbucket/index.js.map +1 -1
- package/dist/modules/platform/bitbucket/schema.d.ts +14 -14
- package/dist/modules/platform/bitbucket/utils.js +3 -3
- package/dist/modules/platform/bitbucket/utils.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/index.d.ts +3 -3
- package/dist/modules/platform/bitbucket-server/index.js +81 -81
- package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/pr-cache.d.ts +23 -0
- package/dist/modules/platform/bitbucket-server/pr-cache.js +125 -0
- package/dist/modules/platform/bitbucket-server/pr-cache.js.map +1 -0
- package/dist/modules/platform/bitbucket-server/schema.d.ts +76 -0
- package/dist/modules/platform/bitbucket-server/schema.js +15 -1
- package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/types.d.ts +8 -2
- package/dist/modules/platform/bitbucket-server/types.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/utils.d.ts +0 -2
- package/dist/modules/platform/bitbucket-server/utils.js +6 -52
- package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
- package/dist/modules/platform/codecommit/codecommit-client.js +6 -6
- package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
- package/dist/modules/platform/codecommit/index.js +24 -24
- package/dist/modules/platform/codecommit/index.js.map +1 -1
- package/dist/modules/platform/gerrit/client.d.ts +0 -3
- package/dist/modules/platform/gerrit/client.js +20 -29
- package/dist/modules/platform/gerrit/client.js.map +1 -1
- package/dist/modules/platform/gerrit/index.js +0 -6
- package/dist/modules/platform/gerrit/index.js.map +1 -1
- package/dist/modules/platform/gerrit/scm.js +5 -6
- package/dist/modules/platform/gerrit/scm.js.map +1 -1
- package/dist/modules/platform/gerrit/types.d.ts +1 -4
- package/dist/modules/platform/gerrit/types.js.map +1 -1
- package/dist/modules/platform/gerrit/utils.d.ts +3 -2
- package/dist/modules/platform/gerrit/utils.js +4 -8
- package/dist/modules/platform/gerrit/utils.js.map +1 -1
- package/dist/modules/platform/gitea/gitea-helper.d.ts +1 -0
- package/dist/modules/platform/gitea/gitea-helper.js +16 -0
- package/dist/modules/platform/gitea/gitea-helper.js.map +1 -1
- package/dist/modules/platform/gitea/index.d.ts +1 -0
- package/dist/modules/platform/gitea/index.js +33 -16
- package/dist/modules/platform/gitea/index.js.map +1 -1
- package/dist/modules/platform/gitea/schema.d.ts +8 -8
- package/dist/modules/platform/gitea/types.d.ts +1 -1
- package/dist/modules/platform/gitea/types.js.map +1 -1
- package/dist/modules/platform/github/common.d.ts +2 -0
- package/dist/modules/platform/github/common.js +16 -0
- package/dist/modules/platform/github/common.js.map +1 -1
- package/dist/modules/platform/github/index.d.ts +1 -1
- package/dist/modules/platform/github/index.js +87 -82
- package/dist/modules/platform/github/index.js.map +1 -1
- package/dist/modules/platform/github/issue.d.ts +18 -18
- package/dist/modules/platform/github/massage-markdown-links.js +2 -2
- package/dist/modules/platform/github/massage-markdown-links.js.map +1 -1
- package/dist/modules/platform/github/pr.js +3 -3
- package/dist/modules/platform/github/pr.js.map +1 -1
- package/dist/modules/platform/github/schema.d.ts +128 -128
- package/dist/modules/platform/github/schema.js +3 -1
- package/dist/modules/platform/github/schema.js.map +1 -1
- package/dist/modules/platform/gitlab/index.d.ts +1 -0
- package/dist/modules/platform/gitlab/index.js +72 -49
- package/dist/modules/platform/gitlab/index.js.map +1 -1
- package/dist/modules/platform/index.js +0 -1
- package/dist/modules/platform/index.js.map +1 -1
- package/dist/modules/platform/scm.d.ts +1 -1
- package/dist/modules/versioning/api.js +2 -0
- package/dist/modules/versioning/api.js.map +1 -1
- package/dist/modules/versioning/composer/index.js +10 -0
- package/dist/modules/versioning/composer/index.js.map +1 -1
- package/dist/modules/versioning/conda/index.d.ts +41 -0
- package/dist/modules/versioning/conda/index.js +178 -0
- package/dist/modules/versioning/conda/index.js.map +1 -0
- package/dist/modules/versioning/distro.js +1 -3
- package/dist/modules/versioning/distro.js.map +1 -1
- package/dist/modules/versioning/hashicorp/convertor.d.ts +2 -1
- package/dist/modules/versioning/hashicorp/convertor.js +13 -8
- package/dist/modules/versioning/hashicorp/convertor.js.map +1 -1
- package/dist/modules/versioning/hex/index.js +3 -3
- package/dist/modules/versioning/hex/index.js.map +1 -1
- package/dist/modules/versioning/npm/index.js +2 -1
- package/dist/modules/versioning/npm/index.js.map +1 -1
- package/dist/modules/versioning/schema.js +1 -1
- package/dist/modules/versioning/schema.js.map +1 -1
- package/dist/modules/versioning/types.d.ts +4 -0
- package/dist/modules/versioning/types.js.map +1 -1
- package/dist/proxy.js +2 -1
- package/dist/proxy.js.map +1 -1
- package/dist/renovate.js +2 -2
- package/dist/renovate.js.map +1 -1
- package/dist/util/cache/package/decorator.js +2 -2
- package/dist/util/cache/package/decorator.js.map +1 -1
- package/dist/util/cache/package/redis.js +0 -1
- package/dist/util/cache/package/redis.js.map +1 -1
- package/dist/util/cache/package/types.d.ts +1 -1
- package/dist/util/cache/package/types.js.map +1 -1
- package/dist/util/cache/repository/impl/base.d.ts +1 -1
- package/dist/util/cache/repository/impl/base.js +4 -0
- package/dist/util/cache/repository/impl/base.js.map +1 -1
- package/dist/util/cache/repository/schema.d.ts +4 -4
- package/dist/util/cache/repository/types.d.ts +3 -0
- package/dist/util/cache/repository/types.js.map +1 -1
- package/dist/util/common.d.ts +4 -2
- package/dist/util/common.js +17 -3
- package/dist/util/common.js.map +1 -1
- package/dist/util/env.d.ts +4 -0
- package/dist/util/env.js +22 -0
- package/dist/util/env.js.map +1 -0
- package/dist/util/exec/containerbase.js +19 -14
- package/dist/util/exec/containerbase.js.map +1 -1
- package/dist/util/exec/index.js +5 -2
- package/dist/util/exec/index.js.map +1 -1
- package/dist/util/exec/types.d.ts +0 -2
- package/dist/util/exec/types.js.map +1 -1
- package/dist/util/exec/utils.d.ts +1 -1
- package/dist/util/exec/utils.js +6 -5
- package/dist/util/exec/utils.js.map +1 -1
- package/dist/util/git/auth.js +8 -5
- package/dist/util/git/auth.js.map +1 -1
- package/dist/util/git/author.js +1 -1
- package/dist/util/git/author.js.map +1 -1
- package/dist/util/git/config.js +0 -1
- package/dist/util/git/config.js.map +1 -1
- package/dist/util/git/error.js +4 -2
- package/dist/util/git/error.js.map +1 -1
- package/dist/util/git/index.js +75 -52
- package/dist/util/git/index.js.map +1 -1
- package/dist/util/git/private-key.js +2 -4
- package/dist/util/git/private-key.js.map +1 -1
- package/dist/util/git/types.d.ts +2 -0
- package/dist/util/git/types.js.map +1 -1
- package/dist/util/git/url.js +1 -1
- package/dist/util/git/url.js.map +1 -1
- package/dist/util/github/graphql/datasource-fetcher.js +3 -5
- package/dist/util/github/graphql/datasource-fetcher.js.map +1 -1
- package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +2 -2
- package/dist/util/github/graphql/query-adapters/tags-query-adapter.d.ts +2 -2
- package/dist/util/http/auth.js +0 -1
- package/dist/util/http/auth.js.map +1 -1
- package/dist/util/http/bitbucket-server.d.ts +7 -5
- package/dist/util/http/bitbucket-server.js +26 -23
- package/dist/util/http/bitbucket-server.js.map +1 -1
- package/dist/util/http/bitbucket.d.ts +6 -5
- package/dist/util/http/bitbucket.js +34 -31
- package/dist/util/http/bitbucket.js.map +1 -1
- package/dist/util/http/cache/abstract-http-cache-provider.js +2 -2
- package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
- package/dist/util/http/cache/memory-http-cache-provider.d.ts +10 -0
- package/dist/util/http/cache/memory-http-cache-provider.js +29 -0
- package/dist/util/http/cache/memory-http-cache-provider.js.map +1 -0
- package/dist/util/http/cache/package-http-cache-provider.d.ts +23 -0
- package/dist/util/http/cache/package-http-cache-provider.js +80 -0
- package/dist/util/http/cache/package-http-cache-provider.js.map +1 -0
- package/dist/util/http/cache/schema.d.ts +2 -2
- package/dist/util/http/errors.d.ts +2 -0
- package/dist/util/http/errors.js +8 -0
- package/dist/util/http/errors.js.map +1 -0
- package/dist/util/http/gerrit.d.ts +6 -4
- package/dist/util/http/gerrit.js +11 -12
- package/dist/util/http/gerrit.js.map +1 -1
- package/dist/util/http/gitea.d.ts +5 -4
- package/dist/util/http/gitea.js +14 -13
- package/dist/util/http/gitea.js.map +1 -1
- package/dist/util/http/github.d.ts +14 -8
- package/dist/util/http/github.js +65 -60
- package/dist/util/http/github.js.map +1 -1
- package/dist/util/http/gitlab.d.ts +7 -5
- package/dist/util/http/gitlab.js +58 -46
- package/dist/util/http/gitlab.js.map +1 -1
- package/dist/util/http/got.d.ts +9 -0
- package/dist/util/http/got.js +54 -0
- package/dist/util/http/got.js.map +1 -0
- package/dist/util/http/host-rules.d.ts +2 -1
- package/dist/util/http/host-rules.js +17 -4
- package/dist/util/http/host-rules.js.map +1 -1
- package/dist/util/http/http.d.ts +93 -0
- package/dist/util/http/http.js +346 -0
- package/dist/util/http/http.js.map +1 -0
- package/dist/util/http/index.d.ts +6 -74
- package/dist/util/http/index.js +5 -359
- package/dist/util/http/index.js.map +1 -1
- package/dist/util/http/legacy.js +4 -1
- package/dist/util/http/legacy.js.map +1 -1
- package/dist/util/http/types.d.ts +9 -16
- package/dist/util/http/types.js.map +1 -1
- package/dist/util/schema-utils.d.ts +1 -0
- package/dist/util/schema-utils.js +43 -8
- package/dist/util/schema-utils.js.map +1 -1
- package/dist/util/stats.d.ts +10 -0
- package/dist/util/stats.js +45 -1
- package/dist/util/stats.js.map +1 -1
- package/dist/util/string.d.ts +16 -0
- package/dist/util/string.js +79 -0
- package/dist/util/string.js.map +1 -1
- package/dist/util/toml.d.ts +1 -0
- package/dist/util/toml.js +6 -0
- package/dist/util/toml.js.map +1 -1
- package/dist/util/url.js +3 -8
- package/dist/util/url.js.map +1 -1
- package/dist/util/yaml.js +3 -8
- package/dist/util/yaml.js.map +1 -1
- package/dist/workers/global/config/parse/env.js +3 -2
- package/dist/workers/global/config/parse/env.js.map +1 -1
- package/dist/workers/global/config/parse/file.js +19 -9
- package/dist/workers/global/config/parse/file.js.map +1 -1
- package/dist/workers/global/config/parse/host-rules-from-env.js +6 -2
- package/dist/workers/global/config/parse/host-rules-from-env.js.map +1 -1
- package/dist/workers/global/config/parse/index.js +15 -0
- package/dist/workers/global/config/parse/index.js.map +1 -1
- package/dist/workers/global/index.js +4 -2
- package/dist/workers/global/index.js.map +1 -1
- package/dist/workers/repository/cache.js +1 -2
- package/dist/workers/repository/cache.js.map +1 -1
- package/dist/workers/repository/config-migration/branch/migrated-data.js +2 -0
- package/dist/workers/repository/config-migration/branch/migrated-data.js.map +1 -1
- package/dist/workers/repository/index.js +1 -0
- package/dist/workers/repository/index.js.map +1 -1
- package/dist/workers/repository/init/merge.js +6 -3
- package/dist/workers/repository/init/merge.js.map +1 -1
- package/dist/workers/repository/onboarding/pr/config-description.js +3 -1
- package/dist/workers/repository/onboarding/pr/config-description.js.map +1 -1
- package/dist/workers/repository/process/extract-update.js +0 -1
- package/dist/workers/repository/process/extract-update.js.map +1 -1
- package/dist/workers/repository/process/fingerprint-fields.js +0 -1
- package/dist/workers/repository/process/fingerprint-fields.js.map +1 -1
- package/dist/workers/repository/process/libyear.js +2 -2
- package/dist/workers/repository/process/libyear.js.map +1 -1
- package/dist/workers/repository/process/lookup/index.js +15 -4
- package/dist/workers/repository/process/lookup/index.js.map +1 -1
- package/dist/workers/repository/process/lookup/timestamps.d.ts +18 -0
- package/dist/workers/repository/process/lookup/timestamps.js +69 -0
- package/dist/workers/repository/process/lookup/timestamps.js.map +1 -0
- package/dist/workers/repository/process/lookup/types.d.ts +1 -0
- package/dist/workers/repository/process/lookup/types.js.map +1 -1
- package/dist/workers/repository/process/lookup/utils.js +20 -9
- package/dist/workers/repository/process/lookup/utils.js.map +1 -1
- package/dist/workers/repository/process/sort.js +1 -1
- package/dist/workers/repository/process/sort.js.map +1 -1
- package/dist/workers/repository/process/vulnerabilities.js +1 -1
- package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
- package/dist/workers/repository/process/write.js +1 -8
- package/dist/workers/repository/process/write.js.map +1 -1
- package/dist/workers/repository/reconfigure/utils.d.ts +2 -0
- package/dist/workers/repository/reconfigure/utils.js +16 -0
- package/dist/workers/repository/reconfigure/utils.js.map +1 -1
- package/dist/workers/repository/reconfigure/validate.js +6 -17
- package/dist/workers/repository/reconfigure/validate.js.map +1 -1
- package/dist/workers/repository/update/branch/auto-replace.js +25 -5
- package/dist/workers/repository/update/branch/auto-replace.js.map +1 -1
- package/dist/workers/repository/update/branch/commit.js +2 -0
- package/dist/workers/repository/update/branch/commit.js.map +1 -1
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +10 -1
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
- package/dist/workers/repository/update/pr/body/config-description.js +26 -1
- package/dist/workers/repository/update/pr/body/config-description.js.map +1 -1
- package/dist/workers/repository/update/pr/body/index.js +21 -14
- package/dist/workers/repository/update/pr/body/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/api.js +8 -6
- package/dist/workers/repository/update/pr/changelog/api.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +1 -1
- package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.d.ts +3 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.js +39 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.js.map +1 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.d.ts +8 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.js +31 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.js.map +1 -0
- package/dist/workers/repository/update/pr/changelog/github/index.js +6 -3
- package/dist/workers/repository/update/pr/changelog/github/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/gitlab/index.js +1 -1
- package/dist/workers/repository/update/pr/changelog/gitlab/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/release-notes.js +12 -8
- package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/source.d.ts +1 -1
- package/dist/workers/repository/update/pr/changelog/source.js +1 -0
- package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/types.d.ts +1 -1
- package/dist/workers/repository/update/pr/changelog/types.js.map +1 -1
- package/dist/workers/repository/update/pr/index.js +2 -4
- package/dist/workers/repository/update/pr/index.js.map +1 -1
- package/dist/workers/repository/updates/flatten.js +8 -4
- package/dist/workers/repository/updates/flatten.js.map +1 -1
- package/dist/workers/repository/updates/generate.js +3 -2
- package/dist/workers/repository/updates/generate.js.map +1 -1
- package/dist/workers/types.d.ts +1 -4
- package/dist/workers/types.js.map +1 -1
- package/package.json +85 -85
- package/renovate-schema.json +24 -3
- package/dist/modules/manager/github-actions/types.d.ts +0 -30
- package/dist/modules/manager/github-actions/types.js +0 -3
- package/dist/modules/manager/github-actions/types.js.map +0 -1
- package/dist/modules/manager/gitlabci/common.d.ts +0 -6
- package/dist/modules/manager/gitlabci/common.js +0 -30
- package/dist/modules/manager/gitlabci/common.js.map +0 -1
- package/dist/modules/manager/gitlabci/types.d.ts +0 -35
- package/dist/modules/manager/gitlabci/types.js +0 -3
- package/dist/modules/manager/gitlabci/types.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/sbt-package/index.ts"],"names":[],"mappings":"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","sourcesContent":["import * as upath from 'upath';\nimport { XmlDocument } from 'xmldoc';\nimport { logger } from '../../../logger';\nimport * as packageCache from '../../../util/cache/package';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { Http } from '../../../util/http';\nimport { regEx } from '../../../util/regex';\nimport type { Timestamp } from '../../../util/timestamp';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { ensureTrailingSlash, trimTrailingSlash } from '../../../util/url';\nimport * as ivyVersioning from '../../versioning/ivy';\nimport { compare } from '../../versioning/maven/compare';\nimport { MavenDatasource } from '../maven';\nimport { MAVEN_REPO } from '../maven/common';\nimport { downloadHttpContent, downloadHttpProtocol } from '../maven/util';\nimport type {\n GetReleasesConfig,\n PostprocessReleaseConfig,\n PostprocessReleaseResult,\n RegistryStrategy,\n Release,\n ReleaseResult,\n} from '../types';\nimport { extractPageLinks, getLatestVersion } from './util';\n\ninterface ScalaDepCoordinate {\n groupId: string;\n artifactId: string;\n scalaVersion?: string;\n}\n\ninterface PomInfo {\n homepage?: string;\n sourceUrl?: string;\n releaseTimestamp?: Timestamp;\n}\n\nexport class SbtPackageDatasource extends MavenDatasource {\n static override readonly id = 'sbt-package';\n\n override readonly defaultRegistryUrls = [MAVEN_REPO];\n\n override readonly defaultVersioning = ivyVersioning.id;\n\n override readonly registryStrategy: RegistryStrategy = 'hunt';\n\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `scm` tags in the results.';\n\n constructor(id = SbtPackageDatasource.id) {\n super(id);\n this.http = new Http('sbt');\n }\n\n protected static parseDepCoordinate(packageName: string): ScalaDepCoordinate {\n const [groupId, javaArtifactId] = packageName.split(':');\n const [artifactId, scalaVersion] = javaArtifactId.split('_');\n return { groupId, artifactId, scalaVersion };\n }\n\n async getSbtReleases(\n registryUrl: string,\n packageName: string,\n ): Promise<ReleaseResult | null> {\n const { groupId, artifactId, scalaVersion } =\n SbtPackageDatasource.parseDepCoordinate(packageName);\n\n const groupIdSplit = groupId.split('.');\n const repoRootUrl = ensureTrailingSlash(registryUrl);\n\n const validRootUrlKey = `valid-root-url:${registryUrl}:${packageName}`;\n const validRootUrl = await packageCache.get<string>(\n 'datasource-sbt-package',\n validRootUrlKey,\n );\n\n const packageRootUrls: string[] = [];\n // istanbul ignore if: not easily testable\n if (validRootUrl) {\n packageRootUrls.push(validRootUrl);\n } else {\n const packageRootUrlWith = (sep: string): string =>\n `${repoRootUrl}${groupIdSplit.join(sep)}`;\n packageRootUrls.push(ensureTrailingSlash(packageRootUrlWith('/')));\n packageRootUrls.push(ensureTrailingSlash(packageRootUrlWith('.')));\n }\n\n let dependencyUrl: string | undefined;\n let packageUrls: string[] | undefined;\n for (const packageRootUrl of packageRootUrls) {\n const packageRootContent = await downloadHttpContent(\n this.http,\n packageRootUrl,\n );\n if (!packageRootContent) {\n continue;\n }\n\n await packageCache.set(\n 'datasource-sbt-package',\n validRootUrlKey,\n packageRootUrl,\n 30 * 24 * 60,\n );\n\n dependencyUrl = trimTrailingSlash(packageRootUrl);\n\n const rootPath = new URL(packageRootUrl).pathname;\n const artifactSubdirs = extractPageLinks(packageRootContent, (href) => {\n const path = href.replace(rootPath, '');\n\n if (\n path.startsWith(`${artifactId}_native`) ||\n path.startsWith(`${artifactId}_sjs`)\n ) {\n return null;\n }\n\n if (path === artifactId || path.startsWith(`${artifactId}_`)) {\n return ensureTrailingSlash(`${packageRootUrl}${path}`);\n }\n\n return null;\n });\n\n if (scalaVersion) {\n const scalaSubdir = artifactSubdirs.find((x) =>\n x.endsWith(`/${artifactId}_${scalaVersion}/`),\n );\n if (scalaSubdir) {\n packageUrls = [scalaSubdir];\n break;\n }\n }\n\n packageUrls = artifactSubdirs;\n break;\n }\n\n if (!packageUrls) {\n return null;\n }\n\n const invalidPackageUrlsKey = `invalid-package-urls:${registryUrl}:${packageName}`;\n const invalidPackageUrls = new Set(\n await packageCache.get<string[]>(\n 'datasource-sbt-package',\n invalidPackageUrlsKey,\n ),\n );\n packageUrls = packageUrls.filter((url) => !invalidPackageUrls.has(url));\n\n const allVersions = new Set<string>();\n for (const pkgUrl of packageUrls) {\n const packageContent = await downloadHttpContent(this.http, pkgUrl);\n // istanbul ignore if\n if (!packageContent) {\n invalidPackageUrls.add(pkgUrl);\n continue;\n }\n\n const rootPath = new URL(pkgUrl).pathname;\n const versions = extractPageLinks(packageContent, (href) => {\n const path = href.replace(rootPath, '');\n if (path.startsWith('.')) {\n return null;\n }\n\n return path;\n });\n\n for (const version of versions) {\n allVersions.add(version);\n }\n }\n\n if (invalidPackageUrls.size > 0) {\n await packageCache.set(\n 'datasource-sbt-package',\n invalidPackageUrlsKey,\n [...invalidPackageUrls],\n 30 * 24 * 60,\n );\n }\n\n if (packageUrls.length > 0) {\n const packageUrlsKey = `package-urls:${registryUrl}:${packageName}`;\n await packageCache.set(\n 'datasource-sbt-package',\n packageUrlsKey,\n packageUrls,\n 30 * 24 * 60,\n );\n }\n\n const versions = [...allVersions];\n if (!versions.length) {\n return null;\n }\n\n const releases: Release[] = [...allVersions]\n .sort(compare)\n .map((version) => ({ version }));\n const res: ReleaseResult = { releases, dependencyUrl };\n\n const latestVersion = getLatestVersion(versions);\n const pomInfo = await this.getPomInfo(\n registryUrl,\n packageName,\n latestVersion,\n packageUrls,\n );\n\n if (pomInfo?.homepage) {\n res.homepage = pomInfo.homepage;\n }\n\n if (pomInfo?.sourceUrl) {\n res.sourceUrl = pomInfo.sourceUrl;\n }\n\n return res;\n }\n\n async getPomInfo(\n registryUrl: string,\n packageName: string,\n version: string | null,\n pkgUrls?: string[],\n ): Promise<PomInfo | null> {\n const packageUrlsKey = `package-urls:${registryUrl}:${packageName}`;\n // istanbul ignore next: will be covered later\n const packageUrls =\n pkgUrls ??\n (await packageCache.get<string[]>(\n 'datasource-sbt-package',\n packageUrlsKey,\n ));\n\n // istanbul ignore if\n if (!packageUrls?.length) {\n return null;\n }\n\n // istanbul ignore if\n if (!version) {\n return null;\n }\n\n const invalidPomFilesKey = `invalid-pom-files:${registryUrl}:${packageName}:${version}`;\n const invalidPomFiles = new Set(\n await packageCache.get<string[]>(\n 'datasource-sbt-package',\n invalidPomFilesKey,\n ),\n );\n\n const saveCache = async (): Promise<void> => {\n if (invalidPomFiles.size > 0) {\n await packageCache.set(\n 'datasource-sbt-package',\n invalidPomFilesKey,\n [...invalidPomFiles],\n 30 * 24 * 60,\n );\n }\n };\n\n for (const packageUrl of packageUrls) {\n const artifactDir = upath.basename(packageUrl);\n const [artifact] = artifactDir.split('_');\n\n for (const pomFilePrefix of [artifactDir, artifact]) {\n const pomFileName = `${pomFilePrefix}-${version}.pom`;\n const pomUrl = `${packageUrl}${version}/${pomFileName}`;\n if (invalidPomFiles.has(pomUrl)) {\n continue;\n }\n\n const res = await downloadHttpProtocol(this.http, pomUrl);\n const { val } = res.unwrap();\n if (!val) {\n invalidPomFiles.add(pomUrl);\n continue;\n }\n\n const result: PomInfo = {};\n\n const releaseTimestamp = asTimestamp(val.lastModified);\n if (releaseTimestamp) {\n result.releaseTimestamp = releaseTimestamp;\n }\n\n const pomXml = new XmlDocument(val.data);\n\n const homepage = pomXml.valueWithPath('url');\n if (homepage) {\n result.homepage = homepage;\n }\n\n const sourceUrl = pomXml.valueWithPath('scm.url');\n if (sourceUrl) {\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$/), '');\n }\n\n await saveCache();\n return result;\n }\n }\n\n await saveCache();\n return null;\n }\n\n override async getReleases(\n config: GetReleasesConfig,\n ): Promise<ReleaseResult | null> {\n const { packageName, registryUrl } = config;\n // istanbul ignore if\n if (!registryUrl) {\n return null;\n }\n\n const sbtReleases = await this.getSbtReleases(registryUrl, packageName);\n if (sbtReleases) {\n return sbtReleases;\n }\n\n logger.debug(\n `Sbt: no versions discovered for ${packageName} listing organization root package folder, fallback to maven datasource for version discovery`,\n );\n const mavenReleaseResult = await super.getReleases(config);\n if (mavenReleaseResult) {\n return mavenReleaseResult;\n }\n\n logger.debug(`Sbt: no versions found for \"${packageName}\"`);\n return null;\n }\n\n @cache({\n namespace: 'datasource-sbt-package',\n key: (\n { registryUrl, packageName }: PostprocessReleaseConfig,\n { version }: Release,\n ) => `postprocessRelease:${registryUrl}:${packageName}:${version}`,\n ttlMinutes: 30 * 24 * 60,\n })\n override async postprocessRelease(\n config: PostprocessReleaseConfig,\n release: Release,\n ): Promise<PostprocessReleaseResult> {\n // istanbul ignore if\n if (!config.registryUrl) {\n return release;\n }\n\n const res = await this.getPomInfo(\n config.registryUrl,\n config.packageName,\n release.version,\n );\n\n if (res?.releaseTimestamp) {\n release.releaseTimestamp = res.releaseTimestamp;\n }\n\n return release;\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/sbt-package/index.ts"],"names":[],"mappings":"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","sourcesContent":["import * as upath from 'upath';\nimport { XmlDocument } from 'xmldoc';\nimport { logger } from '../../../logger';\nimport * as packageCache from '../../../util/cache/package';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { Http } from '../../../util/http';\nimport { regEx } from '../../../util/regex';\nimport type { Timestamp } from '../../../util/timestamp';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { ensureTrailingSlash, trimTrailingSlash } from '../../../util/url';\nimport * as ivyVersioning from '../../versioning/ivy';\nimport { compare } from '../../versioning/maven/compare';\nimport { MavenDatasource } from '../maven';\nimport { MAVEN_REPO } from '../maven/common';\nimport { downloadHttpContent, downloadHttpProtocol } from '../maven/util';\nimport type {\n GetReleasesConfig,\n PostprocessReleaseConfig,\n PostprocessReleaseResult,\n RegistryStrategy,\n Release,\n ReleaseResult,\n} from '../types';\nimport { extractPageLinks, getLatestVersion } from './util';\n\ninterface ScalaDepCoordinate {\n groupId: string;\n artifactId: string;\n scalaVersion?: string;\n}\n\ninterface PomInfo {\n homepage?: string;\n sourceUrl?: string;\n releaseTimestamp?: Timestamp;\n}\n\nexport class SbtPackageDatasource extends MavenDatasource {\n static override readonly id = 'sbt-package';\n\n override readonly defaultRegistryUrls = [MAVEN_REPO];\n\n override readonly defaultVersioning = ivyVersioning.id;\n\n override readonly registryStrategy: RegistryStrategy = 'hunt';\n\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `scm` tags in the results.';\n\n constructor(id = SbtPackageDatasource.id) {\n super(id);\n this.http = new Http('sbt');\n }\n\n protected static parseDepCoordinate(packageName: string): ScalaDepCoordinate {\n const [groupId, javaArtifactId] = packageName.split(':');\n const [artifactId, scalaVersion] = javaArtifactId.split('_');\n return { groupId, artifactId, scalaVersion };\n }\n\n async getSbtReleases(\n registryUrl: string,\n packageName: string,\n ): Promise<ReleaseResult | null> {\n const { groupId, artifactId, scalaVersion } =\n SbtPackageDatasource.parseDepCoordinate(packageName);\n\n const groupIdSplit = groupId.split('.');\n const repoRootUrl = ensureTrailingSlash(registryUrl);\n\n const validRootUrlKey = `valid-root-url:${registryUrl}:${packageName}`;\n const validRootUrl = await packageCache.get<string>(\n 'datasource-sbt-package',\n validRootUrlKey,\n );\n\n const packageRootUrls: string[] = [];\n // istanbul ignore if: not easily testable\n if (validRootUrl) {\n packageRootUrls.push(validRootUrl);\n } else {\n const packageRootUrlWith = (sep: string): string =>\n `${repoRootUrl}${groupIdSplit.join(sep)}`;\n packageRootUrls.push(ensureTrailingSlash(packageRootUrlWith('/')));\n packageRootUrls.push(ensureTrailingSlash(packageRootUrlWith('.')));\n }\n\n let dependencyUrl: string | undefined;\n let packageUrls: string[] | undefined;\n for (const packageRootUrl of packageRootUrls) {\n const packageRootContent = await downloadHttpContent(\n this.http,\n packageRootUrl,\n );\n if (!packageRootContent) {\n continue;\n }\n\n await packageCache.set(\n 'datasource-sbt-package',\n validRootUrlKey,\n packageRootUrl,\n 30 * 24 * 60,\n );\n\n dependencyUrl = trimTrailingSlash(packageRootUrl);\n\n const rootPath = new URL(packageRootUrl).pathname;\n const artifactSubdirs = extractPageLinks(packageRootContent, (href) => {\n const path = href.replace(rootPath, '');\n\n if (\n path.startsWith(`${artifactId}_native`) ||\n path.startsWith(`${artifactId}_sjs`)\n ) {\n return null;\n }\n\n if (path === artifactId || path.startsWith(`${artifactId}_`)) {\n return ensureTrailingSlash(`${packageRootUrl}${path}`);\n }\n\n return null;\n });\n\n if (scalaVersion) {\n const scalaSubdir = artifactSubdirs.find((x) =>\n x.endsWith(`/${artifactId}_${scalaVersion}/`),\n );\n if (scalaSubdir) {\n packageUrls = [scalaSubdir];\n break;\n }\n }\n\n packageUrls = artifactSubdirs;\n break;\n }\n\n if (!packageUrls) {\n return null;\n }\n\n const invalidPackageUrlsKey = `invalid-package-urls:${registryUrl}:${packageName}`;\n const invalidPackageUrls = new Set(\n await packageCache.get<string[]>(\n 'datasource-sbt-package',\n invalidPackageUrlsKey,\n ),\n );\n packageUrls = packageUrls.filter((url) => !invalidPackageUrls.has(url));\n\n const allVersions = new Set<string>();\n for (const pkgUrl of packageUrls) {\n const packageContent = await downloadHttpContent(this.http, pkgUrl);\n // istanbul ignore if\n if (!packageContent) {\n invalidPackageUrls.add(pkgUrl);\n continue;\n }\n\n const rootPath = new URL(pkgUrl).pathname;\n const versions = extractPageLinks(packageContent, (href) => {\n const path = href.replace(rootPath, '');\n if (path.startsWith('.')) {\n return null;\n }\n\n return path;\n });\n\n for (const version of versions) {\n allVersions.add(version);\n }\n }\n\n if (invalidPackageUrls.size > 0) {\n await packageCache.set(\n 'datasource-sbt-package',\n invalidPackageUrlsKey,\n [...invalidPackageUrls],\n 30 * 24 * 60,\n );\n }\n\n if (packageUrls.length > 0) {\n const packageUrlsKey = `package-urls:${registryUrl}:${packageName}`;\n await packageCache.set(\n 'datasource-sbt-package',\n packageUrlsKey,\n packageUrls,\n 30 * 24 * 60,\n );\n }\n\n const versions = [...allVersions];\n if (!versions.length) {\n return null;\n }\n\n const releases: Release[] = [...allVersions]\n .sort(compare)\n .map((version) => ({ version }));\n const res: ReleaseResult = { releases, dependencyUrl };\n\n const latestVersion = getLatestVersion(versions);\n const pomInfo = await this.getPomInfo(\n registryUrl,\n packageName,\n latestVersion,\n packageUrls,\n );\n\n if (pomInfo?.homepage) {\n res.homepage = pomInfo.homepage;\n }\n\n if (pomInfo?.sourceUrl) {\n res.sourceUrl = pomInfo.sourceUrl;\n }\n\n return res;\n }\n\n async getPomInfo(\n registryUrl: string,\n packageName: string,\n version: string | null,\n pkgUrls?: string[],\n ): Promise<PomInfo | null> {\n const packageUrlsKey = `package-urls:${registryUrl}:${packageName}`;\n // istanbul ignore next: will be covered later\n const packageUrls =\n pkgUrls ??\n (await packageCache.get<string[]>(\n 'datasource-sbt-package',\n packageUrlsKey,\n ));\n\n // istanbul ignore if\n if (!packageUrls?.length) {\n return null;\n }\n\n // istanbul ignore if\n if (!version) {\n return null;\n }\n\n const invalidPomFilesKey = `invalid-pom-files:${registryUrl}:${packageName}:${version}`;\n const invalidPomFiles = new Set(\n await packageCache.get<string[]>(\n 'datasource-sbt-package',\n invalidPomFilesKey,\n ),\n );\n\n const saveCache = async (): Promise<void> => {\n if (invalidPomFiles.size > 0) {\n await packageCache.set(\n 'datasource-sbt-package',\n invalidPomFilesKey,\n [...invalidPomFiles],\n 30 * 24 * 60,\n );\n }\n };\n\n for (const packageUrl of packageUrls) {\n const artifactDir = upath.basename(packageUrl);\n const [artifact] = artifactDir.split('_');\n\n for (const pomFilePrefix of [artifactDir, artifact]) {\n const pomFileName = `${pomFilePrefix}-${version}.pom`;\n const pomUrl = `${packageUrl}${version}/${pomFileName}`;\n if (invalidPomFiles.has(pomUrl)) {\n continue;\n }\n\n const res = await downloadHttpProtocol(this.http, pomUrl);\n const { val } = res.unwrap();\n if (!val) {\n invalidPomFiles.add(pomUrl);\n continue;\n }\n\n const result: PomInfo = {};\n\n const releaseTimestamp = asTimestamp(val.lastModified);\n if (releaseTimestamp) {\n result.releaseTimestamp = releaseTimestamp;\n }\n\n const pomXml = new XmlDocument(val.data);\n\n const homepage = pomXml.valueWithPath('url');\n if (homepage) {\n result.homepage = homepage;\n }\n\n const sourceUrl = pomXml.valueWithPath('scm.url');\n if (sourceUrl) {\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$/), '');\n }\n\n await saveCache();\n return result;\n }\n }\n\n await saveCache();\n return null;\n }\n\n override async getReleases(\n config: GetReleasesConfig,\n ): Promise<ReleaseResult | null> {\n const { packageName, registryUrl } = config;\n // istanbul ignore if\n if (!registryUrl) {\n return null;\n }\n\n const sbtReleases = await this.getSbtReleases(registryUrl, packageName);\n if (sbtReleases) {\n return sbtReleases;\n }\n\n logger.debug(\n `Sbt: no versions discovered for ${packageName} listing organization root package folder, fallback to maven datasource for version discovery`,\n );\n const mavenReleaseResult = await super.getReleases(config);\n if (mavenReleaseResult) {\n return mavenReleaseResult;\n }\n\n logger.debug(`Sbt: no versions found for \"${packageName}\"`);\n return null;\n }\n\n @cache({\n namespace: 'datasource-sbt-package',\n key: (\n { registryUrl, packageName }: PostprocessReleaseConfig,\n { version }: Release,\n ) => `postprocessRelease:${registryUrl}:${packageName}:${version}`,\n ttlMinutes: 30 * 24 * 60,\n })\n override async postprocessRelease(\n config: PostprocessReleaseConfig,\n release: Release,\n ): Promise<PostprocessReleaseResult> {\n /* v8 ignore next 3 -- should never happen */\n if (!config.registryUrl) {\n return release;\n }\n\n const res = await this.getPomInfo(\n config.registryUrl,\n config.packageName,\n release.version,\n );\n\n if (res?.releaseTimestamp) {\n release.releaseTimestamp = res.releaseTimestamp;\n }\n\n return release;\n }\n}\n"]}
|
@@ -151,7 +151,7 @@ class SbtPluginDatasource extends datasource_1.Datasource {
|
|
151
151
|
return null;
|
152
152
|
}
|
153
153
|
async getReleases({ packageName, registryUrl, }) {
|
154
|
-
|
154
|
+
/* v8 ignore next 3 -- should never happen */
|
155
155
|
if (!registryUrl) {
|
156
156
|
return null;
|
157
157
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/sbt-plugin/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { XmlDocument } from 'xmldoc';\nimport { logger } from '../../../logger';\nimport { Http } from '../../../util/http';\nimport { regEx } from '../../../util/regex';\nimport { ensureTrailingSlash } from '../../../util/url';\nimport * as ivyVersioning from '../../versioning/ivy';\nimport { compare } from '../../versioning/maven/compare';\nimport { Datasource } from '../datasource';\nimport { MAVEN_REPO } from '../maven/common';\nimport { downloadHttpContent } from '../maven/util';\nimport { extractPageLinks, getLatestVersion } from '../sbt-package/util';\nimport type {\n GetReleasesConfig,\n RegistryStrategy,\n ReleaseResult,\n} from '../types';\n\nexport const SBT_PLUGINS_REPO =\n 'https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases';\n\nexport class SbtPluginDatasource extends Datasource {\n static readonly id = 'sbt-plugin';\n\n override readonly defaultRegistryUrls = [SBT_PLUGINS_REPO, MAVEN_REPO];\n\n override readonly defaultVersioning = ivyVersioning.id;\n\n override readonly registryStrategy: RegistryStrategy = 'merge';\n\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `scm` tags in the results.';\n\n constructor() {\n super(SbtPluginDatasource.id);\n this.http = new Http('sbt');\n }\n\n // istanbul ignore next: to be rewritten\n async getArtifactSubdirs(\n searchRoot: string,\n artifact: string,\n scalaVersion: string,\n ): Promise<string[] | null> {\n const pkgUrl = ensureTrailingSlash(searchRoot);\n const indexContent = await downloadHttpContent(this.http, pkgUrl);\n if (indexContent) {\n const rootPath = new URL(pkgUrl).pathname;\n let artifactSubdirs = extractPageLinks(indexContent, (href) => {\n const path = href.replace(rootPath, '');\n if (\n path.startsWith(`${artifact}_native`) ||\n path.startsWith(`${artifact}_sjs`)\n ) {\n return null;\n }\n\n if (path === artifact || path.startsWith(`${artifact}_`)) {\n return path;\n }\n\n return null;\n });\n\n if (\n scalaVersion &&\n artifactSubdirs.includes(`${artifact}_${scalaVersion}`)\n ) {\n artifactSubdirs = [`${artifact}_${scalaVersion}`];\n }\n return artifactSubdirs;\n }\n\n return null;\n }\n\n // istanbul ignore next: to be rewritten\n async getPackageReleases(\n searchRoot: string,\n artifactSubdirs: string[] | null,\n ): Promise<string[] | null> {\n if (artifactSubdirs) {\n const releases: string[] = [];\n for (const searchSubdir of artifactSubdirs) {\n const pkgUrl = ensureTrailingSlash(`${searchRoot}/${searchSubdir}`);\n const content = await downloadHttpContent(this.http, pkgUrl);\n if (content) {\n const rootPath = new URL(pkgUrl).pathname;\n const subdirReleases = extractPageLinks(content, (href) => {\n const path = href.replace(rootPath, '');\n if (path.startsWith('.')) {\n return null;\n }\n\n return path;\n });\n\n subdirReleases.forEach((x) => releases.push(x));\n }\n }\n if (releases.length) {\n return [...new Set(releases)].sort(compare);\n }\n }\n\n return null;\n }\n\n // istanbul ignore next: to be rewritten\n async getUrls(\n searchRoot: string,\n artifactDirs: string[] | null,\n version: string | null,\n ): Promise<Partial<ReleaseResult>> {\n const result: Partial<ReleaseResult> = {};\n\n if (!artifactDirs?.length) {\n return result;\n }\n\n if (!version) {\n return result;\n }\n\n for (const artifactDir of artifactDirs) {\n const [artifact] = artifactDir.split('_');\n const pomFileNames = [\n `${artifactDir}-${version}.pom`,\n `${artifact}-${version}.pom`,\n ];\n\n for (const pomFileName of pomFileNames) {\n const pomUrl = `${searchRoot}/${artifactDir}/${version}/${pomFileName}`;\n const content = await downloadHttpContent(this.http, pomUrl);\n if (content) {\n const pomXml = new XmlDocument(content);\n\n const homepage = pomXml.valueWithPath('url');\n if (homepage) {\n result.homepage = homepage;\n }\n\n const sourceUrl = pomXml.valueWithPath('scm.url');\n if (sourceUrl) {\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$/), '');\n }\n\n return result;\n }\n }\n }\n\n return result;\n }\n\n async resolvePluginReleases(\n rootUrl: string,\n artifact: string,\n scalaVersion: string,\n ): Promise<string[] | null> {\n const searchRoot = `${rootUrl}/${artifact}`;\n const hrefFilterMap = (href: string): string | null => {\n if (href.startsWith('.')) {\n return null;\n }\n\n return href;\n };\n const searchRootContent = await downloadHttpContent(\n this.http,\n ensureTrailingSlash(searchRoot),\n );\n if (searchRootContent) {\n const releases: string[] = [];\n const scalaVersionItems = extractPageLinks(\n searchRootContent,\n hrefFilterMap,\n );\n const scalaVersions = scalaVersionItems.map((x) =>\n x.replace(regEx(/^scala_/), ''),\n );\n const searchVersions = scalaVersions.includes(scalaVersion)\n ? [scalaVersion]\n : scalaVersions;\n for (const searchVersion of searchVersions) {\n const searchSubRoot = `${searchRoot}/scala_${searchVersion}`;\n const subRootContent = await downloadHttpContent(\n this.http,\n ensureTrailingSlash(searchSubRoot),\n );\n if (subRootContent) {\n const sbtVersionItems = extractPageLinks(\n subRootContent,\n hrefFilterMap,\n );\n for (const sbtItem of sbtVersionItems) {\n const releasesRoot = `${searchSubRoot}/${sbtItem}`;\n const releasesIndexContent = await downloadHttpContent(\n this.http,\n ensureTrailingSlash(releasesRoot),\n );\n if (releasesIndexContent) {\n const releasesParsed = extractPageLinks(\n releasesIndexContent,\n hrefFilterMap,\n );\n releasesParsed.forEach((x) => releases.push(x));\n }\n }\n }\n }\n if (releases.length) {\n return [...new Set(releases)].sort(compare);\n }\n }\n return null;\n }\n\n override async getReleases({\n packageName,\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n // istanbul ignore if\n if (!registryUrl) {\n return null;\n }\n\n const [groupId, artifactId] = packageName.split(':');\n const groupIdSplit = groupId.split('.');\n const artifactIdSplit = artifactId.split('_');\n const [artifact, scalaVersion] = artifactIdSplit;\n\n const repoRoot = ensureTrailingSlash(registryUrl);\n const searchRoots: string[] = [];\n // Optimize lookup order\n if (!registryUrl.startsWith(MAVEN_REPO)) {\n searchRoots.push(`${repoRoot}${groupIdSplit.join('.')}`);\n }\n searchRoots.push(`${repoRoot}${groupIdSplit.join('/')}`);\n\n for (const searchRoot of searchRoots) {\n let versions = await this.resolvePluginReleases(\n searchRoot,\n artifact,\n scalaVersion,\n );\n let urls = {};\n\n if (!versions?.length) {\n const artifactSubdirs = await this.getArtifactSubdirs(\n searchRoot,\n artifact,\n scalaVersion,\n );\n versions = await this.getPackageReleases(searchRoot, artifactSubdirs);\n const latestVersion = getLatestVersion(versions);\n urls = await this.getUrls(searchRoot, artifactSubdirs, latestVersion);\n }\n\n const dependencyUrl = `${searchRoot}/${artifact}`;\n\n logger.trace({ dependency: packageName, versions }, `Package versions`);\n if (versions) {\n return {\n ...urls,\n dependencyUrl,\n releases: versions.map((v) => ({ version: v })),\n };\n }\n }\n\n logger.debug(\n `No versions found for ${packageName} in ${searchRoots.length} repositories`,\n );\n return null;\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/sbt-plugin/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { XmlDocument } from 'xmldoc';\nimport { logger } from '../../../logger';\nimport { Http } from '../../../util/http';\nimport { regEx } from '../../../util/regex';\nimport { ensureTrailingSlash } from '../../../util/url';\nimport * as ivyVersioning from '../../versioning/ivy';\nimport { compare } from '../../versioning/maven/compare';\nimport { Datasource } from '../datasource';\nimport { MAVEN_REPO } from '../maven/common';\nimport { downloadHttpContent } from '../maven/util';\nimport { extractPageLinks, getLatestVersion } from '../sbt-package/util';\nimport type {\n GetReleasesConfig,\n RegistryStrategy,\n ReleaseResult,\n} from '../types';\n\nexport const SBT_PLUGINS_REPO =\n 'https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases';\n\nexport class SbtPluginDatasource extends Datasource {\n static readonly id = 'sbt-plugin';\n\n override readonly defaultRegistryUrls = [SBT_PLUGINS_REPO, MAVEN_REPO];\n\n override readonly defaultVersioning = ivyVersioning.id;\n\n override readonly registryStrategy: RegistryStrategy = 'merge';\n\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `scm` tags in the results.';\n\n constructor() {\n super(SbtPluginDatasource.id);\n this.http = new Http('sbt');\n }\n\n // istanbul ignore next: to be rewritten\n async getArtifactSubdirs(\n searchRoot: string,\n artifact: string,\n scalaVersion: string,\n ): Promise<string[] | null> {\n const pkgUrl = ensureTrailingSlash(searchRoot);\n const indexContent = await downloadHttpContent(this.http, pkgUrl);\n if (indexContent) {\n const rootPath = new URL(pkgUrl).pathname;\n let artifactSubdirs = extractPageLinks(indexContent, (href) => {\n const path = href.replace(rootPath, '');\n if (\n path.startsWith(`${artifact}_native`) ||\n path.startsWith(`${artifact}_sjs`)\n ) {\n return null;\n }\n\n if (path === artifact || path.startsWith(`${artifact}_`)) {\n return path;\n }\n\n return null;\n });\n\n if (\n scalaVersion &&\n artifactSubdirs.includes(`${artifact}_${scalaVersion}`)\n ) {\n artifactSubdirs = [`${artifact}_${scalaVersion}`];\n }\n return artifactSubdirs;\n }\n\n return null;\n }\n\n // istanbul ignore next: to be rewritten\n async getPackageReleases(\n searchRoot: string,\n artifactSubdirs: string[] | null,\n ): Promise<string[] | null> {\n if (artifactSubdirs) {\n const releases: string[] = [];\n for (const searchSubdir of artifactSubdirs) {\n const pkgUrl = ensureTrailingSlash(`${searchRoot}/${searchSubdir}`);\n const content = await downloadHttpContent(this.http, pkgUrl);\n if (content) {\n const rootPath = new URL(pkgUrl).pathname;\n const subdirReleases = extractPageLinks(content, (href) => {\n const path = href.replace(rootPath, '');\n if (path.startsWith('.')) {\n return null;\n }\n\n return path;\n });\n\n subdirReleases.forEach((x) => releases.push(x));\n }\n }\n if (releases.length) {\n return [...new Set(releases)].sort(compare);\n }\n }\n\n return null;\n }\n\n // istanbul ignore next: to be rewritten\n async getUrls(\n searchRoot: string,\n artifactDirs: string[] | null,\n version: string | null,\n ): Promise<Partial<ReleaseResult>> {\n const result: Partial<ReleaseResult> = {};\n\n if (!artifactDirs?.length) {\n return result;\n }\n\n if (!version) {\n return result;\n }\n\n for (const artifactDir of artifactDirs) {\n const [artifact] = artifactDir.split('_');\n const pomFileNames = [\n `${artifactDir}-${version}.pom`,\n `${artifact}-${version}.pom`,\n ];\n\n for (const pomFileName of pomFileNames) {\n const pomUrl = `${searchRoot}/${artifactDir}/${version}/${pomFileName}`;\n const content = await downloadHttpContent(this.http, pomUrl);\n if (content) {\n const pomXml = new XmlDocument(content);\n\n const homepage = pomXml.valueWithPath('url');\n if (homepage) {\n result.homepage = homepage;\n }\n\n const sourceUrl = pomXml.valueWithPath('scm.url');\n if (sourceUrl) {\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$/), '');\n }\n\n return result;\n }\n }\n }\n\n return result;\n }\n\n async resolvePluginReleases(\n rootUrl: string,\n artifact: string,\n scalaVersion: string,\n ): Promise<string[] | null> {\n const searchRoot = `${rootUrl}/${artifact}`;\n const hrefFilterMap = (href: string): string | null => {\n if (href.startsWith('.')) {\n return null;\n }\n\n return href;\n };\n const searchRootContent = await downloadHttpContent(\n this.http,\n ensureTrailingSlash(searchRoot),\n );\n if (searchRootContent) {\n const releases: string[] = [];\n const scalaVersionItems = extractPageLinks(\n searchRootContent,\n hrefFilterMap,\n );\n const scalaVersions = scalaVersionItems.map((x) =>\n x.replace(regEx(/^scala_/), ''),\n );\n const searchVersions = scalaVersions.includes(scalaVersion)\n ? [scalaVersion]\n : scalaVersions;\n for (const searchVersion of searchVersions) {\n const searchSubRoot = `${searchRoot}/scala_${searchVersion}`;\n const subRootContent = await downloadHttpContent(\n this.http,\n ensureTrailingSlash(searchSubRoot),\n );\n if (subRootContent) {\n const sbtVersionItems = extractPageLinks(\n subRootContent,\n hrefFilterMap,\n );\n for (const sbtItem of sbtVersionItems) {\n const releasesRoot = `${searchSubRoot}/${sbtItem}`;\n const releasesIndexContent = await downloadHttpContent(\n this.http,\n ensureTrailingSlash(releasesRoot),\n );\n if (releasesIndexContent) {\n const releasesParsed = extractPageLinks(\n releasesIndexContent,\n hrefFilterMap,\n );\n releasesParsed.forEach((x) => releases.push(x));\n }\n }\n }\n }\n if (releases.length) {\n return [...new Set(releases)].sort(compare);\n }\n }\n return null;\n }\n\n override async getReleases({\n packageName,\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n /* v8 ignore next 3 -- should never happen */\n if (!registryUrl) {\n return null;\n }\n\n const [groupId, artifactId] = packageName.split(':');\n const groupIdSplit = groupId.split('.');\n const artifactIdSplit = artifactId.split('_');\n const [artifact, scalaVersion] = artifactIdSplit;\n\n const repoRoot = ensureTrailingSlash(registryUrl);\n const searchRoots: string[] = [];\n // Optimize lookup order\n if (!registryUrl.startsWith(MAVEN_REPO)) {\n searchRoots.push(`${repoRoot}${groupIdSplit.join('.')}`);\n }\n searchRoots.push(`${repoRoot}${groupIdSplit.join('/')}`);\n\n for (const searchRoot of searchRoots) {\n let versions = await this.resolvePluginReleases(\n searchRoot,\n artifact,\n scalaVersion,\n );\n let urls = {};\n\n if (!versions?.length) {\n const artifactSubdirs = await this.getArtifactSubdirs(\n searchRoot,\n artifact,\n scalaVersion,\n );\n versions = await this.getPackageReleases(searchRoot, artifactSubdirs);\n const latestVersion = getLatestVersion(versions);\n urls = await this.getUrls(searchRoot, artifactSubdirs, latestVersion);\n }\n\n const dependencyUrl = `${searchRoot}/${artifact}`;\n\n logger.trace({ dependency: packageName, versions }, `Package versions`);\n if (versions) {\n return {\n ...urls,\n dependencyUrl,\n releases: versions.map((v) => ({ version: v })),\n };\n }\n }\n\n logger.debug(\n `No versions found for ${packageName} in ${searchRoots.length} repositories`,\n );\n return null;\n }\n}\n"]}
|
@@ -3,19 +3,19 @@ export declare const ReleasesConfig: z.ZodObject<{
|
|
3
3
|
packageName: z.ZodString;
|
4
4
|
registryUrl: z.ZodString;
|
5
5
|
}, "strip", z.ZodTypeAny, {
|
6
|
-
packageName: string;
|
7
6
|
registryUrl: string;
|
8
|
-
}, {
|
9
7
|
packageName: string;
|
8
|
+
}, {
|
10
9
|
registryUrl: string;
|
10
|
+
packageName: string;
|
11
11
|
}>;
|
12
12
|
export declare const DigestsConfig: z.ZodObject<{
|
13
13
|
packageName: z.ZodString;
|
14
14
|
registryUrl: z.ZodString;
|
15
15
|
}, "strip", z.ZodTypeAny, {
|
16
|
-
packageName: string;
|
17
16
|
registryUrl: string;
|
18
|
-
}, {
|
19
17
|
packageName: string;
|
18
|
+
}, {
|
20
19
|
registryUrl: string;
|
20
|
+
packageName: string;
|
21
21
|
}>;
|
@@ -32,7 +32,7 @@ class TerraformModuleDatasource extends base_1.TerraformDatasource {
|
|
32
32
|
* - `homepage` is set to the Terraform registry's page if it's on the official main registry
|
33
33
|
*/
|
34
34
|
async getReleases({ packageName, registryUrl, }) {
|
35
|
-
|
35
|
+
/* v8 ignore next 3 -- should never happen */
|
36
36
|
if (!registryUrl) {
|
37
37
|
return null;
|
38
38
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/terraform-module/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { regEx } from '../../../util/regex';\nimport { coerceString } from '../../../util/string';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { isHttpUrl } from '../../../util/url';\nimport * as hashicorpVersioning from '../../versioning/hashicorp';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport { TerraformDatasource } from './base';\nimport type {\n RegistryRepository,\n ServiceDiscoveryResult,\n TerraformModuleVersions,\n TerraformRelease,\n} from './types';\nimport { createSDBackendURL } from './utils';\n\nexport class TerraformModuleDatasource extends TerraformDatasource {\n static override readonly id = 'terraform-module';\n\n constructor() {\n super(TerraformModuleDatasource.id);\n }\n\n override readonly defaultRegistryUrls = ['https://registry.terraform.io'];\n\n override readonly defaultVersioning = hashicorpVersioning.id;\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is only supported for the latest version, and is determined from the `published_at` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the the `source` field in the results.';\n\n readonly extendedApiRegistryUrls = [\n 'https://registry.terraform.io',\n 'https://app.terraform.io',\n ];\n\n /**\n * This function will fetch a package from the specified Terraform registry and return all semver versions.\n * - `sourceUrl` is supported if \"source\" field is set\n * - `homepage` is set to the Terraform registry's page if it's on the official main registry\n */\n @cache({\n namespace: `datasource-${TerraformModuleDatasource.id}`,\n key: (getReleasesConfig: GetReleasesConfig) =>\n TerraformModuleDatasource.getCacheKey(getReleasesConfig),\n })\n async getReleases({\n packageName,\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n // istanbul ignore if\n if (!registryUrl) {\n return null;\n }\n\n const { registry: registryUrlNormalized, repository } =\n TerraformModuleDatasource.getRegistryRepository(packageName, registryUrl);\n logger.trace(\n { registryUrlNormalized, terraformRepository: repository },\n 'terraform-module.getReleases()',\n );\n\n const serviceDiscovery = await this.getTerraformServiceDiscoveryResult(\n registryUrlNormalized,\n );\n if (this.extendedApiRegistryUrls.includes(registryUrlNormalized)) {\n return await this.queryRegistryExtendedApi(\n serviceDiscovery,\n registryUrlNormalized,\n repository,\n );\n }\n\n return await this.queryRegistryVersions(\n serviceDiscovery,\n registryUrlNormalized,\n repository,\n );\n }\n\n /**\n * this uses the api that terraform registry has in addition to the base api\n * this endpoint provides more information, such as release date\n * https://www.terraform.io/registry/api-docs#latest-version-for-a-specific-module-provider\n */\n private async queryRegistryExtendedApi(\n serviceDiscovery: ServiceDiscoveryResult,\n registryUrl: string,\n repository: string,\n ): Promise<ReleaseResult | null> {\n let res: TerraformRelease;\n let pkgUrl: string;\n\n try {\n // TODO: types (#22198)\n\n pkgUrl = createSDBackendURL(\n registryUrl,\n 'modules.v1',\n serviceDiscovery,\n repository,\n );\n res = (await this.http.getJsonUnchecked<TerraformRelease>(pkgUrl)).body;\n const returnedName = res.namespace + '/' + res.name + '/' + res.provider;\n if (returnedName !== repository) {\n logger.warn({ pkgUrl }, 'Terraform registry result mismatch');\n return null;\n }\n } catch (err) {\n this.handleGenericErrors(err);\n }\n\n // Simplify response before caching and returning\n const dep: ReleaseResult = {\n releases: res.versions.map((version) => ({\n version,\n })),\n };\n if (res.source) {\n dep.sourceUrl = res.source;\n }\n dep.homepage = `${registryUrl}/modules/${repository}`;\n // set published date for latest release\n const latestVersion = dep.releases.find(\n (release) => res.version === release.version,\n );\n if (latestVersion) {\n latestVersion.releaseTimestamp = asTimestamp(res.published_at);\n }\n return dep;\n }\n\n /**\n * this version uses the Module Registry Protocol that all registries are required to implement\n * https://www.terraform.io/internals/module-registry-protocol\n */\n private async queryRegistryVersions(\n serviceDiscovery: ServiceDiscoveryResult,\n registryUrl: string,\n repository: string,\n ): Promise<ReleaseResult | null> {\n let res: TerraformModuleVersions;\n let pkgUrl: string;\n try {\n // TODO: types (#22198)\n pkgUrl = createSDBackendURL(\n registryUrl,\n 'modules.v1',\n serviceDiscovery,\n `${repository}/versions`,\n );\n res = (await this.http.getJsonUnchecked<TerraformModuleVersions>(pkgUrl))\n .body;\n if (res.modules.length < 1) {\n logger.warn({ pkgUrl }, 'Terraform registry result mismatch');\n return null;\n }\n } catch (err) {\n this.handleGenericErrors(err);\n }\n\n // Simplify response before caching and returning\n const dep: ReleaseResult = {\n releases: res.modules[0].versions.map(({ version }) => ({\n version,\n })),\n };\n\n // Add the source URL if given\n if (isHttpUrl(res.modules[0].source)) {\n dep.sourceUrl = res.modules[0].source;\n }\n\n return dep;\n }\n\n private static getRegistryRepository(\n packageName: string,\n registryUrl: string | undefined,\n ): RegistryRepository {\n let registry: string;\n const split = packageName.split('/');\n if (split.length > 3 && split[0].includes('.')) {\n [registry] = split;\n split.shift();\n } else {\n registry = coerceString(registryUrl);\n }\n if (!regEx(/^https?:\\/\\//).test(registry)) {\n registry = `https://${registry}`;\n }\n const repository = split.join('/');\n return {\n registry,\n repository,\n };\n }\n\n private static getCacheKey({\n packageName,\n registryUrl,\n }: GetReleasesConfig): string {\n const { registry, repository } =\n TerraformModuleDatasource.getRegistryRepository(packageName, registryUrl);\n return `${registry}/${repository}`;\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/terraform-module/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { regEx } from '../../../util/regex';\nimport { coerceString } from '../../../util/string';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { isHttpUrl } from '../../../util/url';\nimport * as hashicorpVersioning from '../../versioning/hashicorp';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport { TerraformDatasource } from './base';\nimport type {\n RegistryRepository,\n ServiceDiscoveryResult,\n TerraformModuleVersions,\n TerraformRelease,\n} from './types';\nimport { createSDBackendURL } from './utils';\n\nexport class TerraformModuleDatasource extends TerraformDatasource {\n static override readonly id = 'terraform-module';\n\n constructor() {\n super(TerraformModuleDatasource.id);\n }\n\n override readonly defaultRegistryUrls = ['https://registry.terraform.io'];\n\n override readonly defaultVersioning = hashicorpVersioning.id;\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is only supported for the latest version, and is determined from the `published_at` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the the `source` field in the results.';\n\n readonly extendedApiRegistryUrls = [\n 'https://registry.terraform.io',\n 'https://app.terraform.io',\n ];\n\n /**\n * This function will fetch a package from the specified Terraform registry and return all semver versions.\n * - `sourceUrl` is supported if \"source\" field is set\n * - `homepage` is set to the Terraform registry's page if it's on the official main registry\n */\n @cache({\n namespace: `datasource-${TerraformModuleDatasource.id}`,\n key: (getReleasesConfig: GetReleasesConfig) =>\n TerraformModuleDatasource.getCacheKey(getReleasesConfig),\n })\n async getReleases({\n packageName,\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n /* v8 ignore next 3 -- should never happen */\n if (!registryUrl) {\n return null;\n }\n\n const { registry: registryUrlNormalized, repository } =\n TerraformModuleDatasource.getRegistryRepository(packageName, registryUrl);\n logger.trace(\n { registryUrlNormalized, terraformRepository: repository },\n 'terraform-module.getReleases()',\n );\n\n const serviceDiscovery = await this.getTerraformServiceDiscoveryResult(\n registryUrlNormalized,\n );\n if (this.extendedApiRegistryUrls.includes(registryUrlNormalized)) {\n return await this.queryRegistryExtendedApi(\n serviceDiscovery,\n registryUrlNormalized,\n repository,\n );\n }\n\n return await this.queryRegistryVersions(\n serviceDiscovery,\n registryUrlNormalized,\n repository,\n );\n }\n\n /**\n * this uses the api that terraform registry has in addition to the base api\n * this endpoint provides more information, such as release date\n * https://www.terraform.io/registry/api-docs#latest-version-for-a-specific-module-provider\n */\n private async queryRegistryExtendedApi(\n serviceDiscovery: ServiceDiscoveryResult,\n registryUrl: string,\n repository: string,\n ): Promise<ReleaseResult | null> {\n let res: TerraformRelease;\n let pkgUrl: string;\n\n try {\n // TODO: types (#22198)\n\n pkgUrl = createSDBackendURL(\n registryUrl,\n 'modules.v1',\n serviceDiscovery,\n repository,\n );\n res = (await this.http.getJsonUnchecked<TerraformRelease>(pkgUrl)).body;\n const returnedName = res.namespace + '/' + res.name + '/' + res.provider;\n if (returnedName !== repository) {\n logger.warn({ pkgUrl }, 'Terraform registry result mismatch');\n return null;\n }\n } catch (err) {\n this.handleGenericErrors(err);\n }\n\n // Simplify response before caching and returning\n const dep: ReleaseResult = {\n releases: res.versions.map((version) => ({\n version,\n })),\n };\n if (res.source) {\n dep.sourceUrl = res.source;\n }\n dep.homepage = `${registryUrl}/modules/${repository}`;\n // set published date for latest release\n const latestVersion = dep.releases.find(\n (release) => res.version === release.version,\n );\n if (latestVersion) {\n latestVersion.releaseTimestamp = asTimestamp(res.published_at);\n }\n return dep;\n }\n\n /**\n * this version uses the Module Registry Protocol that all registries are required to implement\n * https://www.terraform.io/internals/module-registry-protocol\n */\n private async queryRegistryVersions(\n serviceDiscovery: ServiceDiscoveryResult,\n registryUrl: string,\n repository: string,\n ): Promise<ReleaseResult | null> {\n let res: TerraformModuleVersions;\n let pkgUrl: string;\n try {\n // TODO: types (#22198)\n pkgUrl = createSDBackendURL(\n registryUrl,\n 'modules.v1',\n serviceDiscovery,\n `${repository}/versions`,\n );\n res = (await this.http.getJsonUnchecked<TerraformModuleVersions>(pkgUrl))\n .body;\n if (res.modules.length < 1) {\n logger.warn({ pkgUrl }, 'Terraform registry result mismatch');\n return null;\n }\n } catch (err) {\n this.handleGenericErrors(err);\n }\n\n // Simplify response before caching and returning\n const dep: ReleaseResult = {\n releases: res.modules[0].versions.map(({ version }) => ({\n version,\n })),\n };\n\n // Add the source URL if given\n if (isHttpUrl(res.modules[0].source)) {\n dep.sourceUrl = res.modules[0].source;\n }\n\n return dep;\n }\n\n private static getRegistryRepository(\n packageName: string,\n registryUrl: string | undefined,\n ): RegistryRepository {\n let registry: string;\n const split = packageName.split('/');\n if (split.length > 3 && split[0].includes('.')) {\n [registry] = split;\n split.shift();\n } else {\n registry = coerceString(registryUrl);\n }\n if (!regEx(/^https?:\\/\\//).test(registry)) {\n registry = `https://${registry}`;\n }\n const repository = split.join('/');\n return {\n registry,\n repository,\n };\n }\n\n private static getCacheKey({\n packageName,\n registryUrl,\n }: GetReleasesConfig): string {\n const { registry, repository } =\n TerraformModuleDatasource.getRegistryRepository(packageName, registryUrl);\n return `${registry}/${repository}`;\n }\n}\n"]}
|
@@ -32,7 +32,7 @@ class TerraformProviderDatasource extends base_1.TerraformDatasource {
|
|
32
32
|
sourceUrlSupport = 'package';
|
33
33
|
sourceUrlNote = 'The source URL is determined from the the `source` field in the results.';
|
34
34
|
async getReleases({ packageName, registryUrl, }) {
|
35
|
-
|
35
|
+
/* v8 ignore next 3 -- should never happen */
|
36
36
|
if (!registryUrl) {
|
37
37
|
return null;
|
38
38
|
}
|
@@ -70,7 +70,6 @@ class TerraformProviderDatasource extends base_1.TerraformDatasource {
|
|
70
70
|
}
|
71
71
|
// set published date for latest release
|
72
72
|
const latestVersion = dep.releases.find((release) => res.version === release.version);
|
73
|
-
// istanbul ignore else
|
74
73
|
if (latestVersion) {
|
75
74
|
latestVersion.releaseTimestamp = (0, timestamp_1.asTimestamp)(res.published_at);
|
76
75
|
}
|
@@ -173,7 +172,7 @@ class TerraformProviderDatasource extends base_1.TerraformDatasource {
|
|
173
172
|
// The hashes are formatted as the result of sha256sum in plain text, each line: <hash>\t<filename>
|
174
173
|
let rawHashData;
|
175
174
|
try {
|
176
|
-
rawHashData = (await this.http.
|
175
|
+
rawHashData = (await this.http.getText(zipHashUrl)).body;
|
177
176
|
}
|
178
177
|
catch (err) {
|
179
178
|
/* istanbul ignore next */
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/terraform-provider/index.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: types (#22198)\nimport is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { ExternalHostError } from '../../../types/errors/external-host-error';\nimport { cache } from '../../../util/cache/package/decorator';\nimport * as p from '../../../util/promises';\nimport { regEx } from '../../../util/regex';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { joinUrlParts } from '../../../util/url';\nimport * as hashicorpVersioning from '../../versioning/hashicorp';\nimport { TerraformDatasource } from '../terraform-module/base';\nimport type { ServiceDiscoveryResult } from '../terraform-module/types';\nimport { createSDBackendURL } from '../terraform-module/utils';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport type {\n TerraformBuild,\n TerraformProvider,\n TerraformProviderReleaseBackend,\n TerraformProviderVersions,\n TerraformRegistryBuildResponse,\n TerraformRegistryVersions,\n VersionDetailResponse,\n} from './types';\n\nexport class TerraformProviderDatasource extends TerraformDatasource {\n static override readonly id = 'terraform-provider';\n\n static readonly defaultRegistryUrls = [\n 'https://registry.terraform.io',\n 'https://releases.hashicorp.com',\n ];\n\n static repositoryRegex = regEx(/^hashicorp\\/(?<packageName>\\S+)$/);\n\n constructor() {\n super(TerraformProviderDatasource.id);\n }\n\n override readonly defaultRegistryUrls =\n TerraformProviderDatasource.defaultRegistryUrls;\n\n override readonly defaultVersioning = hashicorpVersioning.id;\n\n override readonly registryStrategy = 'hunt';\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is only supported for the latest version, and is determined from the `published_at` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the the `source` field in the results.';\n\n @cache({\n namespace: `datasource-${TerraformProviderDatasource.id}`,\n key: (getReleasesConfig: GetReleasesConfig) => {\n const url = getReleasesConfig.registryUrl;\n const repo = TerraformProviderDatasource.getRepository(getReleasesConfig);\n return `getReleases:${url}/${repo}`;\n },\n })\n async getReleases({\n packageName,\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n // istanbul ignore if\n if (!registryUrl) {\n return null;\n }\n logger.trace(\n `terraform-provider.getDependencies() packageName: ${packageName}`,\n );\n\n if (registryUrl === this.defaultRegistryUrls[1]) {\n return await this.queryReleaseBackend(packageName, registryUrl);\n }\n const repository = TerraformProviderDatasource.getRepository({\n packageName,\n });\n const serviceDiscovery =\n await this.getTerraformServiceDiscoveryResult(registryUrl);\n\n if (registryUrl === this.defaultRegistryUrls[0]) {\n return await this.queryRegistryExtendedApi(\n serviceDiscovery,\n registryUrl,\n repository,\n );\n }\n\n return await this.queryRegistryVersions(\n serviceDiscovery,\n registryUrl,\n repository,\n );\n }\n\n private static getRepository({ packageName }: GetReleasesConfig): string {\n return packageName.includes('/') ? packageName : `hashicorp/${packageName}`;\n }\n\n /**\n * this uses the api that terraform registry has in addition to the base api\n * this endpoint provides more information, such as release date\n * this api is undocumented.\n */\n private async queryRegistryExtendedApi(\n serviceDiscovery: ServiceDiscoveryResult,\n registryUrl: string,\n repository: string,\n ): Promise<ReleaseResult> {\n const backendURL = createSDBackendURL(\n registryUrl,\n 'providers.v1',\n serviceDiscovery,\n repository,\n );\n const res = (\n await this.http.getJsonUnchecked<TerraformProvider>(backendURL)\n ).body;\n const dep: ReleaseResult = {\n releases: res.versions.map((version) => ({\n version,\n })),\n };\n if (res.source) {\n dep.sourceUrl = res.source;\n }\n // set published date for latest release\n const latestVersion = dep.releases.find(\n (release) => res.version === release.version,\n );\n // istanbul ignore else\n if (latestVersion) {\n latestVersion.releaseTimestamp = asTimestamp(res.published_at);\n }\n dep.homepage = `${registryUrl}/providers/${repository}`;\n return dep;\n }\n\n /**\n * this version uses the Provider Registry Protocol that all registries are required to implement\n * https://www.terraform.io/internals/provider-registry-protocol\n */\n private async queryRegistryVersions(\n serviceDiscovery: ServiceDiscoveryResult,\n registryUrl: string,\n repository: string,\n ): Promise<ReleaseResult> {\n const backendURL = createSDBackendURL(\n registryUrl,\n 'providers.v1',\n serviceDiscovery,\n `${repository}/versions`,\n );\n const res = (\n await this.http.getJsonUnchecked<TerraformProviderVersions>(backendURL)\n ).body;\n const dep: ReleaseResult = {\n releases: res.versions.map(({ version }) => ({\n version,\n })),\n };\n return dep;\n }\n\n private async queryReleaseBackend(\n packageName: string,\n registryURL: string,\n ): Promise<ReleaseResult | null> {\n const hashicorpPackage = packageName.replace('hashicorp/', '');\n const backendLookUpName = `terraform-provider-${hashicorpPackage}`;\n const backendURL = joinUrlParts(\n registryURL,\n backendLookUpName,\n `index.json`,\n );\n const res = (\n await this.http.getJsonUnchecked<TerraformProviderReleaseBackend>(\n backendURL,\n )\n ).body;\n\n const dep: ReleaseResult = {\n releases: Object.keys(res.versions).map((version) => ({\n version,\n })),\n sourceUrl: joinUrlParts(\n 'https://github.com/terraform-providers',\n backendLookUpName,\n ),\n };\n return dep;\n }\n\n @cache({\n namespace: `datasource-${TerraformProviderDatasource.id}`,\n key: (registryURL: string, repository: string, version: string) =>\n `getBuilds:${registryURL}/${repository}/${version}`,\n })\n async getBuilds(\n registryURL: string,\n repository: string,\n version: string,\n ): Promise<TerraformBuild[] | null> {\n if (registryURL === TerraformProviderDatasource.defaultRegistryUrls[1]) {\n // check if registryURL === secondary backend\n const repositoryRegexResult =\n TerraformProviderDatasource.repositoryRegex.exec(repository)?.groups;\n if (!repositoryRegexResult) {\n // non hashicorp builds are not supported with releases.hashicorp.com\n return null;\n }\n const packageName = repositoryRegexResult.packageName;\n const backendLookUpName = `terraform-provider-${packageName}`;\n let versionReleaseBackend: VersionDetailResponse;\n try {\n versionReleaseBackend = await this.getReleaseBackendIndex(\n backendLookUpName,\n version,\n );\n } catch (err) {\n /* istanbul ignore next */\n if (err instanceof ExternalHostError) {\n throw err;\n }\n logger.debug(\n { err, backendLookUpName, version },\n `Failed to retrieve builds for ${backendLookUpName} ${version}`,\n );\n return null;\n }\n return versionReleaseBackend.builds;\n }\n\n // check public or private Terraform registry\n const serviceDiscovery =\n await this.getTerraformServiceDiscoveryResult(registryURL);\n if (!serviceDiscovery) {\n logger.trace(`Failed to retrieve service discovery from ${registryURL}`);\n return null;\n }\n const backendURL = createSDBackendURL(\n registryURL,\n 'providers.v1',\n serviceDiscovery,\n repository,\n );\n const versionsResponse = (\n await this.http.getJsonUnchecked<TerraformRegistryVersions>(\n `${backendURL}/versions`,\n )\n ).body;\n if (!versionsResponse.versions) {\n logger.trace(`Failed to retrieve version list for ${backendURL}`);\n return null;\n }\n const builds = versionsResponse.versions.find(\n (value) => value.version === version,\n );\n if (!builds) {\n logger.trace(\n `No builds found for ${repository}:${version} on ${registryURL}`,\n );\n return null;\n }\n const result = await p.map(\n builds.platforms,\n async (platform) => {\n const buildURL = `${backendURL}/${version}/download/${platform.os}/${platform.arch}`;\n try {\n const res = (\n await this.http.getJsonUnchecked<TerraformRegistryBuildResponse>(\n buildURL,\n )\n ).body;\n const newBuild: TerraformBuild = {\n name: repository,\n url: res.download_url,\n version,\n ...res,\n };\n return newBuild;\n } catch (err) {\n /* istanbul ignore next */\n if (err instanceof ExternalHostError) {\n throw err;\n }\n logger.debug({ err, url: buildURL }, 'Failed to retrieve build');\n return null;\n }\n },\n { concurrency: 4 },\n );\n\n const filteredResult = result.filter(is.truthy);\n return filteredResult.length === result.length ? filteredResult : null;\n }\n\n @cache({\n namespace: `datasource-${TerraformProviderDatasource.id}`,\n key: (zipHashUrl: string) => `getZipHashes:${zipHashUrl}`,\n })\n async getZipHashes(zipHashUrl: string): Promise<string[] | undefined> {\n // The hashes are formatted as the result of sha256sum in plain text, each line: <hash>\\t<filename>\n let rawHashData: string;\n try {\n rawHashData = (await this.http.get(zipHashUrl)).body;\n } catch (err) {\n /* istanbul ignore next */\n if (err instanceof ExternalHostError) {\n throw err;\n }\n logger.debug(\n { err, zipHashUrl },\n `Failed to retrieve zip hashes from ${zipHashUrl}`,\n );\n return undefined;\n }\n\n return rawHashData\n .trimEnd()\n .split('\\n')\n .map((line) => line.split(/\\s/)[0]);\n }\n\n @cache({\n namespace: `datasource-${TerraformProviderDatasource.id}`,\n key: (backendLookUpName: string, version: string) =>\n `getReleaseBackendIndex:${backendLookUpName}/${version}`,\n })\n async getReleaseBackendIndex(\n backendLookUpName: string,\n version: string,\n ): Promise<VersionDetailResponse> {\n return (\n await this.http.getJsonUnchecked<VersionDetailResponse>(\n `${TerraformProviderDatasource.defaultRegistryUrls[1]}/${backendLookUpName}/${version}/index.json`,\n )\n ).body;\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/terraform-provider/index.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: types (#22198)\nimport is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { ExternalHostError } from '../../../types/errors/external-host-error';\nimport { cache } from '../../../util/cache/package/decorator';\nimport * as p from '../../../util/promises';\nimport { regEx } from '../../../util/regex';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { joinUrlParts } from '../../../util/url';\nimport * as hashicorpVersioning from '../../versioning/hashicorp';\nimport { TerraformDatasource } from '../terraform-module/base';\nimport type { ServiceDiscoveryResult } from '../terraform-module/types';\nimport { createSDBackendURL } from '../terraform-module/utils';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport type {\n TerraformBuild,\n TerraformProvider,\n TerraformProviderReleaseBackend,\n TerraformProviderVersions,\n TerraformRegistryBuildResponse,\n TerraformRegistryVersions,\n VersionDetailResponse,\n} from './types';\n\nexport class TerraformProviderDatasource extends TerraformDatasource {\n static override readonly id = 'terraform-provider';\n\n static readonly defaultRegistryUrls = [\n 'https://registry.terraform.io',\n 'https://releases.hashicorp.com',\n ];\n\n static repositoryRegex = regEx(/^hashicorp\\/(?<packageName>\\S+)$/);\n\n constructor() {\n super(TerraformProviderDatasource.id);\n }\n\n override readonly defaultRegistryUrls =\n TerraformProviderDatasource.defaultRegistryUrls;\n\n override readonly defaultVersioning = hashicorpVersioning.id;\n\n override readonly registryStrategy = 'hunt';\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is only supported for the latest version, and is determined from the `published_at` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the the `source` field in the results.';\n\n @cache({\n namespace: `datasource-${TerraformProviderDatasource.id}`,\n key: (getReleasesConfig: GetReleasesConfig) => {\n const url = getReleasesConfig.registryUrl;\n const repo = TerraformProviderDatasource.getRepository(getReleasesConfig);\n return `getReleases:${url}/${repo}`;\n },\n })\n async getReleases({\n packageName,\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n /* v8 ignore next 3 -- should never happen */\n if (!registryUrl) {\n return null;\n }\n logger.trace(\n `terraform-provider.getDependencies() packageName: ${packageName}`,\n );\n\n if (registryUrl === this.defaultRegistryUrls[1]) {\n return await this.queryReleaseBackend(packageName, registryUrl);\n }\n const repository = TerraformProviderDatasource.getRepository({\n packageName,\n });\n const serviceDiscovery =\n await this.getTerraformServiceDiscoveryResult(registryUrl);\n\n if (registryUrl === this.defaultRegistryUrls[0]) {\n return await this.queryRegistryExtendedApi(\n serviceDiscovery,\n registryUrl,\n repository,\n );\n }\n\n return await this.queryRegistryVersions(\n serviceDiscovery,\n registryUrl,\n repository,\n );\n }\n\n private static getRepository({ packageName }: GetReleasesConfig): string {\n return packageName.includes('/') ? packageName : `hashicorp/${packageName}`;\n }\n\n /**\n * this uses the api that terraform registry has in addition to the base api\n * this endpoint provides more information, such as release date\n * this api is undocumented.\n */\n private async queryRegistryExtendedApi(\n serviceDiscovery: ServiceDiscoveryResult,\n registryUrl: string,\n repository: string,\n ): Promise<ReleaseResult> {\n const backendURL = createSDBackendURL(\n registryUrl,\n 'providers.v1',\n serviceDiscovery,\n repository,\n );\n const res = (\n await this.http.getJsonUnchecked<TerraformProvider>(backendURL)\n ).body;\n const dep: ReleaseResult = {\n releases: res.versions.map((version) => ({\n version,\n })),\n };\n if (res.source) {\n dep.sourceUrl = res.source;\n }\n // set published date for latest release\n const latestVersion = dep.releases.find(\n (release) => res.version === release.version,\n );\n if (latestVersion) {\n latestVersion.releaseTimestamp = asTimestamp(res.published_at);\n }\n dep.homepage = `${registryUrl}/providers/${repository}`;\n return dep;\n }\n\n /**\n * this version uses the Provider Registry Protocol that all registries are required to implement\n * https://www.terraform.io/internals/provider-registry-protocol\n */\n private async queryRegistryVersions(\n serviceDiscovery: ServiceDiscoveryResult,\n registryUrl: string,\n repository: string,\n ): Promise<ReleaseResult> {\n const backendURL = createSDBackendURL(\n registryUrl,\n 'providers.v1',\n serviceDiscovery,\n `${repository}/versions`,\n );\n const res = (\n await this.http.getJsonUnchecked<TerraformProviderVersions>(backendURL)\n ).body;\n const dep: ReleaseResult = {\n releases: res.versions.map(({ version }) => ({\n version,\n })),\n };\n return dep;\n }\n\n private async queryReleaseBackend(\n packageName: string,\n registryURL: string,\n ): Promise<ReleaseResult | null> {\n const hashicorpPackage = packageName.replace('hashicorp/', '');\n const backendLookUpName = `terraform-provider-${hashicorpPackage}`;\n const backendURL = joinUrlParts(\n registryURL,\n backendLookUpName,\n `index.json`,\n );\n const res = (\n await this.http.getJsonUnchecked<TerraformProviderReleaseBackend>(\n backendURL,\n )\n ).body;\n\n const dep: ReleaseResult = {\n releases: Object.keys(res.versions).map((version) => ({\n version,\n })),\n sourceUrl: joinUrlParts(\n 'https://github.com/terraform-providers',\n backendLookUpName,\n ),\n };\n return dep;\n }\n\n @cache({\n namespace: `datasource-${TerraformProviderDatasource.id}`,\n key: (registryURL: string, repository: string, version: string) =>\n `getBuilds:${registryURL}/${repository}/${version}`,\n })\n async getBuilds(\n registryURL: string,\n repository: string,\n version: string,\n ): Promise<TerraformBuild[] | null> {\n if (registryURL === TerraformProviderDatasource.defaultRegistryUrls[1]) {\n // check if registryURL === secondary backend\n const repositoryRegexResult =\n TerraformProviderDatasource.repositoryRegex.exec(repository)?.groups;\n if (!repositoryRegexResult) {\n // non hashicorp builds are not supported with releases.hashicorp.com\n return null;\n }\n const packageName = repositoryRegexResult.packageName;\n const backendLookUpName = `terraform-provider-${packageName}`;\n let versionReleaseBackend: VersionDetailResponse;\n try {\n versionReleaseBackend = await this.getReleaseBackendIndex(\n backendLookUpName,\n version,\n );\n } catch (err) {\n /* istanbul ignore next */\n if (err instanceof ExternalHostError) {\n throw err;\n }\n logger.debug(\n { err, backendLookUpName, version },\n `Failed to retrieve builds for ${backendLookUpName} ${version}`,\n );\n return null;\n }\n return versionReleaseBackend.builds;\n }\n\n // check public or private Terraform registry\n const serviceDiscovery =\n await this.getTerraformServiceDiscoveryResult(registryURL);\n if (!serviceDiscovery) {\n logger.trace(`Failed to retrieve service discovery from ${registryURL}`);\n return null;\n }\n const backendURL = createSDBackendURL(\n registryURL,\n 'providers.v1',\n serviceDiscovery,\n repository,\n );\n const versionsResponse = (\n await this.http.getJsonUnchecked<TerraformRegistryVersions>(\n `${backendURL}/versions`,\n )\n ).body;\n if (!versionsResponse.versions) {\n logger.trace(`Failed to retrieve version list for ${backendURL}`);\n return null;\n }\n const builds = versionsResponse.versions.find(\n (value) => value.version === version,\n );\n if (!builds) {\n logger.trace(\n `No builds found for ${repository}:${version} on ${registryURL}`,\n );\n return null;\n }\n const result = await p.map(\n builds.platforms,\n async (platform) => {\n const buildURL = `${backendURL}/${version}/download/${platform.os}/${platform.arch}`;\n try {\n const res = (\n await this.http.getJsonUnchecked<TerraformRegistryBuildResponse>(\n buildURL,\n )\n ).body;\n const newBuild: TerraformBuild = {\n name: repository,\n url: res.download_url,\n version,\n ...res,\n };\n return newBuild;\n } catch (err) {\n /* istanbul ignore next */\n if (err instanceof ExternalHostError) {\n throw err;\n }\n logger.debug({ err, url: buildURL }, 'Failed to retrieve build');\n return null;\n }\n },\n { concurrency: 4 },\n );\n\n const filteredResult = result.filter(is.truthy);\n return filteredResult.length === result.length ? filteredResult : null;\n }\n\n @cache({\n namespace: `datasource-${TerraformProviderDatasource.id}`,\n key: (zipHashUrl: string) => `getZipHashes:${zipHashUrl}`,\n })\n async getZipHashes(zipHashUrl: string): Promise<string[] | undefined> {\n // The hashes are formatted as the result of sha256sum in plain text, each line: <hash>\\t<filename>\n let rawHashData: string;\n try {\n rawHashData = (await this.http.getText(zipHashUrl)).body;\n } catch (err) {\n /* istanbul ignore next */\n if (err instanceof ExternalHostError) {\n throw err;\n }\n logger.debug(\n { err, zipHashUrl },\n `Failed to retrieve zip hashes from ${zipHashUrl}`,\n );\n return undefined;\n }\n\n return rawHashData\n .trimEnd()\n .split('\\n')\n .map((line) => line.split(/\\s/)[0]);\n }\n\n @cache({\n namespace: `datasource-${TerraformProviderDatasource.id}`,\n key: (backendLookUpName: string, version: string) =>\n `getReleaseBackendIndex:${backendLookUpName}/${version}`,\n })\n async getReleaseBackendIndex(\n backendLookUpName: string,\n version: string,\n ): Promise<VersionDetailResponse> {\n return (\n await this.http.getJsonUnchecked<VersionDetailResponse>(\n `${TerraformProviderDatasource.defaultRegistryUrls[1]}/${backendLookUpName}/${version}/index.json`,\n )\n ).body;\n }\n}\n"]}
|
@@ -44,6 +44,7 @@ export interface GetPkgReleasesConfig {
|
|
44
44
|
replacementName?: string;
|
45
45
|
replacementVersion?: string;
|
46
46
|
constraintsFiltering?: ConstraintsFilter;
|
47
|
+
registryStrategy?: RegistryStrategy;
|
47
48
|
}
|
48
49
|
export interface Release {
|
49
50
|
changelogUrl?: string;
|
@@ -82,6 +83,7 @@ export interface ReleaseResult {
|
|
82
83
|
replacementVersion?: string;
|
83
84
|
lookupName?: string;
|
84
85
|
packageScope?: string;
|
86
|
+
bumpedAt?: Timestamp;
|
85
87
|
}
|
86
88
|
export interface PostprocessReleaseConfig {
|
87
89
|
packageName: string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/modules/datasource/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n ConstraintsFilter,\n CustomDatasourceConfig,\n} from '../../config/types';\nimport type { ModuleApi } from '../../types';\nimport type { Timestamp } from '../../util/timestamp';\n\nexport interface GetDigestInputConfig {\n datasource: string;\n packageName: string;\n defaultRegistryUrls?: string[];\n registryUrls?: string[] | null;\n registryUrl?: string;\n lookupName?: string;\n additionalRegistryUrls?: string[];\n currentValue?: string;\n currentDigest?: string;\n replacementName?: string;\n}\n\nexport interface DigestConfig {\n packageName: string;\n lookupName?: string;\n registryUrl?: string;\n currentValue?: string;\n currentDigest?: string;\n}\n\nexport interface GetReleasesConfig {\n customDatasources?: Record<string, CustomDatasourceConfig>;\n datasource?: string;\n packageName: string;\n registryUrl?: string;\n currentValue?: string;\n}\n\nexport interface GetPkgReleasesConfig {\n customDatasources?: Record<string, CustomDatasourceConfig>;\n npmrc?: string;\n defaultRegistryUrls?: string[];\n registryUrls?: string[] | null;\n additionalRegistryUrls?: string[];\n datasource: string;\n packageName: string;\n currentValue?: string;\n versioning?: string;\n extractVersion?: string;\n versionCompatibility?: string;\n currentCompatibility?: string;\n constraints?: Record<string, string>;\n replacementName?: string;\n replacementVersion?: string;\n constraintsFiltering?: ConstraintsFilter;\n}\n\nexport interface Release {\n changelogUrl?: string;\n checksumUrl?: string;\n downloadUrl?: string;\n gitRef?: string;\n isDeprecated?: boolean;\n isStable?: boolean;\n releaseTimestamp?: Timestamp | null;\n version: string;\n /** The original value to which `extractVersion` was applied */\n versionOrig?: string;\n newDigest?: string | undefined;\n constraints?: Record<string, string[]>;\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n registryUrl?: string;\n sourceUrl?: string | undefined;\n sourceDirectory?: string;\n currentAge?: string;\n isLatest?: boolean;\n}\n\nexport interface ReleaseResult {\n deprecationMessage?: string;\n isPrivate?: boolean;\n releases: Release[];\n tags?: Record<string, string> | undefined;\n // URL metadata\n changelogUrl?: string;\n dependencyUrl?: string;\n homepage?: string | undefined;\n gitRef?: string;\n sourceUrl?: string | null;\n sourceDirectory?: string;\n registryUrl?: string;\n replacementName?: string;\n replacementVersion?: string;\n lookupName?: string;\n packageScope?: string;\n}\n\nexport interface PostprocessReleaseConfig {\n packageName: string;\n registryUrl: string | null;\n}\n\nexport type PostprocessReleaseResult = Release | 'reject';\n\nexport type RegistryStrategy = 'first' | 'hunt' | 'merge';\nexport type SourceUrlSupport = 'package' | 'release' | 'none';\nexport interface DatasourceApi extends ModuleApi {\n id: string;\n getDigest?(config: DigestConfig, newValue?: string): Promise<string | null>;\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null>;\n defaultRegistryUrls?: string[] | (() => string[]);\n defaultVersioning?: string | undefined;\n defaultConfig?: Record<string, unknown> | undefined;\n\n /**\n * Strategy to use when multiple registryUrls are available to the datasource.\n * - `first`: only the first registryUrl will be tried and others ignored\n * - `hunt`: registryUrls will be tried in order until one returns a result\n * - `merge`: all registryUrls will be tried and the results merged if more than one returns a result\n */\n registryStrategy?: RegistryStrategy | undefined;\n\n /**\n * Whether custom registryUrls are allowed.\n */\n customRegistrySupport: boolean;\n\n /**\n * Whether release timestamp can be returned.\n */\n releaseTimestampSupport: boolean;\n /**\n * Notes on how release timestamp is determined.\n */\n releaseTimestampNote?: string;\n\n /**\n * Whether sourceURL can be returned.\n */\n sourceUrlSupport: SourceUrlSupport;\n /**\n * Notes on how sourceURL is determined.\n */\n sourceUrlNote?: string;\n\n /**\n * Whether to perform caching in the datasource index/wrapper or not.\n * true: datasoure index wrapper should cache all results (based on registryUrl/packageName)\n * false: caching is not performed, or performed within the datasource implementation\n */\n caching?: boolean | undefined;\n\n /**\n * When the candidate for update is formed, this method could be called\n * to fetch additional information such as `releaseTimestamp`.\n *\n * Also, the release could be checked (and potentially rejected)\n * via some datasource-specific external call.\n *\n * In case of reject, the next candidate release is selected,\n * and `postprocessRelease` is called again.\n *\n * Rejection must happen only when the release will lead to downstream error,\n * e.g. the release turned out to be yanked or doesn't exist for some reason.\n *\n * In other cases, the original `Release` parameter should be returned.\n */\n postprocessRelease(\n config: PostprocessReleaseConfig,\n release: Release,\n ): Promise<PostprocessReleaseResult>;\n}\n"]}
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/modules/datasource/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n ConstraintsFilter,\n CustomDatasourceConfig,\n} from '../../config/types';\nimport type { ModuleApi } from '../../types';\nimport type { Timestamp } from '../../util/timestamp';\n\nexport interface GetDigestInputConfig {\n datasource: string;\n packageName: string;\n defaultRegistryUrls?: string[];\n registryUrls?: string[] | null;\n registryUrl?: string;\n lookupName?: string;\n additionalRegistryUrls?: string[];\n currentValue?: string;\n currentDigest?: string;\n replacementName?: string;\n}\n\nexport interface DigestConfig {\n packageName: string;\n lookupName?: string;\n registryUrl?: string;\n currentValue?: string;\n currentDigest?: string;\n}\n\nexport interface GetReleasesConfig {\n customDatasources?: Record<string, CustomDatasourceConfig>;\n datasource?: string;\n packageName: string;\n registryUrl?: string;\n currentValue?: string;\n}\n\nexport interface GetPkgReleasesConfig {\n customDatasources?: Record<string, CustomDatasourceConfig>;\n npmrc?: string;\n defaultRegistryUrls?: string[];\n registryUrls?: string[] | null;\n additionalRegistryUrls?: string[];\n datasource: string;\n packageName: string;\n currentValue?: string;\n versioning?: string;\n extractVersion?: string;\n versionCompatibility?: string;\n currentCompatibility?: string;\n constraints?: Record<string, string>;\n replacementName?: string;\n replacementVersion?: string;\n constraintsFiltering?: ConstraintsFilter;\n registryStrategy?: RegistryStrategy;\n}\n\nexport interface Release {\n changelogUrl?: string;\n checksumUrl?: string;\n downloadUrl?: string;\n gitRef?: string;\n isDeprecated?: boolean;\n isStable?: boolean;\n releaseTimestamp?: Timestamp | null;\n version: string;\n /** The original value to which `extractVersion` was applied */\n versionOrig?: string;\n newDigest?: string | undefined;\n constraints?: Record<string, string[]>;\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n registryUrl?: string;\n sourceUrl?: string | undefined;\n sourceDirectory?: string;\n currentAge?: string;\n isLatest?: boolean;\n}\n\nexport interface ReleaseResult {\n deprecationMessage?: string;\n isPrivate?: boolean;\n releases: Release[];\n tags?: Record<string, string> | undefined;\n // URL metadata\n changelogUrl?: string;\n dependencyUrl?: string;\n homepage?: string | undefined;\n gitRef?: string;\n sourceUrl?: string | null;\n sourceDirectory?: string;\n registryUrl?: string;\n replacementName?: string;\n replacementVersion?: string;\n lookupName?: string;\n packageScope?: string;\n bumpedAt?: Timestamp;\n}\n\nexport interface PostprocessReleaseConfig {\n packageName: string;\n registryUrl: string | null;\n}\n\nexport type PostprocessReleaseResult = Release | 'reject';\n\nexport type RegistryStrategy = 'first' | 'hunt' | 'merge';\nexport type SourceUrlSupport = 'package' | 'release' | 'none';\nexport interface DatasourceApi extends ModuleApi {\n id: string;\n getDigest?(config: DigestConfig, newValue?: string): Promise<string | null>;\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null>;\n defaultRegistryUrls?: string[] | (() => string[]);\n defaultVersioning?: string | undefined;\n defaultConfig?: Record<string, unknown> | undefined;\n\n /**\n * Strategy to use when multiple registryUrls are available to the datasource.\n * - `first`: only the first registryUrl will be tried and others ignored\n * - `hunt`: registryUrls will be tried in order until one returns a result\n * - `merge`: all registryUrls will be tried and the results merged if more than one returns a result\n */\n registryStrategy?: RegistryStrategy | undefined;\n\n /**\n * Whether custom registryUrls are allowed.\n */\n customRegistrySupport: boolean;\n\n /**\n * Whether release timestamp can be returned.\n */\n releaseTimestampSupport: boolean;\n /**\n * Notes on how release timestamp is determined.\n */\n releaseTimestampNote?: string;\n\n /**\n * Whether sourceURL can be returned.\n */\n sourceUrlSupport: SourceUrlSupport;\n /**\n * Notes on how sourceURL is determined.\n */\n sourceUrlNote?: string;\n\n /**\n * Whether to perform caching in the datasource index/wrapper or not.\n * true: datasoure index wrapper should cache all results (based on registryUrl/packageName)\n * false: caching is not performed, or performed within the datasource implementation\n */\n caching?: boolean | undefined;\n\n /**\n * When the candidate for update is formed, this method could be called\n * to fetch additional information such as `releaseTimestamp`.\n *\n * Also, the release could be checked (and potentially rejected)\n * via some datasource-specific external call.\n *\n * In case of reject, the next candidate release is selected,\n * and `postprocessRelease` is called again.\n *\n * Rejection must happen only when the release will lead to downstream error,\n * e.g. the release turned out to be yanked or doesn't exist for some reason.\n *\n * In other cases, the original `Release` parameter should be returned.\n */\n postprocessRelease(\n config: PostprocessReleaseConfig,\n release: Release,\n ): Promise<PostprocessReleaseResult>;\n}\n"]}
|
@@ -1,15 +1,18 @@
|
|
1
1
|
import { Datasource } from '../datasource';
|
2
2
|
import type { GetReleasesConfig, ReleaseResult } from '../types';
|
3
3
|
export declare class Unity3dDatasource extends Datasource {
|
4
|
+
static readonly baseUrl = "https://services.api.unity.com/unity/editor/release/v1/releases";
|
4
5
|
static readonly homepage = "https://unity.com/";
|
5
6
|
static readonly streams: Record<string, string>;
|
7
|
+
static readonly legacyStreams: Record<string, string>;
|
6
8
|
static readonly id = "unity3d";
|
7
9
|
readonly defaultRegistryUrls: string[];
|
8
10
|
readonly defaultVersioning = "unity3d";
|
9
11
|
readonly registryStrategy = "merge";
|
10
12
|
readonly releaseTimestampSupport = true;
|
11
|
-
readonly releaseTimestampNote = "The release timestamp is determined from the `
|
13
|
+
readonly releaseTimestampNote = "The release timestamp is determined from the `releaseDate` field in the results.";
|
12
14
|
constructor();
|
15
|
+
translateStream(registryUrl: string): string;
|
13
16
|
getByStream(registryUrl: string | undefined, withHash: boolean): Promise<ReleaseResult | null>;
|
14
17
|
getReleases({ packageName, registryUrl, }: GetReleasesConfig): Promise<ReleaseResult | null>;
|
15
18
|
}
|
@@ -2,69 +2,63 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.Unity3dDatasource = void 0;
|
4
4
|
const tslib_1 = require("tslib");
|
5
|
-
const xmldoc_1 = require("xmldoc");
|
6
|
-
const logger_1 = require("../../../logger");
|
7
5
|
const decorator_1 = require("../../../util/cache/package/decorator");
|
8
6
|
const timestamp_1 = require("../../../util/timestamp");
|
9
7
|
const Unity3dVersioning = tslib_1.__importStar(require("../../versioning/unity3d"));
|
10
8
|
const datasource_1 = require("../datasource");
|
9
|
+
const schema_1 = require("./schema");
|
11
10
|
class Unity3dDatasource extends datasource_1.Datasource {
|
11
|
+
static baseUrl = 'https://services.api.unity.com/unity/editor/release/v1/releases';
|
12
12
|
static homepage = 'https://unity.com/';
|
13
13
|
static streams = {
|
14
|
+
lts: `${Unity3dDatasource.baseUrl}?stream=LTS`,
|
15
|
+
tech: `${Unity3dDatasource.baseUrl}?stream=TECH`,
|
16
|
+
alpha: `${Unity3dDatasource.baseUrl}?stream=ALPHA`,
|
17
|
+
beta: `${Unity3dDatasource.baseUrl}?stream=BETA`,
|
18
|
+
};
|
19
|
+
static legacyStreams = {
|
14
20
|
lts: `${Unity3dDatasource.homepage}releases/editor/lts-releases.xml`,
|
15
21
|
stable: `${Unity3dDatasource.homepage}releases/editor/releases.xml`,
|
16
22
|
beta: `${Unity3dDatasource.homepage}releases/editor/beta/latest.xml`,
|
17
23
|
};
|
18
24
|
static id = 'unity3d';
|
19
|
-
defaultRegistryUrls = [
|
20
|
-
Unity3dDatasource.streams.stable,
|
21
|
-
Unity3dDatasource.streams.lts,
|
22
|
-
];
|
25
|
+
defaultRegistryUrls = [Unity3dDatasource.streams.lts];
|
23
26
|
defaultVersioning = Unity3dVersioning.id;
|
24
27
|
registryStrategy = 'merge';
|
25
28
|
releaseTimestampSupport = true;
|
26
|
-
releaseTimestampNote = 'The release timestamp is determined from the `
|
29
|
+
releaseTimestampNote = 'The release timestamp is determined from the `releaseDate` field in the results.';
|
27
30
|
constructor() {
|
28
31
|
super(Unity3dDatasource.id);
|
29
32
|
}
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
catch (err) {
|
38
|
-
logger_1.logger.error({ err, registryUrl }, 'Failed to request releases from Unity3d datasource');
|
39
|
-
return null;
|
40
|
-
}
|
41
|
-
if (!channel) {
|
42
|
-
return {
|
43
|
-
releases: [],
|
44
|
-
homepage: Unity3dDatasource.homepage,
|
45
|
-
registryUrl,
|
46
|
-
};
|
33
|
+
translateStream(registryUrl) {
|
34
|
+
const legacyKey = Object.keys(Unity3dDatasource.legacyStreams).find((key) => Unity3dDatasource.legacyStreams[key] === registryUrl);
|
35
|
+
if (legacyKey) {
|
36
|
+
if (legacyKey === 'stable') {
|
37
|
+
return Unity3dDatasource.streams.lts;
|
38
|
+
}
|
39
|
+
return Unity3dDatasource.streams[legacyKey];
|
47
40
|
}
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
releaseTimestamp: (0, timestamp_1.asTimestamp)(itemNode.childNamed('pubDate')?.val),
|
56
|
-
changelogUrl: itemNode.childNamed('link')?.val,
|
57
|
-
isStable: registryUrl !== Unity3dDatasource.streams.beta,
|
58
|
-
registryUrl,
|
59
|
-
};
|
60
|
-
return release;
|
61
|
-
})
|
62
|
-
.filter((release) => !!release);
|
63
|
-
return {
|
64
|
-
releases,
|
41
|
+
return registryUrl;
|
42
|
+
}
|
43
|
+
async getByStream(registryUrl, withHash) {
|
44
|
+
const translatedRegistryUrl = this.translateStream(registryUrl);
|
45
|
+
const response = await this.http.getJson(translatedRegistryUrl, schema_1.UnityReleasesJSON);
|
46
|
+
const result = {
|
47
|
+
releases: [],
|
65
48
|
homepage: Unity3dDatasource.homepage,
|
66
|
-
registryUrl,
|
49
|
+
registryUrl: translatedRegistryUrl,
|
67
50
|
};
|
51
|
+
for (const release of response.body.results) {
|
52
|
+
result.releases.push({
|
53
|
+
version: withHash
|
54
|
+
? `${release.version} (${release.shortRevision})`
|
55
|
+
: release.version,
|
56
|
+
releaseTimestamp: (0, timestamp_1.asTimestamp)(release.releaseDate),
|
57
|
+
changelogUrl: release.releaseNotes.url,
|
58
|
+
isStable: translatedRegistryUrl === Unity3dDatasource.streams.lts,
|
59
|
+
});
|
60
|
+
}
|
61
|
+
return result;
|
68
62
|
}
|
69
63
|
async getReleases({ packageName, registryUrl, }) {
|
70
64
|
return await this.getByStream(registryUrl, packageName === 'm_EditorVersionWithRevision');
|