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.
Files changed (237) hide show
  1. package/dist/config/options/index.js +13 -0
  2. package/dist/config/options/index.js.map +1 -1
  3. package/dist/config/presets/common.js +1 -0
  4. package/dist/config/presets/common.js.map +1 -1
  5. package/dist/config/presets/internal/custom-managers.js +15 -0
  6. package/dist/config/presets/internal/custom-managers.js.map +1 -1
  7. package/dist/constants/platforms.js +5 -1
  8. package/dist/constants/platforms.js.map +1 -1
  9. package/dist/data/monorepo.json +3 -1
  10. package/dist/data-files.generated.js +2 -2
  11. package/dist/data-files.generated.js.map +1 -1
  12. package/dist/instrumentation/index.js +28 -8
  13. package/dist/instrumentation/index.js.map +1 -1
  14. package/dist/modules/datasource/api.js +2 -0
  15. package/dist/modules/datasource/api.js.map +1 -1
  16. package/dist/modules/datasource/azure-pipelines-tasks/index.js +4 -0
  17. package/dist/modules/datasource/azure-pipelines-tasks/index.js.map +1 -1
  18. package/dist/modules/datasource/azure-pipelines-tasks/schema.d.ts +8 -0
  19. package/dist/modules/datasource/azure-pipelines-tasks/schema.js +1 -0
  20. package/dist/modules/datasource/azure-pipelines-tasks/schema.js.map +1 -1
  21. package/dist/modules/datasource/bazel/index.js +18 -1
  22. package/dist/modules/datasource/bazel/index.js.map +1 -1
  23. package/dist/modules/datasource/bazel/schema.d.ts +1 -0
  24. package/dist/modules/datasource/bazel/schema.js.map +1 -1
  25. package/dist/modules/datasource/bitbucket-server-tags/index.d.ts +19 -0
  26. package/dist/modules/datasource/bitbucket-server-tags/index.js +133 -0
  27. package/dist/modules/datasource/bitbucket-server-tags/index.js.map +1 -0
  28. package/dist/modules/datasource/bitbucket-server-tags/schema.d.ts +28 -0
  29. package/dist/modules/datasource/bitbucket-server-tags/schema.js +13 -0
  30. package/dist/modules/datasource/bitbucket-server-tags/schema.js.map +1 -0
  31. package/dist/modules/datasource/conda/prefix-dev.js +1 -3
  32. package/dist/modules/datasource/conda/prefix-dev.js.map +1 -1
  33. package/dist/modules/datasource/cpan/index.js +1 -3
  34. package/dist/modules/datasource/cpan/index.js.map +1 -1
  35. package/dist/modules/datasource/custom/schema.d.ts +3 -3
  36. package/dist/modules/datasource/deb/index.d.ts +4 -5
  37. package/dist/modules/datasource/deb/index.js +8 -9
  38. package/dist/modules/datasource/deb/index.js.map +1 -1
  39. package/dist/modules/datasource/deb/url.d.ts +3 -3
  40. package/dist/modules/datasource/deb/url.js +17 -13
  41. package/dist/modules/datasource/deb/url.js.map +1 -1
  42. package/dist/modules/datasource/docker/schema.d.ts +72 -96
  43. package/dist/modules/datasource/github-runners/index.js +2 -2
  44. package/dist/modules/datasource/github-runners/index.js.map +1 -1
  45. package/dist/modules/datasource/metadata.js +9 -1
  46. package/dist/modules/datasource/metadata.js.map +1 -1
  47. package/dist/modules/datasource/npm/get.d.ts +0 -1
  48. package/dist/modules/datasource/npm/get.js +14 -68
  49. package/dist/modules/datasource/npm/get.js.map +1 -1
  50. package/dist/modules/datasource/npm/types.d.ts +0 -8
  51. package/dist/modules/datasource/npm/types.js.map +1 -1
  52. package/dist/modules/datasource/packagist/schema.d.ts +7 -7
  53. package/dist/modules/datasource/types.d.ts +1 -0
  54. package/dist/modules/datasource/types.js.map +1 -1
  55. package/dist/modules/manager/argocd/schema.d.ts +12 -12
  56. package/dist/modules/manager/bazel-module/parser/maven.d.ts +6 -52
  57. package/dist/modules/manager/bazel-module/parser/oci.d.ts +3 -26
  58. package/dist/modules/manager/bazel-module/rules.d.ts +15 -125
  59. package/dist/modules/manager/bun/extract.d.ts +1 -0
  60. package/dist/modules/manager/bun/extract.js +53 -27
  61. package/dist/modules/manager/bun/extract.js.map +1 -1
  62. package/dist/modules/manager/bun/index.js +1 -1
  63. package/dist/modules/manager/bun/index.js.map +1 -1
  64. package/dist/modules/manager/bun/utils.d.ts +2 -0
  65. package/dist/modules/manager/bun/utils.js +22 -0
  66. package/dist/modules/manager/bun/utils.js.map +1 -0
  67. package/dist/modules/manager/cargo/schema.d.ts +3 -3
  68. package/dist/modules/manager/circleci/extract.js +21 -30
  69. package/dist/modules/manager/circleci/extract.js.map +1 -1
  70. package/dist/modules/manager/circleci/schema.d.ts +33 -144
  71. package/dist/modules/manager/circleci/schema.js +21 -17
  72. package/dist/modules/manager/circleci/schema.js.map +1 -1
  73. package/dist/modules/manager/composer/schema.d.ts +6 -8
  74. package/dist/modules/manager/conan/artifacts.d.ts +2 -0
  75. package/dist/modules/manager/conan/artifacts.js +76 -0
  76. package/dist/modules/manager/conan/artifacts.js.map +1 -0
  77. package/dist/modules/manager/conan/index.d.ts +2 -0
  78. package/dist/modules/manager/conan/index.js +4 -1
  79. package/dist/modules/manager/conan/index.js.map +1 -1
  80. package/dist/modules/manager/devbox/artifacts.js +7 -0
  81. package/dist/modules/manager/devbox/artifacts.js.map +1 -1
  82. package/dist/modules/manager/dockerfile/extract.js +2 -6
  83. package/dist/modules/manager/dockerfile/extract.js.map +1 -1
  84. package/dist/modules/manager/fingerprint.generated.js +10 -10
  85. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  86. package/dist/modules/manager/flux/schema.d.ts +36 -60
  87. package/dist/modules/manager/gomod/artifacts-extra.js +12 -4
  88. package/dist/modules/manager/gomod/artifacts-extra.js.map +1 -1
  89. package/dist/modules/manager/gomod/update.js +3 -1
  90. package/dist/modules/manager/gomod/update.js.map +1 -1
  91. package/dist/modules/manager/gradle/extract.js +8 -13
  92. package/dist/modules/manager/gradle/extract.js.map +1 -1
  93. package/dist/modules/manager/gradle/parser/handlers.js +8 -0
  94. package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
  95. package/dist/modules/manager/gradle/parser/registry-urls.js +36 -10
  96. package/dist/modules/manager/gradle/parser/registry-urls.js.map +1 -1
  97. package/dist/modules/manager/gradle/types.d.ts +1 -0
  98. package/dist/modules/manager/gradle/types.js.map +1 -1
  99. package/dist/modules/manager/maven/extract.js +1 -3
  100. package/dist/modules/manager/maven/extract.js.map +1 -1
  101. package/dist/modules/manager/nix/schema.d.ts +14 -14
  102. package/dist/modules/manager/nix/schema.js +1 -0
  103. package/dist/modules/manager/nix/schema.js.map +1 -1
  104. package/dist/modules/manager/npm/extract/common/package-file.js +1 -0
  105. package/dist/modules/manager/npm/extract/common/package-file.js.map +1 -1
  106. package/dist/modules/manager/nuget/extract.js +21 -18
  107. package/dist/modules/manager/nuget/extract.js.map +1 -1
  108. package/dist/modules/manager/pep621/schema.d.ts +292 -5
  109. package/dist/modules/manager/pip_requirements/common.js +2 -6
  110. package/dist/modules/manager/pip_requirements/common.js.map +1 -1
  111. package/dist/modules/manager/pixi/artifacts.js +4 -10
  112. package/dist/modules/manager/pixi/artifacts.js.map +1 -1
  113. package/dist/modules/manager/pixi/extract.d.ts +2 -0
  114. package/dist/modules/manager/pixi/extract.js +81 -3
  115. package/dist/modules/manager/pixi/extract.js.map +1 -1
  116. package/dist/modules/manager/pixi/index.d.ts +0 -1
  117. package/dist/modules/manager/pixi/index.js +1 -3
  118. package/dist/modules/manager/pixi/index.js.map +1 -1
  119. package/dist/modules/manager/pixi/schema.d.ts +394 -3
  120. package/dist/modules/manager/pixi/schema.js +135 -2
  121. package/dist/modules/manager/pixi/schema.js.map +1 -1
  122. package/dist/modules/manager/sveltos/schema.d.ts +18 -30
  123. package/dist/modules/manager/terraform/util.js +1 -3
  124. package/dist/modules/manager/terraform/util.js.map +1 -1
  125. package/dist/modules/manager/vendir/schema.d.ts +3 -3
  126. package/dist/modules/platform/bitbucket/schema.d.ts +3 -3
  127. package/dist/modules/platform/bitbucket-server/schema.d.ts +1 -0
  128. package/dist/modules/platform/bitbucket-server/schema.js +2 -1
  129. package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
  130. package/dist/modules/platform/gerrit/client.d.ts +0 -3
  131. package/dist/modules/platform/gerrit/client.js +8 -28
  132. package/dist/modules/platform/gerrit/client.js.map +1 -1
  133. package/dist/modules/platform/gerrit/index.js +0 -6
  134. package/dist/modules/platform/gerrit/index.js.map +1 -1
  135. package/dist/modules/platform/gerrit/scm.js +5 -6
  136. package/dist/modules/platform/gerrit/scm.js.map +1 -1
  137. package/dist/modules/platform/gerrit/types.d.ts +1 -4
  138. package/dist/modules/platform/gerrit/types.js.map +1 -1
  139. package/dist/modules/platform/gerrit/utils.d.ts +3 -2
  140. package/dist/modules/platform/gerrit/utils.js +3 -7
  141. package/dist/modules/platform/gerrit/utils.js.map +1 -1
  142. package/dist/modules/platform/gitea/index.js +7 -9
  143. package/dist/modules/platform/gitea/index.js.map +1 -1
  144. package/dist/modules/platform/github/issue.d.ts +6 -6
  145. package/dist/modules/platform/github/schema.d.ts +52 -52
  146. package/dist/modules/platform/gitlab/index.js +2 -6
  147. package/dist/modules/platform/gitlab/index.js.map +1 -1
  148. package/dist/modules/versioning/distro.js +1 -3
  149. package/dist/modules/versioning/distro.js.map +1 -1
  150. package/dist/util/cache/package/types.d.ts +1 -1
  151. package/dist/util/cache/package/types.js.map +1 -1
  152. package/dist/util/cache/repository/impl/base.js +4 -0
  153. package/dist/util/cache/repository/impl/base.js.map +1 -1
  154. package/dist/util/common.d.ts +4 -2
  155. package/dist/util/common.js +17 -3
  156. package/dist/util/common.js.map +1 -1
  157. package/dist/util/exec/containerbase.js +2 -3
  158. package/dist/util/exec/containerbase.js.map +1 -1
  159. package/dist/util/git/auth.js +8 -5
  160. package/dist/util/git/auth.js.map +1 -1
  161. package/dist/util/git/index.js +2 -6
  162. package/dist/util/git/index.js.map +1 -1
  163. package/dist/util/git/private-key.js +1 -3
  164. package/dist/util/git/private-key.js.map +1 -1
  165. package/dist/util/git/types.d.ts +2 -0
  166. package/dist/util/git/types.js.map +1 -1
  167. package/dist/util/git/url.js +1 -1
  168. package/dist/util/git/url.js.map +1 -1
  169. package/dist/util/github/graphql/datasource-fetcher.js +3 -5
  170. package/dist/util/github/graphql/datasource-fetcher.js.map +1 -1
  171. package/dist/util/http/bitbucket-server.d.ts +2 -1
  172. package/dist/util/http/bitbucket-server.js +5 -3
  173. package/dist/util/http/bitbucket-server.js.map +1 -1
  174. package/dist/util/http/cache/package-http-cache-provider.d.ts +23 -0
  175. package/dist/util/http/cache/package-http-cache-provider.js +80 -0
  176. package/dist/util/http/cache/package-http-cache-provider.js.map +1 -0
  177. package/dist/util/http/host-rules.js +12 -0
  178. package/dist/util/http/host-rules.js.map +1 -1
  179. package/dist/util/schema-utils.d.ts +1 -0
  180. package/dist/util/schema-utils.js +43 -8
  181. package/dist/util/schema-utils.js.map +1 -1
  182. package/dist/util/string.d.ts +1 -0
  183. package/dist/util/string.js +4 -0
  184. package/dist/util/string.js.map +1 -1
  185. package/dist/util/yaml.js +2 -3
  186. package/dist/util/yaml.js.map +1 -1
  187. package/dist/workers/global/config/parse/index.js +10 -0
  188. package/dist/workers/global/config/parse/index.js.map +1 -1
  189. package/dist/workers/global/index.js +4 -2
  190. package/dist/workers/global/index.js.map +1 -1
  191. package/dist/workers/repository/process/lookup/index.js +2 -0
  192. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  193. package/dist/workers/repository/process/lookup/timestamps.d.ts +18 -0
  194. package/dist/workers/repository/process/lookup/timestamps.js +69 -0
  195. package/dist/workers/repository/process/lookup/timestamps.js.map +1 -0
  196. package/dist/workers/repository/process/lookup/types.d.ts +1 -0
  197. package/dist/workers/repository/process/lookup/types.js.map +1 -1
  198. package/dist/workers/repository/process/lookup/utils.js +20 -9
  199. package/dist/workers/repository/process/lookup/utils.js.map +1 -1
  200. package/dist/workers/repository/process/sort.js +1 -1
  201. package/dist/workers/repository/process/sort.js.map +1 -1
  202. package/dist/workers/repository/reconfigure/utils.d.ts +2 -0
  203. package/dist/workers/repository/reconfigure/utils.js +16 -0
  204. package/dist/workers/repository/reconfigure/utils.js.map +1 -1
  205. package/dist/workers/repository/reconfigure/validate.js +5 -17
  206. package/dist/workers/repository/reconfigure/validate.js.map +1 -1
  207. package/dist/workers/repository/update/branch/auto-replace.js +25 -5
  208. package/dist/workers/repository/update/branch/auto-replace.js.map +1 -1
  209. package/dist/workers/repository/update/branch/commit.js +2 -0
  210. package/dist/workers/repository/update/branch/commit.js.map +1 -1
  211. package/dist/workers/repository/update/pr/body/config-description.js +26 -1
  212. package/dist/workers/repository/update/pr/body/config-description.js.map +1 -1
  213. package/dist/workers/repository/update/pr/body/index.js +21 -14
  214. package/dist/workers/repository/update/pr/body/index.js.map +1 -1
  215. package/dist/workers/repository/update/pr/changelog/api.js +8 -6
  216. package/dist/workers/repository/update/pr/changelog/api.js.map +1 -1
  217. package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.d.ts +3 -0
  218. package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.js +39 -0
  219. package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.js.map +1 -0
  220. package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.d.ts +8 -0
  221. package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.js +31 -0
  222. package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.js.map +1 -0
  223. package/dist/workers/repository/update/pr/changelog/release-notes.js +12 -8
  224. package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
  225. package/dist/workers/repository/update/pr/changelog/source.d.ts +1 -1
  226. package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
  227. package/dist/workers/repository/update/pr/changelog/types.d.ts +1 -1
  228. package/dist/workers/repository/update/pr/changelog/types.js.map +1 -1
  229. package/dist/workers/repository/update/pr/index.js +2 -4
  230. package/dist/workers/repository/update/pr/index.js.map +1 -1
  231. package/dist/workers/repository/updates/generate.js +2 -0
  232. package/dist/workers/repository/updates/generate.js.map +1 -1
  233. package/package.json +40 -37
  234. package/renovate-schema.json +9 -2
  235. package/dist/modules/manager/pixi/lockfile.d.ts +0 -6
  236. package/dist/modules/manager/pixi/lockfile.js +0 -25
  237. 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[depName] = currentValue;
