renovate 44.44.0 → 44.45.0

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.
@@ -98,7 +98,7 @@ async function extractPackageFile(content, packageFile) {
98
98
  const gitUrl = gitRefsMatch.gitUrl;
99
99
  dep.packageName = gitUrl;
100
100
  if (isHttpUrl(gitUrl)) dep.sourceUrl = gitUrl.replace(regEx(/\.git$/), "");
101
- } else if (gitRefsMatch.repoName) {
101
+ } else {
102
102
  dep.packageName = `https://github.com/${gitRefsMatch.repoName}`;
103
103
  dep.sourceUrl = dep.packageName;
104
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","names":[],"sources":["../../../../lib/modules/manager/bundler/extract.ts"],"sourcesContent":["import { isString } from '@sindresorhus/is';\nimport { logger } from '../../../logger/index.ts';\nimport { readLocalFile } from '../../../util/fs/index.ts';\nimport { newlineRegex, regEx } from '../../../util/regex.ts';\nimport { isHttpUrl } from '../../../util/url.ts';\nimport { GitRefsDatasource } from '../../datasource/git-refs/index.ts';\nimport { RubyVersionDatasource } from '../../datasource/ruby-version/index.ts';\nimport { RubygemsDatasource } from '../../datasource/rubygems/index.ts';\nimport type { PackageDependency, PackageFileContent } from '../types.ts';\nimport { delimiters, extractRubyVersion, getLockFilePath } from './common.ts';\nimport { extractLockFileEntries } from './locked-version.ts';\n\nfunction formatContent(input: string): string {\n return `${input.replace(regEx(/^ {2}/), '')}\\n`; //remove leading whitespace and add a new line at the end\n}\n\nconst variableMatchRegex = regEx(\n `^(?<key>\\\\w+)\\\\s*=\\\\s*['\"](?<value>[^'\"]+)['\"]`,\n);\nconst gemMatchRegex = regEx(\n `^\\\\s*gem\\\\s+(['\"])(?<depName>[^'\"]+)(['\"])(\\\\s*,\\\\s*(?<currentValue>(['\"])[^'\"]+['\"](\\\\s*,\\\\s*['\"][^'\"]+['\"])?))?`,\n);\nconst sourceMatchRegex = regEx(\n `source:\\\\s*((?:['\"](?<registryUrl>[^'\"]+)['\"])|(?<sourceName>\\\\w+))?`,\n);\nconst gitRefsMatchRegex = regEx(\n `((git:\\\\s*['\"](?<gitUrl>[^'\"]+)['\"])|(\\\\s*,\\\\s*github:\\\\s*['\"](?<repoName>[^'\"]+)['\"]))(\\\\s*,\\\\s*branch:\\\\s*['\"](?<branchName>[^'\"]+)['\"])?(\\\\s*,\\\\s*ref:\\\\s*['\"](?<refName>[^'\"]+)['\"])?(\\\\s*,\\\\s*tag:\\\\s*['\"](?<tagName>[^'\"]+)['\"])?`,\n);\nconst pathMatchRegex = regEx(`path:\\\\s*['\"](?<path>[^'\"]+)['\"]`);\n\nexport async function extractPackageFile(\n content: string,\n packageFile?: string,\n): Promise<PackageFileContent | null> {\n let lineNumber: number;\n async function processGroupBlock(\n line: string,\n repositoryUrl?: string,\n trimGroupLine = false,\n ): Promise<void> {\n const groupMatch = regEx(/^group\\s+(.*?)\\s+do/).exec(line);\n if (groupMatch) {\n const depTypes = groupMatch[1]\n .split(',')\n .map((group) => group.trim())\n .map((group) => group.replace(regEx(/^:/), ''));\n\n const groupLineNumber = lineNumber;\n let groupContent = '';\n let groupLine = '';\n\n while (\n lineNumber < lines.length &&\n (trimGroupLine ? groupLine.trim() !== 'end' : groupLine !== 'end')\n ) {\n lineNumber += 1;\n groupLine = lines[lineNumber];\n\n // istanbul ignore if\n if (!isString(groupLine)) {\n logger.debug(\n { content, packageFile, type: 'groupLine' },\n 'Bundler parsing error',\n );\n groupLine = 'end';\n }\n if (trimGroupLine ? groupLine.trim() !== 'end' : groupLine !== 'end') {\n groupContent += formatContent(groupLine);\n }\n }\n\n const groupRes = await extractPackageFile(groupContent);\n if (groupRes) {\n res.deps = res.deps.concat(\n groupRes.deps.map((dep) => {\n const depObject = {\n ...dep,\n depTypes,\n managerData: {\n lineNumber:\n Number(dep.managerData?.lineNumber) + groupLineNumber + 1,\n },\n };\n if (repositoryUrl) {\n depObject.registryUrls = [repositoryUrl];\n }\n return depObject;\n }),\n );\n }\n }\n }\n const res: PackageFileContent = {\n registryUrls: [],\n deps: [],\n };\n\n const variables: Record<string, string> = {};\n\n const lines = content.split(newlineRegex);\n for (lineNumber = 0; lineNumber < lines.length; lineNumber += 1) {\n const line = lines[lineNumber];\n let sourceMatch: RegExpMatchArray | null = null;\n for (const delimiter of delimiters) {\n sourceMatch =\n sourceMatch ??\n regEx(\n `^source ((${delimiter}(?<registryUrl>[^${delimiter}]+)${delimiter})|(?<sourceName>\\\\w+))\\\\s*$`,\n ).exec(line);\n }\n if (sourceMatch) {\n if (sourceMatch.groups?.registryUrl) {\n res.registryUrls?.push(sourceMatch.groups.registryUrl);\n }\n if (sourceMatch.groups?.sourceName) {\n const registryUrl = variables[sourceMatch.groups.sourceName];\n if (registryUrl) {\n res.registryUrls?.push(registryUrl);\n }\n }\n }\n\n const rubyMatch = extractRubyVersion(line);\n if (rubyMatch) {\n res.deps.push({\n depName: 'ruby',\n currentValue: rubyMatch,\n datasource: RubyVersionDatasource.id,\n registryUrls: null,\n });\n }\n\n const variableMatch = variableMatchRegex.exec(line);\n if (variableMatch?.groups?.key) {\n variables[variableMatch.groups?.key] = variableMatch.groups?.value;\n }\n\n const gemMatch = gemMatchRegex.exec(line)?.groups;\n\n if (gemMatch) {\n const dep: PackageDependency = {\n depName: gemMatch.depName,\n managerData: { lineNumber },\n datasource: RubygemsDatasource.id,\n };\n\n if (gemMatch.currentValue) {\n const currentValue = gemMatch.currentValue;\n dep.currentValue = currentValue;\n }\n\n const pathMatch = pathMatchRegex.exec(line)?.groups;\n if (pathMatch) {\n dep.skipReason = 'internal-package';\n }\n\n const sourceMatch = sourceMatchRegex.exec(line)?.groups;\n if (sourceMatch) {\n if (sourceMatch.registryUrl) {\n dep.registryUrls = [sourceMatch.registryUrl];\n } else if (sourceMatch.sourceName) {\n dep.registryUrls = [variables[sourceMatch.sourceName]];\n }\n }\n\n const gitRefsMatch = gitRefsMatchRegex.exec(line)?.groups;\n if (gitRefsMatch) {\n if (gitRefsMatch.gitUrl) {\n const gitUrl = gitRefsMatch.gitUrl;\n dep.packageName = gitUrl;\n\n if (isHttpUrl(gitUrl)) {\n dep.sourceUrl = gitUrl.replace(regEx(/\\.git$/), '');\n }\n } else if (gitRefsMatch.repoName) {\n dep.packageName = `https://github.com/${gitRefsMatch.repoName}`;\n dep.sourceUrl = dep.packageName;\n }\n if (gitRefsMatch.refName) {\n dep.currentDigest = gitRefsMatch.refName;\n } else if (gitRefsMatch.branchName) {\n dep.currentValue = gitRefsMatch.branchName;\n } else if (gitRefsMatch.tagName) {\n dep.currentValue = gitRefsMatch.tagName;\n }\n dep.datasource = GitRefsDatasource.id;\n }\n res.deps.push(dep);\n }\n\n await processGroupBlock(line);\n\n for (const delimiter of delimiters) {\n const sourceBlockMatch = regEx(\n `^source\\\\s+((${delimiter}(?<registryUrl>[^${delimiter}]+)${delimiter})|(?<sourceName>\\\\w+))\\\\s+do`,\n ).exec(line);\n if (sourceBlockMatch) {\n let repositoryUrl = '';\n if (sourceBlockMatch.groups?.registryUrl) {\n repositoryUrl = sourceBlockMatch.groups.registryUrl;\n }\n if (\n sourceBlockMatch.groups?.sourceName &&\n variables[sourceBlockMatch.groups.sourceName]\n ) {\n repositoryUrl = variables[sourceBlockMatch.groups.sourceName];\n }\n const sourceLineNumber = lineNumber;\n let sourceContent = '';\n let sourceLine = '';\n\n while (lineNumber < lines.length && sourceLine.trim() !== 'end') {\n lineNumber += 1;\n sourceLine = lines[lineNumber];\n // istanbul ignore if\n if (!isString(sourceLine)) {\n logger.debug(\n { content, packageFile, type: 'sourceLine' },\n 'Bundler parsing error',\n );\n sourceLine = 'end';\n }\n\n await processGroupBlock(sourceLine.trim(), repositoryUrl, true);\n\n if (sourceLine.trim() !== 'end') {\n sourceContent += formatContent(sourceLine);\n }\n }\n\n const sourceRes = await extractPackageFile(sourceContent);\n\n if (sourceRes) {\n res.deps = res.deps.concat(\n sourceRes.deps.map((dep) => ({\n ...dep,\n registryUrls: [repositoryUrl],\n managerData: {\n lineNumber:\n Number(dep.managerData?.lineNumber) + sourceLineNumber + 1,\n },\n })),\n );\n }\n }\n }\n const platformsMatch = regEx(/^platforms\\s+(.*?)\\s+do/).test(line);\n if (platformsMatch) {\n const platformsLineNumber = lineNumber;\n let platformsContent = '';\n let platformsLine = '';\n while (lineNumber < lines.length && platformsLine !== 'end') {\n lineNumber += 1;\n platformsLine = lines[lineNumber];\n // istanbul ignore if\n if (!isString(platformsLine)) {\n logger.debug(\n { content, packageFile, type: 'platformsLine' },\n 'Bundler parsing error',\n );\n platformsLine = 'end';\n }\n if (platformsLine !== 'end') {\n platformsContent += formatContent(platformsLine);\n }\n }\n const platformsRes = await extractPackageFile(platformsContent);\n if (platformsRes) {\n res.deps = res.deps.concat(\n platformsRes.deps.map((dep) => ({\n ...dep,\n managerData: {\n lineNumber:\n Number(dep.managerData?.lineNumber) + platformsLineNumber + 1,\n },\n })),\n );\n }\n }\n const ifMatch = regEx(/^if\\s+(.*?)/).test(line);\n if (ifMatch) {\n const ifLineNumber = lineNumber;\n let ifContent = '';\n let ifLine = '';\n while (lineNumber < lines.length && ifLine !== 'end') {\n lineNumber += 1;\n ifLine = lines[lineNumber];\n // istanbul ignore if\n if (!isString(ifLine)) {\n logger.debug(\n { content, packageFile, type: 'ifLine' },\n 'Bundler parsing error',\n );\n ifLine = 'end';\n }\n if (ifLine !== 'end') {\n ifContent += formatContent(ifLine);\n }\n }\n const ifRes = await extractPackageFile(ifContent);\n if (ifRes) {\n res.deps = res.deps.concat(\n ifRes.deps.map((dep) => ({\n ...dep,\n managerData: {\n lineNumber:\n Number(dep.managerData?.lineNumber) + ifLineNumber + 1,\n },\n })),\n );\n }\n }\n }\n if (!res.deps.length && !res.registryUrls?.length) {\n return null;\n }\n\n if (packageFile) {\n const gemfileLockPath = await getLockFilePath(packageFile);\n const lockContent = await readLocalFile(gemfileLockPath, 'utf8');\n if (lockContent) {\n logger.debug(\n `Found lock file ${gemfileLockPath} for packageFile: ${packageFile}`,\n );\n res.lockFiles = [gemfileLockPath];\n const lockedEntries = extractLockFileEntries(lockContent);\n for (const dep of res.deps) {\n // TODO: types (#22198)\n const lockedDepValue = lockedEntries.get(`${dep.depName!}`);\n if (lockedDepValue) {\n dep.lockedVersion = lockedDepValue;\n }\n }\n }\n }\n return res;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"extract.js","names":[],"sources":["../../../../lib/modules/manager/bundler/extract.ts"],"sourcesContent":["import { isString } from '@sindresorhus/is';\nimport { logger } from '../../../logger/index.ts';\nimport { readLocalFile } from '../../../util/fs/index.ts';\nimport { newlineRegex, regEx } from '../../../util/regex.ts';\nimport { isHttpUrl } from '../../../util/url.ts';\nimport { GitRefsDatasource } from '../../datasource/git-refs/index.ts';\nimport { RubyVersionDatasource } from '../../datasource/ruby-version/index.ts';\nimport { RubygemsDatasource } from '../../datasource/rubygems/index.ts';\nimport type { PackageDependency, PackageFileContent } from '../types.ts';\nimport { delimiters, extractRubyVersion, getLockFilePath } from './common.ts';\nimport { extractLockFileEntries } from './locked-version.ts';\n\nfunction formatContent(input: string): string {\n return `${input.replace(regEx(/^ {2}/), '')}\\n`; //remove leading whitespace and add a new line at the end\n}\n\nconst variableMatchRegex = regEx(\n `^(?<key>\\\\w+)\\\\s*=\\\\s*['\"](?<value>[^'\"]+)['\"]`,\n);\nconst gemMatchRegex = regEx(\n `^\\\\s*gem\\\\s+(['\"])(?<depName>[^'\"]+)(['\"])(\\\\s*,\\\\s*(?<currentValue>(['\"])[^'\"]+['\"](\\\\s*,\\\\s*['\"][^'\"]+['\"])?))?`,\n);\nconst sourceMatchRegex = regEx(\n `source:\\\\s*((?:['\"](?<registryUrl>[^'\"]+)['\"])|(?<sourceName>\\\\w+))?`,\n);\nconst gitRefsMatchRegex = regEx(\n `((git:\\\\s*['\"](?<gitUrl>[^'\"]+)['\"])|(\\\\s*,\\\\s*github:\\\\s*['\"](?<repoName>[^'\"]+)['\"]))(\\\\s*,\\\\s*branch:\\\\s*['\"](?<branchName>[^'\"]+)['\"])?(\\\\s*,\\\\s*ref:\\\\s*['\"](?<refName>[^'\"]+)['\"])?(\\\\s*,\\\\s*tag:\\\\s*['\"](?<tagName>[^'\"]+)['\"])?`,\n);\nconst pathMatchRegex = regEx(`path:\\\\s*['\"](?<path>[^'\"]+)['\"]`);\n\nexport async function extractPackageFile(\n content: string,\n packageFile?: string,\n): Promise<PackageFileContent | null> {\n let lineNumber: number;\n async function processGroupBlock(\n line: string,\n repositoryUrl?: string,\n trimGroupLine = false,\n ): Promise<void> {\n const groupMatch = regEx(/^group\\s+(.*?)\\s+do/).exec(line);\n if (groupMatch) {\n const depTypes = groupMatch[1]\n .split(',')\n .map((group) => group.trim())\n .map((group) => group.replace(regEx(/^:/), ''));\n\n const groupLineNumber = lineNumber;\n let groupContent = '';\n let groupLine = '';\n\n while (\n lineNumber < lines.length &&\n (trimGroupLine ? groupLine.trim() !== 'end' : groupLine !== 'end')\n ) {\n lineNumber += 1;\n groupLine = lines[lineNumber];\n\n // istanbul ignore if\n if (!isString(groupLine)) {\n logger.debug(\n { content, packageFile, type: 'groupLine' },\n 'Bundler parsing error',\n );\n groupLine = 'end';\n }\n if (trimGroupLine ? groupLine.trim() !== 'end' : groupLine !== 'end') {\n groupContent += formatContent(groupLine);\n }\n }\n\n const groupRes = await extractPackageFile(groupContent);\n if (groupRes) {\n res.deps = res.deps.concat(\n groupRes.deps.map((dep) => {\n const depObject = {\n ...dep,\n depTypes,\n managerData: {\n lineNumber:\n Number(dep.managerData?.lineNumber) + groupLineNumber + 1,\n },\n };\n if (repositoryUrl) {\n depObject.registryUrls = [repositoryUrl];\n }\n return depObject;\n }),\n );\n }\n }\n }\n const res: PackageFileContent = {\n registryUrls: [],\n deps: [],\n };\n\n const variables: Record<string, string> = {};\n\n const lines = content.split(newlineRegex);\n for (lineNumber = 0; lineNumber < lines.length; lineNumber += 1) {\n const line = lines[lineNumber];\n let sourceMatch: RegExpMatchArray | null = null;\n for (const delimiter of delimiters) {\n sourceMatch =\n sourceMatch ??\n regEx(\n `^source ((${delimiter}(?<registryUrl>[^${delimiter}]+)${delimiter})|(?<sourceName>\\\\w+))\\\\s*$`,\n ).exec(line);\n }\n if (sourceMatch) {\n if (sourceMatch.groups?.registryUrl) {\n res.registryUrls?.push(sourceMatch.groups.registryUrl);\n }\n if (sourceMatch.groups?.sourceName) {\n const registryUrl = variables[sourceMatch.groups.sourceName];\n if (registryUrl) {\n res.registryUrls?.push(registryUrl);\n }\n }\n }\n\n const rubyMatch = extractRubyVersion(line);\n if (rubyMatch) {\n res.deps.push({\n depName: 'ruby',\n currentValue: rubyMatch,\n datasource: RubyVersionDatasource.id,\n registryUrls: null,\n });\n }\n\n const variableMatch = variableMatchRegex.exec(line);\n if (variableMatch?.groups?.key) {\n variables[variableMatch.groups?.key] = variableMatch.groups?.value;\n }\n\n const gemMatch = gemMatchRegex.exec(line)?.groups;\n\n if (gemMatch) {\n const dep: PackageDependency = {\n depName: gemMatch.depName,\n managerData: { lineNumber },\n datasource: RubygemsDatasource.id,\n };\n\n if (gemMatch.currentValue) {\n const currentValue = gemMatch.currentValue;\n dep.currentValue = currentValue;\n }\n\n const pathMatch = pathMatchRegex.exec(line)?.groups;\n if (pathMatch) {\n dep.skipReason = 'internal-package';\n }\n\n const sourceMatch = sourceMatchRegex.exec(line)?.groups;\n if (sourceMatch) {\n if (sourceMatch.registryUrl) {\n dep.registryUrls = [sourceMatch.registryUrl];\n } else if (sourceMatch.sourceName) {\n dep.registryUrls = [variables[sourceMatch.sourceName]];\n }\n }\n\n const gitRefsMatch = gitRefsMatchRegex.exec(line)?.groups;\n if (gitRefsMatch) {\n if (gitRefsMatch.gitUrl) {\n const gitUrl = gitRefsMatch.gitUrl;\n dep.packageName = gitUrl;\n\n if (isHttpUrl(gitUrl)) {\n dep.sourceUrl = gitUrl.replace(regEx(/\\.git$/), '');\n }\n } else {\n // we always have repoName, as `gitRefsMatchRegex`'s first group requires either `gitUrl` or `repoName`\n dep.packageName = `https://github.com/${gitRefsMatch.repoName}`;\n dep.sourceUrl = dep.packageName;\n }\n if (gitRefsMatch.refName) {\n dep.currentDigest = gitRefsMatch.refName;\n } else if (gitRefsMatch.branchName) {\n dep.currentValue = gitRefsMatch.branchName;\n } else if (gitRefsMatch.tagName) {\n dep.currentValue = gitRefsMatch.tagName;\n }\n dep.datasource = GitRefsDatasource.id;\n }\n res.deps.push(dep);\n }\n\n await processGroupBlock(line);\n\n for (const delimiter of delimiters) {\n const sourceBlockMatch = regEx(\n `^source\\\\s+((${delimiter}(?<registryUrl>[^${delimiter}]+)${delimiter})|(?<sourceName>\\\\w+))\\\\s+do`,\n ).exec(line);\n if (sourceBlockMatch) {\n let repositoryUrl = '';\n if (sourceBlockMatch.groups?.registryUrl) {\n repositoryUrl = sourceBlockMatch.groups.registryUrl;\n }\n if (\n sourceBlockMatch.groups?.sourceName &&\n variables[sourceBlockMatch.groups.sourceName]\n ) {\n repositoryUrl = variables[sourceBlockMatch.groups.sourceName];\n }\n const sourceLineNumber = lineNumber;\n let sourceContent = '';\n let sourceLine = '';\n\n while (lineNumber < lines.length && sourceLine.trim() !== 'end') {\n lineNumber += 1;\n sourceLine = lines[lineNumber];\n // istanbul ignore if\n if (!isString(sourceLine)) {\n logger.debug(\n { content, packageFile, type: 'sourceLine' },\n 'Bundler parsing error',\n );\n sourceLine = 'end';\n }\n\n await processGroupBlock(sourceLine.trim(), repositoryUrl, true);\n\n if (sourceLine.trim() !== 'end') {\n sourceContent += formatContent(sourceLine);\n }\n }\n\n const sourceRes = await extractPackageFile(sourceContent);\n\n if (sourceRes) {\n res.deps = res.deps.concat(\n sourceRes.deps.map((dep) => ({\n ...dep,\n registryUrls: [repositoryUrl],\n managerData: {\n lineNumber:\n Number(dep.managerData?.lineNumber) + sourceLineNumber + 1,\n },\n })),\n );\n }\n }\n }\n const platformsMatch = regEx(/^platforms\\s+(.*?)\\s+do/).test(line);\n if (platformsMatch) {\n const platformsLineNumber = lineNumber;\n let platformsContent = '';\n let platformsLine = '';\n while (lineNumber < lines.length && platformsLine !== 'end') {\n lineNumber += 1;\n platformsLine = lines[lineNumber];\n // istanbul ignore if\n if (!isString(platformsLine)) {\n logger.debug(\n { content, packageFile, type: 'platformsLine' },\n 'Bundler parsing error',\n );\n platformsLine = 'end';\n }\n if (platformsLine !== 'end') {\n platformsContent += formatContent(platformsLine);\n }\n }\n const platformsRes = await extractPackageFile(platformsContent);\n if (platformsRes) {\n res.deps = res.deps.concat(\n platformsRes.deps.map((dep) => ({\n ...dep,\n managerData: {\n lineNumber:\n Number(dep.managerData?.lineNumber) + platformsLineNumber + 1,\n },\n })),\n );\n }\n }\n const ifMatch = regEx(/^if\\s+(.*?)/).test(line);\n if (ifMatch) {\n const ifLineNumber = lineNumber;\n let ifContent = '';\n let ifLine = '';\n while (lineNumber < lines.length && ifLine !== 'end') {\n lineNumber += 1;\n ifLine = lines[lineNumber];\n // istanbul ignore if\n if (!isString(ifLine)) {\n logger.debug(\n { content, packageFile, type: 'ifLine' },\n 'Bundler parsing error',\n );\n ifLine = 'end';\n }\n if (ifLine !== 'end') {\n ifContent += formatContent(ifLine);\n }\n }\n const ifRes = await extractPackageFile(ifContent);\n if (ifRes) {\n res.deps = res.deps.concat(\n ifRes.deps.map((dep) => ({\n ...dep,\n managerData: {\n lineNumber:\n Number(dep.managerData?.lineNumber) + ifLineNumber + 1,\n },\n })),\n );\n }\n }\n }\n if (!res.deps.length && !res.registryUrls?.length) {\n return null;\n }\n\n if (packageFile) {\n const gemfileLockPath = await getLockFilePath(packageFile);\n const lockContent = await readLocalFile(gemfileLockPath, 'utf8');\n if (lockContent) {\n logger.debug(\n `Found lock file ${gemfileLockPath} for packageFile: ${packageFile}`,\n );\n res.lockFiles = [gemfileLockPath];\n const lockedEntries = extractLockFileEntries(lockContent);\n for (const dep of res.deps) {\n // TODO: types (#22198)\n const lockedDepValue = lockedEntries.get(`${dep.depName!}`);\n if (lockedDepValue) {\n dep.lockedVersion = lockedDepValue;\n }\n }\n }\n }\n return res;\n}\n"],"mappings":"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"}
@@ -18,7 +18,7 @@ hashMap.set("buildkite", "a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1
18
18
  hashMap.set("buildpacks", "6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f");
19
19
  hashMap.set("bun", "691aa0bd20c20f7e05be5d231ed14dccdf81b9399d062448794176403aa53d94");
20
20
  hashMap.set("bun-version", "df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4");
21
- hashMap.set("bundler", "246899c76663fa66024e19aa18287d364dd0de46febe998cb9c1b1e2b09fe53c");
21
+ hashMap.set("bundler", "e4e3e67e49e73aae6b3bfaa47950aefa3fdd4edb05e885adce645bd63685195c");
22
22
  hashMap.set("cake", "ed6d14c96161f1d3d927adc7e333b96585164e1f25151a87990914d57ae17fe1");
23
23
  hashMap.set("cargo", "beae41d92d6d321459b1ca6eb80e7ee6906c694fd3c01ffeec32d8053db96e44");
24
24
  hashMap.set("cdnurl", "d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177");
@@ -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','1d3568f42393d697f8f96d461b72077ee7a1044b654e87667a12f861b3083111');\nhashMap.set('ansible-galaxy','8226d47128f2018825d4d6f84794e3183eb79c706045fa7e88491edd5e64106f');\nhashMap.set('ant','2df5943cf0ed19a21b94df13729dbb925655548130caf37e3e22bebaed518e17');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','b2acfc0a6164e9a279daa724777c423f84572dafb0df09b1b0cf6f205f9eb6d0');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','bd9208444eff1a4958061484db66a47b616c31f15a8d49d23b75c4560fcee83e');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','4994a8bd86d5bfb169d67c08efd8509b58c368c2bf3dd9bbe42553c0fabc3f1a');\nhashMap.set('bazel-module','40f6a862b4e72fcc7262ee41f8b570ea3fd5600d6d552b94ed3301bb201f5db5');\nhashMap.set('bazelisk','d71489650feefb0dbbe7461f924cb50e41c8eef8fe2e11acdec2d42d0212c8ef');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','691aa0bd20c20f7e05be5d231ed14dccdf81b9399d062448794176403aa53d94');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','246899c76663fa66024e19aa18287d364dd0de46febe998cb9c1b1e2b09fe53c');\nhashMap.set('cake','ed6d14c96161f1d3d927adc7e333b96585164e1f25151a87990914d57ae17fe1');\nhashMap.set('cargo','beae41d92d6d321459b1ca6eb80e7ee6906c694fd3c01ffeec32d8053db96e44');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','91cbeb33ea20f9838e2c81a1195eb806f0b38fa282bc3679f62552f20575ca85');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','3d3affcaab991e9a27916dfbc8bdddb1066be28303c37be781695bfc0645aa81');\nhashMap.set('composer','d84def5d2f07adb0b5c37195fa115a3a9d86194b57eae014d7b43d2d59fe7d1c');\nhashMap.set('conan','74ca922a0ffdf1a9dd44b83eb2b3a36c56c7d792031e3a4a484f293046be3ecd');\nhashMap.set('copier','3010e0a1f77203b001e4d851dd899d3e23a96f0c25cff8a9c1819837c9972d6a');\nhashMap.set('cpanfile','07813fec3f3c2197056500e9266a0553b9774c02f2c74d5ca2e213188c7c12d3');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deno','a43016a9a469e0472f00855c8db64bb65ef5ffa773e7bbfade02a21400f67690');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','a608d1e6db93a8f997d41f8dee7b67533452a956057865978342e2819272e0a9');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','54122792bf8ea0be98e0a0716e627e3115b40a5f0155ccd7ae0cfc52424a3478');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','d73d5d35f10df0599a561d9c8d25f3935350407d0e3bd3a1d1545295f278912e');\nhashMap.set('flux','70833dd068ea0a746a9392469e7904021562c7629428d0cd554603bad4eb6ce5');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','e95bbc9b69a36dee82e255e8983640b7179cb5f17d24b035c6cf01d9635b35bd');\nhashMap.set('github-actions','3dea0c91977c92d9c225c16cf27ce04a2dd7a1b652f0382c59d19b4685312cb3');\nhashMap.set('gitlabci','33c264edf7837fb8fbc4cf0078c8bd2d5a75431039b1db65bf47356df7753125');\nhashMap.set('gitlabci-include','ef696c478c2ac1723b3aca070ba9779be0e702fff0844054251ba0029523d0eb');\nhashMap.set('glasskube','93e7b9000a17efa15a1abaaf320b5af9169b1ecd828fc0c881d98570ef9d9e30');\nhashMap.set('gleam','02389785183c39d2896d7893414c5e1060023f95c1fe7b595bd06cc5c1186d39');\nhashMap.set('gomod','b21d52f02d181eb1dcd252a9fd545e7ac04d76679790b254377a9e077f2d3a8a');\nhashMap.set('gradle','1780fe7560babe735da868a0dd1a013fea76d82abfde62028cd48f9de42fb52c');\nhashMap.set('gradle-wrapper','e16500ce08dd35ecb3ddcc3c79989648087b8249c3a95413a991627d064657ca');\nhashMap.set('haskell-cabal','f232d0e883235f74ed71fd9de4a7468e5fcbda9a1af5beb56c24657f7bf2e891');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','0adc0092400df2075e1c4580ebe35bbc3b638ebee67cc948a4338094cb16a8ae');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','572f7b0b746377e0c5d6f5ad5c0b78cbed6782a561be77263cf45620b6fdad0c');\nhashMap.set('hermit','61e132cfccbe4e3884801a3728f3391455c214811a33c1f733b0dea7122bbbb6');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','9c64a4f1475b1c2052372e566c9190f32ae8acd1c54313031d55ae8772388367');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','e26b390528f2de43dc572bcee7cb15bb4671d2df75413a56caf1ddcee683a0ee');\nhashMap.set('kotlin-script','8a327ba00370d0df5ee656033f0526b898204ef6805cc5692221a71ca2ad654d');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','14bc841079d278b8e03b1eb184d94fef3df8811fa25beddc7ac9e6e2697b43b5');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','f084cdc88320ca1e82af957d0008e7c9ce991d3282cb428f3108a5722239cead');\nhashMap.set('maven-wrapper','db967206d960b12d7c58d78132808d3c412087ababf5c59444262782e4434c6a');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','248fe4f1ea5c985921c286785792c97e06fc41f402b2d45df82f6aecd17f710e');\nhashMap.set('mise','8509ff587ee410eeb94cbf1d4616c6a174b5f4110d0e748496edd8ed150d8b9b');\nhashMap.set('mix','ca855b0353a8087d91a63fba5cc097d11e0396a963f214a508279aef065707f0');\nhashMap.set('nix','f90bb8943129de40b50564b203df71bb86079dd134e204390a103535de1c5af7');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','788c412f962a5fcace60bc99f9f31438d001b2d70e1a6c04a26900dd5d521992');\nhashMap.set('nuget','4818fdcf3258a19228004c62a605c3fb4b6665ca09df524ab37f712ea201db89');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','db4dc12af1643b6883819bc8d0b4a7fc4533384e5678a61745710f0087f97ab9');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','04747259c660d6ec4f9a36d7efd1c823c78767292faf4b358c11f5507214d6f8');\nhashMap.set('pip_requirements','f92868732a7a9bb2b6d7525bd5b4515108376434fe6a2a12d802f7075c12a56c');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','f4c5d17bfcb6f5cb8b85584d4b782379daa69ee85936ca79ef01172e5d6652a2');\nhashMap.set('pixi','3732f052617efd5007ddbe31091a2ba026909288bac4cbbe6d2bd6ac64d85393');\nhashMap.set('poetry','17e7a8e6a233ef311acfed2663b231dbf681a6d25edc9b92ae7c063205d042fc');\nhashMap.set('pre-commit','17a5f183985ebffe98785a541d3609bf25efedc387deb3d50e9f00f02b25f615');\nhashMap.set('proto','412053d4550026b4ace490b46e970915b87ec1abf0b0a0c6c8c58ccf1fc16843');\nhashMap.set('pub','3ade8bf8232eda456e24909b4d1abce066e674c9ea9aa250c567cf621a96bf9b');\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','e508c2e2fb8d44e6cbec20f449c8eed096728566e6058187269c637930d388fb');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('smithy','9641b91d065ffb63be0dd888139a0402dba41e550f8b44c592db9daf52109100');\nhashMap.set('sveltos','8d2558bce5fbcdfa4a96bf11de6f40bf6d93179025bbf6a9eeb0b7e02e8e9c00');\nhashMap.set('swift','eb5f7c3c4dabf28eed36916269ca9be16ab9ddb83993db03ea66b9195ad7bdc6');\nhashMap.set('tekton','fdc5b9b5edec2a90cda2f858f3ebc532aa8efb1187d1e0b7c89b07796e9cb6cd');\nhashMap.set('terraform','73f9d1753d1077585bd264163b7bfacaf6cf20b586b233cbb8cf058a9fce0103');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','ffcbaa67dd65f064d43f8c121c1006115eab1879c4bd38de263b9b90a009c118');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','31247d37bc80aae17039bfa21bd989c5717730c5ef10cf2a6f09841576d012ec');\nhashMap.set('travis','bb482a0195cd009ec3896a6227bb95617f5c84bedb518c7d971e50c62235d9ca');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','8901ee24116f7998bddcfc8d2492bff8138d9c66a23caea75c24d594ef4a504d');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','416bcf61144b276b3112814c6e6d261aa29608f46fbb0516c471d35c16f8f0d7');\nhashMap.set('regex','dbe6889ea021a05127fed06226d73366fdada2ae577147a5c027996fd325416e');"],"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','1d3568f42393d697f8f96d461b72077ee7a1044b654e87667a12f861b3083111');\nhashMap.set('ansible-galaxy','8226d47128f2018825d4d6f84794e3183eb79c706045fa7e88491edd5e64106f');\nhashMap.set('ant','2df5943cf0ed19a21b94df13729dbb925655548130caf37e3e22bebaed518e17');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','b2acfc0a6164e9a279daa724777c423f84572dafb0df09b1b0cf6f205f9eb6d0');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','bd9208444eff1a4958061484db66a47b616c31f15a8d49d23b75c4560fcee83e');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','4994a8bd86d5bfb169d67c08efd8509b58c368c2bf3dd9bbe42553c0fabc3f1a');\nhashMap.set('bazel-module','40f6a862b4e72fcc7262ee41f8b570ea3fd5600d6d552b94ed3301bb201f5db5');\nhashMap.set('bazelisk','d71489650feefb0dbbe7461f924cb50e41c8eef8fe2e11acdec2d42d0212c8ef');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','691aa0bd20c20f7e05be5d231ed14dccdf81b9399d062448794176403aa53d94');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','e4e3e67e49e73aae6b3bfaa47950aefa3fdd4edb05e885adce645bd63685195c');\nhashMap.set('cake','ed6d14c96161f1d3d927adc7e333b96585164e1f25151a87990914d57ae17fe1');\nhashMap.set('cargo','beae41d92d6d321459b1ca6eb80e7ee6906c694fd3c01ffeec32d8053db96e44');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','91cbeb33ea20f9838e2c81a1195eb806f0b38fa282bc3679f62552f20575ca85');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','3d3affcaab991e9a27916dfbc8bdddb1066be28303c37be781695bfc0645aa81');\nhashMap.set('composer','d84def5d2f07adb0b5c37195fa115a3a9d86194b57eae014d7b43d2d59fe7d1c');\nhashMap.set('conan','74ca922a0ffdf1a9dd44b83eb2b3a36c56c7d792031e3a4a484f293046be3ecd');\nhashMap.set('copier','3010e0a1f77203b001e4d851dd899d3e23a96f0c25cff8a9c1819837c9972d6a');\nhashMap.set('cpanfile','07813fec3f3c2197056500e9266a0553b9774c02f2c74d5ca2e213188c7c12d3');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deno','a43016a9a469e0472f00855c8db64bb65ef5ffa773e7bbfade02a21400f67690');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','a608d1e6db93a8f997d41f8dee7b67533452a956057865978342e2819272e0a9');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','54122792bf8ea0be98e0a0716e627e3115b40a5f0155ccd7ae0cfc52424a3478');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','d73d5d35f10df0599a561d9c8d25f3935350407d0e3bd3a1d1545295f278912e');\nhashMap.set('flux','70833dd068ea0a746a9392469e7904021562c7629428d0cd554603bad4eb6ce5');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','e95bbc9b69a36dee82e255e8983640b7179cb5f17d24b035c6cf01d9635b35bd');\nhashMap.set('github-actions','3dea0c91977c92d9c225c16cf27ce04a2dd7a1b652f0382c59d19b4685312cb3');\nhashMap.set('gitlabci','33c264edf7837fb8fbc4cf0078c8bd2d5a75431039b1db65bf47356df7753125');\nhashMap.set('gitlabci-include','ef696c478c2ac1723b3aca070ba9779be0e702fff0844054251ba0029523d0eb');\nhashMap.set('glasskube','93e7b9000a17efa15a1abaaf320b5af9169b1ecd828fc0c881d98570ef9d9e30');\nhashMap.set('gleam','02389785183c39d2896d7893414c5e1060023f95c1fe7b595bd06cc5c1186d39');\nhashMap.set('gomod','b21d52f02d181eb1dcd252a9fd545e7ac04d76679790b254377a9e077f2d3a8a');\nhashMap.set('gradle','1780fe7560babe735da868a0dd1a013fea76d82abfde62028cd48f9de42fb52c');\nhashMap.set('gradle-wrapper','e16500ce08dd35ecb3ddcc3c79989648087b8249c3a95413a991627d064657ca');\nhashMap.set('haskell-cabal','f232d0e883235f74ed71fd9de4a7468e5fcbda9a1af5beb56c24657f7bf2e891');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','0adc0092400df2075e1c4580ebe35bbc3b638ebee67cc948a4338094cb16a8ae');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','572f7b0b746377e0c5d6f5ad5c0b78cbed6782a561be77263cf45620b6fdad0c');\nhashMap.set('hermit','61e132cfccbe4e3884801a3728f3391455c214811a33c1f733b0dea7122bbbb6');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','9c64a4f1475b1c2052372e566c9190f32ae8acd1c54313031d55ae8772388367');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','e26b390528f2de43dc572bcee7cb15bb4671d2df75413a56caf1ddcee683a0ee');\nhashMap.set('kotlin-script','8a327ba00370d0df5ee656033f0526b898204ef6805cc5692221a71ca2ad654d');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','14bc841079d278b8e03b1eb184d94fef3df8811fa25beddc7ac9e6e2697b43b5');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','f084cdc88320ca1e82af957d0008e7c9ce991d3282cb428f3108a5722239cead');\nhashMap.set('maven-wrapper','db967206d960b12d7c58d78132808d3c412087ababf5c59444262782e4434c6a');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','248fe4f1ea5c985921c286785792c97e06fc41f402b2d45df82f6aecd17f710e');\nhashMap.set('mise','8509ff587ee410eeb94cbf1d4616c6a174b5f4110d0e748496edd8ed150d8b9b');\nhashMap.set('mix','ca855b0353a8087d91a63fba5cc097d11e0396a963f214a508279aef065707f0');\nhashMap.set('nix','f90bb8943129de40b50564b203df71bb86079dd134e204390a103535de1c5af7');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','788c412f962a5fcace60bc99f9f31438d001b2d70e1a6c04a26900dd5d521992');\nhashMap.set('nuget','4818fdcf3258a19228004c62a605c3fb4b6665ca09df524ab37f712ea201db89');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','db4dc12af1643b6883819bc8d0b4a7fc4533384e5678a61745710f0087f97ab9');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','04747259c660d6ec4f9a36d7efd1c823c78767292faf4b358c11f5507214d6f8');\nhashMap.set('pip_requirements','f92868732a7a9bb2b6d7525bd5b4515108376434fe6a2a12d802f7075c12a56c');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','f4c5d17bfcb6f5cb8b85584d4b782379daa69ee85936ca79ef01172e5d6652a2');\nhashMap.set('pixi','3732f052617efd5007ddbe31091a2ba026909288bac4cbbe6d2bd6ac64d85393');\nhashMap.set('poetry','17e7a8e6a233ef311acfed2663b231dbf681a6d25edc9b92ae7c063205d042fc');\nhashMap.set('pre-commit','17a5f183985ebffe98785a541d3609bf25efedc387deb3d50e9f00f02b25f615');\nhashMap.set('proto','412053d4550026b4ace490b46e970915b87ec1abf0b0a0c6c8c58ccf1fc16843');\nhashMap.set('pub','3ade8bf8232eda456e24909b4d1abce066e674c9ea9aa250c567cf621a96bf9b');\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','e508c2e2fb8d44e6cbec20f449c8eed096728566e6058187269c637930d388fb');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('smithy','9641b91d065ffb63be0dd888139a0402dba41e550f8b44c592db9daf52109100');\nhashMap.set('sveltos','8d2558bce5fbcdfa4a96bf11de6f40bf6d93179025bbf6a9eeb0b7e02e8e9c00');\nhashMap.set('swift','eb5f7c3c4dabf28eed36916269ca9be16ab9ddb83993db03ea66b9195ad7bdc6');\nhashMap.set('tekton','fdc5b9b5edec2a90cda2f858f3ebc532aa8efb1187d1e0b7c89b07796e9cb6cd');\nhashMap.set('terraform','73f9d1753d1077585bd264163b7bfacaf6cf20b586b233cbb8cf058a9fce0103');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','ffcbaa67dd65f064d43f8c121c1006115eab1879c4bd38de263b9b90a009c118');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','31247d37bc80aae17039bfa21bd989c5717730c5ef10cf2a6f09841576d012ec');\nhashMap.set('travis','bb482a0195cd009ec3896a6227bb95617f5c84bedb518c7d971e50c62235d9ca');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','8901ee24116f7998bddcfc8d2492bff8138d9c66a23caea75c24d594ef4a504d');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','416bcf61144b276b3112814c6e6d261aa29608f46fbb0516c471d35c16f8f0d7');\nhashMap.set('regex','dbe6889ea021a05127fed06226d73366fdada2ae577147a5c027996fd325416e');"],"mappings":"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"}
@@ -59,6 +59,7 @@ function fixParsedRange(range) {
59
59
  full = `${full}.${patch}`;
60
60
  }
