renovate 44.93.4 → 44.93.6

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 (81) hide show
  1. package/dist/config/options/index.js +1 -1
  2. package/dist/config/options/index.js.map +1 -1
  3. package/dist/global-config-option-defaults.generated.js +1 -1
  4. package/dist/global-config-option-defaults.generated.js.map +1 -1
  5. package/dist/modules/manager/bazel/rules/http.js.map +1 -1
  6. package/dist/modules/manager/cargo/extract.js.map +1 -1
  7. package/dist/modules/manager/composer/schema.js.map +1 -1
  8. package/dist/modules/manager/deps-edn/extract.js.map +1 -1
  9. package/dist/modules/manager/docker-compose/extract.js +1 -1
  10. package/dist/modules/manager/docker-compose/extract.js.map +1 -1
  11. package/dist/modules/manager/fingerprint.generated.js +21 -21
  12. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  13. package/dist/modules/manager/git-submodules/extract.js +1 -1
  14. package/dist/modules/manager/git-submodules/extract.js.map +1 -1
  15. package/dist/modules/manager/github-actions/known-actions.js +11 -1
  16. package/dist/modules/manager/github-actions/known-actions.js.map +1 -1
  17. package/dist/modules/manager/glasskube/extract.js +2 -2
  18. package/dist/modules/manager/glasskube/extract.js.map +1 -1
  19. package/dist/modules/manager/gomod/artifacts-extra.js.map +1 -1
  20. package/dist/modules/manager/gradle/extract/catalog.js +2 -0
  21. package/dist/modules/manager/gradle/extract/catalog.js.map +1 -1
  22. package/dist/modules/manager/gradle/extract/consistent-versions-plugin.js +3 -1
  23. package/dist/modules/manager/gradle/extract/consistent-versions-plugin.js.map +1 -1
  24. package/dist/modules/manager/gradle/extract.js +5 -2
  25. package/dist/modules/manager/gradle/extract.js.map +1 -1
  26. package/dist/modules/manager/gradle/parser/common.js +2 -0
  27. package/dist/modules/manager/gradle/parser/common.js.map +1 -1
  28. package/dist/modules/manager/gradle/parser/handlers.js +9 -0
  29. package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
  30. package/dist/modules/manager/gradle/parser/registry-urls.js +1 -0
  31. package/dist/modules/manager/gradle/parser/registry-urls.js.map +1 -1
  32. package/dist/modules/manager/gradle/parser.js +1 -0
  33. package/dist/modules/manager/gradle/parser.js.map +1 -1
  34. package/dist/modules/manager/helmfile/artifacts.js +1 -0
  35. package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
  36. package/dist/modules/manager/hermit/artifacts.js +1 -0
  37. package/dist/modules/manager/hermit/artifacts.js.map +1 -1
  38. package/dist/modules/manager/maven/extract.js +14 -4
  39. package/dist/modules/manager/maven/extract.js.map +1 -1
  40. package/dist/modules/manager/maven/update.js +3 -0
  41. package/dist/modules/manager/maven/update.js.map +1 -1
  42. package/dist/modules/manager/mix/artifacts.js +6 -1
  43. package/dist/modules/manager/mix/artifacts.js.map +1 -1
  44. package/dist/modules/manager/nuget/config-formatter.js +2 -0
  45. package/dist/modules/manager/nuget/config-formatter.js.map +1 -1
  46. package/dist/modules/manager/nuget/extract.js +2 -0
  47. package/dist/modules/manager/nuget/extract.js.map +1 -1
  48. package/dist/modules/manager/nuget/util.js +1 -0
  49. package/dist/modules/manager/nuget/util.js.map +1 -1
  50. package/dist/modules/manager/ocb/extract.js +1 -0
  51. package/dist/modules/manager/ocb/extract.js.map +1 -1
  52. package/dist/modules/manager/pep621/processors/uv.js +4 -0
  53. package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
  54. package/dist/modules/manager/pep621/schema.js +4 -1
  55. package/dist/modules/manager/pep621/schema.js.map +1 -1
  56. package/dist/modules/manager/pip-compile/common.js +2 -0
  57. package/dist/modules/manager/pip-compile/common.js.map +1 -1
  58. package/dist/modules/manager/pip-compile/utils.js +3 -1
  59. package/dist/modules/manager/pip-compile/utils.js.map +1 -1
  60. package/dist/modules/manager/pipenv/artifacts.js +3 -0
  61. package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
  62. package/dist/modules/manager/pipenv/extract.js +1 -0
  63. package/dist/modules/manager/pipenv/extract.js.map +1 -1
  64. package/dist/modules/manager/pixi/extract.js +1 -0
  65. package/dist/modules/manager/pixi/extract.js.map +1 -1
  66. package/dist/modules/manager/poetry/artifacts.js +1 -0
  67. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  68. package/dist/modules/manager/poetry/extract.js +1 -0
  69. package/dist/modules/manager/poetry/extract.js.map +1 -1
  70. package/dist/modules/manager/pre-commit/index.js.map +1 -1
  71. package/dist/modules/manager/swift/extract.js.map +1 -1
  72. package/dist/modules/manager/terraform/extractors/others/modules.js.map +1 -1
  73. package/dist/modules/manager/tflint-plugin/plugins.js.map +1 -1
  74. package/dist/modules/manager/vendir/artifacts.js +1 -0
  75. package/dist/modules/manager/vendir/artifacts.js.map +1 -1
  76. package/dist/util/http/legacy.js +6 -3
  77. package/dist/util/http/legacy.js.map +1 -1
  78. package/dist/workers/repository/extract/manager-files.js +4 -2
  79. package/dist/workers/repository/extract/manager-files.js.map +1 -1
  80. package/package.json +1 -1
  81. package/renovate-schema.json +2 -2
