renovate 40.22.0 → 40.23.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.
Files changed (27) hide show
  1. package/dist/config/options/index.js +6 -0
  2. package/dist/config/options/index.js.map +1 -1
  3. package/dist/logger/once.js +2 -0
  4. package/dist/logger/once.js.map +1 -1
  5. package/dist/modules/datasource/types.d.ts +2 -1
  6. package/dist/modules/datasource/types.js.map +1 -1
  7. package/dist/modules/manager/fingerprint.generated.js +1 -1
  8. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  9. package/dist/modules/manager/helmfile/utils.js +1 -1
  10. package/dist/modules/manager/helmfile/utils.js.map +1 -1
  11. package/dist/modules/manager/helmv3/artifacts.js +1 -1
  12. package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
  13. package/dist/modules/manager/helmv3/common.d.ts +1 -1
  14. package/dist/modules/manager/helmv3/common.js +8 -2
  15. package/dist/modules/manager/helmv3/common.js.map +1 -1
  16. package/dist/workers/repository/process/lookup/abandonment.d.ts +3 -0
  17. package/dist/workers/repository/process/lookup/abandonment.js +45 -0
  18. package/dist/workers/repository/process/lookup/abandonment.js.map +1 -0
  19. package/dist/workers/repository/process/lookup/index.js +2 -0
  20. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  21. package/dist/workers/repository/process/lookup/timestamps.d.ts +4 -4
  22. package/dist/workers/repository/process/lookup/timestamps.js +10 -10
  23. package/dist/workers/repository/process/lookup/timestamps.js.map +1 -1
  24. package/dist/workers/repository/process/lookup/types.d.ts +1 -0
  25. package/dist/workers/repository/process/lookup/types.js.map +1 -1
  26. package/package.json +1 -1
  27. package/renovate-schema.json +8 -0
@@ -13,6 +13,8 @@ exports.reset = reset;
13
13
  */
14
14
  function getCallSite(omitFn) {
15
15
  const stackTraceLimitOrig = Error.stackTraceLimit;
16
+ // We don't use `Error.captureStackTrace` directly, we simply restore it later.
17
+ // eslint-disable-next-line @typescript-eslint/unbound-method
16
18
  const prepareStackTraceOrig = Error.prepareStackTrace;
17
19
  let result = null;
18
20
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"once.js","sourceRoot":"","sources":["../../lib/logger/once.ts"],"names":[],"mappings":";;AAyCA,oBAYC;AAMD,sBAEC;AA3DD,wCAAwC;AAExC;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,MAAc;IACjC,MAAM,mBAAmB,GAAG,KAAK,CAAC,eAAe,CAAC;IAClD,MAAM,qBAAqB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAEtD,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,GAAwB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAE/C,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC;QAC1B,KAAK,CAAC,iBAAiB,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;QACjD,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAErC,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;QAC7B,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC/B,CAAC;QACD,2CAA2C;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ;IACV,CAAC;YAAS,CAAC;QACT,KAAK,CAAC,eAAe,GAAG,mBAAmB,CAAC;QAC5C,KAAK,CAAC,iBAAiB,GAAG,qBAAqB,CAAC;IAClD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;AAE/B,SAAgB,IAAI,CAAC,QAAoB,EAAE,SAAiB,IAAI;IAC9D,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAEhC,2CAA2C;IAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO;IACT,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,QAAQ,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,KAAK;IACnB,IAAI,CAAC,KAAK,EAAE,CAAC;AACf,CAAC","sourcesContent":["type OmitFn = (...args: any[]) => any;\n\n// TODO: use `callsite` package instead?\n\n/**\n * Get the single frame of this function's callers stack.\n *\n * @param omitFn Starting from this function, stack frames will be ignored.\n * @returns The string containing file name, line number and column name.\n *\n * @example getCallSite() // => 'Object.<anonymous> (/path/to/file.js:10:15)'\n */\nfunction getCallSite(omitFn: OmitFn): string | null {\n const stackTraceLimitOrig = Error.stackTraceLimit;\n const prepareStackTraceOrig = Error.prepareStackTrace;\n\n let result: string | null = null;\n try {\n const res: { stack: string[] } = { stack: [] };\n\n Error.stackTraceLimit = 1;\n Error.prepareStackTrace = (_err, stack) => stack;\n Error.captureStackTrace(res, omitFn);\n\n const [callsite] = res.stack;\n if (callsite) {\n result = callsite.toString();\n }\n /* v8 ignore next 2 -- should not happen */\n } catch {\n // no-op\n } finally {\n Error.stackTraceLimit = stackTraceLimitOrig;\n Error.prepareStackTrace = prepareStackTraceOrig;\n }\n\n return result;\n}\n\nconst keys = new Set<string>();\n\nexport function once(callback: () => void, omitFn: OmitFn = once): void {\n const key = getCallSite(omitFn);\n\n /* v8 ignore next 3 -- should not happen */\n if (!key) {\n return;\n }\n\n if (!keys.has(key)) {\n keys.add(key);\n callback();\n }\n}\n\n/**\n * Before processing each repository,\n * all keys are supposed to be reset.\n */\nexport function reset(): void {\n keys.clear();\n}\n"]}
1
+ {"version":3,"file":"once.js","sourceRoot":"","sources":["../../lib/logger/once.ts"],"names":[],"mappings":";;AA2CA,oBAYC;AAMD,sBAEC;AA7DD,wCAAwC;AAExC;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,MAAc;IACjC,MAAM,mBAAmB,GAAG,KAAK,CAAC,eAAe,CAAC;IAClD,+EAA+E;IAC/E,6DAA6D;IAC7D,MAAM,qBAAqB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAEtD,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,GAAwB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAE/C,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC;QAC1B,KAAK,CAAC,iBAAiB,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;QACjD,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAErC,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;QAC7B,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC/B,CAAC;QACD,2CAA2C;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ;IACV,CAAC;YAAS,CAAC;QACT,KAAK,CAAC,eAAe,GAAG,mBAAmB,CAAC;QAC5C,KAAK,CAAC,iBAAiB,GAAG,qBAAqB,CAAC;IAClD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;AAE/B,SAAgB,IAAI,CAAC,QAAoB,EAAE,SAAiB,IAAI;IAC9D,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAEhC,2CAA2C;IAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO;IACT,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,QAAQ,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,KAAK;IACnB,IAAI,CAAC,KAAK,EAAE,CAAC;AACf,CAAC","sourcesContent":["type OmitFn = (...args: any[]) => any;\n\n// TODO: use `callsite` package instead?\n\n/**\n * Get the single frame of this function's callers stack.\n *\n * @param omitFn Starting from this function, stack frames will be ignored.\n * @returns The string containing file name, line number and column name.\n *\n * @example getCallSite() // => 'Object.<anonymous> (/path/to/file.js:10:15)'\n */\nfunction getCallSite(omitFn: OmitFn): string | null {\n const stackTraceLimitOrig = Error.stackTraceLimit;\n // We don't use `Error.captureStackTrace` directly, we simply restore it later.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const prepareStackTraceOrig = Error.prepareStackTrace;\n\n let result: string | null = null;\n try {\n const res: { stack: string[] } = { stack: [] };\n\n Error.stackTraceLimit = 1;\n Error.prepareStackTrace = (_err, stack) => stack;\n Error.captureStackTrace(res, omitFn);\n\n const [callsite] = res.stack;\n if (callsite) {\n result = callsite.toString();\n }\n /* v8 ignore next 2 -- should not happen */\n } catch {\n // no-op\n } finally {\n Error.stackTraceLimit = stackTraceLimitOrig;\n Error.prepareStackTrace = prepareStackTraceOrig;\n }\n\n return result;\n}\n\nconst keys = new Set<string>();\n\nexport function once(callback: () => void, omitFn: OmitFn = once): void {\n const key = getCallSite(omitFn);\n\n /* v8 ignore next 3 -- should not happen */\n if (!key) {\n return;\n }\n\n if (!keys.has(key)) {\n keys.add(key);\n callback();\n }\n}\n\n/**\n * Before processing each repository,\n * all keys are supposed to be reset.\n */\nexport function reset(): void {\n keys.clear();\n}\n"]}
@@ -83,7 +83,8 @@ export interface ReleaseResult {
83
83
  replacementVersion?: string;
84
84
  lookupName?: string;
85
85
  packageScope?: string;
86
- bumpedAt?: Timestamp;
86
+ mostRecentTimestamp?: Timestamp;
87
+ isAbandoned?: boolean;
87
88
  }
