renovate 40.0.0-next.40 → 40.0.0-next.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/options/index.js +13 -0
- package/dist/config/options/index.js.map +1 -1
- package/dist/config/presets/common.js +1 -0
- package/dist/config/presets/common.js.map +1 -1
- package/dist/config/presets/internal/custom-managers.js +15 -0
- package/dist/config/presets/internal/custom-managers.js.map +1 -1
- package/dist/constants/platforms.js +5 -1
- package/dist/constants/platforms.js.map +1 -1
- package/dist/data/monorepo.json +3 -1
- package/dist/data-files.generated.js +2 -2
- package/dist/data-files.generated.js.map +1 -1
- package/dist/instrumentation/index.js +28 -8
- package/dist/instrumentation/index.js.map +1 -1
- package/dist/modules/datasource/api.js +2 -0
- package/dist/modules/datasource/api.js.map +1 -1
- package/dist/modules/datasource/azure-pipelines-tasks/index.js +4 -0
- package/dist/modules/datasource/azure-pipelines-tasks/index.js.map +1 -1
- package/dist/modules/datasource/azure-pipelines-tasks/schema.d.ts +8 -0
- package/dist/modules/datasource/azure-pipelines-tasks/schema.js +1 -0
- package/dist/modules/datasource/azure-pipelines-tasks/schema.js.map +1 -1
- package/dist/modules/datasource/bazel/index.js +18 -1
- package/dist/modules/datasource/bazel/index.js.map +1 -1
- package/dist/modules/datasource/bazel/schema.d.ts +1 -0
- package/dist/modules/datasource/bazel/schema.js.map +1 -1
- package/dist/modules/datasource/bitbucket-server-tags/index.d.ts +19 -0
- package/dist/modules/datasource/bitbucket-server-tags/index.js +133 -0
- package/dist/modules/datasource/bitbucket-server-tags/index.js.map +1 -0
- package/dist/modules/datasource/bitbucket-server-tags/schema.d.ts +28 -0
- package/dist/modules/datasource/bitbucket-server-tags/schema.js +13 -0
- package/dist/modules/datasource/bitbucket-server-tags/schema.js.map +1 -0
- package/dist/modules/datasource/conda/prefix-dev.js +1 -3
- package/dist/modules/datasource/conda/prefix-dev.js.map +1 -1
- package/dist/modules/datasource/cpan/index.js +1 -3
- package/dist/modules/datasource/cpan/index.js.map +1 -1
- package/dist/modules/datasource/custom/schema.d.ts +3 -3
- package/dist/modules/datasource/deb/index.d.ts +4 -5
- package/dist/modules/datasource/deb/index.js +8 -9
- package/dist/modules/datasource/deb/index.js.map +1 -1
- package/dist/modules/datasource/deb/url.d.ts +3 -3
- package/dist/modules/datasource/deb/url.js +17 -13
- package/dist/modules/datasource/deb/url.js.map +1 -1
- package/dist/modules/datasource/docker/schema.d.ts +72 -96
- package/dist/modules/datasource/github-runners/index.js +2 -2
- package/dist/modules/datasource/github-runners/index.js.map +1 -1
- package/dist/modules/datasource/metadata.js +9 -1
- package/dist/modules/datasource/metadata.js.map +1 -1
- package/dist/modules/datasource/npm/get.d.ts +0 -1
- package/dist/modules/datasource/npm/get.js +14 -68
- package/dist/modules/datasource/npm/get.js.map +1 -1
- package/dist/modules/datasource/npm/types.d.ts +0 -8
- package/dist/modules/datasource/npm/types.js.map +1 -1
- package/dist/modules/datasource/packagist/schema.d.ts +7 -7
- package/dist/modules/datasource/types.d.ts +1 -0
- package/dist/modules/datasource/types.js.map +1 -1
- package/dist/modules/manager/argocd/schema.d.ts +12 -12
- package/dist/modules/manager/bazel-module/parser/maven.d.ts +6 -52
- package/dist/modules/manager/bazel-module/parser/oci.d.ts +3 -26
- package/dist/modules/manager/bazel-module/rules.d.ts +15 -125
- package/dist/modules/manager/bun/extract.d.ts +1 -0
- package/dist/modules/manager/bun/extract.js +53 -27
- package/dist/modules/manager/bun/extract.js.map +1 -1
- package/dist/modules/manager/bun/index.js +1 -1
- package/dist/modules/manager/bun/index.js.map +1 -1
- package/dist/modules/manager/bun/utils.d.ts +2 -0
- package/dist/modules/manager/bun/utils.js +22 -0
- package/dist/modules/manager/bun/utils.js.map +1 -0
- package/dist/modules/manager/cargo/schema.d.ts +3 -3
- package/dist/modules/manager/circleci/extract.js +21 -30
- package/dist/modules/manager/circleci/extract.js.map +1 -1
- package/dist/modules/manager/circleci/schema.d.ts +33 -144
- package/dist/modules/manager/circleci/schema.js +21 -17
- package/dist/modules/manager/circleci/schema.js.map +1 -1
- package/dist/modules/manager/composer/schema.d.ts +6 -8
- package/dist/modules/manager/conan/artifacts.d.ts +2 -0
- package/dist/modules/manager/conan/artifacts.js +76 -0
- package/dist/modules/manager/conan/artifacts.js.map +1 -0
- package/dist/modules/manager/conan/index.d.ts +2 -0
- package/dist/modules/manager/conan/index.js +4 -1
- package/dist/modules/manager/conan/index.js.map +1 -1
- package/dist/modules/manager/devbox/artifacts.js +7 -0
- package/dist/modules/manager/devbox/artifacts.js.map +1 -1
- package/dist/modules/manager/dockerfile/extract.js +2 -6
- package/dist/modules/manager/dockerfile/extract.js.map +1 -1
- package/dist/modules/manager/fingerprint.generated.js +10 -10
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/flux/schema.d.ts +36 -60
- package/dist/modules/manager/gomod/artifacts-extra.js +12 -4
- package/dist/modules/manager/gomod/artifacts-extra.js.map +1 -1
- package/dist/modules/manager/gomod/update.js +3 -1
- package/dist/modules/manager/gomod/update.js.map +1 -1
- package/dist/modules/manager/gradle/extract.js +8 -13
- package/dist/modules/manager/gradle/extract.js.map +1 -1
- package/dist/modules/manager/gradle/parser/handlers.js +8 -0
- package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
- package/dist/modules/manager/gradle/parser/registry-urls.js +36 -10
- package/dist/modules/manager/gradle/parser/registry-urls.js.map +1 -1
- package/dist/modules/manager/gradle/types.d.ts +1 -0
- package/dist/modules/manager/gradle/types.js.map +1 -1
- package/dist/modules/manager/maven/extract.js +1 -3
- package/dist/modules/manager/maven/extract.js.map +1 -1
- package/dist/modules/manager/nix/schema.d.ts +14 -14
- package/dist/modules/manager/nix/schema.js +1 -0
- package/dist/modules/manager/nix/schema.js.map +1 -1
- package/dist/modules/manager/npm/extract/common/package-file.js +1 -0
- package/dist/modules/manager/npm/extract/common/package-file.js.map +1 -1
- package/dist/modules/manager/nuget/extract.js +21 -18
- package/dist/modules/manager/nuget/extract.js.map +1 -1
- package/dist/modules/manager/pep621/schema.d.ts +292 -5
- package/dist/modules/manager/pip_requirements/common.js +2 -6
- package/dist/modules/manager/pip_requirements/common.js.map +1 -1
- package/dist/modules/manager/pixi/artifacts.js +4 -10
- package/dist/modules/manager/pixi/artifacts.js.map +1 -1
- package/dist/modules/manager/pixi/extract.d.ts +2 -0
- package/dist/modules/manager/pixi/extract.js +81 -3
- package/dist/modules/manager/pixi/extract.js.map +1 -1
- package/dist/modules/manager/pixi/index.d.ts +0 -1
- package/dist/modules/manager/pixi/index.js +1 -3
- package/dist/modules/manager/pixi/index.js.map +1 -1
- package/dist/modules/manager/pixi/schema.d.ts +394 -3
- package/dist/modules/manager/pixi/schema.js +135 -2
- package/dist/modules/manager/pixi/schema.js.map +1 -1
- package/dist/modules/manager/sveltos/schema.d.ts +18 -30
- package/dist/modules/manager/terraform/util.js +1 -3
- package/dist/modules/manager/terraform/util.js.map +1 -1
- package/dist/modules/manager/vendir/schema.d.ts +3 -3
- package/dist/modules/platform/bitbucket/schema.d.ts +3 -3
- package/dist/modules/platform/bitbucket-server/schema.d.ts +1 -0
- package/dist/modules/platform/bitbucket-server/schema.js +2 -1
- package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
- package/dist/modules/platform/gerrit/client.d.ts +0 -3
- package/dist/modules/platform/gerrit/client.js +8 -28
- package/dist/modules/platform/gerrit/client.js.map +1 -1
- package/dist/modules/platform/gerrit/index.js +0 -6
- package/dist/modules/platform/gerrit/index.js.map +1 -1
- package/dist/modules/platform/gerrit/scm.js +5 -6
- package/dist/modules/platform/gerrit/scm.js.map +1 -1
- package/dist/modules/platform/gerrit/types.d.ts +1 -4
- package/dist/modules/platform/gerrit/types.js.map +1 -1
- package/dist/modules/platform/gerrit/utils.d.ts +3 -2
- package/dist/modules/platform/gerrit/utils.js +3 -7
- package/dist/modules/platform/gerrit/utils.js.map +1 -1
- package/dist/modules/platform/gitea/index.js +7 -9
- package/dist/modules/platform/gitea/index.js.map +1 -1
- package/dist/modules/platform/github/issue.d.ts +6 -6
- package/dist/modules/platform/github/schema.d.ts +52 -52
- package/dist/modules/platform/gitlab/index.js +2 -6
- package/dist/modules/platform/gitlab/index.js.map +1 -1
- package/dist/modules/versioning/distro.js +1 -3
- package/dist/modules/versioning/distro.js.map +1 -1
- package/dist/util/cache/package/types.d.ts +1 -1
- package/dist/util/cache/package/types.js.map +1 -1
- package/dist/util/cache/repository/impl/base.js +4 -0
- package/dist/util/cache/repository/impl/base.js.map +1 -1
- package/dist/util/common.d.ts +4 -2
- package/dist/util/common.js +17 -3
- package/dist/util/common.js.map +1 -1
- package/dist/util/exec/containerbase.js +2 -3
- package/dist/util/exec/containerbase.js.map +1 -1
- package/dist/util/git/auth.js +8 -5
- package/dist/util/git/auth.js.map +1 -1
- package/dist/util/git/index.js +2 -6
- package/dist/util/git/index.js.map +1 -1
- package/dist/util/git/private-key.js +1 -3
- package/dist/util/git/private-key.js.map +1 -1
- package/dist/util/git/types.d.ts +2 -0
- package/dist/util/git/types.js.map +1 -1
- package/dist/util/git/url.js +1 -1
- package/dist/util/git/url.js.map +1 -1
- package/dist/util/github/graphql/datasource-fetcher.js +3 -5
- package/dist/util/github/graphql/datasource-fetcher.js.map +1 -1
- package/dist/util/http/bitbucket-server.d.ts +2 -1
- package/dist/util/http/bitbucket-server.js +5 -3
- package/dist/util/http/bitbucket-server.js.map +1 -1
- package/dist/util/http/cache/package-http-cache-provider.d.ts +23 -0
- package/dist/util/http/cache/package-http-cache-provider.js +80 -0
- package/dist/util/http/cache/package-http-cache-provider.js.map +1 -0
- package/dist/util/http/host-rules.js +12 -0
- package/dist/util/http/host-rules.js.map +1 -1
- package/dist/util/schema-utils.d.ts +1 -0
- package/dist/util/schema-utils.js +43 -8
- package/dist/util/schema-utils.js.map +1 -1
- package/dist/util/string.d.ts +1 -0
- package/dist/util/string.js +4 -0
- package/dist/util/string.js.map +1 -1
- package/dist/util/yaml.js +2 -3
- package/dist/util/yaml.js.map +1 -1
- package/dist/workers/global/config/parse/index.js +10 -0
- package/dist/workers/global/config/parse/index.js.map +1 -1
- package/dist/workers/global/index.js +4 -2
- package/dist/workers/global/index.js.map +1 -1
- package/dist/workers/repository/process/lookup/index.js +2 -0
- package/dist/workers/repository/process/lookup/index.js.map +1 -1
- package/dist/workers/repository/process/lookup/timestamps.d.ts +18 -0
- package/dist/workers/repository/process/lookup/timestamps.js +69 -0
- package/dist/workers/repository/process/lookup/timestamps.js.map +1 -0
- package/dist/workers/repository/process/lookup/types.d.ts +1 -0
- package/dist/workers/repository/process/lookup/types.js.map +1 -1
- package/dist/workers/repository/process/lookup/utils.js +20 -9
- package/dist/workers/repository/process/lookup/utils.js.map +1 -1
- package/dist/workers/repository/process/sort.js +1 -1
- package/dist/workers/repository/process/sort.js.map +1 -1
- package/dist/workers/repository/reconfigure/utils.d.ts +2 -0
- package/dist/workers/repository/reconfigure/utils.js +16 -0
- package/dist/workers/repository/reconfigure/utils.js.map +1 -1
- package/dist/workers/repository/reconfigure/validate.js +5 -17
- package/dist/workers/repository/reconfigure/validate.js.map +1 -1
- package/dist/workers/repository/update/branch/auto-replace.js +25 -5
- package/dist/workers/repository/update/branch/auto-replace.js.map +1 -1
- package/dist/workers/repository/update/branch/commit.js +2 -0
- package/dist/workers/repository/update/branch/commit.js.map +1 -1
- package/dist/workers/repository/update/pr/body/config-description.js +26 -1
- package/dist/workers/repository/update/pr/body/config-description.js.map +1 -1
- package/dist/workers/repository/update/pr/body/index.js +21 -14
- package/dist/workers/repository/update/pr/body/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/api.js +8 -6
- package/dist/workers/repository/update/pr/changelog/api.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.d.ts +3 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.js +39 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.js.map +1 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.d.ts +8 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.js +31 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.js.map +1 -0
- package/dist/workers/repository/update/pr/changelog/release-notes.js +12 -8
- package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/source.d.ts +1 -1
- package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/types.d.ts +1 -1
- package/dist/workers/repository/update/pr/changelog/types.js.map +1 -1
- package/dist/workers/repository/update/pr/index.js +2 -4
- package/dist/workers/repository/update/pr/index.js.map +1 -1
- package/dist/workers/repository/updates/generate.js +2 -0
- package/dist/workers/repository/updates/generate.js.map +1 -1
- package/package.json +40 -37
- package/renovate-schema.json +9 -2
- package/dist/modules/manager/pixi/lockfile.d.ts +0 -6
- package/dist/modules/manager/pixi/lockfile.js +0 -25
- package/dist/modules/manager/pixi/lockfile.js.map +0 -1
@@ -22,15 +22,22 @@ function getExtraDeps(goModBefore, goModAfter, excludeDeps) {
|
|
22
22
|
if (!res) {
|
23
23
|
continue;
|
24
24
|
}
|
25
|
-
const { depName, currentValue } = res;
|
25
|
+
const { depName, depType, currentValue } = res;
|
26
26
|
if (!depName || !currentValue) {
|
27
27
|
continue;
|
28
28
|
}
|
29
|
+
let expandedDepName = depName;
|
30
|
+
// NOTE: Right now the only special depType we care about is 'toolchain' because the table
|
31
|
+
// rendering prior to this change was ambiguous with regards to go version vs toolchain
|
32
|
+
// version updates.
|
33
|
+
if (depType === 'toolchain') {
|
34
|
+
expandedDepName = `${depName} (${depType})`;
|
35
|
+
}
|
29
36
|
if (added) {
|
30
|
-
addDeps[
|
37
|
+
addDeps[expandedDepName] = currentValue;
|
31
38
|
}
|
32
39
|
else {
|
33
|
-
rmDeps[
|
40
|
+
rmDeps[expandedDepName] = currentValue;
|
34
41
|
}
|
35
42
|
}
|
36
43
|
for (const [depName, currentValue] of Object.entries(rmDeps)) {
|
@@ -73,7 +80,8 @@ function getExtraDepsNotice(goModBefore, goModAfter, excludeDeps) {
|
|
73
80
|
'\n',
|
74
81
|
];
|
75
82
|
const goUpdated = extraDeps.some(({ depName }) => depName === 'go');
|
76
|
-
const
|
83
|
+
const toolchainUpdated = extraDeps.some(({ depName }) => depName === 'go (toolchain)');
|
84
|
+
const otherDepsCount = extraDeps.length - (goUpdated ? 1 : 0) - (toolchainUpdated ? 1 : 0);
|
77
85
|
if (otherDepsCount === 1) {
|
78
86
|
noticeLines.push(`- ${otherDepsCount} additional dependency was updated`);
|
79
87
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"artifacts-extra.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gomod/artifacts-extra.ts"],"names":[],"mappings":";;AAKA,
|
1
|
+
{"version":3,"file":"artifacts-extra.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gomod/artifacts-extra.ts"],"names":[],"mappings":"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","sourcesContent":["import { diffLines } from 'diff';\nimport markdownTable from 'markdown-table';\nimport { parseLine } from './line-parser';\nimport type { ExtraDep } from './types';\n\nexport function getExtraDeps(\n goModBefore: string,\n goModAfter: string,\n excludeDeps: string[],\n): ExtraDep[] {\n const result: ExtraDep[] = [];\n\n const diff = diffLines(goModBefore, goModAfter, {\n newlineIsToken: true,\n });\n\n const addDeps: Record<string, string> = {};\n const rmDeps: Record<string, string> = {};\n for (const { added, removed, value } of diff) {\n if (!added && !removed) {\n continue;\n }\n\n const res = parseLine(value);\n if (!res) {\n continue;\n }\n\n const { depName, depType, currentValue } = res;\n if (!depName || !currentValue) {\n continue;\n }\n\n let expandedDepName = depName;\n // NOTE: Right now the only special depType we care about is 'toolchain' because the table\n // rendering prior to this change was ambiguous with regards to go version vs toolchain\n // version updates.\n if (depType === 'toolchain') {\n expandedDepName = `${depName} (${depType})`;\n }\n\n if (added) {\n addDeps[expandedDepName] = currentValue;\n } else {\n rmDeps[expandedDepName] = currentValue;\n }\n }\n\n for (const [depName, currentValue] of Object.entries(rmDeps)) {\n if (excludeDeps.includes(depName)) {\n continue;\n }\n\n const newValue = addDeps[depName];\n if (newValue) {\n result.push({\n depName,\n currentValue,\n newValue,\n });\n }\n }\n\n return result;\n}\n\nexport function extraDepsTable(extraDeps: ExtraDep[]): string {\n const tableLines: string[][] = [];\n\n tableLines.push(['**Package**', '**Change**']);\n\n for (const { depName, currentValue, newValue } of extraDeps) {\n const depNameQuoted = `\\`${depName}\\``;\n const versionChangeQuoted = `\\`${currentValue}\\` -> \\`${newValue}\\``;\n tableLines.push([depNameQuoted, versionChangeQuoted]);\n }\n\n return markdownTable(tableLines, {\n align: ['l', 'l'],\n });\n}\n\nexport function getExtraDepsNotice(\n goModBefore: string | null,\n goModAfter: string | null,\n excludeDeps: string[],\n): string | null {\n if (!goModBefore || !goModAfter) {\n return null;\n }\n\n const extraDeps = getExtraDeps(goModBefore, goModAfter, excludeDeps);\n if (extraDeps.length === 0) {\n return null;\n }\n\n const noticeLines: string[] = [\n 'In order to perform the update(s) described in the table above, Renovate ran the `go get` command, which resulted in the following additional change(s):',\n '\\n',\n ];\n\n const goUpdated = extraDeps.some(({ depName }) => depName === 'go');\n const toolchainUpdated = extraDeps.some(\n ({ depName }) => depName === 'go (toolchain)',\n );\n const otherDepsCount =\n extraDeps.length - (goUpdated ? 1 : 0) - (toolchainUpdated ? 1 : 0);\n\n if (otherDepsCount === 1) {\n noticeLines.push(`- ${otherDepsCount} additional dependency was updated`);\n } else if (otherDepsCount > 1) {\n noticeLines.push(\n `- ${otherDepsCount} additional dependencies were updated`,\n );\n }\n\n if (goUpdated) {\n noticeLines.push(\n '- The `go` directive was updated for compatibility reasons',\n );\n }\n\n noticeLines.push('\\n');\n noticeLines.push('Details:');\n noticeLines.push('\\n');\n noticeLines.push(extraDepsTable(extraDeps));\n\n return noticeLines.join('\\n');\n}\n"]}
|
@@ -5,7 +5,9 @@ exports.updateDependency = updateDependency;
|
|
5
5
|
const logger_1 = require("../../../logger");
|
6
6
|
const regex_1 = require("../../../util/regex");
|
7
7
|
function getNameWithNoVersion(name) {
|
8
|
-
|
8
|
+
// remove version suffixes like /v1 or /v2
|
9
|
+
let nameNoVersion = name.replace((0, regex_1.regEx)(/\/v\d+$/), '');
|
10
|
+
// gopkg.in is a special case where the major version is added with a dot rather than a slash
|
9
11
|
if (nameNoVersion.startsWith('gopkg.in')) {
|
10
12
|
nameNoVersion = nameNoVersion.replace((0, regex_1.regEx)(/\.v\d+$/), '');
|
11
13
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gomod/update.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: types (#22198)\nimport { logger } from '../../../logger';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport type { UpdateDependencyConfig } from '../types';\n\nfunction getNameWithNoVersion(name: string): string {\n let nameNoVersion = name.split('/').slice(0, 3).join('/');\n if (nameNoVersion.startsWith('gopkg.in')) {\n nameNoVersion = nameNoVersion.replace(regEx(/\\.v\\d+$/), '');\n }\n return nameNoVersion;\n}\n\nexport function updateDependency({\n fileContent,\n upgrade,\n}: UpdateDependencyConfig): string | null {\n try {\n logger.debug(`gomod.updateDependency: ${upgrade.newValue}`);\n const { depType, updateType } = upgrade;\n const currentName = upgrade.depName;\n if (updateType === 'replacement') {\n logger.warn('gomod manager does not support replacement updates yet');\n return null;\n }\n /* v8 ignore next 3 -- should never happen */\n if (!currentName || !upgrade.managerData) {\n return null;\n }\n const currentNameNoVersion = getNameWithNoVersion(currentName);\n const lines = fileContent.split(newlineRegex);\n /* v8 ignore next 4 -- hard to test */\n if (lines.length <= upgrade.managerData.lineNumber) {\n logger.warn('go.mod current line no longer exists after update');\n return null;\n }\n const lineToChange = lines[upgrade.managerData.lineNumber];\n logger.trace({ upgrade, lineToChange }, 'go.mod current line');\n if (\n !lineToChange.includes(currentNameNoVersion) &&\n !lineToChange.includes('rethinkdb/rethinkdb-go.v5')\n ) {\n logger.debug(\n { lineToChange, depName: currentName },\n \"go.mod current line doesn't contain dependency\",\n );\n return null;\n }\n let updateLineExp: RegExp | undefined;\n\n if (depType === 'golang' || depType === 'toolchain') {\n updateLineExp = regEx(\n /(?<depPart>(?:toolchain )?go)(?<divider>\\s*)([^\\s]+|[\\w]+)/,\n );\n }\n if (depType === 'replace') {\n if (upgrade.managerData.multiLine) {\n updateLineExp = regEx(\n /^(?<depPart>\\s+[^\\s]+[\\s]+[=][>]+\\s+)(?<divider>[^\\s]+\\s+)[^\\s]+/,\n );\n } else {\n updateLineExp = regEx(\n /^(?<depPart>replace\\s+[^\\s]+[\\s]+[=][>]+\\s+)(?<divider>[^\\s]+\\s+)[^\\s]+/,\n );\n }\n } else if (depType === 'require' || depType === 'indirect') {\n if (upgrade.managerData.multiLine) {\n updateLineExp = regEx(/^(?<depPart>\\s+[^\\s]+)(?<divider>\\s+)[^\\s]+/);\n } else {\n updateLineExp = regEx(\n /^(?<depPart>require\\s+[^\\s]+)(?<divider>\\s+)[^\\s]+/,\n );\n }\n }\n if (updateLineExp && !updateLineExp.test(lineToChange)) {\n logger.debug('No line found to update');\n return null;\n }\n let newLine: string;\n if (upgrade.updateType === 'digest') {\n const newDigestRightSized = upgrade.newDigest!.substring(\n 0,\n upgrade.currentDigest!.length,\n );\n if (lineToChange.includes(newDigestRightSized)) {\n return fileContent;\n }\n logger.debug(\n { depName: currentName, lineToChange, newDigestRightSized },\n 'gomod: need to update digest',\n );\n newLine = lineToChange.replace(\n // TODO: can be undefined? (#22198)\n updateLineExp!,\n `$<depPart>$<divider>${newDigestRightSized}`,\n );\n } else {\n newLine = lineToChange.replace(\n // TODO: can be undefined? (#22198)\n updateLineExp!,\n `$<depPart>$<divider>${upgrade.newValue}`,\n );\n }\n if (upgrade.updateType === 'major') {\n logger.debug(`gomod: major update for ${currentName}`);\n if (currentName.startsWith('gopkg.in/')) {\n const oldV = currentName.split('.').pop();\n newLine = newLine.replace(`.${oldV}`, `.v${upgrade.newMajor}`);\n // Package renames - I couldn't think of a better place to do this\n newLine = newLine.replace(\n 'gorethink/gorethink.v5',\n 'rethinkdb/rethinkdb-go.v5',\n );\n } else if (\n upgrade.newMajor! > 1 &&\n !newLine.includes(`/v${upgrade.newMajor}`) &&\n !upgrade.newValue!.endsWith('+incompatible')\n ) {\n if (currentName === currentNameNoVersion) {\n // If package currently has no version, pin to latest one.\n newLine = newLine.replace(\n currentName,\n `${currentName}/v${upgrade.newMajor}`,\n );\n } else {\n // Replace version\n const [oldV] = upgrade.currentValue!.split('.');\n newLine = newLine.replace(\n regEx(`/${oldV}(\\\\s+)`, undefined, false),\n `/v${upgrade.newMajor}$1`,\n );\n }\n }\n }\n if (\n lineToChange.endsWith('+incompatible') &&\n !upgrade.newValue?.endsWith('+incompatible')\n ) {\n let toAdd = '+incompatible';\n\n if (upgrade.updateType === 'major' && upgrade.newMajor! >= 2) {\n toAdd = '';\n }\n newLine += toAdd;\n }\n if (newLine === lineToChange) {\n logger.debug('No changes necessary');\n return fileContent;\n }\n\n if (depType === 'indirect') {\n newLine = newLine.replace(\n regEx(/\\s*(?:\\/\\/\\s*indirect(?:\\s*;)?\\s*)*$/),\n ' // indirect',\n );\n }\n\n lines[upgrade.managerData.lineNumber] = newLine;\n return lines.join('\\n');\n } catch (err) {\n logger.debug({ err }, 'Error setting new go.mod version');\n return null;\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gomod/update.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: types (#22198)\nimport { logger } from '../../../logger';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport type { UpdateDependencyConfig } from '../types';\n\nfunction getNameWithNoVersion(name: string): string {\n // remove version suffixes like /v1 or /v2\n let nameNoVersion = name.replace(regEx(/\\/v\\d+$/), '');\n // gopkg.in is a special case where the major version is added with a dot rather than a slash\n if (nameNoVersion.startsWith('gopkg.in')) {\n nameNoVersion = nameNoVersion.replace(regEx(/\\.v\\d+$/), '');\n }\n return nameNoVersion;\n}\n\nexport function updateDependency({\n fileContent,\n upgrade,\n}: UpdateDependencyConfig): string | null {\n try {\n logger.debug(`gomod.updateDependency: ${upgrade.newValue}`);\n const { depType, updateType } = upgrade;\n const currentName = upgrade.depName;\n if (updateType === 'replacement') {\n logger.warn('gomod manager does not support replacement updates yet');\n return null;\n }\n /* v8 ignore next 3 -- should never happen */\n if (!currentName || !upgrade.managerData) {\n return null;\n }\n const currentNameNoVersion = getNameWithNoVersion(currentName);\n const lines = fileContent.split(newlineRegex);\n /* v8 ignore next 4 -- hard to test */\n if (lines.length <= upgrade.managerData.lineNumber) {\n logger.warn('go.mod current line no longer exists after update');\n return null;\n }\n const lineToChange = lines[upgrade.managerData.lineNumber];\n logger.trace({ upgrade, lineToChange }, 'go.mod current line');\n if (\n !lineToChange.includes(currentNameNoVersion) &&\n !lineToChange.includes('rethinkdb/rethinkdb-go.v5')\n ) {\n logger.debug(\n { lineToChange, depName: currentName },\n \"go.mod current line doesn't contain dependency\",\n );\n return null;\n }\n let updateLineExp: RegExp | undefined;\n\n if (depType === 'golang' || depType === 'toolchain') {\n updateLineExp = regEx(\n /(?<depPart>(?:toolchain )?go)(?<divider>\\s*)([^\\s]+|[\\w]+)/,\n );\n }\n if (depType === 'replace') {\n if (upgrade.managerData.multiLine) {\n updateLineExp = regEx(\n /^(?<depPart>\\s+[^\\s]+[\\s]+[=][>]+\\s+)(?<divider>[^\\s]+\\s+)[^\\s]+/,\n );\n } else {\n updateLineExp = regEx(\n /^(?<depPart>replace\\s+[^\\s]+[\\s]+[=][>]+\\s+)(?<divider>[^\\s]+\\s+)[^\\s]+/,\n );\n }\n } else if (depType === 'require' || depType === 'indirect') {\n if (upgrade.managerData.multiLine) {\n updateLineExp = regEx(/^(?<depPart>\\s+[^\\s]+)(?<divider>\\s+)[^\\s]+/);\n } else {\n updateLineExp = regEx(\n /^(?<depPart>require\\s+[^\\s]+)(?<divider>\\s+)[^\\s]+/,\n );\n }\n }\n if (updateLineExp && !updateLineExp.test(lineToChange)) {\n logger.debug('No line found to update');\n return null;\n }\n let newLine: string;\n if (upgrade.updateType === 'digest') {\n const newDigestRightSized = upgrade.newDigest!.substring(\n 0,\n upgrade.currentDigest!.length,\n );\n if (lineToChange.includes(newDigestRightSized)) {\n return fileContent;\n }\n logger.debug(\n { depName: currentName, lineToChange, newDigestRightSized },\n 'gomod: need to update digest',\n );\n newLine = lineToChange.replace(\n // TODO: can be undefined? (#22198)\n updateLineExp!,\n `$<depPart>$<divider>${newDigestRightSized}`,\n );\n } else {\n newLine = lineToChange.replace(\n // TODO: can be undefined? (#22198)\n updateLineExp!,\n `$<depPart>$<divider>${upgrade.newValue}`,\n );\n }\n if (upgrade.updateType === 'major') {\n logger.debug(`gomod: major update for ${currentName}`);\n if (currentName.startsWith('gopkg.in/')) {\n const oldV = currentName.split('.').pop();\n newLine = newLine.replace(`.${oldV}`, `.v${upgrade.newMajor}`);\n // Package renames - I couldn't think of a better place to do this\n newLine = newLine.replace(\n 'gorethink/gorethink.v5',\n 'rethinkdb/rethinkdb-go.v5',\n );\n } else if (\n upgrade.newMajor! > 1 &&\n !newLine.includes(`/v${upgrade.newMajor}`) &&\n !upgrade.newValue!.endsWith('+incompatible')\n ) {\n if (currentName === currentNameNoVersion) {\n // If package currently has no version, pin to latest one.\n newLine = newLine.replace(\n currentName,\n `${currentName}/v${upgrade.newMajor}`,\n );\n } else {\n // Replace version\n const [oldV] = upgrade.currentValue!.split('.');\n newLine = newLine.replace(\n regEx(`/${oldV}(\\\\s+)`, undefined, false),\n `/v${upgrade.newMajor}$1`,\n );\n }\n }\n }\n if (\n lineToChange.endsWith('+incompatible') &&\n !upgrade.newValue?.endsWith('+incompatible')\n ) {\n let toAdd = '+incompatible';\n\n if (upgrade.updateType === 'major' && upgrade.newMajor! >= 2) {\n toAdd = '';\n }\n newLine += toAdd;\n }\n if (newLine === lineToChange) {\n logger.debug('No changes necessary');\n return fileContent;\n }\n\n if (depType === 'indirect') {\n newLine = newLine.replace(\n regEx(/\\s*(?:\\/\\/\\s*indirect(?:\\s*;)?\\s*)*$/),\n ' // indirect',\n );\n }\n\n lines[upgrade.managerData.lineNumber] = newLine;\n return lines.join('\\n');\n } catch (err) {\n logger.debug({ err }, 'Error setting new go.mod version');\n return null;\n }\n}\n"]}
|
@@ -96,10 +96,9 @@ function matchesContentDescriptor(dep, contentDescriptors) {
|
|
96
96
|
}
|
97
97
|
function getRegistryUrlsForDep(packageRegistries, dep) {
|
98
98
|
const scope = dep.depType === 'plugin' ? 'plugin' : 'dep';
|
99
|
-
const
|
100
|
-
|
101
|
-
|
102
|
-
.map((item) => item.registryUrl);
|
99
|
+
const matchingRegistries = packageRegistries.filter((item) => item.scope === scope && matchesContentDescriptor(dep, item.content));
|
100
|
+
const exclusiveRegistries = matchingRegistries.filter((item) => item.registryType === 'exclusive');
|
101
|
+
const registryUrls = (exclusiveRegistries.length ? exclusiveRegistries : matchingRegistries).map((item) => item.registryUrl);
|
103
102
|
if (!registryUrls.length && scope === 'plugin') {
|
104
103
|
registryUrls.push(common_1.REGISTRY_URLS.gradlePluginPortal);
|
105
104
|
}
|
@@ -176,17 +175,13 @@ async function extractAllPackageFiles(config, packageFiles) {
|
|
176
175
|
deps: [],
|
177
176
|
};
|
178
177
|
}
|
179
|
-
|
180
|
-
dep.datasource = mavenDatasource;
|
181
|
-
}
|
178
|
+
dep.datasource ??= mavenDatasource;
|
182
179
|
if (dep.datasource === mavenDatasource) {
|
183
180
|
dep.registryUrls = getRegistryUrlsForDep(packageRegistries, dep);
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
: 'dependencies';
|
189
|
-
}
|
181
|
+
dep.depType ??=
|
182
|
+
key.startsWith('buildSrc') && !kotlinSourceFiles.length
|
183
|
+
? 'devDependencies'
|
184
|
+
: 'dependencies';
|
190
185
|
}
|
191
186
|
const depAlreadyInPkgFile = pkgFile.deps.some((item) => item.depName === dep.depName &&
|
192
187
|
item.managerData?.fileReplacePosition ===
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gradle/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import upath from 'upath';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { getLocalFiles } from '../../../util/fs';\nimport { regEx } from '../../../util/regex';\nimport { MavenDatasource } from '../../datasource/maven';\nimport gradleVersioning from '../../versioning/gradle';\nimport type { ExtractConfig, PackageDependency, PackageFile } from '../types';\nimport { parseCatalog } from './extract/catalog';\nimport {\n isGcvPropsFile,\n parseGcv,\n usesGcv,\n} from './extract/consistent-versions-plugin';\nimport { parseGradle, parseKotlinSource, parseProps } from './parser';\nimport { REGISTRY_URLS } from './parser/common';\nimport type {\n ContentDescriptorSpec,\n GradleManagerData,\n PackageRegistry,\n VariableRegistry,\n} from './types';\nimport {\n getVars,\n isGradleScriptFile,\n isKotlinSourceFile,\n isPropsFile,\n isTOMLFile,\n reorderFiles,\n toAbsolutePath,\n updateVars,\n} from './utils';\n\nconst mavenDatasource = MavenDatasource.id;\n\nfunction updatePackageRegistries(\n packageRegistries: PackageRegistry[],\n urls: PackageRegistry[],\n): void {\n for (const url of urls) {\n const registryAlreadyKnown = packageRegistries.some(\n (item) =>\n item.registryUrl === url.registryUrl && item.scope === url.scope,\n );\n if (!registryAlreadyKnown) {\n packageRegistries.push(url);\n }\n }\n}\n\nexport function matchesContentDescriptor(\n dep: PackageDependency<GradleManagerData>,\n contentDescriptors?: ContentDescriptorSpec[],\n): boolean {\n const [groupId, artifactId] = (dep.packageName ?? dep.depName!).split(':');\n let hasIncludes = false;\n let hasExcludes = false;\n let matchesInclude = false;\n let matchesExclude = false;\n\n for (const content of coerceArray(contentDescriptors)) {\n const {\n mode,\n matcher,\n groupId: contentGroupId,\n artifactId: contentArtifactId,\n version: contentVersion,\n } = content;\n\n // group matching\n let groupMatch = false;\n if (matcher === 'regex') {\n groupMatch = regEx(contentGroupId).test(groupId);\n } else if (matcher === 'subgroup') {\n groupMatch =\n groupId === contentGroupId || `${groupId}.`.startsWith(contentGroupId);\n } else {\n groupMatch = groupId === contentGroupId;\n }\n\n // artifact matching (optional)\n let artifactMatch = true;\n if (groupMatch && contentArtifactId) {\n if (matcher === 'regex') {\n artifactMatch = regEx(contentArtifactId).test(artifactId);\n } else {\n artifactMatch = artifactId === contentArtifactId;\n }\n }\n\n // version matching (optional)\n let versionMatch = true;\n if (groupMatch && artifactMatch && contentVersion && dep.currentValue) {\n if (matcher === 'regex') {\n versionMatch = regEx(contentVersion).test(dep.currentValue);\n } else {\n // contentVersion can be an exact version or a gradle-supported version range\n versionMatch = gradleVersioning.matches(\n dep.currentValue,\n contentVersion,\n );\n }\n }\n\n const isMatch = groupMatch && artifactMatch && versionMatch;\n if (mode === 'include') {\n hasIncludes = true;\n if (isMatch) {\n matchesInclude = true;\n }\n } else if (mode === 'exclude') {\n hasExcludes = true;\n if (isMatch) {\n matchesExclude = true;\n }\n }\n }\n\n if (hasIncludes && hasExcludes) {\n // if both includes and excludes exist, dep must match include and not match exclude\n return matchesInclude && !matchesExclude;\n } else if (hasIncludes) {\n // if only includes exist, dep must match at least one include\n return matchesInclude;\n } else if (hasExcludes) {\n // if only excludes exist, dep must not match any exclude\n return !matchesExclude;\n }\n\n // by default, repositories include everything and exclude nothing\n return true;\n}\n\nfunction getRegistryUrlsForDep(\n packageRegistries: PackageRegistry[],\n dep: PackageDependency<GradleManagerData>,\n): string[] {\n const scope = dep.depType === 'plugin' ? 'plugin' : 'dep';\n\n const registryUrls = packageRegistries\n .filter((item) => item.scope === scope)\n .filter((item) => matchesContentDescriptor(dep, item.content))\n .map((item) => item.registryUrl);\n\n if (!registryUrls.length && scope === 'plugin') {\n registryUrls.push(REGISTRY_URLS.gradlePluginPortal);\n }\n\n return [...new Set(registryUrls)];\n}\n\nasync function parsePackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n extractedDeps: PackageDependency<GradleManagerData>[],\n packageFilesByName: Record<string, PackageFile>,\n packageRegistries: PackageRegistry[],\n): Promise<PackageDependency<GradleManagerData>[]> {\n const varRegistry: VariableRegistry = {};\n const fileContents = await getLocalFiles(packageFiles);\n\n for (const packageFile of packageFiles) {\n packageFilesByName[packageFile] = {\n packageFile,\n datasource: mavenDatasource,\n deps: [],\n };\n\n try {\n // TODO #22198\n const content = fileContents[packageFile]!;\n const packageFileDir = upath.dirname(toAbsolutePath(packageFile));\n\n if (isPropsFile(packageFile)) {\n const { vars, deps } = parseProps(content, packageFile);\n updateVars(varRegistry, packageFileDir, vars);\n extractedDeps.push(...deps);\n } else if (isTOMLFile(packageFile)) {\n const deps = parseCatalog(packageFile, content);\n extractedDeps.push(...deps);\n } else if (\n isGcvPropsFile(packageFile) &&\n usesGcv(packageFile, fileContents)\n ) {\n const deps = parseGcv(packageFile, fileContents);\n extractedDeps.push(...deps);\n } else if (isKotlinSourceFile(packageFile)) {\n const vars = getVars(varRegistry, packageFileDir);\n const { vars: gradleVars, deps } = parseKotlinSource(\n content,\n vars,\n packageFile,\n );\n updateVars(varRegistry, '/', gradleVars);\n extractedDeps.push(...deps);\n } else if (isGradleScriptFile(packageFile)) {\n const vars = getVars(varRegistry, packageFileDir);\n const {\n deps,\n urls,\n vars: gradleVars,\n } = parseGradle(content, vars, packageFile, fileContents);\n updatePackageRegistries(packageRegistries, urls);\n updateVars(varRegistry, packageFileDir, gradleVars);\n extractedDeps.push(...deps);\n }\n } catch (err) {\n logger.debug(\n { err, config, packageFile },\n `Failed to process Gradle file`,\n );\n }\n }\n\n return extractedDeps;\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile[] | null> {\n const packageFilesByName: Record<string, PackageFile> = {};\n const packageRegistries: PackageRegistry[] = [];\n const extractedDeps: PackageDependency<GradleManagerData>[] = [];\n const kotlinSourceFiles = packageFiles.filter(isKotlinSourceFile);\n const gradleFiles = reorderFiles(\n packageFiles.filter((e) => !kotlinSourceFiles.includes(e)),\n );\n\n await parsePackageFiles(\n config,\n [...kotlinSourceFiles, ...kotlinSourceFiles, ...gradleFiles],\n extractedDeps,\n packageFilesByName,\n packageRegistries,\n );\n\n if (!extractedDeps.length) {\n return null;\n }\n\n for (const dep of extractedDeps) {\n dep.fileReplacePosition = dep?.managerData?.fileReplacePosition; // #8224\n\n const key = dep.managerData?.packageFile;\n // istanbul ignore else\n if (key) {\n let pkgFile: PackageFile = packageFilesByName[key];\n // istanbul ignore if: won't happen if \"apply from\" processes only initially known files\n if (!pkgFile) {\n pkgFile = {\n packageFile: key,\n datasource: mavenDatasource,\n deps: [],\n };\n }\n\n if (!dep.datasource) {\n dep.datasource = mavenDatasource;\n }\n\n if (dep.datasource === mavenDatasource) {\n dep.registryUrls = getRegistryUrlsForDep(packageRegistries, dep);\n\n if (!dep.depType) {\n dep.depType =\n key.startsWith('buildSrc') && !kotlinSourceFiles.length\n ? 'devDependencies'\n : 'dependencies';\n }\n }\n\n const depAlreadyInPkgFile = pkgFile.deps.some(\n (item) =>\n item.depName === dep.depName &&\n item.managerData?.fileReplacePosition ===\n dep.managerData?.fileReplacePosition,\n );\n if (!depAlreadyInPkgFile) {\n pkgFile.deps.push(dep);\n }\n\n packageFilesByName[key] = pkgFile;\n } else {\n logger.debug({ dep }, `Failed to process Gradle dependency`);\n }\n }\n\n return Object.values(packageFilesByName);\n}\n"]}
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gradle/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import upath from 'upath';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { getLocalFiles } from '../../../util/fs';\nimport { regEx } from '../../../util/regex';\nimport { MavenDatasource } from '../../datasource/maven';\nimport gradleVersioning from '../../versioning/gradle';\nimport type { ExtractConfig, PackageDependency, PackageFile } from '../types';\nimport { parseCatalog } from './extract/catalog';\nimport {\n isGcvPropsFile,\n parseGcv,\n usesGcv,\n} from './extract/consistent-versions-plugin';\nimport { parseGradle, parseKotlinSource, parseProps } from './parser';\nimport { REGISTRY_URLS } from './parser/common';\nimport type {\n ContentDescriptorSpec,\n GradleManagerData,\n PackageRegistry,\n VariableRegistry,\n} from './types';\nimport {\n getVars,\n isGradleScriptFile,\n isKotlinSourceFile,\n isPropsFile,\n isTOMLFile,\n reorderFiles,\n toAbsolutePath,\n updateVars,\n} from './utils';\n\nconst mavenDatasource = MavenDatasource.id;\n\nfunction updatePackageRegistries(\n packageRegistries: PackageRegistry[],\n urls: PackageRegistry[],\n): void {\n for (const url of urls) {\n const registryAlreadyKnown = packageRegistries.some(\n (item) =>\n item.registryUrl === url.registryUrl && item.scope === url.scope,\n );\n if (!registryAlreadyKnown) {\n packageRegistries.push(url);\n }\n }\n}\n\nexport function matchesContentDescriptor(\n dep: PackageDependency<GradleManagerData>,\n contentDescriptors?: ContentDescriptorSpec[],\n): boolean {\n const [groupId, artifactId] = (dep.packageName ?? dep.depName!).split(':');\n let hasIncludes = false;\n let hasExcludes = false;\n let matchesInclude = false;\n let matchesExclude = false;\n\n for (const content of coerceArray(contentDescriptors)) {\n const {\n mode,\n matcher,\n groupId: contentGroupId,\n artifactId: contentArtifactId,\n version: contentVersion,\n } = content;\n\n // group matching\n let groupMatch = false;\n if (matcher === 'regex') {\n groupMatch = regEx(contentGroupId).test(groupId);\n } else if (matcher === 'subgroup') {\n groupMatch =\n groupId === contentGroupId || `${groupId}.`.startsWith(contentGroupId);\n } else {\n groupMatch = groupId === contentGroupId;\n }\n\n // artifact matching (optional)\n let artifactMatch = true;\n if (groupMatch && contentArtifactId) {\n if (matcher === 'regex') {\n artifactMatch = regEx(contentArtifactId).test(artifactId);\n } else {\n artifactMatch = artifactId === contentArtifactId;\n }\n }\n\n // version matching (optional)\n let versionMatch = true;\n if (groupMatch && artifactMatch && contentVersion && dep.currentValue) {\n if (matcher === 'regex') {\n versionMatch = regEx(contentVersion).test(dep.currentValue);\n } else {\n // contentVersion can be an exact version or a gradle-supported version range\n versionMatch = gradleVersioning.matches(\n dep.currentValue,\n contentVersion,\n );\n }\n }\n\n const isMatch = groupMatch && artifactMatch && versionMatch;\n if (mode === 'include') {\n hasIncludes = true;\n if (isMatch) {\n matchesInclude = true;\n }\n } else if (mode === 'exclude') {\n hasExcludes = true;\n if (isMatch) {\n matchesExclude = true;\n }\n }\n }\n\n if (hasIncludes && hasExcludes) {\n // if both includes and excludes exist, dep must match include and not match exclude\n return matchesInclude && !matchesExclude;\n } else if (hasIncludes) {\n // if only includes exist, dep must match at least one include\n return matchesInclude;\n } else if (hasExcludes) {\n // if only excludes exist, dep must not match any exclude\n return !matchesExclude;\n }\n\n // by default, repositories include everything and exclude nothing\n return true;\n}\n\nfunction getRegistryUrlsForDep(\n packageRegistries: PackageRegistry[],\n dep: PackageDependency<GradleManagerData>,\n): string[] {\n const scope = dep.depType === 'plugin' ? 'plugin' : 'dep';\n\n const matchingRegistries = packageRegistries.filter(\n (item) =>\n item.scope === scope && matchesContentDescriptor(dep, item.content),\n );\n\n const exclusiveRegistries = matchingRegistries.filter(\n (item) => item.registryType === 'exclusive',\n );\n\n const registryUrls = (\n exclusiveRegistries.length ? exclusiveRegistries : matchingRegistries\n ).map((item) => item.registryUrl);\n\n if (!registryUrls.length && scope === 'plugin') {\n registryUrls.push(REGISTRY_URLS.gradlePluginPortal);\n }\n\n return [...new Set(registryUrls)];\n}\n\nasync function parsePackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n extractedDeps: PackageDependency<GradleManagerData>[],\n packageFilesByName: Record<string, PackageFile>,\n packageRegistries: PackageRegistry[],\n): Promise<PackageDependency<GradleManagerData>[]> {\n const varRegistry: VariableRegistry = {};\n const fileContents = await getLocalFiles(packageFiles);\n\n for (const packageFile of packageFiles) {\n packageFilesByName[packageFile] = {\n packageFile,\n datasource: mavenDatasource,\n deps: [],\n };\n\n try {\n // TODO #22198\n const content = fileContents[packageFile]!;\n const packageFileDir = upath.dirname(toAbsolutePath(packageFile));\n\n if (isPropsFile(packageFile)) {\n const { vars, deps } = parseProps(content, packageFile);\n updateVars(varRegistry, packageFileDir, vars);\n extractedDeps.push(...deps);\n } else if (isTOMLFile(packageFile)) {\n const deps = parseCatalog(packageFile, content);\n extractedDeps.push(...deps);\n } else if (\n isGcvPropsFile(packageFile) &&\n usesGcv(packageFile, fileContents)\n ) {\n const deps = parseGcv(packageFile, fileContents);\n extractedDeps.push(...deps);\n } else if (isKotlinSourceFile(packageFile)) {\n const vars = getVars(varRegistry, packageFileDir);\n const { vars: gradleVars, deps } = parseKotlinSource(\n content,\n vars,\n packageFile,\n );\n updateVars(varRegistry, '/', gradleVars);\n extractedDeps.push(...deps);\n } else if (isGradleScriptFile(packageFile)) {\n const vars = getVars(varRegistry, packageFileDir);\n const {\n deps,\n urls,\n vars: gradleVars,\n } = parseGradle(content, vars, packageFile, fileContents);\n updatePackageRegistries(packageRegistries, urls);\n updateVars(varRegistry, packageFileDir, gradleVars);\n extractedDeps.push(...deps);\n }\n } catch (err) {\n logger.debug(\n { err, config, packageFile },\n `Failed to process Gradle file`,\n );\n }\n }\n\n return extractedDeps;\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile[] | null> {\n const packageFilesByName: Record<string, PackageFile> = {};\n const packageRegistries: PackageRegistry[] = [];\n const extractedDeps: PackageDependency<GradleManagerData>[] = [];\n const kotlinSourceFiles = packageFiles.filter(isKotlinSourceFile);\n const gradleFiles = reorderFiles(\n packageFiles.filter((e) => !kotlinSourceFiles.includes(e)),\n );\n\n await parsePackageFiles(\n config,\n [...kotlinSourceFiles, ...kotlinSourceFiles, ...gradleFiles],\n extractedDeps,\n packageFilesByName,\n packageRegistries,\n );\n\n if (!extractedDeps.length) {\n return null;\n }\n\n for (const dep of extractedDeps) {\n dep.fileReplacePosition = dep?.managerData?.fileReplacePosition; // #8224\n\n const key = dep.managerData?.packageFile;\n // istanbul ignore else\n if (key) {\n let pkgFile: PackageFile = packageFilesByName[key];\n // istanbul ignore if: won't happen if \"apply from\" processes only initially known files\n if (!pkgFile) {\n pkgFile = {\n packageFile: key,\n datasource: mavenDatasource,\n deps: [],\n };\n }\n\n dep.datasource ??= mavenDatasource;\n\n if (dep.datasource === mavenDatasource) {\n dep.registryUrls = getRegistryUrlsForDep(packageRegistries, dep);\n\n dep.depType ??=\n key.startsWith('buildSrc') && !kotlinSourceFiles.length\n ? 'devDependencies'\n : 'dependencies';\n }\n\n const depAlreadyInPkgFile = pkgFile.deps.some(\n (item) =>\n item.depName === dep.depName &&\n item.managerData?.fileReplacePosition ===\n dep.managerData?.fileReplacePosition,\n );\n if (!depAlreadyInPkgFile) {\n pkgFile.deps.push(dep);\n }\n\n packageFilesByName[key] = pkgFile;\n } else {\n logger.debug({ dep }, `Failed to process Gradle dependency`);\n }\n }\n\n return Object.values(packageFilesByName);\n}\n"]}
|
@@ -292,6 +292,13 @@ function isPluginRegistry(ctx) {
|
|
292
292
|
}
|
293
293
|
return false;
|
294
294
|
}
|
295
|
+
function isExclusiveRegistry(ctx) {
|
296
|
+
if (ctx.tokenMap.registryType) {
|
297
|
+
const registryType = (0, common_1.loadFromTokenMap)(ctx, 'registryType')[0].value;
|
298
|
+
return registryType === 'exclusiveContent';
|
299
|
+
}
|
300
|
+
return false;
|
301
|
+
}
|
295
302
|
function handleRegistryUrl(ctx) {
|
296
303
|
let localVariables = ctx.globalVars;
|
297
304
|
if (ctx.tokenMap.name) {
|
@@ -314,6 +321,7 @@ function handleRegistryUrl(ctx) {
|
|
314
321
|
if (url?.host && url.protocol) {
|
315
322
|
ctx.registryUrls.push({
|
316
323
|
registryUrl,
|
324
|
+
registryType: isExclusiveRegistry(ctx) ? 'exclusive' : 'regular',
|
317
325
|
scope: isPluginRegistry(ctx) ? 'plugin' : 'dep',
|
318
326
|
content: ctx.tmpRegistryContent,
|
319
327
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/gradle/parser/handlers.ts"],"names":[],"mappings":";;AAwBA,gDAEC;AAED,4CAoCC;AAED,0CAqDC;AAED,oEAyCC;AAED,8CA4DC;AAED,oCA0CC;AAkBD,sDAyCC;AAWD,8CAmCC;AAED,4CA4BC;AAED,0CA8CC;AAED,8CA2CC;;AAhfD,0DAA0B;AAC1B,+CAA4C;AAC5C,4CAAyD;AACzD,kDAA+C;AAC/C,8CAAgD;AAShD,oCAAqE;AACrE,qCAMkB;AAElB,sCAAsC;AACtC,IAAI,WAAuC,CAAC;AAC5C,SAAgB,kBAAkB,CAAC,IAAgC;IACjE,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED,SAAgB,gBAAgB,CAAC,GAAQ;IACvC,MAAM,GAAG,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACvD,MAAM,SAAS,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAEpD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,4CAA4C;QAC5C,GAAG,CAAC,QAAQ,CAAC,oBAAoB,GAAG,SAAS,CAAC;QAC9C,eAAe,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IAC3C,CAAC;SAAM,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1C,8BAA8B;QAC9B,MAAM,OAAO,GAAG,IAAA,qBAAY,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,OAAO,EAAE,CAAC;YACZ,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,iBAAiB;QACjB,MAAM,GAAG,GAAG,IAAA,6BAAqB,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,kBAAkB,GAAG,GAAG,CAAC;YAC7B,GAAG,CAAC,WAAW,GAAG;gBAChB,mBAAmB,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,OAAQ,CAAC,MAAM,GAAG,CAAC;gBAClE,WAAW,EAAE,GAAG,CAAC,WAAW;aAC7B,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QAED,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG;YACpB,GAAG;YACH,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK;YACzB,mBAAmB,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM;YACxC,WAAW,EAAE,GAAG,CAAC,WAAW;SAC7B,CAAC;IACJ,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,eAAe,CAAC,GAAQ;IACtC,MAAM,YAAY,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;IAEnE,MAAM,cAAc,GAAG,IAAA,0BAAiB,EAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IAC5D,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,6BAAqB,EAAC,cAAc,CAAC,CAAC;IAClD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,WAA+B,CAAC;IACpC,IAAI,mBAAuC,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAA,qBAAY,EAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC/C,IAAI,OAAO,EAAE,CAAC;gBACZ,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;gBAClC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;gBAClD,IAAI,OAAO,CAAC,KAAK,KAAK,GAAG,CAAC,YAAY,EAAE,CAAC;oBACvC,GAAG,CAAC,WAAW,GAAG,EAAE,mBAAmB,EAAE,WAAW,EAAE,CAAC;oBACvD,GAAG,CAAC,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxD,IACE,SAAS,EAAE,IAAI,KAAK,cAAc;YAClC,GAAG,CAAC,YAAY;YAChB,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,EAC1C,CAAC;YACD,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;YAC9B,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,mBAAmB,GAAG,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,OAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,mBAAmB;oBACjB,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,GAAG,CAAC,kBAAkB,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,UAAU,GAAG,mBAAmB,CAAC;QACvC,CAAC;QACD,GAAG,CAAC,WAAW,GAAG,EAAE,mBAAmB,EAAE,WAAW,EAAE,CAAC;IACzD,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,4BAA4B,CAAC,GAAQ;IACnD,MAAM,gBAAgB,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAEvD,MAAM,UAAU,GAAG,IAAA,0BAAiB,EAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,IAAA,0BAAiB,EAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IAC3D,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,EAAE,CAAC;QACjC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,iBAAiB,GAAG,+BAA+B,UAAU,EAAE,CAAC;IACtE,MAAM,GAAG,GAAG,IAAA,6BAAqB,EAAC,GAAG,iBAAiB,IAAI,YAAY,EAAE,CAAC,CAAC;IAC1E,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,GAAG,CAAC;IACb,CAAC;IAED,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC;IACzB,GAAG,CAAC,WAAW,GAAG,iBAAiB,CAAC;IACpC,GAAG,CAAC,WAAW,GAAG;QAChB,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM;QAC5C,WAAW,EAAE,GAAG,CAAC,WAAW;KAC7B,CAAC;IAEF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,4CAA4C;QAC5C,GAAG,CAAC,UAAU,GAAG,qBAAqB,CAAC;IACzC,CAAC;SAAM,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAA,qBAAY,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,OAAO,EAAE,CAAC;YACZ,GAAG,CAAC,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;YACrC,GAAG,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;YACjC,GAAG,CAAC,WAAW,GAAG;gBAChB,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;gBAChD,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,iBAAiB,CAAC,GAAQ;IACxC,MAAM,aAAa,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAG,IAAA,0BAAiB,EAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,IAAA,0BAAiB,EAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,IAAA,0BAAiB,EAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IACtD,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC;QACxC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,0FAA0F;IAC1F,IACE,IAAA,0BAAkB,EAAC,OAAO,CAAC;QAC3B,IAAA,0BAAkB,EAAC,UAAU,CAAC;QAC9B,IAAA,0BAAkB,EAAC,OAAO,CAAC,EAC3B,CAAC;QACD,GAAG,CAAC,QAAQ,CAAC,oBAAoB,GAAG,aAAa,CAAC;QAClD,eAAe,CAAC,GAAG,CAAC,CAAC;QACrB,GAAG,CAAC,QAAQ,CAAC,oBAAoB,GAAG,gBAAgB,CAAC;QACrD,eAAe,CAAC,GAAG,CAAC,CAAC;QACrB,GAAG,CAAC,QAAQ,CAAC,oBAAoB,GAAG,aAAa,CAAC;QAClD,eAAe,CAAC,GAAG,CAAC,CAAC;QAErB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,6BAAqB,EAAC,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC;IACnD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,4CAA4C;QAC5C,GAAG,CAAC,UAAU,GAAG,qBAAqB,CAAC;IACzC,CAAC;SAAM,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAA,qBAAY,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,OAAO,EAAE,CAAC;YACZ,GAAG,CAAC,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;YACrC,GAAG,CAAC,WAAW,GAAG;gBAChB,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;gBAChD,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,iBAAiB;QACjB,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,eAAe,EAAE,CAAC;YAC/C,GAAG,CAAC,kBAAkB,GAAG,GAAG,OAAO,IAAI,OAAO,EAAE,CAAC;QACnD,CAAC;QACD,GAAG,CAAC,WAAW,GAAG;YAChB,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM;YAC5C,WAAW,EAAE,GAAG,CAAC,WAAW;SAC7B,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,YAAY,CAAC,GAAQ;IACnC,MAAM,UAAU,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;IAChC,MAAM,OAAO,GACX,UAAU,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5E,MAAM,WAAW,GAAG,GAAG,OAAO,IAAI,OAAO,gBAAgB,CAAC;IAE1D,MAAM,GAAG,GAAyC;QAChD,OAAO,EAAE,QAAQ;QACjB,OAAO;QACP,WAAW;QACX,kBAAkB,EAAE,UAAU,OAAO,EAAE;QACvC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK;QACpC,WAAW,EAAE;YACX,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM;YAC5C,WAAW,EAAE,GAAG,CAAC,WAAW;SAC7B;KACF,CAAC;IAEF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,4CAA4C;QAC5C,GAAG,CAAC,UAAU,GAAG,qBAAqB,CAAC;IACzC,CAAC;SAAM,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAA,qBAAY,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,OAAO,EAAE,CAAC;YACZ,GAAG,CAAC,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;YACrC,GAAG,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;YACjC,GAAG,CAAC,WAAW,GAAG;gBAChB,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;gBAChD,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,UAAU,GAAG,qBAAqB,CAAC;QACzC,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,6BAA6B,CACpC,SAAiB,EACjB,OAAe;IAEf,IAAI,CAAC;QACH,IAAA,aAAK,EAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACP,eAAM,CAAC,KAAK,CACV,mEAAmE,SAAS,KAAK,OAAO,EAAE,CAC3F,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,qBAAqB,CAAC,GAAQ;IAC5C,MAAM,UAAU,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAChE,IAAI,OAAO,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAExD,IAAI,OAAO,GAA6B,QAAQ,CAAC;IACjD,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,GAAG,OAAO,CAAC;QAClB,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YACrD,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;SAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/C,OAAO,GAAG,UAAU,CAAC;IACvB,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,MAAM,IAAI,GAA0B,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAE/D,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpE,IAAI,CAAC,UAAU,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/D,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAClE,IAAI,CAAC,6BAA6B,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9D,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACzD,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC5D,IAAI,CAAC,6BAA6B,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5D,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;IACH,CAAC;IAED,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAElC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAQ;IAChC,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACtE,OAAO,aAAa,KAAK,kBAAkB,CAAC;IAC9C,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,iBAAiB,CAAC,GAAQ;IACxC,IAAI,cAAc,GAAG,GAAG,CAAC,UAAU,CAAC;IAEpC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,IAAA,0BAAiB,EAAC,UAAU,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;QACrE,IAAI,SAAS,EAAE,CAAC;YACd,cAAc,GAAG;gBACf,GAAG,cAAc;gBACjB,IAAI,EAAE;oBACJ,GAAG,EAAE,MAAM;oBACX,KAAK,EAAE,SAAS;iBACjB;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,WAAW,GAAG,IAAA,0BAAiB,EACjC,IAAA,yBAAgB,EAAC,GAAG,EAAE,aAAa,CAAC,EACpC,GAAG,EACH,cAAc,CACf,CAAC;IACF,IAAI,WAAW,EAAE,CAAC;QAChB,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAA,cAAQ,EAAC,WAAW,CAAC,CAAC;QAClC,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC9B,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC;gBACpB,WAAW;gBACX,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;gBAC/C,OAAO,EAAE,GAAG,CAAC,kBAAkB;aAChC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,gBAAgB,CAAC,GAAQ;IACvC,MAAM,aAAa,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAE7D,MAAM,OAAO,GAAG,IAAA,0BAAiB,EAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,IAAA,0BAAiB,EAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAC5D,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,QAAQ,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IAEpE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG;QACpB,GAAG;QACH,KAAK,EAAE,GAAG,OAAO,IAAI,UAAU,EAAE;QACjC,mBAAmB,EAAE,UAAU,CAAC,MAAM;QACtC,WAAW,EAAE,GAAG,CAAC,WAAW;KAC7B,CAAC;IAEF,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAA,0BAAiB,EAAC,IAAA,yBAAgB,EAAC,GAAG,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;QACzE,IAAI,OAAO,EAAE,CAAC;YACZ,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,eAAe,CAAC,GAAQ;IACtC,IAAI,UAAU,GAAG,IAAA,0BAAiB,EAAC,IAAA,yBAAgB,EAAC,GAAG,EAAE,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7E,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,IAAA,0BAAiB,EAClC,IAAA,yBAAgB,EAAC,GAAG,EAAE,YAAY,CAAC,EACnC,GAAG,CACJ,CAAC;QACF,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;YAC7B,UAAU,GAAG,eAAK,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;QAC3B,eAAM,CAAC,KAAK,CAAC,+CAA+C,UAAU,EAAE,CAAC,CAAC;QAC1E,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,CAAC,IAAA,aAAK,EAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACjD,eAAM,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,mCAAmC,CAAC,CAAC;QAClE,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,cAAc,GAAG,IAAA,uBAAkB,EAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACvE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;QACtC,eAAM,CAAC,KAAK,CAAC,0CAA0C,cAAc,EAAE,CAAC,CAAC;QACzE,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,WAAW,GAAG,WAAW;IAC7B,cAAc;IACd,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,EAChC,GAAG,CAAC,UAAU,EACd,cAAc,EACd,GAAG,CAAC,YAAY,EAChB,GAAG,CAAC,cAAc,GAAG,CAAC,CACvB,CAAC;IAEF,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACnC,GAAG,CAAC,UAAU,GAAG,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAC5D,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAE3C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,iBAAiB,CAAC,GAAQ;IACxC,MAAM,eAAe,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1E,MAAM,aAAa,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,IAAA,0BAAiB,EAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IAC3D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,sBAAsB,GAAG,eAAe,IAAI,uBAAc,CAAC;IACjE,MAAM,iBAAiB,GAAG,sBAAsB;QAC9C,CAAC,CAAC,uBAAc,CAAC,eAA8C,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,2BAAkB,CAAC,eAAkD,CAAC,CAAC;IAE3E,MAAM,GAAG,GAAG,IAAA,6BAAqB,EAAC,GAAG,iBAAiB,IAAI,YAAY,EAAE,CAAC,CAAC;IAC1E,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,GAAG,CAAC;IACb,CAAC;IAED,GAAG,CAAC,OAAO,GAAG,eAAe,CAAC;IAC9B,GAAG,CAAC,WAAW,GAAG,iBAAiB,CAAC;IACpC,GAAG,CAAC,WAAW,GAAG;QAChB,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM;QAC5C,WAAW,EAAE,GAAG,CAAC,WAAW;KAC7B,CAAC;IAEF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,4CAA4C;QAC5C,GAAG,CAAC,UAAU,GAAG,qBAAqB,CAAC;IACzC,CAAC;SAAM,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAA,qBAAY,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,OAAO,EAAE,CAAC;YACZ,GAAG,CAAC,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;YACrC,GAAG,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;YACjC,GAAG,CAAC,WAAW,GAAG;gBAChB,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;gBAChD,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnB,OAAO,GAAG,CAAC;AACb,CAAC","sourcesContent":["import upath from 'upath';\nimport { logger } from '../../../../logger';\nimport { getSiblingFileName } from '../../../../util/fs';\nimport { regEx } from '../../../../util/regex';\nimport { parseUrl } from '../../../../util/url';\nimport type { PackageDependency } from '../../types';\nimport type { parseGradle as parseGradleCallback } from '../parser';\nimport type {\n ContentDescriptorMatcher,\n ContentDescriptorSpec,\n Ctx,\n GradleManagerData,\n} from '../types';\nimport { isDependencyString, parseDependencyString } from '../utils';\nimport {\n GRADLE_PLUGINS,\n GRADLE_TEST_SUITES,\n findVariable,\n interpolateString,\n loadFromTokenMap,\n} from './common';\n\n// needed to break circular dependency\nlet parseGradle: typeof parseGradleCallback;\nexport function setParseGradleFunc(func: typeof parseGradleCallback): void {\n parseGradle = func;\n}\n\nexport function handleAssignment(ctx: Ctx): Ctx {\n const key = loadFromTokenMap(ctx, 'keyToken')[0].value;\n const valTokens = loadFromTokenMap(ctx, 'valToken');\n\n if (valTokens.length > 1) {\n // = template string with multiple variables\n ctx.tokenMap.templateStringTokens = valTokens;\n handleDepString(ctx);\n delete ctx.tokenMap.templateStringTokens;\n } else if (valTokens[0].type === 'symbol') {\n // foo = bar || foo = \"${bar}\"\n const varData = findVariable(valTokens[0].value, ctx);\n if (varData) {\n ctx.globalVars[key] = { ...varData };\n }\n } else {\n // = string value\n const dep = parseDependencyString(valTokens[0].value);\n if (dep) {\n dep.sharedVariableName = key;\n dep.managerData = {\n fileReplacePosition: valTokens[0].offset + dep.depName!.length + 1,\n packageFile: ctx.packageFile,\n };\n ctx.deps.push(dep);\n }\n\n ctx.globalVars[key] = {\n key,\n value: valTokens[0].value,\n fileReplacePosition: valTokens[0].offset,\n packageFile: ctx.packageFile,\n };\n }\n\n return ctx;\n}\n\nexport function handleDepString(ctx: Ctx): Ctx {\n const stringTokens = loadFromTokenMap(ctx, 'templateStringTokens');\n\n const templateString = interpolateString(stringTokens, ctx);\n if (!templateString) {\n return ctx;\n }\n\n const dep = parseDependencyString(templateString);\n if (!dep) {\n return ctx;\n }\n\n let packageFile: string | undefined;\n let fileReplacePosition: number | undefined;\n for (const token of stringTokens) {\n if (token.type === 'symbol') {\n const varData = findVariable(token.value, ctx);\n if (varData) {\n packageFile = varData.packageFile;\n fileReplacePosition = varData.fileReplacePosition;\n if (varData.value === dep.currentValue) {\n dep.managerData = { fileReplacePosition, packageFile };\n dep.sharedVariableName = varData.key;\n }\n }\n }\n }\n\n if (!dep.managerData) {\n const lastToken = stringTokens[stringTokens.length - 1];\n if (\n lastToken?.type === 'string-value' &&\n dep.currentValue &&\n lastToken.value.includes(dep.currentValue)\n ) {\n packageFile = ctx.packageFile;\n if (stringTokens.length === 1) {\n fileReplacePosition = lastToken.offset + dep.depName!.length + 1;\n } else {\n fileReplacePosition =\n lastToken.offset + lastToken.value.lastIndexOf(dep.currentValue);\n }\n delete dep.sharedVariableName;\n } else {\n dep.skipReason = 'contains-variable';\n }\n dep.managerData = { fileReplacePosition, packageFile };\n }\n\n ctx.deps.push(dep);\n\n return ctx;\n}\n\nexport function handleKotlinShortNotationDep(ctx: Ctx): Ctx {\n const moduleNameTokens = loadFromTokenMap(ctx, 'artifactId');\n const versionTokens = loadFromTokenMap(ctx, 'version');\n\n const moduleName = interpolateString(moduleNameTokens, ctx);\n const versionValue = interpolateString(versionTokens, ctx);\n if (!moduleName || !versionValue) {\n return ctx;\n }\n\n const groupIdArtifactId = `org.jetbrains.kotlin:kotlin-${moduleName}`;\n const dep = parseDependencyString(`${groupIdArtifactId}:${versionValue}`);\n if (!dep) {\n return ctx;\n }\n\n dep.depName = moduleName;\n dep.packageName = groupIdArtifactId;\n dep.managerData = {\n fileReplacePosition: versionTokens[0].offset,\n packageFile: ctx.packageFile,\n };\n\n if (versionTokens.length > 1) {\n // = template string with multiple variables\n dep.skipReason = 'unspecified-version';\n } else if (versionTokens[0].type === 'symbol') {\n const varData = findVariable(versionTokens[0].value, ctx);\n if (varData) {\n dep.sharedVariableName = varData.key;\n dep.currentValue = varData.value;\n dep.managerData = {\n fileReplacePosition: varData.fileReplacePosition,\n packageFile: varData.packageFile,\n };\n }\n }\n\n ctx.deps.push(dep);\n\n return ctx;\n}\n\nexport function handleLongFormDep(ctx: Ctx): Ctx {\n const groupIdTokens = loadFromTokenMap(ctx, 'groupId');\n const artifactIdTokens = loadFromTokenMap(ctx, 'artifactId');\n const versionTokens = loadFromTokenMap(ctx, 'version');\n\n const groupId = interpolateString(groupIdTokens, ctx);\n const artifactId = interpolateString(artifactIdTokens, ctx);\n const version = interpolateString(versionTokens, ctx);\n if (!groupId || !artifactId || !version) {\n return ctx;\n }\n\n // Special handling: 3 independent dependencies mismatched as groupId, artifactId, version\n if (\n isDependencyString(groupId) &&\n isDependencyString(artifactId) &&\n isDependencyString(version)\n ) {\n ctx.tokenMap.templateStringTokens = groupIdTokens;\n handleDepString(ctx);\n ctx.tokenMap.templateStringTokens = artifactIdTokens;\n handleDepString(ctx);\n ctx.tokenMap.templateStringTokens = versionTokens;\n handleDepString(ctx);\n\n return ctx;\n }\n\n const dep = parseDependencyString([groupId, artifactId, version].join(':'));\n if (!dep) {\n return ctx;\n }\n\n const methodName = ctx.tokenMap.methodName ?? null;\n if (versionTokens.length > 1) {\n // = template string with multiple variables\n dep.skipReason = 'unspecified-version';\n } else if (versionTokens[0].type === 'symbol') {\n const varData = findVariable(versionTokens[0].value, ctx);\n if (varData) {\n dep.sharedVariableName = varData.key;\n dep.managerData = {\n fileReplacePosition: varData.fileReplacePosition,\n packageFile: varData.packageFile,\n };\n }\n } else {\n // = string value\n if (methodName?.[0]?.value === 'dependencySet') {\n dep.sharedVariableName = `${groupId}:${version}`;\n }\n dep.managerData = {\n fileReplacePosition: versionTokens[0].offset,\n packageFile: ctx.packageFile,\n };\n }\n\n ctx.deps.push(dep);\n\n return ctx;\n}\n\nexport function handlePlugin(ctx: Ctx): Ctx {\n const methodName = loadFromTokenMap(ctx, 'methodName')[0];\n const pluginName = loadFromTokenMap(ctx, 'pluginName')[0];\n const pluginVersion = loadFromTokenMap(ctx, 'version');\n\n const plugin = pluginName.value;\n const depName =\n methodName.value === 'kotlin' ? `org.jetbrains.kotlin.${plugin}` : plugin;\n const packageName = `${depName}:${depName}.gradle.plugin`;\n\n const dep: PackageDependency<GradleManagerData> = {\n depType: 'plugin',\n depName,\n packageName,\n commitMessageTopic: `plugin ${depName}`,\n currentValue: pluginVersion[0].value,\n managerData: {\n fileReplacePosition: pluginVersion[0].offset,\n packageFile: ctx.packageFile,\n },\n };\n\n if (pluginVersion.length > 1) {\n // = template string with multiple variables\n dep.skipReason = 'unspecified-version';\n } else if (pluginVersion[0].type === 'symbol') {\n const varData = findVariable(pluginVersion[0].value, ctx);\n if (varData) {\n dep.sharedVariableName = varData.key;\n dep.currentValue = varData.value;\n dep.managerData = {\n fileReplacePosition: varData.fileReplacePosition,\n packageFile: varData.packageFile,\n };\n } else {\n dep.skipReason = 'unspecified-version';\n }\n }\n\n ctx.deps.push(dep);\n\n return ctx;\n}\n\nfunction isValidContentDescriptorRegex(\n fieldName: string,\n pattern: string,\n): boolean {\n try {\n regEx(pattern);\n } catch {\n logger.debug(\n `Skipping content descriptor with unsupported regExp pattern for ${fieldName}: ${pattern}`,\n );\n return false;\n }\n\n return true;\n}\n\nexport function handleRegistryContent(ctx: Ctx): Ctx {\n const methodName = loadFromTokenMap(ctx, 'methodName')[0].value;\n let groupId = loadFromTokenMap(ctx, 'groupId')[0].value;\n\n let matcher: ContentDescriptorMatcher = 'simple';\n if (methodName.includes('Regex')) {\n matcher = 'regex';\n groupId = `^${groupId}$`.replaceAll('\\\\\\\\', '\\\\');\n if (!isValidContentDescriptorRegex('group', groupId)) {\n return ctx;\n }\n } else if (methodName.includes('AndSubgroups')) {\n matcher = 'subgroup';\n }\n\n const mode = methodName.startsWith('include') ? 'include' : 'exclude';\n const spec: ContentDescriptorSpec = { mode, matcher, groupId };\n\n if (methodName.includes('Module') || methodName.includes('Version')) {\n spec.artifactId = loadFromTokenMap(ctx, 'artifactId')[0].value;\n if (matcher === 'regex') {\n spec.artifactId = `^${spec.artifactId}$`.replaceAll('\\\\\\\\', '\\\\');\n if (!isValidContentDescriptorRegex('module', spec.artifactId)) {\n return ctx;\n }\n }\n }\n\n if (methodName.includes('Version')) {\n spec.version = loadFromTokenMap(ctx, 'version')[0].value;\n if (matcher === 'regex') {\n spec.version = `^${spec.version}$`.replaceAll('\\\\\\\\', '\\\\');\n if (!isValidContentDescriptorRegex('version', spec.version)) {\n return ctx;\n }\n }\n }\n\n ctx.tmpRegistryContent.push(spec);\n\n return ctx;\n}\n\nfunction isPluginRegistry(ctx: Ctx): boolean {\n if (ctx.tokenMap.registryScope) {\n const registryScope = loadFromTokenMap(ctx, 'registryScope')[0].value;\n return registryScope === 'pluginManagement';\n }\n\n return false;\n}\n\nexport function handleRegistryUrl(ctx: Ctx): Ctx {\n let localVariables = ctx.globalVars;\n\n if (ctx.tokenMap.name) {\n const nameTokens = loadFromTokenMap(ctx, 'name');\n const nameValue = interpolateString(nameTokens, ctx, localVariables);\n if (nameValue) {\n localVariables = {\n ...localVariables,\n name: {\n key: 'name',\n value: nameValue,\n },\n };\n }\n }\n\n let registryUrl = interpolateString(\n loadFromTokenMap(ctx, 'registryUrl'),\n ctx,\n localVariables,\n );\n if (registryUrl) {\n registryUrl = registryUrl.replace(regEx(/\\\\/g), '');\n const url = parseUrl(registryUrl);\n if (url?.host && url.protocol) {\n ctx.registryUrls.push({\n registryUrl,\n scope: isPluginRegistry(ctx) ? 'plugin' : 'dep',\n content: ctx.tmpRegistryContent,\n });\n }\n }\n\n return ctx;\n}\n\nexport function handleLibraryDep(ctx: Ctx): Ctx {\n const groupIdTokens = loadFromTokenMap(ctx, 'groupId');\n const artifactIdTokens = loadFromTokenMap(ctx, 'artifactId');\n\n const groupId = interpolateString(groupIdTokens, ctx);\n const artifactId = interpolateString(artifactIdTokens, ctx);\n if (!groupId || !artifactId) {\n return ctx;\n }\n\n const aliasToken = loadFromTokenMap(ctx, 'alias')[0];\n const key = `libs.${aliasToken.value.replace(regEx(/[-_]/g), '.')}`;\n\n ctx.globalVars[key] = {\n key,\n value: `${groupId}:${artifactId}`,\n fileReplacePosition: aliasToken.offset,\n packageFile: ctx.packageFile,\n };\n\n if (ctx.tokenMap.version) {\n const version = interpolateString(loadFromTokenMap(ctx, 'version'), ctx);\n if (version) {\n handleLongFormDep(ctx);\n }\n }\n\n return ctx;\n}\n\nexport function handleApplyFrom(ctx: Ctx): Ctx {\n let scriptFile = interpolateString(loadFromTokenMap(ctx, 'scriptFile'), ctx);\n if (!scriptFile) {\n return ctx;\n }\n\n if (ctx.tokenMap.parentPath) {\n const parentPath = interpolateString(\n loadFromTokenMap(ctx, 'parentPath'),\n ctx,\n );\n if (parentPath && scriptFile) {\n scriptFile = upath.join(parentPath, scriptFile);\n }\n }\n\n if (ctx.recursionDepth > 2) {\n logger.debug(`Max recursion depth reached in script file: ${scriptFile}`);\n return ctx;\n }\n\n if (!regEx(/\\.gradle(\\.kts)?$/).test(scriptFile)) {\n logger.debug({ scriptFile }, `Only Gradle files can be included`);\n return ctx;\n }\n\n const scriptFilePath = getSiblingFileName(ctx.packageFile, scriptFile);\n if (!ctx.fileContents[scriptFilePath]) {\n logger.debug(`Failed to process included Gradle file ${scriptFilePath}`);\n return ctx;\n }\n\n const matchResult = parseGradle(\n // TODO #22198\n ctx.fileContents[scriptFilePath],\n ctx.globalVars,\n scriptFilePath,\n ctx.fileContents,\n ctx.recursionDepth + 1,\n );\n\n ctx.deps.push(...matchResult.deps);\n ctx.globalVars = { ...ctx.globalVars, ...matchResult.vars };\n ctx.registryUrls.push(...matchResult.urls);\n\n return ctx;\n}\n\nexport function handleImplicitDep(ctx: Ctx): Ctx {\n const implicitDepName = loadFromTokenMap(ctx, 'implicitDepName')[0].value;\n const versionTokens = loadFromTokenMap(ctx, 'version');\n const versionValue = interpolateString(versionTokens, ctx);\n if (!versionValue) {\n return ctx;\n }\n\n const isImplicitGradlePlugin = implicitDepName in GRADLE_PLUGINS;\n const groupIdArtifactId = isImplicitGradlePlugin\n ? GRADLE_PLUGINS[implicitDepName as keyof typeof GRADLE_PLUGINS][1]\n : GRADLE_TEST_SUITES[implicitDepName as keyof typeof GRADLE_TEST_SUITES];\n\n const dep = parseDependencyString(`${groupIdArtifactId}:${versionValue}`);\n if (!dep) {\n return ctx;\n }\n\n dep.depName = implicitDepName;\n dep.packageName = groupIdArtifactId;\n dep.managerData = {\n fileReplacePosition: versionTokens[0].offset,\n packageFile: ctx.packageFile,\n };\n\n if (versionTokens.length > 1) {\n // = template string with multiple variables\n dep.skipReason = 'unspecified-version';\n } else if (versionTokens[0].type === 'symbol') {\n const varData = findVariable(versionTokens[0].value, ctx);\n if (varData) {\n dep.sharedVariableName = varData.key;\n dep.currentValue = varData.value;\n dep.managerData = {\n fileReplacePosition: varData.fileReplacePosition,\n packageFile: varData.packageFile,\n };\n }\n }\n\n ctx.deps.push(dep);\n\n return ctx;\n}\n"]}
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/gradle/parser/handlers.ts"],"names":[],"mappings":"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","sourcesContent":["import upath from 'upath';\nimport { logger } from '../../../../logger';\nimport { getSiblingFileName } from '../../../../util/fs';\nimport { regEx } from '../../../../util/regex';\nimport { parseUrl } from '../../../../util/url';\nimport type { PackageDependency } from '../../types';\nimport type { parseGradle as parseGradleCallback } from '../parser';\nimport type {\n ContentDescriptorMatcher,\n ContentDescriptorSpec,\n Ctx,\n GradleManagerData,\n} from '../types';\nimport { isDependencyString, parseDependencyString } from '../utils';\nimport {\n GRADLE_PLUGINS,\n GRADLE_TEST_SUITES,\n findVariable,\n interpolateString,\n loadFromTokenMap,\n} from './common';\n\n// needed to break circular dependency\nlet parseGradle: typeof parseGradleCallback;\nexport function setParseGradleFunc(func: typeof parseGradleCallback): void {\n parseGradle = func;\n}\n\nexport function handleAssignment(ctx: Ctx): Ctx {\n const key = loadFromTokenMap(ctx, 'keyToken')[0].value;\n const valTokens = loadFromTokenMap(ctx, 'valToken');\n\n if (valTokens.length > 1) {\n // = template string with multiple variables\n ctx.tokenMap.templateStringTokens = valTokens;\n handleDepString(ctx);\n delete ctx.tokenMap.templateStringTokens;\n } else if (valTokens[0].type === 'symbol') {\n // foo = bar || foo = \"${bar}\"\n const varData = findVariable(valTokens[0].value, ctx);\n if (varData) {\n ctx.globalVars[key] = { ...varData };\n }\n } else {\n // = string value\n const dep = parseDependencyString(valTokens[0].value);\n if (dep) {\n dep.sharedVariableName = key;\n dep.managerData = {\n fileReplacePosition: valTokens[0].offset + dep.depName!.length + 1,\n packageFile: ctx.packageFile,\n };\n ctx.deps.push(dep);\n }\n\n ctx.globalVars[key] = {\n key,\n value: valTokens[0].value,\n fileReplacePosition: valTokens[0].offset,\n packageFile: ctx.packageFile,\n };\n }\n\n return ctx;\n}\n\nexport function handleDepString(ctx: Ctx): Ctx {\n const stringTokens = loadFromTokenMap(ctx, 'templateStringTokens');\n\n const templateString = interpolateString(stringTokens, ctx);\n if (!templateString) {\n return ctx;\n }\n\n const dep = parseDependencyString(templateString);\n if (!dep) {\n return ctx;\n }\n\n let packageFile: string | undefined;\n let fileReplacePosition: number | undefined;\n for (const token of stringTokens) {\n if (token.type === 'symbol') {\n const varData = findVariable(token.value, ctx);\n if (varData) {\n packageFile = varData.packageFile;\n fileReplacePosition = varData.fileReplacePosition;\n if (varData.value === dep.currentValue) {\n dep.managerData = { fileReplacePosition, packageFile };\n dep.sharedVariableName = varData.key;\n }\n }\n }\n }\n\n if (!dep.managerData) {\n const lastToken = stringTokens[stringTokens.length - 1];\n if (\n lastToken?.type === 'string-value' &&\n dep.currentValue &&\n lastToken.value.includes(dep.currentValue)\n ) {\n packageFile = ctx.packageFile;\n if (stringTokens.length === 1) {\n fileReplacePosition = lastToken.offset + dep.depName!.length + 1;\n } else {\n fileReplacePosition =\n lastToken.offset + lastToken.value.lastIndexOf(dep.currentValue);\n }\n delete dep.sharedVariableName;\n } else {\n dep.skipReason = 'contains-variable';\n }\n dep.managerData = { fileReplacePosition, packageFile };\n }\n\n ctx.deps.push(dep);\n\n return ctx;\n}\n\nexport function handleKotlinShortNotationDep(ctx: Ctx): Ctx {\n const moduleNameTokens = loadFromTokenMap(ctx, 'artifactId');\n const versionTokens = loadFromTokenMap(ctx, 'version');\n\n const moduleName = interpolateString(moduleNameTokens, ctx);\n const versionValue = interpolateString(versionTokens, ctx);\n if (!moduleName || !versionValue) {\n return ctx;\n }\n\n const groupIdArtifactId = `org.jetbrains.kotlin:kotlin-${moduleName}`;\n const dep = parseDependencyString(`${groupIdArtifactId}:${versionValue}`);\n if (!dep) {\n return ctx;\n }\n\n dep.depName = moduleName;\n dep.packageName = groupIdArtifactId;\n dep.managerData = {\n fileReplacePosition: versionTokens[0].offset,\n packageFile: ctx.packageFile,\n };\n\n if (versionTokens.length > 1) {\n // = template string with multiple variables\n dep.skipReason = 'unspecified-version';\n } else if (versionTokens[0].type === 'symbol') {\n const varData = findVariable(versionTokens[0].value, ctx);\n if (varData) {\n dep.sharedVariableName = varData.key;\n dep.currentValue = varData.value;\n dep.managerData = {\n fileReplacePosition: varData.fileReplacePosition,\n packageFile: varData.packageFile,\n };\n }\n }\n\n ctx.deps.push(dep);\n\n return ctx;\n}\n\nexport function handleLongFormDep(ctx: Ctx): Ctx {\n const groupIdTokens = loadFromTokenMap(ctx, 'groupId');\n const artifactIdTokens = loadFromTokenMap(ctx, 'artifactId');\n const versionTokens = loadFromTokenMap(ctx, 'version');\n\n const groupId = interpolateString(groupIdTokens, ctx);\n const artifactId = interpolateString(artifactIdTokens, ctx);\n const version = interpolateString(versionTokens, ctx);\n if (!groupId || !artifactId || !version) {\n return ctx;\n }\n\n // Special handling: 3 independent dependencies mismatched as groupId, artifactId, version\n if (\n isDependencyString(groupId) &&\n isDependencyString(artifactId) &&\n isDependencyString(version)\n ) {\n ctx.tokenMap.templateStringTokens = groupIdTokens;\n handleDepString(ctx);\n ctx.tokenMap.templateStringTokens = artifactIdTokens;\n handleDepString(ctx);\n ctx.tokenMap.templateStringTokens = versionTokens;\n handleDepString(ctx);\n\n return ctx;\n }\n\n const dep = parseDependencyString([groupId, artifactId, version].join(':'));\n if (!dep) {\n return ctx;\n }\n\n const methodName = ctx.tokenMap.methodName ?? null;\n if (versionTokens.length > 1) {\n // = template string with multiple variables\n dep.skipReason = 'unspecified-version';\n } else if (versionTokens[0].type === 'symbol') {\n const varData = findVariable(versionTokens[0].value, ctx);\n if (varData) {\n dep.sharedVariableName = varData.key;\n dep.managerData = {\n fileReplacePosition: varData.fileReplacePosition,\n packageFile: varData.packageFile,\n };\n }\n } else {\n // = string value\n if (methodName?.[0]?.value === 'dependencySet') {\n dep.sharedVariableName = `${groupId}:${version}`;\n }\n dep.managerData = {\n fileReplacePosition: versionTokens[0].offset,\n packageFile: ctx.packageFile,\n };\n }\n\n ctx.deps.push(dep);\n\n return ctx;\n}\n\nexport function handlePlugin(ctx: Ctx): Ctx {\n const methodName = loadFromTokenMap(ctx, 'methodName')[0];\n const pluginName = loadFromTokenMap(ctx, 'pluginName')[0];\n const pluginVersion = loadFromTokenMap(ctx, 'version');\n\n const plugin = pluginName.value;\n const depName =\n methodName.value === 'kotlin' ? `org.jetbrains.kotlin.${plugin}` : plugin;\n const packageName = `${depName}:${depName}.gradle.plugin`;\n\n const dep: PackageDependency<GradleManagerData> = {\n depType: 'plugin',\n depName,\n packageName,\n commitMessageTopic: `plugin ${depName}`,\n currentValue: pluginVersion[0].value,\n managerData: {\n fileReplacePosition: pluginVersion[0].offset,\n packageFile: ctx.packageFile,\n },\n };\n\n if (pluginVersion.length > 1) {\n // = template string with multiple variables\n dep.skipReason = 'unspecified-version';\n } else if (pluginVersion[0].type === 'symbol') {\n const varData = findVariable(pluginVersion[0].value, ctx);\n if (varData) {\n dep.sharedVariableName = varData.key;\n dep.currentValue = varData.value;\n dep.managerData = {\n fileReplacePosition: varData.fileReplacePosition,\n packageFile: varData.packageFile,\n };\n } else {\n dep.skipReason = 'unspecified-version';\n }\n }\n\n ctx.deps.push(dep);\n\n return ctx;\n}\n\nfunction isValidContentDescriptorRegex(\n fieldName: string,\n pattern: string,\n): boolean {\n try {\n regEx(pattern);\n } catch {\n logger.debug(\n `Skipping content descriptor with unsupported regExp pattern for ${fieldName}: ${pattern}`,\n );\n return false;\n }\n\n return true;\n}\n\nexport function handleRegistryContent(ctx: Ctx): Ctx {\n const methodName = loadFromTokenMap(ctx, 'methodName')[0].value;\n let groupId = loadFromTokenMap(ctx, 'groupId')[0].value;\n\n let matcher: ContentDescriptorMatcher = 'simple';\n if (methodName.includes('Regex')) {\n matcher = 'regex';\n groupId = `^${groupId}$`.replaceAll('\\\\\\\\', '\\\\');\n if (!isValidContentDescriptorRegex('group', groupId)) {\n return ctx;\n }\n } else if (methodName.includes('AndSubgroups')) {\n matcher = 'subgroup';\n }\n\n const mode = methodName.startsWith('include') ? 'include' : 'exclude';\n const spec: ContentDescriptorSpec = { mode, matcher, groupId };\n\n if (methodName.includes('Module') || methodName.includes('Version')) {\n spec.artifactId = loadFromTokenMap(ctx, 'artifactId')[0].value;\n if (matcher === 'regex') {\n spec.artifactId = `^${spec.artifactId}$`.replaceAll('\\\\\\\\', '\\\\');\n if (!isValidContentDescriptorRegex('module', spec.artifactId)) {\n return ctx;\n }\n }\n }\n\n if (methodName.includes('Version')) {\n spec.version = loadFromTokenMap(ctx, 'version')[0].value;\n if (matcher === 'regex') {\n spec.version = `^${spec.version}$`.replaceAll('\\\\\\\\', '\\\\');\n if (!isValidContentDescriptorRegex('version', spec.version)) {\n return ctx;\n }\n }\n }\n\n ctx.tmpRegistryContent.push(spec);\n\n return ctx;\n}\n\nfunction isPluginRegistry(ctx: Ctx): boolean {\n if (ctx.tokenMap.registryScope) {\n const registryScope = loadFromTokenMap(ctx, 'registryScope')[0].value;\n return registryScope === 'pluginManagement';\n }\n\n return false;\n}\n\nfunction isExclusiveRegistry(ctx: Ctx): boolean {\n if (ctx.tokenMap.registryType) {\n const registryType = loadFromTokenMap(ctx, 'registryType')[0].value;\n return registryType === 'exclusiveContent';\n }\n\n return false;\n}\n\nexport function handleRegistryUrl(ctx: Ctx): Ctx {\n let localVariables = ctx.globalVars;\n\n if (ctx.tokenMap.name) {\n const nameTokens = loadFromTokenMap(ctx, 'name');\n const nameValue = interpolateString(nameTokens, ctx, localVariables);\n if (nameValue) {\n localVariables = {\n ...localVariables,\n name: {\n key: 'name',\n value: nameValue,\n },\n };\n }\n }\n\n let registryUrl = interpolateString(\n loadFromTokenMap(ctx, 'registryUrl'),\n ctx,\n localVariables,\n );\n if (registryUrl) {\n registryUrl = registryUrl.replace(regEx(/\\\\/g), '');\n const url = parseUrl(registryUrl);\n if (url?.host && url.protocol) {\n ctx.registryUrls.push({\n registryUrl,\n registryType: isExclusiveRegistry(ctx) ? 'exclusive' : 'regular',\n scope: isPluginRegistry(ctx) ? 'plugin' : 'dep',\n content: ctx.tmpRegistryContent,\n });\n }\n }\n\n return ctx;\n}\n\nexport function handleLibraryDep(ctx: Ctx): Ctx {\n const groupIdTokens = loadFromTokenMap(ctx, 'groupId');\n const artifactIdTokens = loadFromTokenMap(ctx, 'artifactId');\n\n const groupId = interpolateString(groupIdTokens, ctx);\n const artifactId = interpolateString(artifactIdTokens, ctx);\n if (!groupId || !artifactId) {\n return ctx;\n }\n\n const aliasToken = loadFromTokenMap(ctx, 'alias')[0];\n const key = `libs.${aliasToken.value.replace(regEx(/[-_]/g), '.')}`;\n\n ctx.globalVars[key] = {\n key,\n value: `${groupId}:${artifactId}`,\n fileReplacePosition: aliasToken.offset,\n packageFile: ctx.packageFile,\n };\n\n if (ctx.tokenMap.version) {\n const version = interpolateString(loadFromTokenMap(ctx, 'version'), ctx);\n if (version) {\n handleLongFormDep(ctx);\n }\n }\n\n return ctx;\n}\n\nexport function handleApplyFrom(ctx: Ctx): Ctx {\n let scriptFile = interpolateString(loadFromTokenMap(ctx, 'scriptFile'), ctx);\n if (!scriptFile) {\n return ctx;\n }\n\n if (ctx.tokenMap.parentPath) {\n const parentPath = interpolateString(\n loadFromTokenMap(ctx, 'parentPath'),\n ctx,\n );\n if (parentPath && scriptFile) {\n scriptFile = upath.join(parentPath, scriptFile);\n }\n }\n\n if (ctx.recursionDepth > 2) {\n logger.debug(`Max recursion depth reached in script file: ${scriptFile}`);\n return ctx;\n }\n\n if (!regEx(/\\.gradle(\\.kts)?$/).test(scriptFile)) {\n logger.debug({ scriptFile }, `Only Gradle files can be included`);\n return ctx;\n }\n\n const scriptFilePath = getSiblingFileName(ctx.packageFile, scriptFile);\n if (!ctx.fileContents[scriptFilePath]) {\n logger.debug(`Failed to process included Gradle file ${scriptFilePath}`);\n return ctx;\n }\n\n const matchResult = parseGradle(\n // TODO #22198\n ctx.fileContents[scriptFilePath],\n ctx.globalVars,\n scriptFilePath,\n ctx.fileContents,\n ctx.recursionDepth + 1,\n );\n\n ctx.deps.push(...matchResult.deps);\n ctx.globalVars = { ...ctx.globalVars, ...matchResult.vars };\n ctx.registryUrls.push(...matchResult.urls);\n\n return ctx;\n}\n\nexport function handleImplicitDep(ctx: Ctx): Ctx {\n const implicitDepName = loadFromTokenMap(ctx, 'implicitDepName')[0].value;\n const versionTokens = loadFromTokenMap(ctx, 'version');\n const versionValue = interpolateString(versionTokens, ctx);\n if (!versionValue) {\n return ctx;\n }\n\n const isImplicitGradlePlugin = implicitDepName in GRADLE_PLUGINS;\n const groupIdArtifactId = isImplicitGradlePlugin\n ? GRADLE_PLUGINS[implicitDepName as keyof typeof GRADLE_PLUGINS][1]\n : GRADLE_TEST_SUITES[implicitDepName as keyof typeof GRADLE_TEST_SUITES];\n\n const dep = parseDependencyString(`${groupIdArtifactId}:${versionValue}`);\n if (!dep) {\n return ctx;\n }\n\n dep.depName = implicitDepName;\n dep.packageName = groupIdArtifactId;\n dep.managerData = {\n fileReplacePosition: versionTokens[0].offset,\n packageFile: ctx.packageFile,\n };\n\n if (versionTokens.length > 1) {\n // = template string with multiple variables\n dep.skipReason = 'unspecified-version';\n } else if (versionTokens[0].type === 'symbol') {\n const varData = findVariable(versionTokens[0].value, ctx);\n if (varData) {\n dep.sharedVariableName = varData.key;\n dep.currentValue = varData.value;\n dep.managerData = {\n fileReplacePosition: varData.fileReplacePosition,\n packageFile: varData.packageFile,\n };\n }\n }\n\n ctx.deps.push(dep);\n\n return ctx;\n}\n"]}
|
@@ -76,10 +76,7 @@ const qPredefinedRegistries = good_enough_parser_1.query
|
|
76
76
|
startsWith: '{',
|
77
77
|
endsWith: '}',
|
78
78
|
search: good_enough_parser_1.query.opt(qRegistryContent),
|
79
|
-
}))
|
80
|
-
.handler(handlers_1.handleRegistryUrl)
|
81
|
-
.handler(cleanupTmpContentSpec)
|
82
|
-
.handler(common_1.cleanupTempVars);
|
79
|
+
}));
|
83
80
|
// { url = "https://some.repo"; content { ... } }
|
84
81
|
const qMavenArtifactRegistry = good_enough_parser_1.query.tree({
|
85
82
|
type: 'wrapped-tree',
|
@@ -100,9 +97,7 @@ const qMavenArtifactRegistry = good_enough_parser_1.query.tree({
|
|
100
97
|
// maven(url = uri("https://foo.bar/baz"))
|
101
98
|
// maven("https://foo.bar/baz") { content { ... } }
|
102
99
|
// maven { name = some; url = "https://foo.bar/${name}" }
|
103
|
-
const qCustomRegistryUrl = good_enough_parser_1.query
|
104
|
-
.sym('maven')
|
105
|
-
.alt(good_enough_parser_1.query
|
100
|
+
const qCustomRegistryUrl = good_enough_parser_1.query.sym('maven').alt(good_enough_parser_1.query
|
106
101
|
.tree({
|
107
102
|
type: 'wrapped-tree',
|
108
103
|
maxDepth: 1,
|
@@ -110,7 +105,38 @@ const qCustomRegistryUrl = good_enough_parser_1.query
|
|
110
105
|
endsWith: ')',
|
111
106
|
search: good_enough_parser_1.query.begin().opt(good_enough_parser_1.query.sym('url').op('=')).join(qUri).end(),
|
112
107
|
})
|
113
|
-
.opt(qMavenArtifactRegistry), qMavenArtifactRegistry)
|
108
|
+
.opt(qMavenArtifactRegistry), qMavenArtifactRegistry);
|
109
|
+
// forRepository { maven { ... } }
|
110
|
+
const qForRepository = good_enough_parser_1.query.sym('forRepository').tree({
|
111
|
+
type: 'wrapped-tree',
|
112
|
+
maxDepth: 1,
|
113
|
+
maxMatches: 1,
|
114
|
+
startsWith: '{',
|
115
|
+
endsWith: '}',
|
116
|
+
search: good_enough_parser_1.query.alt(qPredefinedRegistries, qCustomRegistryUrl),
|
117
|
+
});
|
118
|
+
// filter { includeGroup(...); includeModule(...) }
|
119
|
+
const qFilter = good_enough_parser_1.query.sym('filter').tree({
|
120
|
+
type: 'wrapped-tree',
|
121
|
+
maxDepth: 1,
|
122
|
+
startsWith: '{',
|
123
|
+
endsWith: '}',
|
124
|
+
search: qContentDescriptor('include'),
|
125
|
+
});
|
126
|
+
// exclusiveContent { forRepository { ... }; filter { ... } }
|
127
|
+
const qExclusiveContent = good_enough_parser_1.query
|
128
|
+
.sym('exclusiveContent', common_1.storeVarToken)
|
129
|
+
.handler((ctx) => (0, common_1.storeInTokenMap)(ctx, 'registryType'))
|
130
|
+
.tree({
|
131
|
+
type: 'wrapped-tree',
|
132
|
+
maxDepth: 1,
|
133
|
+
maxMatches: 1,
|
134
|
+
startsWith: '{',
|
135
|
+
endsWith: '}',
|
136
|
+
search: good_enough_parser_1.query.alt(good_enough_parser_1.query.join(qForRepository, qFilter), good_enough_parser_1.query.join(qFilter, qForRepository)),
|
137
|
+
});
|
138
|
+
const qRegistries = good_enough_parser_1.query
|
139
|
+
.alt(qExclusiveContent, qPredefinedRegistries, qCustomRegistryUrl)
|
114
140
|
.handler(handlers_1.handleRegistryUrl)
|
115
141
|
.handler(cleanupTmpContentSpec)
|
116
142
|
.handler(common_1.cleanupTempVars);
|
@@ -130,11 +156,11 @@ const qPluginManagement = good_enough_parser_1.query.sym('pluginManagement', com
|
|
130
156
|
}
|
131
157
|
return ctx;
|
132
158
|
})
|
133
|
-
.alt(assignments_1.qAssignments, apply_from_1.qApplyFrom, plugins_1.qPlugins,
|
159
|
+
.alt(assignments_1.qAssignments, apply_from_1.qApplyFrom, plugins_1.qPlugins, qRegistries),
|
134
160
|
postHandler: (ctx) => {
|
135
161
|
delete ctx.tmpTokenStore.registryScope;
|
136
162
|
return ctx;
|
137
163
|
},
|
138
164
|
});
|
139
|
-
exports.qRegistryUrls = good_enough_parser_1.query.alt(good_enough_parser_1.query.sym('publishing').tree(), qPluginManagement,
|
165
|
+
exports.qRegistryUrls = good_enough_parser_1.query.alt(good_enough_parser_1.query.sym('publishing').tree(), qPluginManagement, qRegistries);
|
140
166
|
//# sourceMappingURL=registry-urls.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"registry-urls.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/gradle/parser/registry-urls.ts"],"names":[],"mappings":"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","sourcesContent":["import type { lexer, parser } from 'good-enough-parser';\nimport { query as q } from 'good-enough-parser';\nimport { regEx } from '../../../../util/regex';\nimport type { Ctx } from '../types';\nimport { qApplyFrom } from './apply-from';\nimport { qAssignments } from './assignments';\nimport {\n REGISTRY_URLS,\n cleanupTempVars,\n qArtifactId,\n qGroupId,\n qValueMatcher,\n qVersion,\n storeInTokenMap,\n storeVarToken,\n} from './common';\nimport { handleRegistryContent, handleRegistryUrl } from './handlers';\nimport { qPlugins } from './plugins';\n\nconst cleanupTmpContentSpec = (ctx: Ctx): Ctx => {\n ctx.tmpRegistryContent = [];\n return ctx;\n};\n\nconst qContentDescriptorSpec = (\n methodName: RegExp,\n matcher: q.QueryBuilder<Ctx, parser.Node>,\n): q.QueryBuilder<Ctx, parser.Node> => {\n return q\n .sym<Ctx>(methodName, storeVarToken)\n .handler((ctx) => storeInTokenMap(ctx, 'methodName'))\n .alt(\n // includeGroup \"foo.bar\"\n matcher,\n // includeGroup(\"foo.bar\")\n q.tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '(',\n endsWith: ')',\n search: q.begin<Ctx>().join(matcher).end(),\n }),\n );\n};\n\n// includeModule('foo')\n// excludeModuleByRegex('bar')\nconst qContentDescriptor = (\n mode: 'include' | 'exclude',\n): q.QueryBuilder<Ctx, parser.Node> => {\n return q\n .alt<Ctx>(\n qContentDescriptorSpec(\n regEx(\n `^(?:${mode}Group|${mode}GroupByRegex|${mode}GroupAndSubgroups)$`,\n ),\n qGroupId,\n ),\n qContentDescriptorSpec(\n regEx(`^(?:${mode}Module|${mode}ModuleByRegex)$`),\n q.join(qGroupId, q.op(','), qArtifactId),\n ),\n qContentDescriptorSpec(\n regEx(`^(?:${mode}Version|${mode}VersionByRegex)$`),\n q.join(qGroupId, q.op(','), qArtifactId, q.op(','), qVersion),\n ),\n )\n .handler(handleRegistryContent);\n};\n\n// content { includeModule('foo'); excludeModule('bar') }\nconst qRegistryContent = q.sym<Ctx>('content').tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '{',\n endsWith: '}',\n search: q.alt(qContentDescriptor('include'), qContentDescriptor('exclude')),\n});\n\n// uri(\"https://foo.bar/baz\")\n// \"https://foo.bar/baz\"\nconst qUri = q\n .alt(\n q.sym<Ctx>('uri').tree({\n maxDepth: 1,\n search: qValueMatcher,\n }),\n qValueMatcher,\n )\n .handler((ctx) => storeInTokenMap(ctx, 'registryUrl'));\n\n// mavenCentral()\n// mavenCentral { ... }\nconst qPredefinedRegistries = q\n .sym(\n regEx(`^(?:${Object.keys(REGISTRY_URLS).join('|')})$`),\n (ctx: Ctx, node: lexer.Token) => {\n const nodeTransformed: lexer.Token = {\n ...node,\n type: 'string-value',\n value: REGISTRY_URLS[node.value as keyof typeof REGISTRY_URLS],\n };\n storeVarToken(ctx, nodeTransformed);\n return ctx;\n },\n )\n .handler((ctx) => storeInTokenMap(ctx, 'registryUrl'))\n .alt(\n q\n .tree({\n type: 'wrapped-tree',\n startsWith: '(',\n endsWith: ')',\n search: q.begin<Ctx>().end(),\n })\n .opt(q.op<Ctx>('.').join(qRegistryContent)),\n q.tree({\n type: 'wrapped-tree',\n startsWith: '{',\n endsWith: '}',\n search: q.opt(qRegistryContent),\n }),\n )\n .handler(handleRegistryUrl)\n .handler(cleanupTmpContentSpec)\n .handler(cleanupTempVars);\n\n// { url = \"https://some.repo\"; content { ... } }\nconst qMavenArtifactRegistry = q.tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '{',\n endsWith: '}',\n search: q.alt(\n q\n .sym<Ctx>('name')\n .opt(q.op('='))\n .join(qValueMatcher)\n .handler((ctx) => storeInTokenMap(ctx, 'name')),\n q.sym<Ctx>('url').opt(q.op('=')).join(qUri),\n q.sym<Ctx>('setUrl').tree({\n maxDepth: 1,\n startsWith: '(',\n endsWith: ')',\n search: q.begin<Ctx>().join(qUri).end(),\n }),\n qRegistryContent,\n ),\n});\n\n// maven(url = uri(\"https://foo.bar/baz\"))\n// maven(\"https://foo.bar/baz\") { content { ... } }\n// maven { name = some; url = \"https://foo.bar/${name}\" }\nconst qCustomRegistryUrl = q\n .sym<Ctx>('maven')\n .alt(\n q\n .tree<Ctx>({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '(',\n endsWith: ')',\n search: q.begin<Ctx>().opt(q.sym<Ctx>('url').op('=')).join(qUri).end(),\n })\n .opt(qMavenArtifactRegistry),\n qMavenArtifactRegistry,\n )\n .handler(handleRegistryUrl)\n .handler(cleanupTmpContentSpec)\n .handler(cleanupTempVars);\n\nconst qPluginManagement = q.sym<Ctx>('pluginManagement', storeVarToken).tree({\n type: 'wrapped-tree',\n startsWith: '{',\n endsWith: '}',\n preHandler: (ctx) => {\n ctx.tmpTokenStore.registryScope = ctx.varTokens;\n ctx.varTokens = [];\n return ctx;\n },\n search: q\n .handler<Ctx>((ctx) => {\n if (ctx.tmpTokenStore.registryScope) {\n ctx.tokenMap.registryScope = ctx.tmpTokenStore.registryScope;\n }\n return ctx;\n })\n .alt(\n qAssignments,\n qApplyFrom,\n qPlugins,\n qPredefinedRegistries,\n qCustomRegistryUrl,\n ),\n postHandler: (ctx) => {\n delete ctx.tmpTokenStore.registryScope;\n return ctx;\n },\n});\n\nexport const qRegistryUrls = q.alt<Ctx>(\n q.sym<Ctx>('publishing').tree(),\n qPluginManagement,\n qPredefinedRegistries,\n qCustomRegistryUrl,\n);\n"]}
|
1
|
+
{"version":3,"file":"registry-urls.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/gradle/parser/registry-urls.ts"],"names":[],"mappings":"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","sourcesContent":["import type { lexer, parser } from 'good-enough-parser';\nimport { query as q } from 'good-enough-parser';\nimport { regEx } from '../../../../util/regex';\nimport type { Ctx } from '../types';\nimport { qApplyFrom } from './apply-from';\nimport { qAssignments } from './assignments';\nimport {\n REGISTRY_URLS,\n cleanupTempVars,\n qArtifactId,\n qGroupId,\n qValueMatcher,\n qVersion,\n storeInTokenMap,\n storeVarToken,\n} from './common';\nimport { handleRegistryContent, handleRegistryUrl } from './handlers';\nimport { qPlugins } from './plugins';\n\nconst cleanupTmpContentSpec = (ctx: Ctx): Ctx => {\n ctx.tmpRegistryContent = [];\n return ctx;\n};\n\nconst qContentDescriptorSpec = (\n methodName: RegExp,\n matcher: q.QueryBuilder<Ctx, parser.Node>,\n): q.QueryBuilder<Ctx, parser.Node> => {\n return q\n .sym<Ctx>(methodName, storeVarToken)\n .handler((ctx) => storeInTokenMap(ctx, 'methodName'))\n .alt(\n // includeGroup \"foo.bar\"\n matcher,\n // includeGroup(\"foo.bar\")\n q.tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '(',\n endsWith: ')',\n search: q.begin<Ctx>().join(matcher).end(),\n }),\n );\n};\n\n// includeModule('foo')\n// excludeModuleByRegex('bar')\nconst qContentDescriptor = (\n mode: 'include' | 'exclude',\n): q.QueryBuilder<Ctx, parser.Node> => {\n return q\n .alt<Ctx>(\n qContentDescriptorSpec(\n regEx(\n `^(?:${mode}Group|${mode}GroupByRegex|${mode}GroupAndSubgroups)$`,\n ),\n qGroupId,\n ),\n qContentDescriptorSpec(\n regEx(`^(?:${mode}Module|${mode}ModuleByRegex)$`),\n q.join(qGroupId, q.op(','), qArtifactId),\n ),\n qContentDescriptorSpec(\n regEx(`^(?:${mode}Version|${mode}VersionByRegex)$`),\n q.join(qGroupId, q.op(','), qArtifactId, q.op(','), qVersion),\n ),\n )\n .handler(handleRegistryContent);\n};\n\n// content { includeModule('foo'); excludeModule('bar') }\nconst qRegistryContent = q.sym<Ctx>('content').tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '{',\n endsWith: '}',\n search: q.alt(qContentDescriptor('include'), qContentDescriptor('exclude')),\n});\n\n// uri(\"https://foo.bar/baz\")\n// \"https://foo.bar/baz\"\nconst qUri = q\n .alt(\n q.sym<Ctx>('uri').tree({\n maxDepth: 1,\n search: qValueMatcher,\n }),\n qValueMatcher,\n )\n .handler((ctx) => storeInTokenMap(ctx, 'registryUrl'));\n\n// mavenCentral()\n// mavenCentral { ... }\nconst qPredefinedRegistries = q\n .sym(\n regEx(`^(?:${Object.keys(REGISTRY_URLS).join('|')})$`),\n (ctx: Ctx, node: lexer.Token) => {\n const nodeTransformed: lexer.Token = {\n ...node,\n type: 'string-value',\n value: REGISTRY_URLS[node.value as keyof typeof REGISTRY_URLS],\n };\n storeVarToken(ctx, nodeTransformed);\n return ctx;\n },\n )\n .handler((ctx) => storeInTokenMap(ctx, 'registryUrl'))\n .alt(\n q\n .tree({\n type: 'wrapped-tree',\n startsWith: '(',\n endsWith: ')',\n search: q.begin<Ctx>().end(),\n })\n .opt(q.op<Ctx>('.').join(qRegistryContent)),\n q.tree({\n type: 'wrapped-tree',\n startsWith: '{',\n endsWith: '}',\n search: q.opt(qRegistryContent),\n }),\n );\n\n// { url = \"https://some.repo\"; content { ... } }\nconst qMavenArtifactRegistry = q.tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '{',\n endsWith: '}',\n search: q.alt(\n q\n .sym<Ctx>('name')\n .opt(q.op('='))\n .join(qValueMatcher)\n .handler((ctx) => storeInTokenMap(ctx, 'name')),\n q.sym<Ctx>('url').opt(q.op('=')).join(qUri),\n q.sym<Ctx>('setUrl').tree({\n maxDepth: 1,\n startsWith: '(',\n endsWith: ')',\n search: q.begin<Ctx>().join(qUri).end(),\n }),\n qRegistryContent,\n ),\n});\n\n// maven(url = uri(\"https://foo.bar/baz\"))\n// maven(\"https://foo.bar/baz\") { content { ... } }\n// maven { name = some; url = \"https://foo.bar/${name}\" }\nconst qCustomRegistryUrl = q.sym<Ctx>('maven').alt(\n q\n .tree<Ctx>({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '(',\n endsWith: ')',\n search: q.begin<Ctx>().opt(q.sym<Ctx>('url').op('=')).join(qUri).end(),\n })\n .opt(qMavenArtifactRegistry),\n qMavenArtifactRegistry,\n);\n\n// forRepository { maven { ... } }\nconst qForRepository = q.sym<Ctx>('forRepository').tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n maxMatches: 1,\n startsWith: '{',\n endsWith: '}',\n search: q.alt<Ctx>(qPredefinedRegistries, qCustomRegistryUrl),\n});\n\n// filter { includeGroup(...); includeModule(...) }\nconst qFilter = q.sym<Ctx>('filter').tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '{',\n endsWith: '}',\n search: qContentDescriptor('include'),\n});\n\n// exclusiveContent { forRepository { ... }; filter { ... } }\nconst qExclusiveContent = q\n .sym<Ctx>('exclusiveContent', storeVarToken)\n .handler((ctx) => storeInTokenMap(ctx, 'registryType'))\n .tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n maxMatches: 1,\n startsWith: '{',\n endsWith: '}',\n search: q.alt<Ctx>(\n q.join<Ctx>(qForRepository, qFilter),\n q.join<Ctx>(qFilter, qForRepository),\n ),\n });\n\nconst qRegistries = q\n .alt(qExclusiveContent, qPredefinedRegistries, qCustomRegistryUrl)\n .handler(handleRegistryUrl)\n .handler(cleanupTmpContentSpec)\n .handler(cleanupTempVars);\n\nconst qPluginManagement = q.sym<Ctx>('pluginManagement', storeVarToken).tree({\n type: 'wrapped-tree',\n startsWith: '{',\n endsWith: '}',\n preHandler: (ctx) => {\n ctx.tmpTokenStore.registryScope = ctx.varTokens;\n ctx.varTokens = [];\n return ctx;\n },\n search: q\n .handler<Ctx>((ctx) => {\n if (ctx.tmpTokenStore.registryScope) {\n ctx.tokenMap.registryScope = ctx.tmpTokenStore.registryScope;\n }\n return ctx;\n })\n .alt(qAssignments, qApplyFrom, qPlugins, qRegistries),\n postHandler: (ctx) => {\n delete ctx.tmpTokenStore.registryScope;\n return ctx;\n },\n});\n\nexport const qRegistryUrls = q.alt<Ctx>(\n q.sym<Ctx>('publishing').tree(),\n qPluginManagement,\n qRegistries,\n);\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gradle/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { lexer } from 'good-enough-parser';\nimport type { PackageDependency } from '../types';\n\nexport interface GradleManagerData {\n fileReplacePosition?: number;\n packageFile?: string;\n}\n\nexport interface VariableData extends GradleManagerData {\n key: string;\n value: string;\n}\n\nexport type PackageVariables = Record<string, VariableData>;\nexport type VariableRegistry = Record<string, PackageVariables>;\n\nexport interface ParseGradleResult {\n deps: PackageDependency<GradleManagerData>[];\n urls: PackageRegistry[];\n vars: PackageVariables;\n javaLanguageVersion?: string;\n}\n\nexport interface GradleCatalog {\n versions?: Record<string, GradleVersionPointerTarget>;\n libraries?: Record<\n string,\n GradleCatalogModuleDescriptor | GradleCatalogArtifactDescriptor | string\n >;\n plugins?: Record<string, GradleCatalogPluginDescriptor | string>;\n}\n\nexport interface GradleCatalogModuleDescriptor {\n module: string;\n version?: GradleVersionCatalogVersion;\n}\n\nexport interface GradleCatalogArtifactDescriptor {\n name: string;\n group: string;\n version?: GradleVersionCatalogVersion;\n}\n\nexport interface GradleCatalogPluginDescriptor {\n id: string;\n version: GradleVersionCatalogVersion;\n}\n\nexport interface VersionPointer {\n ref: string;\n}\n\n/**\n * Rich version declarations in Gradle version catalogs\n *\n * @see https://docs.gradle.org/current/userguide/rich_versions.html\n * @see https://docs.gradle.org/current/userguide/platforms.html#sub::toml-dependencies-format\n */\nexport interface RichVersion {\n require?: string;\n strictly?: string;\n prefer?: string;\n reject?: string[];\n rejectAll?: boolean;\n}\n\n// references cannot themselves be references\nexport type GradleVersionPointerTarget = string | RichVersion;\nexport type GradleVersionCatalogVersion = string | VersionPointer | RichVersion;\n\nexport type ContentDescriptorMatcher = 'simple' | 'regex' | 'subgroup';\n\nexport interface ContentDescriptorSpec {\n mode: 'include' | 'exclude';\n matcher: ContentDescriptorMatcher;\n groupId: string;\n artifactId?: string;\n version?: string;\n}\n\nexport interface PackageRegistry {\n registryUrl: string;\n scope: 'dep' | 'plugin';\n content?: ContentDescriptorSpec[];\n}\n\nexport interface Ctx {\n readonly packageFile: string;\n readonly fileContents: Record<string, string | null>;\n recursionDepth: number;\n\n globalVars: PackageVariables;\n deps: PackageDependency<GradleManagerData>[];\n registryUrls: PackageRegistry[];\n javaLanguageVersion?: string;\n\n varTokens: lexer.Token[];\n tmpKotlinImportStore: lexer.Token[][];\n tmpNestingDepth: lexer.Token[];\n tmpRegistryContent: ContentDescriptorSpec[];\n tmpTokenStore: Record<string, lexer.Token[]>;\n tokenMap: Record<string, lexer.Token[]>;\n}\n\nexport type NonEmptyArray<T> = T[] & { 0: T };\n"]}
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gradle/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { lexer } from 'good-enough-parser';\nimport type { PackageDependency } from '../types';\n\nexport interface GradleManagerData {\n fileReplacePosition?: number;\n packageFile?: string;\n}\n\nexport interface VariableData extends GradleManagerData {\n key: string;\n value: string;\n}\n\nexport type PackageVariables = Record<string, VariableData>;\nexport type VariableRegistry = Record<string, PackageVariables>;\n\nexport interface ParseGradleResult {\n deps: PackageDependency<GradleManagerData>[];\n urls: PackageRegistry[];\n vars: PackageVariables;\n javaLanguageVersion?: string;\n}\n\nexport interface GradleCatalog {\n versions?: Record<string, GradleVersionPointerTarget>;\n libraries?: Record<\n string,\n GradleCatalogModuleDescriptor | GradleCatalogArtifactDescriptor | string\n >;\n plugins?: Record<string, GradleCatalogPluginDescriptor | string>;\n}\n\nexport interface GradleCatalogModuleDescriptor {\n module: string;\n version?: GradleVersionCatalogVersion;\n}\n\nexport interface GradleCatalogArtifactDescriptor {\n name: string;\n group: string;\n version?: GradleVersionCatalogVersion;\n}\n\nexport interface GradleCatalogPluginDescriptor {\n id: string;\n version: GradleVersionCatalogVersion;\n}\n\nexport interface VersionPointer {\n ref: string;\n}\n\n/**\n * Rich version declarations in Gradle version catalogs\n *\n * @see https://docs.gradle.org/current/userguide/rich_versions.html\n * @see https://docs.gradle.org/current/userguide/platforms.html#sub::toml-dependencies-format\n */\nexport interface RichVersion {\n require?: string;\n strictly?: string;\n prefer?: string;\n reject?: string[];\n rejectAll?: boolean;\n}\n\n// references cannot themselves be references\nexport type GradleVersionPointerTarget = string | RichVersion;\nexport type GradleVersionCatalogVersion = string | VersionPointer | RichVersion;\n\nexport type ContentDescriptorMatcher = 'simple' | 'regex' | 'subgroup';\n\nexport interface ContentDescriptorSpec {\n mode: 'include' | 'exclude';\n matcher: ContentDescriptorMatcher;\n groupId: string;\n artifactId?: string;\n version?: string;\n}\n\nexport interface PackageRegistry {\n registryUrl: string;\n registryType: 'regular' | 'exclusive';\n scope: 'dep' | 'plugin';\n content?: ContentDescriptorSpec[];\n}\n\nexport interface Ctx {\n readonly packageFile: string;\n readonly fileContents: Record<string, string | null>;\n recursionDepth: number;\n\n globalVars: PackageVariables;\n deps: PackageDependency<GradleManagerData>[];\n registryUrls: PackageRegistry[];\n javaLanguageVersion?: string;\n\n varTokens: lexer.Token[];\n tmpKotlinImportStore: lexer.Token[][];\n tmpNestingDepth: lexer.Token[];\n tmpRegistryContent: ContentDescriptorSpec[];\n tmpTokenStore: Record<string, lexer.Token[]>;\n tokenMap: Record<string, lexer.Token[]>;\n}\n\nexport type NonEmptyArray<T> = T[] & { 0: T };\n"]}
|
@@ -189,9 +189,7 @@ function applyPropsInternal(dep, depPackageFile, props, previouslySeenProps) {
|
|
189
189
|
// TODO: wrong types here, props is already `MavenProp`
|
190
190
|
const propValue = props[propKey];
|
191
191
|
if (propValue) {
|
192
|
-
|
193
|
-
sharedVariableName = propKey;
|
194
|
-
}
|
192
|
+
sharedVariableName ??= propKey;
|
195
193
|
fileReplacePosition = propValue.fileReplacePosition;
|
196
194
|
propSource =
|
197
195
|
propValue.packageFile ??
|