@@ -23,7 +23,7 @@ const globalConfigOptionDefaults = {
23
23
  "detectHostRulesFromEnv": false,
24
24
  "dockerChildPrefix": "renovate_",
25
25
  "dockerMaxPages": 20,
26
- "dockerSidecarImage": "ghcr.io/renovatebot/base-image:13.98.7",
26
+ "dockerSidecarImage": "ghcr.io/renovatebot/base-image:13.98.8",
27
27
  "dockerUser": "12021",
28
28
  "executionTimeout": 15,
29
29
  "exitCodeForErrors": false,
@@ -1 +1 @@
1
- {"version":3,"file":"global-config-option-defaults.generated.js","names":[],"sources":["../lib/global-config-option-defaults.generated.ts"],"sourcesContent":["\nexport const globalConfigOptionDefaults: Record<string, unknown> = {\n \"allowCustomCrateRegistries\": false,\n \"allowedCommands\": [],\n \"allowedEnv\": [],\n \"allowedHeaders\": [\n \"X-*\"\n ],\n \"allowedUnsafeExecutions\": [],\n \"allowPlugins\": false,\n \"allowScripts\": false,\n \"allowShellExecutorForPostUpgradeCommands\": false,\n \"autodiscover\": false,\n \"bbUseDevelopmentBranch\": false,\n \"binarySource\": \"install\",\n \"cacheHardTtlMinutes\": 10080,\n \"cachePrivatePackages\": false,\n \"cacheTtlOverride\": {},\n \"checkedBranches\": [],\n \"configValidationError\": false,\n \"customEnvVariables\": {},\n \"deleteAdditionalConfigFile\": false,\n \"deleteConfigFile\": false,\n \"detectGlobalManagerConfig\": false,\n \"detectHostRulesFromEnv\": false,\n \"dockerChildPrefix\": \"renovate_\",\n \"dockerMaxPages\": 20,\n \"dockerSidecarImage\": \"ghcr.io/renovatebot/base-image:13.98.7\",\n \"dockerUser\": \"12021\",\n \"executionTimeout\": 15,\n \"exitCodeForErrors\": false,\n \"exposeAllEnv\": false,\n \"forceCli\": true,\n \"forkCreation\": true,\n \"githubTokenWarn\": true,\n \"gitNoVerify\": [\n \"commit\",\n \"push\"\n ],\n \"gitTimeout\": 0,\n \"gitUrl\": \"default\",\n \"httpCacheTtlDays\": 90,\n \"ignorePrAuthor\": false,\n \"includeMirrors\": false,\n \"inheritConfig\": false,\n \"inheritConfigFileName\": \"org-inherited-config.json\",\n \"inheritConfigRepoName\": \"{{parentOrg}}/renovate-config\",\n \"inheritConfigStrict\": false,\n \"inheritConfigTrusted\": false,\n \"internalHostAccess\": \"warn\",\n \"mergeConfidenceDatasources\": [\n \"go\",\n \"maven\",\n \"npm\",\n \"nuget\",\n \"packagist\",\n \"pypi\",\n \"rubygems\"\n ],\n \"mergeConfidenceEndpoint\": \"https://developer.mend.io/\",\n \"migratePresets\": {},\n \"onboardingBranch\": \"renovate/configure\",\n \"onboardingConfig\": {\n \"$schema\": \"https://docs.renovatebot.com/renovate-schema.json\"\n },\n \"onboardingConfigFileName\": \"renovate.json\",\n \"onboardingNoDeps\": \"auto\",\n \"onboardingPrTitle\": \"Configure Renovate\",\n \"onboardingRebaseCheckbox\": false,\n \"optimizeForDisabled\": false,\n \"persistRepoData\": false,\n \"platform\": \"github\",\n \"prCacheSyncMaxPages\": 100,\n \"prCommitsPerRunLimit\": 0,\n \"presetCachePersistence\": false,\n \"processEnv\": {},\n \"productLinks\": {\n \"documentation\": \"https://docs.renovatebot.com/\",\n \"help\": \"https://github.com/renovatebot/renovate/discussions\",\n \"homepage\": \"https://github.com/renovatebot/renovate\"\n },\n \"rebaseAllOpenBranches\": false,\n \"reportFormatting\": false,\n \"repositoryCache\": \"disabled\",\n \"repositoryCacheForceLocal\": false,\n \"repositoryCacheType\": \"local\",\n \"requireConfig\": \"required\",\n \"s3PathStyle\": false,\n \"secrets\": {},\n \"unicodeEmoji\": true,\n \"useCloudMetadataServices\": true,\n \"userAgent\": \"Renovate/{{renovateVersion}} (https://github.com/renovatebot/renovate)\",\n \"variables\": {}\n};\n"],"mappings":";AACA,MAAa,6BAAsD;CACjE,8BAA8B;CAC9B,mBAAmB,CAAC;CACpB,cAAc,CAAC;CACf,kBAAkB,CAChB,KACF;CACA,2BAA2B,CAAC;CAC5B,gBAAgB;CAChB,gBAAgB;CAChB,4CAA4C;CAC5C,gBAAgB;CAChB,0BAA0B;CAC1B,gBAAgB;CAChB,uBAAuB;CACvB,wBAAwB;CACxB,oBAAoB,CAAC;CACrB,mBAAmB,CAAC;CACpB,yBAAyB;CACzB,sBAAsB,CAAC;CACvB,8BAA8B;CAC9B,oBAAoB;CACpB,6BAA6B;CAC7B,0BAA0B;CAC1B,qBAAqB;CACrB,kBAAkB;CAClB,sBAAsB;CACtB,cAAc;CACd,oBAAoB;CACpB,qBAAqB;CACrB,gBAAgB;CAChB,YAAY;CACZ,gBAAgB;CAChB,mBAAmB;CACnB,eAAe,CACb,UACA,MACF;CACA,cAAc;CACd,UAAU;CACV,oBAAoB;CACpB,kBAAkB;CAClB,kBAAkB;CAClB,iBAAiB;CACjB,yBAAyB;CACzB,yBAAyB;CACzB,uBAAuB;CACvB,wBAAwB;CACxB,sBAAsB;CACtB,8BAA8B;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,2BAA2B;CAC3B,kBAAkB,CAAC;CACnB,oBAAoB;CACpB,oBAAoB,EAClB,WAAW,oDACb;CACA,4BAA4B;CAC5B,oBAAoB;CACpB,qBAAqB;CACrB,4BAA4B;CAC5B,uBAAuB;CACvB,mBAAmB;CACnB,YAAY;CACZ,uBAAuB;CACvB,wBAAwB;CACxB,0BAA0B;CAC1B,cAAc,CAAC;CACf,gBAAgB;EACd,iBAAiB;EACjB,QAAQ;EACR,YAAY;CACd;CACA,yBAAyB;CACzB,oBAAoB;CACpB,mBAAmB;CACnB,6BAA6B;CAC7B,uBAAuB;CACvB,iBAAiB;CACjB,eAAe;CACf,WAAW,CAAC;CACZ,gBAAgB;CAChB,4BAA4B;CAC5B,aAAa;CACb,aAAa,CAAC;AAChB"}
1
+ {"version":3,"file":"global-config-option-defaults.generated.js","names":[],"sources":["../lib/global-config-option-defaults.generated.ts"],"sourcesContent":["\nexport const globalConfigOptionDefaults: Record<string, unknown> = {\n \"allowCustomCrateRegistries\": false,\n \"allowedCommands\": [],\n \"allowedEnv\": [],\n \"allowedHeaders\": [\n \"X-*\"\n ],\n \"allowedUnsafeExecutions\": [],\n \"allowPlugins\": false,\n \"allowScripts\": false,\n \"allowShellExecutorForPostUpgradeCommands\": false,\n \"autodiscover\": false,\n \"bbUseDevelopmentBranch\": false,\n \"binarySource\": \"install\",\n \"cacheHardTtlMinutes\": 10080,\n \"cachePrivatePackages\": false,\n \"cacheTtlOverride\": {},\n \"checkedBranches\": [],\n \"configValidationError\": false,\n \"customEnvVariables\": {},\n \"deleteAdditionalConfigFile\": false,\n \"deleteConfigFile\": false,\n \"detectGlobalManagerConfig\": false,\n \"detectHostRulesFromEnv\": false,\n \"dockerChildPrefix\": \"renovate_\",\n \"dockerMaxPages\": 20,\n \"dockerSidecarImage\": \"ghcr.io/renovatebot/base-image:13.98.8\",\n \"dockerUser\": \"12021\",\n \"executionTimeout\": 15,\n \"exitCodeForErrors\": false,\n \"exposeAllEnv\": false,\n \"forceCli\": true,\n \"forkCreation\": true,\n \"githubTokenWarn\": true,\n \"gitNoVerify\": [\n \"commit\",\n \"push\"\n ],\n \"gitTimeout\": 0,\n \"gitUrl\": \"default\",\n \"httpCacheTtlDays\": 90,\n \"ignorePrAuthor\": false,\n \"includeMirrors\": false,\n \"inheritConfig\": false,\n \"inheritConfigFileName\": \"org-inherited-config.json\",\n \"inheritConfigRepoName\": \"{{parentOrg}}/renovate-config\",\n \"inheritConfigStrict\": false,\n \"inheritConfigTrusted\": false,\n \"internalHostAccess\": \"warn\",\n \"mergeConfidenceDatasources\": [\n \"go\",\n \"maven\",\n \"npm\",\n \"nuget\",\n \"packagist\",\n \"pypi\",\n \"rubygems\"\n ],\n \"mergeConfidenceEndpoint\": \"https://developer.mend.io/\",\n \"migratePresets\": {},\n \"onboardingBranch\": \"renovate/configure\",\n \"onboardingConfig\": {\n \"$schema\": \"https://docs.renovatebot.com/renovate-schema.json\"\n },\n \"onboardingConfigFileName\": \"renovate.json\",\n \"onboardingNoDeps\": \"auto\",\n \"onboardingPrTitle\": \"Configure Renovate\",\n \"onboardingRebaseCheckbox\": false,\n \"optimizeForDisabled\": false,\n \"persistRepoData\": false,\n \"platform\": \"github\",\n \"prCacheSyncMaxPages\": 100,\n \"prCommitsPerRunLimit\": 0,\n \"presetCachePersistence\": false,\n \"processEnv\": {},\n \"productLinks\": {\n \"documentation\": \"https://docs.renovatebot.com/\",\n \"help\": \"https://github.com/renovatebot/renovate/discussions\",\n \"homepage\": \"https://github.com/renovatebot/renovate\"\n },\n \"rebaseAllOpenBranches\": false,\n \"reportFormatting\": false,\n \"repositoryCache\": \"disabled\",\n \"repositoryCacheForceLocal\": false,\n \"repositoryCacheType\": \"local\",\n \"requireConfig\": \"required\",\n \"s3PathStyle\": false,\n \"secrets\": {},\n \"unicodeEmoji\": true,\n \"useCloudMetadataServices\": true,\n \"userAgent\": \"Renovate/{{renovateVersion}} (https://github.com/renovatebot/renovate)\",\n \"variables\": {}\n};\n"],"mappings":";AACA,MAAa,6BAAsD;CACjE,8BAA8B;CAC9B,mBAAmB,CAAC;CACpB,cAAc,CAAC;CACf,kBAAkB,CAChB,KACF;CACA,2BAA2B,CAAC;CAC5B,gBAAgB;CAChB,gBAAgB;CAChB,4CAA4C;CAC5C,gBAAgB;CAChB,0BAA0B;CAC1B,gBAAgB;CAChB,uBAAuB;CACvB,wBAAwB;CACxB,oBAAoB,CAAC;CACrB,mBAAmB,CAAC;CACpB,yBAAyB;CACzB,sBAAsB,CAAC;CACvB,8BAA8B;CAC9B,oBAAoB;CACpB,6BAA6B;CAC7B,0BAA0B;CAC1B,qBAAqB;CACrB,kBAAkB;CAClB,sBAAsB;CACtB,cAAc;CACd,oBAAoB;CACpB,qBAAqB;CACrB,gBAAgB;CAChB,YAAY;CACZ,gBAAgB;CAChB,mBAAmB;CACnB,eAAe,CACb,UACA,MACF;CACA,cAAc;CACd,UAAU;CACV,oBAAoB;CACpB,kBAAkB;CAClB,kBAAkB;CAClB,iBAAiB;CACjB,yBAAyB;CACzB,yBAAyB;CACzB,uBAAuB;CACvB,wBAAwB;CACxB,sBAAsB;CACtB,8BAA8B;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,2BAA2B;CAC3B,kBAAkB,CAAC;CACnB,oBAAoB;CACpB,oBAAoB,EAClB,WAAW,oDACb;CACA,4BAA4B;CAC5B,oBAAoB;CACpB,qBAAqB;CACrB,4BAA4B;CAC5B,uBAAuB;CACvB,mBAAmB;CACnB,YAAY;CACZ,uBAAuB;CACvB,wBAAwB;CACxB,0BAA0B;CAC1B,cAAc,CAAC;CACf,gBAAgB;EACd,iBAAiB;EACjB,QAAQ;EACR,YAAY;CACd;CACA,yBAAyB;CACzB,oBAAoB;CACpB,mBAAmB;CACnB,6BAA6B;CAC7B,uBAAuB;CACvB,iBAAiB;CACjB,eAAe;CACf,WAAW,CAAC;CACZ,gBAAgB;CAChB,4BAA4B;CAC5B,aAAa;CACb,aAAa,CAAC;AAChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","names":[],"sources":["../../../../../lib/modules/manager/bazel/rules/http.ts"],"sourcesContent":["import { isString, isTruthy } from '@sindresorhus/is';\nimport { z } from 'zod/v4';\nimport { regEx } from '../../../../util/regex.ts';\nimport { parseUrl } from '../../../../util/url.ts';\nimport { GithubReleasesDatasource } from '../../../datasource/github-releases/index.ts';\nimport { GithubTagsDatasource } from '../../../datasource/github-tags/index.ts';\nimport { GitlabReleasesDatasource } from '../../../datasource/gitlab-releases/index.ts';\nimport { GitlabTagsDatasource } from '../../../datasource/gitlab-tags/index.ts';\nimport type { PackageDependency } from '../../types.ts';\n\n// Source: https://bazel.build/rules/lib/repo/http\nconst archives = [\n '.zip',\n '.tar',\n '.jar',\n '.war',\n '.aar',\n '.ar',\n '.deb',\n\n '.gz',\n '.tar.gz',\n '.tgz',\n\n '.bz2',\n '.tar.bz2',\n '.tbz2',\n\n '.xz',\n '.tar.xz',\n '.txz',\n\n '.zst',\n '.tar.zst',\n '.tzst',\n];\n\nconst archiveSuffixRegex = regEx(\n `(?:${archives.map((archive) => RegExp.escape(archive)).join('|')})$`,\n);\n\nfunction stripArchiveSuffix(value: string): string {\n return value.replace(archiveSuffixRegex, '');\n}\n\nfunction isHash(value: unknown): value is string {\n return isString(value) && regEx(/[0-9a-z]{40}/i).test(value);\n}\n\nexport function parseGithubPath(\n pathname: string,\n): Partial<PackageDependency> | null {\n const [p0, p1, p2, p3, p4, p5] = pathname.split('/').slice(1);\n const packageName = `${p0}/${p1}`;\n let datasource = '';\n let value: string | null = null;\n if (p2 === 'releases' && p3 === 'download') {\n datasource = GithubReleasesDatasource.id;\n value = p4;\n } else if (p2 === 'archive' && p3 === 'refs' && p4 === 'tags') {\n // https://github.com/foo/bar/archive/refs/tags/v1.2.3.tar.gz\n datasource = GithubTagsDatasource.id;\n value = p5;\n } else if (p2 === 'archive') {\n // https://github.com/foo/bar/archive/1.2.3.tar.gz\n datasource = GithubTagsDatasource.id;\n value = p3;\n }\n\n if (!value) {\n return null;\n }\n\n value = stripArchiveSuffix(value);\n return isHash(value)\n ? { datasource, packageName, currentDigest: value }\n : { datasource, packageName, currentValue: value };\n}\n\nfunction parseGitlabPath(pathname: string): Partial<PackageDependency> | null {\n // https://gitlab.com/libeigen/eigen/-/archive/3.3.5/eigen-3.3.5.zip\n // https://gitlab.com/libeigen/eigen/-/archive/90ee821c563fa20db4d64d6991ddca256d5c52f2/eigen-90ee821c563fa20db4d64d6991ddca256d5c52f2.tar.gz\n const [p0, p1, p2, p3, p4] = pathname.split('/').slice(1);\n const packageName = `${p0}/${p1}`;\n if (p2 === '-' && p3 === 'archive' && p4) {\n return isHash(p4)\n ? {\n datasource: GitlabTagsDatasource.id,\n packageName,\n currentDigest: p4,\n }\n : {\n datasource: GitlabReleasesDatasource.id,\n packageName,\n currentValue: p4,\n };\n }\n return null;\n}\n\nexport function parseArchiveUrl(\n urlString: string | undefined | null,\n): Partial<PackageDependency> | null {\n if (!urlString) {\n return null;\n }\n\n const url = parseUrl(urlString);\n\n if (url?.host === 'github.com') {\n return parseGithubPath(url.pathname);\n }\n\n if (url?.host === 'gitlab.com') {\n return parseGitlabPath(url.pathname);\n }\n\n return null;\n}\n\nexport const httpRules = [\n 'http_archive',\n '_http_archive',\n 'http_file',\n '_http_file',\n] as const;\n\nexport const HttpTarget = z\n .object({\n rule: z.enum(httpRules),\n name: z.string(),\n url: z.string().optional(),\n urls: z.array(z.string()).optional(),\n sha256: z.string(),\n })\n .refine(({ url, urls }) => !!url || !!urls)\n .transform(({ rule, name, url, urls = [] }): PackageDependency[] => {\n const parsedUrl = [url, ...urls].map(parseArchiveUrl).find(isTruthy);\n if (!parsedUrl) {\n return [];\n }\n\n const dep: PackageDependency = {\n datasource: parsedUrl.datasource,\n depType: rule,\n depName: name,\n packageName: parsedUrl.packageName,\n };\n\n // We don't want to set both `currentValue` and `currentDigest`.\n //\n // What we want is to provide the first occurrence of `currentValue`,\n // or, if it's not available, `currentDigest`.\n //\n // Auto-replace mechanism will replace this first occurrence,\n // and artifact update function will do the rest.\n //\n // Hence, `if-else-if` is being used here.\n if (parsedUrl.currentValue) {\n dep.currentValue = parsedUrl.currentValue;\n // NOTE: a url with neither a value nor a digest never gets this far. A\n // coverage-ignore hint cannot suppress the implicit else on an `else if`.\n } else if (parsedUrl.currentDigest) {\n dep.currentDigest = parsedUrl.currentDigest;\n }\n\n return [dep];\n });\n"],"mappings":";;;;;;;;;AAqCA,MAAM,qBAAqB,MACzB,MAAM;CA1BN;CACA;CACA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CAEA;CACA;CACA;CAEA;CACA;CACA;CAEA;CACA;CACA;AAIa,CAAC,CAAC,KAAK,YAAY,OAAO,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,GACpE;AAEA,SAAS,mBAAmB,OAAuB;CACjD,OAAO,MAAM,QAAQ,oBAAoB,EAAE;AAC7C;AAEA,SAAS,OAAO,OAAiC;CAC/C,OAAO,SAAS,KAAK,KAAK,MAAM,eAAe,CAAC,CAAC,KAAK,KAAK;AAC7D;AAEA,SAAgB,gBACd,UACmC;CACnC,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,SAAS,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;CAC5D,MAAM,cAAc,GAAG,GAAG,GAAG;CAC7B,IAAI,aAAa;CACjB,IAAI,QAAuB;CAC3B,IAAI,OAAO,cAAc,OAAO,YAAY;EAC1C,aAAa,yBAAyB;EACtC,QAAQ;CACV,OAAO,IAAI,OAAO,aAAa,OAAO,UAAU,OAAO,QAAQ;EAE7D,aAAa,qBAAqB;EAClC,QAAQ;CACV,OAAO,IAAI,OAAO,WAAW;EAE3B,aAAa,qBAAqB;EAClC,QAAQ;CACV;CAEA,IAAI,CAAC,OACH,OAAO;CAGT,QAAQ,mBAAmB,KAAK;CAChC,OAAO,OAAO,KAAK,IACf;EAAE;EAAY;EAAa,eAAe;CAAM,IAChD;EAAE;EAAY;EAAa,cAAc;CAAM;AACrD;AAEA,SAAS,gBAAgB,UAAqD;CAG5E,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,MAAM,SAAS,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;CACxD,MAAM,cAAc,GAAG,GAAG,GAAG;CAC7B,IAAI,OAAO,OAAO,OAAO,aAAa,IACpC,OAAO,OAAO,EAAE,IACZ;EACE,YAAY,qBAAqB;EACjC;EACA,eAAe;CACjB,IACA;EACE,YAAY,yBAAyB;EACrC;EACA,cAAc;CAChB;CAEN,OAAO;AACT;AAEA,SAAgB,gBACd,WACmC;CACnC,IAAI,CAAC,WACH,OAAO;CAGT,MAAM,MAAM,SAAS,SAAS;CAE9B,IAAI,KAAK,SAAS,cAChB,OAAO,gBAAgB,IAAI,QAAQ;CAGrC,IAAI,KAAK,SAAS,cAChB,OAAO,gBAAgB,IAAI,QAAQ;CAGrC,OAAO;AACT;AAEA,MAAa,YAAY;CACvB;CACA;CACA;CACA;AACF;AAEA,MAAa,aAAa,EACvB,OAAO;CACN,MAAM,EAAE,KAAK,SAAS;CACtB,MAAM,EAAE,OAAO;CACf,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS;CACzB,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CACnC,QAAQ,EAAE,OAAO;AACnB,CAAC,CAAC,CACD,QAAQ,EAAE,KAAK,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAC1C,WAAW,EAAE,MAAM,MAAM,KAAK,OAAO,CAAC,QAA6B;CAClE,MAAM,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,KAAK,QAAQ;CACnE,IAAI,CAAC,WACH,OAAO,CAAC;CAGV,MAAM,MAAyB;EAC7B,YAAY,UAAU;EACtB,SAAS;EACT,SAAS;EACT,aAAa,UAAU;CACzB;CAWA,IAAI,UAAU,cACZ,IAAI,eAAe,UAAU;MAGxB,IAAI,UAAU,eACnB,IAAI,gBAAgB,UAAU;CAGhC,OAAO,CAAC,GAAG;AACb,CAAC"}
1
+ {"version":3,"file":"http.js","names":[],"sources":["../../../../../lib/modules/manager/bazel/rules/http.ts"],"sourcesContent":["import { isString, isTruthy } from '@sindresorhus/is';\nimport { z } from 'zod/v4';\nimport { regEx } from '../../../../util/regex.ts';\nimport { parseUrl } from '../../../../util/url.ts';\nimport { GithubReleasesDatasource } from '../../../datasource/github-releases/index.ts';\nimport { GithubTagsDatasource } from '../../../datasource/github-tags/index.ts';\nimport { GitlabReleasesDatasource } from '../../../datasource/gitlab-releases/index.ts';\nimport { GitlabTagsDatasource } from '../../../datasource/gitlab-tags/index.ts';\nimport type { PackageDependency } from '../../types.ts';\n\n// Source: https://bazel.build/rules/lib/repo/http\nconst archives = [\n '.zip',\n '.tar',\n '.jar',\n '.war',\n '.aar',\n '.ar',\n '.deb',\n\n '.gz',\n '.tar.gz',\n '.tgz',\n\n '.bz2',\n '.tar.bz2',\n '.tbz2',\n\n '.xz',\n '.tar.xz',\n '.txz',\n\n '.zst',\n '.tar.zst',\n '.tzst',\n];\n\nconst archiveSuffixRegex = regEx(\n `(?:${archives.map((archive) => RegExp.escape(archive)).join('|')})$`,\n);\n\nfunction stripArchiveSuffix(value: string): string {\n return value.replace(archiveSuffixRegex, '');\n}\n\nfunction isHash(value: unknown): value is string {\n return isString(value) && regEx(/[0-9a-z]{40}/i).test(value);\n}\n\nexport function parseGithubPath(\n pathname: string,\n): Partial<PackageDependency> | null {\n const [p0, p1, p2, p3, p4, p5] = pathname.split('/').slice(1);\n const packageName = `${p0}/${p1}`;\n let datasource = '';\n let value: string | null = null;\n if (p2 === 'releases' && p3 === 'download') {\n datasource = GithubReleasesDatasource.id;\n value = p4;\n } else if (p2 === 'archive' && p3 === 'refs' && p4 === 'tags') {\n // https://github.com/foo/bar/archive/refs/tags/v1.2.3.tar.gz\n datasource = GithubTagsDatasource.id;\n value = p5;\n } else if (p2 === 'archive') {\n // https://github.com/foo/bar/archive/1.2.3.tar.gz\n datasource = GithubTagsDatasource.id;\n value = p3;\n }\n\n if (!value) {\n return null;\n }\n\n value = stripArchiveSuffix(value);\n return isHash(value)\n ? { datasource, packageName, currentDigest: value }\n : { datasource, packageName, currentValue: value };\n}\n\nfunction parseGitlabPath(pathname: string): Partial<PackageDependency> | null {\n // https://gitlab.com/libeigen/eigen/-/archive/3.3.5/eigen-3.3.5.zip\n // https://gitlab.com/libeigen/eigen/-/archive/90ee821c563fa20db4d64d6991ddca256d5c52f2/eigen-90ee821c563fa20db4d64d6991ddca256d5c52f2.tar.gz\n const [p0, p1, p2, p3, p4] = pathname.split('/').slice(1);\n const packageName = `${p0}/${p1}`;\n if (p2 === '-' && p3 === 'archive' && p4) {\n return isHash(p4)\n ? {\n datasource: GitlabTagsDatasource.id,\n packageName,\n currentDigest: p4,\n }\n : {\n datasource: GitlabReleasesDatasource.id,\n packageName,\n currentValue: p4,\n };\n }\n return null;\n}\n\nexport function parseArchiveUrl(\n urlString: string | undefined | null,\n): Partial<PackageDependency> | null {\n if (!urlString) {\n return null;\n }\n\n const url = parseUrl(urlString);\n\n if (url?.host === 'github.com') {\n return parseGithubPath(url.pathname);\n }\n\n if (url?.host === 'gitlab.com') {\n return parseGitlabPath(url.pathname);\n }\n\n return null;\n}\n\nexport const httpRules = [\n 'http_archive',\n '_http_archive',\n 'http_file',\n '_http_file',\n] as const;\n\nexport const HttpTarget = z\n .object({\n rule: z.enum(httpRules),\n name: z.string(),\n url: z.string().optional(),\n urls: z.array(z.string()).optional(),\n sha256: z.string(),\n })\n .refine(({ url, urls }) => !!url || !!urls)\n .transform(({ rule, name, url, urls = [] }): PackageDependency[] => {\n const parsedUrl = [url, ...urls].map(parseArchiveUrl).find(isTruthy);\n if (!parsedUrl) {\n return [];\n }\n\n const dep: PackageDependency = {\n datasource: parsedUrl.datasource,\n depType: rule,\n depName: name,\n packageName: parsedUrl.packageName,\n };\n\n // We don't want to set both `currentValue` and `currentDigest`.\n //\n // What we want is to provide the first occurrence of `currentValue`,\n // or, if it's not available, `currentDigest`.\n //\n // Auto-replace mechanism will replace this first occurrence,\n // and artifact update function will do the rest.\n //\n // Hence, `if-else-if` is being used here.\n if (parsedUrl.currentValue) {\n dep.currentValue = parsedUrl.currentValue;\n } else if (parsedUrl.currentDigest) {\n dep.currentDigest = parsedUrl.currentDigest;\n }\n\n return [dep];\n });\n"],"mappings":";;;;;;;;;AAqCA,MAAM,qBAAqB,MACzB,MAAM;CA1BN;CACA;CACA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CAEA;CACA;CACA;CAEA;CACA;CACA;CAEA;CACA;CACA;AAIa,CAAC,CAAC,KAAK,YAAY,OAAO,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,GACpE;AAEA,SAAS,mBAAmB,OAAuB;CACjD,OAAO,MAAM,QAAQ,oBAAoB,EAAE;AAC7C;AAEA,SAAS,OAAO,OAAiC;CAC/C,OAAO,SAAS,KAAK,KAAK,MAAM,eAAe,CAAC,CAAC,KAAK,KAAK;AAC7D;AAEA,SAAgB,gBACd,UACmC;CACnC,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,SAAS,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;CAC5D,MAAM,cAAc,GAAG,GAAG,GAAG;CAC7B,IAAI,aAAa;CACjB,IAAI,QAAuB;CAC3B,IAAI,OAAO,cAAc,OAAO,YAAY;EAC1C,aAAa,yBAAyB;EACtC,QAAQ;CACV,OAAO,IAAI,OAAO,aAAa,OAAO,UAAU,OAAO,QAAQ;EAE7D,aAAa,qBAAqB;EAClC,QAAQ;CACV,OAAO,IAAI,OAAO,WAAW;EAE3B,aAAa,qBAAqB;EAClC,QAAQ;CACV;CAEA,IAAI,CAAC,OACH,OAAO;CAGT,QAAQ,mBAAmB,KAAK;CAChC,OAAO,OAAO,KAAK,IACf;EAAE;EAAY;EAAa,eAAe;CAAM,IAChD;EAAE;EAAY;EAAa,cAAc;CAAM;AACrD;AAEA,SAAS,gBAAgB,UAAqD;CAG5E,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,MAAM,SAAS,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;CACxD,MAAM,cAAc,GAAG,GAAG,GAAG;CAC7B,IAAI,OAAO,OAAO,OAAO,aAAa,IACpC,OAAO,OAAO,EAAE,IACZ;EACE,YAAY,qBAAqB;EACjC;EACA,eAAe;CACjB,IACA;EACE,YAAY,yBAAyB;EACrC;EACA,cAAc;CAChB;CAEN,OAAO;AACT;AAEA,SAAgB,gBACd,WACmC;CACnC,IAAI,CAAC,WACH,OAAO;CAGT,MAAM,MAAM,SAAS,SAAS;CAE9B,IAAI,KAAK,SAAS,cAChB,OAAO,gBAAgB,IAAI,QAAQ;CAGrC,IAAI,KAAK,SAAS,cAChB,OAAO,gBAAgB,IAAI,QAAQ;CAGrC,OAAO;AACT;AAEA,MAAa,YAAY;CACvB;CACA;CACA;CACA;AACF;AAEA,MAAa,aAAa,EACvB,OAAO;CACN,MAAM,EAAE,KAAK,SAAS;CACtB,MAAM,EAAE,OAAO;CACf,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS;CACzB,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CACnC,QAAQ,EAAE,OAAO;AACnB,CAAC,CAAC,CACD,QAAQ,EAAE,KAAK,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAC1C,WAAW,EAAE,MAAM,MAAM,KAAK,OAAO,CAAC,QAA6B;CAClE,MAAM,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,KAAK,QAAQ;CACnE,IAAI,CAAC,WACH,OAAO,CAAC;CAGV,MAAM,MAAyB;EAC7B,YAAY,UAAU;EACtB,SAAS;EACT,SAAS;EACT,aAAa,UAAU;CACzB;CAWA,IAAI,UAAU,cACZ,IAAI,eAAe,UAAU;MACxB,IAAI,UAAU,eACnB,IAAI,gBAAgB,UAAU;CAGhC,OAAO,CAAC,GAAG;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","names":["versioning"],"sources":["../../../../lib/modules/manager/cargo/extract.ts"],"sourcesContent":["import { isObject, isString } from '@sindresorhus/is';\nimport { logger } from '../../../logger/index.ts';\nimport { coerceArray } from '../../../util/array.ts';\nimport { getEnv } from '../../../util/env.ts';\nimport {\n findLocalSiblingOrParent,\n readLocalFile,\n} from '../../../util/fs/index.ts';\nimport { coerceObject } from '../../../util/object.ts';\nimport { api as versioning } from '../../versioning/cargo/index.ts';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types.ts';\nimport { extractLockFileVersions } from './locked-version.ts';\nimport { CargoConfig, CargoManifest } from './schema.ts';\nimport type {\n CargoManagerData,\n CargoRegistries,\n CargoRegistryUrl,\n} from './types.ts';\nimport { DEFAULT_REGISTRY_URL } from './utils.ts';\n\nconst DEFAULT_REGISTRY_ID = 'crates-io';\n\nfunction getCargoIndexEnv(registryName: string): string | null {\n const registry = registryName.toUpperCase().replaceAll('-', '_');\n return getEnv()[`CARGO_REGISTRIES_${registry}_INDEX`] ?? null;\n}\n\nfunction extractFromSection(\n dependencies: PackageDependency<CargoManagerData>[] | undefined,\n cargoRegistries: CargoRegistries,\n target?: string,\n): PackageDependency[] {\n if (!dependencies) {\n return [];\n }\n\n const deps: PackageDependency<CargoManagerData>[] = [];\n\n for (const dep of Object.values(dependencies)) {\n let registryUrls: string[] | undefined;\n\n if (dep.managerData?.registryName) {\n const registryUrl =\n getCargoIndexEnv(dep.managerData.registryName) ??\n cargoRegistries[dep.managerData?.registryName];\n if (registryUrl) {\n if (registryUrl !== DEFAULT_REGISTRY_URL) {\n registryUrls = [registryUrl];\n }\n } else {\n dep.skipReason = 'unknown-registry';\n }\n }\n\n if (registryUrls) {\n dep.registryUrls = registryUrls;\n } else {\n // if we don't have an explicit registry URL check if the default registry has a non-standard url\n if (cargoRegistries[DEFAULT_REGISTRY_ID]) {\n if (cargoRegistries[DEFAULT_REGISTRY_ID] !== DEFAULT_REGISTRY_URL) {\n dep.registryUrls = [cargoRegistries[DEFAULT_REGISTRY_ID]];\n }\n } else {\n // we always expect to have DEFAULT_REGISTRY_ID set, if it's not it means the config defines an alternative\n // registry that we couldn't resolve.\n dep.skipReason = 'unknown-registry';\n }\n }\n\n if (target) {\n dep.target = target;\n }\n deps.push(dep);\n }\n\n return deps;\n}\n\n/** Reads `.cargo/config.toml`, or, if not found, `.cargo/config` */\nasync function readCargoConfig(): Promise<CargoConfig | null> {\n for (const configName of ['config.toml', 'config']) {\n const path = `.cargo/${configName}`;\n const payload = await readLocalFile(path, 'utf8');\n if (payload) {\n const parsedCargoConfig = CargoConfig.safeParse(payload);\n if (parsedCargoConfig.success) {\n return parsedCargoConfig.data;\n }\n logger.debug(\n { err: parsedCargoConfig.error, path },\n `Error parsing cargo config`,\n );\n }\n }\n\n logger.debug('Neither .cargo/config nor .cargo/config.toml found');\n return null;\n}\n\n/** Extracts a map of cargo registries from a CargoConfig */\nfunction extractCargoRegistries(config: CargoConfig): CargoRegistries {\n const result: CargoRegistries = {};\n // check if we're overriding our default registry index\n result[DEFAULT_REGISTRY_ID] = resolveRegistryIndex(\n DEFAULT_REGISTRY_ID,\n config,\n );\n\n const registryNames = new Set([\n ...Object.keys(coerceObject(config.registries)),\n ...Object.keys(coerceObject(config.source)),\n ]);\n for (const registryName of registryNames) {\n result[registryName] = resolveRegistryIndex(registryName, config);\n }\n\n return result;\n}\n\nfunction resolveRegistryIndex(\n registryName: string,\n config: CargoConfig,\n originalNames = new Set<string>(),\n): CargoRegistryUrl {\n // if we have a source replacement, follow that.\n // https://doc.rust-lang.org/cargo/reference/source-replacement.html\n const replacementName = config.source?.[registryName]?.['replace-with'];\n if (replacementName) {\n logger.debug(\n `Replacing index of cargo registry ${registryName} with ${replacementName}`,\n );\n if (originalNames.has(replacementName)) {\n logger.warn({ registryName }, 'cargo registry resolves to itself');\n return null;\n }\n return resolveRegistryIndex(\n replacementName,\n config,\n originalNames.add(replacementName),\n );\n }\n\n const sourceRegistry = config.source?.[registryName]?.registry;\n if (sourceRegistry) {\n logger.debug(\n `Replacing cargo source registry with ${sourceRegistry} for ${registryName}`,\n );\n return sourceRegistry;\n }\n\n const registryIndex = config.registries?.[registryName]?.index;\n if (registryIndex) {\n return registryIndex;\n }\n // we don't need an explicit index if we're using the default registry\n if (registryName === DEFAULT_REGISTRY_ID) {\n return DEFAULT_REGISTRY_URL;\n }\n logger.debug(`${registryName} cargo registry is missing index`);\n return null;\n}\n\nexport async function extractPackageFile(\n content: string,\n packageFile: string,\n _config?: ExtractConfig,\n): Promise<PackageFileContent<CargoManagerData> | null> {\n logger.trace(`cargo.extractPackageFile(${packageFile})`);\n\n const cargoConfig = coerceObject(await readCargoConfig());\n const cargoRegistries = extractCargoRegistries(cargoConfig);\n\n const parsedCargoManifest = CargoManifest.safeParse(content);\n if (!parsedCargoManifest.success) {\n logger.debug(\n { err: parsedCargoManifest.error, packageFile },\n 'Error parsing Cargo.toml file',\n );\n return null;\n }\n\n const cargoManifest = parsedCargoManifest.data;\n\n /*\n There are the following sections in Cargo.toml:\n [package]\n [dependencies]\n [dev-dependencies]\n [build-dependencies]\n [target.*.dependencies]\n [workspace.dependencies]\n */\n const targetSection = cargoManifest.target;\n // An array of all dependencies in the target section\n let targetDeps: PackageDependency[] = [];\n if (targetSection) {\n const targets = Object.keys(targetSection);\n targets.forEach((target) => {\n const targetContent = targetSection[target];\n // Dependencies for `${target}`\n const deps = [\n ...extractFromSection(\n targetContent.dependencies,\n cargoRegistries,\n target,\n ),\n ...extractFromSection(\n targetContent['dev-dependencies'],\n cargoRegistries,\n target,\n ),\n ...extractFromSection(\n targetContent['build-dependencies'],\n cargoRegistries,\n target,\n ),\n ];\n targetDeps = targetDeps.concat(deps);\n });\n }\n\n const workspaceSection = cargoManifest.workspace;\n let workspaceDeps: PackageDependency[] = [];\n if (workspaceSection) {\n workspaceDeps = extractFromSection(\n workspaceSection.dependencies,\n cargoRegistries,\n undefined,\n );\n }\n\n const deps = [\n ...extractFromSection(cargoManifest.dependencies, cargoRegistries),\n ...extractFromSection(cargoManifest['dev-dependencies'], cargoRegistries),\n ...extractFromSection(cargoManifest['build-dependencies'], cargoRegistries),\n ...targetDeps,\n ...workspaceDeps,\n ];\n if (!deps.length) {\n return null;\n }\n\n const packageSection = cargoManifest.package;\n let version: string | undefined = undefined;\n if (packageSection) {\n if (isString(packageSection.version)) {\n version = packageSection.version;\n // NOTE: a version that is neither a string nor a workspace reference\n // leaves it unset. A coverage-ignore hint cannot suppress the implicit\n // else on an `else if`.\n } else if (\n isObject(packageSection.version) &&\n cargoManifest.workspace?.package?.version\n ) {\n // TODO: Support reading from parent workspace manifest?\n version = cargoManifest.workspace.package.version;\n }\n }\n\n const lockFileName = await findLocalSiblingOrParent(\n packageFile,\n 'Cargo.lock',\n );\n const res: PackageFileContent = { deps, packageFileVersion: version };\n if (lockFileName) {\n logger.debug(\n `Found lock file ${lockFileName} for packageFile: ${packageFile}`,\n );\n\n const versionsByPackage = await extractLockFileVersions(lockFileName);\n if (!versionsByPackage) {\n logger.debug(\n `Could not extract lock file versions from ${lockFileName}.`,\n );\n return res;\n }\n\n res.lockFiles = [lockFileName];\n\n for (const dep of deps) {\n const packageName = dep.packageName ?? dep.depName!;\n const versions = coerceArray(versionsByPackage.get(packageName));\n\n let lockedVersion: string | null = null;\n if (dep.currentValue) {\n lockedVersion = versioning.getSatisfyingVersion(\n versions,\n dep.currentValue,\n );\n }\n\n if (lockedVersion) {\n dep.lockedVersion = lockedVersion;\n } else {\n logger.debug(\n `No locked version found for package ${dep.depName} in the range of ${dep.currentValue}.`,\n );\n }\n }\n }\n\n return res;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"extract.js","names":["versioning"],"sources":["../../../../lib/modules/manager/cargo/extract.ts"],"sourcesContent":["import { isObject, isString } from '@sindresorhus/is';\nimport { logger } from '../../../logger/index.ts';\nimport { coerceArray } from '../../../util/array.ts';\nimport { getEnv } from '../../../util/env.ts';\nimport {\n findLocalSiblingOrParent,\n readLocalFile,\n} from '../../../util/fs/index.ts';\nimport { coerceObject } from '../../../util/object.ts';\nimport { api as versioning } from '../../versioning/cargo/index.ts';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types.ts';\nimport { extractLockFileVersions } from './locked-version.ts';\nimport { CargoConfig, CargoManifest } from './schema.ts';\nimport type {\n CargoManagerData,\n CargoRegistries,\n CargoRegistryUrl,\n} from './types.ts';\nimport { DEFAULT_REGISTRY_URL } from './utils.ts';\n\nconst DEFAULT_REGISTRY_ID = 'crates-io';\n\nfunction getCargoIndexEnv(registryName: string): string | null {\n const registry = registryName.toUpperCase().replaceAll('-', '_');\n return getEnv()[`CARGO_REGISTRIES_${registry}_INDEX`] ?? null;\n}\n\nfunction extractFromSection(\n dependencies: PackageDependency<CargoManagerData>[] | undefined,\n cargoRegistries: CargoRegistries,\n target?: string,\n): PackageDependency[] {\n if (!dependencies) {\n return [];\n }\n\n const deps: PackageDependency<CargoManagerData>[] = [];\n\n for (const dep of Object.values(dependencies)) {\n let registryUrls: string[] | undefined;\n\n if (dep.managerData?.registryName) {\n const registryUrl =\n getCargoIndexEnv(dep.managerData.registryName) ??\n cargoRegistries[dep.managerData?.registryName];\n if (registryUrl) {\n if (registryUrl !== DEFAULT_REGISTRY_URL) {\n registryUrls = [registryUrl];\n }\n } else {\n dep.skipReason = 'unknown-registry';\n }\n }\n\n if (registryUrls) {\n dep.registryUrls = registryUrls;\n } else {\n // if we don't have an explicit registry URL check if the default registry has a non-standard url\n if (cargoRegistries[DEFAULT_REGISTRY_ID]) {\n if (cargoRegistries[DEFAULT_REGISTRY_ID] !== DEFAULT_REGISTRY_URL) {\n dep.registryUrls = [cargoRegistries[DEFAULT_REGISTRY_ID]];\n }\n } else {\n // we always expect to have DEFAULT_REGISTRY_ID set, if it's not it means the config defines an alternative\n // registry that we couldn't resolve.\n dep.skipReason = 'unknown-registry';\n }\n }\n\n if (target) {\n dep.target = target;\n }\n deps.push(dep);\n }\n\n return deps;\n}\n\n/** Reads `.cargo/config.toml`, or, if not found, `.cargo/config` */\nasync function readCargoConfig(): Promise<CargoConfig | null> {\n for (const configName of ['config.toml', 'config']) {\n const path = `.cargo/${configName}`;\n const payload = await readLocalFile(path, 'utf8');\n if (payload) {\n const parsedCargoConfig = CargoConfig.safeParse(payload);\n if (parsedCargoConfig.success) {\n return parsedCargoConfig.data;\n }\n logger.debug(\n { err: parsedCargoConfig.error, path },\n `Error parsing cargo config`,\n );\n }\n }\n\n logger.debug('Neither .cargo/config nor .cargo/config.toml found');\n return null;\n}\n\n/** Extracts a map of cargo registries from a CargoConfig */\nfunction extractCargoRegistries(config: CargoConfig): CargoRegistries {\n const result: CargoRegistries = {};\n // check if we're overriding our default registry index\n result[DEFAULT_REGISTRY_ID] = resolveRegistryIndex(\n DEFAULT_REGISTRY_ID,\n config,\n );\n\n const registryNames = new Set([\n ...Object.keys(coerceObject(config.registries)),\n ...Object.keys(coerceObject(config.source)),\n ]);\n for (const registryName of registryNames) {\n result[registryName] = resolveRegistryIndex(registryName, config);\n }\n\n return result;\n}\n\nfunction resolveRegistryIndex(\n registryName: string,\n config: CargoConfig,\n originalNames = new Set<string>(),\n): CargoRegistryUrl {\n // if we have a source replacement, follow that.\n // https://doc.rust-lang.org/cargo/reference/source-replacement.html\n const replacementName = config.source?.[registryName]?.['replace-with'];\n if (replacementName) {\n logger.debug(\n `Replacing index of cargo registry ${registryName} with ${replacementName}`,\n );\n if (originalNames.has(replacementName)) {\n logger.warn({ registryName }, 'cargo registry resolves to itself');\n return null;\n }\n return resolveRegistryIndex(\n replacementName,\n config,\n originalNames.add(replacementName),\n );\n }\n\n const sourceRegistry = config.source?.[registryName]?.registry;\n if (sourceRegistry) {\n logger.debug(\n `Replacing cargo source registry with ${sourceRegistry} for ${registryName}`,\n );\n return sourceRegistry;\n }\n\n const registryIndex = config.registries?.[registryName]?.index;\n if (registryIndex) {\n return registryIndex;\n }\n // we don't need an explicit index if we're using the default registry\n if (registryName === DEFAULT_REGISTRY_ID) {\n return DEFAULT_REGISTRY_URL;\n }\n logger.debug(`${registryName} cargo registry is missing index`);\n return null;\n}\n\nexport async function extractPackageFile(\n content: string,\n packageFile: string,\n _config?: ExtractConfig,\n): Promise<PackageFileContent<CargoManagerData> | null> {\n logger.trace(`cargo.extractPackageFile(${packageFile})`);\n\n const cargoConfig = coerceObject(await readCargoConfig());\n const cargoRegistries = extractCargoRegistries(cargoConfig);\n\n const parsedCargoManifest = CargoManifest.safeParse(content);\n if (!parsedCargoManifest.success) {\n logger.debug(\n { err: parsedCargoManifest.error, packageFile },\n 'Error parsing Cargo.toml file',\n );\n return null;\n }\n\n const cargoManifest = parsedCargoManifest.data;\n\n /*\n There are the following sections in Cargo.toml:\n [package]\n [dependencies]\n [dev-dependencies]\n [build-dependencies]\n [target.*.dependencies]\n [workspace.dependencies]\n */\n const targetSection = cargoManifest.target;\n // An array of all dependencies in the target section\n let targetDeps: PackageDependency[] = [];\n if (targetSection) {\n const targets = Object.keys(targetSection);\n targets.forEach((target) => {\n const targetContent = targetSection[target];\n // Dependencies for `${target}`\n const deps = [\n ...extractFromSection(\n targetContent.dependencies,\n cargoRegistries,\n target,\n ),\n ...extractFromSection(\n targetContent['dev-dependencies'],\n cargoRegistries,\n target,\n ),\n ...extractFromSection(\n targetContent['build-dependencies'],\n cargoRegistries,\n target,\n ),\n ];\n targetDeps = targetDeps.concat(deps);\n });\n }\n\n const workspaceSection = cargoManifest.workspace;\n let workspaceDeps: PackageDependency[] = [];\n if (workspaceSection) {\n workspaceDeps = extractFromSection(\n workspaceSection.dependencies,\n cargoRegistries,\n undefined,\n );\n }\n\n const deps = [\n ...extractFromSection(cargoManifest.dependencies, cargoRegistries),\n ...extractFromSection(cargoManifest['dev-dependencies'], cargoRegistries),\n ...extractFromSection(cargoManifest['build-dependencies'], cargoRegistries),\n ...targetDeps,\n ...workspaceDeps,\n ];\n if (!deps.length) {\n return null;\n }\n\n const packageSection = cargoManifest.package;\n let version: string | undefined = undefined;\n if (packageSection) {\n if (isString(packageSection.version)) {\n version = packageSection.version;\n } else if (\n isObject(packageSection.version) &&\n cargoManifest.workspace?.package?.version\n ) {\n // TODO: Support reading from parent workspace manifest?\n version = cargoManifest.workspace.package.version;\n }\n }\n\n const lockFileName = await findLocalSiblingOrParent(\n packageFile,\n 'Cargo.lock',\n );\n const res: PackageFileContent = { deps, packageFileVersion: version };\n if (lockFileName) {\n logger.debug(\n `Found lock file ${lockFileName} for packageFile: ${packageFile}`,\n );\n\n const versionsByPackage = await extractLockFileVersions(lockFileName);\n if (!versionsByPackage) {\n logger.debug(\n `Could not extract lock file versions from ${lockFileName}.`,\n );\n return res;\n }\n\n res.lockFiles = [lockFileName];\n\n for (const dep of deps) {\n const packageName = dep.packageName ?? dep.depName!;\n const versions = coerceArray(versionsByPackage.get(packageName));\n\n let lockedVersion: string | null = null;\n if (dep.currentValue) {\n lockedVersion = versioning.getSatisfyingVersion(\n versions,\n dep.currentValue,\n );\n }\n\n if (lockedVersion) {\n dep.lockedVersion = lockedVersion;\n } else {\n logger.debug(\n `No locked version found for package ${dep.depName} in the range of ${dep.currentValue}.`,\n );\n }\n }\n }\n\n return res;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","names":["semverComposer"],"sources":["../../../../lib/modules/manager/composer/schema.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { logger } from '../../../logger/index.ts';\nimport { coerceArray } from '../../../util/array.ts';\nimport { readLocalFile } from '../../../util/fs/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport {\n Json,\n LooseArray,\n LooseRecord,\n withDebugMessage,\n} from '../../../util/schema-utils/index.ts';\nimport { BitbucketTagsDatasource } from '../../datasource/bitbucket-tags/index.ts';\nimport { GitTagsDatasource } from '../../datasource/git-tags/index.ts';\nimport { GithubTagsDatasource } from '../../datasource/github-tags/index.ts';\nimport { PackagistDatasource } from '../../datasource/packagist/index.ts';\nimport { api as semverComposer } from '../../versioning/composer/index.ts';\nimport type { PackageDependency, PackageFileContent } from '../types.ts';\nimport type { ComposerManagerData } from './types.ts';\n\nexport const ComposerRepo = z.object({\n type: z.literal('composer'),\n /**\n * The regUrl is expected to be a base URL. GitLab composer repository installation guide specifies\n * to use a base URL containing packages.json. Composer still works in this scenario by determining\n * whether to add / remove packages.json from the URL.\n *\n * See https://github.com/composer/composer/blob/750a92b4b7aecda0e5b2f9b963f1cb1421900675/src/Composer/Repository/ComposerRepository.php#L815\n */\n url: z\n .string()\n .transform((url) => url.replace(regEx(/\\/packages\\.json$/), '')),\n});\nexport type ComposerRepo = z.infer<typeof ComposerRepo>;\n\nexport const GitRepo = z.object({\n type: z.enum(['vcs', 'git']).transform(() => 'git' as const),\n url: z.string(),\n name: z.string().optional(),\n});\nexport type GitRepo = z.infer<typeof GitRepo>;\n\nexport const PathRepo = z.object({\n type: z.literal('path'),\n url: z.string(),\n name: z.string().optional(),\n});\nexport type PathRepo = z.infer<typeof PathRepo>;\n\nexport const PackageRepo = z.object({\n type: z.literal('package'),\n});\n\nexport const Repo = z.discriminatedUnion('type', [\n ComposerRepo,\n GitRepo,\n PathRepo,\n PackageRepo,\n]);\nexport type Repo = z.infer<typeof Repo>;\n\nexport const NamedRepo = z.discriminatedUnion('type', [\n ComposerRepo,\n GitRepo.extend({ name: z.string() }),\n PathRepo.extend({ name: z.string() }),\n PackageRepo,\n]);\nexport type NamedRepo = z.infer<typeof NamedRepo>;\n\nconst DisablePackagist = z.object({ type: z.literal('disable-packagist') });\nexport type DisablePackagist = z.infer<typeof DisablePackagist>;\n\nconst bitbucketUrlRegex = regEx(\n /^(?:https:\\/\\/|git@)bitbucket\\.org[/:](?<packageName>[^/]+\\/[^/]+?)(?:\\.git)?$/,\n);\n\nexport const ReposRecord = LooseRecord(z.union([Repo, z.literal(false)]), {\n onError: ({ error: err }) => {\n logger.debug({ err }, 'Composer: error parsing repositories object');\n },\n}).transform((repos) => {\n const result: (NamedRepo | DisablePackagist)[] = [];\n for (const [name, repo] of Object.entries(repos)) {\n if (repo === false) {\n if (name === 'packagist' || name === 'packagist.org') {\n result.push({ type: 'disable-packagist' });\n }\n continue;\n }\n\n if (repo.type === 'path' || repo.type === 'git') {\n result.push({ name, ...repo });\n continue;\n }\n\n if (repo.type === 'composer') {\n result.push(repo);\n continue;\n }\n }\n\n return result;\n});\nexport type ReposRecord = z.infer<typeof ReposRecord>;\n\nexport const ReposArray = LooseArray(\n z.union([\n Repo,\n z\n .union([\n z.object({ packagist: z.literal(false) }),\n z.object({ 'packagist.org': z.literal(false) }),\n ])\n .transform((): DisablePackagist => ({ type: 'disable-packagist' })),\n ]),\n {\n onError: ({ error: err }) => {\n logger.debug({ err }, 'Composer: error parsing repositories array');\n },\n },\n).transform((repos) => {\n const result: (NamedRepo | DisablePackagist)[] = [];\n for (let idx = 0; idx < repos.length; idx++) {\n const repo = repos[idx];\n if (repo.type === 'path' || repo.type === 'git') {\n result.push({ name: `__${idx}`, ...repo });\n } else {\n result.push(repo);\n }\n }\n return result;\n});\nexport type ReposArray = z.infer<typeof ReposArray>;\n\nexport const Repos = z\n .union([ReposRecord, ReposArray])\n .default([]) // Prevents warnings for packages without repositories field\n .catch(withDebugMessage([], 'Composer: invalid \"repositories\" field'))\n .transform((repos) => {\n let packagist = true;\n const repoUrls: string[] = [];\n const gitRepos: Record<string, GitRepo> = {};\n const pathRepos: Record<string, PathRepo> = {};\n\n for (const repo of repos) {\n if (repo.type === 'composer') {\n repoUrls.push(repo.url);\n } else if (repo.type === 'git') {\n gitRepos[repo.name] = repo;\n } else if (repo.type === 'path') {\n pathRepos[repo.name] = repo;\n // NOTE: the union above has no other member, so the implicit else never\n // runs. A coverage-ignore hint cannot suppress it on an `else if`.\n } else if (repo.type === 'disable-packagist') {\n packagist = false;\n }\n }\n\n if (packagist && repoUrls.length) {\n repoUrls.push('https://repo.packagist.org');\n }\n const registryUrls = repoUrls.length ? repoUrls : null;\n\n return { registryUrls, gitRepos, pathRepos };\n });\nexport type Repos = z.infer<typeof Repos>;\n\nconst RequireDefs = LooseRecord(z.string().transform((x) => x.trim())).catch(\n {},\n);\n\nexport const PackageFile = z\n .object({\n type: z.string().optional(),\n config: z\n .object({\n platform: z.object({\n php: z.string(),\n }),\n })\n .nullable()\n .catch(null),\n repositories: Repos,\n require: RequireDefs,\n 'require-dev': RequireDefs,\n })\n .transform(\n ({\n type: composerJsonType,\n config,\n repositories,\n require,\n 'require-dev': requireDev,\n }) => ({\n composerJsonType,\n config,\n repositories,\n require,\n requireDev,\n }),\n );\nexport type PackageFile = z.infer<typeof PackageFile>;\n\nconst LockedPackage = z.object({\n name: z.string(),\n version: z.string(),\n});\ntype LockedPackage = z.infer<typeof LockedPackage>;\n\nexport const Lockfile = z\n .object({\n 'plugin-api-version': z.string().optional(),\n packages: LooseArray(LockedPackage).catch([]),\n 'packages-dev': LooseArray(LockedPackage).catch([]),\n })\n .transform(\n ({\n 'plugin-api-version': pluginApiVersion,\n packages,\n 'packages-dev': packagesDev,\n }) => ({ pluginApiVersion, packages, packagesDev }),\n );\nexport type Lockfile = z.infer<typeof Lockfile>;\n\nexport const ComposerExtract = z\n .object({\n content: z.string(),\n fileName: z.string(),\n })\n .transform(({ content, fileName }) => {\n const lockfileName = fileName.replace(regEx(/\\.json$/), '.lock');\n return {\n file: content,\n lockfileName,\n lockfile: lockfileName,\n };\n })\n .pipe(\n z.object({\n file: Json.pipe(PackageFile),\n lockfileName: z.string(),\n lockfile: z\n .string()\n .transform((lockfileName) => readLocalFile(lockfileName, 'utf8'))\n .pipe(\n z.union([\n z.null(),\n z\n .string()\n .pipe(Json)\n .pipe(Lockfile)\n .nullable()\n .catch(withDebugMessage(null, 'Composer: does not match schema')),\n ]),\n ),\n }),\n )\n .transform(({ file, lockfile, lockfileName }) => {\n const { composerJsonType, require, requireDev } = file;\n const { registryUrls, gitRepos, pathRepos } = file.repositories;\n\n const deps: PackageDependency[] = [];\n\n const profiles = [\n {\n depType: 'require',\n req: require,\n locked: coerceArray(lockfile?.packages),\n },\n {\n depType: 'require-dev',\n req: requireDev,\n locked: coerceArray(lockfile?.packagesDev),\n },\n ];\n\n for (const { depType, req, locked } of profiles) {\n for (const [depName, currentValue] of Object.entries(req)) {\n if (depName === 'php') {\n deps.push({\n depType,\n depName,\n currentValue,\n datasource: GithubTagsDatasource.id,\n packageName: 'containerbase/php-prebuild',\n });\n continue;\n }\n\n if (pathRepos[depName]) {\n deps.push({\n depType,\n depName,\n currentValue,\n skipReason: 'path-dependency',\n });\n continue;\n }\n\n const dep: PackageDependency = {\n depType,\n depName,\n currentValue,\n };\n\n if (!depName.includes('/')) {\n dep.skipReason = 'unsupported';\n }\n\n const lockedDep = locked.find((item) => item.name === depName);\n if (lockedDep && semverComposer.isVersion(lockedDep.version)) {\n dep.lockedVersion = lockedDep.version.replace(regEx(/^v/i), '');\n }\n\n const gitRepo = gitRepos[depName];\n if (gitRepo) {\n const bitbucketMatchGroups = bitbucketUrlRegex.exec(\n gitRepo.url,\n )?.groups;\n\n if (bitbucketMatchGroups) {\n dep.datasource = BitbucketTagsDatasource.id;\n dep.packageName = bitbucketMatchGroups.packageName;\n deps.push(dep);\n continue;\n }\n\n dep.datasource = GitTagsDatasource.id;\n dep.packageName = gitRepo.url;\n deps.push(dep);\n continue;\n }\n\n dep.datasource = PackagistDatasource.id;\n\n if (registryUrls) {\n dep.registryUrls = registryUrls;\n }\n\n deps.push(dep);\n }\n }\n\n if (!deps.length) {\n return null;\n }\n\n const res: PackageFileContent<ComposerManagerData> = { deps };\n\n if (composerJsonType) {\n res.managerData = { composerJsonType };\n }\n\n if (require.php) {\n res.extractedConstraints = { php: require.php };\n }\n\n if (lockfile) {\n res.lockFiles = [lockfileName];\n }\n\n return res;\n });\nexport type ComposerExtract = z.infer<typeof ComposerExtract>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","names":["semverComposer"],"sources":["../../../../lib/modules/manager/composer/schema.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { logger } from '../../../logger/index.ts';\nimport { coerceArray } from '../../../util/array.ts';\nimport { readLocalFile } from '../../../util/fs/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport {\n Json,\n LooseArray,\n LooseRecord,\n withDebugMessage,\n} from '../../../util/schema-utils/index.ts';\nimport { BitbucketTagsDatasource } from '../../datasource/bitbucket-tags/index.ts';\nimport { GitTagsDatasource } from '../../datasource/git-tags/index.ts';\nimport { GithubTagsDatasource } from '../../datasource/github-tags/index.ts';\nimport { PackagistDatasource } from '../../datasource/packagist/index.ts';\nimport { api as semverComposer } from '../../versioning/composer/index.ts';\nimport type { PackageDependency, PackageFileContent } from '../types.ts';\nimport type { ComposerManagerData } from './types.ts';\n\nexport const ComposerRepo = z.object({\n type: z.literal('composer'),\n /**\n * The regUrl is expected to be a base URL. GitLab composer repository installation guide specifies\n * to use a base URL containing packages.json. Composer still works in this scenario by determining\n * whether to add / remove packages.json from the URL.\n *\n * See https://github.com/composer/composer/blob/750a92b4b7aecda0e5b2f9b963f1cb1421900675/src/Composer/Repository/ComposerRepository.php#L815\n */\n url: z\n .string()\n .transform((url) => url.replace(regEx(/\\/packages\\.json$/), '')),\n});\nexport type ComposerRepo = z.infer<typeof ComposerRepo>;\n\nexport const GitRepo = z.object({\n type: z.enum(['vcs', 'git']).transform(() => 'git' as const),\n url: z.string(),\n name: z.string().optional(),\n});\nexport type GitRepo = z.infer<typeof GitRepo>;\n\nexport const PathRepo = z.object({\n type: z.literal('path'),\n url: z.string(),\n name: z.string().optional(),\n});\nexport type PathRepo = z.infer<typeof PathRepo>;\n\nexport const PackageRepo = z.object({\n type: z.literal('package'),\n});\n\nexport const Repo = z.discriminatedUnion('type', [\n ComposerRepo,\n GitRepo,\n PathRepo,\n PackageRepo,\n]);\nexport type Repo = z.infer<typeof Repo>;\n\nexport const NamedRepo = z.discriminatedUnion('type', [\n ComposerRepo,\n GitRepo.extend({ name: z.string() }),\n PathRepo.extend({ name: z.string() }),\n PackageRepo,\n]);\nexport type NamedRepo = z.infer<typeof NamedRepo>;\n\nconst DisablePackagist = z.object({ type: z.literal('disable-packagist') });\nexport type DisablePackagist = z.infer<typeof DisablePackagist>;\n\nconst bitbucketUrlRegex = regEx(\n /^(?:https:\\/\\/|git@)bitbucket\\.org[/:](?<packageName>[^/]+\\/[^/]+?)(?:\\.git)?$/,\n);\n\nexport const ReposRecord = LooseRecord(z.union([Repo, z.literal(false)]), {\n onError: ({ error: err }) => {\n logger.debug({ err }, 'Composer: error parsing repositories object');\n },\n}).transform((repos) => {\n const result: (NamedRepo | DisablePackagist)[] = [];\n for (const [name, repo] of Object.entries(repos)) {\n if (repo === false) {\n if (name === 'packagist' || name === 'packagist.org') {\n result.push({ type: 'disable-packagist' });\n }\n continue;\n }\n\n if (repo.type === 'path' || repo.type === 'git') {\n result.push({ name, ...repo });\n continue;\n }\n\n if (repo.type === 'composer') {\n result.push(repo);\n continue;\n }\n }\n\n return result;\n});\nexport type ReposRecord = z.infer<typeof ReposRecord>;\n\nexport const ReposArray = LooseArray(\n z.union([\n Repo,\n z\n .union([\n z.object({ packagist: z.literal(false) }),\n z.object({ 'packagist.org': z.literal(false) }),\n ])\n .transform((): DisablePackagist => ({ type: 'disable-packagist' })),\n ]),\n {\n onError: ({ error: err }) => {\n logger.debug({ err }, 'Composer: error parsing repositories array');\n },\n },\n).transform((repos) => {\n const result: (NamedRepo | DisablePackagist)[] = [];\n for (let idx = 0; idx < repos.length; idx++) {\n const repo = repos[idx];\n if (repo.type === 'path' || repo.type === 'git') {\n result.push({ name: `__${idx}`, ...repo });\n } else {\n result.push(repo);\n }\n }\n return result;\n});\nexport type ReposArray = z.infer<typeof ReposArray>;\n\nexport const Repos = z\n .union([ReposRecord, ReposArray])\n .default([]) // Prevents warnings for packages without repositories field\n .catch(withDebugMessage([], 'Composer: invalid \"repositories\" field'))\n .transform((repos) => {\n let packagist = true;\n const repoUrls: string[] = [];\n const gitRepos: Record<string, GitRepo> = {};\n const pathRepos: Record<string, PathRepo> = {};\n\n for (const repo of repos) {\n if (repo.type === 'composer') {\n repoUrls.push(repo.url);\n } else if (repo.type === 'git') {\n gitRepos[repo.name] = repo;\n } else if (repo.type === 'path') {\n pathRepos[repo.name] = repo;\n } else if (repo.type === 'disable-packagist') {\n packagist = false;\n }\n }\n\n if (packagist && repoUrls.length) {\n repoUrls.push('https://repo.packagist.org');\n }\n const registryUrls = repoUrls.length ? repoUrls : null;\n\n return { registryUrls, gitRepos, pathRepos };\n });\nexport type Repos = z.infer<typeof Repos>;\n\nconst RequireDefs = LooseRecord(z.string().transform((x) => x.trim())).catch(\n {},\n);\n\nexport const PackageFile = z\n .object({\n type: z.string().optional(),\n config: z\n .object({\n platform: z.object({\n php: z.string(),\n }),\n })\n .nullable()\n .catch(null),\n repositories: Repos,\n require: RequireDefs,\n 'require-dev': RequireDefs,\n })\n .transform(\n ({\n type: composerJsonType,\n config,\n repositories,\n require,\n 'require-dev': requireDev,\n }) => ({\n composerJsonType,\n config,\n repositories,\n require,\n requireDev,\n }),\n );\nexport type PackageFile = z.infer<typeof PackageFile>;\n\nconst LockedPackage = z.object({\n name: z.string(),\n version: z.string(),\n});\ntype LockedPackage = z.infer<typeof LockedPackage>;\n\nexport const Lockfile = z\n .object({\n 'plugin-api-version': z.string().optional(),\n packages: LooseArray(LockedPackage).catch([]),\n 'packages-dev': LooseArray(LockedPackage).catch([]),\n })\n .transform(\n ({\n 'plugin-api-version': pluginApiVersion,\n packages,\n 'packages-dev': packagesDev,\n }) => ({ pluginApiVersion, packages, packagesDev }),\n );\nexport type Lockfile = z.infer<typeof Lockfile>;\n\nexport const ComposerExtract = z\n .object({\n content: z.string(),\n fileName: z.string(),\n })\n .transform(({ content, fileName }) => {\n const lockfileName = fileName.replace(regEx(/\\.json$/), '.lock');\n return {\n file: content,\n lockfileName,\n lockfile: lockfileName,\n };\n })\n .pipe(\n z.object({\n file: Json.pipe(PackageFile),\n lockfileName: z.string(),\n lockfile: z\n .string()\n .transform((lockfileName) => readLocalFile(lockfileName, 'utf8'))\n .pipe(\n z.union([\n z.null(),\n z\n .string()\n .pipe(Json)\n .pipe(Lockfile)\n .nullable()\n .catch(withDebugMessage(null, 'Composer: does not match schema')),\n ]),\n ),\n }),\n )\n .transform(({ file, lockfile, lockfileName }) => {\n const { composerJsonType, require, requireDev } = file;\n const { registryUrls, gitRepos, pathRepos } = file.repositories;\n\n const deps: PackageDependency[] = [];\n\n const profiles = [\n {\n depType: 'require',\n req: require,\n locked: coerceArray(lockfile?.packages),\n },\n {\n depType: 'require-dev',\n req: requireDev,\n locked: coerceArray(lockfile?.packagesDev),\n },\n ];\n\n for (const { depType, req, locked } of profiles) {\n for (const [depName, currentValue] of Object.entries(req)) {\n if (depName === 'php') {\n deps.push({\n depType,\n depName,\n currentValue,\n datasource: GithubTagsDatasource.id,\n packageName: 'containerbase/php-prebuild',\n });\n continue;\n }\n\n if (pathRepos[depName]) {\n deps.push({\n depType,\n depName,\n currentValue,\n skipReason: 'path-dependency',\n });\n continue;\n }\n\n const dep: PackageDependency = {\n depType,\n depName,\n currentValue,\n };\n\n if (!depName.includes('/')) {\n dep.skipReason = 'unsupported';\n }\n\n const lockedDep = locked.find((item) => item.name === depName);\n if (lockedDep && semverComposer.isVersion(lockedDep.version)) {\n dep.lockedVersion = lockedDep.version.replace(regEx(/^v/i), '');\n }\n\n const gitRepo = gitRepos[depName];\n if (gitRepo) {\n const bitbucketMatchGroups = bitbucketUrlRegex.exec(\n gitRepo.url,\n )?.groups;\n\n if (bitbucketMatchGroups) {\n dep.datasource = BitbucketTagsDatasource.id;\n dep.packageName = bitbucketMatchGroups.packageName;\n deps.push(dep);\n continue;\n }\n\n dep.datasource = GitTagsDatasource.id;\n dep.packageName = gitRepo.url;\n deps.push(dep);\n continue;\n }\n\n dep.datasource = PackagistDatasource.id;\n\n if (registryUrls) {\n dep.registryUrls = registryUrls;\n }\n\n deps.push(dep);\n }\n }\n\n if (!deps.length) {\n return null;\n }\n\n const res: PackageFileContent<ComposerManagerData> = { deps };\n\n if (composerJsonType) {\n res.managerData = { composerJsonType };\n }\n\n if (require.php) {\n res.extractedConstraints = { php: require.php };\n }\n\n if (lockfile) {\n res.lockFiles = [lockfileName];\n }\n\n return res;\n });\nexport type ComposerExtract = z.infer<typeof ComposerExtract>;\n"],"mappings":";;;;;;;;;;;;AAmBA,MAAa,eAAe,EAAE,OAAO;CACnC,MAAM,EAAE,QAAQ,UAAU;;;;;;;;CAQ1B,KAAK,EACF,OAAO,CAAC,CACR,WAAW,QAAQ,IAAI,QAAQ,MAAM,mBAAmB,GAAG,EAAE,CAAC;AACnE,CAAC;AAGD,MAAa,UAAU,EAAE,OAAO;CAC9B,MAAM,EAAE,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,gBAAgB,KAAc;CAC3D,KAAK,EAAE,OAAO;CACd,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS;AAC5B,CAAC;AAGD,MAAa,WAAW,EAAE,OAAO;CAC/B,MAAM,EAAE,QAAQ,MAAM;CACtB,KAAK,EAAE,OAAO;CACd,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS;AAC5B,CAAC;AAGD,MAAa,cAAc,EAAE,OAAO,EAClC,MAAM,EAAE,QAAQ,SAAS,EAC3B,CAAC;AAED,MAAa,OAAO,EAAE,mBAAmB,QAAQ;CAC/C;CACA;CACA;CACA;AACF,CAAC;AAGwB,EAAE,mBAAmB,QAAQ;CACpD;CACA,QAAQ,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;CACnC,SAAS,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;CACpC;AACF,CAAC;AAGwB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,mBAAmB,EAAE,CAAC;AAG1E,MAAM,oBAAoB,MACxB,gFACF;AAEA,MAAa,cAAc,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,KAAK,CAAC,CAAC,GAAG,EACxE,UAAU,EAAE,OAAO,UAAU;CAC3B,OAAO,MAAM,EAAE,IAAI,GAAG,6CAA6C;AACrE,EACF,CAAC,CAAC,CAAC,WAAW,UAAU;CACtB,MAAM,SAA2C,CAAC;CAClD,KAAK,MAAM,CAAC,MAAM,SAAS,OAAO,QAAQ,KAAK,GAAG;EAChD,IAAI,SAAS,OAAO;GAClB,IAAI,SAAS,eAAe,SAAS,iBACnC,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;GAE3C;EACF;EAEA,IAAI,KAAK,SAAS,UAAU,KAAK,SAAS,OAAO;GAC/C,OAAO,KAAK;IAAE;IAAM,GAAG;GAAK,CAAC;GAC7B;EACF;EAEA,IAAI,KAAK,SAAS,YAAY;GAC5B,OAAO,KAAK,IAAI;GAChB;EACF;CACF;CAEA,OAAO;AACT,CAAC;AAGD,MAAa,aAAa,WACxB,EAAE,MAAM,CACN,MACA,EACG,MAAM,CACL,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,KAAK,EAAE,CAAC,GACxC,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,KAAK,EAAE,CAAC,CAChD,CAAC,CAAC,CACD,iBAAmC,EAAE,MAAM,oBAAoB,EAAE,CACtE,CAAC,GACD,EACE,UAAU,EAAE,OAAO,UAAU;CAC3B,OAAO,MAAM,EAAE,IAAI,GAAG,4CAA4C;AACpE,EACF,CACF,CAAC,CAAC,WAAW,UAAU;CACrB,MAAM,SAA2C,CAAC;CAClD,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,QAAQ,OAAO;EAC3C,MAAM,OAAO,MAAM;EACnB,IAAI,KAAK,SAAS,UAAU,KAAK,SAAS,OACxC,OAAO,KAAK;GAAE,MAAM,KAAK;GAAO,GAAG;EAAK,CAAC;OAEzC,OAAO,KAAK,IAAI;CAEpB;CACA,OAAO;AACT,CAAC;AAGD,MAAa,QAAQ,EAClB,MAAM,CAAC,aAAa,UAAU,CAAC,CAAC,CAChC,QAAQ,CAAC,CAAC,CAAC,CACX,MAAM,iBAAiB,CAAC,GAAG,0CAAwC,CAAC,CAAC,CACrE,WAAW,UAAU;CACpB,IAAI,YAAY;CAChB,MAAM,WAAqB,CAAC;CAC5B,MAAM,WAAoC,CAAC;CAC3C,MAAM,YAAsC,CAAC;CAE7C,KAAK,MAAM,QAAQ,OACjB,IAAI,KAAK,SAAS,YAChB,SAAS,KAAK,KAAK,GAAG;MACjB,IAAI,KAAK,SAAS,OACvB,SAAS,KAAK,QAAQ;MACjB,IAAI,KAAK,SAAS,QACvB,UAAU,KAAK,QAAQ;MAClB,IAAI,KAAK,SAAS,qBACvB,YAAY;CAIhB,IAAI,aAAa,SAAS,QACxB,SAAS,KAAK,4BAA4B;CAI5C,OAAO;EAAE,cAFY,SAAS,SAAS,WAAW;EAE3B;EAAU;CAAU;AAC7C,CAAC;AAGH,MAAM,cAAc,YAAY,EAAE,OAAO,CAAC,CAAC,WAAW,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MACrE,CAAC,CACH;AAEA,MAAa,cAAc,EACxB,OAAO;CACN,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS;CAC1B,QAAQ,EACL,OAAO,EACN,UAAU,EAAE,OAAO,EACjB,KAAK,EAAE,OAAO,EAChB,CAAC,EACH,CAAC,CAAC,CACD,SAAS,CAAC,CACV,MAAM,IAAI;CACb,cAAc;CACd,SAAS;CACT,eAAe;AACjB,CAAC,CAAC,CACD,WACE,EACC,MAAM,kBACN,QACA,cACA,SACA,eAAe,kBACV;CACL;CACA;CACA;CACA;CACA;AACF,EACF;AAGF,MAAM,gBAAgB,EAAE,OAAO;CAC7B,MAAM,EAAE,OAAO;CACf,SAAS,EAAE,OAAO;AACpB,CAAC;AAGD,MAAa,WAAW,EACrB,OAAO;CACN,sBAAsB,EAAE,OAAO,CAAC,CAAC,SAAS;CAC1C,UAAU,WAAW,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;CAC5C,gBAAgB,WAAW,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AACpD,CAAC,CAAC,CACD,WACE,EACC,sBAAsB,kBACtB,UACA,gBAAgB,mBACX;CAAE;CAAkB;CAAU;AAAY,EACnD;AAGF,MAAa,kBAAkB,EAC5B,OAAO;CACN,SAAS,EAAE,OAAO;CAClB,UAAU,EAAE,OAAO;AACrB,CAAC,CAAC,CACD,WAAW,EAAE,SAAS,eAAe;CACpC,MAAM,eAAe,SAAS,QAAQ,MAAM,SAAS,GAAG,OAAO;CAC/D,OAAO;EACL,MAAM;EACN;EACA,UAAU;CACZ;AACF,CAAC,CAAC,CACD,KACC,EAAE,OAAO;CACP,MAAM,KAAK,KAAK,WAAW;CAC3B,cAAc,EAAE,OAAO;CACvB,UAAU,EACP,OAAO,CAAC,CACR,WAAW,iBAAiB,cAAc,cAAc,MAAM,CAAC,CAAC,CAChE,KACC,EAAE,MAAM,CACN,EAAE,KAAK,GACP,EACG,OAAO,CAAC,CACR,KAAK,IAAI,CAAC,CACV,KAAK,QAAQ,CAAC,CACd,SAAS,CAAC,CACV,MAAM,iBAAiB,MAAM,iCAAiC,CAAC,CACpE,CAAC,CACH;AACJ,CAAC,CACH,CAAC,CACA,WAAW,EAAE,MAAM,UAAU,mBAAmB;CAC/C,MAAM,EAAE,kBAAkB,SAAS,eAAe;CAClD,MAAM,EAAE,cAAc,UAAU,cAAc,KAAK;CAEnD,MAAM,OAA4B,CAAC;CAEnC,MAAM,WAAW,CACf;EACE,SAAS;EACT,KAAK;EACL,QAAQ,YAAY,UAAU,QAAQ;CACxC,GACA;EACE,SAAS;EACT,KAAK;EACL,QAAQ,YAAY,UAAU,WAAW;CAC3C,CACF;CAEA,KAAK,MAAM,EAAE,SAAS,KAAK,YAAY,UACrC,KAAK,MAAM,CAAC,SAAS,iBAAiB,OAAO,QAAQ,GAAG,GAAG;EACzD,IAAI,YAAY,OAAO;GACrB,KAAK,KAAK;IACR;IACA;IACA;IACA,YAAY,qBAAqB;IACjC,aAAa;GACf,CAAC;GACD;EACF;EAEA,IAAI,UAAU,UAAU;GACtB,KAAK,KAAK;IACR;IACA;IACA;IACA,YAAY;GACd,CAAC;GACD;EACF;EAEA,MAAM,MAAyB;GAC7B;GACA;GACA;EACF;EAEA,IAAI,CAAC,QAAQ,SAAS,GAAG,GACvB,IAAI,aAAa;EAGnB,MAAM,YAAY,OAAO,MAAM,SAAS,KAAK,SAAS,OAAO;EAC7D,IAAI,aAAaA,IAAe,UAAU,UAAU,OAAO,GACzD,IAAI,gBAAgB,UAAU,QAAQ,QAAQ,MAAM,KAAK,GAAG,EAAE;EAGhE,MAAM,UAAU,SAAS;EACzB,IAAI,SAAS;GACX,MAAM,uBAAuB,kBAAkB,KAC7C,QAAQ,GACV,CAAC,EAAE;GAEH,IAAI,sBAAsB;IACxB,IAAI,aAAa,wBAAwB;IACzC,IAAI,cAAc,qBAAqB;IACvC,KAAK,KAAK,GAAG;IACb;GACF;GAEA,IAAI,aAAa,kBAAkB;GACnC,IAAI,cAAc,QAAQ;GAC1B,KAAK,KAAK,GAAG;GACb;EACF;EAEA,IAAI,aAAa,oBAAoB;EAErC,IAAI,cACF,IAAI,eAAe;EAGrB,KAAK,KAAK,GAAG;CACf;CAGF,IAAI,CAAC,KAAK,QACR,OAAO;CAGT,MAAM,MAA+C,EAAE,KAAK;CAE5D,IAAI,kBACF,IAAI,cAAc,EAAE,iBAAiB;CAGvC,IAAI,QAAQ,KACV,IAAI,uBAAuB,EAAE,KAAK,QAAQ,IAAI;CAGhD,IAAI,UACF,IAAI,YAAY,CAAC,YAAY;CAG/B,OAAO;AACT,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","names":[],"sources":["../../../../lib/modules/manager/deps-edn/extract.ts"],"sourcesContent":["import { isPlainObject, isString } from '@sindresorhus/is';\nimport { regEx } from '../../../util/regex.ts';\nimport { isHttpUrl } from '../../../util/url.ts';\nimport { BitbucketTagsDatasource } from '../../datasource/bitbucket-tags/index.ts';\nimport { CLOJARS_REPO } from '../../datasource/clojure/common.ts';\nimport { ClojureDatasource } from '../../datasource/clojure/index.ts';\nimport { GitRefsDatasource } from '../../datasource/git-refs/index.ts';\nimport { GithubTagsDatasource } from '../../datasource/github-tags/index.ts';\nimport { GitlabTagsDatasource } from '../../datasource/gitlab-tags/index.ts';\nimport { MAVEN_REPO } from '../../datasource/maven/common.ts';\nimport type { PackageDependency, PackageFileContent } from '../types.ts';\nimport { parseDepsEdnFile } from './parser.ts';\nimport type {\n ParsedEdnData,\n ParsedEdnMetadata,\n ParsedEdnRecord,\n} from './types.ts';\n\nconst dependencyRegex = regEx(\n /^(?<groupId>[a-zA-Z][-_a-zA-Z0-9]*(?:\\.[a-zA-Z0-9][-_a-zA-Z0-9]*)*)(?:\\/(?<artifactId>[a-zA-Z][-_a-zA-Z0-9]*(?:\\.[a-zA-Z0-9][-_a-zA-Z0-9]*)*))?$/,\n);\n\nfunction getPackageName(depName: string): string | null {\n const matchGroups = dependencyRegex.exec(depName)?.groups;\n if (matchGroups) {\n const groupId = matchGroups.groupId;\n const artifactId = matchGroups.artifactId\n ? matchGroups.artifactId\n : groupId;\n return `${groupId}:${artifactId}`;\n }\n\n return null;\n}\n\nconst githubDependencyRegex = regEx(\n /^(?:com|io)\\.github\\.(?<packageName>[^/]+\\/[^/]+)$/,\n);\nconst gitlabDependencyRegex = regEx(\n /^(?:com|io)\\.gitlab\\.(?<packageName>[^/]+\\/[^/]+)$/,\n);\nconst bitbucketDependencyRegex = regEx(\n /^(?:org|io)\\.bitbucket\\.(?<packageName>[^/]+\\/[^/]+)$/,\n);\n\nfunction resolveGitPackageFromEdnKey(\n dep: PackageDependency,\n key: string,\n): void {\n if (dep.datasource) {\n return;\n }\n\n const githubDependencyGroups = githubDependencyRegex.exec(key)?.groups;\n if (githubDependencyGroups?.packageName) {\n dep.datasource = GithubTagsDatasource.id;\n dep.packageName = githubDependencyGroups.packageName;\n return;\n }\n\n const gitlabDependencyGroups = gitlabDependencyRegex.exec(key)?.groups;\n if (gitlabDependencyGroups?.packageName) {\n dep.datasource = GitlabTagsDatasource.id;\n dep.packageName = gitlabDependencyGroups.packageName;\n return;\n }\n\n const bitbucketDependencyGroups = bitbucketDependencyRegex.exec(key)?.groups;\n if (bitbucketDependencyGroups?.packageName) {\n dep.datasource = BitbucketTagsDatasource.id;\n dep.packageName = bitbucketDependencyGroups.packageName;\n return;\n }\n}\n\nconst githubUrlRegex = regEx(\n /^(?:https:\\/\\/|git@)github\\.com[/:](?<packageName>[^/]+\\/[^/]+?)(?:\\.git)?$/,\n);\nconst gitlabUrlRegex = regEx(\n /^(?:https:\\/\\/|git@)gitlab\\.com[/:](?<packageName>[^/]+\\/[^/]+?)(?:\\.git)?$/,\n);\nconst bitbucketUrlRegex = regEx(\n /^(?:https:\\/\\/|git@)bitbucket\\.org[/:](?<packageName>[^/]+\\/[^/]+?)(?:\\.git)?$/,\n);\n\nfunction resolveGitPackageFromEdnVal(\n dep: PackageDependency,\n val: ParsedEdnRecord,\n): void {\n const gitUrl = val['git/url'];\n if (!isString(gitUrl)) {\n return;\n }\n\n const githubMatchGroups = githubUrlRegex.exec(gitUrl)?.groups;\n if (githubMatchGroups) {\n dep.datasource = GithubTagsDatasource.id;\n dep.packageName = githubMatchGroups.packageName;\n dep.sourceUrl = `https://github.com/${dep.packageName}`;\n return;\n }\n\n const gitlabMatchGroups = gitlabUrlRegex.exec(gitUrl)?.groups;\n const bitbucketMatchGroups = bitbucketUrlRegex.exec(gitUrl)?.groups;\n\n if (gitlabMatchGroups) {\n dep.datasource = GitlabTagsDatasource.id;\n dep.packageName = gitlabMatchGroups.packageName;\n dep.sourceUrl = `https://gitlab.com/${dep.packageName}`;\n return;\n }\n\n if (bitbucketMatchGroups) {\n dep.datasource = GitlabTagsDatasource.id;\n dep.packageName = bitbucketMatchGroups.packageName;\n dep.sourceUrl = `https://bitbucket.org/${dep.packageName}`;\n return;\n }\n\n dep.datasource = GitRefsDatasource.id;\n dep.packageName = gitUrl;\n if (isHttpUrl(gitUrl)) {\n dep.sourceUrl = gitUrl.replace(regEx(/\\.git$/), '');\n }\n}\n\nfunction extractDependency(\n key: string,\n val: ParsedEdnData,\n metadata: ParsedEdnMetadata,\n mavenRegistries: string[],\n depType?: string,\n): PackageDependency | null {\n if (!isPlainObject(val)) {\n return null;\n }\n\n const packageName = getPackageName(key);\n if (!packageName) {\n return null;\n }\n const depName = key;\n\n const dep: PackageDependency = {\n depName,\n packageName,\n currentValue: null,\n ...metadata.get(val),\n };\n\n if (depType) {\n dep.depType = depType;\n }\n\n const mvnVersion = val['mvn/version'];\n if (isString(mvnVersion)) {\n dep.datasource = ClojureDatasource.id;\n dep.currentValue = mvnVersion;\n dep.packageName = packageName.replace('/', ':');\n dep.registryUrls = [...mavenRegistries];\n return dep;\n }\n\n resolveGitPackageFromEdnVal(dep, val);\n resolveGitPackageFromEdnKey(dep, key);\n\n if (dep.datasource) {\n const gitTag = val['git/tag'];\n if (isString(gitTag)) {\n dep.currentValue = gitTag;\n }\n\n const gitSha = val['git/sha'] ?? val.sha;\n if (isString(gitSha)) {\n dep.currentDigest = gitSha;\n dep.currentDigestShort = gitSha.slice(0, 7);\n }\n\n return dep;\n }\n\n return null;\n}\n\nfunction extractSection(\n section: ParsedEdnData,\n metadata: ParsedEdnMetadata,\n mavenRegistries: string[],\n depType?: string,\n): PackageDependency[] {\n const deps: PackageDependency[] = [];\n if (isPlainObject(section)) {\n for (const [key, val] of Object.entries(section)) {\n const dep = extractDependency(\n key,\n val,\n metadata,\n mavenRegistries,\n depType,\n );\n if (dep) {\n deps.push(dep);\n }\n }\n }\n return deps;\n}\n\nexport function extractPackageFile(content: string): PackageFileContent | null {\n const parsed = parseDepsEdnFile(content);\n if (!parsed) {\n return null;\n }\n const { data, metadata } = parsed;\n\n const deps: PackageDependency[] = [];\n\n // See: https://clojure.org/reference/deps_and_cli#_modifying_the_default_repositories\n const registryMap: Record<string, string> = {\n clojars: CLOJARS_REPO,\n central: MAVEN_REPO,\n };\n const mavenRepos = data['mvn/repos'];\n if (isPlainObject(mavenRepos)) {\n for (const [repoName, repoSpec] of Object.entries(mavenRepos)) {\n // v8 ignore else -- object keys are always strings\n if (isString(repoName)) {\n if (isPlainObject(repoSpec) && isString(repoSpec.url)) {\n registryMap[repoName] = repoSpec.url;\n // NOTE: any other repo spec is left alone. A coverage-ignore hint\n // cannot suppress the implicit else on an `else if`.\n } else if (isString(repoSpec) && repoSpec === 'nil') {\n delete registryMap[repoName];\n }\n }\n }\n }\n const mavenRegistries: string[] = Object.values(registryMap);\n\n deps.push(...extractSection(data.deps, metadata, mavenRegistries));\n\n const aliases = data.aliases;\n if (isPlainObject(aliases)) {\n for (const [depType, aliasSection] of Object.entries(aliases)) {\n if (isPlainObject(aliasSection)) {\n deps.push(\n ...extractSection(\n aliasSection['extra-deps'],\n metadata,\n mavenRegistries,\n depType,\n ),\n );\n deps.push(\n ...extractSection(\n aliasSection['override-deps'],\n metadata,\n mavenRegistries,\n depType,\n ),\n );\n }\n }\n }\n\n return { deps };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"extract.js","names":[],"sources":["../../../../lib/modules/manager/deps-edn/extract.ts"],"sourcesContent":["import { isPlainObject, isString } from '@sindresorhus/is';\nimport { regEx } from '../../../util/regex.ts';\nimport { isHttpUrl } from '../../../util/url.ts';\nimport { BitbucketTagsDatasource } from '../../datasource/bitbucket-tags/index.ts';\nimport { CLOJARS_REPO } from '../../datasource/clojure/common.ts';\nimport { ClojureDatasource } from '../../datasource/clojure/index.ts';\nimport { GitRefsDatasource } from '../../datasource/git-refs/index.ts';\nimport { GithubTagsDatasource } from '../../datasource/github-tags/index.ts';\nimport { GitlabTagsDatasource } from '../../datasource/gitlab-tags/index.ts';\nimport { MAVEN_REPO } from '../../datasource/maven/common.ts';\nimport type { PackageDependency, PackageFileContent } from '../types.ts';\nimport { parseDepsEdnFile } from './parser.ts';\nimport type {\n ParsedEdnData,\n ParsedEdnMetadata,\n ParsedEdnRecord,\n} from './types.ts';\n\nconst dependencyRegex = regEx(\n /^(?<groupId>[a-zA-Z][-_a-zA-Z0-9]*(?:\\.[a-zA-Z0-9][-_a-zA-Z0-9]*)*)(?:\\/(?<artifactId>[a-zA-Z][-_a-zA-Z0-9]*(?:\\.[a-zA-Z0-9][-_a-zA-Z0-9]*)*))?$/,\n);\n\nfunction getPackageName(depName: string): string | null {\n const matchGroups = dependencyRegex.exec(depName)?.groups;\n if (matchGroups) {\n const groupId = matchGroups.groupId;\n const artifactId = matchGroups.artifactId\n ? matchGroups.artifactId\n : groupId;\n return `${groupId}:${artifactId}`;\n }\n\n return null;\n}\n\nconst githubDependencyRegex = regEx(\n /^(?:com|io)\\.github\\.(?<packageName>[^/]+\\/[^/]+)$/,\n);\nconst gitlabDependencyRegex = regEx(\n /^(?:com|io)\\.gitlab\\.(?<packageName>[^/]+\\/[^/]+)$/,\n);\nconst bitbucketDependencyRegex = regEx(\n /^(?:org|io)\\.bitbucket\\.(?<packageName>[^/]+\\/[^/]+)$/,\n);\n\nfunction resolveGitPackageFromEdnKey(\n dep: PackageDependency,\n key: string,\n): void {\n if (dep.datasource) {\n return;\n }\n\n const githubDependencyGroups = githubDependencyRegex.exec(key)?.groups;\n if (githubDependencyGroups?.packageName) {\n dep.datasource = GithubTagsDatasource.id;\n dep.packageName = githubDependencyGroups.packageName;\n return;\n }\n\n const gitlabDependencyGroups = gitlabDependencyRegex.exec(key)?.groups;\n if (gitlabDependencyGroups?.packageName) {\n dep.datasource = GitlabTagsDatasource.id;\n dep.packageName = gitlabDependencyGroups.packageName;\n return;\n }\n\n const bitbucketDependencyGroups = bitbucketDependencyRegex.exec(key)?.groups;\n if (bitbucketDependencyGroups?.packageName) {\n dep.datasource = BitbucketTagsDatasource.id;\n dep.packageName = bitbucketDependencyGroups.packageName;\n return;\n }\n}\n\nconst githubUrlRegex = regEx(\n /^(?:https:\\/\\/|git@)github\\.com[/:](?<packageName>[^/]+\\/[^/]+?)(?:\\.git)?$/,\n);\nconst gitlabUrlRegex = regEx(\n /^(?:https:\\/\\/|git@)gitlab\\.com[/:](?<packageName>[^/]+\\/[^/]+?)(?:\\.git)?$/,\n);\nconst bitbucketUrlRegex = regEx(\n /^(?:https:\\/\\/|git@)bitbucket\\.org[/:](?<packageName>[^/]+\\/[^/]+?)(?:\\.git)?$/,\n);\n\nfunction resolveGitPackageFromEdnVal(\n dep: PackageDependency,\n val: ParsedEdnRecord,\n): void {\n const gitUrl = val['git/url'];\n if (!isString(gitUrl)) {\n return;\n }\n\n const githubMatchGroups = githubUrlRegex.exec(gitUrl)?.groups;\n if (githubMatchGroups) {\n dep.datasource = GithubTagsDatasource.id;\n dep.packageName = githubMatchGroups.packageName;\n dep.sourceUrl = `https://github.com/${dep.packageName}`;\n return;\n }\n\n const gitlabMatchGroups = gitlabUrlRegex.exec(gitUrl)?.groups;\n const bitbucketMatchGroups = bitbucketUrlRegex.exec(gitUrl)?.groups;\n\n if (gitlabMatchGroups) {\n dep.datasource = GitlabTagsDatasource.id;\n dep.packageName = gitlabMatchGroups.packageName;\n dep.sourceUrl = `https://gitlab.com/${dep.packageName}`;\n return;\n }\n\n if (bitbucketMatchGroups) {\n dep.datasource = GitlabTagsDatasource.id;\n dep.packageName = bitbucketMatchGroups.packageName;\n dep.sourceUrl = `https://bitbucket.org/${dep.packageName}`;\n return;\n }\n\n dep.datasource = GitRefsDatasource.id;\n dep.packageName = gitUrl;\n if (isHttpUrl(gitUrl)) {\n dep.sourceUrl = gitUrl.replace(regEx(/\\.git$/), '');\n }\n}\n\nfunction extractDependency(\n key: string,\n val: ParsedEdnData,\n metadata: ParsedEdnMetadata,\n mavenRegistries: string[],\n depType?: string,\n): PackageDependency | null {\n if (!isPlainObject(val)) {\n return null;\n }\n\n const packageName = getPackageName(key);\n if (!packageName) {\n return null;\n }\n const depName = key;\n\n const dep: PackageDependency = {\n depName,\n packageName,\n currentValue: null,\n ...metadata.get(val),\n };\n\n if (depType) {\n dep.depType = depType;\n }\n\n const mvnVersion = val['mvn/version'];\n if (isString(mvnVersion)) {\n dep.datasource = ClojureDatasource.id;\n dep.currentValue = mvnVersion;\n dep.packageName = packageName.replace('/', ':');\n dep.registryUrls = [...mavenRegistries];\n return dep;\n }\n\n resolveGitPackageFromEdnVal(dep, val);\n resolveGitPackageFromEdnKey(dep, key);\n\n if (dep.datasource) {\n const gitTag = val['git/tag'];\n if (isString(gitTag)) {\n dep.currentValue = gitTag;\n }\n\n const gitSha = val['git/sha'] ?? val.sha;\n if (isString(gitSha)) {\n dep.currentDigest = gitSha;\n dep.currentDigestShort = gitSha.slice(0, 7);\n }\n\n return dep;\n }\n\n return null;\n}\n\nfunction extractSection(\n section: ParsedEdnData,\n metadata: ParsedEdnMetadata,\n mavenRegistries: string[],\n depType?: string,\n): PackageDependency[] {\n const deps: PackageDependency[] = [];\n if (isPlainObject(section)) {\n for (const [key, val] of Object.entries(section)) {\n const dep = extractDependency(\n key,\n val,\n metadata,\n mavenRegistries,\n depType,\n );\n if (dep) {\n deps.push(dep);\n }\n }\n }\n return deps;\n}\n\nexport function extractPackageFile(content: string): PackageFileContent | null {\n const parsed = parseDepsEdnFile(content);\n if (!parsed) {\n return null;\n }\n const { data, metadata } = parsed;\n\n const deps: PackageDependency[] = [];\n\n // See: https://clojure.org/reference/deps_and_cli#_modifying_the_default_repositories\n const registryMap: Record<string, string> = {\n clojars: CLOJARS_REPO,\n central: MAVEN_REPO,\n };\n const mavenRepos = data['mvn/repos'];\n if (isPlainObject(mavenRepos)) {\n for (const [repoName, repoSpec] of Object.entries(mavenRepos)) {\n // v8 ignore else -- object keys are always strings\n if (isString(repoName)) {\n if (isPlainObject(repoSpec) && isString(repoSpec.url)) {\n registryMap[repoName] = repoSpec.url;\n } else if (isString(repoSpec) && repoSpec === 'nil') {\n delete registryMap[repoName];\n }\n }\n }\n }\n const mavenRegistries: string[] = Object.values(registryMap);\n\n deps.push(...extractSection(data.deps, metadata, mavenRegistries));\n\n const aliases = data.aliases;\n if (isPlainObject(aliases)) {\n for (const [depType, aliasSection] of Object.entries(aliases)) {\n if (isPlainObject(aliasSection)) {\n deps.push(\n ...extractSection(\n aliasSection['extra-deps'],\n metadata,\n mavenRegistries,\n depType,\n ),\n );\n deps.push(\n ...extractSection(\n aliasSection['override-deps'],\n metadata,\n mavenRegistries,\n depType,\n ),\n );\n }\n }\n }\n\n return { deps };\n}\n"],"mappings":"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"}
@@ -42,7 +42,7 @@ function extractPackageFile(content, packageFile, extractConfig) {
42
42
  const lineMapper = new LineMapper(content, regEx(/^\s*image:/));
43
43
  const services = config.services ?? config;
44
44
  const extensions = coerceObject(config.extensions);
45
- const deps = Object.values(services || /* istanbul ignore next: can never happen */ {}).concat(Object.values(extensions)).filter((service) => isString(service?.image) && !service?.build).map((service) => {
45
+ const deps = Object.values(services).concat(Object.values(extensions)).filter((service) => isString(service?.image) && !service?.build).map((service) => {
46
46
  const dep = getDep(service.image, true, extractConfig.registryAliases);
47
47
  // istanbul ignore if
48
48
  if (!lineMapper.pluckLineNumber(service.image)) return null;
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","names":[],"sources":["../../../../lib/modules/manager/docker-compose/extract.ts"],"sourcesContent":["import { isString, isTruthy } from '@sindresorhus/is';\nimport { logger } from '../../../logger/index.ts';\nimport { coerceObject } from '../../../util/object.ts';\nimport { newlineRegex, regEx } from '../../../util/regex.ts';\nimport { parseSingleYaml } from '../../../util/yaml.ts';\nimport { getDep } from '../dockerfile/extract.ts';\nimport type { ExtractConfig, PackageFileContent } from '../types.ts';\nimport { DockerComposeFile } from './schema.ts';\n\nclass LineMapper {\n private imageLines: { line: string; lineNumber: number; used: boolean }[];\n\n constructor(content: string, filter: RegExp) {\n this.imageLines = [...content.split(newlineRegex).entries()]\n .filter((entry) => filter.test(entry[1]))\n .map(([lineNumber, line]) => ({ lineNumber, line, used: false }));\n }\n\n pluckLineNumber(imageName: string | undefined): number | null {\n const lineMeta = this.imageLines.find(\n ({ line, used }) => !used && imageName && line.includes(imageName),\n );\n // istanbul ignore if\n if (!lineMeta) {\n return null;\n }\n lineMeta.used = true; // unset plucked lines so duplicates are skipped\n return lineMeta.lineNumber;\n }\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n extractConfig: ExtractConfig,\n): PackageFileContent | null {\n logger.debug(`docker-compose.extractPackageFile(${packageFile})`);\n let config: DockerComposeFile;\n try {\n config = parseSingleYaml(content, {\n customSchema: DockerComposeFile,\n removeTemplates: true,\n });\n } catch (err) {\n logger.debug(\n { err, packageFile },\n `Parsing Docker Compose config YAML failed`,\n );\n return null;\n }\n try {\n const lineMapper = new LineMapper(content, regEx(/^\\s*image:/));\n\n // docker-compose v1 places the services at the top level,\n // docker-compose v2+ places the services within a 'services' key\n // since docker-compose spec version 1.27, the 'version' key has\n // become optional and can no longer be used to differentiate\n // between v1 and v2.\n const services = config.services ?? config;\n const extensions = coerceObject(config.extensions);\n\n // Image name/tags for services are only eligible for update if they don't\n // use variables and if the image is not built locally\n const deps = Object.values(\n services || /* istanbul ignore next: can never happen */ {},\n )\n .concat(Object.values(extensions))\n .filter((service) => isString(service?.image) && !service?.build)\n .map((service) => {\n const dep = getDep(service.image, true, extractConfig.registryAliases);\n const lineNumber = lineMapper.pluckLineNumber(service.image);\n // istanbul ignore if\n if (!lineNumber) {\n return null;\n }\n return dep;\n })\n .filter(isTruthy);\n\n logger.trace({ deps }, 'Docker Compose image');\n return { deps };\n } catch (err) /* istanbul ignore next */ {\n logger.debug({ packageFile, err }, 'Error extracting Docker Compose file');\n return null;\n }\n}\n"],"mappings":";;;;;;;;AASA,IAAM,aAAN,MAAiB;CACf;CAEA,YAAY,SAAiB,QAAgB;EAC3C,KAAK,aAAa,CAAC,GAAG,QAAQ,MAAM,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CACzD,QAAQ,UAAU,OAAO,KAAK,MAAM,EAAE,CAAC,CAAC,CACxC,KAAK,CAAC,YAAY,WAAW;GAAE;GAAY;GAAM,MAAM;EAAM,EAAE;CACpE;CAEA,gBAAgB,WAA8C;EAC5D,MAAM,WAAW,KAAK,WAAW,MAC9B,EAAE,MAAM,WAAW,CAAC,QAAQ,aAAa,KAAK,SAAS,SAAS,CACnE;;EAEA,IAAI,CAAC,UACH,OAAO;EAET,SAAS,OAAO;EAChB,OAAO,SAAS;CAClB;AACF;AAEA,SAAgB,mBACd,SACA,aACA,eAC2B;CAC3B,OAAO,MAAM,qCAAqC,YAAY,EAAE;CAChE,IAAI;CACJ,IAAI;EACF,SAAS,gBAAgB,SAAS;GAChC,cAAc;GACd,iBAAiB;EACnB,CAAC;CACH,SAAS,KAAK;EACZ,OAAO,MACL;GAAE;GAAK;EAAY,GACnB,2CACF;EACA,OAAO;CACT;CACA,IAAI;EACF,MAAM,aAAa,IAAI,WAAW,SAAS,MAAM,YAAY,CAAC;EAO9D,MAAM,WAAW,OAAO,YAAY;EACpC,MAAM,aAAa,aAAa,OAAO,UAAU;EAIjD,MAAM,OAAO,OAAO,OAClB,yDAAyD,CAAC,CAC5D,CAAC,CACE,OAAO,OAAO,OAAO,UAAU,CAAC,CAAC,CACjC,QAAQ,YAAY,SAAS,SAAS,KAAK,KAAK,CAAC,SAAS,KAAK,CAAC,CAChE,KAAK,YAAY;GAChB,MAAM,MAAM,OAAO,QAAQ,OAAO,MAAM,cAAc,eAAe;;GAGrE,IAAI,CAFe,WAAW,gBAAgB,QAAQ,KAExC,GACZ,OAAO;GAET,OAAO;EACT,CAAC,CAAC,CACD,OAAO,QAAQ;EAElB,OAAO,MAAM,EAAE,KAAK,GAAG,sBAAsB;EAC7C,OAAO,EAAE,KAAK;CAChB,SAAS,gCAAgC;EACvC,OAAO,MAAM;GAAE;GAAa;EAAI,GAAG,sCAAsC;EACzE,OAAO;CACT;AACF"}
1
+ {"version":3,"file":"extract.js","names":[],"sources":["../../../../lib/modules/manager/docker-compose/extract.ts"],"sourcesContent":["import { isString, isTruthy } from '@sindresorhus/is';\nimport { logger } from '../../../logger/index.ts';\nimport { coerceObject } from '../../../util/object.ts';\nimport { newlineRegex, regEx } from '../../../util/regex.ts';\nimport { parseSingleYaml } from '../../../util/yaml.ts';\nimport { getDep } from '../dockerfile/extract.ts';\nimport type { ExtractConfig, PackageFileContent } from '../types.ts';\nimport { DockerComposeFile } from './schema.ts';\n\nclass LineMapper {\n private imageLines: { line: string; lineNumber: number; used: boolean }[];\n\n constructor(content: string, filter: RegExp) {\n this.imageLines = [...content.split(newlineRegex).entries()]\n .filter((entry) => filter.test(entry[1]))\n .map(([lineNumber, line]) => ({ lineNumber, line, used: false }));\n }\n\n pluckLineNumber(imageName: string | undefined): number | null {\n const lineMeta = this.imageLines.find(\n ({ line, used }) => !used && imageName && line.includes(imageName),\n );\n // istanbul ignore if\n if (!lineMeta) {\n return null;\n }\n lineMeta.used = true; // unset plucked lines so duplicates are skipped\n return lineMeta.lineNumber;\n }\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n extractConfig: ExtractConfig,\n): PackageFileContent | null {\n logger.debug(`docker-compose.extractPackageFile(${packageFile})`);\n let config: DockerComposeFile;\n try {\n config = parseSingleYaml(content, {\n customSchema: DockerComposeFile,\n removeTemplates: true,\n });\n } catch (err) {\n logger.debug(\n { err, packageFile },\n `Parsing Docker Compose config YAML failed`,\n );\n return null;\n }\n try {\n const lineMapper = new LineMapper(content, regEx(/^\\s*image:/));\n\n // docker-compose v1 places the services at the top level,\n // docker-compose v2+ places the services within a 'services' key\n // since docker-compose spec version 1.27, the 'version' key has\n // become optional and can no longer be used to differentiate\n // between v1 and v2.\n const services = config.services ?? config;\n const extensions = coerceObject(config.extensions);\n\n // Image name/tags for services are only eligible for update if they don't\n // use variables and if the image is not built locally\n const deps = Object.values(services)\n .concat(Object.values(extensions))\n .filter((service) => isString(service?.image) && !service?.build)\n .map((service) => {\n const dep = getDep(service.image, true, extractConfig.registryAliases);\n const lineNumber = lineMapper.pluckLineNumber(service.image);\n // istanbul ignore if\n if (!lineNumber) {\n return null;\n }\n return dep;\n })\n .filter(isTruthy);\n\n logger.trace({ deps }, 'Docker Compose image');\n return { deps };\n } catch (err) /* istanbul ignore next */ {\n logger.debug({ packageFile, err }, 'Error extracting Docker Compose file');\n return null;\n }\n}\n"],"mappings":";;;;;;;;AASA,IAAM,aAAN,MAAiB;CACf;CAEA,YAAY,SAAiB,QAAgB;EAC3C,KAAK,aAAa,CAAC,GAAG,QAAQ,MAAM,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CACzD,QAAQ,UAAU,OAAO,KAAK,MAAM,EAAE,CAAC,CAAC,CACxC,KAAK,CAAC,YAAY,WAAW;GAAE;GAAY;GAAM,MAAM;EAAM,EAAE;CACpE;CAEA,gBAAgB,WAA8C;EAC5D,MAAM,WAAW,KAAK,WAAW,MAC9B,EAAE,MAAM,WAAW,CAAC,QAAQ,aAAa,KAAK,SAAS,SAAS,CACnE;;EAEA,IAAI,CAAC,UACH,OAAO;EAET,SAAS,OAAO;EAChB,OAAO,SAAS;CAClB;AACF;AAEA,SAAgB,mBACd,SACA,aACA,eAC2B;CAC3B,OAAO,MAAM,qCAAqC,YAAY,EAAE;CAChE,IAAI;CACJ,IAAI;EACF,SAAS,gBAAgB,SAAS;GAChC,cAAc;GACd,iBAAiB;EACnB,CAAC;CACH,SAAS,KAAK;EACZ,OAAO,MACL;GAAE;GAAK;EAAY,GACnB,2CACF;EACA,OAAO;CACT;CACA,IAAI;EACF,MAAM,aAAa,IAAI,WAAW,SAAS,MAAM,YAAY,CAAC;EAO9D,MAAM,WAAW,OAAO,YAAY;EACpC,MAAM,aAAa,aAAa,OAAO,UAAU;EAIjD,MAAM,OAAO,OAAO,OAAO,QAAQ,CAAC,CACjC,OAAO,OAAO,OAAO,UAAU,CAAC,CAAC,CACjC,QAAQ,YAAY,SAAS,SAAS,KAAK,KAAK,CAAC,SAAS,KAAK,CAAC,CAChE,KAAK,YAAY;GAChB,MAAM,MAAM,OAAO,QAAQ,OAAO,MAAM,cAAc,eAAe;;GAGrE,IAAI,CAFe,WAAW,gBAAgB,QAAQ,KAExC,GACZ,OAAO;GAET,OAAO;EACT,CAAC,CAAC,CACD,OAAO,QAAQ;EAElB,OAAO,MAAM,EAAE,KAAK,GAAG,sBAAsB;EAC7C,OAAO,EAAE,KAAK;CAChB,SAAS,gCAAgC;EACvC,OAAO,MAAM;GAAE;GAAa;EAAI,GAAG,sCAAsC;EACzE,OAAO;CACT;AACF"}
@@ -9,7 +9,7 @@ hashMap.set("asdf", "430eb99b58171700c8a59c78b9e648575e9b176b781d90dd10a710f7b69
9
9
  hashMap.set("azure-pipelines", "a051fe5e7e4fef8208b5864131a2b52b4ae319936f1dd8ee5a4e1ef11359ec09");
10
10
  hashMap.set("batect", "375d39b432013bedb1330cf40a2199dd822751b28578214f219e7bab98594b8d");
11
11
  hashMap.set("batect-wrapper", "d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939");
12
- hashMap.set("bazel", "e5f354a1370b544c6e220880f11cfc11a2e95d2d172dae7d008ef0f65e8693ef");
12
+ hashMap.set("bazel", "c31bc0a0e23d32726bcc09aa67533ebc5058124bf89c88e09c837419f550801a");
13
13
  hashMap.set("bazel-module", "9fbba0339f9f7785d52ab85c5f0f6385003093c063483c13feccba13ae438bef");
14
14
  hashMap.set("bazelisk", "770f75a746dc6ba90c518788d5987d7df4243ef9eee122d1bb0556a93d6e1b11");
15
15
  hashMap.set("bicep", "7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db");
@@ -17,56 +17,56 @@ hashMap.set("bitbucket-pipelines", "59c0503494ab1442b127914503c01b97ac17b6742b19
17
17
  hashMap.set("bitrise", "478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42");
18
18
  hashMap.set("buildkite", "b8b404f53cd5d61c39153fddf93945e621471c4ac6aa9960c881cd868922bb4c");
19
19
  hashMap.set("buildpacks", "6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f");
20
- hashMap.set("bun", "684f46dd3cef4d30f9e4ae97c384a38d032ebf3d0bfe9b471ab1772c7b26827a");
20
+ hashMap.set("bun", "8ec4c3c8080a55e93b741cfa97779b47291734dc24d80529c887d3b2b823fc44");
21
21
  hashMap.set("bun-version", "df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4");
22
22
  hashMap.set("bundler", "6e4784dd98c1f86ef64cc8cbf3128df48aebf920032d7792b54fdedd3dd9d4d5");
23
23
  hashMap.set("cake", "9ebd8b481220b30a8860121d26184540a1a2fcc05ef780df9295dea39b386fad");
24
- hashMap.set("cargo", "63721e2683b30cffc5ba87c75f919dc61a555f7741fa479f7446ef98c0ae9d5d");
24
+ hashMap.set("cargo", "fe8136135c895dd08819f91a60cf105f8b951251b057092700101ace991ae1d7");
25
25
  hashMap.set("cdnurl", "9a81c8e3c6ad6c788498c99fc1067ffdfcd92a427c3afaf8c0130975d83131f2");
26
26
  hashMap.set("circleci", "91cbeb33ea20f9838e2c81a1195eb806f0b38fa282bc3679f62552f20575ca85");
27
27
  hashMap.set("cloudbuild", "f4e40388944652c8a19f8518771ac8d3f3c4ccf81ddef0e68b463aca833cb73c");
28
28
  hashMap.set("cocoapods", "f832e2beef885bb3fd697ed9bb3e8cd742926bfec37ff41212edd2dbb4edb3ba");
29
- hashMap.set("composer", "99ad5e0c0b479ae571e8f018e6d312c0e418f4800a6583b997b0e32d9058e9bd");
29
+ hashMap.set("composer", "f1294fb3866ff65a75d98fdef80b1df3d3a8856535b8c690d1799e1205e4b639");
30
30
  hashMap.set("conan", "8d46e9a30ae628e26118aea10a98d1b846f7c5d96d51ce24693437d555f6d125");
31
31
  hashMap.set("copier", "10ae4d7f8ff35faf3a3f9f25bf4c969ea960e19aaf8c012aee11f93f4d10533e");
32
32
  hashMap.set("cpanfile", "07813fec3f3c2197056500e9266a0553b9774c02f2c74d5ca2e213188c7c12d3");
33
33
  hashMap.set("crossplane", "5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40");
34
34
  hashMap.set("crow", "eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0");
35
35
  hashMap.set("deno", "917fdbfbad58fd7f57933646a760d91768368df563ce5eaf34a2bba165164a12");
36
- hashMap.set("deps-edn", "8a35b7e6e5ec375d8411cd40fa8eed836ba5aab02efe8ed8819861b41490da1b");
36
+ hashMap.set("deps-edn", "06783dbc8b9c7bb84e162d1f75b7db56dfa021cc6f809dfd2314cee8b64af08d");
37
37
  hashMap.set("devbox", "a40050cc61bd9b5d500ec111abb17bb15d5f82ab5b7699f66f628307ba8382c9");
38
38
  hashMap.set("devcontainer", "24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec");
39
- hashMap.set("docker-compose", "d806fc9ff52673b78587c6c58789b66987b046e3fd0b16e4f6d57aca078e9bca");
39
+ hashMap.set("docker-compose", "fba87b82cb0f2bfd66526631fbe928b8153e7ca701a5790d02b944df17417bb9");
40
40
  hashMap.set("dockerfile", "e491725880d930dfd0d58db135b31c0cc5bb6ff5e87f9e813c78bc0cf03b580c");
41
- hashMap.set("droneci", "e2039bb37c2d63c53027b188d1f0faa7c8923dcbfe6cf3851fba8d4e9f43a358");
41
+ hashMap.set("droneci", "661d2a2d7295af8dd7a1234c7090c42a89306bd574c3adf1fc67782efaad3998");
42
42
  hashMap.set("fleet", "4942d52e82f35c41e2d46cf76f426e2d91b350338cfc0bbcb97e8aaae2a1ac0b");
43
43
  hashMap.set("flux", "aad8c786c4a2b5820663027452eeb8fe84c3af8c8399261e85f0eade2e484fe8");
44
44
  hashMap.set("fvm", "9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90");
45
45
  hashMap.set("git-submodules", "df8bb92b2906d8cddda2d4b302ee503f8002e3554d32d74cef2f584fe891f38f");
46
- hashMap.set("github-actions", "7cffdc830dec9f7fe2b9fc039cd4d44b9356d4e797743b20bfc2226b5fbf1929");
46
+ hashMap.set("github-actions", "dc9b84670ff9f2e3d058a1eafacb0b2093b8273d31b67547d0f5d44db5bc2952");
47
47
  hashMap.set("gitlabci", "a5e1e66ef461e1c1e71062f85f35a212417e23627f4b002810f9a98295d6e672");
48
48
  hashMap.set("gitlabci-include", "8860a15ab516fde00694f9bd9bf56fce4addafe5a55b5ddb9a4ec477d301d351");
49
49
  hashMap.set("glasskube", "93e7b9000a17efa15a1abaaf320b5af9169b1ecd828fc0c881d98570ef9d9e30");
50
50
  hashMap.set("gleam", "5e9b9f5f914afe5ed7b526c06c65111e3716d2dea9b0cbe7907bbc96db1064a3");
51
- hashMap.set("gomod", "fa22f3f0b0af7b7f769cf3541bd38fdf67365965ce6c8a470f88155958991c24");
51
+ hashMap.set("gomod", "de042f3b5a900346c5f2df41f793f1716dc12145c38705c3064c6a7150b49495");
52
52
  hashMap.set("gradle", "9e3ff52ce4ad2555929acdd4d32c417c4ef8714c23a92f2893ecc580fa4d6064");
53
53
  hashMap.set("gradle-wrapper", "73ba30c34955fab7737454b5cff9aca6d1b5607d53c17c9e13d8ad96f6eaae87");
54
54
  hashMap.set("haskell-cabal", "f158b7725e3143dfd2950e3de0bbccc2a61cd7eba87f7a54c5057e01252348e2");
55
55
  hashMap.set("helm-requirements", "7ee9dace4c036dfe113c0c0e46369d8b83a739caa831660142ca98d3236a180a");
56
56
  hashMap.set("helm-values", "01069e887d4f3b55ca62a3c0dc66d8620264e1426207be9eb240a10c1ad5e412");
57
- hashMap.set("helmfile", "163baefbe5323bb5e671a73b72eaaecfbd03b798c70fd4117e191e143f2f7a4f");
57
+ hashMap.set("helmfile", "28572dd24b6746ca7065ee467aa13bbc8c3e8c0f88ae48e33bce88468c600100");
58
58
  hashMap.set("helmsman", "951deeb3355da751ef39c9e932b26ea749450e32e75759e4b5fc29359e100b37");
59
59
  hashMap.set("helmv3", "4a3cf47072978eb131d70cd13f3d0bbd4408b0290be2a798a4cbf6103189269b");
60
60
  hashMap.set("hermit", "0fb25b7766c3a264fbb765ff75b1542b24136c4c9f933696d4a5aecfed637071");
61
61
  hashMap.set("homeassistant-manifest", "05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f");
62
- hashMap.set("homebrew", "9c64a4f1475b1c2052372e566c9190f32ae8acd1c54313031d55ae8772388367");
62
+ hashMap.set("homebrew", "dffe954a4e18c2dc4bfdaa12222fe8ddc3395869afd5afa603fc2b6264747984");
63
63
  hashMap.set("html", "81fa6c2bf2b868596584a48b949645207a2aa3081951ed99183ee50b70b77d5f");
64
- hashMap.set("jenkins", "7bfb09418a132e052579196633bac78ac947cf93f1e70748ea1b3da929874b87");
64
+ hashMap.set("jenkins", "7fda0e7e0f3d5e18088ccb3594f727f4cfc48b064706bdaaf1a0a075b6a2cff5");
65
65
  hashMap.set("jsonnet-bundler", "4cedeb0394e5c38361d1868ff45b4f34747ab8c492378b6e63dcaf1f4f3c024d");
66
66
  hashMap.set("kotlin-script", "95ebc844c040ca047321b207d525220e29774a2a1fe06f9639e8353c66908564");
67
67
  hashMap.set("kubernetes", "321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de");
68
- hashMap.set("kustomize", "eb9d6d6aa65a738d6c658a6c9a73a9e86761360a608cf0ba8000d6c554dbc0c7");
69
- hashMap.set("leiningen", "a7295160ce901e08e12be75cb3aaf6b9a199de811eb60b618feb773f7c552bba");
68
+ hashMap.set("kustomize", "ca5f7520a3ce1082a94097425021cf51e02088157bcb3286c04d22f59fd0dd61");
69
+ hashMap.set("leiningen", "c8397e376f1717c2f771ae9ea3ba6b720d2422b133cf937e762c44e42be146a2");
70
70
  hashMap.set("maven", "c110b99291c2a5bc82cf7a69330275e9bbd7dc8ba3e9e987611dfcffbe002d8d");
71
71
  hashMap.set("maven-wrapper", "6e53b6e4abf1d20b75094c7a70d66b4a5ac39954f009aa401f5e55dada8be4d0");
72
72
  hashMap.set("meteor", "4636a47ba4dcfff19fe662572ef7a40d17146be3c966e00ef437e1fc8de92776");
@@ -76,19 +76,19 @@ hashMap.set("mix", "0f79163dc2a1c896599d152be635c23beaf16812ae3d8fbfffec98c7bd0d
76
76
  hashMap.set("nix", "0f80f0b81f2197a7e588be5c115a32a826fc184593f4e879f7b60fafd97a977e");
77
77
  hashMap.set("nodenv", "ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8");
78
78
  hashMap.set("npm", "30c78bc1c29eeecbdedb4eacc52bd93eedfb07279fd385f893193dcac6196466");
79
- hashMap.set("nuget", "d6acdee647e7e0f3568c46154a2e32c425e44b1044634919530e234035eddeff");
79
+ hashMap.set("nuget", "b81fb0ca6cfeb86b004592b38ce176673e056d6a2ed41a9807afb0eb7ad405d2");
80
80
  hashMap.set("nvm", "3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322");
81
81
  hashMap.set("ocb", "032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca");
82
82
  hashMap.set("osgi", "d6567a733ef3983112b46fdccd7ceebfcd48411104e0c6b6e714d4310db48024");
83
83
  hashMap.set("pep621", "52450676f8b0e05134b3e8947b832195ef40bcaec1ce43d71351a2f797b80d75");
84
- hashMap.set("pep723", "b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1");
84
+ hashMap.set("pep723", "77022a0eae6a3cbb74a1e6d596db1276e379768e40448192b3fa81edd14ca73f");
85
85
  hashMap.set("pip-compile", "7e418b8bdaeed38c1372eb19e0ae1c64999000e128d8754e37368638037b4c5c");
86
86
  hashMap.set("pip_requirements", "bf3a407f72abf711230247bef94ba5dc84c08a35107b0f017912fad66afa716a");
87
87
  hashMap.set("pip_setup", "df18fba2bdcf48f3ca12a8f7e5cd28df31e2368d5528127277038ef4206eca79");
88
88
  hashMap.set("pipenv", "cd974eadd649ba8c9c2e3c7b564a49c8bb2ce95d6df043a7e942364f574c7613");
89
89
  hashMap.set("pixi", "83f94ec64144ce2adad0901844ab1e9c1636bb5c77bd6578b22b98ab401d34b4");
90
90
  hashMap.set("poetry", "b2b917c200d25e01a3a198deb3bf33353535f27430142111cfab816c03bb966d");
91
- hashMap.set("pre-commit", "a8fa968d6308947c8a6eedd799ea449e548e918971acdc250b627e86a446dc23");
91
+ hashMap.set("pre-commit", "760f2c291ae084db889f722390798a0e2d431ccdc3bc676e73b14901ebea19ac");
92
92
  hashMap.set("proto", "412053d4550026b4ace490b46e970915b87ec1abf0b0a0c6c8c58ccf1fc16843");
93
93
  hashMap.set("pub", "8e7c65dfd1999de4f7c44392e949a4d8f4701eb86df59d550e4657feb06b1872");
94
94
  hashMap.set("puppet", "ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45");
@@ -103,14 +103,14 @@ hashMap.set("scalafmt", "9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988
103
103
  hashMap.set("setup-cfg", "4a3a7c812d34739c07685691e7e64c7d3127f9d7d4aff99dc45a25df97ed9745");
104
104
  hashMap.set("smithy", "9641b91d065ffb63be0dd888139a0402dba41e550f8b44c592db9daf52109100");
105
105
  hashMap.set("sveltos", "60dd75bb53ace31217211100d622fdb65068c6162758b6ae7103a6ce8bdc9f90");
106
- hashMap.set("swift", "5ebd875ee7a541b4725f6263789ea9a7c77a4b7c40b2119f894e67b588cfa672");
106
+ hashMap.set("swift", "6932c904b0d18ad4845c46ce3f7d4c54dd8e411e16c31a782b399fe0b7dc550b");
107
107
  hashMap.set("tekton", "33948f5bdf7553909fa63744adb26da97ddf366e9499bccab1250879570267c9");
108
- hashMap.set("terraform", "119a23583e7888eb362bfc0f9abd6c37feafbc1e21affb12c3d4d87e3734064f");
108
+ hashMap.set("terraform", "5b0037e4a88e06efe6f006eff15c24d9e1fefdda40d282aa99f54c2637d21c4d");
109
109
  hashMap.set("terraform-version", "ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa");
110
110
  hashMap.set("terragrunt", "ffcbaa67dd65f064d43f8c121c1006115eab1879c4bd38de263b9b90a009c118");
111
111
  hashMap.set("terragrunt-version", "eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d");
112
- hashMap.set("tflint-plugin", "31247d37bc80aae17039bfa21bd989c5717730c5ef10cf2a6f09841576d012ec");
113
- hashMap.set("travis", "04c94f72622003195c8ea8147c8fbd93003f444ec807ce33f2ada2384282db83");
112
+ hashMap.set("tflint-plugin", "f423bfa2b42a2bfc0e38a33ebd4f9d452473e7ed4e7ad6384a99eb9a35d97479");
113
+ hashMap.set("travis", "f3e2f38e699c390b00ff481be5e91dceaa81609e93caf9a4214933de759c84fc");
114
114
  hashMap.set("typst", "d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248");
115
115
  hashMap.set("unity3d", "f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920");
116
116
  hashMap.set("velaci", "fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de");
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','a52394a36ac5517f7330473c31d93aa05b2ce607c5e951b48f25a4693cd20a81');\nhashMap.set('ansible-galaxy','0a264d6be73953d801510fdeff271e4071c274339569c6dab4e2a128eaf4869f');\nhashMap.set('ant','2df5943cf0ed19a21b94df13729dbb925655548130caf37e3e22bebaed518e17');\nhashMap.set('apm','ca7c2342c04489253cd8f38d294a4c1428010115c2be22b3e0812dacf9881244');\nhashMap.set('argocd','cff9cd22257bc460ae4b9936570bf0ed5585f280a55d26629deaeeb0bfee8eb5');\nhashMap.set('asdf','430eb99b58171700c8a59c78b9e648575e9b176b781d90dd10a710f7b69015bb');\nhashMap.set('azure-pipelines','a051fe5e7e4fef8208b5864131a2b52b4ae319936f1dd8ee5a4e1ef11359ec09');\nhashMap.set('batect','375d39b432013bedb1330cf40a2199dd822751b28578214f219e7bab98594b8d');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','e5f354a1370b544c6e220880f11cfc11a2e95d2d172dae7d008ef0f65e8693ef');\nhashMap.set('bazel-module','9fbba0339f9f7785d52ab85c5f0f6385003093c063483c13feccba13ae438bef');\nhashMap.set('bazelisk','770f75a746dc6ba90c518788d5987d7df4243ef9eee122d1bb0556a93d6e1b11');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','b8b404f53cd5d61c39153fddf93945e621471c4ac6aa9960c881cd868922bb4c');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','684f46dd3cef4d30f9e4ae97c384a38d032ebf3d0bfe9b471ab1772c7b26827a');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','6e4784dd98c1f86ef64cc8cbf3128df48aebf920032d7792b54fdedd3dd9d4d5');\nhashMap.set('cake','9ebd8b481220b30a8860121d26184540a1a2fcc05ef780df9295dea39b386fad');\nhashMap.set('cargo','63721e2683b30cffc5ba87c75f919dc61a555f7741fa479f7446ef98c0ae9d5d');\nhashMap.set('cdnurl','9a81c8e3c6ad6c788498c99fc1067ffdfcd92a427c3afaf8c0130975d83131f2');\nhashMap.set('circleci','91cbeb33ea20f9838e2c81a1195eb806f0b38fa282bc3679f62552f20575ca85');\nhashMap.set('cloudbuild','f4e40388944652c8a19f8518771ac8d3f3c4ccf81ddef0e68b463aca833cb73c');\nhashMap.set('cocoapods','f832e2beef885bb3fd697ed9bb3e8cd742926bfec37ff41212edd2dbb4edb3ba');\nhashMap.set('composer','99ad5e0c0b479ae571e8f018e6d312c0e418f4800a6583b997b0e32d9058e9bd');\nhashMap.set('conan','8d46e9a30ae628e26118aea10a98d1b846f7c5d96d51ce24693437d555f6d125');\nhashMap.set('copier','10ae4d7f8ff35faf3a3f9f25bf4c969ea960e19aaf8c012aee11f93f4d10533e');\nhashMap.set('cpanfile','07813fec3f3c2197056500e9266a0553b9774c02f2c74d5ca2e213188c7c12d3');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deno','917fdbfbad58fd7f57933646a760d91768368df563ce5eaf34a2bba165164a12');\nhashMap.set('deps-edn','8a35b7e6e5ec375d8411cd40fa8eed836ba5aab02efe8ed8819861b41490da1b');\nhashMap.set('devbox','a40050cc61bd9b5d500ec111abb17bb15d5f82ab5b7699f66f628307ba8382c9');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','d806fc9ff52673b78587c6c58789b66987b046e3fd0b16e4f6d57aca078e9bca');\nhashMap.set('dockerfile','e491725880d930dfd0d58db135b31c0cc5bb6ff5e87f9e813c78bc0cf03b580c');\nhashMap.set('droneci','e2039bb37c2d63c53027b188d1f0faa7c8923dcbfe6cf3851fba8d4e9f43a358');\nhashMap.set('fleet','4942d52e82f35c41e2d46cf76f426e2d91b350338cfc0bbcb97e8aaae2a1ac0b');\nhashMap.set('flux','aad8c786c4a2b5820663027452eeb8fe84c3af8c8399261e85f0eade2e484fe8');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','df8bb92b2906d8cddda2d4b302ee503f8002e3554d32d74cef2f584fe891f38f');\nhashMap.set('github-actions','7cffdc830dec9f7fe2b9fc039cd4d44b9356d4e797743b20bfc2226b5fbf1929');\nhashMap.set('gitlabci','a5e1e66ef461e1c1e71062f85f35a212417e23627f4b002810f9a98295d6e672');\nhashMap.set('gitlabci-include','8860a15ab516fde00694f9bd9bf56fce4addafe5a55b5ddb9a4ec477d301d351');\nhashMap.set('glasskube','93e7b9000a17efa15a1abaaf320b5af9169b1ecd828fc0c881d98570ef9d9e30');\nhashMap.set('gleam','5e9b9f5f914afe5ed7b526c06c65111e3716d2dea9b0cbe7907bbc96db1064a3');\nhashMap.set('gomod','fa22f3f0b0af7b7f769cf3541bd38fdf67365965ce6c8a470f88155958991c24');\nhashMap.set('gradle','9e3ff52ce4ad2555929acdd4d32c417c4ef8714c23a92f2893ecc580fa4d6064');\nhashMap.set('gradle-wrapper','73ba30c34955fab7737454b5cff9aca6d1b5607d53c17c9e13d8ad96f6eaae87');\nhashMap.set('haskell-cabal','f158b7725e3143dfd2950e3de0bbccc2a61cd7eba87f7a54c5057e01252348e2');\nhashMap.set('helm-requirements','7ee9dace4c036dfe113c0c0e46369d8b83a739caa831660142ca98d3236a180a');\nhashMap.set('helm-values','01069e887d4f3b55ca62a3c0dc66d8620264e1426207be9eb240a10c1ad5e412');\nhashMap.set('helmfile','163baefbe5323bb5e671a73b72eaaecfbd03b798c70fd4117e191e143f2f7a4f');\nhashMap.set('helmsman','951deeb3355da751ef39c9e932b26ea749450e32e75759e4b5fc29359e100b37');\nhashMap.set('helmv3','4a3cf47072978eb131d70cd13f3d0bbd4408b0290be2a798a4cbf6103189269b');\nhashMap.set('hermit','0fb25b7766c3a264fbb765ff75b1542b24136c4c9f933696d4a5aecfed637071');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','9c64a4f1475b1c2052372e566c9190f32ae8acd1c54313031d55ae8772388367');\nhashMap.set('html','81fa6c2bf2b868596584a48b949645207a2aa3081951ed99183ee50b70b77d5f');\nhashMap.set('jenkins','7bfb09418a132e052579196633bac78ac947cf93f1e70748ea1b3da929874b87');\nhashMap.set('jsonnet-bundler','4cedeb0394e5c38361d1868ff45b4f34747ab8c492378b6e63dcaf1f4f3c024d');\nhashMap.set('kotlin-script','95ebc844c040ca047321b207d525220e29774a2a1fe06f9639e8353c66908564');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','eb9d6d6aa65a738d6c658a6c9a73a9e86761360a608cf0ba8000d6c554dbc0c7');\nhashMap.set('leiningen','a7295160ce901e08e12be75cb3aaf6b9a199de811eb60b618feb773f7c552bba');\nhashMap.set('maven','c110b99291c2a5bc82cf7a69330275e9bbd7dc8ba3e9e987611dfcffbe002d8d');\nhashMap.set('maven-wrapper','6e53b6e4abf1d20b75094c7a70d66b4a5ac39954f009aa401f5e55dada8be4d0');\nhashMap.set('meteor','4636a47ba4dcfff19fe662572ef7a40d17146be3c966e00ef437e1fc8de92776');\nhashMap.set('mint','248fe4f1ea5c985921c286785792c97e06fc41f402b2d45df82f6aecd17f710e');\nhashMap.set('mise','10f20b75f727142938939b2b3cd7e0f77c3a37567f2b8b7ef78cef9a4908936e');\nhashMap.set('mix','0f79163dc2a1c896599d152be635c23beaf16812ae3d8fbfffec98c7bd0de872');\nhashMap.set('nix','0f80f0b81f2197a7e588be5c115a32a826fc184593f4e879f7b60fafd97a977e');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','30c78bc1c29eeecbdedb4eacc52bd93eedfb07279fd385f893193dcac6196466');\nhashMap.set('nuget','d6acdee647e7e0f3568c46154a2e32c425e44b1044634919530e234035eddeff');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','d6567a733ef3983112b46fdccd7ceebfcd48411104e0c6b6e714d4310db48024');\nhashMap.set('pep621','52450676f8b0e05134b3e8947b832195ef40bcaec1ce43d71351a2f797b80d75');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','7e418b8bdaeed38c1372eb19e0ae1c64999000e128d8754e37368638037b4c5c');\nhashMap.set('pip_requirements','bf3a407f72abf711230247bef94ba5dc84c08a35107b0f017912fad66afa716a');\nhashMap.set('pip_setup','df18fba2bdcf48f3ca12a8f7e5cd28df31e2368d5528127277038ef4206eca79');\nhashMap.set('pipenv','cd974eadd649ba8c9c2e3c7b564a49c8bb2ce95d6df043a7e942364f574c7613');\nhashMap.set('pixi','83f94ec64144ce2adad0901844ab1e9c1636bb5c77bd6578b22b98ab401d34b4');\nhashMap.set('poetry','b2b917c200d25e01a3a198deb3bf33353535f27430142111cfab816c03bb966d');\nhashMap.set('pre-commit','a8fa968d6308947c8a6eedd799ea449e548e918971acdc250b627e86a446dc23');\nhashMap.set('proto','412053d4550026b4ace490b46e970915b87ec1abf0b0a0c6c8c58ccf1fc16843');\nhashMap.set('pub','8e7c65dfd1999de4f7c44392e949a4d8f4701eb86df59d550e4657feb06b1872');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e1fc88a4e14cd595e89bb3d79b4adf2add3ce5eb80f75276e712c32598cca53d');\nhashMap.set('renovate-config','ca60beee2e3b871ea1216fa9df9a501f7ed355fe7da29e12509e56a124a78e69');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('rust-toolchain','6ace53db02874d73620d2d872291839820a512a9529c42d174358c692e5db720');\nhashMap.set('sbt','e1eb5c7f0171a9bb1b6bd4a36a91039a31b6c84e0983d91d930be31a69506d9e');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','4a3a7c812d34739c07685691e7e64c7d3127f9d7d4aff99dc45a25df97ed9745');\nhashMap.set('smithy','9641b91d065ffb63be0dd888139a0402dba41e550f8b44c592db9daf52109100');\nhashMap.set('sveltos','60dd75bb53ace31217211100d622fdb65068c6162758b6ae7103a6ce8bdc9f90');\nhashMap.set('swift','5ebd875ee7a541b4725f6263789ea9a7c77a4b7c40b2119f894e67b588cfa672');\nhashMap.set('tekton','33948f5bdf7553909fa63744adb26da97ddf366e9499bccab1250879570267c9');\nhashMap.set('terraform','119a23583e7888eb362bfc0f9abd6c37feafbc1e21affb12c3d4d87e3734064f');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','ffcbaa67dd65f064d43f8c121c1006115eab1879c4bd38de263b9b90a009c118');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','31247d37bc80aae17039bfa21bd989c5717730c5ef10cf2a6f09841576d012ec');\nhashMap.set('travis','04c94f72622003195c8ea8147c8fbd93003f444ec807ce33f2ada2384282db83');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','7db907b3b77ef5f3465f3c4339fbab56bbcdfd1bf34b3d33e4c178d2e07e23e7');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','416bcf61144b276b3112814c6e6d261aa29608f46fbb0516c471d35c16f8f0d7');\nhashMap.set('regex','20be5247fdc164173871a051acb0527da017d0c155c653d7563601f55e7b3ff5');"],"mappings":"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"}
1
+ {"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','a52394a36ac5517f7330473c31d93aa05b2ce607c5e951b48f25a4693cd20a81');\nhashMap.set('ansible-galaxy','0a264d6be73953d801510fdeff271e4071c274339569c6dab4e2a128eaf4869f');\nhashMap.set('ant','2df5943cf0ed19a21b94df13729dbb925655548130caf37e3e22bebaed518e17');\nhashMap.set('apm','ca7c2342c04489253cd8f38d294a4c1428010115c2be22b3e0812dacf9881244');\nhashMap.set('argocd','cff9cd22257bc460ae4b9936570bf0ed5585f280a55d26629deaeeb0bfee8eb5');\nhashMap.set('asdf','430eb99b58171700c8a59c78b9e648575e9b176b781d90dd10a710f7b69015bb');\nhashMap.set('azure-pipelines','a051fe5e7e4fef8208b5864131a2b52b4ae319936f1dd8ee5a4e1ef11359ec09');\nhashMap.set('batect','375d39b432013bedb1330cf40a2199dd822751b28578214f219e7bab98594b8d');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c31bc0a0e23d32726bcc09aa67533ebc5058124bf89c88e09c837419f550801a');\nhashMap.set('bazel-module','9fbba0339f9f7785d52ab85c5f0f6385003093c063483c13feccba13ae438bef');\nhashMap.set('bazelisk','770f75a746dc6ba90c518788d5987d7df4243ef9eee122d1bb0556a93d6e1b11');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','b8b404f53cd5d61c39153fddf93945e621471c4ac6aa9960c881cd868922bb4c');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','8ec4c3c8080a55e93b741cfa97779b47291734dc24d80529c887d3b2b823fc44');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','6e4784dd98c1f86ef64cc8cbf3128df48aebf920032d7792b54fdedd3dd9d4d5');\nhashMap.set('cake','9ebd8b481220b30a8860121d26184540a1a2fcc05ef780df9295dea39b386fad');\nhashMap.set('cargo','fe8136135c895dd08819f91a60cf105f8b951251b057092700101ace991ae1d7');\nhashMap.set('cdnurl','9a81c8e3c6ad6c788498c99fc1067ffdfcd92a427c3afaf8c0130975d83131f2');\nhashMap.set('circleci','91cbeb33ea20f9838e2c81a1195eb806f0b38fa282bc3679f62552f20575ca85');\nhashMap.set('cloudbuild','f4e40388944652c8a19f8518771ac8d3f3c4ccf81ddef0e68b463aca833cb73c');\nhashMap.set('cocoapods','f832e2beef885bb3fd697ed9bb3e8cd742926bfec37ff41212edd2dbb4edb3ba');\nhashMap.set('composer','f1294fb3866ff65a75d98fdef80b1df3d3a8856535b8c690d1799e1205e4b639');\nhashMap.set('conan','8d46e9a30ae628e26118aea10a98d1b846f7c5d96d51ce24693437d555f6d125');\nhashMap.set('copier','10ae4d7f8ff35faf3a3f9f25bf4c969ea960e19aaf8c012aee11f93f4d10533e');\nhashMap.set('cpanfile','07813fec3f3c2197056500e9266a0553b9774c02f2c74d5ca2e213188c7c12d3');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deno','917fdbfbad58fd7f57933646a760d91768368df563ce5eaf34a2bba165164a12');\nhashMap.set('deps-edn','06783dbc8b9c7bb84e162d1f75b7db56dfa021cc6f809dfd2314cee8b64af08d');\nhashMap.set('devbox','a40050cc61bd9b5d500ec111abb17bb15d5f82ab5b7699f66f628307ba8382c9');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','fba87b82cb0f2bfd66526631fbe928b8153e7ca701a5790d02b944df17417bb9');\nhashMap.set('dockerfile','e491725880d930dfd0d58db135b31c0cc5bb6ff5e87f9e813c78bc0cf03b580c');\nhashMap.set('droneci','661d2a2d7295af8dd7a1234c7090c42a89306bd574c3adf1fc67782efaad3998');\nhashMap.set('fleet','4942d52e82f35c41e2d46cf76f426e2d91b350338cfc0bbcb97e8aaae2a1ac0b');\nhashMap.set('flux','aad8c786c4a2b5820663027452eeb8fe84c3af8c8399261e85f0eade2e484fe8');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','df8bb92b2906d8cddda2d4b302ee503f8002e3554d32d74cef2f584fe891f38f');\nhashMap.set('github-actions','dc9b84670ff9f2e3d058a1eafacb0b2093b8273d31b67547d0f5d44db5bc2952');\nhashMap.set('gitlabci','a5e1e66ef461e1c1e71062f85f35a212417e23627f4b002810f9a98295d6e672');\nhashMap.set('gitlabci-include','8860a15ab516fde00694f9bd9bf56fce4addafe5a55b5ddb9a4ec477d301d351');\nhashMap.set('glasskube','93e7b9000a17efa15a1abaaf320b5af9169b1ecd828fc0c881d98570ef9d9e30');\nhashMap.set('gleam','5e9b9f5f914afe5ed7b526c06c65111e3716d2dea9b0cbe7907bbc96db1064a3');\nhashMap.set('gomod','de042f3b5a900346c5f2df41f793f1716dc12145c38705c3064c6a7150b49495');\nhashMap.set('gradle','9e3ff52ce4ad2555929acdd4d32c417c4ef8714c23a92f2893ecc580fa4d6064');\nhashMap.set('gradle-wrapper','73ba30c34955fab7737454b5cff9aca6d1b5607d53c17c9e13d8ad96f6eaae87');\nhashMap.set('haskell-cabal','f158b7725e3143dfd2950e3de0bbccc2a61cd7eba87f7a54c5057e01252348e2');\nhashMap.set('helm-requirements','7ee9dace4c036dfe113c0c0e46369d8b83a739caa831660142ca98d3236a180a');\nhashMap.set('helm-values','01069e887d4f3b55ca62a3c0dc66d8620264e1426207be9eb240a10c1ad5e412');\nhashMap.set('helmfile','28572dd24b6746ca7065ee467aa13bbc8c3e8c0f88ae48e33bce88468c600100');\nhashMap.set('helmsman','951deeb3355da751ef39c9e932b26ea749450e32e75759e4b5fc29359e100b37');\nhashMap.set('helmv3','4a3cf47072978eb131d70cd13f3d0bbd4408b0290be2a798a4cbf6103189269b');\nhashMap.set('hermit','0fb25b7766c3a264fbb765ff75b1542b24136c4c9f933696d4a5aecfed637071');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','dffe954a4e18c2dc4bfdaa12222fe8ddc3395869afd5afa603fc2b6264747984');\nhashMap.set('html','81fa6c2bf2b868596584a48b949645207a2aa3081951ed99183ee50b70b77d5f');\nhashMap.set('jenkins','7fda0e7e0f3d5e18088ccb3594f727f4cfc48b064706bdaaf1a0a075b6a2cff5');\nhashMap.set('jsonnet-bundler','4cedeb0394e5c38361d1868ff45b4f34747ab8c492378b6e63dcaf1f4f3c024d');\nhashMap.set('kotlin-script','95ebc844c040ca047321b207d525220e29774a2a1fe06f9639e8353c66908564');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','ca5f7520a3ce1082a94097425021cf51e02088157bcb3286c04d22f59fd0dd61');\nhashMap.set('leiningen','c8397e376f1717c2f771ae9ea3ba6b720d2422b133cf937e762c44e42be146a2');\nhashMap.set('maven','c110b99291c2a5bc82cf7a69330275e9bbd7dc8ba3e9e987611dfcffbe002d8d');\nhashMap.set('maven-wrapper','6e53b6e4abf1d20b75094c7a70d66b4a5ac39954f009aa401f5e55dada8be4d0');\nhashMap.set('meteor','4636a47ba4dcfff19fe662572ef7a40d17146be3c966e00ef437e1fc8de92776');\nhashMap.set('mint','248fe4f1ea5c985921c286785792c97e06fc41f402b2d45df82f6aecd17f710e');\nhashMap.set('mise','10f20b75f727142938939b2b3cd7e0f77c3a37567f2b8b7ef78cef9a4908936e');\nhashMap.set('mix','0f79163dc2a1c896599d152be635c23beaf16812ae3d8fbfffec98c7bd0de872');\nhashMap.set('nix','0f80f0b81f2197a7e588be5c115a32a826fc184593f4e879f7b60fafd97a977e');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','30c78bc1c29eeecbdedb4eacc52bd93eedfb07279fd385f893193dcac6196466');\nhashMap.set('nuget','b81fb0ca6cfeb86b004592b38ce176673e056d6a2ed41a9807afb0eb7ad405d2');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','d6567a733ef3983112b46fdccd7ceebfcd48411104e0c6b6e714d4310db48024');\nhashMap.set('pep621','52450676f8b0e05134b3e8947b832195ef40bcaec1ce43d71351a2f797b80d75');\nhashMap.set('pep723','77022a0eae6a3cbb74a1e6d596db1276e379768e40448192b3fa81edd14ca73f');\nhashMap.set('pip-compile','7e418b8bdaeed38c1372eb19e0ae1c64999000e128d8754e37368638037b4c5c');\nhashMap.set('pip_requirements','bf3a407f72abf711230247bef94ba5dc84c08a35107b0f017912fad66afa716a');\nhashMap.set('pip_setup','df18fba2bdcf48f3ca12a8f7e5cd28df31e2368d5528127277038ef4206eca79');\nhashMap.set('pipenv','cd974eadd649ba8c9c2e3c7b564a49c8bb2ce95d6df043a7e942364f574c7613');\nhashMap.set('pixi','83f94ec64144ce2adad0901844ab1e9c1636bb5c77bd6578b22b98ab401d34b4');\nhashMap.set('poetry','b2b917c200d25e01a3a198deb3bf33353535f27430142111cfab816c03bb966d');\nhashMap.set('pre-commit','760f2c291ae084db889f722390798a0e2d431ccdc3bc676e73b14901ebea19ac');\nhashMap.set('proto','412053d4550026b4ace490b46e970915b87ec1abf0b0a0c6c8c58ccf1fc16843');\nhashMap.set('pub','8e7c65dfd1999de4f7c44392e949a4d8f4701eb86df59d550e4657feb06b1872');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e1fc88a4e14cd595e89bb3d79b4adf2add3ce5eb80f75276e712c32598cca53d');\nhashMap.set('renovate-config','ca60beee2e3b871ea1216fa9df9a501f7ed355fe7da29e12509e56a124a78e69');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('rust-toolchain','6ace53db02874d73620d2d872291839820a512a9529c42d174358c692e5db720');\nhashMap.set('sbt','e1eb5c7f0171a9bb1b6bd4a36a91039a31b6c84e0983d91d930be31a69506d9e');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','4a3a7c812d34739c07685691e7e64c7d3127f9d7d4aff99dc45a25df97ed9745');\nhashMap.set('smithy','9641b91d065ffb63be0dd888139a0402dba41e550f8b44c592db9daf52109100');\nhashMap.set('sveltos','60dd75bb53ace31217211100d622fdb65068c6162758b6ae7103a6ce8bdc9f90');\nhashMap.set('swift','6932c904b0d18ad4845c46ce3f7d4c54dd8e411e16c31a782b399fe0b7dc550b');\nhashMap.set('tekton','33948f5bdf7553909fa63744adb26da97ddf366e9499bccab1250879570267c9');\nhashMap.set('terraform','5b0037e4a88e06efe6f006eff15c24d9e1fefdda40d282aa99f54c2637d21c4d');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','ffcbaa67dd65f064d43f8c121c1006115eab1879c4bd38de263b9b90a009c118');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','f423bfa2b42a2bfc0e38a33ebd4f9d452473e7ed4e7ad6384a99eb9a35d97479');\nhashMap.set('travis','f3e2f38e699c390b00ff481be5e91dceaa81609e93caf9a4214933de759c84fc');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','7db907b3b77ef5f3465f3c4339fbab56bbcdfd1bf34b3d33e4c178d2e07e23e7');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','416bcf61144b276b3112814c6e6d261aa29608f46fbb0516c471d35c16f8f0d7');\nhashMap.set('regex','20be5247fdc164173871a051acb0527da017d0c155c653d7563601f55e7b3ff5');"],"mappings":"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"}
@@ -42,7 +42,7 @@ async function getModules(git, gitModulesPath) {
42
42
  gitModulesPath,
43
43
  "--get-regexp",
44
44
  "\\.path"
45
- ]) ?? /* istanbul ignore next: should never happen */ "").trim().split(regEx(/\n/)).filter((s) => !!s);
45
+ ])).trim().split(regEx(/\n/)).filter((s) => !!s);
46
46
  for (const line of modules) {
47
47
  const [, name, path] = line.split(regEx(/submodule\.(?<name>.+?)\.path\s(?<path>.+)/));
48
48
  res.push({
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","names":["semVerVersioning.id"],"sources":["../../../../lib/modules/manager/git-submodules/extract.ts"],"sourcesContent":["import type { SimpleGit } from 'simple-git';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../config/global.ts';\nimport { logger } from '../../../logger/index.ts';\nimport { createSimpleGit } from '../../../util/git/index.ts';\nimport { getHttpUrl } from '../../../util/git/url.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { GitRefsDatasource } from '../../datasource/git-refs/index.ts';\nimport * as semVerVersioning from '../../versioning/semver/index.ts';\nimport type { ExtractConfig, PackageFileContent } from '../types.ts';\nimport type { GitModule } from './types.ts';\n\nasync function getUrl(\n git: SimpleGit,\n gitModulesPath: string,\n submoduleName: string,\n): Promise<string> {\n const path = (\n await createSimpleGit().raw([\n 'config',\n '--file',\n gitModulesPath,\n '--get',\n `submodule.${submoduleName}.url`,\n ])\n )?.trim();\n if (!path?.startsWith('../') && !path?.startsWith('./')) {\n return path;\n }\n const remoteUrl = (\n await git.raw(['config', '--get', 'remote.origin.url'])\n ).trim();\n return new URL(path, `${remoteUrl}/`).href;\n}\n\nasync function getBranch(\n git: SimpleGit,\n gitModulesPath: string,\n submoduleName: string,\n): Promise<string | null> {\n const branchFromConfig = (\n await createSimpleGit().raw([\n 'config',\n '--file',\n gitModulesPath,\n '--get',\n `submodule.${submoduleName}.branch`,\n ])\n ).trim();\n\n return branchFromConfig === '.'\n ? (await git.branch(['--list'])).current.trim()\n : branchFromConfig || null;\n}\n\nasync function getModules(\n git: SimpleGit,\n gitModulesPath: string,\n): Promise<GitModule[]> {\n const res: GitModule[] = [];\n try {\n const modules = (\n (await git.raw([\n 'config',\n '--file',\n gitModulesPath,\n '--get-regexp',\n '\\\\.path',\n ])) ?? /* istanbul ignore next: should never happen */ ''\n )\n .trim()\n .split(regEx(/\\n/))\n .filter((s) => !!s);\n\n for (const line of modules) {\n const [, name, path] = line.split(\n regEx(/submodule\\.(?<name>.+?)\\.path\\s(?<path>.+)/),\n );\n res.push({ name, path });\n }\n } catch (err) /* istanbul ignore next */ {\n logger.warn({ err }, 'Error getting git submodules during extract');\n }\n return res;\n}\n\nexport default async function extractPackageFile(\n _content: string,\n packageFile: string,\n _config: ExtractConfig,\n): Promise<PackageFileContent | null> {\n const localDir = GlobalConfig.get('localDir');\n const git = createSimpleGit({ config: { baseDir: localDir } });\n const gitModulesPath = upath.join(localDir, packageFile);\n\n const depNames = await getModules(git, gitModulesPath);\n\n if (!depNames.length) {\n return null;\n }\n\n const deps = [];\n for (const { name, path } of depNames) {\n try {\n const [currentDigest] = (\n await git.subModule(['status', '--cached', path])\n )\n .trim()\n .replace(regEx(/^[-+]/), '')\n .split(regEx(/\\s/));\n const subModuleUrl = await getUrl(git, gitModulesPath, name);\n const httpSubModuleUrl = getHttpUrl(subModuleUrl);\n const branch = await getBranch(git, gitModulesPath, name);\n deps.push({\n depName: path,\n packageName: httpSubModuleUrl,\n sourceUrl: httpSubModuleUrl.replace(regEx(/\\.git$/), ''),\n currentValue: branch ?? undefined,\n currentDigest,\n ...(semVerVersioning.api.isVersion(branch)\n ? { versioning: semVerVersioning.id }\n : {}),\n });\n } catch (err) /* istanbul ignore next */ {\n logger.warn(\n { err, packageFile },\n 'Error mapping git submodules during extraction',\n );\n }\n }\n\n return { deps, datasource: GitRefsDatasource.id };\n}\n"],"mappings":";;;;;;;;;AAYA,eAAe,OACb,KACA,gBACA,eACiB;CACjB,MAAM,QACJ,MAAM,gBAAgB,CAAC,CAAC,IAAI;EAC1B;EACA;EACA;EACA;EACA,aAAa,cAAc;CAC7B,CAAC,EAAA,EACA,KAAK;CACR,IAAI,CAAC,MAAM,WAAW,KAAK,KAAK,CAAC,MAAM,WAAW,IAAI,GACpD,OAAO;CAET,MAAM,aACJ,MAAM,IAAI,IAAI;EAAC;EAAU;EAAS;CAAmB,CAAC,EAAA,CACtD,KAAK;CACP,OAAO,IAAI,IAAI,MAAM,GAAG,UAAU,EAAE,CAAC,CAAC;AACxC;AAEA,eAAe,UACb,KACA,gBACA,eACwB;CACxB,MAAM,oBACJ,MAAM,gBAAgB,CAAC,CAAC,IAAI;EAC1B;EACA;EACA;EACA;EACA,aAAa,cAAc;CAC7B,CAAC,EAAA,CACD,KAAK;CAEP,OAAO,qBAAqB,OACvB,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAA,CAAG,QAAQ,KAAK,IAC5C,oBAAoB;AAC1B;AAEA,eAAe,WACb,KACA,gBACsB;CACtB,MAAM,MAAmB,CAAC;CAC1B,IAAI;EACF,MAAM,WACH,MAAM,IAAI,IAAI;GACb;GACA;GACA;GACA;GACA;EACF,CAAC,qDAAsD,GAAA,CAEtD,KAAK,CAAC,CACN,MAAM,MAAM,IAAI,CAAC,CAAC,CAClB,QAAQ,MAAM,CAAC,CAAC,CAAC;EAEpB,KAAK,MAAM,QAAQ,SAAS;GAC1B,MAAM,GAAG,MAAM,QAAQ,KAAK,MAC1B,MAAM,4CAA4C,CACpD;GACA,IAAI,KAAK;IAAE;IAAM;GAAK,CAAC;EACzB;CACF,SAAS,gCAAgC;EACvC,OAAO,KAAK,EAAE,IAAI,GAAG,6CAA6C;CACpE;CACA,OAAO;AACT;AAEA,eAA8B,mBAC5B,UACA,aACA,SACoC;CACpC,MAAM,WAAW,aAAa,IAAI,UAAU;CAC5C,MAAM,MAAM,gBAAgB,EAAE,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;CAC7D,MAAM,iBAAiB,MAAM,KAAK,UAAU,WAAW;CAEvD,MAAM,WAAW,MAAM,WAAW,KAAK,cAAc;CAErD,IAAI,CAAC,SAAS,QACZ,OAAO;CAGT,MAAM,OAAO,CAAC;CACd,KAAK,MAAM,EAAE,MAAM,UAAU,UAC3B,IAAI;EACF,MAAM,CAAC,kBACL,MAAM,IAAI,UAAU;GAAC;GAAU;GAAY;EAAI,CAAC,EAAA,CAE/C,KAAK,CAAC,CACN,QAAQ,MAAM,OAAO,GAAG,EAAE,CAAC,CAC3B,MAAM,MAAM,IAAI,CAAC;EACpB,MAAM,eAAe,MAAM,OAAO,KAAK,gBAAgB,IAAI;EAC3D,MAAM,mBAAmB,WAAW,YAAY;EAChD,MAAM,SAAS,MAAM,UAAU,KAAK,gBAAgB,IAAI;EACxD,KAAK,KAAK;GACR,SAAS;GACT,aAAa;GACb,WAAW,iBAAiB,QAAQ,MAAM,QAAQ,GAAG,EAAE;GACvD,cAAc,UAAU,KAAA;GACxB;GACA,GAAA,IAAyB,UAAU,MAAM,IACrC,EAAE,YAAYA,GAAoB,IAClC,CAAC;EACP,CAAC;CACH,SAAS,gCAAgC;EACvC,OAAO,KACL;GAAE;GAAK;EAAY,GACnB,gDACF;CACF;CAGF,OAAO;EAAE;EAAM,YAAY,kBAAkB;CAAG;AAClD"}
1
+ {"version":3,"file":"extract.js","names":["semVerVersioning.id"],"sources":["../../../../lib/modules/manager/git-submodules/extract.ts"],"sourcesContent":["import type { SimpleGit } from 'simple-git';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../config/global.ts';\nimport { logger } from '../../../logger/index.ts';\nimport { createSimpleGit } from '../../../util/git/index.ts';\nimport { getHttpUrl } from '../../../util/git/url.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { GitRefsDatasource } from '../../datasource/git-refs/index.ts';\nimport * as semVerVersioning from '../../versioning/semver/index.ts';\nimport type { ExtractConfig, PackageFileContent } from '../types.ts';\nimport type { GitModule } from './types.ts';\n\nasync function getUrl(\n git: SimpleGit,\n gitModulesPath: string,\n submoduleName: string,\n): Promise<string> {\n const path = (\n await createSimpleGit().raw([\n 'config',\n '--file',\n gitModulesPath,\n '--get',\n `submodule.${submoduleName}.url`,\n ])\n )?.trim();\n if (!path?.startsWith('../') && !path?.startsWith('./')) {\n return path;\n }\n const remoteUrl = (\n await git.raw(['config', '--get', 'remote.origin.url'])\n ).trim();\n return new URL(path, `${remoteUrl}/`).href;\n}\n\nasync function getBranch(\n git: SimpleGit,\n gitModulesPath: string,\n submoduleName: string,\n): Promise<string | null> {\n const branchFromConfig = (\n await createSimpleGit().raw([\n 'config',\n '--file',\n gitModulesPath,\n '--get',\n `submodule.${submoduleName}.branch`,\n ])\n ).trim();\n\n return branchFromConfig === '.'\n ? (await git.branch(['--list'])).current.trim()\n : branchFromConfig || null;\n}\n\nasync function getModules(\n git: SimpleGit,\n gitModulesPath: string,\n): Promise<GitModule[]> {\n const res: GitModule[] = [];\n try {\n const modules = (\n await git.raw([\n 'config',\n '--file',\n gitModulesPath,\n '--get-regexp',\n '\\\\.path',\n ])\n )\n .trim()\n .split(regEx(/\\n/))\n .filter((s) => !!s);\n\n for (const line of modules) {\n const [, name, path] = line.split(\n regEx(/submodule\\.(?<name>.+?)\\.path\\s(?<path>.+)/),\n );\n res.push({ name, path });\n }\n } catch (err) /* istanbul ignore next */ {\n logger.warn({ err }, 'Error getting git submodules during extract');\n }\n return res;\n}\n\nexport default async function extractPackageFile(\n _content: string,\n packageFile: string,\n _config: ExtractConfig,\n): Promise<PackageFileContent | null> {\n const localDir = GlobalConfig.get('localDir');\n const git = createSimpleGit({ config: { baseDir: localDir } });\n const gitModulesPath = upath.join(localDir, packageFile);\n\n const depNames = await getModules(git, gitModulesPath);\n\n if (!depNames.length) {\n return null;\n }\n\n const deps = [];\n for (const { name, path } of depNames) {\n try {\n const [currentDigest] = (\n await git.subModule(['status', '--cached', path])\n )\n .trim()\n .replace(regEx(/^[-+]/), '')\n .split(regEx(/\\s/));\n const subModuleUrl = await getUrl(git, gitModulesPath, name);\n const httpSubModuleUrl = getHttpUrl(subModuleUrl);\n const branch = await getBranch(git, gitModulesPath, name);\n deps.push({\n depName: path,\n packageName: httpSubModuleUrl,\n sourceUrl: httpSubModuleUrl.replace(regEx(/\\.git$/), ''),\n currentValue: branch ?? undefined,\n currentDigest,\n ...(semVerVersioning.api.isVersion(branch)\n ? { versioning: semVerVersioning.id }\n : {}),\n });\n } catch (err) /* istanbul ignore next */ {\n logger.warn(\n { err, packageFile },\n 'Error mapping git submodules during extraction',\n );\n }\n }\n\n return { deps, datasource: GitRefsDatasource.id };\n}\n"],"mappings":";;;;;;;;;AAYA,eAAe,OACb,KACA,gBACA,eACiB;CACjB,MAAM,QACJ,MAAM,gBAAgB,CAAC,CAAC,IAAI;EAC1B;EACA;EACA;EACA;EACA,aAAa,cAAc;CAC7B,CAAC,EAAA,EACA,KAAK;CACR,IAAI,CAAC,MAAM,WAAW,KAAK,KAAK,CAAC,MAAM,WAAW,IAAI,GACpD,OAAO;CAET,MAAM,aACJ,MAAM,IAAI,IAAI;EAAC;EAAU;EAAS;CAAmB,CAAC,EAAA,CACtD,KAAK;CACP,OAAO,IAAI,IAAI,MAAM,GAAG,UAAU,EAAE,CAAC,CAAC;AACxC;AAEA,eAAe,UACb,KACA,gBACA,eACwB;CACxB,MAAM,oBACJ,MAAM,gBAAgB,CAAC,CAAC,IAAI;EAC1B;EACA;EACA;EACA;EACA,aAAa,cAAc;CAC7B,CAAC,EAAA,CACD,KAAK;CAEP,OAAO,qBAAqB,OACvB,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAA,CAAG,QAAQ,KAAK,IAC5C,oBAAoB;AAC1B;AAEA,eAAe,WACb,KACA,gBACsB;CACtB,MAAM,MAAmB,CAAC;CAC1B,IAAI;EACF,MAAM,WACJ,MAAM,IAAI,IAAI;GACZ;GACA;GACA;GACA;GACA;EACF,CAAC,EAAA,CAEA,KAAK,CAAC,CACN,MAAM,MAAM,IAAI,CAAC,CAAC,CAClB,QAAQ,MAAM,CAAC,CAAC,CAAC;EAEpB,KAAK,MAAM,QAAQ,SAAS;GAC1B,MAAM,GAAG,MAAM,QAAQ,KAAK,MAC1B,MAAM,4CAA4C,CACpD;GACA,IAAI,KAAK;IAAE;IAAM;GAAK,CAAC;EACzB;CACF,SAAS,gCAAgC;EACvC,OAAO,KAAK,EAAE,IAAI,GAAG,6CAA6C;CACpE;CACA,OAAO;AACT;AAEA,eAA8B,mBAC5B,UACA,aACA,SACoC;CACpC,MAAM,WAAW,aAAa,IAAI,UAAU;CAC5C,MAAM,MAAM,gBAAgB,EAAE,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;CAC7D,MAAM,iBAAiB,MAAM,KAAK,UAAU,WAAW;CAEvD,MAAM,WAAW,MAAM,WAAW,KAAK,cAAc;CAErD,IAAI,CAAC,SAAS,QACZ,OAAO;CAGT,MAAM,OAAO,CAAC;CACd,KAAK,MAAM,EAAE,MAAM,UAAU,UAC3B,IAAI;EACF,MAAM,CAAC,kBACL,MAAM,IAAI,UAAU;GAAC;GAAU;GAAY;EAAI,CAAC,EAAA,CAE/C,KAAK,CAAC,CACN,QAAQ,MAAM,OAAO,GAAG,EAAE,CAAC,CAC3B,MAAM,MAAM,IAAI,CAAC;EACpB,MAAM,eAAe,MAAM,OAAO,KAAK,gBAAgB,IAAI;EAC3D,MAAM,mBAAmB,WAAW,YAAY;EAChD,MAAM,SAAS,MAAM,UAAU,KAAK,gBAAgB,IAAI;EACxD,KAAK,KAAK;GACR,SAAS;GACT,aAAa;GACb,WAAW,iBAAiB,QAAQ,MAAM,QAAQ,GAAG,EAAE;GACvD,cAAc,UAAU,KAAA;GACxB;GACA,GAAA,IAAyB,UAAU,MAAM,IACrC,EAAE,YAAYA,GAAoB,IAClC,CAAC;EACP,CAAC;CACH,SAAS,gCAAgC;EACvC,OAAO,KACL;GAAE;GAAK;EAAY,GACnB,gDACF;CACF;CAGF,OAAO;EAAE;EAAM,YAAY,kBAAkB;CAAG;AAClD"}