88
89
  export interface PostprocessReleaseConfig {
89
90
  packageName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/modules/datasource/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n ConstraintsFilter,\n CustomDatasourceConfig,\n} from '../../config/types';\nimport type { ModuleApi } from '../../types';\nimport type { Timestamp } from '../../util/timestamp';\n\nexport interface GetDigestInputConfig {\n datasource: string;\n packageName: string;\n defaultRegistryUrls?: string[];\n registryUrls?: string[] | null;\n registryUrl?: string;\n lookupName?: string;\n additionalRegistryUrls?: string[];\n currentValue?: string;\n currentDigest?: string;\n replacementName?: string;\n}\n\nexport interface DigestConfig {\n packageName: string;\n lookupName?: string;\n registryUrl?: string;\n currentValue?: string;\n currentDigest?: string;\n}\n\nexport interface GetReleasesConfig {\n customDatasources?: Record<string, CustomDatasourceConfig>;\n datasource?: string;\n packageName: string;\n registryUrl?: string;\n currentValue?: string;\n}\n\nexport interface GetPkgReleasesConfig {\n customDatasources?: Record<string, CustomDatasourceConfig>;\n npmrc?: string;\n defaultRegistryUrls?: string[];\n registryUrls?: string[] | null;\n additionalRegistryUrls?: string[];\n datasource: string;\n packageName: string;\n currentValue?: string;\n versioning?: string;\n extractVersion?: string;\n versionCompatibility?: string;\n currentCompatibility?: string;\n constraints?: Record<string, string>;\n replacementName?: string;\n replacementVersion?: string;\n constraintsFiltering?: ConstraintsFilter;\n registryStrategy?: RegistryStrategy;\n}\n\nexport interface Release {\n changelogUrl?: string;\n checksumUrl?: string;\n downloadUrl?: string;\n gitRef?: string;\n isDeprecated?: boolean;\n isStable?: boolean;\n releaseTimestamp?: Timestamp | null;\n version: string;\n /** The original value to which `extractVersion` was applied */\n versionOrig?: string;\n newDigest?: string | undefined;\n constraints?: Record<string, string[]>;\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n registryUrl?: string;\n sourceUrl?: string | undefined;\n sourceDirectory?: string;\n currentAge?: string;\n isLatest?: boolean;\n}\n\nexport interface ReleaseResult {\n deprecationMessage?: string;\n isPrivate?: boolean;\n releases: Release[];\n tags?: Record<string, string> | undefined;\n // URL metadata\n changelogUrl?: string;\n dependencyUrl?: string;\n homepage?: string | undefined;\n gitRef?: string;\n sourceUrl?: string | null;\n sourceDirectory?: string;\n registryUrl?: string;\n replacementName?: string;\n replacementVersion?: string;\n lookupName?: string;\n packageScope?: string;\n bumpedAt?: Timestamp;\n}\n\nexport interface PostprocessReleaseConfig {\n packageName: string;\n registryUrl: string | null;\n}\n\nexport type PostprocessReleaseResult = Release | 'reject';\n\nexport type RegistryStrategy = 'first' | 'hunt' | 'merge';\nexport type SourceUrlSupport = 'package' | 'release' | 'none';\nexport interface DatasourceApi extends ModuleApi {\n id: string;\n getDigest?(config: DigestConfig, newValue?: string): Promise<string | null>;\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null>;\n defaultRegistryUrls?: string[] | (() => string[]);\n defaultVersioning?: string | undefined;\n defaultConfig?: Record<string, unknown> | undefined;\n\n /**\n * Strategy to use when multiple registryUrls are available to the datasource.\n * - `first`: only the first registryUrl will be tried and others ignored\n * - `hunt`: registryUrls will be tried in order until one returns a result\n * - `merge`: all registryUrls will be tried and the results merged if more than one returns a result\n */\n registryStrategy?: RegistryStrategy | undefined;\n\n /**\n * Whether custom registryUrls are allowed.\n */\n customRegistrySupport: boolean;\n\n /**\n * Whether release timestamp can be returned.\n */\n releaseTimestampSupport: boolean;\n /**\n * Notes on how release timestamp is determined.\n */\n releaseTimestampNote?: string;\n\n /**\n * Whether sourceURL can be returned.\n */\n sourceUrlSupport: SourceUrlSupport;\n /**\n * Notes on how sourceURL is determined.\n */\n sourceUrlNote?: string;\n\n /**\n * Whether to perform caching in the datasource index/wrapper or not.\n * true: datasoure index wrapper should cache all results (based on registryUrl/packageName)\n * false: caching is not performed, or performed within the datasource implementation\n */\n caching?: boolean | undefined;\n\n /**\n * When the candidate for update is formed, this method could be called\n * to fetch additional information such as `releaseTimestamp`.\n *\n * Also, the release could be checked (and potentially rejected)\n * via some datasource-specific external call.\n *\n * In case of reject, the next candidate release is selected,\n * and `postprocessRelease` is called again.\n *\n * Rejection must happen only when the release will lead to downstream error,\n * e.g. the release turned out to be yanked or doesn't exist for some reason.\n *\n * In other cases, the original `Release` parameter should be returned.\n */\n postprocessRelease(\n config: PostprocessReleaseConfig,\n release: Release,\n ): Promise<PostprocessReleaseResult>;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/modules/datasource/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n ConstraintsFilter,\n CustomDatasourceConfig,\n} from '../../config/types';\nimport type { ModuleApi } from '../../types';\nimport type { Timestamp } from '../../util/timestamp';\n\nexport interface GetDigestInputConfig {\n datasource: string;\n packageName: string;\n defaultRegistryUrls?: string[];\n registryUrls?: string[] | null;\n registryUrl?: string;\n lookupName?: string;\n additionalRegistryUrls?: string[];\n currentValue?: string;\n currentDigest?: string;\n replacementName?: string;\n}\n\nexport interface DigestConfig {\n packageName: string;\n lookupName?: string;\n registryUrl?: string;\n currentValue?: string;\n currentDigest?: string;\n}\n\nexport interface GetReleasesConfig {\n customDatasources?: Record<string, CustomDatasourceConfig>;\n datasource?: string;\n packageName: string;\n registryUrl?: string;\n currentValue?: string;\n}\n\nexport interface GetPkgReleasesConfig {\n customDatasources?: Record<string, CustomDatasourceConfig>;\n npmrc?: string;\n defaultRegistryUrls?: string[];\n registryUrls?: string[] | null;\n additionalRegistryUrls?: string[];\n datasource: string;\n packageName: string;\n currentValue?: string;\n versioning?: string;\n extractVersion?: string;\n versionCompatibility?: string;\n currentCompatibility?: string;\n constraints?: Record<string, string>;\n replacementName?: string;\n replacementVersion?: string;\n constraintsFiltering?: ConstraintsFilter;\n registryStrategy?: RegistryStrategy;\n}\n\nexport interface Release {\n changelogUrl?: string;\n checksumUrl?: string;\n downloadUrl?: string;\n gitRef?: string;\n isDeprecated?: boolean;\n isStable?: boolean;\n releaseTimestamp?: Timestamp | null;\n version: string;\n /** The original value to which `extractVersion` was applied */\n versionOrig?: string;\n newDigest?: string | undefined;\n constraints?: Record<string, string[]>;\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n registryUrl?: string;\n sourceUrl?: string | undefined;\n sourceDirectory?: string;\n currentAge?: string;\n isLatest?: boolean;\n}\n\nexport interface ReleaseResult {\n deprecationMessage?: string;\n isPrivate?: boolean;\n releases: Release[];\n tags?: Record<string, string> | undefined;\n // URL metadata\n changelogUrl?: string;\n dependencyUrl?: string;\n homepage?: string | undefined;\n gitRef?: string;\n sourceUrl?: string | null;\n sourceDirectory?: string;\n registryUrl?: string;\n replacementName?: string;\n replacementVersion?: string;\n lookupName?: string;\n packageScope?: string;\n mostRecentTimestamp?: Timestamp;\n isAbandoned?: boolean;\n}\n\nexport interface PostprocessReleaseConfig {\n packageName: string;\n registryUrl: string | null;\n}\n\nexport type PostprocessReleaseResult = Release | 'reject';\n\nexport type RegistryStrategy = 'first' | 'hunt' | 'merge';\nexport type SourceUrlSupport = 'package' | 'release' | 'none';\nexport interface DatasourceApi extends ModuleApi {\n id: string;\n getDigest?(config: DigestConfig, newValue?: string): Promise<string | null>;\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null>;\n defaultRegistryUrls?: string[] | (() => string[]);\n defaultVersioning?: string | undefined;\n defaultConfig?: Record<string, unknown> | undefined;\n\n /**\n * Strategy to use when multiple registryUrls are available to the datasource.\n * - `first`: only the first registryUrl will be tried and others ignored\n * - `hunt`: registryUrls will be tried in order until one returns a result\n * - `merge`: all registryUrls will be tried and the results merged if more than one returns a result\n */\n registryStrategy?: RegistryStrategy | undefined;\n\n /**\n * Whether custom registryUrls are allowed.\n */\n customRegistrySupport: boolean;\n\n /**\n * Whether release timestamp can be returned.\n */\n releaseTimestampSupport: boolean;\n /**\n * Notes on how release timestamp is determined.\n */\n releaseTimestampNote?: string;\n\n /**\n * Whether sourceURL can be returned.\n */\n sourceUrlSupport: SourceUrlSupport;\n /**\n * Notes on how sourceURL is determined.\n */\n sourceUrlNote?: string;\n\n /**\n * Whether to perform caching in the datasource index/wrapper or not.\n * true: datasoure index wrapper should cache all results (based on registryUrl/packageName)\n * false: caching is not performed, or performed within the datasource implementation\n */\n caching?: boolean | undefined;\n\n /**\n * When the candidate for update is formed, this method could be called\n * to fetch additional information such as `releaseTimestamp`.\n *\n * Also, the release could be checked (and potentially rejected)\n * via some datasource-specific external call.\n *\n * In case of reject, the next candidate release is selected,\n * and `postprocessRelease` is called again.\n *\n * Rejection must happen only when the release will lead to downstream error,\n * e.g. the release turned out to be yanked or doesn't exist for some reason.\n *\n * In other cases, the original `Release` parameter should be returned.\n */\n postprocessRelease(\n config: PostprocessReleaseConfig,\n release: Release,\n ): Promise<PostprocessReleaseResult>;\n}\n"]}
@@ -54,7 +54,7 @@ exports.hashMap.set('helm-requirements', '8f643d415ab0cfbef05bce4dce9812eef47bdd
54
54
  exports.hashMap.set('helm-values', 'fbd4a0b4bdda8a71dc38ac8916287f73e2b7de5ef122096a5b5d525c1a3306cd');
55
55
  exports.hashMap.set('helmfile', 'ee6a6cfb5680f8f896a2f7ac3d68770b300cfd0a4b75a7ca7edb4e1c1f51b7a2');
56
56
  exports.hashMap.set('helmsman', '734fa89740fd5140ca3e39204872aba3451c05cd17f0b5e2b635934ed7b1710b');
57
- exports.hashMap.set('helmv3', '1d1683f9a792de9ae9ffd9157d9ccd394c012b4d906299b33f21c2bfadbdf30b');
57
+ exports.hashMap.set('helmv3', 'e8993204cbfd858df10f8bb3e0de505a2fb26560b5585658042a30b4ea52c8c4');
58
58
  exports.hashMap.set('hermit', '5d6fe831c5abf4e2439da1cf24648ccb5a099b66fc965af68134a67418202fa1');
59
59
  exports.hashMap.set('homebrew', '4b05428b846b8a7c260a41500cc14938cca8e7d5df0e2510050f95718f6f823f');
60
60
  exports.hashMap.set('html', '226a9084e10ebf754906386159db08667394f5432105249bdb30d9c60af9fb56');
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprint.generated.js","sourceRoot":"","sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"names":[],"mappings":"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","sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','4c234d79f768392545924fa9b139f8d177f15b6aa46776cf063860a1d36e48c7');\nhashMap.set('ansible-galaxy','a211e40f5c8613986ac16bc8d5389ea23d145cd643091d1b951a7f65926e99ff');\nhashMap.set('argocd','37faccd3854254a2009d963f781e77cf6e5aca3719ffd7cae1fea3d02c153eed');\nhashMap.set('asdf','d4b167265b656f5eb744084dd094c67e699940ddaacb53de30cd5c67e54b6b1d');\nhashMap.set('azure-pipelines','0b741b2629f6d94589524ce9b3886765e5c5648c9b6d707bb0b5fede276f9c09');\nhashMap.set('batect','523e8d7a309b4814a02819371313b2dac3764eab64cabfaf1d58b6e89de4ce43');\nhashMap.set('batect-wrapper','90941650f810adb3d7abe476da7221ff3434aa9d09ffc3d310e35108f360f364');\nhashMap.set('bazel','699577431cada5c8621a238b8f80f0983ee0ed7eac92f93467b5bf8f007e9cda');\nhashMap.set('bazel-module','5b1238473990e1ff5c100d610f871f43bd404a8141b51a9d486faf67a3814538');\nhashMap.set('bazelisk','6fbef61d534724ff259ea6e4fc1cd0a3d5a46d740c375128fa59b225daddd39f');\nhashMap.set('bicep','fbbd74998411012cfba829526701109d1fc184ade0cb11a28e4ca2956174b0f1');\nhashMap.set('bitbucket-pipelines','98c0d715a7eb4e41b8231091b83385f325966373f37dc7d6bc10b1febb6f605e');\nhashMap.set('bitrise','d18d2dcd356e19c4cd94912511a88636198c23b64e54f31da273be11044970cf');\nhashMap.set('buildkite','ac713ce38da057ff3ceb08d092291356dfc74f5b33b75f010bb9db1a211439c0');\nhashMap.set('buildpacks','cc8bbe937416a012df36a5c7ab01ae3cdedbed03615549bbe9f0f27fa40a150b');\nhashMap.set('bun','2b157003f37572d579d6ab95f1c45fad0afe58d2239dad2fbfdc5acf81131a4b');\nhashMap.set('bun-version','49194d7fcb6b7bdd7e7a1264f71532bb2be8142d48478bf74716f7a9d4b306b9');\nhashMap.set('bundler','4cd7892c5c7ab98d254f24a0e62c0f637c8958aebb451158a81656d6be8d6662');\nhashMap.set('cake','a04160b352550cb470acb62f9a532361842c12f2ffbcd473bffca3de024522d9');\nhashMap.set('cargo','62650a1dfa15569c1dbd798a81886e3e78165a4c22f333a70ea93e4a385c8837');\nhashMap.set('cdnurl','70281459e771df007787fc25dba16e4d5109865f97209dcf4f572ddd287d538a');\nhashMap.set('circleci','c7c7a1b71385f0ea7cf1e9fc24c37a1d5dabf13d6952e1e3b2179861b55f4e44');\nhashMap.set('cloudbuild','e4f926bfb907220e97dce98335837c52b4e0fe66d813593a7e572736acfc53f7');\nhashMap.set('cocoapods','c2695071e5aaec8178e29615b6dc1cdf9cc68c5d73d5d88b54fed41e6aaec832');\nhashMap.set('composer','738901dde9bbdafc2372f30c4daf61f37d5337eaa2501d85abd1ba19bc1d3fac');\nhashMap.set('conan','7a5d054f43548ce08a428637ad1fe62796f635cabbca5e8c9cecfd629514cfce');\nhashMap.set('copier','6fa1b4898a64ca780d933728ddc8876014c6f0dea7a2ab2f84b832e8bf4df408');\nhashMap.set('cpanfile','9b354db9666eee2485b27e44a6e61eaadc86ec2f2c6af9bb7bbc9fab54f31642');\nhashMap.set('crossplane','76261ff27b38f9850ee1a3a7e95168abefd96b4736f2cf04a7343e16827b42d8');\nhashMap.set('deps-edn','4e4b76596229f23524086c1dca79c52159ae3ec094e28d8a59bd8a1926458046');\nhashMap.set('devbox','7acedf4c5d3bef2f6c75c8b490c47f18fb03597680b46e4670ae5fe6f9873960');\nhashMap.set('devcontainer','e9982b5ff8aeac8fefb40dc363d3ab35f58af8c08b91eb45d22937a8c60447bb');\nhashMap.set('docker-compose','39189def818fcafbd25114ad4905e30695e3e9b6e280b7d24390385ac36b2512');\nhashMap.set('dockerfile','0bddc097addf84db6aa48d985567f247ca89affe1265ac09e6cd9635f61710f9');\nhashMap.set('droneci','f2a98fcece07b462baaceb28cd6904e080cb1ab0727fcd7403bea5ffd2e05239');\nhashMap.set('fleet','d091e008ae47b1b1e4ec0a573b1b6439a875a1d9cac987e8b62e27e0cb0234ad');\nhashMap.set('flux','3b87b351f98c11ca0e6cb275deb708dc9bf601a7e578f7a3a7e83fe6e15eb540');\nhashMap.set('fvm','aa154dd5ffe3caced30713a9a55967360b7a0f35edd2fc06bd6f3e73c5c87570');\nhashMap.set('git-submodules','d49d744fffb965dea648af37ea16591b4a0ecf32c4f103b04f4555b58d0f3573');\nhashMap.set('github-actions','2398b1deb9e435b4f99ed353ebe6c4254f1976be23d7140d4bfd672c2cd34098');\nhashMap.set('gitlabci','1bad97e9892ea652b6522154d521aa91b299c52e5618943f04e65f78031a13a9');\nhashMap.set('gitlabci-include','5bc01de9b40ecc8888a37690152f4a2f9cacc509b9cb5902aac024ca7a7c8e65');\nhashMap.set('glasskube','fd415356a866ad174a5b70522d662e4289a2c5d5e34c55d57542b0d8968f1645');\nhashMap.set('gleam','a770dca6b63d34d1a5d7fc63130d5e030aac999d6a3398b8460bdf6f62e9a81e');\nhashMap.set('gomod','c3dafbc3c9c21af83d32309718c208289e021dd37b2c6e1db31238b756ab9958');\nhashMap.set('gradle','1333dfc2e7dbe276006716de76b757d99385748a36bd8d434d6d160f013c9715');\nhashMap.set('gradle-wrapper','f98404470f93f59794d0fc242779559d5a9d8751f5abc40cb61a49cd0652b1b4');\nhashMap.set('haskell-cabal','a2bf118238529952d0f2f352112dfbc86fb5533ef819625161a130f39c8ca713');\nhashMap.set('helm-requirements','8f643d415ab0cfbef05bce4dce9812eef47bddb7b8b67a191e6a4230489e652f');\nhashMap.set('helm-values','fbd4a0b4bdda8a71dc38ac8916287f73e2b7de5ef122096a5b5d525c1a3306cd');\nhashMap.set('helmfile','ee6a6cfb5680f8f896a2f7ac3d68770b300cfd0a4b75a7ca7edb4e1c1f51b7a2');\nhashMap.set('helmsman','734fa89740fd5140ca3e39204872aba3451c05cd17f0b5e2b635934ed7b1710b');\nhashMap.set('helmv3','1d1683f9a792de9ae9ffd9157d9ccd394c012b4d906299b33f21c2bfadbdf30b');\nhashMap.set('hermit','5d6fe831c5abf4e2439da1cf24648ccb5a099b66fc965af68134a67418202fa1');\nhashMap.set('homebrew','4b05428b846b8a7c260a41500cc14938cca8e7d5df0e2510050f95718f6f823f');\nhashMap.set('html','226a9084e10ebf754906386159db08667394f5432105249bdb30d9c60af9fb56');\nhashMap.set('jenkins','309db014e3590e1cd6d53ede2755395c82e5cd4b880425daf52a6ab60e0d6a42');\nhashMap.set('jsonnet-bundler','83c3b9f3c6903929f6842bafc8219437dc822005505b64ed2cb6e63babc28dcb');\nhashMap.set('kotlin-script','60f8f714bb3aef5d7e3e91c67f658847ad2b01bfc044a2f0dd0798fccb5c7c30');\nhashMap.set('kubernetes','62cfa6c77593b48290f3c26a2f390c4bdfe8ab3cfb79e358b10d8aece689a999');\nhashMap.set('kustomize','b0a7444bde37c7ea3ad47062fddaf03892c7da4912b8c042e8c07dde182da46c');\nhashMap.set('leiningen','0598d2f53cfc92076d47186245a7b591d2b0df157609a7f55a37b54ab2d32a77');\nhashMap.set('maven','6b9eea76855c2d67037872fbeb803af65ff026708061691f75ce0ab2239c1ff8');\nhashMap.set('maven-wrapper','56edbbfaf0844fc497de31159719ef5064389120a1a9ca85c0c67d5328c8ac81');\nhashMap.set('meteor','a9785d85b3520ed9e763c800730f36b95747795699758ecbe1395133c5b0040e');\nhashMap.set('mint','7072e37f18bb57500018406eb8711b2615b1916f073867f30653cdd4a99dab81');\nhashMap.set('mise','a0ef42c93137907c994e4a7506ef7b5a758f9537959f6ff7a2aa6d07ccfff0da');\nhashMap.set('mix','9f506a6e42135fd299d240ac445996f414a502c01588107d7e65848b1368ee03');\nhashMap.set('nix','2630474b9fce0f0d3d8e27df4d86abd7564931e2eae3b4d54b3870bb712366f5');\nhashMap.set('nodenv','d159174d53e39af2013443cf86df88e14aac79a5a8d602180af229dcb2ddeda9');\nhashMap.set('npm','748a29baf190da9e5dd974d4bb7549d9432072d52937be6b76493baacf990db1');\nhashMap.set('nuget','e46f9986c7037ce0adf04bbee3e0cf7d844d82f52a3beda7205bc01246d155d3');\nhashMap.set('nvm','1928fd50bd6cc9f42d73262630056f2c0f8b0e061282bd02e58d116fc1788e2b');\nhashMap.set('ocb','55559051102728868b619820a6dc95753cdfbbb8aed46840e53db6733bc2ede4');\nhashMap.set('osgi','dae012cd486843eb53da4b032105e54d18f4e7537bd59c5321313950dd108a95');\nhashMap.set('pep621','88db31ca9bddf85c58e420e22bb831f4e750281b9d976271195c1e746ccb4fd5');\nhashMap.set('pep723','bf07d466ea1bc9513c8d2cb475fcca3bc9b61f2184bd9af0a7a28d45b6f57ecd');\nhashMap.set('pip-compile','ae04fc449e79eefe95aa15553b6a6bebd417f3ca3251b37121e17503c808a2ac');\nhashMap.set('pip_requirements','70bfe70544e29f3c7fdbc2261efcebcaf8836e92bd21da35c379c9f4573ff43b');\nhashMap.set('pip_setup','31b330d9666d61474326a761a3ce1479f9a189ef6838ecfee78843ff4c80af73');\nhashMap.set('pipenv','823f1652628a6ce17943fe24a187aa2faa77d21e0aa001d3f8b0f9cd93a74ba9');\nhashMap.set('pixi','e209242b0dc2e6d57bcdec8f6a6f577db249ecb5eba1afea429cb1ff023a90d8');\nhashMap.set('poetry','f520b329d6b408fa727b0fe82bf464caed8525c3a2b12a746e95ce00e32c2129');\nhashMap.set('pre-commit','a881d191bd52396ea815e60a49b047f0f073e5a567c863829efbab32610bfa40');\nhashMap.set('pub','8e80b151d76db21808ddc36532e46fc657d0f8b7925943f1d13ceb19b1e061a3');\nhashMap.set('puppet','34f7e3916780e8ed352b65864bad91bf66547e29f91ee8fca7fd6e8fcd2621fd');\nhashMap.set('pyenv','4e520570d9a1407864aa7c5461d4008372d889254067e405cee2212d0ef8990b');\nhashMap.set('renovate-config-presets','27f100d67e2a1ad20cfd4aa3f1db1f1c34f62910929695f381160b3835a7fa65');\nhashMap.set('ruby-version','4aac2178a20ccdf8136363030e5156017f3d44368b4192b3280997df596dcacc');\nhashMap.set('runtime-version','dbf80ce2a5f07dd34bc9a008159b4f08052cc6fd0d92cbd2aeb0026c8008fa72');\nhashMap.set('sbt','dc1ec4aeeb5e012c7a595478873ad67e2dee6e2af951b12b9e9057cb64f2258d');\nhashMap.set('scalafmt','8a54fef703269ed31ce28887e62b0b838a13359e86fa77c7f4dceb89fda0f352');\nhashMap.set('setup-cfg','9a778d8a58f643fff1d23d750dfebed21e45bce99bfdcdc3de39795a407d983f');\nhashMap.set('sveltos','a69f9e206526af08685e20a72344b22d856f2effd882e67333a153a989a0a047');\nhashMap.set('swift','4866ba3e6d6e9288ae9e3a11ef673b36d1d78360e21d8266ae3a945b8683d669');\nhashMap.set('tekton','eb8fb6a25ca7fd0d304f67d5ab2e93ddd8b34854553130003ce3340ca7b3bba1');\nhashMap.set('terraform','f89aaf7cf02449b1095a375b57f2a6eae10b282826385a5966d7d06b65fc3d12');\nhashMap.set('terraform-version','b08480f326c45daf3daeccc2d2f593a723c30a50437a66ac2290d671b427a355');\nhashMap.set('terragrunt','9988ff56620548133596437cd4d03a689ab195dd1addc00bc6074c26455a6486');\nhashMap.set('terragrunt-version','45f221b13a193a42687f318e10cf1558079e28c970e91ce25c370f35f88f2f58');\nhashMap.set('tflint-plugin','40ab6d0c975ff0b8e42651c088e159afe9f0d0c43a1dbf7c1295ec03c77bdc7c');\nhashMap.set('travis','30174e78a6297e44db1c030ea2e111084e14b1eac220f522522c77d684a76285');\nhashMap.set('velaci','9ad5d5d2584b9c189c4edcd25ad9103926bd4ba850a419a3b5e4aba9682817c3');\nhashMap.set('vendir','e2584cb214854405fed0b0e5dd608b709df1d8dadb7b761723125182e166fb02');\nhashMap.set('woodpecker','eaaa0a3bcfd0dc60c0990f2a1d7acf19c4f86ce4641ab3cf0a31f2bf46fc61b8');\nhashMap.set('jsonata','ca3fa7cd5d446eab618371ebf8d5aea3e47a494231c5f93b08496b859e67a020');\nhashMap.set('regex','f855dba6f55cf7e571241a0b273d2b12d8968ff76a0eeb773d006346949b6053');"]}
1
+ {"version":3,"file":"fingerprint.generated.js","sourceRoot":"","sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"names":[],"mappings":"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","sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','4c234d79f768392545924fa9b139f8d177f15b6aa46776cf063860a1d36e48c7');\nhashMap.set('ansible-galaxy','a211e40f5c8613986ac16bc8d5389ea23d145cd643091d1b951a7f65926e99ff');\nhashMap.set('argocd','37faccd3854254a2009d963f781e77cf6e5aca3719ffd7cae1fea3d02c153eed');\nhashMap.set('asdf','d4b167265b656f5eb744084dd094c67e699940ddaacb53de30cd5c67e54b6b1d');\nhashMap.set('azure-pipelines','0b741b2629f6d94589524ce9b3886765e5c5648c9b6d707bb0b5fede276f9c09');\nhashMap.set('batect','523e8d7a309b4814a02819371313b2dac3764eab64cabfaf1d58b6e89de4ce43');\nhashMap.set('batect-wrapper','90941650f810adb3d7abe476da7221ff3434aa9d09ffc3d310e35108f360f364');\nhashMap.set('bazel','699577431cada5c8621a238b8f80f0983ee0ed7eac92f93467b5bf8f007e9cda');\nhashMap.set('bazel-module','5b1238473990e1ff5c100d610f871f43bd404a8141b51a9d486faf67a3814538');\nhashMap.set('bazelisk','6fbef61d534724ff259ea6e4fc1cd0a3d5a46d740c375128fa59b225daddd39f');\nhashMap.set('bicep','fbbd74998411012cfba829526701109d1fc184ade0cb11a28e4ca2956174b0f1');\nhashMap.set('bitbucket-pipelines','98c0d715a7eb4e41b8231091b83385f325966373f37dc7d6bc10b1febb6f605e');\nhashMap.set('bitrise','d18d2dcd356e19c4cd94912511a88636198c23b64e54f31da273be11044970cf');\nhashMap.set('buildkite','ac713ce38da057ff3ceb08d092291356dfc74f5b33b75f010bb9db1a211439c0');\nhashMap.set('buildpacks','cc8bbe937416a012df36a5c7ab01ae3cdedbed03615549bbe9f0f27fa40a150b');\nhashMap.set('bun','2b157003f37572d579d6ab95f1c45fad0afe58d2239dad2fbfdc5acf81131a4b');\nhashMap.set('bun-version','49194d7fcb6b7bdd7e7a1264f71532bb2be8142d48478bf74716f7a9d4b306b9');\nhashMap.set('bundler','4cd7892c5c7ab98d254f24a0e62c0f637c8958aebb451158a81656d6be8d6662');\nhashMap.set('cake','a04160b352550cb470acb62f9a532361842c12f2ffbcd473bffca3de024522d9');\nhashMap.set('cargo','62650a1dfa15569c1dbd798a81886e3e78165a4c22f333a70ea93e4a385c8837');\nhashMap.set('cdnurl','70281459e771df007787fc25dba16e4d5109865f97209dcf4f572ddd287d538a');\nhashMap.set('circleci','c7c7a1b71385f0ea7cf1e9fc24c37a1d5dabf13d6952e1e3b2179861b55f4e44');\nhashMap.set('cloudbuild','e4f926bfb907220e97dce98335837c52b4e0fe66d813593a7e572736acfc53f7');\nhashMap.set('cocoapods','c2695071e5aaec8178e29615b6dc1cdf9cc68c5d73d5d88b54fed41e6aaec832');\nhashMap.set('composer','738901dde9bbdafc2372f30c4daf61f37d5337eaa2501d85abd1ba19bc1d3fac');\nhashMap.set('conan','7a5d054f43548ce08a428637ad1fe62796f635cabbca5e8c9cecfd629514cfce');\nhashMap.set('copier','6fa1b4898a64ca780d933728ddc8876014c6f0dea7a2ab2f84b832e8bf4df408');\nhashMap.set('cpanfile','9b354db9666eee2485b27e44a6e61eaadc86ec2f2c6af9bb7bbc9fab54f31642');\nhashMap.set('crossplane','76261ff27b38f9850ee1a3a7e95168abefd96b4736f2cf04a7343e16827b42d8');\nhashMap.set('deps-edn','4e4b76596229f23524086c1dca79c52159ae3ec094e28d8a59bd8a1926458046');\nhashMap.set('devbox','7acedf4c5d3bef2f6c75c8b490c47f18fb03597680b46e4670ae5fe6f9873960');\nhashMap.set('devcontainer','e9982b5ff8aeac8fefb40dc363d3ab35f58af8c08b91eb45d22937a8c60447bb');\nhashMap.set('docker-compose','39189def818fcafbd25114ad4905e30695e3e9b6e280b7d24390385ac36b2512');\nhashMap.set('dockerfile','0bddc097addf84db6aa48d985567f247ca89affe1265ac09e6cd9635f61710f9');\nhashMap.set('droneci','f2a98fcece07b462baaceb28cd6904e080cb1ab0727fcd7403bea5ffd2e05239');\nhashMap.set('fleet','d091e008ae47b1b1e4ec0a573b1b6439a875a1d9cac987e8b62e27e0cb0234ad');\nhashMap.set('flux','3b87b351f98c11ca0e6cb275deb708dc9bf601a7e578f7a3a7e83fe6e15eb540');\nhashMap.set('fvm','aa154dd5ffe3caced30713a9a55967360b7a0f35edd2fc06bd6f3e73c5c87570');\nhashMap.set('git-submodules','d49d744fffb965dea648af37ea16591b4a0ecf32c4f103b04f4555b58d0f3573');\nhashMap.set('github-actions','2398b1deb9e435b4f99ed353ebe6c4254f1976be23d7140d4bfd672c2cd34098');\nhashMap.set('gitlabci','1bad97e9892ea652b6522154d521aa91b299c52e5618943f04e65f78031a13a9');\nhashMap.set('gitlabci-include','5bc01de9b40ecc8888a37690152f4a2f9cacc509b9cb5902aac024ca7a7c8e65');\nhashMap.set('glasskube','fd415356a866ad174a5b70522d662e4289a2c5d5e34c55d57542b0d8968f1645');\nhashMap.set('gleam','a770dca6b63d34d1a5d7fc63130d5e030aac999d6a3398b8460bdf6f62e9a81e');\nhashMap.set('gomod','c3dafbc3c9c21af83d32309718c208289e021dd37b2c6e1db31238b756ab9958');\nhashMap.set('gradle','1333dfc2e7dbe276006716de76b757d99385748a36bd8d434d6d160f013c9715');\nhashMap.set('gradle-wrapper','f98404470f93f59794d0fc242779559d5a9d8751f5abc40cb61a49cd0652b1b4');\nhashMap.set('haskell-cabal','a2bf118238529952d0f2f352112dfbc86fb5533ef819625161a130f39c8ca713');\nhashMap.set('helm-requirements','8f643d415ab0cfbef05bce4dce9812eef47bddb7b8b67a191e6a4230489e652f');\nhashMap.set('helm-values','fbd4a0b4bdda8a71dc38ac8916287f73e2b7de5ef122096a5b5d525c1a3306cd');\nhashMap.set('helmfile','ee6a6cfb5680f8f896a2f7ac3d68770b300cfd0a4b75a7ca7edb4e1c1f51b7a2');\nhashMap.set('helmsman','734fa89740fd5140ca3e39204872aba3451c05cd17f0b5e2b635934ed7b1710b');\nhashMap.set('helmv3','e8993204cbfd858df10f8bb3e0de505a2fb26560b5585658042a30b4ea52c8c4');\nhashMap.set('hermit','5d6fe831c5abf4e2439da1cf24648ccb5a099b66fc965af68134a67418202fa1');\nhashMap.set('homebrew','4b05428b846b8a7c260a41500cc14938cca8e7d5df0e2510050f95718f6f823f');\nhashMap.set('html','226a9084e10ebf754906386159db08667394f5432105249bdb30d9c60af9fb56');\nhashMap.set('jenkins','309db014e3590e1cd6d53ede2755395c82e5cd4b880425daf52a6ab60e0d6a42');\nhashMap.set('jsonnet-bundler','83c3b9f3c6903929f6842bafc8219437dc822005505b64ed2cb6e63babc28dcb');\nhashMap.set('kotlin-script','60f8f714bb3aef5d7e3e91c67f658847ad2b01bfc044a2f0dd0798fccb5c7c30');\nhashMap.set('kubernetes','62cfa6c77593b48290f3c26a2f390c4bdfe8ab3cfb79e358b10d8aece689a999');\nhashMap.set('kustomize','b0a7444bde37c7ea3ad47062fddaf03892c7da4912b8c042e8c07dde182da46c');\nhashMap.set('leiningen','0598d2f53cfc92076d47186245a7b591d2b0df157609a7f55a37b54ab2d32a77');\nhashMap.set('maven','6b9eea76855c2d67037872fbeb803af65ff026708061691f75ce0ab2239c1ff8');\nhashMap.set('maven-wrapper','56edbbfaf0844fc497de31159719ef5064389120a1a9ca85c0c67d5328c8ac81');\nhashMap.set('meteor','a9785d85b3520ed9e763c800730f36b95747795699758ecbe1395133c5b0040e');\nhashMap.set('mint','7072e37f18bb57500018406eb8711b2615b1916f073867f30653cdd4a99dab81');\nhashMap.set('mise','a0ef42c93137907c994e4a7506ef7b5a758f9537959f6ff7a2aa6d07ccfff0da');\nhashMap.set('mix','9f506a6e42135fd299d240ac445996f414a502c01588107d7e65848b1368ee03');\nhashMap.set('nix','2630474b9fce0f0d3d8e27df4d86abd7564931e2eae3b4d54b3870bb712366f5');\nhashMap.set('nodenv','d159174d53e39af2013443cf86df88e14aac79a5a8d602180af229dcb2ddeda9');\nhashMap.set('npm','748a29baf190da9e5dd974d4bb7549d9432072d52937be6b76493baacf990db1');\nhashMap.set('nuget','e46f9986c7037ce0adf04bbee3e0cf7d844d82f52a3beda7205bc01246d155d3');\nhashMap.set('nvm','1928fd50bd6cc9f42d73262630056f2c0f8b0e061282bd02e58d116fc1788e2b');\nhashMap.set('ocb','55559051102728868b619820a6dc95753cdfbbb8aed46840e53db6733bc2ede4');\nhashMap.set('osgi','dae012cd486843eb53da4b032105e54d18f4e7537bd59c5321313950dd108a95');\nhashMap.set('pep621','88db31ca9bddf85c58e420e22bb831f4e750281b9d976271195c1e746ccb4fd5');\nhashMap.set('pep723','bf07d466ea1bc9513c8d2cb475fcca3bc9b61f2184bd9af0a7a28d45b6f57ecd');\nhashMap.set('pip-compile','ae04fc449e79eefe95aa15553b6a6bebd417f3ca3251b37121e17503c808a2ac');\nhashMap.set('pip_requirements','70bfe70544e29f3c7fdbc2261efcebcaf8836e92bd21da35c379c9f4573ff43b');\nhashMap.set('pip_setup','31b330d9666d61474326a761a3ce1479f9a189ef6838ecfee78843ff4c80af73');\nhashMap.set('pipenv','823f1652628a6ce17943fe24a187aa2faa77d21e0aa001d3f8b0f9cd93a74ba9');\nhashMap.set('pixi','e209242b0dc2e6d57bcdec8f6a6f577db249ecb5eba1afea429cb1ff023a90d8');\nhashMap.set('poetry','f520b329d6b408fa727b0fe82bf464caed8525c3a2b12a746e95ce00e32c2129');\nhashMap.set('pre-commit','a881d191bd52396ea815e60a49b047f0f073e5a567c863829efbab32610bfa40');\nhashMap.set('pub','8e80b151d76db21808ddc36532e46fc657d0f8b7925943f1d13ceb19b1e061a3');\nhashMap.set('puppet','34f7e3916780e8ed352b65864bad91bf66547e29f91ee8fca7fd6e8fcd2621fd');\nhashMap.set('pyenv','4e520570d9a1407864aa7c5461d4008372d889254067e405cee2212d0ef8990b');\nhashMap.set('renovate-config-presets','27f100d67e2a1ad20cfd4aa3f1db1f1c34f62910929695f381160b3835a7fa65');\nhashMap.set('ruby-version','4aac2178a20ccdf8136363030e5156017f3d44368b4192b3280997df596dcacc');\nhashMap.set('runtime-version','dbf80ce2a5f07dd34bc9a008159b4f08052cc6fd0d92cbd2aeb0026c8008fa72');\nhashMap.set('sbt','dc1ec4aeeb5e012c7a595478873ad67e2dee6e2af951b12b9e9057cb64f2258d');\nhashMap.set('scalafmt','8a54fef703269ed31ce28887e62b0b838a13359e86fa77c7f4dceb89fda0f352');\nhashMap.set('setup-cfg','9a778d8a58f643fff1d23d750dfebed21e45bce99bfdcdc3de39795a407d983f');\nhashMap.set('sveltos','a69f9e206526af08685e20a72344b22d856f2effd882e67333a153a989a0a047');\nhashMap.set('swift','4866ba3e6d6e9288ae9e3a11ef673b36d1d78360e21d8266ae3a945b8683d669');\nhashMap.set('tekton','eb8fb6a25ca7fd0d304f67d5ab2e93ddd8b34854553130003ce3340ca7b3bba1');\nhashMap.set('terraform','f89aaf7cf02449b1095a375b57f2a6eae10b282826385a5966d7d06b65fc3d12');\nhashMap.set('terraform-version','b08480f326c45daf3daeccc2d2f593a723c30a50437a66ac2290d671b427a355');\nhashMap.set('terragrunt','9988ff56620548133596437cd4d03a689ab195dd1addc00bc6074c26455a6486');\nhashMap.set('terragrunt-version','45f221b13a193a42687f318e10cf1558079e28c970e91ce25c370f35f88f2f58');\nhashMap.set('tflint-plugin','40ab6d0c975ff0b8e42651c088e159afe9f0d0c43a1dbf7c1295ec03c77bdc7c');\nhashMap.set('travis','30174e78a6297e44db1c030ea2e111084e14b1eac220f522522c77d684a76285');\nhashMap.set('velaci','9ad5d5d2584b9c189c4edcd25ad9103926bd4ba850a419a3b5e4aba9682817c3');\nhashMap.set('vendir','e2584cb214854405fed0b0e5dd608b709df1d8dadb7b761723125182e166fb02');\nhashMap.set('woodpecker','eaaa0a3bcfd0dc60c0990f2a1d7acf19c4f86ce4641ab3cf0a31f2bf46fc61b8');\nhashMap.set('jsonata','ca3fa7cd5d446eab618371ebf8d5aea3e47a494231c5f93b08496b859e67a020');\nhashMap.set('regex','f855dba6f55cf7e571241a0b273d2b12d8968ff76a0eeb773d006346949b6053');"]}
@@ -34,6 +34,6 @@ async function generateRegistryLoginCmd(repositoryName, repositoryBaseURL, repos
34
34
  hostType: docker_1.DockerDatasource.id,
35
35
  }),