37
+ addDeps[expandedDepName] = currentValue;
31
38
  }
32
39
  else {
33
- rmDeps[depName] = currentValue;
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 otherDepsCount = extraDeps.length - (goUpdated ? 1 : 0);
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":"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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, currentValue } = res;\n if (!depName || !currentValue) {\n continue;\n }\n\n if (added) {\n addDeps[depName] = currentValue;\n } else {\n rmDeps[depName] = 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 otherDepsCount = extraDeps.length - (goUpdated ? 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"]}
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
- let nameNoVersion = name.split('/').slice(0, 3).join('/');
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":";;AAaA,4CAsJC;AAnKD,uBAAuB;AACvB,4CAAyC;AACzC,+CAA0D;AAG1D,SAAS,oBAAoB,CAAC,IAAY;IACxC,IAAI,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,IAAI,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACzC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,OAAO,GACgB;IACvB,IAAI,CAAC;QACH,eAAM,CAAC,KAAK,CAAC,2BAA2B,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5D,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QACxC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;QACpC,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;YACjC,eAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,6CAA6C;QAC7C,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,oBAAY,CAAC,CAAC;QAC9C,sCAAsC;QACtC,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;YACnD,eAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;YACjE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC3D,eAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,qBAAqB,CAAC,CAAC;QAC/D,IACE,CAAC,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAC5C,CAAC,YAAY,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EACnD,CAAC;YACD,eAAM,CAAC,KAAK,CACV,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,EACtC,gDAAgD,CACjD,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,aAAiC,CAAC;QAEtC,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;YACpD,aAAa,GAAG,IAAA,aAAK,EACnB,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;gBAClC,aAAa,GAAG,IAAA,aAAK,EACnB,kEAAkE,CACnE,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,aAAa,GAAG,IAAA,aAAK,EACnB,yEAAyE,CAC1E,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3D,IAAI,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;gBAClC,aAAa,GAAG,IAAA,aAAK,EAAC,6CAA6C,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,aAAa,GAAG,IAAA,aAAK,EACnB,oDAAoD,CACrD,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACvD,eAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,OAAe,CAAC;QACpB,IAAI,OAAO,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,mBAAmB,GAAG,OAAO,CAAC,SAAU,CAAC,SAAS,CACtD,CAAC,EACD,OAAO,CAAC,aAAc,CAAC,MAAM,CAC9B,CAAC;YACF,IAAI,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC/C,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,eAAM,CAAC,KAAK,CACV,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,EAC3D,8BAA8B,CAC/B,CAAC;YACF,OAAO,GAAG,YAAY,CAAC,OAAO;YAC5B,mCAAmC;YACnC,aAAc,EACd,uBAAuB,mBAAmB,EAAE,CAC7C,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,YAAY,CAAC,OAAO;YAC5B,mCAAmC;YACnC,aAAc,EACd,uBAAuB,OAAO,CAAC,QAAQ,EAAE,CAC1C,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YACnC,eAAM,CAAC,KAAK,CAAC,2BAA2B,WAAW,EAAE,CAAC,CAAC;YACvD,IAAI,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC1C,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC/D,kEAAkE;gBAClE,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,wBAAwB,EACxB,2BAA2B,CAC5B,CAAC;YACJ,CAAC;iBAAM,IACL,OAAO,CAAC,QAAS,GAAG,CAAC;gBACrB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC1C,CAAC,OAAO,CAAC,QAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAC5C,CAAC;gBACD,IAAI,WAAW,KAAK,oBAAoB,EAAE,CAAC;oBACzC,0DAA0D;oBAC1D,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,WAAW,EACX,GAAG,WAAW,KAAK,OAAO,CAAC,QAAQ,EAAE,CACtC,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,kBAAkB;oBAClB,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,YAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAChD,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,IAAA,aAAK,EAAC,IAAI,IAAI,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,EACzC,KAAK,OAAO,CAAC,QAAQ,IAAI,CAC1B,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,IACE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC;YACtC,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5C,CAAC;YACD,IAAI,KAAK,GAAG,eAAe,CAAC;YAE5B,IAAI,OAAO,CAAC,UAAU,KAAK,OAAO,IAAI,OAAO,CAAC,QAAS,IAAI,CAAC,EAAE,CAAC;gBAC7D,KAAK,GAAG,EAAE,CAAC;YACb,CAAC;YACD,OAAO,IAAI,KAAK,CAAC;QACnB,CAAC;QACD,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;YAC7B,eAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACrC,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3B,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,IAAA,aAAK,EAAC,sCAAsC,CAAC,EAC7C,cAAc,CACf,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;QAChD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,kCAAkC,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC","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 registryUrls = packageRegistries
100
- .filter((item) => item.scope === scope)
101
- .filter((item) => matchesContentDescriptor(dep, item.content))
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
- if (!dep.datasource) {
180
- dep.datasource = mavenDatasource;
181
- }
178
+ dep.datasource ??= mavenDatasource;
182
179
  if (dep.datasource === mavenDatasource) {
183
180
  dep.registryUrls = getRegistryUrlsForDep(packageRegistries, dep);
184
- if (!dep.depType) {
185
- dep.depType =
186
- key.startsWith('buildSrc') && !kotlinSourceFiles.length
187
- ? 'devDependencies'
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":";;AAkDA,4DAiFC;AA8FD,wDAoEC;;AArSD,0DAA0B;AAC1B,4CAAyC;AACzC,+CAAkD;AAClD,yCAAiD;AACjD,+CAA4C;AAC5C,kDAAyD;AACzD,6EAAuD;AAEvD,+CAAiD;AACjD,qFAI8C;AAC9C,qCAAsE;AACtE,4CAAgD;AAOhD,mCASiB;AAEjB,MAAM,eAAe,GAAG,uBAAe,CAAC,EAAE,CAAC;AAE3C,SAAS,uBAAuB,CAC9B,iBAAoC,EACpC,IAAuB;IAEvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,IAAI,CACjD,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,WAAW,KAAK,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CACnE,CAAC;QACF,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1B,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,wBAAwB,CACtC,GAAyC,EACzC,kBAA4C;IAE5C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,OAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3E,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,KAAK,MAAM,OAAO,IAAI,IAAA,mBAAW,EAAC,kBAAkB,CAAC,EAAE,CAAC;QACtD,MAAM,EACJ,IAAI,EACJ,OAAO,EACP,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,iBAAiB,EAC7B,OAAO,EAAE,cAAc,GACxB,GAAG,OAAO,CAAC;QAEZ,iBAAiB;QACjB,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,UAAU,GAAG,IAAA,aAAK,EAAC,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAClC,UAAU;gBACR,OAAO,KAAK,cAAc,IAAI,GAAG,OAAO,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,OAAO,KAAK,cAAc,CAAC;QAC1C,CAAC;QAED,+BAA+B;QAC/B,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,IAAI,UAAU,IAAI,iBAAiB,EAAE,CAAC;YACpC,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBACxB,aAAa,GAAG,IAAA,aAAK,EAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,aAAa,GAAG,UAAU,KAAK,iBAAiB,CAAC;YACnD,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,IAAI,YAAY,GAAG,IAAI,CAAC;QACxB,IAAI,UAAU,IAAI,aAAa,IAAI,cAAc,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YACtE,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBACxB,YAAY,GAAG,IAAA,aAAK,EAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,6EAA6E;gBAC7E,YAAY,GAAG,gBAAgB,CAAC,OAAO,CACrC,GAAG,CAAC,YAAY,EAChB,cAAc,CACf,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,IAAI,aAAa,IAAI,YAAY,CAAC;QAC5D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,WAAW,GAAG,IAAI,CAAC;YACnB,IAAI,OAAO,EAAE,CAAC;gBACZ,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,WAAW,GAAG,IAAI,CAAC;YACnB,IAAI,OAAO,EAAE,CAAC;gBACZ,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;QAC/B,oFAAoF;QACpF,OAAO,cAAc,IAAI,CAAC,cAAc,CAAC;IAC3C,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,8DAA8D;QAC9D,OAAO,cAAc,CAAC;IACxB,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,yDAAyD;QACzD,OAAO,CAAC,cAAc,CAAC;IACzB,CAAC;IAED,kEAAkE;IAClE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAC5B,iBAAoC,EACpC,GAAyC;IAEzC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IAE1D,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,CACjD,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CACtE,CAAC;IAEF,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,MAAM,CACnD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,WAAW,CAC5C,CAAC;IAEF,MAAM,YAAY,GAAG,CACnB,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CACtE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAElC,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/C,YAAY,CAAC,IAAI,CAAC,sBAAa,CAAC,kBAAkB,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,MAAqB,EACrB,YAAsB,EACtB,aAAqD,EACrD,kBAA+C,EAC/C,iBAAoC;IAEpC,MAAM,WAAW,GAAqB,EAAE,CAAC;IACzC,MAAM,YAAY,GAAG,MAAM,IAAA,kBAAa,EAAC,YAAY,CAAC,CAAC;IAEvD,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,kBAAkB,CAAC,WAAW,CAAC,GAAG;YAChC,WAAW;YACX,UAAU,EAAE,eAAe;YAC3B,IAAI,EAAE,EAAE;SACT,CAAC;QAEF,IAAI,CAAC;YACH,cAAc;YACd,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CAAE,CAAC;YAC3C,MAAM,cAAc,GAAG,eAAK,CAAC,OAAO,CAAC,IAAA,sBAAc,EAAC,WAAW,CAAC,CAAC,CAAC;YAElE,IAAI,IAAA,mBAAW,EAAC,WAAW,CAAC,EAAE,CAAC;gBAC7B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAA,mBAAU,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBACxD,IAAA,kBAAU,EAAC,WAAW,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;gBAC9C,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9B,CAAC;iBAAM,IAAI,IAAA,kBAAU,EAAC,WAAW,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,IAAA,sBAAY,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAChD,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9B,CAAC;iBAAM,IACL,IAAA,2CAAc,EAAC,WAAW,CAAC;gBAC3B,IAAA,oCAAO,EAAC,WAAW,EAAE,YAAY,CAAC,EAClC,CAAC;gBACD,MAAM,IAAI,GAAG,IAAA,qCAAQ,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;gBACjD,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9B,CAAC;iBAAM,IAAI,IAAA,0BAAkB,EAAC,WAAW,CAAC,EAAE,CAAC;gBAC3C,MAAM,IAAI,GAAG,IAAA,eAAO,EAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBAClD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,IAAA,0BAAiB,EAClD,OAAO,EACP,IAAI,EACJ,WAAW,CACZ,CAAC;gBACF,IAAA,kBAAU,EAAC,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;gBACzC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9B,CAAC;iBAAM,IAAI,IAAA,0BAAkB,EAAC,WAAW,CAAC,EAAE,CAAC;gBAC3C,MAAM,IAAI,GAAG,IAAA,eAAO,EAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBAClD,MAAM,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EAAE,UAAU,GACjB,GAAG,IAAA,oBAAW,EAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;gBAC1D,uBAAuB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;gBACjD,IAAA,kBAAU,EAAC,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;gBACpD,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,eAAM,CAAC,KAAK,CACV,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,EAC5B,+BAA+B,CAChC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,sBAAsB,CAC1C,MAAqB,EACrB,YAAsB;IAEtB,MAAM,kBAAkB,GAAgC,EAAE,CAAC;IAC3D,MAAM,iBAAiB,GAAsB,EAAE,CAAC;IAChD,MAAM,aAAa,GAA2C,EAAE,CAAC;IACjE,MAAM,iBAAiB,GAAG,YAAY,CAAC,MAAM,CAAC,0BAAkB,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,IAAA,oBAAY,EAC9B,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAC3D,CAAC;IAEF,MAAM,iBAAiB,CACrB,MAAM,EACN,CAAC,GAAG,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,GAAG,WAAW,CAAC,EAC5D,aAAa,EACb,kBAAkB,EAClB,iBAAiB,CAClB,CAAC;IAEF,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,GAAG,CAAC,mBAAmB,GAAG,GAAG,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC,QAAQ;QAEzE,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC;QACzC,uBAAuB;QACvB,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,OAAO,GAAgB,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACnD,wFAAwF;YACxF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG;oBACR,WAAW,EAAE,GAAG;oBAChB,UAAU,EAAE,eAAe;oBAC3B,IAAI,EAAE,EAAE;iBACT,CAAC;YACJ,CAAC;YAED,GAAG,CAAC,UAAU,KAAK,eAAe,CAAC;YAEnC,IAAI,GAAG,CAAC,UAAU,KAAK,eAAe,EAAE,CAAC;gBACvC,GAAG,CAAC,YAAY,GAAG,qBAAqB,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;gBAEjE,GAAG,CAAC,OAAO;oBACT,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM;wBACrD,CAAC,CAAC,iBAAiB;wBACnB,CAAC,CAAC,cAAc,CAAC;YACvB,CAAC;YAED,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAC3C,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO;gBAC5B,IAAI,CAAC,WAAW,EAAE,mBAAmB;oBACnC,GAAG,CAAC,WAAW,EAAE,mBAAmB,CACzC,CAAC;YACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;YAED,kBAAkB,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,qCAAqC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAC3C,CAAC","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":"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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\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, qPredefinedRegistries, qCustomRegistryUrl),
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, qPredefinedRegistries, qCustomRegistryUrl);
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":";;;AACA,2DAAgD;AAChD,kDAA+C;AAE/C,6CAA0C;AAC1C,+CAA6C;AAC7C,qCASkB;AAClB,yCAAsE;AACtE,uCAAqC;AAErC,MAAM,qBAAqB,GAAG,CAAC,GAAQ,EAAO,EAAE;IAC9C,GAAG,CAAC,kBAAkB,GAAG,EAAE,CAAC;IAC5B,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAC7B,UAAkB,EAClB,OAAyC,EACP,EAAE;IACpC,OAAO,0BAAC;SACL,GAAG,CAAM,UAAU,EAAE,sBAAa,CAAC;SACnC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,wBAAe,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC;SACpD,GAAG;IACF,yBAAyB;IACzB,OAAO;IACP,0BAA0B;IAC1B,0BAAC,CAAC,IAAI,CAAC;QACL,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,GAAG;QACf,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,0BAAC,CAAC,KAAK,EAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE;KAC3C,CAAC,CACH,CAAC;AACN,CAAC,CAAC;AAEF,uBAAuB;AACvB,8BAA8B;AAC9B,MAAM,kBAAkB,GAAG,CACzB,IAA2B,EACO,EAAE;IACpC,OAAO,0BAAC;SACL,GAAG,CACF,sBAAsB,CACpB,IAAA,aAAK,EACH,OAAO,IAAI,SAAS,IAAI,gBAAgB,IAAI,qBAAqB,CAClE,EACD,iBAAQ,CACT,EACD,sBAAsB,CACpB,IAAA,aAAK,EAAC,OAAO,IAAI,UAAU,IAAI,iBAAiB,CAAC,EACjD,0BAAC,CAAC,IAAI,CAAC,iBAAQ,EAAE,0BAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,oBAAW,CAAC,CACzC,EACD,sBAAsB,CACpB,IAAA,aAAK,EAAC,OAAO,IAAI,WAAW,IAAI,kBAAkB,CAAC,EACnD,0BAAC,CAAC,IAAI,CAAC,iBAAQ,EAAE,0BAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,oBAAW,EAAE,0BAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,iBAAQ,CAAC,CAC9D,CACF;SACA,OAAO,CAAC,gCAAqB,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,yDAAyD;AACzD,MAAM,gBAAgB,GAAG,0BAAC,CAAC,GAAG,CAAM,SAAS,CAAC,CAAC,IAAI,CAAC;IAClD,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,0BAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;CAC5E,CAAC,CAAC;AAEH,6BAA6B;AAC7B,wBAAwB;AACxB,MAAM,IAAI,GAAG,0BAAC;KACX,GAAG,CACF,0BAAC,CAAC,GAAG,CAAM,KAAK,CAAC,CAAC,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,sBAAa;CACtB,CAAC,EACF,sBAAa,CACd;KACA,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,wBAAe,EAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;AAEzD,iBAAiB;AACjB,uBAAuB;AACvB,MAAM,qBAAqB,GAAG,0BAAC;KAC5B,GAAG,CACF,IAAA,aAAK,EAAC,OAAO,MAAM,CAAC,IAAI,CAAC,sBAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EACtD,CAAC,GAAQ,EAAE,IAAiB,EAAE,EAAE;IAC9B,MAAM,eAAe,GAAgB;QACnC,GAAG,IAAI;QACP,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,sBAAa,CAAC,IAAI,CAAC,KAAmC,CAAC;KAC/D,CAAC;IACF,IAAA,sBAAa,EAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACpC,OAAO,GAAG,CAAC;AACb,CAAC,CACF;KACA,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,wBAAe,EAAC,GAAG,EAAE,aAAa,CAAC,CAAC;KACrD,GAAG,CACF,0BAAC;KACE,IAAI,CAAC;IACJ,IAAI,EAAE,cAAc;IACpB,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,0BAAC,CAAC,KAAK,EAAO,CAAC,GAAG,EAAE;CAC7B,CAAC;KACD,GAAG,CAAC,0BAAC,CAAC,EAAE,CAAM,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAC7C,0BAAC,CAAC,IAAI,CAAC;IACL,IAAI,EAAE,cAAc;IACpB,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,0BAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC;CAChC,CAAC,CACH,CAAC;AAEJ,iDAAiD;AACjD,MAAM,sBAAsB,GAAG,0BAAC,CAAC,IAAI,CAAC;IACpC,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,0BAAC,CAAC,GAAG,CACX,0BAAC;SACE,GAAG,CAAM,MAAM,CAAC;SAChB,GAAG,CAAC,0BAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;SACd,IAAI,CAAC,sBAAa,CAAC;SACnB,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,wBAAe,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EACjD,0BAAC,CAAC,GAAG,CAAM,KAAK,CAAC,CAAC,GAAG,CAAC,0BAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAC3C,0BAAC,CAAC,GAAG,CAAM,QAAQ,CAAC,CAAC,IAAI,CAAC;QACxB,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,GAAG;QACf,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,0BAAC,CAAC,KAAK,EAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE;KACxC,CAAC,EACF,gBAAgB,CACjB;CACF,CAAC,CAAC;AAEH,0CAA0C;AAC1C,mDAAmD;AACnD,yDAAyD;AACzD,MAAM,kBAAkB,GAAG,0BAAC,CAAC,GAAG,CAAM,OAAO,CAAC,CAAC,GAAG,CAChD,0BAAC;KACE,IAAI,CAAM;IACT,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,0BAAC,CAAC,KAAK,EAAO,CAAC,GAAG,CAAC,0BAAC,CAAC,GAAG,CAAM,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE;CACvE,CAAC;KACD,GAAG,CAAC,sBAAsB,CAAC,EAC9B,sBAAsB,CACvB,CAAC;AAEF,kCAAkC;AAClC,MAAM,cAAc,GAAG,0BAAC,CAAC,GAAG,CAAM,eAAe,CAAC,CAAC,IAAI,CAAC;IACtD,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,0BAAC,CAAC,GAAG,CAAM,qBAAqB,EAAE,kBAAkB,CAAC;CAC9D,CAAC,CAAC;AAEH,mDAAmD;AACnD,MAAM,OAAO,GAAG,0BAAC,CAAC,GAAG,CAAM,QAAQ,CAAC,CAAC,IAAI,CAAC;IACxC,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,kBAAkB,CAAC,SAAS,CAAC;CACtC,CAAC,CAAC;AAEH,6DAA6D;AAC7D,MAAM,iBAAiB,GAAG,0BAAC;KACxB,GAAG,CAAM,kBAAkB,EAAE,sBAAa,CAAC;KAC3C,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,wBAAe,EAAC,GAAG,EAAE,cAAc,CAAC,CAAC;KACtD,IAAI,CAAC;IACJ,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,0BAAC,CAAC,GAAG,CACX,0BAAC,CAAC,IAAI,CAAM,cAAc,EAAE,OAAO,CAAC,EACpC,0BAAC,CAAC,IAAI,CAAM,OAAO,EAAE,cAAc,CAAC,CACrC;CACF,CAAC,CAAC;AAEL,MAAM,WAAW,GAAG,0BAAC;KAClB,GAAG,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,kBAAkB,CAAC;KACjE,OAAO,CAAC,4BAAiB,CAAC;KAC1B,OAAO,CAAC,qBAAqB,CAAC;KAC9B,OAAO,CAAC,wBAAe,CAAC,CAAC;AAE5B,MAAM,iBAAiB,GAAG,0BAAC,CAAC,GAAG,CAAM,kBAAkB,EAAE,sBAAa,CAAC,CAAC,IAAI,CAAC;IAC3E,IAAI,EAAE,cAAc;IACpB,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,GAAG;IACb,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE;QAClB,GAAG,CAAC,aAAa,CAAC,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC;QAChD,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,EAAE,0BAAC;SACN,OAAO,CAAM,CAAC,GAAG,EAAE,EAAE;QACpB,IAAI,GAAG,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;YACpC,GAAG,CAAC,QAAQ,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC;QAC/D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;SACD,GAAG,CAAC,0BAAY,EAAE,uBAAU,EAAE,kBAAQ,EAAE,WAAW,CAAC;IACvD,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE;QACnB,OAAO,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC;QACvC,OAAO,GAAG,CAAC;IACb,CAAC;CACF,CAAC,CAAC;AAEU,QAAA,aAAa,GAAG,0BAAC,CAAC,GAAG,CAChC,0BAAC,CAAC,GAAG,CAAM,YAAY,CAAC,CAAC,IAAI,EAAE,EAC/B,iBAAiB,EACjB,WAAW,CACZ,CAAC","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"]}
@@ -62,6 +62,7 @@ export interface ContentDescriptorSpec {
62
62
  }
63
63
  export interface PackageRegistry {
64
64
  registryUrl: string;
65
+ registryType: 'regular' | 'exclusive';
65
66
  scope: 'dep' | 'plugin';
66
67
  content?: ContentDescriptorSpec[];
67
68
  }
@@ -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
- if (!sharedVariableName) {
193
- sharedVariableName = propKey;
194
- }
192
+ sharedVariableName ??= propKey;
195
193
  fileReplacePosition = propValue.fileReplacePosition;
196
194
  propSource =
197
195
  propValue.packageFile ??