renovate 44.61.0 → 44.61.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/migration.js +1 -1
- package/dist/config/migration.js.map +1 -1
- package/dist/config/migrations/custom/schedule-migration.js +8 -8
- package/dist/config/migrations/custom/schedule-migration.js.map +1 -1
- package/dist/config/options/env.js +1 -1
- package/dist/config/options/env.js.map +1 -1
- package/dist/config/parse.js +1 -1
- package/dist/config/parse.js.map +1 -1
- package/dist/config/presets/parse.js +1 -1
- package/dist/config/presets/parse.js.map +1 -1
- package/dist/config/validation.js +1 -1
- package/dist/config/validation.js.map +1 -1
- package/dist/logger/utils.js +2 -2
- package/dist/logger/utils.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/docker/ecr.js +1 -1
- package/dist/modules/datasource/docker/ecr.js.map +1 -1
- package/dist/modules/datasource/docker/google.js +1 -1
- package/dist/modules/datasource/docker/google.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/goproxy-parser.js +1 -1
- package/dist/modules/datasource/go/goproxy-parser.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/gradle-version/index.js +1 -1
- package/dist/modules/datasource/gradle-version/index.js.map +1 -1
- package/dist/modules/datasource/helm/schema.js +2 -2
- package/dist/modules/datasource/helm/schema.js.map +1 -1
- 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/npm/get.js +1 -1
- package/dist/modules/datasource/npm/get.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/pypi/common.js +2 -2
- package/dist/modules/datasource/pypi/common.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/manager/ansible/extract.js +2 -2
- package/dist/modules/manager/ansible/extract.js.map +1 -1
- package/dist/modules/manager/ansible-galaxy/collections.js +2 -2
- package/dist/modules/manager/ansible-galaxy/collections.js.map +1 -1
- package/dist/modules/manager/ansible-galaxy/roles.js +2 -2
- package/dist/modules/manager/ansible-galaxy/roles.js.map +1 -1
- package/dist/modules/manager/ansible-galaxy/util.js +4 -4
- package/dist/modules/manager/ansible-galaxy/util.js.map +1 -1
- package/dist/modules/manager/ant/properties.js +9 -9
- package/dist/modules/manager/ant/properties.js.map +1 -1
- package/dist/modules/manager/asdf/extract.js +1 -1
- package/dist/modules/manager/asdf/extract.js.map +1 -1
- package/dist/modules/manager/asdf/upgradeable-tooling.js +1 -1
- package/dist/modules/manager/asdf/upgradeable-tooling.js.map +1 -1
- package/dist/modules/manager/batect-wrapper/extract.js +2 -2
- package/dist/modules/manager/batect-wrapper/extract.js.map +1 -1
- package/dist/modules/manager/bazel/rules/go.js +1 -1
- package/dist/modules/manager/bazel/rules/go.js.map +1 -1
- package/dist/modules/manager/buildkite/extract.js +1 -1
- package/dist/modules/manager/buildkite/extract.js.map +1 -1
- package/dist/modules/manager/buildpacks/extract.js +1 -1
- package/dist/modules/manager/buildpacks/extract.js.map +1 -1
- package/dist/modules/manager/bundler/common.js +7 -7
- package/dist/modules/manager/bundler/common.js.map +1 -1
- package/dist/modules/manager/bundler/extract.js +4 -4
- package/dist/modules/manager/bundler/extract.js.map +1 -1
- package/dist/modules/manager/deno/utils.js +1 -1
- package/dist/modules/manager/deno/utils.js.map +1 -1
- package/dist/modules/manager/dockerfile/extract.js +11 -4
- package/dist/modules/manager/dockerfile/extract.js.map +1 -1
- package/dist/modules/manager/fingerprint.generated.js +4 -4
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/flux/extract.js +2 -1
- package/dist/modules/manager/flux/extract.js.map +1 -1
- package/dist/modules/manager/git-submodules/extract.js +1 -1
- package/dist/modules/manager/git-submodules/extract.js.map +1 -1
- package/dist/modules/manager/github-actions/common.js +3 -3
- package/dist/modules/manager/github-actions/common.js.map +1 -1
- package/dist/modules/manager/github-actions/parse.js +1 -1
- package/dist/modules/manager/github-actions/parse.js.map +1 -1
- package/dist/modules/manager/gomod/artifacts.js +4 -4
- package/dist/modules/manager/gomod/artifacts.js.map +1 -1
- package/dist/modules/manager/gomod/line-parser.js +1 -1
- package/dist/modules/manager/gomod/line-parser.js.map +1 -1
- package/dist/modules/manager/gomod/update.js +1 -1
- package/dist/modules/manager/gomod/update.js.map +1 -1
- package/dist/modules/manager/gradle/parser/handlers.js +1 -1
- package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
- package/dist/modules/manager/helmv3/utils.js +1 -1
- package/dist/modules/manager/helmv3/utils.js.map +1 -1
- package/dist/modules/manager/html/extract.js +2 -2
- package/dist/modules/manager/html/extract.js.map +1 -1
- package/dist/modules/manager/kustomize/extract.js +3 -3
- package/dist/modules/manager/kustomize/extract.js.map +1 -1
- package/dist/modules/manager/leiningen/extract.js +1 -1
- package/dist/modules/manager/leiningen/extract.js.map +1 -1
- package/dist/modules/manager/maven-wrapper/artifacts.js +6 -6
- package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
- package/dist/modules/manager/meteor/extract.js +2 -2
- package/dist/modules/manager/meteor/extract.js.map +1 -1
- package/dist/modules/manager/mise/upgradeable-tooling.js +2 -2
- package/dist/modules/manager/mise/upgradeable-tooling.js.map +1 -1
- package/dist/modules/manager/mix/extract.js +3 -3
- package/dist/modules/manager/mix/extract.js.map +1 -1
- package/dist/modules/manager/npm/extract/common/dependency.js +4 -4
- package/dist/modules/manager/npm/extract/common/dependency.js.map +1 -1
- package/dist/modules/manager/npm/extract/yarnrc.js +1 -1
- package/dist/modules/manager/npm/extract/yarnrc.js.map +1 -1
- package/dist/modules/manager/npm/npmrc.js +1 -1
- package/dist/modules/manager/npm/npmrc.js.map +1 -1
- package/dist/modules/manager/npm/post-update/yarn.js +1 -1
- package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
- package/dist/modules/manager/npm/update/locked-dependency/package-lock/dep-constraints.js +1 -1
- package/dist/modules/manager/npm/update/locked-dependency/package-lock/dep-constraints.js.map +1 -1
- package/dist/modules/manager/npm/update/locked-dependency/yarn-lock/replace.js +1 -1
- package/dist/modules/manager/npm/update/locked-dependency/yarn-lock/replace.js.map +1 -1
- package/dist/modules/manager/nuget/extract.js +1 -1
- package/dist/modules/manager/nuget/extract.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/pep723/utils.js +1 -1
- package/dist/modules/manager/pep723/utils.js.map +1 -1
- package/dist/modules/manager/pip-compile/common.js +2 -2
- package/dist/modules/manager/pip-compile/common.js.map +1 -1
- package/dist/modules/manager/pip_requirements/common.js +1 -1
- package/dist/modules/manager/pip_requirements/common.js.map +1 -1
- package/dist/modules/manager/pip_requirements/extract.js +1 -1
- package/dist/modules/manager/pip_requirements/extract.js.map +1 -1
- package/dist/modules/manager/poetry/artifacts.js +4 -4
- package/dist/modules/manager/poetry/artifacts.js.map +1 -1
- package/dist/modules/manager/puppet/puppetfile-parser.js +5 -5
- package/dist/modules/manager/puppet/puppetfile-parser.js.map +1 -1
- package/dist/modules/manager/sbt/update.js +1 -1
- package/dist/modules/manager/sbt/update.js.map +1 -1
- package/dist/modules/manager/sbt/util.js +2 -2
- package/dist/modules/manager/sbt/util.js.map +1 -1
- package/dist/modules/manager/setup-cfg/extract.js +2 -2
- package/dist/modules/manager/setup-cfg/extract.js.map +1 -1
- package/dist/modules/manager/swift/artifacts.js +4 -4
- package/dist/modules/manager/swift/artifacts.js.map +1 -1
- package/dist/modules/manager/swift/extract.js +1 -1
- package/dist/modules/manager/swift/extract.js.map +1 -1
- package/dist/modules/manager/tekton/extract.js +1 -1
- package/dist/modules/manager/tekton/extract.js.map +1 -1
- package/dist/modules/manager/terraform/extractors/others/modules.js +5 -5
- package/dist/modules/manager/terraform/extractors/others/modules.js.map +1 -1
- package/dist/modules/manager/terraform/util.js +1 -1
- package/dist/modules/manager/terraform/util.js.map +1 -1
- package/dist/modules/manager/terragrunt/modules.js +3 -3
- package/dist/modules/manager/terragrunt/modules.js.map +1 -1
- package/dist/modules/platform/azure/azure-got-wrapper.js +15 -5
- package/dist/modules/platform/azure/azure-got-wrapper.js.map +1 -1
- package/dist/modules/platform/azure/index.js +28 -8
- package/dist/modules/platform/azure/index.js.map +1 -1
- package/dist/modules/platform/azure/types.js.map +1 -1
- package/dist/modules/platform/bitbucket/index.js +4 -4
- package/dist/modules/platform/bitbucket/index.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/index.js +1 -1
- package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
- package/dist/modules/platform/gerrit/index.js +1 -1
- package/dist/modules/platform/gerrit/index.js.map +1 -1
- package/dist/modules/platform/gerrit/utils.js +3 -3
- package/dist/modules/platform/gerrit/utils.js.map +1 -1
- package/dist/modules/versioning/apk/index.js +3 -3
- package/dist/modules/versioning/apk/index.js.map +1 -1
- package/dist/modules/versioning/composer/index.js +11 -11
- package/dist/modules/versioning/composer/index.js.map +1 -1
- package/dist/modules/versioning/conan/range.js +1 -1
- package/dist/modules/versioning/conan/range.js.map +1 -1
- package/dist/modules/versioning/conda/index.js +1 -1
- package/dist/modules/versioning/conda/index.js.map +1 -1
- package/dist/modules/versioning/devbox/index.js +2 -2
- package/dist/modules/versioning/devbox/index.js.map +1 -1
- package/dist/modules/versioning/distro.js +1 -1
- package/dist/modules/versioning/distro.js.map +1 -1
- package/dist/modules/versioning/github-actions/index.js +2 -2
- package/dist/modules/versioning/github-actions/index.js.map +1 -1
- package/dist/modules/versioning/go-mod-directive/index.js +1 -1
- package/dist/modules/versioning/go-mod-directive/index.js.map +1 -1
- package/dist/modules/versioning/hashicorp/convertor.js +5 -5
- package/dist/modules/versioning/hashicorp/convertor.js.map +1 -1
- package/dist/modules/versioning/hex/index.js +4 -4
- package/dist/modules/versioning/hex/index.js.map +1 -1
- package/dist/modules/versioning/lambda-node/schedule.js +2 -2
- package/dist/modules/versioning/lambda-node/schedule.js.map +1 -1
- package/dist/modules/versioning/loose/index.js +2 -2
- package/dist/modules/versioning/loose/index.js.map +1 -1
- package/dist/modules/versioning/pep440/range.js +1 -1
- package/dist/modules/versioning/pep440/range.js.map +1 -1
- package/dist/modules/versioning/perl/index.js +4 -4
- package/dist/modules/versioning/perl/index.js.map +1 -1
- package/dist/modules/versioning/poetry/patterns.js +1 -1
- package/dist/modules/versioning/poetry/patterns.js.map +1 -1
- package/dist/modules/versioning/poetry/transform.js +3 -3
- package/dist/modules/versioning/poetry/transform.js.map +1 -1
- package/dist/modules/versioning/redhat/index.js +1 -1
- package/dist/modules/versioning/redhat/index.js.map +1 -1
- package/dist/modules/versioning/rpm/index.js +1 -1
- package/dist/modules/versioning/rpm/index.js.map +1 -1
- package/dist/modules/versioning/ruby/index.js +2 -2
- package/dist/modules/versioning/ruby/index.js.map +1 -1
- package/dist/modules/versioning/semver/common.js +1 -1
- package/dist/modules/versioning/semver/common.js.map +1 -1
- package/dist/modules/versioning/swift/range.js +13 -13
- package/dist/modules/versioning/swift/range.js.map +1 -1
- package/dist/modules/versioning/ubuntu/index.js +1 -1
- package/dist/modules/versioning/ubuntu/index.js.map +1 -1
- package/dist/modules/versioning/unity3d-packages/index.js +2 -2
- package/dist/modules/versioning/unity3d-packages/index.js.map +1 -1
- package/dist/util/cache/package/impl/redis.js +1 -1
- package/dist/util/cache/package/impl/redis.js.map +1 -1
- package/dist/util/exec/common.js +3 -3
- package/dist/util/exec/common.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/semantic.js +1 -1
- package/dist/util/git/semantic.js.map +1 -1
- package/dist/util/http/www-authenticate.js +4 -4
- package/dist/util/http/www-authenticate.js.map +1 -1
- package/dist/util/ignore.js +1 -1
- package/dist/util/ignore.js.map +1 -1
- package/dist/util/markdown.js +8 -8
- package/dist/util/markdown.js.map +1 -1
- package/dist/util/pretty-time.js +3 -3
- package/dist/util/pretty-time.js.map +1 -1
- package/dist/util/regex.js +1 -1
- package/dist/util/regex.js.map +1 -1
- package/dist/workers/global/config/parse/cli.js +1 -1
- package/dist/workers/global/config/parse/cli.js.map +1 -1
- package/dist/workers/repository/model/semantic-commit-message.js +1 -1
- package/dist/workers/repository/model/semantic-commit-message.js.map +1 -1
- package/dist/workers/repository/onboarding/pr/pr-list.js +2 -2
- package/dist/workers/repository/onboarding/pr/pr-list.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/release-notes.js +3 -3
- package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
- package/dist/workers/repository/updates/branch-name.js +1 -1
- package/dist/workers/repository/updates/branch-name.js.map +1 -1
- package/dist/workers/repository/updates/flatten.js +1 -1
- package/dist/workers/repository/updates/flatten.js.map +1 -1
- package/dist/workers/repository/updates/generate.js +1 -1
- package/dist/workers/repository/updates/generate.js.map +1 -1
- package/package.json +2 -2
- package/renovate-schema.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgradeable-tooling.js","names":["regexVersioning.id","semverVersioning.id"],"sources":["../../../../lib/modules/manager/asdf/upgradeable-tooling.ts"],"sourcesContent":["import { regEx } from '../../../util/regex.ts';\nimport { DartVersionDatasource } from '../../datasource/dart-version/index.ts';\nimport { DockerDatasource } from '../../datasource/docker/index.ts';\nimport { DotnetVersionDatasource } from '../../datasource/dotnet-version/index.ts';\nimport { FlutterVersionDatasource } from '../../datasource/flutter-version/index.ts';\nimport { GithubReleasesDatasource } from '../../datasource/github-releases/index.ts';\nimport { GithubTagsDatasource } from '../../datasource/github-tags/index.ts';\nimport { HexpmBobDatasource } from '../../datasource/hexpm-bob/index.ts';\nimport { JavaVersionDatasource } from '../../datasource/java-version/index.ts';\nimport { NodeVersionDatasource } from '../../datasource/node-version/index.ts';\nimport { NpmDatasource } from '../../datasource/npm/index.ts';\nimport { PypiDatasource } from '../../datasource/pypi/index.ts';\nimport { RubyVersionDatasource } from '../../datasource/ruby-version/index.ts';\nimport { RustVersionDatasource } from '../../datasource/rust-version/index.ts';\nimport * as regexVersioning from '../../versioning/regex/index.ts';\nimport * as semverVersioning from '../../versioning/semver/index.ts';\nimport type { ToolingDefinition } from './types.ts';\n\nconst hugoDefinition: ToolingDefinition = {\n // This plugin supports the names `hugo` & `gohugo`\n asdfPluginUrl: 'https://github.com/NeoHsu/asdf-hugo',\n config: (version) => ({\n datasource: GithubReleasesDatasource.id,\n packageName: 'gohugoio/hugo',\n extractVersion: '^v(?<version>\\\\S+)',\n // The asdf hugo plugin supports prefixing the version with\n // `extended_`. Extended versions feature Sass support.\n currentValue: version.replace(regEx(/^extended_/), ''),\n }),\n};\n\nexport const upgradeableTooling: Record<string, ToolingDefinition> = {\n act: {\n asdfPluginUrl: 'https://github.com/grimoh/asdf-act.git',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'nektos/act',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n actionlint: {\n asdfPluginUrl: 'https://github.com/crazy-matt/asdf-actionlint',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'rhysd/actionlint',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n 'adr-tools': {\n asdfPluginUrl: 'https://gitlab.com/td7x/asdf/adr-tools.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'npryce/adr-tools',\n },\n },\n apm: {\n asdfPluginUrl: 'https://github.com/edwinhern/asdf-apm',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'microsoft/apm',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n argocd: {\n asdfPluginUrl: 'https://github.com/beardix/asdf-argocd',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'argoproj/argo-cd',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n 'asdf-plugin-manager': {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-plugin-manager',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'asdf-community/asdf-plugin-manager',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n atmos: {\n asdfPluginUrl: 'https://github.com/cloudposse/asdf-atmos',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'cloudposse/atmos',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n awscli: {\n asdfPluginUrl: 'https://github.com/MetricMike/asdf-awscli',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'aws/aws-cli',\n },\n },\n 'azure-cli': {\n asdfPluginUrl: 'https://github.com/sourcesense/asdf-azure-cli',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'Azure/azure-cli',\n extractVersion: '^azure-cli-(?<version>\\\\S+)',\n },\n },\n bun: {\n asdfPluginUrl: 'https://github.com/cometkim/asdf-bun',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'oven-sh/bun',\n extractVersion: '^bun-v(?<version>\\\\S+)',\n },\n },\n 'cargo-make': {\n asdfPluginUrl: 'https://github.com/mise-plugins/asdf-cargo-make',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'sagiegurari/cargo-make',\n },\n },\n checkov: {\n asdfPluginUrl: 'https://github.com/bosmak/asdf-checkov.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'bridgecrewio/checkov',\n },\n },\n clojure: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-clojure',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'clojure/brew-install',\n versioning: `${regexVersioning.id}:^(?<major>\\\\d+?)\\\\.(?<minor>\\\\d+?)\\\\.(?<patch>\\\\d+)\\\\.(?<build>\\\\d+)$`,\n },\n },\n clusterctl: {\n asdfPluginUrl: 'https://github.com/pfnet-research/asdf-clusterctl',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'kubernetes-sigs/cluster-api',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n conftest: {\n asdfPluginUrl: 'https://github.com/looztra/asdf-conftest',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'open-policy-agent/conftest',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n 'container-structure-test': {\n asdfPluginUrl:\n 'https://github.com/FeryET/asdf-container-structure-test.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'GoogleContainerTools/container-structure-test',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n cookiecutter: {\n asdfPluginUrl: 'https://github.com/shawon-crosen/asdf-cookiecutter',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'cookiecutter/cookiecutter',\n versioning: semverVersioning.id,\n },\n },\n cosign: {\n asdfPluginUrl: 'https://gitlab.com/wt0f/asdf-cosign',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'sigstore/cosign',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n crystal: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-crystal',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'crystal-lang/crystal',\n },\n },\n dart: {\n asdfPluginUrl: 'https://github.com/PatOConnor43/asdf-dart',\n config: {\n datasource: DartVersionDatasource.id,\n },\n },\n deno: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-deno',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'denoland/deno',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n direnv: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-direnv',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'direnv/direnv',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n 'dotnet-core': {\n asdfPluginUrl: 'https://github.com/emersonsoares/asdf-dotnet-core',\n config: {\n datasource: DotnetVersionDatasource.id,\n packageName: 'dotnet-sdk',\n },\n },\n dprint: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-dprint',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'dprint/dprint',\n },\n },\n ecspresso: {\n asdfPluginUrl: 'https://github.com/kayac/asdf-ecspresso',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'kayac/ecspresso',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n 'editorconfig-checker': {\n asdfPluginUrl: 'https://github.com/gabitchov/asdf-editorconfig-checker',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'editorconfig-checker/editorconfig-checker',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n elixir: {\n asdfPluginUrl: 'https://github.com/asdf-vm/asdf-elixir',\n config: {\n datasource: HexpmBobDatasource.id,\n },\n },\n elm: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-elm',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'elm/compiler',\n },\n },\n erlang: {\n asdfPluginUrl: 'https://github.com/asdf-vm/asdf-erlang',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'erlang/otp',\n extractVersion: '^OTP-(?<version>\\\\S+)',\n versioning: `${regexVersioning.id}:^(?<major>\\\\d+?)\\\\.(?<minor>\\\\d+?)(\\\\.(?<patch>\\\\d+))?$`,\n },\n },\n flutter: {\n asdfPluginUrl: 'https://github.com/oae/asdf-flutter',\n config: (version) => ({\n datasource: FlutterVersionDatasource.id,\n // asdf-flutter plugin supports channel on version suffix.\n currentValue: version.replace(regEx(/-(stable|beta|dev)$/), ''),\n }),\n },\n flux2: {\n asdfPluginUrl: 'https://github.com/tablexi/asdf-flux2.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'fluxcd/flux2',\n extractVersion: '^v(?<version>.+)',\n },\n },\n gauche: {\n asdfPluginUrl: 'https://github.com/sakuro/asdf-gauche',\n config: {\n datasource: DockerDatasource.id,\n packageName: 'practicalscheme/gauche',\n },\n },\n 'github-cli': {\n asdfPluginUrl: 'https://github.com/bartlomiejdanek/asdf-github-cli.git',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'cli/cli',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n gitleaks: {\n asdfPluginUrl: 'https://github.com/jmcvetta/asdf-gitleaks',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'gitleaks/gitleaks',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n ginkgo: {\n asdfPluginUrl: 'https://github.com/jimmidyson/asdf-ginkgo',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'onsi/ginkgo',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n gleam: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-gleam.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'gleam-lang/gleam',\n extractVersion: '^v(?<version>.+)',\n },\n },\n gohugo: hugoDefinition,\n golang: {\n asdfPluginUrl: 'https://github.com/kennyp/asdf-golang',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'golang/go',\n extractVersion: '^go(?<version>\\\\S+)',\n },\n },\n 'golangci-lint': {\n asdfPluginUrl: 'https://github.com/hypnoglow/asdf-golangci-lint.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'golangci/golangci-lint',\n extractVersion: '^v(?<version>.+)',\n },\n },\n gomplate: {\n asdfPluginUrl: 'https://github.com/sneakybeaky/asdf-gomplate',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'hairyhenderson/gomplate',\n extractVersion: '^v(?<version>.+)',\n },\n },\n gotestsum: {\n asdfPluginUrl: 'https://github.com/hpcsc/asdf-gotestsum',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'gotestyourself/gotestsum',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n hadolint: {\n asdfPluginUrl: 'https://github.com/looztra/asdf-hadolint.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'hadolint/hadolint',\n extractVersion: '^v(?<version>.+)',\n },\n },\n haskell: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-haskell',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'ghc/ghc',\n extractVersion: '^ghc-(?<version>\\\\S+?)-release',\n },\n },\n helm: {\n asdfPluginUrl: 'https://github.com/Antiarchitect/asdf-helm',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'helm/helm',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n 'helm-docs': {\n asdfPluginUrl: 'https://github.com/sudermanjr/asdf-helm-docs.git',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'norwoodj/helm-docs',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n helmfile: {\n asdfPluginUrl: 'https://github.com/feniix/asdf-helmfile',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'helmfile/helmfile',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n hugo: hugoDefinition,\n idris: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-idris',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'idris-lang/Idris-dev',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n istioctl: {\n asdfPluginUrl: 'https://github.com/virtualstaticvoid/asdf-istioctl',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'istio/istio',\n versioning: semverVersioning.id,\n },\n },\n java: {\n asdfPluginUrl: 'https://github.com/halcyon/asdf-java',\n config: (version) => {\n const adoptOpenJdkMatches = regEx(/^adoptopenjdk-(?<version>\\d\\S+)/).exec(\n version,\n )?.groups;\n if (adoptOpenJdkMatches) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jdk',\n currentValue: adoptOpenJdkMatches.version,\n };\n }\n const adoptOpenJreMatches = regEx(\n /^adoptopenjdk-jre-(?<version>\\d\\S+)/,\n ).exec(version)?.groups;\n if (adoptOpenJreMatches) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jre',\n currentValue: adoptOpenJreMatches.version,\n };\n }\n const temurinJdkMatches = regEx(/^temurin-(?<version>\\d\\S+)/).exec(\n version,\n )?.groups;\n if (temurinJdkMatches) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jdk',\n currentValue: temurinJdkMatches.version,\n };\n }\n const temurinJreMatches = regEx(/^temurin-jre-(?<version>\\d\\S+)/).exec(\n version,\n )?.groups;\n if (temurinJreMatches) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jre',\n currentValue: temurinJreMatches.version,\n };\n }\n\n return undefined;\n },\n },\n julia: {\n asdfPluginUrl: 'https://github.com/rkyleg/asdf-julia',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'JuliaLang/julia',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n just: {\n asdfPluginUrl: 'https://github.com/olofvndrhr/asdf-just',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'casey/just',\n },\n },\n k3s: {\n asdfPluginUrl: 'https://github.com/dmpe/asdf-k3s',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'k3s-io/k3s',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n kind: {\n asdfPluginUrl: 'https://github.com/johnlayton/asdf-kind',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'kubernetes-sigs/kind',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n kotlin: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-kotlin',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'JetBrains/kotlin',\n extractVersion: '^(Kotlin |v)(?<version>\\\\S+)',\n },\n },\n kubebuilder: {\n asdfPluginUrl: 'https://github.com/virtualstaticvoid/asdf-kubebuilder.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'kubernetes-sigs/kubebuilder',\n extractVersion: '^v(?<version>.+)',\n },\n },\n kubectl: {\n asdfPluginUrl: 'https://github.com/Banno/asdf-kubectl.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'kubernetes/kubernetes',\n extractVersion: '^v(?<version>.+)',\n },\n },\n kubetail: {\n asdfPluginUrl: 'https://github.com/janpieper/asdf-kubetail.git',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'johanhaleby/kubetail',\n },\n },\n kustomize: {\n asdfPluginUrl: 'https://github.com/Banno/asdf-kustomize',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'kubernetes-sigs/kustomize',\n extractVersion: '^kustomize/v(?<version>\\\\S+)',\n },\n },\n localstack: {\n asdfPluginUrl: 'https://github.com/Azulinho/asdf-localstack',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'localstack/localstack',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n lua: {\n asdfPluginUrl: 'https://github.com/Stratus3D/asdf-lua',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'lua/lua',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n 'markdownlint-cli2': {\n asdfPluginUrl:\n 'https://github.com/paulo-ferraz-oliveira/asdf-markdownlint-cli2',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'DavidAnson/markdownlint-cli2',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n maven: {\n asdfPluginUrl: 'https://github.com/halcyon/asdf-maven',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'apache/maven',\n },\n },\n mimirtool: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-mimirtool',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'grafana/mimir',\n extractVersion: '^mimir-(?<version>\\\\S+)',\n },\n },\n minikube: {\n asdfPluginUrl: 'https://github.com/alvarobp/asdf-minikube.git',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'kubernetes/minikube',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n mockery: {\n asdfPluginUrl: 'https://github.com/cabify/asdf-mockery.git',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'vektra/mockery',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n nim: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-nim',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'nim-lang/Nim',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n nodejs: {\n asdfPluginUrl: 'https://github.com/asdf-vm/asdf-nodejs',\n config: {\n depName: 'node',\n datasource: NodeVersionDatasource.id,\n },\n },\n ocaml: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-ocaml',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'ocaml/ocaml',\n },\n },\n oci: {\n asdfPluginUrl: 'https://github.com/yasn77/asdf-oci',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'oracle/oci-cli',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n opa: {\n asdfPluginUrl: 'https://github.com/tochukwuvictor/asdf-opa',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'open-policy-agent/opa',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n opentofu: {\n asdfPluginUrl: 'https://github.com/virtualroot/asdf-opentofu',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'opentofu/opentofu',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n packer: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-hashicorp',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'hashicorp/packer',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n perl: {\n asdfPluginUrl: 'https://github.com/ouest/asdf-perl',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'Perl/perl5',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n php: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-php',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'php/php-src',\n extractVersion: '^php-(?<version>\\\\S+)',\n },\n },\n pnpm: {\n asdfPluginUrl: 'https://github.com/jonathanmorley/asdf-pnpm',\n config: {\n datasource: NpmDatasource.id,\n packageName: 'pnpm',\n versioning: semverVersioning.id,\n },\n },\n poetry: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-poetry',\n config: {\n datasource: PypiDatasource.id,\n packageName: 'poetry',\n },\n },\n 'pre-commit': {\n asdfPluginUrl: 'https://github.com/jonathanmorley/asdf-pre-commit.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'pre-commit/pre-commit',\n extractVersion: '^v(?<version>.+)',\n },\n },\n protoc: {\n asdfPluginUrl: 'https://github.com/paxosglobal/asdf-protoc.git',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'protocolbuffers/protobuf',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n pulumi: {\n asdfPluginUrl: 'https://github.com/canha/asdf-pulumi.git',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'pulumi/pulumi',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n python: {\n asdfPluginUrl: 'https://github.com/danhper/asdf-python',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'python/cpython',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n rebar: {\n asdfPluginUrl: 'https://github.com/Stratus3D/asdf-rebar.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'erlang/rebar3',\n },\n },\n ruby: {\n asdfPluginUrl: 'https://github.com/asdf-vm/asdf-ruby',\n config: {\n datasource: RubyVersionDatasource.id,\n packageName: 'ruby-version',\n versioning: semverVersioning.id,\n },\n },\n rust: {\n asdfPluginUrl: 'https://github.com/code-lever/asdf-rust',\n config: {\n datasource: RustVersionDatasource.id,\n packageName: 'rust',\n },\n },\n sbt: {\n asdfPluginUrl: 'https://github.com/bram2000/asdf-sbt.git',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'sbt/sbt',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n scala: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-scala',\n config: (version) => {\n if (version.startsWith('2')) {\n return {\n datasource: GithubTagsDatasource.id,\n packageName: 'scala/scala',\n extractVersion: '^v(?<version>\\\\S+)',\n };\n }\n if (version.startsWith('3')) {\n return {\n datasource: GithubTagsDatasource.id,\n packageName: 'lampepfl/dotty',\n };\n }\n\n return undefined;\n },\n },\n shellcheck: {\n asdfPluginUrl: 'https://github.com/luizm/asdf-shellcheck',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'koalaman/shellcheck',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n shfmt: {\n asdfPluginUrl: 'https://github.com/luizm/asdf-shfmt',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'mvdan/sh',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n skaffold: {\n asdfPluginUrl: 'https://github.com/nklmilojevic/asdf-skaffold',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'GoogleContainerTools/skaffold',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n sops: {\n asdfPluginUrl: 'https://github.com/feniix/asdf-sops',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'mozilla/sops',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n steampipe: {\n asdfPluginUrl: 'https://github.com/carnei-ro/asdf-steampipe',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'turbot/steampipe',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n talhelper: {\n asdfPluginUrl: 'https://github.com/bjw-s/asdf-talhelper',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'budimanjojo/talhelper',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n talosctl: {\n asdfPluginUrl: 'https://github.com/bjw-s/asdf-talosctl',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'siderolabs/talos',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n terraform: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-hashicorp',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'hashicorp/terraform',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n 'terraform-docs': {\n asdfPluginUrl: 'https://github.com/looztra/asdf-terraform-docs.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'terraform-docs/terraform-docs',\n extractVersion: '^v(?<version>.+)',\n },\n },\n terraformer: {\n asdfPluginUrl: 'https://github.com/grimoh/asdf-terraformer',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'GoogleCloudPlatform/terraformer',\n },\n },\n terragrunt: {\n asdfPluginUrl: 'https://github.com/ohmer/asdf-terragrunt',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'gruntwork-io/terragrunt',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n terramate: {\n asdfPluginUrl: 'https://github.com/martinlindner/asdf-terramate',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'terramate-io/terramate',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n tflint: {\n asdfPluginUrl: 'https://github.com/skyzyx/asdf-tflint.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'terraform-linters/tflint',\n extractVersion: '^v(?<version>.+)',\n },\n },\n tfsec: {\n asdfPluginUrl: 'https://github.com/woneill/asdf-tfsec.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'aquasecurity/tfsec',\n extractVersion: '^v(?<version>.+)',\n },\n },\n trivy: {\n asdfPluginUrl: 'https://github.com/zufardhiyaulhaq/asdf-trivy',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'aquasecurity/trivy',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n vault: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-hashicorp',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'hashicorp/vault',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n yamllint: {\n asdfPluginUrl: 'https://github.com/ericcornelissen/asdf-yamllint',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'adrienverge/yamllint',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n yq: {\n asdfPluginUrl: 'https://github.com/sudermanjr/asdf-yq',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'mikefarah/yq',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n zig: {\n asdfPluginUrl: 'https://github.com/cheetah/asdf-zig',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'ziglang/zig',\n },\n },\n maestro: {\n asdfPluginUrl: 'https://github.com/dotanuki-labs/asdf-maestro',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'mobile-dev-inc/maestro',\n extractVersion: '^cli-(?<version>\\\\S+)',\n },\n },\n detekt: {\n asdfPluginUrl: 'https://github.com/dotanuki-labs/asdf-detekt',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'detekt/detekt',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n ktlint: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-ktlint',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'pinterest/ktlint',\n },\n },\n yamlfmt: {\n asdfPluginUrl: 'https://github.com/mise-plugins/asdf-yamlfmt',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'google/yamlfmt',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n tuist: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-tuist',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'tuist/tuist',\n },\n },\n typos: {\n asdfPluginUrl: 'https://github.com/aschiavon91/asdf-typos',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'crate-ci/typos',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n uv: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-uv',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'astral-sh/uv',\n },\n },\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"upgradeable-tooling.js","names":["regexVersioning.id","semverVersioning.id"],"sources":["../../../../lib/modules/manager/asdf/upgradeable-tooling.ts"],"sourcesContent":["import { regEx } from '../../../util/regex.ts';\nimport { DartVersionDatasource } from '../../datasource/dart-version/index.ts';\nimport { DockerDatasource } from '../../datasource/docker/index.ts';\nimport { DotnetVersionDatasource } from '../../datasource/dotnet-version/index.ts';\nimport { FlutterVersionDatasource } from '../../datasource/flutter-version/index.ts';\nimport { GithubReleasesDatasource } from '../../datasource/github-releases/index.ts';\nimport { GithubTagsDatasource } from '../../datasource/github-tags/index.ts';\nimport { HexpmBobDatasource } from '../../datasource/hexpm-bob/index.ts';\nimport { JavaVersionDatasource } from '../../datasource/java-version/index.ts';\nimport { NodeVersionDatasource } from '../../datasource/node-version/index.ts';\nimport { NpmDatasource } from '../../datasource/npm/index.ts';\nimport { PypiDatasource } from '../../datasource/pypi/index.ts';\nimport { RubyVersionDatasource } from '../../datasource/ruby-version/index.ts';\nimport { RustVersionDatasource } from '../../datasource/rust-version/index.ts';\nimport * as regexVersioning from '../../versioning/regex/index.ts';\nimport * as semverVersioning from '../../versioning/semver/index.ts';\nimport type { ToolingDefinition } from './types.ts';\n\nconst hugoDefinition: ToolingDefinition = {\n // This plugin supports the names `hugo` & `gohugo`\n asdfPluginUrl: 'https://github.com/NeoHsu/asdf-hugo',\n config: (version) => ({\n datasource: GithubReleasesDatasource.id,\n packageName: 'gohugoio/hugo',\n extractVersion: '^v(?<version>\\\\S+)',\n // The asdf hugo plugin supports prefixing the version with\n // `extended_`. Extended versions feature Sass support.\n currentValue: version.replace(regEx(/^extended_/), ''),\n }),\n};\n\nexport const upgradeableTooling: Record<string, ToolingDefinition> = {\n act: {\n asdfPluginUrl: 'https://github.com/grimoh/asdf-act.git',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'nektos/act',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n actionlint: {\n asdfPluginUrl: 'https://github.com/crazy-matt/asdf-actionlint',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'rhysd/actionlint',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n 'adr-tools': {\n asdfPluginUrl: 'https://gitlab.com/td7x/asdf/adr-tools.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'npryce/adr-tools',\n },\n },\n apm: {\n asdfPluginUrl: 'https://github.com/edwinhern/asdf-apm',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'microsoft/apm',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n argocd: {\n asdfPluginUrl: 'https://github.com/beardix/asdf-argocd',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'argoproj/argo-cd',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n 'asdf-plugin-manager': {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-plugin-manager',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'asdf-community/asdf-plugin-manager',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n atmos: {\n asdfPluginUrl: 'https://github.com/cloudposse/asdf-atmos',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'cloudposse/atmos',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n awscli: {\n asdfPluginUrl: 'https://github.com/MetricMike/asdf-awscli',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'aws/aws-cli',\n },\n },\n 'azure-cli': {\n asdfPluginUrl: 'https://github.com/sourcesense/asdf-azure-cli',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'Azure/azure-cli',\n extractVersion: '^azure-cli-(?<version>\\\\S+)',\n },\n },\n bun: {\n asdfPluginUrl: 'https://github.com/cometkim/asdf-bun',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'oven-sh/bun',\n extractVersion: '^bun-v(?<version>\\\\S+)',\n },\n },\n 'cargo-make': {\n asdfPluginUrl: 'https://github.com/mise-plugins/asdf-cargo-make',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'sagiegurari/cargo-make',\n },\n },\n checkov: {\n asdfPluginUrl: 'https://github.com/bosmak/asdf-checkov.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'bridgecrewio/checkov',\n },\n },\n clojure: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-clojure',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'clojure/brew-install',\n versioning: `${regexVersioning.id}:^(?<major>\\\\d+?)\\\\.(?<minor>\\\\d+?)\\\\.(?<patch>\\\\d+)\\\\.(?<build>\\\\d+)$`,\n },\n },\n clusterctl: {\n asdfPluginUrl: 'https://github.com/pfnet-research/asdf-clusterctl',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'kubernetes-sigs/cluster-api',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n conftest: {\n asdfPluginUrl: 'https://github.com/looztra/asdf-conftest',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'open-policy-agent/conftest',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n 'container-structure-test': {\n asdfPluginUrl:\n 'https://github.com/FeryET/asdf-container-structure-test.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'GoogleContainerTools/container-structure-test',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n cookiecutter: {\n asdfPluginUrl: 'https://github.com/shawon-crosen/asdf-cookiecutter',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'cookiecutter/cookiecutter',\n versioning: semverVersioning.id,\n },\n },\n cosign: {\n asdfPluginUrl: 'https://gitlab.com/wt0f/asdf-cosign',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'sigstore/cosign',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n crystal: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-crystal',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'crystal-lang/crystal',\n },\n },\n dart: {\n asdfPluginUrl: 'https://github.com/PatOConnor43/asdf-dart',\n config: {\n datasource: DartVersionDatasource.id,\n },\n },\n deno: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-deno',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'denoland/deno',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n direnv: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-direnv',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'direnv/direnv',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n 'dotnet-core': {\n asdfPluginUrl: 'https://github.com/emersonsoares/asdf-dotnet-core',\n config: {\n datasource: DotnetVersionDatasource.id,\n packageName: 'dotnet-sdk',\n },\n },\n dprint: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-dprint',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'dprint/dprint',\n },\n },\n ecspresso: {\n asdfPluginUrl: 'https://github.com/kayac/asdf-ecspresso',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'kayac/ecspresso',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n 'editorconfig-checker': {\n asdfPluginUrl: 'https://github.com/gabitchov/asdf-editorconfig-checker',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'editorconfig-checker/editorconfig-checker',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n elixir: {\n asdfPluginUrl: 'https://github.com/asdf-vm/asdf-elixir',\n config: {\n datasource: HexpmBobDatasource.id,\n },\n },\n elm: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-elm',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'elm/compiler',\n },\n },\n erlang: {\n asdfPluginUrl: 'https://github.com/asdf-vm/asdf-erlang',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'erlang/otp',\n extractVersion: '^OTP-(?<version>\\\\S+)',\n versioning: `${regexVersioning.id}:^(?<major>\\\\d+?)\\\\.(?<minor>\\\\d+?)(\\\\.(?<patch>\\\\d+))?$`,\n },\n },\n flutter: {\n asdfPluginUrl: 'https://github.com/oae/asdf-flutter',\n config: (version) => ({\n datasource: FlutterVersionDatasource.id,\n // asdf-flutter plugin supports channel on version suffix.\n currentValue: version.replace(regEx(/-(?:stable|beta|dev)$/), ''),\n }),\n },\n flux2: {\n asdfPluginUrl: 'https://github.com/tablexi/asdf-flux2.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'fluxcd/flux2',\n extractVersion: '^v(?<version>.+)',\n },\n },\n gauche: {\n asdfPluginUrl: 'https://github.com/sakuro/asdf-gauche',\n config: {\n datasource: DockerDatasource.id,\n packageName: 'practicalscheme/gauche',\n },\n },\n 'github-cli': {\n asdfPluginUrl: 'https://github.com/bartlomiejdanek/asdf-github-cli.git',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'cli/cli',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n gitleaks: {\n asdfPluginUrl: 'https://github.com/jmcvetta/asdf-gitleaks',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'gitleaks/gitleaks',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n ginkgo: {\n asdfPluginUrl: 'https://github.com/jimmidyson/asdf-ginkgo',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'onsi/ginkgo',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n gleam: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-gleam.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'gleam-lang/gleam',\n extractVersion: '^v(?<version>.+)',\n },\n },\n gohugo: hugoDefinition,\n golang: {\n asdfPluginUrl: 'https://github.com/kennyp/asdf-golang',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'golang/go',\n extractVersion: '^go(?<version>\\\\S+)',\n },\n },\n 'golangci-lint': {\n asdfPluginUrl: 'https://github.com/hypnoglow/asdf-golangci-lint.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'golangci/golangci-lint',\n extractVersion: '^v(?<version>.+)',\n },\n },\n gomplate: {\n asdfPluginUrl: 'https://github.com/sneakybeaky/asdf-gomplate',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'hairyhenderson/gomplate',\n extractVersion: '^v(?<version>.+)',\n },\n },\n gotestsum: {\n asdfPluginUrl: 'https://github.com/hpcsc/asdf-gotestsum',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'gotestyourself/gotestsum',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n hadolint: {\n asdfPluginUrl: 'https://github.com/looztra/asdf-hadolint.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'hadolint/hadolint',\n extractVersion: '^v(?<version>.+)',\n },\n },\n haskell: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-haskell',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'ghc/ghc',\n extractVersion: '^ghc-(?<version>\\\\S+?)-release',\n },\n },\n helm: {\n asdfPluginUrl: 'https://github.com/Antiarchitect/asdf-helm',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'helm/helm',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n 'helm-docs': {\n asdfPluginUrl: 'https://github.com/sudermanjr/asdf-helm-docs.git',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'norwoodj/helm-docs',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n helmfile: {\n asdfPluginUrl: 'https://github.com/feniix/asdf-helmfile',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'helmfile/helmfile',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n hugo: hugoDefinition,\n idris: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-idris',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'idris-lang/Idris-dev',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n istioctl: {\n asdfPluginUrl: 'https://github.com/virtualstaticvoid/asdf-istioctl',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'istio/istio',\n versioning: semverVersioning.id,\n },\n },\n java: {\n asdfPluginUrl: 'https://github.com/halcyon/asdf-java',\n config: (version) => {\n const adoptOpenJdkMatches = regEx(/^adoptopenjdk-(?<version>\\d\\S+)/).exec(\n version,\n )?.groups;\n if (adoptOpenJdkMatches) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jdk',\n currentValue: adoptOpenJdkMatches.version,\n };\n }\n const adoptOpenJreMatches = regEx(\n /^adoptopenjdk-jre-(?<version>\\d\\S+)/,\n ).exec(version)?.groups;\n if (adoptOpenJreMatches) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jre',\n currentValue: adoptOpenJreMatches.version,\n };\n }\n const temurinJdkMatches = regEx(/^temurin-(?<version>\\d\\S+)/).exec(\n version,\n )?.groups;\n if (temurinJdkMatches) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jdk',\n currentValue: temurinJdkMatches.version,\n };\n }\n const temurinJreMatches = regEx(/^temurin-jre-(?<version>\\d\\S+)/).exec(\n version,\n )?.groups;\n if (temurinJreMatches) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jre',\n currentValue: temurinJreMatches.version,\n };\n }\n\n return undefined;\n },\n },\n julia: {\n asdfPluginUrl: 'https://github.com/rkyleg/asdf-julia',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'JuliaLang/julia',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n just: {\n asdfPluginUrl: 'https://github.com/olofvndrhr/asdf-just',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'casey/just',\n },\n },\n k3s: {\n asdfPluginUrl: 'https://github.com/dmpe/asdf-k3s',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'k3s-io/k3s',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n kind: {\n asdfPluginUrl: 'https://github.com/johnlayton/asdf-kind',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'kubernetes-sigs/kind',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n kotlin: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-kotlin',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'JetBrains/kotlin',\n extractVersion: '^(Kotlin |v)(?<version>\\\\S+)',\n },\n },\n kubebuilder: {\n asdfPluginUrl: 'https://github.com/virtualstaticvoid/asdf-kubebuilder.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'kubernetes-sigs/kubebuilder',\n extractVersion: '^v(?<version>.+)',\n },\n },\n kubectl: {\n asdfPluginUrl: 'https://github.com/Banno/asdf-kubectl.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'kubernetes/kubernetes',\n extractVersion: '^v(?<version>.+)',\n },\n },\n kubetail: {\n asdfPluginUrl: 'https://github.com/janpieper/asdf-kubetail.git',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'johanhaleby/kubetail',\n },\n },\n kustomize: {\n asdfPluginUrl: 'https://github.com/Banno/asdf-kustomize',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'kubernetes-sigs/kustomize',\n extractVersion: '^kustomize/v(?<version>\\\\S+)',\n },\n },\n localstack: {\n asdfPluginUrl: 'https://github.com/Azulinho/asdf-localstack',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'localstack/localstack',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n lua: {\n asdfPluginUrl: 'https://github.com/Stratus3D/asdf-lua',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'lua/lua',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n 'markdownlint-cli2': {\n asdfPluginUrl:\n 'https://github.com/paulo-ferraz-oliveira/asdf-markdownlint-cli2',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'DavidAnson/markdownlint-cli2',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n maven: {\n asdfPluginUrl: 'https://github.com/halcyon/asdf-maven',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'apache/maven',\n },\n },\n mimirtool: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-mimirtool',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'grafana/mimir',\n extractVersion: '^mimir-(?<version>\\\\S+)',\n },\n },\n minikube: {\n asdfPluginUrl: 'https://github.com/alvarobp/asdf-minikube.git',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'kubernetes/minikube',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n mockery: {\n asdfPluginUrl: 'https://github.com/cabify/asdf-mockery.git',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'vektra/mockery',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n nim: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-nim',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'nim-lang/Nim',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n nodejs: {\n asdfPluginUrl: 'https://github.com/asdf-vm/asdf-nodejs',\n config: {\n depName: 'node',\n datasource: NodeVersionDatasource.id,\n },\n },\n ocaml: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-ocaml',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'ocaml/ocaml',\n },\n },\n oci: {\n asdfPluginUrl: 'https://github.com/yasn77/asdf-oci',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'oracle/oci-cli',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n opa: {\n asdfPluginUrl: 'https://github.com/tochukwuvictor/asdf-opa',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'open-policy-agent/opa',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n opentofu: {\n asdfPluginUrl: 'https://github.com/virtualroot/asdf-opentofu',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'opentofu/opentofu',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n packer: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-hashicorp',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'hashicorp/packer',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n perl: {\n asdfPluginUrl: 'https://github.com/ouest/asdf-perl',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'Perl/perl5',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n php: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-php',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'php/php-src',\n extractVersion: '^php-(?<version>\\\\S+)',\n },\n },\n pnpm: {\n asdfPluginUrl: 'https://github.com/jonathanmorley/asdf-pnpm',\n config: {\n datasource: NpmDatasource.id,\n packageName: 'pnpm',\n versioning: semverVersioning.id,\n },\n },\n poetry: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-poetry',\n config: {\n datasource: PypiDatasource.id,\n packageName: 'poetry',\n },\n },\n 'pre-commit': {\n asdfPluginUrl: 'https://github.com/jonathanmorley/asdf-pre-commit.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'pre-commit/pre-commit',\n extractVersion: '^v(?<version>.+)',\n },\n },\n protoc: {\n asdfPluginUrl: 'https://github.com/paxosglobal/asdf-protoc.git',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'protocolbuffers/protobuf',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n pulumi: {\n asdfPluginUrl: 'https://github.com/canha/asdf-pulumi.git',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'pulumi/pulumi',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n python: {\n asdfPluginUrl: 'https://github.com/danhper/asdf-python',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'python/cpython',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n rebar: {\n asdfPluginUrl: 'https://github.com/Stratus3D/asdf-rebar.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'erlang/rebar3',\n },\n },\n ruby: {\n asdfPluginUrl: 'https://github.com/asdf-vm/asdf-ruby',\n config: {\n datasource: RubyVersionDatasource.id,\n packageName: 'ruby-version',\n versioning: semverVersioning.id,\n },\n },\n rust: {\n asdfPluginUrl: 'https://github.com/code-lever/asdf-rust',\n config: {\n datasource: RustVersionDatasource.id,\n packageName: 'rust',\n },\n },\n sbt: {\n asdfPluginUrl: 'https://github.com/bram2000/asdf-sbt.git',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'sbt/sbt',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n scala: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-scala',\n config: (version) => {\n if (version.startsWith('2')) {\n return {\n datasource: GithubTagsDatasource.id,\n packageName: 'scala/scala',\n extractVersion: '^v(?<version>\\\\S+)',\n };\n }\n if (version.startsWith('3')) {\n return {\n datasource: GithubTagsDatasource.id,\n packageName: 'lampepfl/dotty',\n };\n }\n\n return undefined;\n },\n },\n shellcheck: {\n asdfPluginUrl: 'https://github.com/luizm/asdf-shellcheck',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'koalaman/shellcheck',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n shfmt: {\n asdfPluginUrl: 'https://github.com/luizm/asdf-shfmt',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'mvdan/sh',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n skaffold: {\n asdfPluginUrl: 'https://github.com/nklmilojevic/asdf-skaffold',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'GoogleContainerTools/skaffold',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n sops: {\n asdfPluginUrl: 'https://github.com/feniix/asdf-sops',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'mozilla/sops',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n steampipe: {\n asdfPluginUrl: 'https://github.com/carnei-ro/asdf-steampipe',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'turbot/steampipe',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n talhelper: {\n asdfPluginUrl: 'https://github.com/bjw-s/asdf-talhelper',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'budimanjojo/talhelper',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n talosctl: {\n asdfPluginUrl: 'https://github.com/bjw-s/asdf-talosctl',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'siderolabs/talos',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n terraform: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-hashicorp',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'hashicorp/terraform',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n 'terraform-docs': {\n asdfPluginUrl: 'https://github.com/looztra/asdf-terraform-docs.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'terraform-docs/terraform-docs',\n extractVersion: '^v(?<version>.+)',\n },\n },\n terraformer: {\n asdfPluginUrl: 'https://github.com/grimoh/asdf-terraformer',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'GoogleCloudPlatform/terraformer',\n },\n },\n terragrunt: {\n asdfPluginUrl: 'https://github.com/ohmer/asdf-terragrunt',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'gruntwork-io/terragrunt',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n terramate: {\n asdfPluginUrl: 'https://github.com/martinlindner/asdf-terramate',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'terramate-io/terramate',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n tflint: {\n asdfPluginUrl: 'https://github.com/skyzyx/asdf-tflint.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'terraform-linters/tflint',\n extractVersion: '^v(?<version>.+)',\n },\n },\n tfsec: {\n asdfPluginUrl: 'https://github.com/woneill/asdf-tfsec.git',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'aquasecurity/tfsec',\n extractVersion: '^v(?<version>.+)',\n },\n },\n trivy: {\n asdfPluginUrl: 'https://github.com/zufardhiyaulhaq/asdf-trivy',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'aquasecurity/trivy',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n vault: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-hashicorp',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'hashicorp/vault',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n yamllint: {\n asdfPluginUrl: 'https://github.com/ericcornelissen/asdf-yamllint',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'adrienverge/yamllint',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n yq: {\n asdfPluginUrl: 'https://github.com/sudermanjr/asdf-yq',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'mikefarah/yq',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n zig: {\n asdfPluginUrl: 'https://github.com/cheetah/asdf-zig',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'ziglang/zig',\n },\n },\n maestro: {\n asdfPluginUrl: 'https://github.com/dotanuki-labs/asdf-maestro',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'mobile-dev-inc/maestro',\n extractVersion: '^cli-(?<version>\\\\S+)',\n },\n },\n detekt: {\n asdfPluginUrl: 'https://github.com/dotanuki-labs/asdf-detekt',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'detekt/detekt',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n ktlint: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-ktlint',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'pinterest/ktlint',\n },\n },\n yamlfmt: {\n asdfPluginUrl: 'https://github.com/mise-plugins/asdf-yamlfmt',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'google/yamlfmt',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n tuist: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-tuist',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'tuist/tuist',\n },\n },\n typos: {\n asdfPluginUrl: 'https://github.com/aschiavon91/asdf-typos',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'crate-ci/typos',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n uv: {\n asdfPluginUrl: 'https://github.com/asdf-community/asdf-uv',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: 'astral-sh/uv',\n },\n },\n};\n"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { logger } from "../../../logger/index.js";
|
|
|
3
3
|
import { id } from "../../versioning/semver/index.js";
|
|
4
4
|
import { GithubReleasesDatasource } from "../../datasource/github-releases/index.js";
|
|
5
5
|
//#region lib/modules/manager/batect-wrapper/extract.ts
|
|
6
|
-
const VERSION_REGEX = regEx(/^\s+VERSION="(
|
|
6
|
+
const VERSION_REGEX = regEx(/^\s+VERSION="(?<version>.*)"$/m);
|
|
7
7
|
function extractPackageFile(fileContent) {
|
|
8
8
|
logger.trace("batect.extractPackageFile()");
|
|
9
9
|
const match = VERSION_REGEX.exec(fileContent);
|
|
@@ -11,7 +11,7 @@ function extractPackageFile(fileContent) {
|
|
|
11
11
|
const dependency = {
|
|
12
12
|
depName: "batect/batect",
|
|
13
13
|
commitMessageTopic: "Batect",
|
|
14
|
-
currentValue: match
|
|
14
|
+
currentValue: match.groups.version,
|
|
15
15
|
datasource: GithubReleasesDatasource.id,
|
|
16
16
|
versioning: id
|
|
17
17
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.js","names":["semverVersioning"],"sources":["../../../../lib/modules/manager/batect-wrapper/extract.ts"],"sourcesContent":["import { logger } from '../../../logger/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { GithubReleasesDatasource } from '../../datasource/github-releases/index.ts';\nimport { id as semverVersioning } from '../../versioning/semver/index.ts';\nimport type { PackageDependency, PackageFileContent } from '../types.ts';\n\nconst VERSION_REGEX = regEx(/^\\s+VERSION=\"(
|
|
1
|
+
{"version":3,"file":"extract.js","names":["semverVersioning"],"sources":["../../../../lib/modules/manager/batect-wrapper/extract.ts"],"sourcesContent":["import { logger } from '../../../logger/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { GithubReleasesDatasource } from '../../datasource/github-releases/index.ts';\nimport { id as semverVersioning } from '../../versioning/semver/index.ts';\nimport type { PackageDependency, PackageFileContent } from '../types.ts';\n\nconst VERSION_REGEX = regEx(/^\\s+VERSION=\"(?<version>.*)\"$/m);\n\nexport function extractPackageFile(\n fileContent: string,\n): PackageFileContent | null {\n logger.trace('batect.extractPackageFile()');\n const match = VERSION_REGEX.exec(fileContent);\n\n if (match === null) {\n return null;\n }\n\n const dependency: PackageDependency = {\n depName: 'batect/batect',\n commitMessageTopic: 'Batect',\n currentValue: match.groups!.version,\n datasource: GithubReleasesDatasource.id,\n versioning: semverVersioning,\n };\n\n logger.trace(dependency, 'Found Batect wrapper version');\n\n return { deps: [dependency] };\n}\n"],"mappings":";;;;;AAMA,MAAM,gBAAgB,MAAM,gCAAgC;AAE5D,SAAgB,mBACd,aAC2B;CAC3B,OAAO,MAAM,6BAA6B;CAC1C,MAAM,QAAQ,cAAc,KAAK,WAAW;CAE5C,IAAI,UAAU,MACZ,OAAO;CAGT,MAAM,aAAgC;EACpC,SAAS;EACT,oBAAoB;EACpB,cAAc,MAAM,OAAQ;EAC5B,YAAY,yBAAyB;EACrC,YAAYA;CACd;CAEA,OAAO,MAAM,YAAY,8BAA8B;CAEvD,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE;AAC9B"}
|
|
@@ -23,7 +23,7 @@ const GoTarget = z.object({
|
|
|
23
23
|
if (!tag) dep.digestOneAndOnly = true;
|
|
24
24
|
}
|
|
25
25
|
if (remote) {
|
|
26
|
-
if (regEx(/https:\/\/github\.com(?:.*\/)(([a-zA-Z]+)(
|
|
26
|
+
if (regEx(/https:\/\/github\.com(?:.*\/)(?:(?:[a-zA-Z]+)(?:-)?(?:[a-zA-Z]+))/).exec(remote)?.[0].length === remote.length) dep.packageName = remote.replace("https://", "");
|
|
27
27
|
else dep.skipReason = "unsupported-remote";
|
|
28
28
|
}
|
|
29
29
|
return [dep];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"go.js","names":[],"sources":["../../../../../lib/modules/manager/bazel/rules/go.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { regEx } from '../../../../util/regex.ts';\nimport { GoDatasource } from '../../../datasource/go/index.ts';\nimport type { PackageDependency } from '../../types.ts';\n\nexport const goRules = ['go_repository', '_go_repository'] as const;\n\nexport const GoTarget = z\n .object({\n rule: z.enum(goRules),\n name: z.string(),\n tag: z.string().optional(),\n commit: z.string().optional(),\n importpath: z.string(),\n remote: z.string().optional(),\n })\n .refine(({ tag, commit }) => !!tag || !!commit)\n .transform(\n ({ rule, name, tag, commit, importpath, remote }): PackageDependency[] => {\n const dep: PackageDependency = {\n datasource: GoDatasource.id,\n depType: rule,\n depName: name,\n packageName: importpath,\n };\n\n if (tag) {\n dep.currentValue = tag;\n }\n\n if (commit) {\n dep.currentDigest = commit;\n if (!tag) {\n dep.digestOneAndOnly = true;\n }\n }\n\n if (remote) {\n const remoteMatch = regEx(\n /https:\\/\\/github\\.com(?:.*\\/)(([a-zA-Z]+)(
|
|
1
|
+
{"version":3,"file":"go.js","names":[],"sources":["../../../../../lib/modules/manager/bazel/rules/go.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { regEx } from '../../../../util/regex.ts';\nimport { GoDatasource } from '../../../datasource/go/index.ts';\nimport type { PackageDependency } from '../../types.ts';\n\nexport const goRules = ['go_repository', '_go_repository'] as const;\n\nexport const GoTarget = z\n .object({\n rule: z.enum(goRules),\n name: z.string(),\n tag: z.string().optional(),\n commit: z.string().optional(),\n importpath: z.string(),\n remote: z.string().optional(),\n })\n .refine(({ tag, commit }) => !!tag || !!commit)\n .transform(\n ({ rule, name, tag, commit, importpath, remote }): PackageDependency[] => {\n const dep: PackageDependency = {\n datasource: GoDatasource.id,\n depType: rule,\n depName: name,\n packageName: importpath,\n };\n\n if (tag) {\n dep.currentValue = tag;\n }\n\n if (commit) {\n dep.currentDigest = commit;\n if (!tag) {\n dep.digestOneAndOnly = true;\n }\n }\n\n if (remote) {\n const remoteMatch = regEx(\n /https:\\/\\/github\\.com(?:.*\\/)(?:(?:[a-zA-Z]+)(?:-)?(?:[a-zA-Z]+))/,\n ).exec(remote);\n if (remoteMatch?.[0].length === remote.length) {\n dep.packageName = remote.replace('https://', '');\n } else {\n dep.skipReason = 'unsupported-remote';\n }\n }\n\n return [dep];\n },\n );\n"],"mappings":";;;;AAKA,MAAa,UAAU,CAAC,iBAAiB,gBAAgB;AAEzD,MAAa,WAAW,EACrB,OAAO;CACN,MAAM,EAAE,KAAK,OAAO;CACpB,MAAM,EAAE,OAAO;CACf,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS;CACzB,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS;CAC5B,YAAY,EAAE,OAAO;CACrB,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS;AAC9B,CAAC,CAAC,CACD,QAAQ,EAAE,KAAK,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAC9C,WACE,EAAE,MAAM,MAAM,KAAK,QAAQ,YAAY,aAAkC;CACxE,MAAM,MAAyB;EAC7B,YAAY,aAAa;EACzB,SAAS;EACT,SAAS;EACT,aAAa;CACf;CAEA,IAAI,KACF,IAAI,eAAe;CAGrB,IAAI,QAAQ;EACV,IAAI,gBAAgB;EACpB,IAAI,CAAC,KACH,IAAI,mBAAmB;CAE3B;CAEA,IAAI,QAAQ;EAIV,IAHoB,MAClB,mEACF,CAAC,CAAC,KAAK,MACO,CAAC,GAAG,EAAE,CAAC,WAAW,OAAO,QACrC,IAAI,cAAc,OAAO,QAAQ,YAAY,EAAE;OAE/C,IAAI,aAAa;CAErB;CAEA,OAAO,CAAC,GAAG;AACb,CACF"}
|
|
@@ -16,7 +16,7 @@ function extractPackageFile(content, packageFile) {
|
|
|
16
16
|
let skipReason;
|
|
17
17
|
let repo;
|
|
18
18
|
logger.trace(`Found Buildkite plugin ${depName}`);
|
|
19
|
-
const gitPluginMatch = regEx(/(ssh:\/\/git@|https:\/\/)(?<registry>[^/]+)\/(?<gitPluginName>.*)/).exec(depName);
|
|
19
|
+
const gitPluginMatch = regEx(/(?:ssh:\/\/git@|https:\/\/)(?<registry>[^/]+)\/(?<gitPluginName>.*)/).exec(depName);
|
|
20
20
|
if (gitPluginMatch?.groups) {
|
|
21
21
|
logger.debug("Examining git plugin");
|
|
22
22
|
const { registry, gitPluginName } = gitPluginMatch.groups;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.js","names":[],"sources":["../../../../lib/modules/manager/buildkite/extract.ts"],"sourcesContent":["import { logger } from '../../../logger/index.ts';\nimport type { SkipReason } from '../../../types/index.ts';\nimport { newlineRegex, regEx } from '../../../util/regex.ts';\nimport { BitbucketTagsDatasource } from '../../datasource/bitbucket-tags/index.ts';\nimport { GithubTagsDatasource } from '../../datasource/github-tags/index.ts';\nimport { isVersion } from '../../versioning/semver/index.ts';\nimport type { PackageDependency, PackageFileContent } from '../types.ts';\n\nexport function extractPackageFile(\n content: string,\n packageFile?: string,\n): PackageFileContent | null {\n const deps: PackageDependency[] = [];\n try {\n const lines = content.split(newlineRegex);\n\n for (const line of lines) {\n // Search each line for plugin names\n const depLineMatch = regEx(\n /^\\s*(?:-\\s+(?:\\?\\s+)?)?['\"]?(?<depName>[^#\\s'\"]+)#(?<currentValue>[^:'\"]+)['\"]?/,\n ).exec(line);\n\n if (depLineMatch?.groups) {\n const { depName, currentValue } = depLineMatch.groups;\n logger.trace('depLineMatch');\n let skipReason: SkipReason | undefined;\n let repo: string | undefined;\n logger.trace(`Found Buildkite plugin ${depName}`);\n // Plugins may simply be git repos. If so, we need to parse out the registry.\n const gitPluginMatch = regEx(\n /(ssh:\\/\\/git@|https:\\/\\/)(?<registry>[^/]+)\\/(?<gitPluginName>.*)/,\n ).exec(depName);\n if (gitPluginMatch?.groups) {\n logger.debug('Examining git plugin');\n const { registry, gitPluginName } = gitPluginMatch.groups;\n const gitDepName = gitPluginName.replace(regEx('\\\\.git$'), '');\n\n let datasource: string = GithubTagsDatasource.id;\n if (registry === 'bitbucket.org') {\n datasource = BitbucketTagsDatasource.id;\n }\n const dep: PackageDependency = {\n depName: gitDepName,\n currentValue,\n registryUrls: [`https://${registry}`],\n datasource,\n };\n deps.push(dep);\n continue;\n } else if (isVersion(currentValue)) {\n const splitName = depName.split('/');\n if (splitName.length === 1) {\n repo = `buildkite-plugins/${depName}-buildkite-plugin`;\n } else if (splitName.length === 2) {\n repo = `${depName}-buildkite-plugin`;\n } else {\n logger.warn(\n { dependency: depName },\n 'Something is wrong with Buildkite plugin name',\n );\n skipReason = 'invalid-dependency-specification';\n }\n } else {\n logger.debug(\n `Skipping non-pinned Buildkite current version ${currentValue}`,\n );\n skipReason = 'invalid-version';\n }\n const dep: PackageDependency = {\n depName,\n currentValue,\n skipReason,\n };\n if (repo) {\n dep.datasource = GithubTagsDatasource.id;\n dep.packageName = repo;\n }\n deps.push(dep);\n }\n }\n } catch (err) /* istanbul ignore next */ {\n logger.debug({ err, packageFile }, 'Error extracting Buildkite plugins');\n }\n\n if (!deps.length) {\n return null;\n }\n\n return { deps };\n}\n"],"mappings":";;;;;;AAQA,SAAgB,mBACd,SACA,aAC2B;CAC3B,MAAM,OAA4B,CAAC;CACnC,IAAI;EACF,MAAM,QAAQ,QAAQ,MAAM,YAAY;EAExC,KAAK,MAAM,QAAQ,OAAO;GAExB,MAAM,eAAe,MACnB,iFACF,CAAC,CAAC,KAAK,IAAI;GAEX,IAAI,cAAc,QAAQ;IACxB,MAAM,EAAE,SAAS,iBAAiB,aAAa;IAC/C,OAAO,MAAM,cAAc;IAC3B,IAAI;IACJ,IAAI;IACJ,OAAO,MAAM,0BAA0B,SAAS;IAEhD,MAAM,iBAAiB,MACrB,
|
|
1
|
+
{"version":3,"file":"extract.js","names":[],"sources":["../../../../lib/modules/manager/buildkite/extract.ts"],"sourcesContent":["import { logger } from '../../../logger/index.ts';\nimport type { SkipReason } from '../../../types/index.ts';\nimport { newlineRegex, regEx } from '../../../util/regex.ts';\nimport { BitbucketTagsDatasource } from '../../datasource/bitbucket-tags/index.ts';\nimport { GithubTagsDatasource } from '../../datasource/github-tags/index.ts';\nimport { isVersion } from '../../versioning/semver/index.ts';\nimport type { PackageDependency, PackageFileContent } from '../types.ts';\n\nexport function extractPackageFile(\n content: string,\n packageFile?: string,\n): PackageFileContent | null {\n const deps: PackageDependency[] = [];\n try {\n const lines = content.split(newlineRegex);\n\n for (const line of lines) {\n // Search each line for plugin names\n const depLineMatch = regEx(\n /^\\s*(?:-\\s+(?:\\?\\s+)?)?['\"]?(?<depName>[^#\\s'\"]+)#(?<currentValue>[^:'\"]+)['\"]?/,\n ).exec(line);\n\n if (depLineMatch?.groups) {\n const { depName, currentValue } = depLineMatch.groups;\n logger.trace('depLineMatch');\n let skipReason: SkipReason | undefined;\n let repo: string | undefined;\n logger.trace(`Found Buildkite plugin ${depName}`);\n // Plugins may simply be git repos. If so, we need to parse out the registry.\n const gitPluginMatch = regEx(\n /(?:ssh:\\/\\/git@|https:\\/\\/)(?<registry>[^/]+)\\/(?<gitPluginName>.*)/,\n ).exec(depName);\n if (gitPluginMatch?.groups) {\n logger.debug('Examining git plugin');\n const { registry, gitPluginName } = gitPluginMatch.groups;\n const gitDepName = gitPluginName.replace(regEx('\\\\.git$'), '');\n\n let datasource: string = GithubTagsDatasource.id;\n if (registry === 'bitbucket.org') {\n datasource = BitbucketTagsDatasource.id;\n }\n const dep: PackageDependency = {\n depName: gitDepName,\n currentValue,\n registryUrls: [`https://${registry}`],\n datasource,\n };\n deps.push(dep);\n continue;\n } else if (isVersion(currentValue)) {\n const splitName = depName.split('/');\n if (splitName.length === 1) {\n repo = `buildkite-plugins/${depName}-buildkite-plugin`;\n } else if (splitName.length === 2) {\n repo = `${depName}-buildkite-plugin`;\n } else {\n logger.warn(\n { dependency: depName },\n 'Something is wrong with Buildkite plugin name',\n );\n skipReason = 'invalid-dependency-specification';\n }\n } else {\n logger.debug(\n `Skipping non-pinned Buildkite current version ${currentValue}`,\n );\n skipReason = 'invalid-version';\n }\n const dep: PackageDependency = {\n depName,\n currentValue,\n skipReason,\n };\n if (repo) {\n dep.datasource = GithubTagsDatasource.id;\n dep.packageName = repo;\n }\n deps.push(dep);\n }\n }\n } catch (err) /* istanbul ignore next */ {\n logger.debug({ err, packageFile }, 'Error extracting Buildkite plugins');\n }\n\n if (!deps.length) {\n return null;\n }\n\n return { deps };\n}\n"],"mappings":";;;;;;AAQA,SAAgB,mBACd,SACA,aAC2B;CAC3B,MAAM,OAA4B,CAAC;CACnC,IAAI;EACF,MAAM,QAAQ,QAAQ,MAAM,YAAY;EAExC,KAAK,MAAM,QAAQ,OAAO;GAExB,MAAM,eAAe,MACnB,iFACF,CAAC,CAAC,KAAK,IAAI;GAEX,IAAI,cAAc,QAAQ;IACxB,MAAM,EAAE,SAAS,iBAAiB,aAAa;IAC/C,OAAO,MAAM,cAAc;IAC3B,IAAI;IACJ,IAAI;IACJ,OAAO,MAAM,0BAA0B,SAAS;IAEhD,MAAM,iBAAiB,MACrB,qEACF,CAAC,CAAC,KAAK,OAAO;IACd,IAAI,gBAAgB,QAAQ;KAC1B,OAAO,MAAM,sBAAsB;KACnC,MAAM,EAAE,UAAU,kBAAkB,eAAe;KACnD,MAAM,aAAa,cAAc,QAAQ,MAAM,SAAS,GAAG,EAAE;KAE7D,IAAI,aAAqB,qBAAqB;KAC9C,IAAI,aAAa,iBACf,aAAa,wBAAwB;KAEvC,MAAM,MAAyB;MAC7B,SAAS;MACT;MACA,cAAc,CAAC,WAAW,UAAU;MACpC;KACF;KACA,KAAK,KAAK,GAAG;KACb;IACF,OAAO,IAAI,UAAU,YAAY,GAAG;KAClC,MAAM,YAAY,QAAQ,MAAM,GAAG;KACnC,IAAI,UAAU,WAAW,GACvB,OAAO,qBAAqB,QAAQ;UAC/B,IAAI,UAAU,WAAW,GAC9B,OAAO,GAAG,QAAQ;UACb;MACL,OAAO,KACL,EAAE,YAAY,QAAQ,GACtB,+CACF;MACA,aAAa;KACf;IACF,OAAO;KACL,OAAO,MACL,iDAAiD,cACnD;KACA,aAAa;IACf;IACA,MAAM,MAAyB;KAC7B;KACA;KACA;IACF;IACA,IAAI,MAAM;KACR,IAAI,aAAa,qBAAqB;KACtC,IAAI,cAAc;IACpB;IACA,KAAK,KAAK,GAAG;GACf;EACF;CACF,SAAS,gCAAgC;EACvC,OAAO,MAAM;GAAE;GAAK;EAAY,GAAG,oCAAoC;CACzE;CAEA,IAAI,CAAC,KAAK,QACR,OAAO;CAGT,OAAO,EAAE,KAAK;AAChB"}
|
|
@@ -7,7 +7,7 @@ import { ProjectDescriptorToml, isBuildpackByName, isBuildpackByURI } from "./sc
|
|
|
7
7
|
import { isArray } from "@sindresorhus/is";
|
|
8
8
|
//#region lib/modules/manager/buildpacks/extract.ts
|
|
9
9
|
const DOCKER_PREFIX = regEx(/^docker:\/?\//);
|
|
10
|
-
const dockerRef = regEx(/^((?:[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?(?:\.[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?)*)(?::\d{2,5}\/)?)?[a-z\d]+((
|
|
10
|
+
const dockerRef = regEx(/^(?:(?:(?:[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?(?:\.[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?)*)(?::\d{2,5}\/)?)?[a-z\d]+(?:(?:\.|_|__|-+)[a-z\d]+)*(?:\/[a-z\d]+(?:(?:\.|_|__|-+)[a-z\d]+)*)*(?::(?:\w[\w.-]{0,127})(?:@sha256:[A-Fa-f\d]{32,})?|@sha256:[A-Fa-f\d]{32,}))$/);
|
|
11
11
|
function isDockerRef(ref) {
|
|
12
12
|
if (ref.startsWith("docker:/") || dockerRef.test(ref)) return true;
|
|
13
13
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.js","names":["getDockerDep"],"sources":["../../../../lib/modules/manager/buildpacks/extract.ts"],"sourcesContent":["import { isArray } from '@sindresorhus/is';\nimport { logger } from '../../../logger/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { BuildpacksRegistryDatasource } from '../../datasource/buildpacks-registry/index.ts';\nimport { isVersion } from '../../versioning/semver/index.ts';\nimport { getDep as getDockerDep } from '../dockerfile/extract.ts';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types.ts';\nimport {\n type ProjectDescriptor,\n ProjectDescriptorToml,\n isBuildpackByName,\n isBuildpackByURI,\n} from './schema.ts';\n\nexport const DOCKER_PREFIX = regEx(/^docker:\\/?\\//);\nconst dockerRef = regEx(\n /^((?:[a-z\\d](?:[a-z\\d-]{0,61}[a-z\\d])?(?:\\.[a-z\\d](?:[a-z\\d-]{0,61}[a-z\\d])?)*)(?::\\d{2,5}\\/)?)?[a-z\\d]+((
|
|
1
|
+
{"version":3,"file":"extract.js","names":["getDockerDep"],"sources":["../../../../lib/modules/manager/buildpacks/extract.ts"],"sourcesContent":["import { isArray } from '@sindresorhus/is';\nimport { logger } from '../../../logger/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { BuildpacksRegistryDatasource } from '../../datasource/buildpacks-registry/index.ts';\nimport { isVersion } from '../../versioning/semver/index.ts';\nimport { getDep as getDockerDep } from '../dockerfile/extract.ts';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types.ts';\nimport {\n type ProjectDescriptor,\n ProjectDescriptorToml,\n isBuildpackByName,\n isBuildpackByURI,\n} from './schema.ts';\n\nexport const DOCKER_PREFIX = regEx(/^docker:\\/?\\//);\nconst dockerRef = regEx(\n /^(?:(?:(?:[a-z\\d](?:[a-z\\d-]{0,61}[a-z\\d])?(?:\\.[a-z\\d](?:[a-z\\d-]{0,61}[a-z\\d])?)*)(?::\\d{2,5}\\/)?)?[a-z\\d]+(?:(?:\\.|_|__|-+)[a-z\\d]+)*(?:\\/[a-z\\d]+(?:(?:\\.|_|__|-+)[a-z\\d]+)*)*(?::(?:\\w[\\w.-]{0,127})(?:@sha256:[A-Fa-f\\d]{32,})?|@sha256:[A-Fa-f\\d]{32,}))$/,\n);\n\nexport function isDockerRef(ref: string): boolean {\n if (ref.startsWith('docker:/') || dockerRef.test(ref)) {\n return true;\n }\n return false;\n}\nexport const BUILDPACK_REGISTRY_PREFIX = 'urn:cnb:registry:';\nconst buildpackRegistryId = regEx(\n /^[a-z0-9\\-.]+\\/[a-z0-9\\-.]+(?:@(?<version>.+))?$/,\n);\n\nfunction isBuildpackRegistryId(ref: string): boolean {\n const bpRegistryMatch = buildpackRegistryId.exec(ref);\n if (!bpRegistryMatch) {\n return false;\n }\n if (!bpRegistryMatch.groups?.version) {\n return true;\n }\n return isVersion(bpRegistryMatch.groups.version);\n}\n\nexport function isBuildpackRegistryRef(ref: string): boolean {\n return (\n isBuildpackRegistryId(ref) || ref.startsWith(BUILDPACK_REGISTRY_PREFIX)\n );\n}\n\nfunction parseProjectToml(\n content: string,\n packageFile: string,\n): ProjectDescriptor | null {\n const res = ProjectDescriptorToml.safeParse(content);\n if (res.success) {\n return res.data;\n }\n\n logger.debug(\n { packageFile, err: res.error },\n 'Failed to parse buildpacks project descriptor TOML',\n );\n\n return null;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): PackageFileContent | null {\n const deps: PackageDependency[] = [];\n\n const descriptor = parseProjectToml(content, packageFile);\n if (!descriptor) {\n return null;\n }\n\n if (\n descriptor.io?.buildpacks?.builder &&\n isDockerRef(descriptor.io.buildpacks.builder)\n ) {\n const dep = getDockerDep(\n descriptor.io.buildpacks.builder.replace(DOCKER_PREFIX, ''),\n true,\n config.registryAliases,\n );\n logger.trace(\n {\n depName: dep.depName,\n currentValue: dep.currentValue,\n currentDigest: dep.currentDigest,\n },\n 'Cloud Native Buildpacks builder',\n );\n\n deps.push({ ...dep, commitMessageTopic: 'builder {{depName}}' });\n }\n\n if (\n descriptor.io?.buildpacks?.group &&\n isArray(descriptor.io.buildpacks.group)\n ) {\n for (const group of descriptor.io.buildpacks.group) {\n if (isBuildpackByURI(group) && isDockerRef(group.uri)) {\n const dep = getDockerDep(\n group.uri.replace(DOCKER_PREFIX, ''),\n true,\n config.registryAliases,\n );\n logger.trace(\n {\n depName: dep.depName,\n currentValue: dep.currentValue,\n currentDigest: dep.currentDigest,\n },\n 'Cloud Native Buildpack',\n );\n\n deps.push(dep);\n } else if (isBuildpackByURI(group) && isBuildpackRegistryRef(group.uri)) {\n const dep = getDep(group.uri.replace(BUILDPACK_REGISTRY_PREFIX, ''));\n if (dep) {\n deps.push(dep);\n }\n } else if (isBuildpackByName(group)) {\n const version = group.version;\n\n if (version) {\n const dep: PackageDependency = {\n datasource: BuildpacksRegistryDatasource.id,\n currentValue: version,\n packageName: group.id,\n };\n deps.push(dep);\n }\n }\n }\n }\n\n if (!deps.length) {\n return null;\n }\n return { deps };\n}\n\nexport function getDep(currentFrom: string): PackageDependency | null {\n if (currentFrom.includes('@')) {\n const dep: PackageDependency = {\n datasource: BuildpacksRegistryDatasource.id,\n packageName: currentFrom.split('@')[0],\n autoReplaceStringTemplate:\n '{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}',\n };\n const version = currentFrom.split('@')[1];\n dep.currentValue = version;\n return dep;\n }\n\n return null;\n}\n"],"mappings":";;;;;;;;AAkBA,MAAa,gBAAgB,MAAM,eAAe;AAClD,MAAM,YAAY,MAChB,kQACF;AAEA,SAAgB,YAAY,KAAsB;CAChD,IAAI,IAAI,WAAW,UAAU,KAAK,UAAU,KAAK,GAAG,GAClD,OAAO;CAET,OAAO;AACT;AACA,MAAa,4BAA4B;AACzC,MAAM,sBAAsB,MAC1B,kDACF;AAEA,SAAS,sBAAsB,KAAsB;CACnD,MAAM,kBAAkB,oBAAoB,KAAK,GAAG;CACpD,IAAI,CAAC,iBACH,OAAO;CAET,IAAI,CAAC,gBAAgB,QAAQ,SAC3B,OAAO;CAET,OAAO,UAAU,gBAAgB,OAAO,OAAO;AACjD;AAEA,SAAgB,uBAAuB,KAAsB;CAC3D,OACE,sBAAsB,GAAG,KAAK,IAAI,WAAA,mBAAoC;AAE1E;AAEA,SAAS,iBACP,SACA,aAC0B;CAC1B,MAAM,MAAM,sBAAsB,UAAU,OAAO;CACnD,IAAI,IAAI,SACN,OAAO,IAAI;CAGb,OAAO,MACL;EAAE;EAAa,KAAK,IAAI;CAAM,GAC9B,oDACF;CAEA,OAAO;AACT;AAEA,SAAgB,mBACd,SACA,aACA,QAC2B;CAC3B,MAAM,OAA4B,CAAC;CAEnC,MAAM,aAAa,iBAAiB,SAAS,WAAW;CACxD,IAAI,CAAC,YACH,OAAO;CAGT,IACE,WAAW,IAAI,YAAY,WAC3B,YAAY,WAAW,GAAG,WAAW,OAAO,GAC5C;EACA,MAAM,MAAMA,SACV,WAAW,GAAG,WAAW,QAAQ,QAAQ,eAAe,EAAE,GAC1D,MACA,OAAO,eACT;EACA,OAAO,MACL;GACE,SAAS,IAAI;GACb,cAAc,IAAI;GAClB,eAAe,IAAI;EACrB,GACA,iCACF;EAEA,KAAK,KAAK;GAAE,GAAG;GAAK,oBAAoB;EAAsB,CAAC;CACjE;CAEA,IACE,WAAW,IAAI,YAAY,SAC3B,QAAQ,WAAW,GAAG,WAAW,KAAK,GAEjC;OAAA,MAAM,SAAS,WAAW,GAAG,WAAW,OAC3C,IAAI,iBAAiB,KAAK,KAAK,YAAY,MAAM,GAAG,GAAG;GACrD,MAAM,MAAMA,SACV,MAAM,IAAI,QAAQ,eAAe,EAAE,GACnC,MACA,OAAO,eACT;GACA,OAAO,MACL;IACE,SAAS,IAAI;IACb,cAAc,IAAI;IAClB,eAAe,IAAI;GACrB,GACA,wBACF;GAEA,KAAK,KAAK,GAAG;EACf,OAAO,IAAI,iBAAiB,KAAK,KAAK,uBAAuB,MAAM,GAAG,GAAG;GACvE,MAAM,MAAM,OAAO,MAAM,IAAI,QAAQ,2BAA2B,EAAE,CAAC;GACnE,IAAI,KACF,KAAK,KAAK,GAAG;EAEjB,OAAO,IAAI,kBAAkB,KAAK,GAAG;GACnC,MAAM,UAAU,MAAM;GAEtB,IAAI,SAAS;IACX,MAAM,MAAyB;KAC7B,YAAY,6BAA6B;KACzC,cAAc;KACd,aAAa,MAAM;IACrB;IACA,KAAK,KAAK,GAAG;GACf;EACF;;CAIJ,IAAI,CAAC,KAAK,QACR,OAAO;CAET,OAAO,EAAE,KAAK;AAChB;AAEA,SAAgB,OAAO,aAA+C;CACpE,IAAI,YAAY,SAAS,GAAG,GAAG;EAC7B,MAAM,MAAyB;GAC7B,YAAY,6BAA6B;GACzC,aAAa,YAAY,MAAM,GAAG,CAAC,CAAC;GACpC,2BACE;EACJ;EAEA,IAAI,eADY,YAAY,MAAM,GAAG,CAAC,CAAC;EAEvC,OAAO;CACT;CAEA,OAAO;AACT"}
|
|
@@ -4,9 +4,9 @@ import { getSiblingFileName, localPathExists, readLocalFile } from "../../../uti
|
|
|
4
4
|
//#region lib/modules/manager/bundler/common.ts
|
|
5
5
|
const delimiters = ["\"", "'"];
|
|
6
6
|
function extractRubyVersion(txt) {
|
|
7
|
-
const rubyMatch = regEx(/^ruby\s+("[^"]+"|'[^']+')\s*$/gm).exec(txt);
|
|
8
|
-
if (rubyMatch?.
|
|
9
|
-
const quotedVersion = rubyMatch
|
|
7
|
+
const rubyMatch = regEx(/^ruby\s+(?<version>"[^"]+"|'[^']+')\s*$/gm).exec(txt);
|
|
8
|
+
if (!rubyMatch?.groups) return null;
|
|
9
|
+
const quotedVersion = rubyMatch.groups.version;
|
|
10
10
|
return quotedVersion.substring(1, quotedVersion.length - 1);
|
|
11
11
|
}
|
|
12
12
|
async function getRubyConstraint(updateArtifact) {
|
|
@@ -23,7 +23,7 @@ async function getRubyConstraint(updateArtifact) {
|
|
|
23
23
|
return rubyMatch;
|
|
24
24
|
}
|
|
25
25
|
for (const file of [".ruby-version", ".tool-versions"]) {
|
|
26
|
-
const rubyVersion = (await readLocalFile(getSiblingFileName(packageFileName, file), "utf8"))?.match(regEx(/^(?:ruby(?:-|\s+))?(
|
|
26
|
+
const rubyVersion = (await readLocalFile(getSiblingFileName(packageFileName, file), "utf8"))?.match(regEx(/^(?:ruby(?:-|\s+))?(?<version>\d[\d.]*)/m))?.groups?.version;
|
|
27
27
|
if (rubyVersion) {
|
|
28
28
|
logger.debug(`Using ruby version specified in ${file}`);
|
|
29
29
|
return rubyVersion;
|
|
@@ -31,7 +31,7 @@ async function getRubyConstraint(updateArtifact) {
|
|
|
31
31
|
}
|
|
32
32
|
const lockFile = await getLockFilePath(packageFileName);
|
|
33
33
|
if (lockFile) {
|
|
34
|
-
const rubyVersion = (await readLocalFile(lockFile, "utf8"))?.match(regEx(/^ {3}ruby (
|
|
34
|
+
const rubyVersion = (await readLocalFile(lockFile, "utf8"))?.match(regEx(/^ {3}ruby (?<version>\d[\d.]*)(?:[a-z]|\s|$)/m))?.groups?.version;
|
|
35
35
|
if (rubyVersion) {
|
|
36
36
|
logger.debug(`Using ruby version specified in lock file`);
|
|
37
37
|
return rubyVersion;
|
|
@@ -47,10 +47,10 @@ function getBundlerConstraint(updateArtifact, existingLockFileContent) {
|
|
|
47
47
|
logger.debug("Using bundler constraint from config");
|
|
48
48
|
return bundler;
|
|
49
49
|
}
|
|
50
|
-
const bundledWith = regEx(/\nBUNDLED WITH\n\s+(
|
|
50
|
+
const bundledWith = regEx(/\nBUNDLED WITH\n\s+(?<version>.*?)(?:\n|$)/).exec(existingLockFileContent);
|
|
51
51
|
if (bundledWith) {
|
|
52
52
|
logger.debug("Using bundler version specified in lockfile");
|
|
53
|
-
return bundledWith
|
|
53
|
+
return bundledWith.groups.version;
|
|
54
54
|
}
|
|
55
55
|
return null;
|
|
56
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","names":[],"sources":["../../../../lib/modules/manager/bundler/common.ts"],"sourcesContent":["import { logger } from '../../../logger/index.ts';\nimport {\n getSiblingFileName,\n localPathExists,\n readLocalFile,\n} from '../../../util/fs/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport type { UpdateArtifact } from '../types.ts';\n\nexport const delimiters = ['\"', \"'\"];\n\nexport function extractRubyVersion(txt: string): string | null {\n const rubyMatch = regEx(/^ruby\\s+(
|
|
1
|
+
{"version":3,"file":"common.js","names":[],"sources":["../../../../lib/modules/manager/bundler/common.ts"],"sourcesContent":["import { logger } from '../../../logger/index.ts';\nimport {\n getSiblingFileName,\n localPathExists,\n readLocalFile,\n} from '../../../util/fs/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport type { UpdateArtifact } from '../types.ts';\n\nexport const delimiters = ['\"', \"'\"];\n\nexport function extractRubyVersion(txt: string): string | null {\n const rubyMatch = regEx(/^ruby\\s+(?<version>\"[^\"]+\"|'[^']+')\\s*$/gm).exec(\n txt,\n );\n if (!rubyMatch?.groups) {\n return null;\n }\n const quotedVersion = rubyMatch.groups.version;\n return quotedVersion.substring(1, quotedVersion.length - 1);\n}\n\nexport async function getRubyConstraint(\n updateArtifact: UpdateArtifact,\n): Promise<string | null> {\n const { packageFileName, config, newPackageFileContent } = updateArtifact;\n const { constraints = {} } = config;\n const { ruby } = constraints;\n\n if (ruby) {\n logger.debug('Using ruby constraint from config');\n return ruby;\n }\n const rubyMatch = extractRubyVersion(newPackageFileContent);\n if (rubyMatch) {\n logger.debug('Using ruby version from gemfile');\n return rubyMatch;\n }\n for (const file of ['.ruby-version', '.tool-versions']) {\n const rubyVersion = (\n await readLocalFile(getSiblingFileName(packageFileName, file), 'utf8')\n )?.match(regEx(/^(?:ruby(?:-|\\s+))?(?<version>\\d[\\d.]*)/m))?.groups\n ?.version;\n if (rubyVersion) {\n logger.debug(`Using ruby version specified in ${file}`);\n return rubyVersion;\n }\n }\n const lockFile = await getLockFilePath(packageFileName);\n if (lockFile) {\n const rubyVersion = (await readLocalFile(lockFile, 'utf8'))?.match(\n regEx(/^ {3}ruby (?<version>\\d[\\d.]*)(?:[a-z]|\\s|$)/m),\n )?.groups?.version;\n if (rubyVersion) {\n logger.debug(`Using ruby version specified in lock file`);\n return rubyVersion;\n }\n }\n\n return null;\n}\n\nexport function getBundlerConstraint(\n updateArtifact: Pick<UpdateArtifact, 'config'>,\n existingLockFileContent: string,\n): string | null {\n const { config } = updateArtifact;\n const { constraints = {} } = config;\n const { bundler } = constraints;\n\n if (bundler) {\n logger.debug('Using bundler constraint from config');\n return bundler;\n }\n const bundledWith = regEx(/\\nBUNDLED WITH\\n\\s+(?<version>.*?)(?:\\n|$)/).exec(\n existingLockFileContent,\n );\n if (bundledWith) {\n logger.debug('Using bundler version specified in lockfile');\n return bundledWith.groups!.version;\n }\n\n return null;\n}\n\nexport async function getLockFilePath(\n packageFilePath: string,\n): Promise<string> {\n const lockFilePath = (await localPathExists(`${packageFilePath}.lock`))\n ? `${packageFilePath}.lock`\n : `Gemfile.lock`;\n logger.debug(`Lockfile for ${packageFilePath} found in ${lockFilePath}`);\n return lockFilePath;\n}\n"],"mappings":";;;;AASA,MAAa,aAAa,CAAC,MAAK,GAAG;AAEnC,SAAgB,mBAAmB,KAA4B;CAC7D,MAAM,YAAY,MAAM,2CAA2C,CAAC,CAAC,KACnE,GACF;CACA,IAAI,CAAC,WAAW,QACd,OAAO;CAET,MAAM,gBAAgB,UAAU,OAAO;CACvC,OAAO,cAAc,UAAU,GAAG,cAAc,SAAS,CAAC;AAC5D;AAEA,eAAsB,kBACpB,gBACwB;CACxB,MAAM,EAAE,iBAAiB,QAAQ,0BAA0B;CAC3D,MAAM,EAAE,cAAc,CAAC,MAAM;CAC7B,MAAM,EAAE,SAAS;CAEjB,IAAI,MAAM;EACR,OAAO,MAAM,mCAAmC;EAChD,OAAO;CACT;CACA,MAAM,YAAY,mBAAmB,qBAAqB;CAC1D,IAAI,WAAW;EACb,OAAO,MAAM,iCAAiC;EAC9C,OAAO;CACT;CACA,KAAK,MAAM,QAAQ,CAAC,iBAAiB,gBAAgB,GAAG;EACtD,MAAM,eACJ,MAAM,cAAc,mBAAmB,iBAAiB,IAAI,GAAG,MAAM,EAAA,EACpE,MAAM,MAAM,0CAA0C,CAAC,CAAC,EAAE,QACzD;EACJ,IAAI,aAAa;GACf,OAAO,MAAM,mCAAmC,MAAM;GACtD,OAAO;EACT;CACF;CACA,MAAM,WAAW,MAAM,gBAAgB,eAAe;CACtD,IAAI,UAAU;EACZ,MAAM,eAAe,MAAM,cAAc,UAAU,MAAM,EAAA,EAAI,MAC3D,MAAM,+CAA+C,CACvD,CAAC,EAAE,QAAQ;EACX,IAAI,aAAa;GACf,OAAO,MAAM,2CAA2C;GACxD,OAAO;EACT;CACF;CAEA,OAAO;AACT;AAEA,SAAgB,qBACd,gBACA,yBACe;CACf,MAAM,EAAE,WAAW;CACnB,MAAM,EAAE,cAAc,CAAC,MAAM;CAC7B,MAAM,EAAE,YAAY;CAEpB,IAAI,SAAS;EACX,OAAO,MAAM,sCAAsC;EACnD,OAAO;CACT;CACA,MAAM,cAAc,MAAM,4CAA4C,CAAC,CAAC,KACtE,uBACF;CACA,IAAI,aAAa;EACf,OAAO,MAAM,6CAA6C;EAC1D,OAAO,YAAY,OAAQ;CAC7B;CAEA,OAAO;AACT;AAEA,eAAsB,gBACpB,iBACiB;CACjB,MAAM,eAAgB,MAAM,gBAAgB,GAAG,gBAAgB,MAAM,IACjE,GAAG,gBAAgB,SACnB;CACJ,OAAO,MAAM,gBAAgB,gBAAgB,YAAY,cAAc;CACvE,OAAO;AACT"}
|
|
@@ -20,9 +20,9 @@ const pathMatchRegex = regEx(`path:\\s*['"](?<path>[^'"]+)['"]`);
|
|
|
20
20
|
async function extractPackageFile(content, packageFile) {
|
|
21
21
|
let lineNumber;
|
|
22
22
|
async function processGroupBlock(line, repositoryUrl, trimGroupLine = false) {
|
|
23
|
-
const groupMatch = regEx(/^group\s+(
|
|
23
|
+
const groupMatch = regEx(/^group\s+(?<groups>.*?)\s+do/).exec(line);
|
|
24
24
|
if (groupMatch) {
|
|
25
|
-
const depTypes = groupMatch
|
|
25
|
+
const depTypes = groupMatch.groups.groups.split(",").map((group) => group.trim()).map((group) => group.replace(regEx(/^:/), ""));
|
|
26
26
|
const groupLineNumber = lineNumber;
|
|
27
27
|
let groupContent = "";
|
|
28
28
|
let groupLine = "";
|
|
@@ -142,7 +142,7 @@ async function extractPackageFile(content, packageFile) {
|
|
|
142
142
|
})));
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
|
-
if (regEx(/^platforms\s+(
|
|
145
|
+
if (regEx(/^platforms\s+(?:.*?)\s+do/).test(line)) {
|
|
146
146
|
const platformsLineNumber = lineNumber;
|
|
147
147
|
let platformsContent = "";
|
|
148
148
|
let platformsLine = "";
|
|
@@ -166,7 +166,7 @@ async function extractPackageFile(content, packageFile) {
|
|
|
166
166
|
managerData: { lineNumber: (dep.managerData?.lineNumber ?? NaN) + platformsLineNumber + 1 }
|
|
167
167
|
})));
|
|
168
168
|
}
|
|
169
|
-
if (regEx(/^if\s+(
|
|
169
|
+
if (regEx(/^if\s+(?:.*?)/).test(line)) {
|
|
170
170
|
const ifLineNumber = lineNumber;
|
|
171
171
|
let ifContent = "";
|
|
172
172
|
let ifLine = "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.js","names":[],"sources":["../../../../lib/modules/manager/bundler/extract.ts"],"sourcesContent":["import { isString } from '@sindresorhus/is';\nimport { logger } from '../../../logger/index.ts';\nimport { readLocalFile } from '../../../util/fs/index.ts';\nimport { newlineRegex, regEx } from '../../../util/regex.ts';\nimport { isHttpUrl } from '../../../util/url.ts';\nimport { GitRefsDatasource } from '../../datasource/git-refs/index.ts';\nimport { RubyVersionDatasource } from '../../datasource/ruby-version/index.ts';\nimport { RubygemsDatasource } from '../../datasource/rubygems/index.ts';\nimport type { PackageDependency, PackageFileContent } from '../types.ts';\nimport { delimiters, extractRubyVersion, getLockFilePath } from './common.ts';\nimport { extractLockFileEntries } from './locked-version.ts';\n\nfunction formatContent(input: string): string {\n return `${input.replace(regEx(/^ {2}/), '')}\\n`; //remove leading whitespace and add a new line at the end\n}\n\nconst variableMatchRegex = regEx(\n `^(?<key>\\\\w+)\\\\s*=\\\\s*['\"](?<value>[^'\"]+)['\"]`,\n);\nconst gemMatchRegex = regEx(\n `^\\\\s*gem\\\\s+(['\"])(?<depName>[^'\"]+)(['\"])(\\\\s*,\\\\s*(?<currentValue>(['\"])[^'\"]+['\"](\\\\s*,\\\\s*['\"][^'\"]+['\"])?))?`,\n);\nconst sourceMatchRegex = regEx(\n `source:\\\\s*((?:['\"](?<registryUrl>[^'\"]+)['\"])|(?<sourceName>\\\\w+))?`,\n);\nconst gitRefsMatchRegex = regEx(\n `((git:\\\\s*['\"](?<gitUrl>[^'\"]+)['\"])|(\\\\s*,\\\\s*github:\\\\s*['\"](?<repoName>[^'\"]+)['\"]))(\\\\s*,\\\\s*branch:\\\\s*['\"](?<branchName>[^'\"]+)['\"])?(\\\\s*,\\\\s*ref:\\\\s*['\"](?<refName>[^'\"]+)['\"])?(\\\\s*,\\\\s*tag:\\\\s*['\"](?<tagName>[^'\"]+)['\"])?`,\n);\nconst pathMatchRegex = regEx(`path:\\\\s*['\"](?<path>[^'\"]+)['\"]`);\n\nexport async function extractPackageFile(\n content: string,\n packageFile?: string,\n): Promise<PackageFileContent | null> {\n let lineNumber: number;\n async function processGroupBlock(\n line: string,\n repositoryUrl?: string,\n trimGroupLine = false,\n ): Promise<void> {\n const groupMatch = regEx(/^group\\s+(.*?)\\s+do/).exec(line);\n if (groupMatch) {\n const depTypes = groupMatch[1]\n .split(',')\n .map((group) => group.trim())\n .map((group) => group.replace(regEx(/^:/), ''));\n\n const groupLineNumber = lineNumber;\n let groupContent = '';\n let groupLine = '';\n\n while (\n lineNumber < lines.length &&\n (trimGroupLine ? groupLine.trim() !== 'end' : groupLine !== 'end')\n ) {\n lineNumber += 1;\n groupLine = lines[lineNumber];\n\n // istanbul ignore if\n if (!isString(groupLine)) {\n logger.debug(\n { content, packageFile, type: 'groupLine' },\n 'Bundler parsing error',\n );\n groupLine = 'end';\n }\n if (trimGroupLine ? groupLine.trim() !== 'end' : groupLine !== 'end') {\n groupContent += formatContent(groupLine);\n }\n }\n\n const groupRes = await extractPackageFile(groupContent);\n if (groupRes) {\n res.deps = res.deps.concat(\n groupRes.deps.map((dep) => {\n const depObject = {\n ...dep,\n depTypes,\n managerData: {\n lineNumber:\n (dep.managerData?.lineNumber ?? NaN) + groupLineNumber + 1,\n },\n };\n if (repositoryUrl) {\n depObject.registryUrls = [repositoryUrl];\n }\n return depObject;\n }),\n );\n }\n }\n }\n const res: PackageFileContent = {\n registryUrls: [],\n deps: [],\n };\n\n const variables: Record<string, string> = {};\n\n const lines = content.split(newlineRegex);\n for (lineNumber = 0; lineNumber < lines.length; lineNumber += 1) {\n const line = lines[lineNumber];\n let sourceMatch: RegExpMatchArray | null = null;\n for (const delimiter of delimiters) {\n sourceMatch =\n sourceMatch ??\n regEx(\n `^source ((${delimiter}(?<registryUrl>[^${delimiter}]+)${delimiter})|(?<sourceName>\\\\w+))\\\\s*$`,\n ).exec(line);\n }\n if (sourceMatch) {\n if (sourceMatch.groups?.registryUrl) {\n res.registryUrls?.push(sourceMatch.groups.registryUrl);\n }\n if (sourceMatch.groups?.sourceName) {\n const registryUrl = variables[sourceMatch.groups.sourceName];\n if (registryUrl) {\n res.registryUrls?.push(registryUrl);\n }\n }\n }\n\n const rubyMatch = extractRubyVersion(line);\n if (rubyMatch) {\n res.deps.push({\n depName: 'ruby',\n currentValue: rubyMatch,\n datasource: RubyVersionDatasource.id,\n registryUrls: null,\n });\n }\n\n const variableMatch = variableMatchRegex.exec(line);\n if (variableMatch?.groups?.key) {\n variables[variableMatch.groups?.key] = variableMatch.groups?.value;\n }\n\n const gemMatch = gemMatchRegex.exec(line)?.groups;\n\n if (gemMatch) {\n const dep: PackageDependency = {\n depName: gemMatch.depName,\n managerData: { lineNumber },\n datasource: RubygemsDatasource.id,\n };\n\n if (gemMatch.currentValue) {\n const currentValue = gemMatch.currentValue;\n dep.currentValue = currentValue;\n }\n\n const pathMatch = pathMatchRegex.exec(line)?.groups;\n if (pathMatch) {\n dep.skipReason = 'internal-package';\n }\n\n const sourceMatch = sourceMatchRegex.exec(line)?.groups;\n if (sourceMatch) {\n if (sourceMatch.registryUrl) {\n dep.registryUrls = [sourceMatch.registryUrl];\n } else if (sourceMatch.sourceName) {\n dep.registryUrls = [variables[sourceMatch.sourceName]];\n }\n }\n\n const gitRefsMatch = gitRefsMatchRegex.exec(line)?.groups;\n if (gitRefsMatch) {\n if (gitRefsMatch.gitUrl) {\n const gitUrl = gitRefsMatch.gitUrl;\n dep.packageName = gitUrl;\n\n if (isHttpUrl(gitUrl)) {\n dep.sourceUrl = gitUrl.replace(regEx(/\\.git$/), '');\n }\n } else {\n // we always have repoName, as `gitRefsMatchRegex`'s first group requires either `gitUrl` or `repoName`\n dep.packageName = `https://github.com/${gitRefsMatch.repoName}`;\n dep.sourceUrl = dep.packageName;\n }\n if (gitRefsMatch.refName) {\n dep.currentDigest = gitRefsMatch.refName;\n } else if (gitRefsMatch.branchName) {\n dep.currentValue = gitRefsMatch.branchName;\n } else if (gitRefsMatch.tagName) {\n dep.currentValue = gitRefsMatch.tagName;\n }\n dep.datasource = GitRefsDatasource.id;\n }\n res.deps.push(dep);\n }\n\n await processGroupBlock(line);\n\n for (const delimiter of delimiters) {\n const sourceBlockMatch = regEx(\n `^source\\\\s+((${delimiter}(?<registryUrl>[^${delimiter}]+)${delimiter})|(?<sourceName>\\\\w+))\\\\s+do`,\n ).exec(line);\n if (sourceBlockMatch) {\n let repositoryUrl = '';\n if (sourceBlockMatch.groups?.registryUrl) {\n repositoryUrl = sourceBlockMatch.groups.registryUrl;\n }\n if (\n sourceBlockMatch.groups?.sourceName &&\n variables[sourceBlockMatch.groups.sourceName]\n ) {\n repositoryUrl = variables[sourceBlockMatch.groups.sourceName];\n }\n const sourceLineNumber = lineNumber;\n let sourceContent = '';\n let sourceLine = '';\n\n while (lineNumber < lines.length && sourceLine.trim() !== 'end') {\n lineNumber += 1;\n sourceLine = lines[lineNumber];\n // istanbul ignore if\n if (!isString(sourceLine)) {\n logger.debug(\n { content, packageFile, type: 'sourceLine' },\n 'Bundler parsing error',\n );\n sourceLine = 'end';\n }\n\n await processGroupBlock(sourceLine.trim(), repositoryUrl, true);\n\n if (sourceLine.trim() !== 'end') {\n sourceContent += formatContent(sourceLine);\n }\n }\n\n const sourceRes = await extractPackageFile(sourceContent);\n\n if (sourceRes) {\n res.deps = res.deps.concat(\n sourceRes.deps.map((dep) => ({\n ...dep,\n registryUrls: [repositoryUrl],\n managerData: {\n lineNumber:\n (dep.managerData?.lineNumber ?? NaN) + sourceLineNumber + 1,\n },\n })),\n );\n }\n }\n }\n const platformsMatch = regEx(/^platforms\\s+(.*?)\\s+do/).test(line);\n if (platformsMatch) {\n const platformsLineNumber = lineNumber;\n let platformsContent = '';\n let platformsLine = '';\n while (lineNumber < lines.length && platformsLine !== 'end') {\n lineNumber += 1;\n platformsLine = lines[lineNumber];\n // istanbul ignore if\n if (!isString(platformsLine)) {\n logger.debug(\n { content, packageFile, type: 'platformsLine' },\n 'Bundler parsing error',\n );\n platformsLine = 'end';\n }\n if (platformsLine !== 'end') {\n platformsContent += formatContent(platformsLine);\n }\n }\n const platformsRes = await extractPackageFile(platformsContent);\n if (platformsRes) {\n res.deps = res.deps.concat(\n platformsRes.deps.map((dep) => ({\n ...dep,\n managerData: {\n lineNumber:\n (dep.managerData?.lineNumber ?? NaN) + platformsLineNumber + 1,\n },\n })),\n );\n }\n }\n const ifMatch = regEx(/^if\\s+(.*?)/).test(line);\n if (ifMatch) {\n const ifLineNumber = lineNumber;\n let ifContent = '';\n let ifLine = '';\n while (lineNumber < lines.length && ifLine !== 'end') {\n lineNumber += 1;\n ifLine = lines[lineNumber];\n // istanbul ignore if\n if (!isString(ifLine)) {\n logger.debug(\n { content, packageFile, type: 'ifLine' },\n 'Bundler parsing error',\n );\n ifLine = 'end';\n }\n if (ifLine !== 'end') {\n ifContent += formatContent(ifLine);\n }\n }\n const ifRes = await extractPackageFile(ifContent);\n if (ifRes) {\n res.deps = res.deps.concat(\n ifRes.deps.map((dep) => ({\n ...dep,\n managerData: {\n lineNumber:\n (dep.managerData?.lineNumber ?? NaN) + ifLineNumber + 1,\n },\n })),\n );\n }\n }\n }\n if (!res.deps.length && !res.registryUrls?.length) {\n return null;\n }\n\n if (packageFile) {\n const gemfileLockPath = await getLockFilePath(packageFile);\n const lockContent = await readLocalFile(gemfileLockPath, 'utf8');\n if (lockContent) {\n logger.debug(\n `Found lock file ${gemfileLockPath} for packageFile: ${packageFile}`,\n );\n res.lockFiles = [gemfileLockPath];\n const lockedEntries = extractLockFileEntries(lockContent);\n for (const dep of res.deps) {\n // TODO: types (#22198)\n const lockedDepValue = lockedEntries.get(`${dep.depName!}`);\n if (lockedDepValue) {\n dep.lockedVersion = lockedDepValue;\n }\n }\n }\n }\n return res;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extract.js","names":[],"sources":["../../../../lib/modules/manager/bundler/extract.ts"],"sourcesContent":["import { isString } from '@sindresorhus/is';\nimport { logger } from '../../../logger/index.ts';\nimport { readLocalFile } from '../../../util/fs/index.ts';\nimport { newlineRegex, regEx } from '../../../util/regex.ts';\nimport { isHttpUrl } from '../../../util/url.ts';\nimport { GitRefsDatasource } from '../../datasource/git-refs/index.ts';\nimport { RubyVersionDatasource } from '../../datasource/ruby-version/index.ts';\nimport { RubygemsDatasource } from '../../datasource/rubygems/index.ts';\nimport type { PackageDependency, PackageFileContent } from '../types.ts';\nimport { delimiters, extractRubyVersion, getLockFilePath } from './common.ts';\nimport { extractLockFileEntries } from './locked-version.ts';\n\nfunction formatContent(input: string): string {\n return `${input.replace(regEx(/^ {2}/), '')}\\n`; //remove leading whitespace and add a new line at the end\n}\n\nconst variableMatchRegex = regEx(\n `^(?<key>\\\\w+)\\\\s*=\\\\s*['\"](?<value>[^'\"]+)['\"]`,\n);\nconst gemMatchRegex = regEx(\n `^\\\\s*gem\\\\s+(['\"])(?<depName>[^'\"]+)(['\"])(\\\\s*,\\\\s*(?<currentValue>(['\"])[^'\"]+['\"](\\\\s*,\\\\s*['\"][^'\"]+['\"])?))?`,\n);\nconst sourceMatchRegex = regEx(\n `source:\\\\s*((?:['\"](?<registryUrl>[^'\"]+)['\"])|(?<sourceName>\\\\w+))?`,\n);\nconst gitRefsMatchRegex = regEx(\n `((git:\\\\s*['\"](?<gitUrl>[^'\"]+)['\"])|(\\\\s*,\\\\s*github:\\\\s*['\"](?<repoName>[^'\"]+)['\"]))(\\\\s*,\\\\s*branch:\\\\s*['\"](?<branchName>[^'\"]+)['\"])?(\\\\s*,\\\\s*ref:\\\\s*['\"](?<refName>[^'\"]+)['\"])?(\\\\s*,\\\\s*tag:\\\\s*['\"](?<tagName>[^'\"]+)['\"])?`,\n);\nconst pathMatchRegex = regEx(`path:\\\\s*['\"](?<path>[^'\"]+)['\"]`);\n\nexport async function extractPackageFile(\n content: string,\n packageFile?: string,\n): Promise<PackageFileContent | null> {\n let lineNumber: number;\n async function processGroupBlock(\n line: string,\n repositoryUrl?: string,\n trimGroupLine = false,\n ): Promise<void> {\n const groupMatch = regEx(/^group\\s+(?<groups>.*?)\\s+do/).exec(line);\n if (groupMatch) {\n const depTypes = groupMatch\n .groups!.groups.split(',')\n .map((group) => group.trim())\n .map((group) => group.replace(regEx(/^:/), ''));\n\n const groupLineNumber = lineNumber;\n let groupContent = '';\n let groupLine = '';\n\n while (\n lineNumber < lines.length &&\n (trimGroupLine ? groupLine.trim() !== 'end' : groupLine !== 'end')\n ) {\n lineNumber += 1;\n groupLine = lines[lineNumber];\n\n // istanbul ignore if\n if (!isString(groupLine)) {\n logger.debug(\n { content, packageFile, type: 'groupLine' },\n 'Bundler parsing error',\n );\n groupLine = 'end';\n }\n if (trimGroupLine ? groupLine.trim() !== 'end' : groupLine !== 'end') {\n groupContent += formatContent(groupLine);\n }\n }\n\n const groupRes = await extractPackageFile(groupContent);\n if (groupRes) {\n res.deps = res.deps.concat(\n groupRes.deps.map((dep) => {\n const depObject = {\n ...dep,\n depTypes,\n managerData: {\n lineNumber:\n (dep.managerData?.lineNumber ?? NaN) + groupLineNumber + 1,\n },\n };\n if (repositoryUrl) {\n depObject.registryUrls = [repositoryUrl];\n }\n return depObject;\n }),\n );\n }\n }\n }\n const res: PackageFileContent = {\n registryUrls: [],\n deps: [],\n };\n\n const variables: Record<string, string> = {};\n\n const lines = content.split(newlineRegex);\n for (lineNumber = 0; lineNumber < lines.length; lineNumber += 1) {\n const line = lines[lineNumber];\n let sourceMatch: RegExpMatchArray | null = null;\n for (const delimiter of delimiters) {\n sourceMatch =\n sourceMatch ??\n regEx(\n `^source ((${delimiter}(?<registryUrl>[^${delimiter}]+)${delimiter})|(?<sourceName>\\\\w+))\\\\s*$`,\n ).exec(line);\n }\n if (sourceMatch) {\n if (sourceMatch.groups?.registryUrl) {\n res.registryUrls?.push(sourceMatch.groups.registryUrl);\n }\n if (sourceMatch.groups?.sourceName) {\n const registryUrl = variables[sourceMatch.groups.sourceName];\n if (registryUrl) {\n res.registryUrls?.push(registryUrl);\n }\n }\n }\n\n const rubyMatch = extractRubyVersion(line);\n if (rubyMatch) {\n res.deps.push({\n depName: 'ruby',\n currentValue: rubyMatch,\n datasource: RubyVersionDatasource.id,\n registryUrls: null,\n });\n }\n\n const variableMatch = variableMatchRegex.exec(line);\n if (variableMatch?.groups?.key) {\n variables[variableMatch.groups?.key] = variableMatch.groups?.value;\n }\n\n const gemMatch = gemMatchRegex.exec(line)?.groups;\n\n if (gemMatch) {\n const dep: PackageDependency = {\n depName: gemMatch.depName,\n managerData: { lineNumber },\n datasource: RubygemsDatasource.id,\n };\n\n if (gemMatch.currentValue) {\n const currentValue = gemMatch.currentValue;\n dep.currentValue = currentValue;\n }\n\n const pathMatch = pathMatchRegex.exec(line)?.groups;\n if (pathMatch) {\n dep.skipReason = 'internal-package';\n }\n\n const sourceMatch = sourceMatchRegex.exec(line)?.groups;\n if (sourceMatch) {\n if (sourceMatch.registryUrl) {\n dep.registryUrls = [sourceMatch.registryUrl];\n } else if (sourceMatch.sourceName) {\n dep.registryUrls = [variables[sourceMatch.sourceName]];\n }\n }\n\n const gitRefsMatch = gitRefsMatchRegex.exec(line)?.groups;\n if (gitRefsMatch) {\n if (gitRefsMatch.gitUrl) {\n const gitUrl = gitRefsMatch.gitUrl;\n dep.packageName = gitUrl;\n\n if (isHttpUrl(gitUrl)) {\n dep.sourceUrl = gitUrl.replace(regEx(/\\.git$/), '');\n }\n } else {\n // we always have repoName, as `gitRefsMatchRegex`'s first group requires either `gitUrl` or `repoName`\n dep.packageName = `https://github.com/${gitRefsMatch.repoName}`;\n dep.sourceUrl = dep.packageName;\n }\n if (gitRefsMatch.refName) {\n dep.currentDigest = gitRefsMatch.refName;\n } else if (gitRefsMatch.branchName) {\n dep.currentValue = gitRefsMatch.branchName;\n } else if (gitRefsMatch.tagName) {\n dep.currentValue = gitRefsMatch.tagName;\n }\n dep.datasource = GitRefsDatasource.id;\n }\n res.deps.push(dep);\n }\n\n await processGroupBlock(line);\n\n for (const delimiter of delimiters) {\n const sourceBlockMatch = regEx(\n `^source\\\\s+((${delimiter}(?<registryUrl>[^${delimiter}]+)${delimiter})|(?<sourceName>\\\\w+))\\\\s+do`,\n ).exec(line);\n if (sourceBlockMatch) {\n let repositoryUrl = '';\n if (sourceBlockMatch.groups?.registryUrl) {\n repositoryUrl = sourceBlockMatch.groups.registryUrl;\n }\n if (\n sourceBlockMatch.groups?.sourceName &&\n variables[sourceBlockMatch.groups.sourceName]\n ) {\n repositoryUrl = variables[sourceBlockMatch.groups.sourceName];\n }\n const sourceLineNumber = lineNumber;\n let sourceContent = '';\n let sourceLine = '';\n\n while (lineNumber < lines.length && sourceLine.trim() !== 'end') {\n lineNumber += 1;\n sourceLine = lines[lineNumber];\n // istanbul ignore if\n if (!isString(sourceLine)) {\n logger.debug(\n { content, packageFile, type: 'sourceLine' },\n 'Bundler parsing error',\n );\n sourceLine = 'end';\n }\n\n await processGroupBlock(sourceLine.trim(), repositoryUrl, true);\n\n if (sourceLine.trim() !== 'end') {\n sourceContent += formatContent(sourceLine);\n }\n }\n\n const sourceRes = await extractPackageFile(sourceContent);\n\n if (sourceRes) {\n res.deps = res.deps.concat(\n sourceRes.deps.map((dep) => ({\n ...dep,\n registryUrls: [repositoryUrl],\n managerData: {\n lineNumber:\n (dep.managerData?.lineNumber ?? NaN) + sourceLineNumber + 1,\n },\n })),\n );\n }\n }\n }\n const platformsMatch = regEx(/^platforms\\s+(?:.*?)\\s+do/).test(line);\n if (platformsMatch) {\n const platformsLineNumber = lineNumber;\n let platformsContent = '';\n let platformsLine = '';\n while (lineNumber < lines.length && platformsLine !== 'end') {\n lineNumber += 1;\n platformsLine = lines[lineNumber];\n // istanbul ignore if\n if (!isString(platformsLine)) {\n logger.debug(\n { content, packageFile, type: 'platformsLine' },\n 'Bundler parsing error',\n );\n platformsLine = 'end';\n }\n if (platformsLine !== 'end') {\n platformsContent += formatContent(platformsLine);\n }\n }\n const platformsRes = await extractPackageFile(platformsContent);\n if (platformsRes) {\n res.deps = res.deps.concat(\n platformsRes.deps.map((dep) => ({\n ...dep,\n managerData: {\n lineNumber:\n (dep.managerData?.lineNumber ?? NaN) + platformsLineNumber + 1,\n },\n })),\n );\n }\n }\n const ifMatch = regEx(/^if\\s+(?:.*?)/).test(line);\n if (ifMatch) {\n const ifLineNumber = lineNumber;\n let ifContent = '';\n let ifLine = '';\n while (lineNumber < lines.length && ifLine !== 'end') {\n lineNumber += 1;\n ifLine = lines[lineNumber];\n // istanbul ignore if\n if (!isString(ifLine)) {\n logger.debug(\n { content, packageFile, type: 'ifLine' },\n 'Bundler parsing error',\n );\n ifLine = 'end';\n }\n if (ifLine !== 'end') {\n ifContent += formatContent(ifLine);\n }\n }\n const ifRes = await extractPackageFile(ifContent);\n if (ifRes) {\n res.deps = res.deps.concat(\n ifRes.deps.map((dep) => ({\n ...dep,\n managerData: {\n lineNumber:\n (dep.managerData?.lineNumber ?? NaN) + ifLineNumber + 1,\n },\n })),\n );\n }\n }\n }\n if (!res.deps.length && !res.registryUrls?.length) {\n return null;\n }\n\n if (packageFile) {\n const gemfileLockPath = await getLockFilePath(packageFile);\n const lockContent = await readLocalFile(gemfileLockPath, 'utf8');\n if (lockContent) {\n logger.debug(\n `Found lock file ${gemfileLockPath} for packageFile: ${packageFile}`,\n );\n res.lockFiles = [gemfileLockPath];\n const lockedEntries = extractLockFileEntries(lockContent);\n for (const dep of res.deps) {\n // TODO: types (#22198)\n const lockedDepValue = lockedEntries.get(`${dep.depName!}`);\n if (lockedDepValue) {\n dep.lockedVersion = lockedDepValue;\n }\n }\n }\n }\n return res;\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { regEx } from "../../../util/regex.js";
|
|
2
2
|
//#region lib/modules/manager/deno/utils.ts
|
|
3
|
-
const denoLandRegex = regEx(/(https:\/\/deno.land\/)(?<rawPackageName>[^@\s]+)(?:@(?<currentValue>[^/\s]+))?(?<filePath>\/[^\s]*)?/);
|
|
3
|
+
const denoLandRegex = regEx(/(?:https:\/\/deno.land\/)(?<rawPackageName>[^@\s]+)(?:@(?<currentValue>[^/\s]+))?(?<filePath>\/[^\s]*)?/);
|
|
4
4
|
const depValueRegex = regEx(/(?:deno task\s+\w+:[^\s]+)|(?<datasource>\w+):\/?(?<depName>@?[\w.-]+(?:\/[\w.-]+)?)(?:@(?<currentValue>[^\s/]+))?\/?/);
|
|
5
5
|
//#endregion
|
|
6
6
|
export { denoLandRegex, depValueRegex };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":[],"sources":["../../../../lib/modules/manager/deno/utils.ts"],"sourcesContent":["import { regEx } from '../../../util/regex.ts';\n\nexport const denoLandRegex = regEx(\n /(https:\\/\\/deno.land\\/)(?<rawPackageName>[^@\\s]+)(?:@(?<currentValue>[^/\\s]+))?(?<filePath>\\/[^\\s]*)?/,\n);\n// \"deno task\" could refer to another task e.g. \"deno task npm:build\"\nexport const depValueRegex = regEx(\n /(?:deno task\\s+\\w+:[^\\s]+)|(?<datasource>\\w+):\\/?(?<depName>@?[\\w.-]+(?:\\/[\\w.-]+)?)(?:@(?<currentValue>[^\\s/]+))?\\/?/,\n);\n"],"mappings":";;AAEA,MAAa,gBAAgB,MAC3B,
|
|
1
|
+
{"version":3,"file":"utils.js","names":[],"sources":["../../../../lib/modules/manager/deno/utils.ts"],"sourcesContent":["import { regEx } from '../../../util/regex.ts';\n\nexport const denoLandRegex = regEx(\n /(?:https:\\/\\/deno.land\\/)(?<rawPackageName>[^@\\s]+)(?:@(?<currentValue>[^/\\s]+))?(?<filePath>\\/[^\\s]*)?/,\n);\n// \"deno task\" could refer to another task e.g. \"deno task npm:build\"\nexport const depValueRegex = regEx(\n /(?:deno task\\s+\\w+:[^\\s]+)|(?<datasource>\\w+):\\/?(?<depName>@?[\\w.-]+(?:\\/[\\w.-]+)?)(?:@(?<currentValue>[^\\s/]+))?\\/?/,\n);\n"],"mappings":";;AAEA,MAAa,gBAAgB,MAC3B,yGACF;AAEA,MAAa,gBAAgB,MAC3B,uHACF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { coerceObject } from "../../../util/object.js";
|
|
2
2
|
import { newlineRegex, regEx } from "../../../util/regex.js";
|
|
3
3
|
import { logger } from "../../../logger/index.js";
|
|
4
|
+
import { ensureTrailingSlash } from "../../../util/url.js";
|
|
4
5
|
import { api, id } from "../../versioning/debian/index.js";
|
|
5
6
|
import { id as id$1 } from "../../versioning/ubuntu/index.js";
|
|
6
7
|
import { DockerDatasource } from "../../datasource/docker/index.js";
|
|
@@ -76,11 +77,17 @@ function splitImageParts(currentFrom) {
|
|
|
76
77
|
const quayRegex = regEx(/^quay\.io(?::[1-9][0-9]{0,4})?/i);
|
|
77
78
|
function getDep(currentFrom, specifyReplaceString = true, registryAliases) {
|
|
78
79
|
if (!isString(currentFrom) || !isNonEmptyStringAndNotWhitespace(currentFrom)) return { skipReason: "invalid-value" };
|
|
79
|
-
for (const [name, value] of Object.entries(coerceObject(registryAliases)))
|
|
80
|
-
const
|
|
81
|
-
|
|
80
|
+
for (const [name, value] of Object.entries(coerceObject(registryAliases))) {
|
|
81
|
+
const matchedWithSlash = currentFrom.startsWith(`${name}/`);
|
|
82
|
+
const matchedAtBoundary = name.endsWith("}") && currentFrom.startsWith(name);
|
|
83
|
+
if (!matchedWithSlash && !matchedAtBoundary) continue;
|
|
84
|
+
const depName = currentFrom.slice(matchedWithSlash ? name.length + 1 : name.length);
|
|
85
|
+
const valueWithSlash = value ? ensureTrailingSlash(value) : "";
|
|
86
|
+
const dep = getDep(`${valueWithSlash}${depName}`, false);
|
|
87
|
+
if (dep.depName?.startsWith(valueWithSlash)) {
|
|
82
88
|
dep.packageName = dep.depName;
|
|
83
|
-
|
|
89
|
+
const [imageAndTag] = currentFrom.split("@");
|
|
90
|
+
dep.depName = dep.currentValue ? imageAndTag.substring(0, imageAndTag.lastIndexOf(":")) : imageAndTag;
|
|
84
91
|
}
|
|
85
92
|
if (specifyReplaceString) {
|
|
86
93
|
dep.replaceString = currentFrom;
|