61
61
  }
62
+ /* v8 ignore next -- a segment with no operator is only reachable when adjacent to `||`, which always makes `operator` truthy (`'||'`) above; any other bare segment throws earlier at ordValues[i] */
62
63
  if (operator) {
63
64
  NewSemVer.operator = operator;
64
65
  full = range.includes(`${operator} `) ? `${operator} ${full.replace(operator, "")}` : `${operator}${full.replace(operator, "")}`;
@@ -178,6 +179,7 @@ function bumpRange({ currentValue, currentVersion, newVersion }, options) {
178
179
  if (element.operator.startsWith("<")) return currentValue;
179
180
  } else return fixParsedRange(currentValue).map((x) => {
180
181
  if (x.operator === "||") return x.semver;
182
+ /* v8 ignore next -- fixParsedRange only ever produces elements with `operator === '||'` (handled above) or a real comparator operator; a falsy, non-`||` operator would have already thrown inside fixParsedRange */
181
183
  if (x.operator) {
182
184
  const bumpedSubRange = bumpRange({
183
185
  currentValue: x.semver,
@@ -1 +1 @@
1
- {"version":3,"file":"range.js","names":["semver"],"sources":["../../../../lib/modules/versioning/conan/range.ts"],"sourcesContent":["import { isString } from '@sindresorhus/is';\nimport * as semver from 'semver';\nimport type { SemVer } from 'semver-utils';\nimport { parseRange } from 'semver-utils';\nimport { logger } from '../../../logger/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { coerceString } from '../../../util/string.ts';\nimport type { NewValueConfig } from '../types.ts';\nimport {\n cleanVersion,\n containsOperators,\n getOptions,\n makeVersion,\n matchesWithOptions,\n} from './common.ts';\n\n// always include prereleases\nexport function getMajor(version: string): null | number {\n const cleanedVersion = cleanVersion(version);\n const options = getOptions(version);\n options.includePrerelease = true;\n const cleanerVersion = makeVersion(cleanedVersion, options);\n if (isString(cleanerVersion)) {\n return Number(cleanerVersion.split('.')[0]);\n }\n return null;\n}\n\n// always include prereleases\nexport function getMinor(version: string): null | number {\n const cleanedVersion = cleanVersion(version);\n const options = getOptions(version);\n options.includePrerelease = true;\n const cleanerVersion = makeVersion(cleanedVersion, options);\n if (isString(cleanerVersion)) {\n return Number(cleanerVersion.split('.')[1]);\n }\n return null;\n}\n\n// always include prereleases\nexport function getPatch(version: string): null | number {\n const cleanedVersion = cleanVersion(version);\n const options = getOptions(version);\n options.includePrerelease = true;\n const cleanerVersion = makeVersion(cleanedVersion, options);\n\n if (isString(cleanerVersion)) {\n const newVersion = semver.valid(\n semver.coerce(cleanedVersion, {\n loose: false,\n }),\n options,\n );\n return Number(newVersion?.split('.')[2]);\n }\n return null;\n}\n\nexport function fixParsedRange(range: string): any {\n const ordValues = [];\n\n // don't bump or'd single version values\n const originalSplit = range.split(' ');\n for (let i = 0; i < originalSplit.length; i += 1) {\n if (\n !containsOperators(originalSplit[i]) &&\n !originalSplit[i].includes('||')\n ) {\n if (i !== 0 && originalSplit[i - 1].includes('||')) {\n ordValues.push(`|| ${originalSplit[i]}`);\n } else if (i !== originalSplit.length && originalSplit[i + 1] === '||') {\n ordValues.push(`${originalSplit[i]} ||`);\n }\n } else {\n ordValues.push(originalSplit[i]);\n }\n }\n\n const parsedRange = parseRange(range);\n const cleanRange = range.replace(regEx(/([<=>^~])( )?/g), '');\n const splitRange = cleanRange.split(' ');\n const semverRange: SemVer[] = [];\n\n for (let i = 0; i < splitRange.length; i += 1) {\n if (!splitRange[i].includes('||')) {\n const splitVersion = splitRange[i].split('.');\n const major = splitVersion[0];\n const minor = splitVersion[1];\n const patch = splitVersion[2];\n const operator = ordValues[i].includes('||')\n ? '||'\n : parsedRange[i].operator;\n const NewSemVer: SemVer = {\n major,\n };\n\n let full = `${coerceString(operator)}${major}`;\n if (minor) {\n NewSemVer.minor = minor;\n full = `${full}.${minor}`;\n if (patch) {\n NewSemVer.patch = patch;\n full = `${full}.${patch}`;\n }\n }\n if (operator) {\n NewSemVer.operator = operator;\n full = range.includes(`${operator} `)\n ? `${operator} ${full.replace(operator, '')}`\n : `${operator}${full.replace(operator, '')}`;\n }\n\n full = ordValues[i].includes('||') ? ordValues[i] : full;\n\n NewSemVer.semver = full;\n\n semverRange.push(NewSemVer);\n }\n }\n return semverRange;\n}\n\nexport function replaceRange({\n currentValue,\n newVersion,\n}: NewValueConfig): string {\n const parsedRange = parseRange(currentValue);\n const element = parsedRange.at(-1)!;\n const toVersionMajor = getMajor(newVersion);\n const toVersionMinor = getMinor(newVersion);\n const toVersionPatch = getPatch(newVersion);\n const suffix = semver.prerelease(newVersion)\n ? `-${String(semver.prerelease(newVersion)?.[0])}`\n : '';\n\n if (element.operator === '~>') {\n return `~> ${toVersionMajor}.${toVersionMinor}.0`;\n }\n if (element.operator === '=') {\n return `=${newVersion}`;\n }\n if (element.operator === '~') {\n if (suffix.length) {\n return `~${toVersionMajor}.${toVersionMinor}.${toVersionPatch}${suffix}`;\n }\n return `~${toVersionMajor}.${toVersionMinor}.0`;\n }\n if (element.operator === '<=') {\n let res;\n if (!!element.patch || suffix.length) {\n res = `<=${newVersion}`;\n } else if (element.minor) {\n res = `<=${toVersionMajor}.${toVersionMinor}`;\n } else {\n res = `<=${toVersionMajor}`;\n }\n if (currentValue.includes('<= ')) {\n res = res.replace('<=', '<= ');\n }\n return res;\n }\n if (element.operator === '<' && toVersionMajor) {\n let res;\n if (currentValue.endsWith('.0.0')) {\n const newMajor = toVersionMajor + 1;\n res = `<${newMajor}.0.0`;\n } else if (element.patch) {\n res = `<${semver.inc(newVersion, 'patch')}`;\n } else if (element.minor && toVersionMinor) {\n res = `<${toVersionMajor}.${toVersionMinor + 1}`;\n } else {\n res = `<${toVersionMajor + 1}`;\n }\n if (currentValue.includes('< ')) {\n res = res.replace(regEx(/</g), '< ');\n }\n return res;\n }\n if (element.operator === '>') {\n let res;\n if (currentValue.endsWith('.0.0') && toVersionMajor) {\n const newMajor = toVersionMajor + 1;\n res = `>${newMajor}.0.0`;\n } else if (element.patch) {\n res = `>${toVersionMajor}.${toVersionMinor}.${toVersionPatch}`;\n } else if (element.minor) {\n res = `>${toVersionMajor}.${toVersionMinor}`;\n } else {\n res = `>${toVersionMajor}`;\n }\n if (currentValue.includes('> ')) {\n res = res.replace(regEx(/</g), '> ');\n }\n return res;\n }\n if (!element.operator) {\n if (element.minor) {\n if (element.minor === 'x') {\n return `${toVersionMajor}.x`;\n }\n if (element.minor === '*') {\n return `${toVersionMajor}.*`;\n }\n if (element.patch === 'x') {\n return `${toVersionMajor}.${toVersionMinor}.x`;\n }\n if (element.patch === '*') {\n return `${toVersionMajor}.${toVersionMinor}.*`;\n }\n return `${newVersion}`;\n }\n return `${toVersionMajor}`;\n }\n return newVersion;\n}\n\nexport function widenRange(\n { currentValue, currentVersion, newVersion }: NewValueConfig,\n options: semver.Options,\n): string | null {\n const parsedRange = parseRange(currentValue);\n const element = parsedRange.at(-1)!;\n\n if (matchesWithOptions(newVersion, currentValue, options)) {\n return currentValue;\n }\n const newValue = replaceRange({\n currentValue,\n rangeStrategy: 'replace',\n currentVersion,\n newVersion,\n });\n if (element.operator?.startsWith('<')) {\n const splitCurrent = currentValue.split(element.operator);\n splitCurrent.pop();\n return splitCurrent.join(element.operator) + newValue;\n }\n if (parsedRange.length > 1) {\n const previousElement = parsedRange.at(-2)!;\n if (previousElement.operator === '-') {\n const splitCurrent = currentValue.split('-');\n splitCurrent.pop();\n return `${splitCurrent.join('-')}- ${newValue}`;\n }\n if (element.operator?.startsWith('>')) {\n logger.warn(`Complex ranges ending in greater than are not supported`);\n return null;\n }\n }\n return `${currentValue} || ${newValue}`;\n}\n\nexport function bumpRange(\n { currentValue, currentVersion, newVersion }: NewValueConfig,\n options: semver.Options,\n): string | null {\n if (!containsOperators(currentValue) && currentValue.includes('||')) {\n return widenRange(\n {\n currentValue,\n rangeStrategy: 'widen',\n currentVersion,\n newVersion,\n },\n options,\n );\n }\n const parsedRange = parseRange(currentValue);\n const element = parsedRange.at(-1)!;\n\n const toVersionMajor = getMajor(newVersion);\n const toVersionMinor = getMinor(newVersion);\n const suffix = semver.prerelease(newVersion)\n ? `-${String(semver.prerelease(newVersion)?.[0])}`\n : '';\n\n if (parsedRange.length === 1) {\n if (!element.operator) {\n return replaceRange({\n currentValue,\n rangeStrategy: 'replace',\n currentVersion,\n newVersion,\n });\n }\n if (element.operator.startsWith('~')) {\n const split = currentValue.split('.');\n if (suffix.length) {\n return `${element.operator}${newVersion}`;\n }\n if (split.length === 1) {\n // ~4\n return `${element.operator}${toVersionMajor}`;\n }\n if (split.length === 2) {\n // ~4.1\n return `${element.operator}${toVersionMajor}.${toVersionMinor}`;\n }\n return `${element.operator}${newVersion}`;\n }\n if (element.operator === '=') {\n return `=${newVersion}`;\n }\n if (element.operator === '>=') {\n return currentValue.includes('>= ')\n ? `>= ${newVersion}`\n : `>=${newVersion}`;\n }\n if (element.operator.startsWith('<')) {\n return currentValue;\n }\n } else {\n const newRange = fixParsedRange(currentValue);\n const versions = newRange.map((x: any) => {\n // don't bump or'd single version values\n if (x.operator === '||') {\n return x.semver;\n }\n if (x.operator) {\n const bumpedSubRange = bumpRange(\n {\n currentValue: x.semver,\n rangeStrategy: 'bump',\n currentVersion,\n newVersion,\n },\n options,\n );\n if (\n bumpedSubRange &&\n matchesWithOptions(newVersion, bumpedSubRange, options)\n ) {\n return bumpedSubRange;\n }\n }\n\n return replaceRange({\n currentValue: x.semver,\n rangeStrategy: 'replace',\n currentVersion,\n newVersion,\n });\n });\n return versions.filter((x: any) => x !== null && x !== '').join(' ');\n }\n logger.debug(\n `Unsupported range type for rangeStrategy=bump: ${currentValue}`,\n );\n return null;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"range.js","names":["semver"],"sources":["../../../../lib/modules/versioning/conan/range.ts"],"sourcesContent":["import { isString } from '@sindresorhus/is';\nimport * as semver from 'semver';\nimport type { SemVer } from 'semver-utils';\nimport { parseRange } from 'semver-utils';\nimport { logger } from '../../../logger/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { coerceString } from '../../../util/string.ts';\nimport type { NewValueConfig } from '../types.ts';\nimport {\n cleanVersion,\n containsOperators,\n getOptions,\n makeVersion,\n matchesWithOptions,\n} from './common.ts';\n\n// always include prereleases\nexport function getMajor(version: string): null | number {\n const cleanedVersion = cleanVersion(version);\n const options = getOptions(version);\n options.includePrerelease = true;\n const cleanerVersion = makeVersion(cleanedVersion, options);\n if (isString(cleanerVersion)) {\n return Number(cleanerVersion.split('.')[0]);\n }\n return null;\n}\n\n// always include prereleases\nexport function getMinor(version: string): null | number {\n const cleanedVersion = cleanVersion(version);\n const options = getOptions(version);\n options.includePrerelease = true;\n const cleanerVersion = makeVersion(cleanedVersion, options);\n if (isString(cleanerVersion)) {\n return Number(cleanerVersion.split('.')[1]);\n }\n return null;\n}\n\n// always include prereleases\nexport function getPatch(version: string): null | number {\n const cleanedVersion = cleanVersion(version);\n const options = getOptions(version);\n options.includePrerelease = true;\n const cleanerVersion = makeVersion(cleanedVersion, options);\n\n if (isString(cleanerVersion)) {\n const newVersion = semver.valid(\n semver.coerce(cleanedVersion, {\n loose: false,\n }),\n options,\n );\n return Number(newVersion?.split('.')[2]);\n }\n return null;\n}\n\nexport function fixParsedRange(range: string): any {\n const ordValues = [];\n\n // don't bump or'd single version values\n const originalSplit = range.split(' ');\n for (let i = 0; i < originalSplit.length; i += 1) {\n if (\n !containsOperators(originalSplit[i]) &&\n !originalSplit[i].includes('||')\n ) {\n if (i !== 0 && originalSplit[i - 1].includes('||')) {\n ordValues.push(`|| ${originalSplit[i]}`);\n } else if (i !== originalSplit.length && originalSplit[i + 1] === '||') {\n ordValues.push(`${originalSplit[i]} ||`);\n }\n } else {\n ordValues.push(originalSplit[i]);\n }\n }\n\n const parsedRange = parseRange(range);\n const cleanRange = range.replace(regEx(/([<=>^~])( )?/g), '');\n const splitRange = cleanRange.split(' ');\n const semverRange: SemVer[] = [];\n\n for (let i = 0; i < splitRange.length; i += 1) {\n if (!splitRange[i].includes('||')) {\n const splitVersion = splitRange[i].split('.');\n const major = splitVersion[0];\n const minor = splitVersion[1];\n const patch = splitVersion[2];\n const operator = ordValues[i].includes('||')\n ? '||'\n : parsedRange[i].operator;\n const NewSemVer: SemVer = {\n major,\n };\n\n let full = `${coerceString(operator)}${major}`;\n if (minor) {\n NewSemVer.minor = minor;\n full = `${full}.${minor}`;\n if (patch) {\n NewSemVer.patch = patch;\n full = `${full}.${patch}`;\n }\n }\n /* v8 ignore next -- a segment with no operator is only reachable when adjacent to `||`, which always makes `operator` truthy (`'||'`) above; any other bare segment throws earlier at ordValues[i] */\n if (operator) {\n NewSemVer.operator = operator;\n full = range.includes(`${operator} `)\n ? `${operator} ${full.replace(operator, '')}`\n : `${operator}${full.replace(operator, '')}`;\n }\n\n full = ordValues[i].includes('||') ? ordValues[i] : full;\n\n NewSemVer.semver = full;\n\n semverRange.push(NewSemVer);\n }\n }\n return semverRange;\n}\n\nexport function replaceRange({\n currentValue,\n newVersion,\n}: NewValueConfig): string {\n const parsedRange = parseRange(currentValue);\n const element = parsedRange.at(-1)!;\n const toVersionMajor = getMajor(newVersion);\n const toVersionMinor = getMinor(newVersion);\n const toVersionPatch = getPatch(newVersion);\n const suffix = semver.prerelease(newVersion)\n ? `-${String(semver.prerelease(newVersion)?.[0])}`\n : '';\n\n if (element.operator === '~>') {\n return `~> ${toVersionMajor}.${toVersionMinor}.0`;\n }\n if (element.operator === '=') {\n return `=${newVersion}`;\n }\n if (element.operator === '~') {\n if (suffix.length) {\n return `~${toVersionMajor}.${toVersionMinor}.${toVersionPatch}${suffix}`;\n }\n return `~${toVersionMajor}.${toVersionMinor}.0`;\n }\n if (element.operator === '<=') {\n let res;\n if (!!element.patch || suffix.length) {\n res = `<=${newVersion}`;\n } else if (element.minor) {\n res = `<=${toVersionMajor}.${toVersionMinor}`;\n } else {\n res = `<=${toVersionMajor}`;\n }\n if (currentValue.includes('<= ')) {\n res = res.replace('<=', '<= ');\n }\n return res;\n }\n if (element.operator === '<' && toVersionMajor) {\n let res;\n if (currentValue.endsWith('.0.0')) {\n const newMajor = toVersionMajor + 1;\n res = `<${newMajor}.0.0`;\n } else if (element.patch) {\n res = `<${semver.inc(newVersion, 'patch')}`;\n } else if (element.minor && toVersionMinor) {\n res = `<${toVersionMajor}.${toVersionMinor + 1}`;\n } else {\n res = `<${toVersionMajor + 1}`;\n }\n if (currentValue.includes('< ')) {\n res = res.replace(regEx(/</g), '< ');\n }\n return res;\n }\n if (element.operator === '>') {\n let res;\n if (currentValue.endsWith('.0.0') && toVersionMajor) {\n const newMajor = toVersionMajor + 1;\n res = `>${newMajor}.0.0`;\n } else if (element.patch) {\n res = `>${toVersionMajor}.${toVersionMinor}.${toVersionPatch}`;\n } else if (element.minor) {\n res = `>${toVersionMajor}.${toVersionMinor}`;\n } else {\n res = `>${toVersionMajor}`;\n }\n if (currentValue.includes('> ')) {\n res = res.replace(regEx(/</g), '> ');\n }\n return res;\n }\n if (!element.operator) {\n if (element.minor) {\n if (element.minor === 'x') {\n return `${toVersionMajor}.x`;\n }\n if (element.minor === '*') {\n return `${toVersionMajor}.*`;\n }\n if (element.patch === 'x') {\n return `${toVersionMajor}.${toVersionMinor}.x`;\n }\n if (element.patch === '*') {\n return `${toVersionMajor}.${toVersionMinor}.*`;\n }\n return `${newVersion}`;\n }\n return `${toVersionMajor}`;\n }\n return newVersion;\n}\n\nexport function widenRange(\n { currentValue, currentVersion, newVersion }: NewValueConfig,\n options: semver.Options,\n): string | null {\n const parsedRange = parseRange(currentValue);\n const element = parsedRange.at(-1)!;\n\n if (matchesWithOptions(newVersion, currentValue, options)) {\n return currentValue;\n }\n const newValue = replaceRange({\n currentValue,\n rangeStrategy: 'replace',\n currentVersion,\n newVersion,\n });\n if (element.operator?.startsWith('<')) {\n const splitCurrent = currentValue.split(element.operator);\n splitCurrent.pop();\n return splitCurrent.join(element.operator) + newValue;\n }\n if (parsedRange.length > 1) {\n const previousElement = parsedRange.at(-2)!;\n if (previousElement.operator === '-') {\n const splitCurrent = currentValue.split('-');\n splitCurrent.pop();\n return `${splitCurrent.join('-')}- ${newValue}`;\n }\n if (element.operator?.startsWith('>')) {\n logger.warn(`Complex ranges ending in greater than are not supported`);\n return null;\n }\n }\n return `${currentValue} || ${newValue}`;\n}\n\nexport function bumpRange(\n { currentValue, currentVersion, newVersion }: NewValueConfig,\n options: semver.Options,\n): string | null {\n if (!containsOperators(currentValue) && currentValue.includes('||')) {\n return widenRange(\n {\n currentValue,\n rangeStrategy: 'widen',\n currentVersion,\n newVersion,\n },\n options,\n );\n }\n const parsedRange = parseRange(currentValue);\n const element = parsedRange.at(-1)!;\n\n const toVersionMajor = getMajor(newVersion);\n const toVersionMinor = getMinor(newVersion);\n const suffix = semver.prerelease(newVersion)\n ? `-${String(semver.prerelease(newVersion)?.[0])}`\n : '';\n\n if (parsedRange.length === 1) {\n if (!element.operator) {\n return replaceRange({\n currentValue,\n rangeStrategy: 'replace',\n currentVersion,\n newVersion,\n });\n }\n if (element.operator.startsWith('~')) {\n const split = currentValue.split('.');\n if (suffix.length) {\n return `${element.operator}${newVersion}`;\n }\n if (split.length === 1) {\n // ~4\n return `${element.operator}${toVersionMajor}`;\n }\n if (split.length === 2) {\n // ~4.1\n return `${element.operator}${toVersionMajor}.${toVersionMinor}`;\n }\n return `${element.operator}${newVersion}`;\n }\n if (element.operator === '=') {\n return `=${newVersion}`;\n }\n if (element.operator === '>=') {\n return currentValue.includes('>= ')\n ? `>= ${newVersion}`\n : `>=${newVersion}`;\n }\n if (element.operator.startsWith('<')) {\n return currentValue;\n }\n } else {\n const newRange = fixParsedRange(currentValue);\n const versions = newRange.map((x: any) => {\n // don't bump or'd single version values\n if (x.operator === '||') {\n return x.semver;\n }\n /* v8 ignore next -- fixParsedRange only ever produces elements with `operator === '||'` (handled above) or a real comparator operator; a falsy, non-`||` operator would have already thrown inside fixParsedRange */\n if (x.operator) {\n const bumpedSubRange = bumpRange(\n {\n currentValue: x.semver,\n rangeStrategy: 'bump',\n currentVersion,\n newVersion,\n },\n options,\n );\n if (\n bumpedSubRange &&\n matchesWithOptions(newVersion, bumpedSubRange, options)\n ) {\n return bumpedSubRange;\n }\n }\n\n return replaceRange({\n currentValue: x.semver,\n rangeStrategy: 'replace',\n currentVersion,\n newVersion,\n });\n });\n return versions.filter((x: any) => x !== null && x !== '').join(' ');\n }\n logger.debug(\n `Unsupported range type for rangeStrategy=bump: ${currentValue}`,\n );\n return null;\n}\n"],"mappings":"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"}
@@ -1,8 +1,11 @@
1
+ import { regEx } from "../regex.js";
1
2
  import { logger } from "../../logger/index.js";
3
+ import { parseLinkHeader } from "../url.js";
2
4
  import { Json } from "../schema-utils/index.js";
3
5
  import { HttpBase } from "./http.js";
4
- import { isNonEmptyObject, isNullOrUndefined } from "@sindresorhus/is";
6
+ import { isNonEmptyObject, isNullOrUndefined, isString } from "@sindresorhus/is";
5
7
  import { RequestError } from "got";
8
+ import { DateTime } from "luxon";
6
9
  import { z } from "zod/v4";
7
10
  //#region lib/util/http/bitbucket.ts
8
11
  const MAX_PAGES = 100;
@@ -29,13 +32,24 @@ var BitbucketHttp = class extends HttpBase {
29
32
  logger.once.warn({
30
33
  url: err.response.url,
31
34
  message,
32
- detail,
35
+ ...detail && { detail },
33
36
  announcementUrl: data.announcement_url
34
37
  }, "Bitbucket API functionality has been deprecated or removed");
35
38
  }
36
39
  }
37
40
  return super.handleError(url, httpOptions, err);
38
41
  }
42
+ handleResponse(url, res) {
43
+ const { deprecation, sunset, link } = res.headers;
44
+ if (!isString(deprecation) && !isString(sunset)) return;
45
+ const announcementUrl = parseLinkHeader(isString(link) ? link : void 0)?.deprecation?.url;
46
+ logger.once.warn({
47
+ url: url.toString(),
48
+ ...isString(deprecation) && { deprecation: formatDate(deprecation) },
49
+ ...isString(sunset) && { sunset: formatDate(sunset) },
50
+ ...announcementUrl && { announcementUrl }
51
+ }, "Bitbucket API endpoint has been marked as deprecated");
52
+ }
39
53
  async requestJsonUnsafe(method, options) {
40
54
  const resolvedUrl = this.resolveUrl(options.url, options.httpOptions);
41
55
  const opts = {
@@ -81,6 +95,17 @@ const DeprecationAnnouncement = z.object({ error: z.object({
81
95
  }) });
82
96
  /** The body is already parsed for JSON requests, but a raw string otherwise. */
83
97
  const DeprecationAnnouncementBody = z.union([DeprecationAnnouncement, Json.pipe(DeprecationAnnouncement)]);
98
+ /**
99
+ * Format a `Deprecation` or `Sunset` header as ISO 8601, falling back to the raw value when it cannot be parsed.
100
+ *
101
+ * `Sunset` is an HTTP date, and `Deprecation` is either an HTTP date or an `@`-prefixed Unix timestamp.
102
+ */
103
+ function formatDate(value) {
104
+ const seconds = regEx(/^@(?<seconds>\d+)$/).exec(value)?.groups?.seconds;
105
+ if (seconds) return DateTime.fromSeconds(parseInt(seconds, 10), { zone: "utc" }).toISO() ?? value;
106
+ const httpDate = value.replace(regEx(/ UTC$/), " GMT");
107
+ return DateTime.fromHTTP(httpDate, { zone: "utc" }).toISO() ?? value;
108
+ }
84
109
  function hasPagelen(url) {
85
110
  return !isNullOrUndefined(url.searchParams.get("pagelen"));
86
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bitbucket.js","names":[],"sources":["../../../lib/util/http/bitbucket.ts"],"sourcesContent":["import { isNonEmptyObject, isNullOrUndefined } from '@sindresorhus/is';\nimport { RequestError } from 'got';\nimport { z } from 'zod/v4';\nimport { logger } from '../../logger/index.ts';\nimport type { PagedResult } from '../../modules/platform/bitbucket/types.ts';\nimport { Json } from '../schema-utils/index.ts';\nimport { HttpBase, type InternalJsonUnsafeOptions } from './http.ts';\nimport type { HttpMethod, HttpOptions, HttpResponse } from './types.ts';\n\nconst MAX_PAGES = 100;\nconst MAX_PAGELEN = 100;\n\nlet baseUrl = 'https://api.bitbucket.org/';\n\nexport function setBaseUrl(url: string): void {\n baseUrl = url;\n}\n\nexport interface BitbucketHttpOptions extends HttpOptions {\n paginate?: boolean;\n pagelen?: number;\n}\n\nexport class BitbucketHttp extends HttpBase<BitbucketHttpOptions> {\n protected override get baseUrl(): string | undefined {\n return baseUrl;\n }\n\n constructor(type = 'bitbucket', options?: BitbucketHttpOptions) {\n super(type, options);\n }\n\n protected override extraOptions(): readonly string[] {\n return super\n .extraOptions()\n .concat(['paginate', 'pagelen'] as (keyof BitbucketHttpOptions)[]);\n }\n\n protected override handleError(\n url: string | URL,\n httpOptions: HttpOptions,\n err: Error,\n ): never {\n if (err instanceof RequestError && err.response) {\n const announcement = DeprecationAnnouncementBody.safeParse(\n err.response.body,\n );\n if (announcement.success) {\n const { message, detail, data } = announcement.data.error;\n logger.once.warn(\n {\n // `url` is only resolved against the base URL for JSON requests\n url: err.response.url,\n message,\n detail,\n announcementUrl: data.announcement_url,\n },\n 'Bitbucket API functionality has been deprecated or removed',\n );\n }\n }\n return super.handleError(url, httpOptions, err);\n }\n\n protected override async requestJsonUnsafe<T>(\n method: HttpMethod,\n options: InternalJsonUnsafeOptions<BitbucketHttpOptions>,\n ): Promise<HttpResponse<T>> {\n const resolvedUrl = this.resolveUrl(options.url, options.httpOptions);\n const opts: InternalJsonUnsafeOptions<BitbucketHttpOptions> = {\n ...options,\n url: resolvedUrl,\n };\n const paginate = opts.httpOptions?.paginate;\n\n if (paginate && !hasPagelen(resolvedUrl)) {\n const pagelen = opts.httpOptions!.pagelen ?? MAX_PAGELEN;\n resolvedUrl.searchParams.set('pagelen', pagelen.toString());\n }\n\n const result = await super.requestJsonUnsafe<T | PagedResult<T>>(\n method,\n opts,\n );\n\n if (paginate && isPagedResult(result.body)) {\n // v8 ignore else -- TODO: add test #40625\n if (opts.httpOptions) {\n opts.httpOptions.memCache = false;\n }\n const resultBody = result.body;\n let nextURL = result.body.next;\n let page = 1;\n\n for (; nextURL && page <= MAX_PAGES; page++) {\n opts.url = nextURL;\n const nextResult = await super.requestJsonUnsafe<PagedResult<T>>(\n method,\n opts,\n );\n\n resultBody.values.push(...nextResult.body.values);\n nextURL = nextResult.body.next;\n }\n\n // Override other page-related attributes\n resultBody.pagelen = resultBody.values.length;\n /* v8 ignore next -- hard to test all branches */\n resultBody.size =\n page <= MAX_PAGES ? resultBody.values.length : undefined;\n // v8 ignore next -- hard to test all branches\n resultBody.next = page <= MAX_PAGES ? nextURL : undefined;\n }\n\n return result as HttpResponse<T>;\n }\n}\n\n/**\n * Bitbucket Cloud responds with an error body linking to the relevant changelog entry when the endpoint's functionality has been deprecated or removed.\n *\n * See https://developer.atlassian.com/cloud/bitbucket/changelog/\n */\nconst DeprecationAnnouncement = z.object({\n error: z.object({\n message: z.string(),\n detail: z.string().optional(),\n data: z.object({\n announcement_url: z.string(),\n }),\n }),\n});\n\n/** The body is already parsed for JSON requests, but a raw string otherwise. */\nconst DeprecationAnnouncementBody = z.union([\n DeprecationAnnouncement,\n Json.pipe(DeprecationAnnouncement),\n]);\n\nfunction hasPagelen(url: URL): boolean {\n return !isNullOrUndefined(url.searchParams.get('pagelen'));\n}\n\nfunction isPagedResult<T>(obj: any): obj is PagedResult<T> {\n return isNonEmptyObject(obj) && Array.isArray(obj.values);\n}\n"],"mappings":";;;;;;;AASA,MAAM,YAAY;AAClB,MAAM,cAAc;AAEpB,IAAI,UAAU;AAEd,SAAgB,WAAW,KAAmB;CAC5C,UAAU;AACZ;AAOA,IAAa,gBAAb,cAAmC,SAA+B;CAChE,IAAuB,UAA8B;EACnD,OAAO;CACT;CAEA,YAAY,OAAO,aAAa,SAAgC;EAC9D,MAAM,MAAM,OAAO;CACrB;CAEA,eAAqD;EACnD,OAAO,MACJ,aAAa,CAAC,CACd,OAAO,CAAC,YAAY,SAAS,CAAmC;CACrE;CAEA,YACE,KACA,aACA,KACO;EACP,IAAI,eAAe,gBAAgB,IAAI,UAAU;GAC/C,MAAM,eAAe,4BAA4B,UAC/C,IAAI,SAAS,IACf;GACA,IAAI,aAAa,SAAS;IACxB,MAAM,EAAE,SAAS,QAAQ,SAAS,aAAa,KAAK;IACpD,OAAO,KAAK,KACV;KAEE,KAAK,IAAI,SAAS;KAClB;KACA;KACA,iBAAiB,KAAK;IACxB,GACA,4DACF;GACF;EACF;EACA,OAAO,MAAM,YAAY,KAAK,aAAa,GAAG;CAChD;CAEA,MAAyB,kBACvB,QACA,SAC0B;EAC1B,MAAM,cAAc,KAAK,WAAW,QAAQ,KAAK,QAAQ,WAAW;EACpE,MAAM,OAAwD;GAC5D,GAAG;GACH,KAAK;EACP;EACA,MAAM,WAAW,KAAK,aAAa;EAEnC,IAAI,YAAY,CAAC,WAAW,WAAW,GAAG;GACxC,MAAM,UAAU,KAAK,YAAa,WAAW;GAC7C,YAAY,aAAa,IAAI,WAAW,QAAQ,SAAS,CAAC;EAC5D;EAEA,MAAM,SAAS,MAAM,MAAM,kBACzB,QACA,IACF;EAEA,IAAI,YAAY,cAAc,OAAO,IAAI,GAAG;;GAE1C,IAAI,KAAK,aACP,KAAK,YAAY,WAAW;GAE9B,MAAM,aAAa,OAAO;GAC1B,IAAI,UAAU,OAAO,KAAK;GAC1B,IAAI,OAAO;GAEX,OAAO,WAAW,QAAQ,WAAW,QAAQ;IAC3C,KAAK,MAAM;IACX,MAAM,aAAa,MAAM,MAAM,kBAC7B,QACA,IACF;IAEA,WAAW,OAAO,KAAK,GAAG,WAAW,KAAK,MAAM;IAChD,UAAU,WAAW,KAAK;GAC5B;GAGA,WAAW,UAAU,WAAW,OAAO;;GAEvC,WAAW,OACT,QAAQ,YAAY,WAAW,OAAO,SAAS,KAAA;;GAEjD,WAAW,OAAO,QAAQ,YAAY,UAAU,KAAA;EAClD;EAEA,OAAO;CACT;AACF;;;;;;AAOA,MAAM,0BAA0B,EAAE,OAAO,EACvC,OAAO,EAAE,OAAO;CACd,SAAS,EAAE,OAAO;CAClB,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS;CAC5B,MAAM,EAAE,OAAO,EACb,kBAAkB,EAAE,OAAO,EAC7B,CAAC;AACH,CAAC,EACH,CAAC;;AAGD,MAAM,8BAA8B,EAAE,MAAM,CAC1C,yBACA,KAAK,KAAK,uBAAuB,CACnC,CAAC;AAED,SAAS,WAAW,KAAmB;CACrC,OAAO,CAAC,kBAAkB,IAAI,aAAa,IAAI,SAAS,CAAC;AAC3D;AAEA,SAAS,cAAiB,KAAiC;CACzD,OAAO,iBAAiB,GAAG,KAAK,MAAM,QAAQ,IAAI,MAAM;AAC1D"}
1
+ {"version":3,"file":"bitbucket.js","names":[],"sources":["../../../lib/util/http/bitbucket.ts"],"sourcesContent":["import {\n isNonEmptyObject,\n isNullOrUndefined,\n isString,\n} from '@sindresorhus/is';\nimport { RequestError } from 'got';\nimport { DateTime } from 'luxon';\nimport { z } from 'zod/v4';\nimport { logger } from '../../logger/index.ts';\nimport type { PagedResult } from '../../modules/platform/bitbucket/types.ts';\nimport { regEx } from '../regex.ts';\nimport { Json } from '../schema-utils/index.ts';\nimport { parseLinkHeader } from '../url.ts';\nimport { HttpBase, type InternalJsonUnsafeOptions } from './http.ts';\nimport type { HttpMethod, HttpOptions, HttpResponse } from './types.ts';\n\nconst MAX_PAGES = 100;\nconst MAX_PAGELEN = 100;\n\nlet baseUrl = 'https://api.bitbucket.org/';\n\nexport function setBaseUrl(url: string): void {\n baseUrl = url;\n}\n\nexport interface BitbucketHttpOptions extends HttpOptions {\n paginate?: boolean;\n pagelen?: number;\n}\n\nexport class BitbucketHttp extends HttpBase<BitbucketHttpOptions> {\n protected override get baseUrl(): string | undefined {\n return baseUrl;\n }\n\n constructor(type = 'bitbucket', options?: BitbucketHttpOptions) {\n super(type, options);\n }\n\n protected override extraOptions(): readonly string[] {\n return super\n .extraOptions()\n .concat(['paginate', 'pagelen'] as (keyof BitbucketHttpOptions)[]);\n }\n\n protected override handleError(\n url: string | URL,\n httpOptions: HttpOptions,\n err: Error,\n ): never {\n if (err instanceof RequestError && err.response) {\n const announcement = DeprecationAnnouncementBody.safeParse(\n err.response.body,\n );\n if (announcement.success) {\n const { message, detail, data } = announcement.data.error;\n logger.once.warn(\n {\n // `url` is only resolved against the base URL for JSON requests\n url: err.response.url,\n message,\n ...(detail && { detail }),\n announcementUrl: data.announcement_url,\n },\n 'Bitbucket API functionality has been deprecated or removed',\n );\n }\n }\n return super.handleError(url, httpOptions, err);\n }\n\n protected override handleResponse(\n url: URL,\n res: HttpResponse<unknown>,\n ): void {\n const { deprecation, sunset, link } = res.headers;\n if (!isString(deprecation) && !isString(sunset)) {\n return;\n }\n\n const announcementUrl = parseLinkHeader(isString(link) ? link : undefined)\n ?.deprecation?.url;\n\n logger.once.warn(\n {\n url: url.toString(),\n ...(isString(deprecation) && { deprecation: formatDate(deprecation) }),\n ...(isString(sunset) && { sunset: formatDate(sunset) }),\n ...(announcementUrl && { announcementUrl }),\n },\n 'Bitbucket API endpoint has been marked as deprecated',\n );\n }\n\n protected override async requestJsonUnsafe<T>(\n method: HttpMethod,\n options: InternalJsonUnsafeOptions<BitbucketHttpOptions>,\n ): Promise<HttpResponse<T>> {\n const resolvedUrl = this.resolveUrl(options.url, options.httpOptions);\n const opts: InternalJsonUnsafeOptions<BitbucketHttpOptions> = {\n ...options,\n url: resolvedUrl,\n };\n const paginate = opts.httpOptions?.paginate;\n\n if (paginate && !hasPagelen(resolvedUrl)) {\n const pagelen = opts.httpOptions!.pagelen ?? MAX_PAGELEN;\n resolvedUrl.searchParams.set('pagelen', pagelen.toString());\n }\n\n const result = await super.requestJsonUnsafe<T | PagedResult<T>>(\n method,\n opts,\n );\n\n if (paginate && isPagedResult(result.body)) {\n // v8 ignore else -- TODO: add test #40625\n if (opts.httpOptions) {\n opts.httpOptions.memCache = false;\n }\n const resultBody = result.body;\n let nextURL = result.body.next;\n let page = 1;\n\n for (; nextURL && page <= MAX_PAGES; page++) {\n opts.url = nextURL;\n const nextResult = await super.requestJsonUnsafe<PagedResult<T>>(\n method,\n opts,\n );\n\n resultBody.values.push(...nextResult.body.values);\n nextURL = nextResult.body.next;\n }\n\n // Override other page-related attributes\n resultBody.pagelen = resultBody.values.length;\n /* v8 ignore next -- hard to test all branches */\n resultBody.size =\n page <= MAX_PAGES ? resultBody.values.length : undefined;\n // v8 ignore next -- hard to test all branches\n resultBody.next = page <= MAX_PAGES ? nextURL : undefined;\n }\n\n return result as HttpResponse<T>;\n }\n}\n\n/**\n * Bitbucket Cloud responds with an error body linking to the relevant changelog entry when the endpoint's functionality has been deprecated or removed.\n *\n * See https://developer.atlassian.com/cloud/bitbucket/changelog/\n */\nconst DeprecationAnnouncement = z.object({\n error: z.object({\n message: z.string(),\n detail: z.string().optional(),\n data: z.object({\n announcement_url: z.string(),\n }),\n }),\n});\n\n/** The body is already parsed for JSON requests, but a raw string otherwise. */\nconst DeprecationAnnouncementBody = z.union([\n DeprecationAnnouncement,\n Json.pipe(DeprecationAnnouncement),\n]);\n\n/**\n * Format a `Deprecation` or `Sunset` header as ISO 8601, falling back to the raw value when it cannot be parsed.\n *\n * `Sunset` is an HTTP date, and `Deprecation` is either an HTTP date or an `@`-prefixed Unix timestamp.\n */\nfunction formatDate(value: string): string {\n const seconds = regEx(/^@(?<seconds>\\d+)$/).exec(value)?.groups?.seconds;\n if (seconds) {\n return (\n DateTime.fromSeconds(parseInt(seconds, 10), { zone: 'utc' }).toISO() ??\n value\n );\n }\n\n // Bitbucket Cloud sends `UTC` timezone, whereas RFC8594 requires `GMT`, so we can manually work around this to parse correctly\n const httpDate = value.replace(regEx(/ UTC$/), ' GMT');\n return DateTime.fromHTTP(httpDate, { zone: 'utc' }).toISO() ?? value;\n}\n\nfunction hasPagelen(url: URL): boolean {\n return !isNullOrUndefined(url.searchParams.get('pagelen'));\n}\n\nfunction isPagedResult<T>(obj: any): obj is PagedResult<T> {\n return isNonEmptyObject(obj) && Array.isArray(obj.values);\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "renovate",
3
3
  "description": "Automated dependency updates. Flexible so you don't need to be.",
4
- "version": "44.44.0",
4
+ "version": "44.45.0",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$id": "https://docs.renovatebot.com/renovate-schema.json",
3
- "title": "JSON schema for Renovate 44.44.0 config files (https://renovatebot.com/)",
3
+ "title": "JSON schema for Renovate 44.45.0 config files (https://renovatebot.com/)",
4
4
  "$schema": "http://json-schema.org/draft-07/schema#",
5
- "x-renovate-version": "44.44.0",
5
+ "x-renovate-version": "44.45.0",
6
6
  "allowComments": true,
7
7
  "type": "object",
8
8
  "definitions": {