36
36
  };
37
- return await (0, common_1.generateLoginCmd)(repositoryRule, 'helm registry login');
37
+ return await (0, common_1.generateLoginCmd)(repositoryRule);
38
38
  }
39
39
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmfile/utils.ts"],"names":[],"mappings":";;AAWA,wDAMC;AAID,0EAQC;AAED,sCAEC;AAED,4DAeC;;AAlDD,0DAA0B;AAE1B,yCAAiE;AACjE,4EAAsD;AACtD,oDAA2D;AAC3D,6CAAoD;AAKpD,2EAA2E;AAC3E,SAAgB,sBAAsB,CAAC,OAAoB;IACzD,OAAO,CACL,OAAO,CAAC,qBAAqB,KAAK,SAAS;QAC3C,OAAO,CAAC,WAAW,KAAK,SAAS;QACjC,OAAO,CAAC,YAAY,KAAK,SAAS,CACnC,CAAC;AACJ,CAAC;AAED,4FAA4F;AAC5F,yCAAyC;AAClC,KAAK,UAAU,+BAA+B,CACnD,OAAoB,EACpB,oBAA4B;IAE5B,MAAM,qBAAqB,GAAG,IAAA,iBAAY,EAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;IACvE,OAAO,IAAA,oBAAe,EACpB,eAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,KAAK,EAAE,oBAAoB,CAAC,CACvE,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAAC,UAA0B;IACtD,OAAO,UAAU,CAAC,GAAG,KAAK,IAAI,CAAC;AACjC,CAAC;AAEM,KAAK,UAAU,wBAAwB,CAC5C,cAAsB,EACtB,iBAAyB,EACzB,cAAsB;IAEtB,MAAM,cAAc,GAAmB;QACrC,IAAI,EAAE,cAAc;QACpB,UAAU,EAAE,cAAc;QAC1B,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC;YACvB,GAAG,EAAE,iBAAiB;YACtB,QAAQ,EAAE,yBAAgB,CAAC,EAAE;SAC9B,CAAC;KACH,CAAC;IAEF,OAAO,MAAM,IAAA,yBAAgB,EAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;AACvE,CAAC","sourcesContent":["import upath from 'upath';\n\nimport { getParentDir, localPathExists } from '../../../util/fs';\nimport * as hostRules from '../../../util/host-rules';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { generateLoginCmd } from '../helmv3/common';\nimport type { RepositoryRule } from '../helmv3/types';\n\nimport type { HelmRelease, HelmRepository } from './schema';\n\n/** Returns true if a helmfile release contains kustomize specific keys **/\nexport function kustomizationsKeysUsed(release: HelmRelease): boolean {\n return (\n release.strategicMergePatches !== undefined ||\n release.jsonPatches !== undefined ||\n release.transformers !== undefined\n );\n}\n\n/** Returns true if a helmfile release uses a local chart with a kustomization.yaml file **/\n// eslint-disable-next-line require-await\nexport async function localChartHasKustomizationsYaml(\n release: HelmRelease,\n helmFileYamlFileName: string,\n): Promise<boolean> {\n const helmfileYamlParentDir = getParentDir(helmFileYamlFileName) || '';\n return localPathExists(\n upath.join(helmfileYamlParentDir, release.chart, 'kustomization.yaml'),\n );\n}\n\nexport function isOCIRegistry(repository: HelmRepository): boolean {\n return repository.oci === true;\n}\n\nexport async function generateRegistryLoginCmd(\n repositoryName: string,\n repositoryBaseURL: string,\n repositoryHost: string,\n): Promise<string | null> {\n const repositoryRule: RepositoryRule = {\n name: repositoryName,\n repository: repositoryHost,\n hostRule: hostRules.find({\n url: repositoryBaseURL,\n hostType: DockerDatasource.id,\n }),\n };\n\n return await generateLoginCmd(repositoryRule, 'helm registry login');\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmfile/utils.ts"],"names":[],"mappings":";;AAWA,wDAMC;AAID,0EAQC;AAED,sCAEC;AAED,4DAeC;;AAlDD,0DAA0B;AAE1B,yCAAiE;AACjE,4EAAsD;AACtD,oDAA2D;AAC3D,6CAAoD;AAKpD,2EAA2E;AAC3E,SAAgB,sBAAsB,CAAC,OAAoB;IACzD,OAAO,CACL,OAAO,CAAC,qBAAqB,KAAK,SAAS;QAC3C,OAAO,CAAC,WAAW,KAAK,SAAS;QACjC,OAAO,CAAC,YAAY,KAAK,SAAS,CACnC,CAAC;AACJ,CAAC;AAED,4FAA4F;AAC5F,yCAAyC;AAClC,KAAK,UAAU,+BAA+B,CACnD,OAAoB,EACpB,oBAA4B;IAE5B,MAAM,qBAAqB,GAAG,IAAA,iBAAY,EAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;IACvE,OAAO,IAAA,oBAAe,EACpB,eAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,KAAK,EAAE,oBAAoB,CAAC,CACvE,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAAC,UAA0B;IACtD,OAAO,UAAU,CAAC,GAAG,KAAK,IAAI,CAAC;AACjC,CAAC;AAEM,KAAK,UAAU,wBAAwB,CAC5C,cAAsB,EACtB,iBAAyB,EACzB,cAAsB;IAEtB,MAAM,cAAc,GAAmB;QACrC,IAAI,EAAE,cAAc;QACpB,UAAU,EAAE,cAAc;QAC1B,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC;YACvB,GAAG,EAAE,iBAAiB;YACtB,QAAQ,EAAE,yBAAgB,CAAC,EAAE;SAC9B,CAAC;KACH,CAAC;IAEF,OAAO,MAAM,IAAA,yBAAgB,EAAC,cAAc,CAAC,CAAC;AAChD,CAAC","sourcesContent":["import upath from 'upath';\n\nimport { getParentDir, localPathExists } from '../../../util/fs';\nimport * as hostRules from '../../../util/host-rules';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { generateLoginCmd } from '../helmv3/common';\nimport type { RepositoryRule } from '../helmv3/types';\n\nimport type { HelmRelease, HelmRepository } from './schema';\n\n/** Returns true if a helmfile release contains kustomize specific keys **/\nexport function kustomizationsKeysUsed(release: HelmRelease): boolean {\n return (\n release.strategicMergePatches !== undefined ||\n release.jsonPatches !== undefined ||\n release.transformers !== undefined\n );\n}\n\n/** Returns true if a helmfile release uses a local chart with a kustomization.yaml file **/\n// eslint-disable-next-line require-await\nexport async function localChartHasKustomizationsYaml(\n release: HelmRelease,\n helmFileYamlFileName: string,\n): Promise<boolean> {\n const helmfileYamlParentDir = getParentDir(helmFileYamlFileName) || '';\n return localPathExists(\n upath.join(helmfileYamlParentDir, release.chart, 'kustomization.yaml'),\n );\n}\n\nexport function isOCIRegistry(repository: HelmRepository): boolean {\n return repository.oci === true;\n}\n\nexport async function generateRegistryLoginCmd(\n repositoryName: string,\n repositoryBaseURL: string,\n repositoryHost: string,\n): Promise<string | null> {\n const repositoryRule: RepositoryRule = {\n name: repositoryName,\n repository: repositoryHost,\n hostRule: hostRules.find({\n url: repositoryBaseURL,\n hostType: DockerDatasource.id,\n }),\n };\n\n return await generateLoginCmd(repositoryRule);\n}\n"]}
@@ -34,7 +34,7 @@ async function helmCommands(execOptions, manifestPath, repositories) {
34
34
  });
