renovate 44.238.0 → 44.238.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rolldown/runtime.js +4 -4
- package/dist/config/defaults.d.ts +1 -2
- package/dist/config/global.d.ts +1 -2
- package/dist/config/migrations/custom/dependency-dashboard-migration.js +38 -11
- package/dist/config/migrations/custom/dependency-dashboard-migration.js.map +1 -1
- package/dist/config/options/env-options.d.ts +1 -2
- package/dist/config/options/index.d.ts +1 -2
- package/dist/config/presets/internal/abandonments.preset.js +1 -1
- package/dist/config/presets/internal/auto-generate-replacements.js +4 -4
- package/dist/config/presets/internal/auto-generate-replacements.js.map +1 -1
- package/dist/config/presets/internal/monorepos.preset.js +1 -1
- package/dist/config/presets/internal/replacements.preset.js +1 -1
- package/dist/config/types.d.ts +1 -2
- package/dist/config/utils.d.ts +1 -2
- package/dist/config/validation-helpers/types.d.ts +1 -2
- package/dist/config-validator.d.ts +1 -3
- package/dist/constants/category.d.ts +1 -2
- package/dist/constants/error-messages.d.ts +1 -2
- package/dist/constants/platforms.d.ts +1 -2
- package/dist/data/{abandonments.js → abandonments.json.js} +1 -1
- package/dist/data/abandonments.json.js.map +1 -0
- package/dist/data/{changelog-urls.js → changelog-urls.json.js} +1 -1
- package/dist/data/changelog-urls.json.js.map +1 -0
- package/dist/data/{java-version-lts.js → java-version-lts.json.js} +1 -1
- package/dist/data/java-version-lts.json.js.map +1 -0
- package/dist/data/{mise-registry.js → mise-registry.json.js} +1 -1
- package/dist/data/mise-registry.json.js.map +1 -0
- package/dist/data/{monorepo.js → monorepo.json.js} +1 -1
- package/dist/data/monorepo.json.js.map +1 -0
- package/dist/data/{node-js-schedule.js → node-js-schedule.json.js} +1 -1
- package/dist/data/node-js-schedule.json.js.map +1 -0
- package/dist/data/{replacements.js → replacements.json.js} +2 -78
- package/dist/data/replacements.json.js.map +1 -0
- package/dist/data/{source-urls.js → source-urls.json.js} +1 -1
- package/dist/data/source-urls.json.js.map +1 -0
- package/dist/datasource-list.generated.d.ts +1 -2
- package/dist/instrumentation/types.d.ts +1 -2
- package/dist/logger/err-serializer.d.ts +1 -2
- package/dist/logger/index.d.ts +1 -2
- package/dist/logger/renovate-logger.d.ts +1 -2
- package/dist/logger/types.d.ts +1 -2
- package/dist/manager-list.generated.d.ts +1 -2
- package/dist/modules/datasource/common.d.ts +1 -2
- package/dist/modules/datasource/docker/common.js +4 -1
- package/dist/modules/datasource/docker/common.js.map +1 -1
- package/dist/modules/datasource/index.d.ts +1 -2
- package/dist/modules/datasource/metadata-manual.js +2 -2
- package/dist/modules/datasource/npm/schema.d.ts +1 -2
- package/dist/modules/datasource/types.d.ts +1 -2
- package/dist/modules/manager/custom/jsonata/types.d.ts +1 -2
- package/dist/modules/manager/custom/regex/types.d.ts +1 -2
- package/dist/modules/manager/custom/types.d.ts +1 -2
- package/dist/modules/manager/fingerprint.generated.d.ts +1 -2
- package/dist/modules/manager/index.d.ts +1 -2
- package/dist/modules/manager/mise/extract.js +1 -1
- package/dist/modules/manager/mise/upgradeable-tooling.js +1 -1
- package/dist/modules/manager/types.d.ts +1 -2
- package/dist/modules/platform/bitbucket/index.d.ts +1 -2
- package/dist/modules/platform/bitbucket-server/index.d.ts +1 -2
- package/dist/modules/platform/bitbucket-server/types.d.ts +1 -2
- package/dist/modules/platform/github/schema.d.ts +1 -2
- package/dist/modules/platform/gitlab/code-owners.d.ts +1 -2
- package/dist/modules/platform/gitlab/index.d.ts +1 -2
- package/dist/modules/platform/gitlab/types.d.ts +1 -2
- package/dist/modules/platform/index.d.ts +1 -2
- package/dist/modules/platform/types.d.ts +1 -2
- package/dist/modules/versioning/generic.d.ts +1 -2
- package/dist/modules/versioning/index.d.ts +1 -2
- package/dist/modules/versioning/node/schedule.js +1 -1
- package/dist/modules/versioning/semver-coerced/index.d.ts +1 -2
- package/dist/modules/versioning/types.d.ts +1 -2
- package/dist/modules/versioning/ubuntu/index.d.ts +1 -2
- package/dist/proxy.d.ts +1 -2
- package/dist/renovate.d.ts +1 -3
- package/dist/types/base.d.ts +1 -2
- package/dist/types/branch-status.d.ts +1 -2
- package/dist/types/commit-message-json.d.ts +1 -2
- package/dist/types/git.d.ts +1 -2
- package/dist/types/host-rules.d.ts +1 -2
- package/dist/types/index.d.ts +1 -2
- package/dist/types/pr-state.d.ts +1 -2
- package/dist/types/skip-reason.d.ts +1 -2
- package/dist/types/versioning.d.ts +1 -2
- package/dist/util/cache/package/backend.d.ts +1 -2
- package/dist/util/cache/package/index.d.ts +1 -2
- package/dist/util/cache/package/namespaces.d.ts +1 -2
- package/dist/util/cache/repository/types.d.ts +1 -2
- package/dist/util/compress.d.ts +1 -2
- package/dist/util/exec/common.d.ts +1 -2
- package/dist/util/exec/exec-error.d.ts +1 -2
- package/dist/util/exec/types.d.ts +1 -2
- package/dist/util/git/config.d.ts +2 -3
- package/dist/util/git/index.d.ts +1 -2
- package/dist/util/git/private-key.d.ts +1 -2
- package/dist/util/git/types.d.ts +1 -2
- package/dist/util/host-rules.d.ts +1 -2
- package/dist/util/http/cache/types.d.ts +1 -2
- package/dist/util/http/errors.d.ts +1 -2
- package/dist/util/http/github.d.ts +1 -2
- package/dist/util/http/gitlab.d.ts +1 -2
- package/dist/util/http/http.d.ts +2 -3
- package/dist/util/http/legacy.d.ts +1 -2
- package/dist/util/http/types.d.ts +1 -2
- package/dist/util/merge-confidence/common.d.ts +1 -2
- package/dist/util/merge-confidence/types.d.ts +1 -2
- package/dist/util/result.d.ts +1 -2
- package/dist/util/s3.d.ts +1 -2
- package/dist/util/schema-utils/git.d.ts +1 -2
- package/dist/util/schema-utils/index.d.ts +2 -2
- package/dist/util/string-match.d.ts +1 -2
- package/dist/util/timestamp.d.ts +1 -2
- package/dist/util/url.d.ts +1 -2
- package/dist/util/yaml.d.ts +1 -1
- package/dist/versioning-list.generated.d.ts +1 -2
- package/dist/workers/global/autodiscover.d.ts +1 -2
- package/dist/workers/global/config/parse/cli.js +33 -1
- package/dist/workers/global/config/parse/cli.js.map +1 -1
- package/dist/workers/global/config/parse/env.js +47 -1
- package/dist/workers/global/config/parse/env.js.map +1 -1
- package/dist/workers/global/config/parse/index.d.ts +1 -2
- package/dist/workers/repository/init/types.d.ts +1 -2
- package/dist/workers/repository/result.d.ts +1 -2
- package/dist/workers/repository/update/pr/changelog/types.d.ts +1 -2
- package/dist/workers/types.d.ts +1 -2
- package/package.json +2 -2
- package/renovate-schema.json +2 -2
- package/dist/data/abandonments.js.map +0 -1
- package/dist/data/changelog-urls.js.map +0 -1
- package/dist/data/java-version-lts.js.map +0 -1
- package/dist/data/mise-registry.js.map +0 -1
- package/dist/data/monorepo.js.map +0 -1
- package/dist/data/node-js-schedule.js.map +0 -1
- package/dist/data/replacements.js.map +0 -1
- package/dist/data/source-urls.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","names":["hostRules.find","dockerVersioning"],"sources":["../../../../lib/modules/datasource/docker/common.ts"],"sourcesContent":["import { isNonEmptyString, isString, isUndefined } from '@sindresorhus/is';\nimport {\n HOST_BLOCKED,\n HOST_DISABLED,\n PAGE_NOT_FOUND_ERROR,\n} from '../../../constants/error-messages.ts';\nimport { logger } from '../../../logger/index.ts';\nimport { ExternalHostError } from '../../../types/errors/external-host-error.ts';\nimport { coerceArray } from '../../../util/array.ts';\nimport { detectPlatform } from '../../../util/common.ts';\nimport { parseGitUrl } from '../../../util/git/url.ts';\nimport { toSha256 } from '../../../util/hash.ts';\nimport * as hostRules from '../../../util/host-rules.ts';\nimport { memCacheProvider } from '../../../util/http/cache/memory-http-cache-provider.ts';\nimport type { Http } from '../../../util/http/index.ts';\nimport {\n isForbidden,\n isNotFound,\n isOk,\n isRateLimited,\n isServerError,\n isUnauthorized,\n} from '../../../util/http/status.ts';\nimport type {\n HttpOptions,\n HttpResponse,\n OutgoingHttpHeaders,\n} from '../../../util/http/types.ts';\nimport { refusedHostMessage } from '../../../util/http/util.ts';\nimport type { ParamsChallenge } from '../../../util/http/www-authenticate.ts';\nimport { BearerScheme, parse } from '../../../util/http/www-authenticate.ts';\nimport { coerceObject } from '../../../util/object.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { addSecretForSanitizing } from '../../../util/sanitize.ts';\nimport {\n ensureTrailingSlash,\n parseUrl,\n trimTrailingSlash,\n} from '../../../util/url.ts';\nimport { api as dockerVersioning } from '../../versioning/docker/index.ts';\nimport { getGoogleAuthToken } from '../util.ts';\nimport { ecrRegex, getECRAuthToken, isECRMaxResultsResponse } from './ecr.ts';\nimport { googleRegex } from './google.ts';\nimport type { OciHelmConfig } from './schema.ts';\nimport { RegistryAuthToken } from './schema.ts';\nimport type { RegistryRepository } from './types.ts';\n\nexport const dockerDatasourceId = 'docker';\n\nexport const imageUrlLabel = 'org.opencontainers.image.url';\n\nexport const sourceLabel = 'org.opencontainers.image.source';\nexport const sourceLabels = [sourceLabel, 'org.label-schema.vcs-url'] as const;\n\nexport const gitRefLabel = 'org.opencontainers.image.revision';\n\nexport const DOCKER_HUB = 'https://index.docker.io';\n\nexport function isDockerHost(host: string): boolean {\n const regex = regEx(/(?:^|\\.)docker\\.io$/);\n return regex.test(host);\n}\n\nexport async function getAuthHeaders(\n http: Http,\n registryHost: string,\n dockerRepository: string,\n apiCheckUrl = `${registryHost}/v2/`,\n): Promise<OutgoingHttpHeaders | undefined> {\n try {\n const options = {\n throwHttpErrors: false,\n noAuth: true,\n cacheProvider: memCacheProvider,\n };\n // Written as an if/else rather than a ternary on purpose: v8 gives the\n // branch that follows an `await` inside a ternary a negative hit count,\n // which the coverage reporters then read as uncovered.\n let apiCheckResponse: HttpResponse<unknown>;\n if (apiCheckUrl.endsWith('/v2/')) {\n apiCheckResponse = await http.get(apiCheckUrl, options);\n } else {\n // use json request, as this will be cached for tags, so it returns json\n // TODO: add cache test\n apiCheckResponse = await http.getJsonUnchecked(apiCheckUrl, options);\n }\n\n if (isOk(apiCheckResponse)) {\n logger.debug(`No registry auth required for ${apiCheckUrl}`);\n return {};\n }\n if (isNotFound(apiCheckResponse)) {\n logger.debug(`Page Not Found ${apiCheckUrl}`);\n // throw error up to be caught and potentially retried with library/ prefix\n throw new Error(PAGE_NOT_FOUND_ERROR);\n }\n // Some ECR-compatible private registries (e.g. corporate Docker proxies) reject\n // n>1000 with 405 even on the auth-probe request. Fall back to probing the base\n // /v2/ endpoint so getAuthHeaders can still obtain a valid token; the main fetch\n // loop already retries with n=1000 when it encounters this same error.\n if (isECRMaxResultsResponse(apiCheckResponse)) {\n logger.debug(\n { apiCheckUrl },\n 'Registry rejected n>1000 on auth probe; retrying auth check via base /v2/ endpoint',\n );\n return getAuthHeaders(http, registryHost, dockerRepository);\n }\n if (\n !isUnauthorized(apiCheckResponse) ||\n !isNonEmptyString(apiCheckResponse.headers['www-authenticate'])\n ) {\n logger.warn(\n { apiCheckUrl, res: apiCheckResponse },\n 'Invalid registry response',\n );\n return undefined;\n }\n\n const rule = hostRules.find({\n hostType: dockerDatasourceId,\n url: apiCheckUrl,\n });\n const opts: HttpOptions = {};\n\n if (ecrRegex.test(registryHost)) {\n logger.once.debug(`hostRules: ecr auth for ${registryHost}`);\n logger.trace(\n { registryHost, dockerRepository },\n `Using ecr auth for Docker registry`,\n );\n const [, region] = coerceArray(ecrRegex.exec(registryHost));\n const auth = await getECRAuthToken(region, rule);\n if (auth) {\n opts.headers = { authorization: `Basic ${auth}` };\n }\n } else if (\n googleRegex.test(registryHost) &&\n isUndefined(rule.username) &&\n isUndefined(rule.password) &&\n isUndefined(rule.token)\n ) {\n logger.once.debug(`hostRules: google auth for ${registryHost}`);\n logger.trace(\n { registryHost, dockerRepository },\n `Using google auth for Docker registry`,\n );\n const auth = await getGoogleAuthToken();\n if (auth) {\n opts.headers = { authorization: `Basic ${auth}` };\n } else {\n logger.once.debug(\n { registryHost, dockerRepository },\n 'Could not get Google access token, using no auth',\n );\n }\n } else if (rule.username && rule.password) {\n logger.once.debug(`hostRules: basic auth for ${registryHost}`);\n logger.trace(\n { registryHost, dockerRepository },\n `Using basic auth for Docker registry`,\n );\n const auth = Buffer.from(`${rule.username}:${rule.password}`).toString(\n 'base64',\n );\n opts.headers = { authorization: `Basic ${auth}` };\n } else if (rule.token) {\n const authType = rule.authType ?? 'Bearer';\n logger.once.debug(\n `hostRules: ${authType} token auth for ${registryHost}`,\n );\n logger.trace(\n { registryHost, dockerRepository },\n `Using ${authType} token for Docker registry`,\n );\n opts.headers = { authorization: `${authType} ${rule.token}` };\n }\n\n const challenges = parse(apiCheckResponse.headers['www-authenticate']);\n const authenticateHeader = challenges.find(\n (c): c is ParamsChallenge => c.scheme === BearerScheme,\n );\n\n // If realm isn't an url, we should directly use auth header\n // Can happen when we get a Basic auth or some other auth type\n // * WWW-Authenticate: Basic realm=\"Artifactory Realm\"\n // * Www-Authenticate: Basic realm=\"https://123456789.dkr.ecr.eu-central-1.amazonaws.com/\",service=\"ecr.amazonaws.com\"\n // * www-authenticate: Bearer realm=\"https://ghcr.io/token\",service=\"ghcr.io\",scope=\"repository:user/image:pull\"\n // * www-authenticate: Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"\n // * www-authenticate: Bearer realm=\"https://codeberg.org/v2/token\",service=\"container_registry\",scope=\"*\",Basic realm=\"https://codeberg.org/v2\",service=\"container_registry\",scope=\"*\"\n if (\n !authenticateHeader ||\n !isString(authenticateHeader.params?.realm) ||\n parseUrl(authenticateHeader.params.realm) === null\n ) {\n logger.once.debug(`hostRules: testing direct auth for ${registryHost}`);\n logger.trace(\n { registryHost, dockerRepository, authenticateHeader },\n `Invalid realm, testing direct auth`,\n );\n return opts.headers ?? undefined;\n }\n\n // already guarded by above clause\n const authUrl = parseUrl(`${authenticateHeader.params.realm}`)!;\n\n // repo isn't known to server yet, so causing wrong scope `repository:user/image:pull`\n if (\n isString(authenticateHeader.params.scope) &&\n !apiCheckUrl.endsWith('/v2/')\n ) {\n authUrl.searchParams.append('scope', authenticateHeader.params.scope);\n } else {\n authUrl.searchParams.append(\n 'scope',\n `repository:${dockerRepository}:pull`,\n );\n }\n\n if (isString(authenticateHeader.params.service)) {\n authUrl.searchParams.append('service', authenticateHeader.params.service);\n }\n\n logger.trace(\n { registryHost, dockerRepository, authUrl: authUrl.href },\n `Obtaining docker registry token`,\n );\n opts.noAuth = true;\n opts.cacheProvider = memCacheProvider;\n const authResponse = (\n await http.getJson(authUrl.href, opts, RegistryAuthToken)\n ).body;\n\n const token = authResponse.token ?? authResponse.access_token;\n /* v8 ignore next -- TODO: add test */\n if (!token) {\n logger.warn('Failed to obtain docker registry token');\n return undefined;\n }\n // sanitize token\n addSecretForSanitizing(token);\n return {\n authorization: `Bearer ${token}`,\n };\n } catch (err) /* istanbul ignore next */ {\n /* v8 ignore if -- quay.io errors are swallowed pending #9604, not reproduced in specs */\n if (err.host === 'quay.io') {\n // TODO: debug why quay throws errors (#9604)\n return undefined;\n }\n /* v8 ignore if -- registry auth rejection is logged and swallowed, not mocked in specs */\n if (isUnauthorized(err)) {\n logger.debug(\n { registryHost, dockerRepository },\n 'Unauthorized docker lookup',\n );\n logger.debug({ err });\n return undefined;\n }\n /* v8 ignore if -- registry permission rejection is logged and swallowed, not mocked in specs */\n if (isForbidden(err)) {\n logger.debug(\n { registryHost, dockerRepository },\n 'Not allowed to access docker registry',\n );\n logger.debug({ err });\n return undefined;\n }\n if (err.name === 'RequestError' && isDockerHost(registryHost)) {\n throw new ExternalHostError(err);\n }\n /* v8 ignore if -- Docker Hub rate limiting maps to ExternalHostError, not mocked in specs */\n if (isRateLimited(err) && isDockerHost(registryHost)) {\n throw new ExternalHostError(err);\n }\n /* v8 ignore if -- registry server errors map to ExternalHostError, not mocked in specs */\n if (isServerError(err)) {\n throw new ExternalHostError(err);\n }\n if (err.message === PAGE_NOT_FOUND_ERROR) {\n throw err;\n }\n /* v8 ignore if -- hostRules-disabled host is swallowed silently, not mocked in specs */\n if ([HOST_BLOCKED, HOST_DISABLED].includes(err.message)) {\n logger.trace(\n { registryHost, dockerRepository, err },\n refusedHostMessage(err),\n );\n return undefined;\n }\n logger.warn(\n { registryHost, dockerRepository, err },\n 'Error obtaining docker token',\n );\n return undefined;\n }\n}\n\nexport function getRegistryRepository(\n packageName: string,\n registryUrl: string,\n): RegistryRepository {\n if (registryUrl !== DOCKER_HUB) {\n const registryEndingWithSlash = ensureTrailingSlash(\n registryUrl.replace(regEx(/^https?:\\/\\//), ''),\n );\n if (packageName.startsWith(registryEndingWithSlash)) {\n let registryHost = trimTrailingSlash(registryUrl);\n if (!regEx(/^https?:\\/\\//).test(registryHost)) {\n registryHost = `https://${registryHost}`;\n }\n let dockerRepository = packageName.replace(registryEndingWithSlash, '');\n const fullUrl = `${registryHost}/${dockerRepository}`;\n const parsedFullUrl = parseUrl(fullUrl);\n if (!parsedFullUrl) {\n return { registryHost, dockerRepository };\n }\n registryHost = parsedFullUrl.origin;\n dockerRepository = parsedFullUrl.pathname.substring(1);\n return {\n registryHost,\n dockerRepository,\n };\n }\n }\n let registryHost = registryUrl;\n const split = packageName.split('/');\n const hasRegistryHost = split[0].includes('.') || split[0].includes(':');\n if (split.length > 1 && hasRegistryHost) {\n [registryHost] = split;\n split.shift();\n }\n let dockerRepository = split.join('/');\n\n if (!regEx(/^https?:\\/\\//).test(registryHost)) {\n registryHost = `https://${registryHost}`;\n }\n\n const { path, base } = coerceObject(\n regEx(/^(?<base>https:\\/\\/[^/]+)\\/(?<path>.+)$/).exec(registryHost)?.groups,\n );\n if (base && path) {\n registryHost = base;\n dockerRepository = `${trimTrailingSlash(path)}/${dockerRepository}`;\n }\n\n registryHost = registryHost\n .replace('https://docker.io', 'https://index.docker.io')\n .replace('https://registry-1.docker.io', 'https://index.docker.io');\n\n const opts = hostRules.find({\n hostType: dockerDatasourceId,\n url: registryHost,\n });\n if (opts?.insecureRegistry) {\n registryHost = registryHost.replace('https', 'http');\n }\n if (registryHost.endsWith('.docker.io') && !dockerRepository.includes('/')) {\n dockerRepository = `library/${dockerRepository}`;\n }\n return {\n registryHost,\n dockerRepository,\n };\n}\n\nexport function extractDigestFromResponseBody(\n manifestResponse: HttpResponse,\n): string {\n return `sha256:${toSha256(manifestResponse.body)}`;\n}\n\nexport function findLatestStable(tags: string[]): string | null {\n let stable: string | null = null;\n\n for (const tag of tags) {\n if (!dockerVersioning.isValid(tag) || !dockerVersioning.isStable(tag)) {\n continue;\n }\n\n if (!stable || dockerVersioning.isGreaterThan(tag, stable)) {\n stable = tag;\n }\n }\n\n return stable;\n}\n\nconst chartRepo = regEx(/charts?|helm|helm-charts?/i);\n\nfunction isPossibleChartRepo(url: string): boolean {\n if (detectPlatform(url) === null) {\n return false;\n }\n\n const parsed = parseGitUrl(url);\n return chartRepo.test(parsed.name);\n}\n\nexport function findHelmSourceUrl(release: OciHelmConfig): string | null {\n if (release.home && isPossibleChartRepo(release.home)) {\n return release.home;\n }\n\n if (!release.sources?.length) {\n return null;\n }\n\n for (const url of release.sources) {\n if (isPossibleChartRepo(url)) {\n return url;\n }\n }\n\n // fallback\n return release.sources[0];\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"common.js","names":["hostRules.find","dockerVersioning"],"sources":["../../../../lib/modules/datasource/docker/common.ts"],"sourcesContent":["import { isNonEmptyString, isString, isUndefined } from '@sindresorhus/is';\nimport {\n HOST_BLOCKED,\n HOST_DISABLED,\n PAGE_NOT_FOUND_ERROR,\n} from '../../../constants/error-messages.ts';\nimport { logger } from '../../../logger/index.ts';\nimport { ExternalHostError } from '../../../types/errors/external-host-error.ts';\nimport { coerceArray } from '../../../util/array.ts';\nimport { detectPlatform } from '../../../util/common.ts';\nimport { parseGitUrl } from '../../../util/git/url.ts';\nimport { toSha256 } from '../../../util/hash.ts';\nimport * as hostRules from '../../../util/host-rules.ts';\nimport { memCacheProvider } from '../../../util/http/cache/memory-http-cache-provider.ts';\nimport type { Http } from '../../../util/http/index.ts';\nimport {\n isForbidden,\n isNotFound,\n isOk,\n isRateLimited,\n isRateLimitedOrServerError,\n isServerError,\n isUnauthorized,\n} from '../../../util/http/status.ts';\nimport type {\n HttpOptions,\n HttpResponse,\n OutgoingHttpHeaders,\n} from '../../../util/http/types.ts';\nimport { refusedHostMessage } from '../../../util/http/util.ts';\nimport type { ParamsChallenge } from '../../../util/http/www-authenticate.ts';\nimport { BearerScheme, parse } from '../../../util/http/www-authenticate.ts';\nimport { coerceObject } from '../../../util/object.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { addSecretForSanitizing } from '../../../util/sanitize.ts';\nimport {\n ensureTrailingSlash,\n parseUrl,\n trimTrailingSlash,\n} from '../../../util/url.ts';\nimport { api as dockerVersioning } from '../../versioning/docker/index.ts';\nimport { getGoogleAuthToken } from '../util.ts';\nimport { ecrRegex, getECRAuthToken, isECRMaxResultsResponse } from './ecr.ts';\nimport { googleRegex } from './google.ts';\nimport type { OciHelmConfig } from './schema.ts';\nimport { RegistryAuthToken } from './schema.ts';\nimport type { RegistryRepository } from './types.ts';\n\nexport const dockerDatasourceId = 'docker';\n\nexport const imageUrlLabel = 'org.opencontainers.image.url';\n\nexport const sourceLabel = 'org.opencontainers.image.source';\nexport const sourceLabels = [sourceLabel, 'org.label-schema.vcs-url'] as const;\n\nexport const gitRefLabel = 'org.opencontainers.image.revision';\n\nexport const DOCKER_HUB = 'https://index.docker.io';\n\nexport function isDockerHost(host: string): boolean {\n const regex = regEx(/(?:^|\\.)docker\\.io$/);\n return regex.test(host);\n}\n\nexport async function getAuthHeaders(\n http: Http,\n registryHost: string,\n dockerRepository: string,\n apiCheckUrl = `${registryHost}/v2/`,\n): Promise<OutgoingHttpHeaders | undefined> {\n try {\n const options = {\n throwHttpErrors: false,\n noAuth: true,\n cacheProvider: memCacheProvider,\n };\n // Written as an if/else rather than a ternary on purpose: v8 gives the\n // branch that follows an `await` inside a ternary a negative hit count,\n // which the coverage reporters then read as uncovered.\n let apiCheckResponse: HttpResponse<unknown>;\n if (apiCheckUrl.endsWith('/v2/')) {\n apiCheckResponse = await http.get(apiCheckUrl, options);\n } else {\n // use json request, as this will be cached for tags, so it returns json\n // TODO: add cache test\n apiCheckResponse = await http.getJsonUnchecked(apiCheckUrl, options);\n }\n\n if (isOk(apiCheckResponse)) {\n logger.debug(`No registry auth required for ${apiCheckUrl}`);\n return {};\n }\n if (isNotFound(apiCheckResponse)) {\n logger.debug(`Page Not Found ${apiCheckUrl}`);\n // throw error up to be caught and potentially retried with library/ prefix\n throw new Error(PAGE_NOT_FOUND_ERROR);\n }\n // Some ECR-compatible private registries (e.g. corporate Docker proxies) reject\n // n>1000 with 405 even on the auth-probe request. Fall back to probing the base\n // /v2/ endpoint so getAuthHeaders can still obtain a valid token; the main fetch\n // loop already retries with n=1000 when it encounters this same error.\n if (isECRMaxResultsResponse(apiCheckResponse)) {\n logger.debug(\n { apiCheckUrl },\n 'Registry rejected n>1000 on auth probe; retrying auth check via base /v2/ endpoint',\n );\n return getAuthHeaders(http, registryHost, dockerRepository);\n }\n if (isRateLimitedOrServerError(apiCheckResponse)) {\n throw new ExternalHostError(\n new Error(\n `Registry auth probe ${apiCheckUrl} failed with status ${apiCheckResponse.statusCode}`,\n ),\n );\n }\n if (\n !isUnauthorized(apiCheckResponse) ||\n !isNonEmptyString(apiCheckResponse.headers['www-authenticate'])\n ) {\n logger.warn(\n {\n apiCheckUrl,\n statusCode: apiCheckResponse.statusCode,\n res: apiCheckResponse,\n },\n 'Invalid registry response',\n );\n return undefined;\n }\n\n const rule = hostRules.find({\n hostType: dockerDatasourceId,\n url: apiCheckUrl,\n });\n const opts: HttpOptions = {};\n\n if (ecrRegex.test(registryHost)) {\n logger.once.debug(`hostRules: ecr auth for ${registryHost}`);\n logger.trace(\n { registryHost, dockerRepository },\n `Using ecr auth for Docker registry`,\n );\n const [, region] = coerceArray(ecrRegex.exec(registryHost));\n const auth = await getECRAuthToken(region, rule);\n if (auth) {\n opts.headers = { authorization: `Basic ${auth}` };\n }\n } else if (\n googleRegex.test(registryHost) &&\n isUndefined(rule.username) &&\n isUndefined(rule.password) &&\n isUndefined(rule.token)\n ) {\n logger.once.debug(`hostRules: google auth for ${registryHost}`);\n logger.trace(\n { registryHost, dockerRepository },\n `Using google auth for Docker registry`,\n );\n const auth = await getGoogleAuthToken();\n if (auth) {\n opts.headers = { authorization: `Basic ${auth}` };\n } else {\n logger.once.debug(\n { registryHost, dockerRepository },\n 'Could not get Google access token, using no auth',\n );\n }\n } else if (rule.username && rule.password) {\n logger.once.debug(`hostRules: basic auth for ${registryHost}`);\n logger.trace(\n { registryHost, dockerRepository },\n `Using basic auth for Docker registry`,\n );\n const auth = Buffer.from(`${rule.username}:${rule.password}`).toString(\n 'base64',\n );\n opts.headers = { authorization: `Basic ${auth}` };\n } else if (rule.token) {\n const authType = rule.authType ?? 'Bearer';\n logger.once.debug(\n `hostRules: ${authType} token auth for ${registryHost}`,\n );\n logger.trace(\n { registryHost, dockerRepository },\n `Using ${authType} token for Docker registry`,\n );\n opts.headers = { authorization: `${authType} ${rule.token}` };\n }\n\n const challenges = parse(apiCheckResponse.headers['www-authenticate']);\n const authenticateHeader = challenges.find(\n (c): c is ParamsChallenge => c.scheme === BearerScheme,\n );\n\n // If realm isn't an url, we should directly use auth header\n // Can happen when we get a Basic auth or some other auth type\n // * WWW-Authenticate: Basic realm=\"Artifactory Realm\"\n // * Www-Authenticate: Basic realm=\"https://123456789.dkr.ecr.eu-central-1.amazonaws.com/\",service=\"ecr.amazonaws.com\"\n // * www-authenticate: Bearer realm=\"https://ghcr.io/token\",service=\"ghcr.io\",scope=\"repository:user/image:pull\"\n // * www-authenticate: Bearer realm=\"https://auth.docker.io/token\",service=\"registry.docker.io\"\n // * www-authenticate: Bearer realm=\"https://codeberg.org/v2/token\",service=\"container_registry\",scope=\"*\",Basic realm=\"https://codeberg.org/v2\",service=\"container_registry\",scope=\"*\"\n if (\n !authenticateHeader ||\n !isString(authenticateHeader.params?.realm) ||\n parseUrl(authenticateHeader.params.realm) === null\n ) {\n logger.once.debug(`hostRules: testing direct auth for ${registryHost}`);\n logger.trace(\n { registryHost, dockerRepository, authenticateHeader },\n `Invalid realm, testing direct auth`,\n );\n return opts.headers ?? undefined;\n }\n\n // already guarded by above clause\n const authUrl = parseUrl(`${authenticateHeader.params.realm}`)!;\n\n // repo isn't known to server yet, so causing wrong scope `repository:user/image:pull`\n if (\n isString(authenticateHeader.params.scope) &&\n !apiCheckUrl.endsWith('/v2/')\n ) {\n authUrl.searchParams.append('scope', authenticateHeader.params.scope);\n } else {\n authUrl.searchParams.append(\n 'scope',\n `repository:${dockerRepository}:pull`,\n );\n }\n\n if (isString(authenticateHeader.params.service)) {\n authUrl.searchParams.append('service', authenticateHeader.params.service);\n }\n\n logger.trace(\n { registryHost, dockerRepository, authUrl: authUrl.href },\n `Obtaining docker registry token`,\n );\n opts.noAuth = true;\n opts.cacheProvider = memCacheProvider;\n const authResponse = (\n await http.getJson(authUrl.href, opts, RegistryAuthToken)\n ).body;\n\n const token = authResponse.token ?? authResponse.access_token;\n /* v8 ignore next -- TODO: add test */\n if (!token) {\n logger.warn('Failed to obtain docker registry token');\n return undefined;\n }\n // sanitize token\n addSecretForSanitizing(token);\n return {\n authorization: `Bearer ${token}`,\n };\n } catch (err) /* istanbul ignore next */ {\n if (err instanceof ExternalHostError) {\n throw err;\n }\n /* v8 ignore if -- quay.io errors are swallowed pending #9604, not reproduced in specs */\n if (err.host === 'quay.io') {\n // TODO: debug why quay throws errors (#9604)\n return undefined;\n }\n /* v8 ignore if -- registry auth rejection is logged and swallowed, not mocked in specs */\n if (isUnauthorized(err)) {\n logger.debug(\n { registryHost, dockerRepository },\n 'Unauthorized docker lookup',\n );\n logger.debug({ err });\n return undefined;\n }\n /* v8 ignore if -- registry permission rejection is logged and swallowed, not mocked in specs */\n if (isForbidden(err)) {\n logger.debug(\n { registryHost, dockerRepository },\n 'Not allowed to access docker registry',\n );\n logger.debug({ err });\n return undefined;\n }\n if (err.name === 'RequestError' && isDockerHost(registryHost)) {\n throw new ExternalHostError(err);\n }\n /* v8 ignore if -- Docker Hub rate limiting maps to ExternalHostError, not mocked in specs */\n if (isRateLimited(err) && isDockerHost(registryHost)) {\n throw new ExternalHostError(err);\n }\n /* v8 ignore if -- registry server errors map to ExternalHostError, not mocked in specs */\n if (isServerError(err)) {\n throw new ExternalHostError(err);\n }\n if (err.message === PAGE_NOT_FOUND_ERROR) {\n throw err;\n }\n /* v8 ignore if -- hostRules-disabled host is swallowed silently, not mocked in specs */\n if ([HOST_BLOCKED, HOST_DISABLED].includes(err.message)) {\n logger.trace(\n { registryHost, dockerRepository, err },\n refusedHostMessage(err),\n );\n return undefined;\n }\n logger.warn(\n { registryHost, dockerRepository, err },\n 'Error obtaining docker token',\n );\n return undefined;\n }\n}\n\nexport function getRegistryRepository(\n packageName: string,\n registryUrl: string,\n): RegistryRepository {\n if (registryUrl !== DOCKER_HUB) {\n const registryEndingWithSlash = ensureTrailingSlash(\n registryUrl.replace(regEx(/^https?:\\/\\//), ''),\n );\n if (packageName.startsWith(registryEndingWithSlash)) {\n let registryHost = trimTrailingSlash(registryUrl);\n if (!regEx(/^https?:\\/\\//).test(registryHost)) {\n registryHost = `https://${registryHost}`;\n }\n let dockerRepository = packageName.replace(registryEndingWithSlash, '');\n const fullUrl = `${registryHost}/${dockerRepository}`;\n const parsedFullUrl = parseUrl(fullUrl);\n if (!parsedFullUrl) {\n return { registryHost, dockerRepository };\n }\n registryHost = parsedFullUrl.origin;\n dockerRepository = parsedFullUrl.pathname.substring(1);\n return {\n registryHost,\n dockerRepository,\n };\n }\n }\n let registryHost = registryUrl;\n const split = packageName.split('/');\n const hasRegistryHost = split[0].includes('.') || split[0].includes(':');\n if (split.length > 1 && hasRegistryHost) {\n [registryHost] = split;\n split.shift();\n }\n let dockerRepository = split.join('/');\n\n if (!regEx(/^https?:\\/\\//).test(registryHost)) {\n registryHost = `https://${registryHost}`;\n }\n\n const { path, base } = coerceObject(\n regEx(/^(?<base>https:\\/\\/[^/]+)\\/(?<path>.+)$/).exec(registryHost)?.groups,\n );\n if (base && path) {\n registryHost = base;\n dockerRepository = `${trimTrailingSlash(path)}/${dockerRepository}`;\n }\n\n registryHost = registryHost\n .replace('https://docker.io', 'https://index.docker.io')\n .replace('https://registry-1.docker.io', 'https://index.docker.io');\n\n const opts = hostRules.find({\n hostType: dockerDatasourceId,\n url: registryHost,\n });\n if (opts?.insecureRegistry) {\n registryHost = registryHost.replace('https', 'http');\n }\n if (registryHost.endsWith('.docker.io') && !dockerRepository.includes('/')) {\n dockerRepository = `library/${dockerRepository}`;\n }\n return {\n registryHost,\n dockerRepository,\n };\n}\n\nexport function extractDigestFromResponseBody(\n manifestResponse: HttpResponse,\n): string {\n return `sha256:${toSha256(manifestResponse.body)}`;\n}\n\nexport function findLatestStable(tags: string[]): string | null {\n let stable: string | null = null;\n\n for (const tag of tags) {\n if (!dockerVersioning.isValid(tag) || !dockerVersioning.isStable(tag)) {\n continue;\n }\n\n if (!stable || dockerVersioning.isGreaterThan(tag, stable)) {\n stable = tag;\n }\n }\n\n return stable;\n}\n\nconst chartRepo = regEx(/charts?|helm|helm-charts?/i);\n\nfunction isPossibleChartRepo(url: string): boolean {\n if (detectPlatform(url) === null) {\n return false;\n }\n\n const parsed = parseGitUrl(url);\n return chartRepo.test(parsed.name);\n}\n\nexport function findHelmSourceUrl(release: OciHelmConfig): string | null {\n if (release.home && isPossibleChartRepo(release.home)) {\n return release.home;\n }\n\n if (!release.sources?.length) {\n return null;\n }\n\n for (const url of release.sources) {\n if (isPossibleChartRepo(url)) {\n return url;\n }\n }\n\n // fallback\n return release.sources[0];\n}\n"],"mappings":"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"}
|
|
@@ -9,5 +9,4 @@ export declare function getPkgReleases(config: GetPkgReleasesConfig): Promise<Re
|
|
|
9
9
|
export declare function supportsDigests(datasource: string | undefined): boolean;
|
|
10
10
|
export declare function getDigest(config: GetDigestInputConfig, value?: string): Promise<string | null>;
|
|
11
11
|
export declare function getDefaultConfig(datasource: string): Promise<Record<string, unknown>>;
|
|
12
|
-
export { DatasourceApi, DigestConfig, GetDigestInputConfig, GetPkgReleasesConfig, GetReleasesConfig, GitHostTag, PostprocessReleaseConfig, PostprocessReleaseResult, RegistryStrategy, RegistryUrlsConfig, Release, ReleaseResult, ReleaseTags, SourceUrlSupport, isGetPkgReleasesConfig };
|
|
13
|
-
//# sourceMappingURL=index.d.ts.map
|
|
12
|
+
export { DatasourceApi, DigestConfig, GetDigestInputConfig, GetPkgReleasesConfig, GetReleasesConfig, GitHostTag, PostprocessReleaseConfig, PostprocessReleaseResult, RegistryStrategy, RegistryUrlsConfig, Release, ReleaseResult, ReleaseTags, SourceUrlSupport, isGetPkgReleasesConfig };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import changelog_urls_default from "../../data/changelog-urls.js";
|
|
2
|
-
import source_urls_default from "../../data/source-urls.js";
|
|
1
|
+
import changelog_urls_default from "../../data/changelog-urls.json.js";
|
|
2
|
+
import source_urls_default from "../../data/source-urls.json.js";
|
|
3
3
|
// lib/modules/datasource/metadata-manual.ts
|
|
4
4
|
const { $schema: _changelogSchema, ...changelogUrls } = changelog_urls_default;
|
|
5
5
|
const manualChangelogUrls = changelogUrls;
|
|
@@ -121,5 +121,4 @@ export declare const NpmResponse: z.ZodObject<{
|
|
|
121
121
|
time: z.ZodOptional<z.ZodType<Record<string, string>, any, z.core.$ZodTypeInternals<Record<string, string>, any>>>;
|
|
122
122
|
'dist-tags': z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
123
123
|
}, z.core.$strip>;
|
|
124
|
-
export type NpmResponse = z.infer<typeof NpmResponse>;
|
|
125
|
-
//# sourceMappingURL=schema.d.ts.map
|
|
124
|
+
export type NpmResponse = z.infer<typeof NpmResponse>;
|
|
@@ -221,5 +221,4 @@ export interface DatasourceApi extends ModuleApi {
|
|
|
221
221
|
* In other cases, the original `Release` parameter should be returned.
|
|
222
222
|
*/
|
|
223
223
|
postprocessRelease?(config: PostprocessReleaseConfig, release: Release): Promise<PostprocessReleaseResult>;
|
|
224
|
-
}
|
|
225
|
-
//# sourceMappingURL=types.d.ts.map
|
|
224
|
+
}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare const hashMap: Map<string, string>;
|
|
2
|
-
//# sourceMappingURL=fingerprint.generated.d.ts.map
|
|
1
|
+
export declare const hashMap: Map<string, string>;
|
|
@@ -24,5 +24,4 @@ export declare function isKnownManager(mgr: string): boolean;
|
|
|
24
24
|
* is not provided or is an empty array, it returns the full list of managers.
|
|
25
25
|
*/
|
|
26
26
|
export declare function getEnabledManagersList(enabledManagers?: string[]): string[];
|
|
27
|
-
export { hashMap };
|
|
28
|
-
//# sourceMappingURL=index.d.ts.map
|
|
27
|
+
export { hashMap };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import java_version_lts_default from "../../../data/java-version-lts.js";
|
|
1
|
+
import java_version_lts_default from "../../../data/java-version-lts.json.js";
|
|
2
2
|
import { logger } from "../../../logger/index.js";
|
|
3
3
|
import { readLocalFile } from "../../../util/fs/index.js";
|
|
4
4
|
import { coerceObject } from "../../../util/object.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import mise_registry_default from "../../../data/mise-registry.js";
|
|
1
|
+
import mise_registry_default from "../../../data/mise-registry.json.js";
|
|
2
2
|
import { coerceObject } from "../../../util/object.js";
|
|
3
3
|
import { regEx } from "../../../util/regex.js";
|
|
4
4
|
import { GithubReleasesDatasource } from "../../datasource/github-releases/index.js";
|
|
@@ -33,5 +33,4 @@ export declare function ensureComment({ number, topic, content }: EnsureCommentC
|
|
|
33
33
|
export declare function ensureCommentRemoval(deleteConfig: EnsureCommentRemovalConfig): Promise<void>;
|
|
34
34
|
export declare function createPr({ sourceBranch, targetBranch, prTitle: title, prBody: description, draftPR, platformPrOptions }: CreatePRConfig): Promise<Pr>;
|
|
35
35
|
export declare function updatePr({ number: prNo, prTitle: title, prBody: description, state, targetBranch }: UpdatePrConfig): Promise<void>;
|
|
36
|
-
export declare function mergePr({ branchName, id: prNo, strategy: mergeStrategy }: MergePRConfig): Promise<boolean>;
|
|
37
|
-
//# sourceMappingURL=index.d.ts.map
|
|
36
|
+
export declare function mergePr({ branchName, id: prNo, strategy: mergeStrategy }: MergePRConfig): Promise<boolean>;
|
|
@@ -43,5 +43,4 @@ export declare function mergePr({ branchName, id: prNo }: MergePRConfig): Promis
|
|
|
43
43
|
export declare function expandGroupMembers(reviewers: string[]): Promise<string[]>;
|
|
44
44
|
export declare function extractRulesFromCodeOwnersLines(cleanedLines: string[]): FileOwnerRule[];
|
|
45
45
|
export declare function massageMarkdown(input: string): string;
|
|
46
|
-
export declare function maxBodyLength(): number;
|
|
47
|
-
//# sourceMappingURL=index.d.ts.map
|
|
46
|
+
export declare function maxBodyLength(): number;
|
|
@@ -157,5 +157,4 @@ export declare const GithubVulnerabilityAlerts: z.ZodPipe<z.ZodType<{
|
|
|
157
157
|
};
|
|
158
158
|
}[]>>;
|
|
159
159
|
export type GithubVulnerabilityAlerts = z.infer<typeof GithubVulnerabilityAlerts>;
|
|
160
|
-
export type GithubVulnerabilityAlert = GithubVulnerabilityAlerts[number];
|
|
161
|
-
//# sourceMappingURL=schema.d.ts.map
|
|
160
|
+
export type GithubVulnerabilityAlert = GithubVulnerabilityAlerts[number];
|
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
import { FileOwnerRule } from "../types.js";
|
|
2
|
-
export declare function extractRulesFromCodeOwnersLines(cleanedLines: string[]): FileOwnerRule[];
|
|
3
|
-
//# sourceMappingURL=code-owners.d.ts.map
|
|
2
|
+
export declare function extractRulesFromCodeOwnersLines(cleanedLines: string[]): FileOwnerRule[];
|
|
@@ -49,5 +49,4 @@ export declare function ensureComment({ number, topic, content }: EnsureCommentC
|
|
|
49
49
|
export declare function ensureCommentRemoval(deleteConfig: EnsureCommentRemovalConfig): Promise<void>;
|
|
50
50
|
export declare function filterUnavailableUsers(users: string[]): Promise<string[]>;
|
|
51
51
|
export declare function expandGroupMembers(reviewersOrAssignees: string[]): Promise<string[]>;
|
|
52
|
-
export { extractRulesFromCodeOwnersLines };
|
|
53
|
-
//# sourceMappingURL=index.d.ts.map
|
|
52
|
+
export { extractRulesFromCodeOwnersLines };
|
|
@@ -5,5 +5,4 @@ export declare function getPlatformList(): string[];
|
|
|
5
5
|
export declare const platform: Platform;
|
|
6
6
|
export declare function setPlatformApi(name: PlatformId): void;
|
|
7
7
|
export declare function initPlatform(config: AllConfig): Promise<AllConfig>;
|
|
8
|
-
export type { AutodiscoverConfig, BranchStatusConfig, CancelPlatformAutomergeConfig, CreatePRConfig, EnsureCommentConfig, EnsureCommentRemovalConfig, EnsureCommentRemovalConfigByContent, EnsureCommentRemovalConfigByTopic, EnsureIssueConfig, EnsureIssueResult, FileOwnerRule, FindPRConfig, GitUrlOption, Issue, MergePRConfig, Platform, PlatformParams, PlatformPrOptions, PlatformResult, PlatformScm, Pr, PrBodyStruct, PrDebugData, ReattemptPlatformAutomergeConfig, RepoConfigParams, RepoParams, RepoResult, RepoSortMethod, SortMethod, StatusCheckConfig, UpdatePrConfig, VulnerabilityAlert };
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
|
8
|
+
export type { AutodiscoverConfig, BranchStatusConfig, CancelPlatformAutomergeConfig, CreatePRConfig, EnsureCommentConfig, EnsureCommentRemovalConfig, EnsureCommentRemovalConfigByContent, EnsureCommentRemovalConfigByTopic, EnsureIssueConfig, EnsureIssueResult, FileOwnerRule, FindPRConfig, GitUrlOption, Issue, MergePRConfig, Platform, PlatformParams, PlatformPrOptions, PlatformResult, PlatformScm, Pr, PrBodyStruct, PrDebugData, ReattemptPlatformAutomergeConfig, RepoConfigParams, RepoParams, RepoResult, RepoSortMethod, SortMethod, StatusCheckConfig, UpdatePrConfig, VulnerabilityAlert };
|
|
@@ -21,5 +21,4 @@ export declare abstract class GenericVersioningApi<T extends GenericVersion = Ge
|
|
|
21
21
|
sortVersions(version: string, other: string): number;
|
|
22
22
|
matches(version: string, range: string): boolean;
|
|
23
23
|
isSame(type: 'major' | 'minor' | 'patch', a: string, b: string): boolean;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=generic.d.ts.map
|
|
24
|
+
}
|
|
@@ -7,5 +7,4 @@ export declare function getVersioningList(): string[];
|
|
|
7
7
|
*/
|
|
8
8
|
export declare function getVersionings(): Map<string, VersioningApi | VersioningApiConstructor>;
|
|
9
9
|
export declare function get(versioning: string | null | undefined): VersioningApi;
|
|
10
|
-
export { DistroDataFile, DistroInfoRecord, DistroInfoRecordWithVersion, DistroSchedule, GenericVersion, NewValueConfig, RangeComparator, VersionComparator, VersionParser, VersioningApi, VersioningApiConstructor };
|
|
11
|
-
//# sourceMappingURL=index.d.ts.map
|
|
10
|
+
export { DistroDataFile, DistroInfoRecord, DistroInfoRecordWithVersion, DistroSchedule, GenericVersion, NewValueConfig, RangeComparator, VersionComparator, VersionParser, VersioningApi, VersioningApiConstructor };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import node_js_schedule_default from "../../../data/node-js-schedule.js";
|
|
1
|
+
import node_js_schedule_default from "../../../data/node-js-schedule.json.js";
|
|
2
2
|
import { api } from "../semver/index.js";
|
|
3
3
|
// lib/modules/versioning/node/schedule.ts
|
|
4
4
|
const nodeSchedule = node_js_schedule_default;
|
|
@@ -9,5 +9,4 @@ export declare const supportsRanges = false;
|
|
|
9
9
|
declare function getSatisfyingVersion(versions: string[], range: string): string | null;
|
|
10
10
|
export declare function isVersion(input: string): boolean;
|
|
11
11
|
export declare const api: VersioningApi;
|
|
12
|
-
export { api as default, getSatisfyingVersion, index_d_exports, isVersion as isValid };
|
|
13
|
-
//# sourceMappingURL=index.d.ts.map
|
|
12
|
+
export { api as default, getSatisfyingVersion, index_d_exports, isVersion as isValid };
|
package/dist/proxy.d.ts
CHANGED
package/dist/renovate.d.ts
CHANGED
package/dist/types/base.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export type BranchStatus = 'green' | 'yellow' | 'red';
|
|
2
|
-
//# sourceMappingURL=branch-status.d.ts.map
|
|
1
|
+
export type BranchStatus = 'green' | 'yellow' | 'red';
|
package/dist/types/git.d.ts
CHANGED
|
@@ -57,5 +57,4 @@ export interface InternalHostGrant {
|
|
|
57
57
|
export type CombinedHostRule = Omit<HostRule, 'encrypted' | 'hostType' | 'matchHost' | 'resolvedHost' | 'readOnly' | 'allowInternal'> & {
|
|
58
58
|
/** computed by `find()` - see {@link InternalHostGrant} */
|
|
59
59
|
internalHostGrant?: InternalHostGrant;
|
|
60
|
-
};
|
|
61
|
-
//# sourceMappingURL=host-rules.d.ts.map
|
|
60
|
+
};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -31,5 +31,4 @@ export type MaybePromise<T> = T | Promise<T>;
|
|
|
31
31
|
* type IsBroken = Extends<AutoMergeType, 'pr' | 'branch' | 'oh-no' >; // This will give a typescript error
|
|
32
32
|
*/
|
|
33
33
|
export type Extends<T, U extends T> = U;
|
|
34
|
-
export type { BranchCache, BranchResult, BranchStatus, BranchUpgradeCache, BunyanRecord, CombinedHostRule, CommitMessageJSON, HostRule, InternalHostGrant, MergeStrategy, ModuleApi, PrBlockedBy, PrState, ProcessResult, ProcessStatus, RangeStrategy, RenovateSplit, RepositoryResult, SkipReason, StageName, UpdateType, ValidationMessage };
|
|
35
|
-
//# sourceMappingURL=index.d.ts.map
|
|
34
|
+
export type { BranchCache, BranchResult, BranchStatus, BranchUpgradeCache, BunyanRecord, CombinedHostRule, CommitMessageJSON, HostRule, InternalHostGrant, MergeStrategy, ModuleApi, PrBlockedBy, PrState, ProcessResult, ProcessStatus, RangeStrategy, RenovateSplit, RepositoryResult, SkipReason, StageName, UpdateType, ValidationMessage };
|
package/dist/types/pr-state.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export type PrState = 'merged' | 'open' | 'closed' | 'all' | '!open';
|
|
2
|
-
//# sourceMappingURL=pr-state.d.ts.map
|
|
1
|
+
export type PrState = 'merged' | 'open' | 'closed' | 'all' | '!open';
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export type RangeStrategy = 'auto' | 'bump' | 'future' | 'pin' | 'replace' | 'update-lockfile' | 'in-range-only' | 'widen';
|
|
2
|
-
//# sourceMappingURL=versioning.d.ts.map
|
|
1
|
+
export type RangeStrategy = 'auto' | 'bump' | 'future' | 'pin' | 'replace' | 'update-lockfile' | 'in-range-only' | 'widen';
|
|
@@ -6,5 +6,4 @@ export declare function init(config: AllConfig): Promise<void>;
|
|
|
6
6
|
export declare function get<T = unknown>(namespace: PackageCacheNamespace, key: string): Promise<T | undefined>;
|
|
7
7
|
export declare function set(namespace: PackageCacheNamespace, key: string, value: unknown, hardTtlMinutes: number): Promise<void>;
|
|
8
8
|
export declare function destroy(): Promise<void>;
|
|
9
|
-
export {};
|
|
10
|
-
//# sourceMappingURL=backend.d.ts.map
|
|
9
|
+
export {};
|
|
@@ -13,5 +13,4 @@ export declare function set(namespace: PackageCacheNamespace, key: string, value
|
|
|
13
13
|
*/
|
|
14
14
|
export declare function setWithRawTtl(namespace: PackageCacheNamespace, key: string, value: unknown, hardTtlMinutes: number): Promise<void>;
|
|
15
15
|
export declare function init(config: AllConfig): Promise<void>;
|
|
16
|
-
export declare function cleanup(_config: AllConfig): Promise<void>;
|
|
17
|
-
//# sourceMappingURL=index.d.ts.map
|
|
16
|
+
export declare function cleanup(_config: AllConfig): Promise<void>;
|
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
export declare const packageCacheNamespaces: readonly ['_test-namespace', 'changelog-bitbucket-notes@v2', 'changelog-bitbucket-release', 'changelog-bitbucket-server-notes@v2', 'changelog-bitbucket-server-release', 'changelog-forgejo-notes@v2', 'changelog-forgejo-release', 'changelog-gitea-notes@v2', 'changelog-gitea-release', 'changelog-github-notes@v2', 'changelog-github-release', 'changelog-gitlab-notes@v2', 'changelog-gitlab-release', 'datasource-apk', 'datasource-artifactory', 'datasource-aws-machine-image', 'datasource-aws-rds', 'datasource-aws-eks-addon', 'datasource-azure-bicep-resource', 'datasource-azure-pipelines-tasks', 'datasource-azure-tags', 'datasource-bazel', 'datasource-bitbucket-tags', 'datasource-bitbucket-server-tags', 'datasource-bitrise', 'datasource-buildpacks-registry', 'datasource-cdnjs', 'datasource-conan', 'datasource-conda', 'datasource-cpan', 'datasource-crate-metadata', 'datasource-crate-registry-api', 'datasource-crate', 'datasource-deb', 'datasource-deno', 'datasource-docker-architecture', 'datasource-docker-hub-cache', 'datasource-docker-digest', 'datasource-docker-hub-tags', 'datasource-docker-imageconfig', 'datasource-docker-labels', 'datasource-docker-releases-v2', 'datasource-docker-tags', 'datasource-dotnet-version', 'datasource-elm-package', 'datasource-endoflife-date', 'datasource-galaxy-collection', 'datasource-galaxy', 'datasource-git-refs', 'datasource-git-tags', 'datasource-git', 'datasource-forgejo-releases', 'datasource-forgejo-tags', 'datasource-gitea-releases', 'datasource-gitea-tags', 'datasource-github-digest', 'datasource-github-release-attachments', 'datasource-gitlab-packages', 'datasource-gitlab-releases', 'datasource-gitlab-tags', 'datasource-glasskube-packages', 'datasource-go-direct', 'datasource-go-proxy-timestamps', 'datasource-go-proxy', 'datasource-go', 'datasource-golang-version', 'datasource-gradle-version', 'datasource-helm', 'datasource-hermit', 'datasource-hex', 'datasource-hexpm-bob', 'datasource-java-version', 'datasource-jenkins-plugins', 'datasource-jsr', 'datasource-julia-general-metadata', 'datasource-maven:cache-provider', 'datasource-maven:metadata-not-found', 'datasource-maven:pom-cache-provider', 'datasource-maven:postprocess-reject', 'datasource-nextcloud', 'datasource-node-version', 'datasource-npm:cache-provider', 'datasource-nuget-v3', 'datasource-orb', 'datasource-packagist', 'datasource-pod', 'datasource-python-version', 'datasource-repology', 'datasource-rpm', 'datasource-ruby-version', 'datasource-rubygems', 'datasource-rust-version', 'datasource-sbt-package', 'datasource-terraform-module', 'datasource-terraform-provider', 'datasource-terraform', 'datasource-typst:cache-provider', 'datasource-typst:registry-releases', 'datasource-unity3d', 'datasource-unity3d-packages', 'github-branches-datasource-v1', 'github-releases-datasource-v2', 'github-tags-datasource-v2', 'merge-confidence', 'preset', 'terraform-provider-hash', 'url-sha256'];
|
|
2
|
-
export type PackageCacheNamespace = (typeof packageCacheNamespaces)[number] | `datasource-releases-${string}`;
|
|
3
|
-
//# sourceMappingURL=namespaces.d.ts.map
|
|
2
|
+
export type PackageCacheNamespace = (typeof packageCacheNamespaces)[number] | `datasource-releases-${string}`;
|
package/dist/util/compress.d.ts
CHANGED
|
@@ -3,5 +3,4 @@ export declare function compressToBuffer(input: string, quality?: number): Promi
|
|
|
3
3
|
export declare function decompressFromBuffer(input: Buffer): Promise<string>;
|
|
4
4
|
export declare function compressToBase64(input: string): Promise<string>;
|
|
5
5
|
export declare function decompressFromBase64(input: string): Promise<string>;
|
|
6
|
-
export declare function createDecompressStream(input: Readable): Promise<Readable>;
|
|
7
|
-
//# sourceMappingURL=compress.d.ts.map
|
|
6
|
+
export declare function createDecompressStream(input: Readable): Promise<Readable>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import { CommandWithOptions, ExecResult, RawExecOptions } from "./types.js";
|
|
2
2
|
export declare function exec(commandArgument: string | CommandWithOptions, opts: RawExecOptions): Promise<ExecResult>;
|
|
3
|
-
export declare function rawExec(cmd: string | CommandWithOptions, opts: RawExecOptions): Promise<ExecResult>;
|
|
4
|
-
//# sourceMappingURL=common.d.ts.map
|
|
3
|
+
export declare function rawExec(cmd: string | CommandWithOptions, opts: RawExecOptions): Promise<ExecResult>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import "../exec/utils.js";
|
|
2
2
|
import { GitNoVerifyOption } from "./types.js";
|
|
3
|
-
import
|
|
4
|
-
export declare function setNoVerify(value: GitNoVerifyOption[]): void;
|
|
5
|
-
//# sourceMappingURL=config.d.ts.map
|
|
3
|
+
import "simple-git";
|
|
4
|
+
export declare function setNoVerify(value: GitNoVerifyOption[]): void;
|
package/dist/util/git/index.d.ts
CHANGED
|
@@ -162,5 +162,4 @@ export declare function diffCommitTree(parentCommitSha: LongCommitSha, commitSha
|
|
|
162
162
|
*/
|
|
163
163
|
export declare function syncForkWithUpstream(branchName: string): Promise<void>;
|
|
164
164
|
export declare function getRemotes(): Promise<string[]>;
|
|
165
|
-
export { setNoVerify, setPrivateKey };
|
|
166
|
-
//# sourceMappingURL=index.d.ts.map
|
|
165
|
+
export { setNoVerify, setPrivateKey };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare function setPrivateKey(key: string | undefined, passphrase: string | undefined): void;
|
|
2
|
-
//# sourceMappingURL=private-key.d.ts.map
|
|
1
|
+
export declare function setPrivateKey(key: string | undefined, passphrase: string | undefined): void;
|
package/dist/util/git/types.d.ts
CHANGED
|
@@ -97,5 +97,4 @@ export declare function findAll({ hostType }: {
|
|
|
97
97
|
* @returns a deep copy of all host rules other than those registered by {@link detachUrlCredentials}
|
|
98
98
|
*/
|
|
99
99
|
export declare function getAll(): HostRule[];
|
|
100
|
-
export declare function clear(): void;
|
|
101
|
-
//# sourceMappingURL=host-rules.d.ts.map
|
|
100
|
+
export declare function clear(): void;
|
|
@@ -3,5 +3,4 @@ export interface HttpCacheProvider {
|
|
|
3
3
|
setCacheHeaders<T extends Pick<GotOptions, 'headers'>>(method: string, url: string, opts: T): Promise<void>;
|
|
4
4
|
bypassServer<T>(method: string, url: string, ignoreSoftTtl?: boolean): Promise<HttpResponse<T> | null>;
|
|
5
5
|
wrapServerResponse<T>(method: string, url: string, resp: HttpResponse<T>): Promise<HttpResponse<T>>;
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=types.d.ts.map
|
|
6
|
+
}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare class EmptyResultError extends Error {}
|
|
2
|
-
//# sourceMappingURL=errors.d.ts.map
|
|
1
|
+
export declare class EmptyResultError extends Error {}
|
|
@@ -12,5 +12,4 @@ export declare class GitlabHttp extends HttpBase<GitlabHttpOptions> {
|
|
|
12
12
|
protected requestJsonUnsafe<T = unknown>(method: HttpMethod, options: InternalJsonUnsafeOptions<GitlabHttpOptions>): Promise<HttpResponse<T>>;
|
|
13
13
|
protected handleError(url: string | URL, _httpOptions: HttpOptions, err: Error): never;
|
|
14
14
|
protected calculateRetryDelay(retryObject: RetryObject): number;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=gitlab.d.ts.map
|
|
15
|
+
}
|
package/dist/util/http/http.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AsyncResult } from "../result.js";
|
|
2
2
|
import { HttpMethod, HttpOptions, HttpResponse, SafeJsonError } from "./types.js";
|
|
3
|
-
import { Options,
|
|
3
|
+
import { Options, RetryObject } from "got";
|
|
4
4
|
import { ZodType, z } from "zod/v4";
|
|
5
5
|
import "type-fest";
|
|
6
6
|
export interface InternalJsonUnsafeOptions<Opts extends HttpOptions = HttpOptions> {
|
|
@@ -101,5 +101,4 @@ export declare abstract class HttpBase<JSONOpts extends HttpOptions = HttpOption
|
|
|
101
101
|
stream(url: string, options?: HttpOptions): NodeJS.ReadableStream;
|
|
102
102
|
getToml<Schema extends ZodType<any, any, any>>(url: string, schema?: Schema): Promise<HttpResponse<z.infer<Schema>>>;
|
|
103
103
|
getToml<Schema extends ZodType<any, any, any>>(url: string, options: JSONOpts, schema: Schema): Promise<HttpResponse<z.infer<Schema>>>;
|
|
104
|
-
}
|
|
105
|
-
//# sourceMappingURL=http.d.ts.map
|
|
104
|
+
}
|
|
@@ -92,5 +92,4 @@ export interface ConcurrencyLimitRule {
|
|
|
92
92
|
matchHost: string;
|
|
93
93
|
concurrency: number;
|
|
94
94
|
}
|
|
95
|
-
export type SafeJsonError = RequestError | ZodError | EmptyResultError;
|
|
96
|
-
//# sourceMappingURL=types.d.ts.map
|
|
95
|
+
export type SafeJsonError = RequestError | ZodError | EmptyResultError;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare const MERGE_CONFIDENCE: readonly ['low', 'neutral', 'high', 'very high'];
|
|
2
|
-
//# sourceMappingURL=common.d.ts.map
|
|
1
|
+
export declare const MERGE_CONFIDENCE: readonly ['low', 'neutral', 'high', 'very high'];
|
package/dist/util/result.d.ts
CHANGED
|
@@ -293,5 +293,4 @@ export declare class AsyncResult<T extends Val, E extends Val> implements Promis
|
|
|
293
293
|
onValue(fn: (value: T) => void): AsyncResult<T, E>;
|
|
294
294
|
onError(fn: (err: E) => void): AsyncResult<T, E>;
|
|
295
295
|
}
|
|
296
|
-
export {};
|
|
297
|
-
//# sourceMappingURL=result.d.ts.map
|
|
296
|
+
export {};
|