35
35
  // if credentials for the registry have been found, log into it
36
36
  await (0, p_map_1.default)(registries, async (value) => {
37
- const loginCmd = await (0, common_1.generateLoginCmd)(value, 'helm registry login');
37
+ const loginCmd = await (0, common_1.generateLoginCmd)(value);
38
38
  if (loginCmd) {
39
39
  cmd.push(loginCmd);
40
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmv3/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport pMap from 'p-map';\nimport { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions, ToolConstraint } from '../../../util/exec/types';\nimport {\n getParentDir,\n getSiblingFileName,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport * as hostRules from '../../../util/host-rules';\nimport * as yaml from '../../../util/yaml';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { HelmDatasource } from '../../datasource/helm';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\nimport { generateHelmEnvs, generateLoginCmd } from './common';\nimport { isOCIRegistry, removeOCIPrefix } from './oci';\nimport type { ChartDefinition, Repository, RepositoryRule } from './types';\nimport {\n aliasRecordToRepositories,\n getRepositories,\n isFileInDir,\n} from './utils';\n\nasync function helmCommands(\n execOptions: ExecOptions,\n manifestPath: string,\n repositories: Repository[],\n): Promise<void> {\n const cmd: string[] = [];\n // get OCI registries and detect host rules\n const registries: RepositoryRule[] = repositories\n .filter(isOCIRegistry)\n .map((value) => {\n return {\n ...value,\n repository: removeOCIPrefix(value.repository),\n hostRule: hostRules.find({\n url: value.repository.replace('oci://', 'https://'), //TODO we need to replace this, as oci:// will not be accepted as protocol\n hostType: DockerDatasource.id,\n }),\n };\n });\n\n // if credentials for the registry have been found, log into it\n await pMap(registries, async (value) => {\n const loginCmd = await generateLoginCmd(value, 'helm registry login');\n if (loginCmd) {\n cmd.push(loginCmd);\n }\n });\n\n // find classic Chart repositories and fitting host rules\n const classicRepositories: RepositoryRule[] = repositories\n .filter((repository) => !isOCIRegistry(repository))\n .map((value) => {\n return {\n ...value,\n hostRule: hostRules.find({\n url: value.repository,\n hostType: HelmDatasource.id,\n }),\n };\n });\n\n // add helm repos if an alias or credentials for the url are defined\n classicRepositories.forEach((value) => {\n const { username, password } = value.hostRule;\n const parameters = [`${quote(value.repository)}`, `--force-update`];\n const isPrivateRepo = username && password;\n if (isPrivateRepo) {\n parameters.push(`--username ${quote(username)}`);\n parameters.push(`--password ${quote(password)}`);\n }\n\n cmd.push(`helm repo add ${quote(value.name)} ${parameters.join(' ')}`);\n });\n\n cmd.push(`helm dependency update ${quote(getParentDir(manifestPath))}`);\n\n await exec(cmd, execOptions);\n}\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n newPackageFileContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`helmv3.updateArtifacts(${packageFileName})`);\n\n const { isLockFileMaintenance } = config;\n const isUpdateOptionAddChartArchives = config.postUpdateOptions?.includes(\n 'helmUpdateSubChartArchives',\n );\n\n if (\n !isLockFileMaintenance &&\n (updatedDeps === undefined || updatedDeps.length < 1)\n ) {\n logger.debug('No updated helmv3 deps - returning null');\n return null;\n }\n\n const lockFileName = getSiblingFileName(packageFileName, 'Chart.lock');\n const existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent && !isUpdateOptionAddChartArchives) {\n logger.debug('No Chart.lock found');\n return null;\n }\n try {\n // get repositories and registries defined in the package file\n // TODO: use schema (#9610)\n const packages = yaml.parseSingleYaml<ChartDefinition>(\n newPackageFileContent,\n );\n const locks = existingLockFileContent\n ? yaml.parseSingleYaml<ChartDefinition>(existingLockFileContent)\n : { dependencies: [] };\n\n const chartDefinitions: ChartDefinition[] = [];\n // prioritize registryAlias naming for Helm repositories\n if (config.registryAliases) {\n chartDefinitions.push({\n dependencies: aliasRecordToRepositories(config.registryAliases),\n });\n }\n chartDefinitions.push(packages, locks);\n\n const repositories = getRepositories(chartDefinitions);\n\n await writeLocalFile(packageFileName, newPackageFileContent);\n logger.debug('Updating Helm artifacts');\n const helmToolConstraint: ToolConstraint = {\n toolName: 'helm',\n constraint: config.constraints?.helm,\n };\n\n const execOptions: ExecOptions = {\n docker: {},\n extraEnv: generateHelmEnvs(),\n toolConstraints: [helmToolConstraint],\n };\n await helmCommands(execOptions, packageFileName, repositories);\n logger.debug('Returning updated Helm artifacts');\n\n const fileChanges: UpdateArtifactsResult[] = [];\n\n if (is.truthy(existingLockFileContent)) {\n const newHelmLockContent = await readLocalFile(lockFileName, 'utf8');\n const isLockFileChanged = existingLockFileContent !== newHelmLockContent;\n if (isLockFileChanged) {\n fileChanges.push({\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newHelmLockContent,\n },\n });\n } else {\n logger.debug('Chart.lock is unchanged');\n }\n }\n\n // add modified helm chart archives to artifacts\n if (is.truthy(isUpdateOptionAddChartArchives)) {\n const chartsPath = getSiblingFileName(packageFileName, 'charts');\n const status = await getRepoStatus();\n const chartsAddition = status.not_added ?? [];\n const chartsDeletion = status.deleted ?? [];\n\n for (const file of chartsAddition) {\n // only add artifacts in the chart sub path\n if (!isFileInDir(chartsPath, file)) {\n continue;\n }\n fileChanges.push({\n file: {\n type: 'addition',\n path: file,\n contents: await readLocalFile(file),\n },\n });\n }\n\n for (const file of chartsDeletion) {\n // only add artifacts in the chart sub path\n if (!isFileInDir(chartsPath, file)) {\n continue;\n }\n fileChanges.push({\n file: {\n type: 'deletion',\n path: file,\n },\n });\n }\n }\n\n return fileChanges.length > 0 ? fileChanges : null;\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, 'Failed to update Helm lock file');\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"]}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmv3/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport pMap from 'p-map';\nimport { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions, ToolConstraint } from '../../../util/exec/types';\nimport {\n getParentDir,\n getSiblingFileName,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport * as hostRules from '../../../util/host-rules';\nimport * as yaml from '../../../util/yaml';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { HelmDatasource } from '../../datasource/helm';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\nimport { generateHelmEnvs, generateLoginCmd } from './common';\nimport { isOCIRegistry, removeOCIPrefix } from './oci';\nimport type { ChartDefinition, Repository, RepositoryRule } from './types';\nimport {\n aliasRecordToRepositories,\n getRepositories,\n isFileInDir,\n} from './utils';\n\nasync function helmCommands(\n execOptions: ExecOptions,\n manifestPath: string,\n repositories: Repository[],\n): Promise<void> {\n const cmd: string[] = [];\n // get OCI registries and detect host rules\n const registries: RepositoryRule[] = repositories\n .filter(isOCIRegistry)\n .map((value) => {\n return {\n ...value,\n repository: removeOCIPrefix(value.repository),\n hostRule: hostRules.find({\n url: value.repository.replace('oci://', 'https://'), //TODO we need to replace this, as oci:// will not be accepted as protocol\n hostType: DockerDatasource.id,\n }),\n };\n });\n\n // if credentials for the registry have been found, log into it\n await pMap(registries, async (value) => {\n const loginCmd = await generateLoginCmd(value);\n if (loginCmd) {\n cmd.push(loginCmd);\n }\n });\n\n // find classic Chart repositories and fitting host rules\n const classicRepositories: RepositoryRule[] = repositories\n .filter((repository) => !isOCIRegistry(repository))\n .map((value) => {\n return {\n ...value,\n hostRule: hostRules.find({\n url: value.repository,\n hostType: HelmDatasource.id,\n }),\n };\n });\n\n // add helm repos if an alias or credentials for the url are defined\n classicRepositories.forEach((value) => {\n const { username, password } = value.hostRule;\n const parameters = [`${quote(value.repository)}`, `--force-update`];\n const isPrivateRepo = username && password;\n if (isPrivateRepo) {\n parameters.push(`--username ${quote(username)}`);\n parameters.push(`--password ${quote(password)}`);\n }\n\n cmd.push(`helm repo add ${quote(value.name)} ${parameters.join(' ')}`);\n });\n\n cmd.push(`helm dependency update ${quote(getParentDir(manifestPath))}`);\n\n await exec(cmd, execOptions);\n}\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n newPackageFileContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`helmv3.updateArtifacts(${packageFileName})`);\n\n const { isLockFileMaintenance } = config;\n const isUpdateOptionAddChartArchives = config.postUpdateOptions?.includes(\n 'helmUpdateSubChartArchives',\n );\n\n if (\n !isLockFileMaintenance &&\n (updatedDeps === undefined || updatedDeps.length < 1)\n ) {\n logger.debug('No updated helmv3 deps - returning null');\n return null;\n }\n\n const lockFileName = getSiblingFileName(packageFileName, 'Chart.lock');\n const existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent && !isUpdateOptionAddChartArchives) {\n logger.debug('No Chart.lock found');\n return null;\n }\n try {\n // get repositories and registries defined in the package file\n // TODO: use schema (#9610)\n const packages = yaml.parseSingleYaml<ChartDefinition>(\n newPackageFileContent,\n );\n const locks = existingLockFileContent\n ? yaml.parseSingleYaml<ChartDefinition>(existingLockFileContent)\n : { dependencies: [] };\n\n const chartDefinitions: ChartDefinition[] = [];\n // prioritize registryAlias naming for Helm repositories\n if (config.registryAliases) {\n chartDefinitions.push({\n dependencies: aliasRecordToRepositories(config.registryAliases),\n });\n }\n chartDefinitions.push(packages, locks);\n\n const repositories = getRepositories(chartDefinitions);\n\n await writeLocalFile(packageFileName, newPackageFileContent);\n logger.debug('Updating Helm artifacts');\n const helmToolConstraint: ToolConstraint = {\n toolName: 'helm',\n constraint: config.constraints?.helm,\n };\n\n const execOptions: ExecOptions = {\n docker: {},\n extraEnv: generateHelmEnvs(),\n toolConstraints: [helmToolConstraint],\n };\n await helmCommands(execOptions, packageFileName, repositories);\n logger.debug('Returning updated Helm artifacts');\n\n const fileChanges: UpdateArtifactsResult[] = [];\n\n if (is.truthy(existingLockFileContent)) {\n const newHelmLockContent = await readLocalFile(lockFileName, 'utf8');\n const isLockFileChanged = existingLockFileContent !== newHelmLockContent;\n if (isLockFileChanged) {\n fileChanges.push({\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newHelmLockContent,\n },\n });\n } else {\n logger.debug('Chart.lock is unchanged');\n }\n }\n\n // add modified helm chart archives to artifacts\n if (is.truthy(isUpdateOptionAddChartArchives)) {\n const chartsPath = getSiblingFileName(packageFileName, 'charts');\n const status = await getRepoStatus();\n const chartsAddition = status.not_added ?? [];\n const chartsDeletion = status.deleted ?? [];\n\n for (const file of chartsAddition) {\n // only add artifacts in the chart sub path\n if (!isFileInDir(chartsPath, file)) {\n continue;\n }\n fileChanges.push({\n file: {\n type: 'addition',\n path: file,\n contents: await readLocalFile(file),\n },\n });\n }\n\n for (const file of chartsDeletion) {\n // only add artifacts in the chart sub path\n if (!isFileInDir(chartsPath, file)) {\n continue;\n }\n fileChanges.push({\n file: {\n type: 'deletion',\n path: file,\n },\n });\n }\n }\n\n return fileChanges.length > 0 ? fileChanges : null;\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, 'Failed to update Helm lock file');\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
1
  import type { ExtraEnv } from '../../../util/exec/types';
2
2
  import type { RepositoryRule } from './types';
3
- export declare function generateLoginCmd(repositoryRule: RepositoryRule, loginCMD: string): Promise<string | null>;
3
+ export declare function generateLoginCmd(repositoryRule: RepositoryRule): Promise<string | null>;
4
4
  export declare function generateHelmEnvs(): ExtraEnv;
@@ -11,9 +11,11 @@ const fs_1 = require("../../../util/fs");
11
11
  const sanitize_1 = require("../../../util/sanitize");
12
12
  const string_1 = require("../../../util/string");
13
13
  const ecr_1 = require("../../datasource/docker/ecr");
14
- async function generateLoginCmd(repositoryRule, loginCMD) {
14
+ async function generateLoginCmd(repositoryRule) {
15
+ logger_1.logger.trace({ repositoryRule }, 'Generating Helm registry login command');
15
16
  const { hostRule, repository } = repositoryRule;
16
17
  const { username, password } = hostRule;
18
+ const loginCMD = 'helm registry login';
17
19
  if (username !== 'AWS' && ecr_1.ecrRegex.test(repository)) {
18
20
  logger_1.logger.trace({ repository }, `Using ecr auth for Helm registry`);
19
21
  const [, region] = (0, array_1.coerceArray)(ecr_1.ecrRegex.exec(repository));
@@ -31,7 +33,11 @@ async function generateLoginCmd(repositoryRule, loginCMD) {
31
33
  }
32
34
  if (username && password) {
33
35
  logger_1.logger.trace({ repository }, `Using basic auth for Helm registry`);
34
- return `${loginCMD} --username ${(0, shlex_1.quote)(username)} --password ${(0, shlex_1.quote)(password)} ${repository}`;
36
+ // Split off any path as it's not valid for the helm registry login command
37
+ const hostPart = repository.split('/')[0];
38
+ const cmd = `${loginCMD} --username ${(0, shlex_1.quote)(username)} --password ${(0, shlex_1.quote)(password)} ${hostPart}`;
39
+ logger_1.logger.trace({ cmd }, 'Generated Helm registry login command');
40
+ return cmd;
35
41
  }
36
42
  return null;
37
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmv3/common.ts"],"names":[],"mappings":";;AAYA,4CA8BC;AAED,4CAWC;;AAvDD,iCAA8B;AAC9B,0DAA0B;AAE1B,4CAAyC;AACzC,+CAAkD;AAElD,yCAAmD;AACnD,qDAAgE;AAChE,iDAAkD;AAClD,qDAAwE;AAGjE,KAAK,UAAU,gBAAgB,CACpC,cAA8B,EAC9B,QAAgB;IAEhB,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC;IAChD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IACxC,IAAI,QAAQ,KAAK,KAAK,IAAI,cAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,eAAM,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,kCAAkC,CAAC,CAAC;QACjE,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,IAAA,mBAAW,EAAC,cAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,MAAM,IAAA,qBAAe,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAA,iCAAsB,EAAC,QAAQ,CAAC,CAAC;QACjC,IAAA,iCAAsB,EAAC,QAAQ,CAAC,CAAC;QACjC,OAAO,GAAG,QAAQ,eAAe,IAAA,aAAK,EAAC,QAAQ,CAAC,eAAe,IAAA,aAAK,EAClE,QAAQ,CACT,IAAI,UAAU,EAAE,CAAC;IACpB,CAAC;IACD,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;QACzB,eAAM,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,oCAAoC,CAAC,CAAC;QACnE,OAAO,GAAG,QAAQ,eAAe,IAAA,aAAK,EAAC,QAAQ,CAAC,eAAe,IAAA,aAAK,EAClE,QAAQ,CACT,IAAI,UAAU,EAAE,CAAC;IACpB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,gBAAgB;IAC9B,OAAO;QACL,qBAAqB,EAAE,GAAG;QAC1B,iGAAiG;QACjG,oBAAoB,EAAE,GAAG,eAAK,CAAC,IAAI,CAAC,IAAA,oBAAe,GAAE,EAAE,eAAe,CAAC,EAAE;QACzE,sBAAsB,EAAE,GAAG,eAAK,CAAC,IAAI,CACnC,IAAA,oBAAe,GAAE,EACjB,mBAAmB,CACpB,EAAE;QACH,qBAAqB,EAAE,GAAG,eAAK,CAAC,IAAI,CAAC,IAAA,oBAAe,GAAE,EAAE,cAAc,CAAC,EAAE;KAC1E,CAAC;AACJ,CAAC","sourcesContent":["import { quote } from 'shlex';\nimport upath from 'upath';\n\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport type { ExtraEnv } from '../../../util/exec/types';\nimport { privateCacheDir } from '../../../util/fs';\nimport { addSecretForSanitizing } from '../../../util/sanitize';\nimport { fromBase64 } from '../../../util/string';\nimport { ecrRegex, getECRAuthToken } from '../../datasource/docker/ecr';\nimport type { RepositoryRule } from './types';\n\nexport async function generateLoginCmd(\n repositoryRule: RepositoryRule,\n loginCMD: string,\n): Promise<string | null> {\n const { hostRule, repository } = repositoryRule;\n const { username, password } = hostRule;\n if (username !== 'AWS' && ecrRegex.test(repository)) {\n logger.trace({ repository }, `Using ecr auth for Helm registry`);\n const [, region] = coerceArray(ecrRegex.exec(repository));\n const auth = await getECRAuthToken(region, hostRule);\n if (!auth) {\n return null;\n }\n const [username, password] = fromBase64(auth).split(':');\n if (!username || !password) {\n return null;\n }\n addSecretForSanitizing(username);\n addSecretForSanitizing(password);\n return `${loginCMD} --username ${quote(username)} --password ${quote(\n password,\n )} ${repository}`;\n }\n if (username && password) {\n logger.trace({ repository }, `Using basic auth for Helm registry`);\n return `${loginCMD} --username ${quote(username)} --password ${quote(\n password,\n )} ${repository}`;\n }\n return null;\n}\n\nexport function generateHelmEnvs(): ExtraEnv {\n return {\n HELM_EXPERIMENTAL_OCI: '1',\n // set cache and config files to a path in privateCacheDir to prevent file and credential leakage\n HELM_REGISTRY_CONFIG: `${upath.join(privateCacheDir(), 'registry.json')}`,\n HELM_REPOSITORY_CONFIG: `${upath.join(\n privateCacheDir(),\n 'repositories.yaml',\n )}`,\n HELM_REPOSITORY_CACHE: `${upath.join(privateCacheDir(), 'repositories')}`,\n };\n}\n"]}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmv3/common.ts"],"names":[],"mappings":";;AAYA,4CAmCC;AAED,4CAWC;;AA5DD,iCAA8B;AAC9B,0DAA0B;AAE1B,4CAAyC;AACzC,+CAAkD;AAElD,yCAAmD;AACnD,qDAAgE;AAChE,iDAAkD;AAClD,qDAAwE;AAGjE,KAAK,UAAU,gBAAgB,CACpC,cAA8B;IAE9B,eAAM,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,EAAE,wCAAwC,CAAC,CAAC;IAC3E,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC;IAChD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IACxC,MAAM,QAAQ,GAAG,qBAAqB,CAAC;IACvC,IAAI,QAAQ,KAAK,KAAK,IAAI,cAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,eAAM,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,kCAAkC,CAAC,CAAC;QACjE,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,IAAA,mBAAW,EAAC,cAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,MAAM,IAAA,qBAAe,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAA,iCAAsB,EAAC,QAAQ,CAAC,CAAC;QACjC,IAAA,iCAAsB,EAAC,QAAQ,CAAC,CAAC;QACjC,OAAO,GAAG,QAAQ,eAAe,IAAA,aAAK,EAAC,QAAQ,CAAC,eAAe,IAAA,aAAK,EAClE,QAAQ,CACT,IAAI,UAAU,EAAE,CAAC;IACpB,CAAC;IACD,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;QACzB,eAAM,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,oCAAoC,CAAC,CAAC;QACnE,2EAA2E;QAC3E,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,GAAG,QAAQ,eAAe,IAAA,aAAK,EAAC,QAAQ,CAAC,eAAe,IAAA,aAAK,EACvE,QAAQ,CACT,IAAI,QAAQ,EAAE,CAAC;QAChB,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,uCAAuC,CAAC,CAAC;QAC/D,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,gBAAgB;IAC9B,OAAO;QACL,qBAAqB,EAAE,GAAG;QAC1B,iGAAiG;QACjG,oBAAoB,EAAE,GAAG,eAAK,CAAC,IAAI,CAAC,IAAA,oBAAe,GAAE,EAAE,eAAe,CAAC,EAAE;QACzE,sBAAsB,EAAE,GAAG,eAAK,CAAC,IAAI,CACnC,IAAA,oBAAe,GAAE,EACjB,mBAAmB,CACpB,EAAE;QACH,qBAAqB,EAAE,GAAG,eAAK,CAAC,IAAI,CAAC,IAAA,oBAAe,GAAE,EAAE,cAAc,CAAC,EAAE;KAC1E,CAAC;AACJ,CAAC","sourcesContent":["import { quote } from 'shlex';\nimport upath from 'upath';\n\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport type { ExtraEnv } from '../../../util/exec/types';\nimport { privateCacheDir } from '../../../util/fs';\nimport { addSecretForSanitizing } from '../../../util/sanitize';\nimport { fromBase64 } from '../../../util/string';\nimport { ecrRegex, getECRAuthToken } from '../../datasource/docker/ecr';\nimport type { RepositoryRule } from './types';\n\nexport async function generateLoginCmd(\n repositoryRule: RepositoryRule,\n): Promise<string | null> {\n logger.trace({ repositoryRule }, 'Generating Helm registry login command');\n const { hostRule, repository } = repositoryRule;\n const { username, password } = hostRule;\n const loginCMD = 'helm registry login';\n if (username !== 'AWS' && ecrRegex.test(repository)) {\n logger.trace({ repository }, `Using ecr auth for Helm registry`);\n const [, region] = coerceArray(ecrRegex.exec(repository));\n const auth = await getECRAuthToken(region, hostRule);\n if (!auth) {\n return null;\n }\n const [username, password] = fromBase64(auth).split(':');\n if (!username || !password) {\n return null;\n }\n addSecretForSanitizing(username);\n addSecretForSanitizing(password);\n return `${loginCMD} --username ${quote(username)} --password ${quote(\n password,\n )} ${repository}`;\n }\n if (username && password) {\n logger.trace({ repository }, `Using basic auth for Helm registry`);\n // Split off any path as it's not valid for the helm registry login command\n const hostPart = repository.split('/')[0];\n const cmd = `${loginCMD} --username ${quote(username)} --password ${quote(\n password,\n )} ${hostPart}`;\n logger.trace({ cmd }, 'Generated Helm registry login command');\n return cmd;\n }\n return null;\n}\n\nexport function generateHelmEnvs(): ExtraEnv {\n return {\n HELM_EXPERIMENTAL_OCI: '1',\n // set cache and config files to a path in privateCacheDir to prevent file and credential leakage\n HELM_REGISTRY_CONFIG: `${upath.join(privateCacheDir(), 'registry.json')}`,\n HELM_REPOSITORY_CONFIG: `${upath.join(\n privateCacheDir(),\n 'repositories.yaml',\n )}`,\n HELM_REPOSITORY_CACHE: `${upath.join(privateCacheDir(), 'repositories')}`,\n };\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { ReleaseResult } from '../../../../modules/datasource/types';
2
+ import type { LookupUpdateConfig } from './types';
3
+ export declare function calculateAbandonment(releaseResult: ReleaseResult, config: LookupUpdateConfig): ReleaseResult;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calculateAbandonment = calculateAbandonment;
4
+ const luxon_1 = require("luxon");
5
+ const logger_1 = require("../../../../logger");
6
+ const pretty_time_1 = require("../../../../util/pretty-time");
7
+ function calculateAbandonment(releaseResult, config) {
8
+ const { lookupName } = releaseResult;
9
+ const { abandonmentThreshold } = config;
10
+ if (!abandonmentThreshold) {
11
+ logger_1.logger.trace({ lookupName }, 'No abandonmentThreshold defined, skipping abandonment check');
12
+ return releaseResult;
13
+ }
14
+ const abandonmentThresholdMs = (0, pretty_time_1.toMs)(abandonmentThreshold);
15
+ if (!abandonmentThresholdMs) {
16
+ logger_1.logger.trace({ lookupName, abandonmentThreshold }, 'Could not parse abandonmentThreshold to milliseconds, skipping abandonment check');
17
+ return releaseResult;
18
+ }
19
+ const { mostRecentTimestamp } = releaseResult;
20
+ if (!mostRecentTimestamp) {
21
+ logger_1.logger.trace({ lookupName }, 'No mostRecentTimestamp value found, skipping abandonment check');
22
+ return releaseResult;
23
+ }
24
+ const mostRecentTimestampDate = luxon_1.DateTime.fromISO(mostRecentTimestamp);
25
+ const abandonmentDate = mostRecentTimestampDate.plus({
26
+ milliseconds: abandonmentThresholdMs,
27
+ });
28
+ const now = luxon_1.DateTime.local();
29
+ const isAbandoned = abandonmentDate < now;
30
+ releaseResult.isAbandoned = isAbandoned;
31
+ if (isAbandoned) {
32
+ logger_1.logger.debug(`Package abandonment detected: ${config.packageName} (${config.datasource}) - most recent release: ${mostRecentTimestamp}`);
33
+ }
34
+ logger_1.logger.trace({
35
+ lookupName,
36
+ mostRecentTimestamp,
37
+ abandonmentThreshold,
38
+ abandonmentThresholdMs,
39
+ abandonmentDate: abandonmentDate.toISO(),
40
+ now: now.toISO(),
41
+ isAbandoned,
42
+ }, 'Calculated abandonment status');
43
+ return releaseResult;
44
+ }
45
+ //# sourceMappingURL=abandonment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abandonment.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/process/lookup/abandonment.ts"],"names":[],"mappings":";;AAMA,oDA4DC;AAlED,iCAAiC;AACjC,+CAA4C;AAE5C,8DAAoD;AAGpD,SAAgB,oBAAoB,CAClC,aAA4B,EAC5B,MAA0B;IAE1B,MAAM,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;IACrC,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC;IACxC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,EACd,6DAA6D,CAC9D,CAAC;QACF,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,sBAAsB,GAAG,IAAA,kBAAI,EAAC,oBAAoB,CAAC,CAAC;IAC1D,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,oBAAoB,EAAE,EACpC,kFAAkF,CACnF,CAAC;QACF,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,EAAE,mBAAmB,EAAE,GAAG,aAAa,CAAC;IAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,EACd,gEAAgE,CACjE,CAAC;QACF,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,MAAM,uBAAuB,GAAG,gBAAQ,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEtE,MAAM,eAAe,GAAG,uBAAuB,CAAC,IAAI,CAAC;QACnD,YAAY,EAAE,sBAAsB;KACrC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,gBAAQ,CAAC,KAAK,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAG,eAAe,GAAG,GAAG,CAAC;IAC1C,aAAa,CAAC,WAAW,GAAG,WAAW,CAAC;IAExC,IAAI,WAAW,EAAE,CAAC;QAChB,eAAM,CAAC,KAAK,CACV,iCAAiC,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,UAAU,4BAA4B,mBAAmB,EAAE,CAC3H,CAAC;IACJ,CAAC;IAED,eAAM,CAAC,KAAK,CACV;QACE,UAAU;QACV,mBAAmB;QACnB,oBAAoB;QACpB,sBAAsB;QACtB,eAAe,EAAE,eAAe,CAAC,KAAK,EAAE;QACxC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE;QAChB,WAAW;KACZ,EACD,+BAA+B,CAChC,CAAC;IAEF,OAAO,aAAa,CAAC;AACvB,CAAC","sourcesContent":["import { DateTime } from 'luxon';\nimport { logger } from '../../../../logger';\nimport type { ReleaseResult } from '../../../../modules/datasource/types';\nimport { toMs } from '../../../../util/pretty-time';\nimport type { LookupUpdateConfig } from './types';\n\nexport function calculateAbandonment(\n releaseResult: ReleaseResult,\n config: LookupUpdateConfig,\n): ReleaseResult {\n const { lookupName } = releaseResult;\n const { abandonmentThreshold } = config;\n if (!abandonmentThreshold) {\n logger.trace(\n { lookupName },\n 'No abandonmentThreshold defined, skipping abandonment check',\n );\n return releaseResult;\n }\n\n const abandonmentThresholdMs = toMs(abandonmentThreshold);\n if (!abandonmentThresholdMs) {\n logger.trace(\n { lookupName, abandonmentThreshold },\n 'Could not parse abandonmentThreshold to milliseconds, skipping abandonment check',\n );\n return releaseResult;\n }\n\n const { mostRecentTimestamp } = releaseResult;\n if (!mostRecentTimestamp) {\n logger.trace(\n { lookupName },\n 'No mostRecentTimestamp value found, skipping abandonment check',\n );\n return releaseResult;\n }\n const mostRecentTimestampDate = DateTime.fromISO(mostRecentTimestamp);\n\n const abandonmentDate = mostRecentTimestampDate.plus({\n milliseconds: abandonmentThresholdMs,\n });\n const now = DateTime.local();\n const isAbandoned = abandonmentDate < now;\n releaseResult.isAbandoned = isAbandoned;\n\n if (isAbandoned) {\n logger.debug(\n `Package abandonment detected: ${config.packageName} (${config.datasource}) - most recent release: ${mostRecentTimestamp}`,\n );\n }\n\n logger.trace(\n {\n lookupName,\n mostRecentTimestamp,\n abandonmentThreshold,\n abandonmentThresholdMs,\n abandonmentDate: abandonmentDate.toISO(),\n now: now.toISO(),\n isAbandoned,\n },\n 'Calculated abandonment status',\n );\n\n return releaseResult;\n}\n"]}
@@ -18,6 +18,7 @@ const date_1 = require("../../../../util/date");
18
18
  const package_rules_1 = require("../../../../util/package-rules");
19
19
  const regex_1 = require("../../../../util/regex");
20
20
  const result_1 = require("../../../../util/result");
21
+ const abandonment_1 = require("./abandonment");
21
22
  const bucket_1 = require("./bucket");
22
23
  const current_1 = require("./current");
23
24
  const filter_1 = require("./filter");
@@ -100,6 +101,7 @@ async function lookupUpdates(inconfig) {
100
101
  }
101
102
  const { val: releaseResult, err: lookupError } = await (0, datasource_1.getRawPkgReleases)(config)
102
103
  .transform((res) => (0, timestamps_1.calculateLatestReleaseBump)(versioningApi, res))
104
+ .transform((res) => (0, abandonment_1.calculateAbandonment)(res, config))
103
105
  .transform((res) => (0, datasource_1.applyDatasourceFilters)(res, config))
104
106
  .unwrap();
105
107
  if (lookupError instanceof Error) {