renovate 40.0.0-next.1 → 40.0.0-next.11

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 (138) hide show
  1. package/dist/config/decrypt/legacy.js +0 -1
  2. package/dist/config/decrypt/legacy.js.map +1 -1
  3. package/dist/config/decrypt.js +2 -2
  4. package/dist/config/decrypt.js.map +1 -1
  5. package/dist/config/migrate-validate.js +3 -2
  6. package/dist/config/migrate-validate.js.map +1 -1
  7. package/dist/config/migration.js +2 -1
  8. package/dist/config/migration.js.map +1 -1
  9. package/dist/config/options/index.js +2 -2
  10. package/dist/config/options/index.js.map +1 -1
  11. package/dist/config/parse.js +2 -2
  12. package/dist/config/parse.js.map +1 -1
  13. package/dist/config/presets/gitea/index.js +0 -1
  14. package/dist/config/presets/gitea/index.js.map +1 -1
  15. package/dist/config/presets/github/index.js +0 -1
  16. package/dist/config/presets/github/index.js.map +1 -1
  17. package/dist/config/presets/http/index.js +0 -1
  18. package/dist/config/presets/http/index.js.map +1 -1
  19. package/dist/config/presets/index.js +0 -7
  20. package/dist/config/presets/index.js.map +1 -1
  21. package/dist/config/presets/internal/index.js +1 -3
  22. package/dist/config/presets/internal/index.js.map +1 -1
  23. package/dist/config/schema.d.ts +2 -2
  24. package/dist/config/validation.js +2 -4
  25. package/dist/config/validation.js.map +1 -1
  26. package/dist/config-validator.js +0 -1
  27. package/dist/config-validator.js.map +1 -1
  28. package/dist/constants/category.js +0 -1
  29. package/dist/constants/category.js.map +1 -1
  30. package/dist/instrumentation/index.js +5 -3
  31. package/dist/instrumentation/index.js.map +1 -1
  32. package/dist/logger/cmd-serializer.js +0 -1
  33. package/dist/logger/cmd-serializer.js.map +1 -1
  34. package/dist/logger/config-serializer.js +0 -1
  35. package/dist/logger/config-serializer.js.map +1 -1
  36. package/dist/logger/index.js +0 -3
  37. package/dist/logger/index.js.map +1 -1
  38. package/dist/logger/once.js +4 -2
  39. package/dist/logger/once.js.map +1 -1
  40. package/dist/logger/pretty-stdout.js +0 -1
  41. package/dist/logger/pretty-stdout.js.map +1 -1
  42. package/dist/logger/renovate-logger.js +1 -1
  43. package/dist/logger/renovate-logger.js.map +1 -1
  44. package/dist/logger/utils.js +5 -10
  45. package/dist/logger/utils.js.map +1 -1
  46. package/dist/modules/datasource/custom/schema.d.ts +5 -5
  47. package/dist/modules/datasource/deno/schema.d.ts +8 -8
  48. package/dist/modules/datasource/docker/index.js +4 -2
  49. package/dist/modules/datasource/docker/index.js.map +1 -1
  50. package/dist/modules/datasource/docker/schema.d.ts +32 -32
  51. package/dist/modules/datasource/galaxy/schema.d.ts +1 -1
  52. package/dist/modules/datasource/galaxy-collection/schema.d.ts +3 -3
  53. package/dist/modules/datasource/gitea-releases/schema.d.ts +4 -4
  54. package/dist/modules/datasource/gitea-tags/schema.d.ts +4 -4
  55. package/dist/modules/datasource/hex/schema.d.ts +11 -11
  56. package/dist/modules/datasource/packagist/schema.d.ts +30 -30
  57. package/dist/modules/datasource/unity3d/index.d.ts +4 -1
  58. package/dist/modules/datasource/unity3d/index.js +36 -42
  59. package/dist/modules/datasource/unity3d/index.js.map +1 -1
  60. package/dist/modules/datasource/unity3d/schema.d.ts +47 -0
  61. package/dist/modules/datasource/unity3d/schema.js +17 -0
  62. package/dist/modules/datasource/unity3d/schema.js.map +1 -0
  63. package/dist/modules/manager/argocd/schema.d.ts +10 -10
  64. package/dist/modules/manager/azure-pipelines/schema.d.ts +10 -10
  65. package/dist/modules/manager/batect/schema.d.ts +6 -6
  66. package/dist/modules/manager/bazel/rules/docker.d.ts +9 -9
  67. package/dist/modules/manager/bazel/rules/git.d.ts +10 -10
  68. package/dist/modules/manager/bazel/rules/go.d.ts +5 -5
  69. package/dist/modules/manager/bazel/rules/oci.d.ts +3 -3
  70. package/dist/modules/manager/bazel-module/parser/fragments.d.ts +40 -40
  71. package/dist/modules/manager/bazel-module/parser/maven.d.ts +27 -27
  72. package/dist/modules/manager/bazel-module/parser/oci.d.ts +17 -17
  73. package/dist/modules/manager/bazel-module/rules.d.ts +40 -40
  74. package/dist/modules/manager/cargo/schema.d.ts +100 -100
  75. package/dist/modules/manager/circleci/schema.d.ts +6 -6
  76. package/dist/modules/manager/composer/schema.d.ts +40 -40
  77. package/dist/modules/manager/crossplane/schema.d.ts +2 -2
  78. package/dist/modules/manager/custom/jsonata/index.js +4 -0
  79. package/dist/modules/manager/custom/jsonata/index.js.map +1 -1
  80. package/dist/modules/manager/custom/jsonata/schema.d.ts +7 -7
  81. package/dist/modules/manager/fingerprint.generated.js +67 -67
  82. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  83. package/dist/modules/manager/fleet/schema.d.ts +12 -12
  84. package/dist/modules/manager/flux/schema.d.ts +50 -50
  85. package/dist/modules/manager/glasskube/schema.d.ts +8 -8
  86. package/dist/modules/manager/nix/schema.d.ts +24 -24
  87. package/dist/modules/manager/npm/schema.d.ts +13 -13
  88. package/dist/modules/manager/nuget/schema.d.ts +8 -8
  89. package/dist/modules/manager/ocb/schema.d.ts +6 -6
  90. package/dist/modules/manager/pep621/schema.d.ts +55 -55
  91. package/dist/modules/manager/pep621/utils.js +2 -1
  92. package/dist/modules/manager/pep621/utils.js.map +1 -1
  93. package/dist/modules/manager/poetry/artifacts.js +2 -1
  94. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  95. package/dist/modules/manager/poetry/extract.js +2 -1
  96. package/dist/modules/manager/poetry/extract.js.map +1 -1
  97. package/dist/modules/manager/poetry/schema.d.ts +48 -48
  98. package/dist/modules/manager/sveltos/schema.d.ts +12 -12
  99. package/dist/modules/manager/vendir/schema.d.ts +27 -27
  100. package/dist/modules/platform/api.d.ts +1 -1
  101. package/dist/modules/platform/bitbucket/index.d.ts +1 -0
  102. package/dist/modules/platform/bitbucket/index.js +5 -0
  103. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  104. package/dist/modules/platform/bitbucket/schema.d.ts +17 -17
  105. package/dist/modules/platform/bitbucket-server/index.d.ts +1 -1
  106. package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
  107. package/dist/modules/platform/gitea/index.d.ts +1 -0
  108. package/dist/modules/platform/gitea/index.js +11 -0
  109. package/dist/modules/platform/gitea/index.js.map +1 -1
  110. package/dist/modules/platform/gitea/schema.d.ts +8 -8
  111. package/dist/modules/platform/github/issue.d.ts +12 -12
  112. package/dist/modules/platform/github/schema.d.ts +65 -65
  113. package/dist/modules/platform/gitlab/index.d.ts +1 -0
  114. package/dist/modules/platform/gitlab/index.js +9 -0
  115. package/dist/modules/platform/gitlab/index.js.map +1 -1
  116. package/dist/modules/platform/scm.d.ts +1 -1
  117. package/dist/proxy.js +2 -1
  118. package/dist/proxy.js.map +1 -1
  119. package/dist/renovate.js +2 -2
  120. package/dist/renovate.js.map +1 -1
  121. package/dist/util/cache/package/redis.js +0 -1
  122. package/dist/util/cache/package/redis.js.map +1 -1
  123. package/dist/util/cache/repository/impl/base.d.ts +1 -1
  124. package/dist/util/exec/containerbase.js +11 -11
  125. package/dist/util/exec/containerbase.js.map +1 -1
  126. package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +5 -5
  127. package/dist/util/http/cache/schema.d.ts +2 -2
  128. package/dist/util/http/legacy.js +4 -1
  129. package/dist/util/http/legacy.js.map +1 -1
  130. package/dist/util/string.d.ts +15 -0
  131. package/dist/util/string.js +75 -0
  132. package/dist/util/string.js.map +1 -1
  133. package/dist/util/yaml.js +2 -6
  134. package/dist/util/yaml.js.map +1 -1
  135. package/dist/workers/repository/cache.js +0 -1
  136. package/dist/workers/repository/cache.js.map +1 -1
  137. package/package.json +19 -24
  138. package/renovate-schema.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"once.js","sourceRoot":"","sources":["../../lib/logger/once.ts"],"names":[],"mappings":";;AAsCA,oBAYC;AAMD,sBAEC;AAxDD;;;;;;;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;IACH,CAAC;IAAC,MAAM,0BAA0B,CAAC,CAAC;QAClC,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,qBAAqB;IACrB,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/**\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 } catch /* istanbul ignore next */ {\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 // istanbul ignore if\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":";;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,yCAAyC;IAC3C,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,yCAAyC;IACzC,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"]}
@@ -94,7 +94,6 @@ class RenovateStream extends node_stream_1.Stream {
94
94
  this.readable = true;
95
95
  this.writable = true;
96
96
  }
97
- // istanbul ignore next
98
97
  write(data) {
99
98
  this.emit('data', formatRecord(data));
100
99
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"pretty-stdout.js","sourceRoot":"","sources":["../../lib/logger/pretty-stdout.ts"],"names":[],"mappings":"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","sourcesContent":["// Code originally derived from https://github.com/hadfieldn/node-bunyan-prettystream but since heavily edited\n// Neither fork nor original repo appear to be maintained\n\nimport { Stream } from 'node:stream';\nimport * as util from 'node:util';\nimport chalk from 'chalk';\nimport stringify from 'json-stringify-pretty-compact';\nimport type { BunyanRecord } from './types';\n\nconst bunyanFields = [\n 'name',\n 'hostname',\n 'pid',\n 'level',\n 'v',\n 'time',\n 'msg',\n 'start_time',\n];\nconst metaFields = [\n 'repository',\n 'baseBranch',\n 'packageFile',\n 'depType',\n 'dependency',\n 'dependencies',\n 'branch',\n];\n\nconst levels: Record<number, string> = {\n 10: chalk.gray('TRACE'),\n 20: chalk.blue('DEBUG'),\n 30: chalk.green(' INFO'),\n 40: chalk.magenta(' WARN'),\n 50: chalk.red('ERROR'),\n 60: chalk.bgRed('FATAL'),\n};\n\nexport function indent(str: string, leading = false): string {\n const prefix = leading ? ' ' : '';\n return prefix + str.split(/\\r?\\n/).join('\\n '); // TODO #12874\n}\n\nexport function getMeta(rec: BunyanRecord): string {\n if (!rec) {\n return '';\n }\n let res = rec.module ? ` [${rec.module}]` : ``;\n const filteredMeta = metaFields.filter((elem) => rec[elem]);\n if (!filteredMeta.length) {\n return res;\n }\n const metaStr = filteredMeta\n .map((field) => `${field}=${String(rec[field])}`)\n .join(', ');\n res = ` (${metaStr})${res}`;\n return chalk.gray(res);\n}\n\nexport function getDetails(rec: BunyanRecord): string {\n if (!rec) {\n return '';\n }\n const recFiltered = { ...rec };\n delete recFiltered.module;\n Object.keys(recFiltered).forEach((key) => {\n if (\n key === 'logContext' ||\n bunyanFields.includes(key) ||\n metaFields.includes(key)\n ) {\n delete recFiltered[key];\n }\n });\n const remainingKeys = Object.keys(recFiltered);\n if (remainingKeys.length === 0) {\n return '';\n }\n return `${remainingKeys\n .map((key) => `${indent(`\"${key}\": ${stringify(recFiltered[key])}`, true)}`)\n .join(',\\n')}\\n`;\n}\n\nexport function formatRecord(rec: BunyanRecord): string {\n const level = levels[rec.level];\n const msg = `${indent(rec.msg)}`;\n const meta = getMeta(rec);\n const details = getDetails(rec);\n return util.format('%s: %s%s\\n%s', level, msg, meta, details);\n}\n\nexport class RenovateStream extends Stream {\n readable: boolean;\n\n writable: boolean;\n\n constructor() {\n super();\n this.readable = true;\n this.writable = true;\n }\n\n // istanbul ignore next\n write(data: BunyanRecord): boolean {\n this.emit('data', formatRecord(data));\n return true;\n }\n}\n"]}
1
+ {"version":3,"file":"pretty-stdout.js","sourceRoot":"","sources":["../../lib/logger/pretty-stdout.ts"],"names":[],"mappings":"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","sourcesContent":["// Code originally derived from https://github.com/hadfieldn/node-bunyan-prettystream but since heavily edited\n// Neither fork nor original repo appear to be maintained\n\nimport { Stream } from 'node:stream';\nimport * as util from 'node:util';\nimport chalk from 'chalk';\nimport stringify from 'json-stringify-pretty-compact';\nimport type { BunyanRecord } from './types';\n\nconst bunyanFields = [\n 'name',\n 'hostname',\n 'pid',\n 'level',\n 'v',\n 'time',\n 'msg',\n 'start_time',\n];\nconst metaFields = [\n 'repository',\n 'baseBranch',\n 'packageFile',\n 'depType',\n 'dependency',\n 'dependencies',\n 'branch',\n];\n\nconst levels: Record<number, string> = {\n 10: chalk.gray('TRACE'),\n 20: chalk.blue('DEBUG'),\n 30: chalk.green(' INFO'),\n 40: chalk.magenta(' WARN'),\n 50: chalk.red('ERROR'),\n 60: chalk.bgRed('FATAL'),\n};\n\nexport function indent(str: string, leading = false): string {\n const prefix = leading ? ' ' : '';\n return prefix + str.split(/\\r?\\n/).join('\\n '); // TODO #12874\n}\n\nexport function getMeta(rec: BunyanRecord): string {\n if (!rec) {\n return '';\n }\n let res = rec.module ? ` [${rec.module}]` : ``;\n const filteredMeta = metaFields.filter((elem) => rec[elem]);\n if (!filteredMeta.length) {\n return res;\n }\n const metaStr = filteredMeta\n .map((field) => `${field}=${String(rec[field])}`)\n .join(', ');\n res = ` (${metaStr})${res}`;\n return chalk.gray(res);\n}\n\nexport function getDetails(rec: BunyanRecord): string {\n if (!rec) {\n return '';\n }\n const recFiltered = { ...rec };\n delete recFiltered.module;\n Object.keys(recFiltered).forEach((key) => {\n if (\n key === 'logContext' ||\n bunyanFields.includes(key) ||\n metaFields.includes(key)\n ) {\n delete recFiltered[key];\n }\n });\n const remainingKeys = Object.keys(recFiltered);\n if (remainingKeys.length === 0) {\n return '';\n }\n return `${remainingKeys\n .map((key) => `${indent(`\"${key}\": ${stringify(recFiltered[key])}`, true)}`)\n .join(',\\n')}\\n`;\n}\n\nexport function formatRecord(rec: BunyanRecord): string {\n const level = levels[rec.level];\n const msg = `${indent(rec.msg)}`;\n const meta = getMeta(rec);\n const details = getDetails(rec);\n return util.format('%s: %s%s\\n%s', level, msg, meta, details);\n}\n\nexport class RenovateStream extends Stream {\n readable: boolean;\n\n writable: boolean;\n\n constructor() {\n super();\n this.readable = true;\n this.writable = true;\n }\n\n write(data: BunyanRecord): boolean {\n this.emit('data', formatRecord(data));\n return true;\n }\n}\n"]}
@@ -83,7 +83,7 @@ class RenovateLogger {
83
83
  let level = _level;
84
84
  if (is_1.default.string(msg)) {
85
85
  const remappedLevel = (0, remap_1.getRemappedLevel)(msg);
86
- // istanbul ignore if: not easily testable
86
+ /* v8 ignore next 4: not easily testable */
87
87
  if (remappedLevel) {
88
88
  meta.oldLevel = level;
89
89
  level = remappedLevel;
@@ -1 +1 @@
1
- {"version":3,"file":"renovate-logger.js","sourceRoot":"","sources":["../../lib/logger/renovate-logger.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport type * as bunyan from 'bunyan';\nimport { once, reset as onceReset } from './once';\nimport { getRemappedLevel } from './remap';\nimport type { Logger } from './types';\nimport { getMessage, toMeta, withSanitizer } from './utils';\n\nconst loggerLevels: bunyan.LogLevelString[] = [\n 'trace',\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'fatal',\n];\n\ntype LoggerFunction = (p1: string | Record<string, any>, p2?: string) => void;\n\nexport class RenovateLogger implements Logger {\n readonly logger: Logger = { once: { reset: onceReset } } as any;\n readonly once = this.logger.once;\n\n constructor(\n private readonly bunyanLogger: bunyan,\n private context: string,\n private meta: Record<string, unknown>,\n ) {\n for (const level of loggerLevels) {\n this.logger[level] = this.logFactory(level) as never;\n this.logger.once[level] = this.logOnceFn(level);\n }\n }\n\n trace(p1: string): void;\n trace(p1: Record<string, any>, p2?: string): void;\n trace(p1: string | Record<string, any>, p2?: string): void {\n this.log('trace', p1, p2);\n }\n\n debug(p1: string): void;\n debug(p1: Record<string, any>, p2?: string): void;\n debug(p1: string | Record<string, any>, p2?: string): void {\n this.log('debug', p1, p2);\n }\n\n info(p1: string): void;\n info(p1: Record<string, any>, p2?: string): void;\n info(p1: string | Record<string, any>, p2?: string): void {\n this.log('info', p1, p2);\n }\n\n warn(p1: string): void;\n warn(p1: Record<string, any>, p2?: string): void;\n warn(p1: string | Record<string, any>, p2?: string): void {\n this.log('warn', p1, p2);\n }\n\n error(p1: string): void;\n error(p1: Record<string, any>, p2?: string): void;\n error(p1: string | Record<string, any>, p2?: string): void {\n this.log('error', p1, p2);\n }\n\n fatal(p1: string): void;\n fatal(p1: Record<string, any>, p2?: string): void;\n fatal(p1: string | Record<string, any>, p2?: string): void {\n this.log('fatal', p1, p2);\n }\n\n addStream(stream: bunyan.Stream): void {\n this.bunyanLogger.addStream(withSanitizer(stream));\n }\n\n childLogger(): RenovateLogger {\n return new RenovateLogger(\n this.bunyanLogger.child({}),\n this.context,\n this.meta,\n );\n }\n\n get logContext(): string {\n return this.context;\n }\n\n set logContext(context: string) {\n this.context = context;\n }\n\n setMeta(obj: Record<string, unknown>): void {\n this.meta = { ...obj };\n }\n\n addMeta(obj: Record<string, unknown>): void {\n this.meta = { ...this.meta, ...obj };\n }\n\n removeMeta(fields: string[]): void {\n for (const key of Object.keys(this.meta)) {\n if (fields.includes(key)) {\n delete this.meta[key];\n }\n }\n }\n\n private logFactory(_level: bunyan.LogLevelString): LoggerFunction {\n return (p1: string | Record<string, any>, p2?: string): void => {\n const meta: Record<string, unknown> = {\n logContext: this.context,\n ...this.meta,\n ...toMeta(p1),\n };\n const msg = getMessage(p1, p2);\n let level = _level;\n\n if (is.string(msg)) {\n const remappedLevel = getRemappedLevel(msg);\n // istanbul ignore if: not easily testable\n if (remappedLevel) {\n meta.oldLevel = level;\n level = remappedLevel;\n }\n this.bunyanLogger[level](meta, msg);\n } else {\n this.bunyanLogger[level](meta);\n }\n };\n }\n\n private logOnceFn(level: bunyan.LogLevelString): LoggerFunction {\n const logOnceFn = (p1: string | Record<string, any>, p2?: string): void => {\n once(() => {\n const logFn = this[level].bind(this); // bind to the instance.\n if (is.string(p1)) {\n logFn(p1);\n } else {\n logFn(p1, p2);\n }\n }, logOnceFn);\n };\n return logOnceFn;\n }\n\n private log(\n level: bunyan.LogLevelString,\n p1: string | Record<string, any>,\n p2?: string,\n ): void {\n const logFn = this.logger[level];\n if (is.string(p1)) {\n logFn(p1);\n } else {\n logFn(p1, p2);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"renovate-logger.js","sourceRoot":"","sources":["../../lib/logger/renovate-logger.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport type * as bunyan from 'bunyan';\nimport { once, reset as onceReset } from './once';\nimport { getRemappedLevel } from './remap';\nimport type { Logger } from './types';\nimport { getMessage, toMeta, withSanitizer } from './utils';\n\nconst loggerLevels: bunyan.LogLevelString[] = [\n 'trace',\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'fatal',\n];\n\ntype LoggerFunction = (p1: string | Record<string, any>, p2?: string) => void;\n\nexport class RenovateLogger implements Logger {\n readonly logger: Logger = { once: { reset: onceReset } } as any;\n readonly once = this.logger.once;\n\n constructor(\n private readonly bunyanLogger: bunyan,\n private context: string,\n private meta: Record<string, unknown>,\n ) {\n for (const level of loggerLevels) {\n this.logger[level] = this.logFactory(level) as never;\n this.logger.once[level] = this.logOnceFn(level);\n }\n }\n\n trace(p1: string): void;\n trace(p1: Record<string, any>, p2?: string): void;\n trace(p1: string | Record<string, any>, p2?: string): void {\n this.log('trace', p1, p2);\n }\n\n debug(p1: string): void;\n debug(p1: Record<string, any>, p2?: string): void;\n debug(p1: string | Record<string, any>, p2?: string): void {\n this.log('debug', p1, p2);\n }\n\n info(p1: string): void;\n info(p1: Record<string, any>, p2?: string): void;\n info(p1: string | Record<string, any>, p2?: string): void {\n this.log('info', p1, p2);\n }\n\n warn(p1: string): void;\n warn(p1: Record<string, any>, p2?: string): void;\n warn(p1: string | Record<string, any>, p2?: string): void {\n this.log('warn', p1, p2);\n }\n\n error(p1: string): void;\n error(p1: Record<string, any>, p2?: string): void;\n error(p1: string | Record<string, any>, p2?: string): void {\n this.log('error', p1, p2);\n }\n\n fatal(p1: string): void;\n fatal(p1: Record<string, any>, p2?: string): void;\n fatal(p1: string | Record<string, any>, p2?: string): void {\n this.log('fatal', p1, p2);\n }\n\n addStream(stream: bunyan.Stream): void {\n this.bunyanLogger.addStream(withSanitizer(stream));\n }\n\n childLogger(): RenovateLogger {\n return new RenovateLogger(\n this.bunyanLogger.child({}),\n this.context,\n this.meta,\n );\n }\n\n get logContext(): string {\n return this.context;\n }\n\n set logContext(context: string) {\n this.context = context;\n }\n\n setMeta(obj: Record<string, unknown>): void {\n this.meta = { ...obj };\n }\n\n addMeta(obj: Record<string, unknown>): void {\n this.meta = { ...this.meta, ...obj };\n }\n\n removeMeta(fields: string[]): void {\n for (const key of Object.keys(this.meta)) {\n if (fields.includes(key)) {\n delete this.meta[key];\n }\n }\n }\n\n private logFactory(_level: bunyan.LogLevelString): LoggerFunction {\n return (p1: string | Record<string, any>, p2?: string): void => {\n const meta: Record<string, unknown> = {\n logContext: this.context,\n ...this.meta,\n ...toMeta(p1),\n };\n const msg = getMessage(p1, p2);\n let level = _level;\n\n if (is.string(msg)) {\n const remappedLevel = getRemappedLevel(msg);\n /* v8 ignore next 4: not easily testable */\n if (remappedLevel) {\n meta.oldLevel = level;\n level = remappedLevel;\n }\n this.bunyanLogger[level](meta, msg);\n } else {\n this.bunyanLogger[level](meta);\n }\n };\n }\n\n private logOnceFn(level: bunyan.LogLevelString): LoggerFunction {\n const logOnceFn = (p1: string | Record<string, any>, p2?: string): void => {\n once(() => {\n const logFn = this[level].bind(this); // bind to the instance.\n if (is.string(p1)) {\n logFn(p1);\n } else {\n logFn(p1, p2);\n }\n }, logOnceFn);\n };\n return logOnceFn;\n }\n\n private log(\n level: bunyan.LogLevelString,\n p1: string | Record<string, any>,\n p2?: string,\n ): void {\n const logFn = this.logger[level];\n if (is.string(p1)) {\n logFn(p1);\n } else {\n logFn(p1, p2);\n }\n }\n}\n"]}
@@ -53,13 +53,11 @@ const contentFields = [
53
53
  'yarnLockParsed',
54
54
  ];
55
55
  function prepareZodIssues(input) {
56
- // istanbul ignore if
57
56
  if (!is_1.default.plainObject(input)) {
58
57
  return null;
59
58
  }
60
59
  let err = null;
61
60
  if (is_1.default.array(input._errors, is_1.default.string)) {
62
- // istanbul ignore else
63
61
  if (input._errors.length === 1) {
64
62
  err = input._errors[0];
65
63
  }
@@ -88,11 +86,11 @@ function prepareZodIssues(input) {
88
86
  return output;
89
87
  }
90
88
  function prepareZodError(err) {
91
- // istanbul ignore next
92
89
  Object.defineProperty(err, 'message', {
93
90
  get: () => 'Schema error',
91
+ /* v8 ignore next 3: TODO: drop set? */
94
92
  set: () => {
95
- // intentionally empty
93
+ /* intentionally empty */
96
94
  },
97
95
  });
98
96
  return {
@@ -128,14 +126,11 @@ function prepareError(err) {
128
126
  options.password = err.options.password;
129
127
  options.method = err.options.method;
130
128
  options.http2 = err.options.http2;
131
- // istanbul ignore else
132
129
  if (err.response) {
133
130
  response.response = {
134
- statusCode: err.response?.statusCode,
135
- statusMessage: err.response?.statusMessage,
136
- body:
137
- // istanbul ignore next: not easily testable
138
- err.name === 'TimeoutError'
131
+ statusCode: err.response.statusCode,
132
+ statusMessage: err.response.statusMessage,
133
+ body: err.name === 'TimeoutError'
139
134
  ? undefined
140
135
  : structuredClone(err.response.body),
141
136
  headers: structuredClone(err.response.headers),
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/logger/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { Stream } from 'node:stream';\nimport is from '@sindresorhus/is';\nimport bunyan from 'bunyan';\nimport fs from 'fs-extra';\nimport { RequestError as HttpError } from 'got';\nimport { ZodError } from 'zod';\nimport { regEx } from '../util/regex';\nimport { redactedFields, sanitize } from '../util/sanitize';\nimport type { BunyanRecord, BunyanStream } from './types';\n\nconst excludeProps = ['pid', 'time', 'v', 'hostname'];\n\nexport class ProblemStream extends Stream {\n private _problems: BunyanRecord[] = [];\n\n readable: boolean;\n\n writable: boolean;\n\n constructor() {\n super();\n this.readable = false;\n this.writable = true;\n }\n\n write(data: BunyanRecord): boolean {\n const problem = { ...data };\n for (const prop of excludeProps) {\n delete problem[prop];\n }\n this._problems.push(problem);\n return true;\n }\n\n getProblems(): BunyanRecord[] {\n return this._problems;\n }\n\n clearProblems(): void {\n this._problems = [];\n }\n}\n\nconst contentFields = [\n 'content',\n 'contents',\n 'packageLockParsed',\n 'yarnLockParsed',\n];\n\ntype ZodShortenedIssue =\n | null\n | string\n | string[]\n | {\n [key: string]: ZodShortenedIssue;\n };\n\nexport function prepareZodIssues(input: unknown): ZodShortenedIssue {\n // istanbul ignore if\n if (!is.plainObject(input)) {\n return null;\n }\n\n let err: null | string | string[] = null;\n if (is.array(input._errors, is.string)) {\n // istanbul ignore else\n if (input._errors.length === 1) {\n err = input._errors[0];\n } else if (input._errors.length > 1) {\n err = input._errors;\n } else {\n err = null;\n }\n }\n delete input._errors;\n\n if (is.emptyObject(input)) {\n return err;\n }\n\n const output: Record<string, ZodShortenedIssue> = {};\n const entries = Object.entries(input);\n for (const [key, value] of entries.slice(0, 3)) {\n const child = prepareZodIssues(value);\n if (child !== null) {\n output[key] = child;\n }\n }\n\n if (entries.length > 3) {\n output.___ = `... ${entries.length - 3} more`;\n }\n\n return output;\n}\n\nexport function prepareZodError(err: ZodError): Record<string, unknown> {\n // istanbul ignore next\n Object.defineProperty(err, 'message', {\n get: () => 'Schema error',\n set: () => {\n // intentionally empty\n },\n });\n\n return {\n message: err.message,\n stack: err.stack,\n issues: prepareZodIssues(err.format()),\n };\n}\n\nexport default function prepareError(err: Error): Record<string, unknown> {\n if (err instanceof ZodError) {\n return prepareZodError(err);\n }\n\n const response: Record<string, unknown> = {\n ...err,\n };\n\n // Required as message is non-enumerable\n if (!response.message && err.message) {\n response.message = err.message;\n }\n\n // Required as stack is non-enumerable\n if (!response.stack && err.stack) {\n response.stack = err.stack;\n }\n\n // handle got error\n if (err instanceof HttpError) {\n const options: Record<string, unknown> = {\n headers: structuredClone(err.options.headers),\n url: err.options.url?.toString(),\n hostType: err.options.context.hostType,\n };\n response.options = options;\n\n options.username = err.options.username;\n options.password = err.options.password;\n options.method = err.options.method;\n options.http2 = err.options.http2;\n\n // istanbul ignore else\n if (err.response) {\n response.response = {\n statusCode: err.response?.statusCode,\n statusMessage: err.response?.statusMessage,\n body:\n // istanbul ignore next: not easily testable\n err.name === 'TimeoutError'\n ? undefined\n : structuredClone(err.response.body),\n headers: structuredClone(err.response.headers),\n httpVersion: err.response.httpVersion,\n retryCount: err.response.retryCount,\n };\n }\n }\n\n return response;\n}\n\ntype NestedValue = unknown[] | object;\n\nfunction isNested(value: unknown): value is NestedValue {\n return is.array(value) || is.object(value);\n}\n\nexport function sanitizeValue(\n value: unknown,\n seen = new WeakMap<NestedValue, unknown>(),\n): any {\n if (is.string(value)) {\n return sanitize(sanitizeUrls(value));\n }\n\n if (is.date(value)) {\n return value;\n }\n\n if (is.function_(value)) {\n return '[function]';\n }\n\n if (is.buffer(value)) {\n return '[content]';\n }\n\n if (is.error(value)) {\n const err = prepareError(value);\n return sanitizeValue(err, seen);\n }\n\n if (is.array(value)) {\n const length = value.length;\n const arrayResult = Array(length);\n seen.set(value, arrayResult);\n for (let idx = 0; idx < length; idx += 1) {\n const val = value[idx];\n arrayResult[idx] =\n isNested(val) && seen.has(val)\n ? seen.get(val)\n : sanitizeValue(val, seen);\n }\n return arrayResult;\n }\n\n if (is.object(value)) {\n const objectResult: Record<string, any> = {};\n seen.set(value, objectResult);\n for (const [key, val] of Object.entries<any>(value)) {\n let curValue: any;\n if (!val) {\n curValue = val;\n } else if (redactedFields.includes(key)) {\n // Do not mask/sanitize secrets templates\n if (is.string(val) && regEx(/^{{\\s*secrets\\..*}}$/).test(val)) {\n curValue = val;\n } else {\n curValue = '***********';\n }\n } else if (contentFields.includes(key)) {\n curValue = '[content]';\n } else if (key === 'secrets') {\n curValue = {};\n Object.keys(val).forEach((secretKey) => {\n curValue[secretKey] = '***********';\n });\n } else {\n curValue = seen.has(val) ? seen.get(val) : sanitizeValue(val, seen);\n }\n\n objectResult[key] = curValue;\n }\n\n return objectResult;\n }\n\n return value;\n}\n\nexport function withSanitizer(streamConfig: bunyan.Stream): bunyan.Stream {\n if (streamConfig.type === 'rotating-file') {\n throw new Error(\"Rotating files aren't supported\");\n }\n\n const stream = streamConfig.stream as BunyanStream;\n if (stream?.writable) {\n const write = (\n chunk: BunyanRecord,\n enc: BufferEncoding,\n cb: (err?: Error | null) => void,\n ): void => {\n const raw = sanitizeValue(chunk);\n const result =\n streamConfig.type === 'raw'\n ? raw\n : JSON.stringify(raw, bunyan.safeCycles()).replace(/\\n?$/, '\\n'); // TODO #12874\n stream.write(result, enc, cb);\n };\n\n return {\n ...streamConfig,\n type: 'raw',\n stream: { write },\n } as bunyan.Stream;\n }\n\n if (streamConfig.path) {\n const fileStream = fs.createWriteStream(streamConfig.path, {\n flags: 'a',\n encoding: 'utf8',\n });\n\n return withSanitizer({ ...streamConfig, stream: fileStream });\n }\n\n throw new Error(\"Missing 'stream' or 'path' for bunyan stream\");\n}\n\n/**\n * A function that terminates execution if the log level that was entered is\n * not a valid value for the Bunyan logger.\n * @param logLevelToCheck\n * @returns returns the logLevel when the logLevelToCheck is valid or the defaultLevel passed as argument when it is undefined. Else it stops execution.\n */\nexport function validateLogLevel(\n logLevelToCheck: string | undefined,\n defaultLevel: bunyan.LogLevelString,\n): bunyan.LogLevelString {\n const allowedValues: bunyan.LogLevelString[] = [\n 'trace',\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'fatal',\n ];\n\n if (\n is.undefined(logLevelToCheck) ||\n (is.string(logLevelToCheck) &&\n allowedValues.includes(logLevelToCheck as bunyan.LogLevelString))\n ) {\n // log level is in the allowed values or its undefined\n return (logLevelToCheck as bunyan.LogLevelString) ?? defaultLevel;\n }\n\n const logger = bunyan.createLogger({\n name: 'renovate',\n streams: [\n {\n level: 'fatal',\n stream: process.stdout,\n },\n ],\n });\n logger.fatal({ logLevel: logLevelToCheck }, 'Invalid log level');\n process.exit(1);\n}\n\n// Can't use `util/regex` because of circular reference to logger\nconst urlRe = /[a-z]{3,9}:\\/\\/[^@/]+@[a-z0-9.-]+/gi;\nconst urlCredRe = /\\/\\/[^@]+@/g;\nconst dataUriCredRe = /^(data:[0-9a-z-]+\\/[0-9a-z-]+;).+/i;\n\nexport function sanitizeUrls(text: string): string {\n return text\n .replace(urlRe, (url) => {\n return url.replace(urlCredRe, '//**redacted**@');\n })\n .replace(dataUriCredRe, '$1**redacted**');\n}\n\nexport function getEnv(key: string): string | undefined {\n return [process.env[`RENOVATE_${key}`], process.env[key]]\n .map((v) => v?.toLowerCase().trim())\n .find(is.nonEmptyStringAndNotWhitespace);\n}\n\nexport function getMessage(\n p1: string | Record<string, any>,\n p2?: string,\n): string | undefined {\n return is.string(p1) ? p1 : p2;\n}\n\nexport function toMeta(\n p1: string | Record<string, any>,\n): Record<string, unknown> {\n return is.object(p1) ? p1 : {};\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/logger/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { Stream } from 'node:stream';\nimport is from '@sindresorhus/is';\nimport bunyan from 'bunyan';\nimport fs from 'fs-extra';\nimport { RequestError as HttpError } from 'got';\nimport { ZodError } from 'zod';\nimport { regEx } from '../util/regex';\nimport { redactedFields, sanitize } from '../util/sanitize';\nimport type { BunyanRecord, BunyanStream } from './types';\n\nconst excludeProps = ['pid', 'time', 'v', 'hostname'];\n\nexport class ProblemStream extends Stream {\n private _problems: BunyanRecord[] = [];\n\n readable: boolean;\n\n writable: boolean;\n\n constructor() {\n super();\n this.readable = false;\n this.writable = true;\n }\n\n write(data: BunyanRecord): boolean {\n const problem = { ...data };\n for (const prop of excludeProps) {\n delete problem[prop];\n }\n this._problems.push(problem);\n return true;\n }\n\n getProblems(): BunyanRecord[] {\n return this._problems;\n }\n\n clearProblems(): void {\n this._problems = [];\n }\n}\n\nconst contentFields = [\n 'content',\n 'contents',\n 'packageLockParsed',\n 'yarnLockParsed',\n];\n\ntype ZodShortenedIssue =\n | null\n | string\n | string[]\n | {\n [key: string]: ZodShortenedIssue;\n };\n\nexport function prepareZodIssues(input: unknown): ZodShortenedIssue {\n if (!is.plainObject(input)) {\n return null;\n }\n\n let err: null | string | string[] = null;\n if (is.array(input._errors, is.string)) {\n if (input._errors.length === 1) {\n err = input._errors[0];\n } else if (input._errors.length > 1) {\n err = input._errors;\n } else {\n err = null;\n }\n }\n delete input._errors;\n\n if (is.emptyObject(input)) {\n return err;\n }\n\n const output: Record<string, ZodShortenedIssue> = {};\n const entries = Object.entries(input);\n for (const [key, value] of entries.slice(0, 3)) {\n const child = prepareZodIssues(value);\n if (child !== null) {\n output[key] = child;\n }\n }\n\n if (entries.length > 3) {\n output.___ = `... ${entries.length - 3} more`;\n }\n\n return output;\n}\n\nexport function prepareZodError(err: ZodError): Record<string, unknown> {\n Object.defineProperty(err, 'message', {\n get: () => 'Schema error',\n /* v8 ignore next 3: TODO: drop set? */\n set: () => {\n /* intentionally empty */\n },\n });\n\n return {\n message: err.message,\n stack: err.stack,\n issues: prepareZodIssues(err.format()),\n };\n}\n\nexport default function prepareError(err: Error): Record<string, unknown> {\n if (err instanceof ZodError) {\n return prepareZodError(err);\n }\n\n const response: Record<string, unknown> = {\n ...err,\n };\n\n // Required as message is non-enumerable\n if (!response.message && err.message) {\n response.message = err.message;\n }\n\n // Required as stack is non-enumerable\n if (!response.stack && err.stack) {\n response.stack = err.stack;\n }\n\n // handle got error\n if (err instanceof HttpError) {\n const options: Record<string, unknown> = {\n headers: structuredClone(err.options.headers),\n url: err.options.url?.toString(),\n hostType: err.options.context.hostType,\n };\n response.options = options;\n\n options.username = err.options.username;\n options.password = err.options.password;\n options.method = err.options.method;\n options.http2 = err.options.http2;\n\n if (err.response) {\n response.response = {\n statusCode: err.response.statusCode,\n statusMessage: err.response.statusMessage,\n body:\n err.name === 'TimeoutError'\n ? undefined\n : structuredClone(err.response.body),\n headers: structuredClone(err.response.headers),\n httpVersion: err.response.httpVersion,\n retryCount: err.response.retryCount,\n };\n }\n }\n\n return response;\n}\n\ntype NestedValue = unknown[] | object;\n\nfunction isNested(value: unknown): value is NestedValue {\n return is.array(value) || is.object(value);\n}\n\nexport function sanitizeValue(\n value: unknown,\n seen = new WeakMap<NestedValue, unknown>(),\n): any {\n if (is.string(value)) {\n return sanitize(sanitizeUrls(value));\n }\n\n if (is.date(value)) {\n return value;\n }\n\n if (is.function_(value)) {\n return '[function]';\n }\n\n if (is.buffer(value)) {\n return '[content]';\n }\n\n if (is.error(value)) {\n const err = prepareError(value);\n return sanitizeValue(err, seen);\n }\n\n if (is.array(value)) {\n const length = value.length;\n const arrayResult = Array(length);\n seen.set(value, arrayResult);\n for (let idx = 0; idx < length; idx += 1) {\n const val = value[idx];\n arrayResult[idx] =\n isNested(val) && seen.has(val)\n ? seen.get(val)\n : sanitizeValue(val, seen);\n }\n return arrayResult;\n }\n\n if (is.object(value)) {\n const objectResult: Record<string, any> = {};\n seen.set(value, objectResult);\n for (const [key, val] of Object.entries<any>(value)) {\n let curValue: any;\n if (!val) {\n curValue = val;\n } else if (redactedFields.includes(key)) {\n // Do not mask/sanitize secrets templates\n if (is.string(val) && regEx(/^{{\\s*secrets\\..*}}$/).test(val)) {\n curValue = val;\n } else {\n curValue = '***********';\n }\n } else if (contentFields.includes(key)) {\n curValue = '[content]';\n } else if (key === 'secrets') {\n curValue = {};\n Object.keys(val).forEach((secretKey) => {\n curValue[secretKey] = '***********';\n });\n } else {\n curValue = seen.has(val) ? seen.get(val) : sanitizeValue(val, seen);\n }\n\n objectResult[key] = curValue;\n }\n\n return objectResult;\n }\n\n return value;\n}\n\nexport function withSanitizer(streamConfig: bunyan.Stream): bunyan.Stream {\n if (streamConfig.type === 'rotating-file') {\n throw new Error(\"Rotating files aren't supported\");\n }\n\n const stream = streamConfig.stream as BunyanStream;\n if (stream?.writable) {\n const write = (\n chunk: BunyanRecord,\n enc: BufferEncoding,\n cb: (err?: Error | null) => void,\n ): void => {\n const raw = sanitizeValue(chunk);\n const result =\n streamConfig.type === 'raw'\n ? raw\n : JSON.stringify(raw, bunyan.safeCycles()).replace(/\\n?$/, '\\n'); // TODO #12874\n stream.write(result, enc, cb);\n };\n\n return {\n ...streamConfig,\n type: 'raw',\n stream: { write },\n } as bunyan.Stream;\n }\n\n if (streamConfig.path) {\n const fileStream = fs.createWriteStream(streamConfig.path, {\n flags: 'a',\n encoding: 'utf8',\n });\n\n return withSanitizer({ ...streamConfig, stream: fileStream });\n }\n\n throw new Error(\"Missing 'stream' or 'path' for bunyan stream\");\n}\n\n/**\n * A function that terminates execution if the log level that was entered is\n * not a valid value for the Bunyan logger.\n * @param logLevelToCheck\n * @returns returns the logLevel when the logLevelToCheck is valid or the defaultLevel passed as argument when it is undefined. Else it stops execution.\n */\nexport function validateLogLevel(\n logLevelToCheck: string | undefined,\n defaultLevel: bunyan.LogLevelString,\n): bunyan.LogLevelString {\n const allowedValues: bunyan.LogLevelString[] = [\n 'trace',\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'fatal',\n ];\n\n if (\n is.undefined(logLevelToCheck) ||\n (is.string(logLevelToCheck) &&\n allowedValues.includes(logLevelToCheck as bunyan.LogLevelString))\n ) {\n // log level is in the allowed values or its undefined\n return (logLevelToCheck as bunyan.LogLevelString) ?? defaultLevel;\n }\n\n const logger = bunyan.createLogger({\n name: 'renovate',\n streams: [\n {\n level: 'fatal',\n stream: process.stdout,\n },\n ],\n });\n logger.fatal({ logLevel: logLevelToCheck }, 'Invalid log level');\n process.exit(1);\n}\n\n// Can't use `util/regex` because of circular reference to logger\nconst urlRe = /[a-z]{3,9}:\\/\\/[^@/]+@[a-z0-9.-]+/gi;\nconst urlCredRe = /\\/\\/[^@]+@/g;\nconst dataUriCredRe = /^(data:[0-9a-z-]+\\/[0-9a-z-]+;).+/i;\n\nexport function sanitizeUrls(text: string): string {\n return text\n .replace(urlRe, (url) => {\n return url.replace(urlCredRe, '//**redacted**@');\n })\n .replace(dataUriCredRe, '$1**redacted**');\n}\n\nexport function getEnv(key: string): string | undefined {\n return [process.env[`RENOVATE_${key}`], process.env[key]]\n .map((v) => v?.toLowerCase().trim())\n .find(is.nonEmptyStringAndNotWhitespace);\n}\n\nexport function getMessage(\n p1: string | Record<string, any>,\n p2?: string,\n): string | undefined {\n return is.string(p1) ? p1 : p2;\n}\n\nexport function toMeta(\n p1: string | Record<string, any>,\n): Record<string, unknown> {\n return is.object(p1) ? p1 : {};\n}\n"]}
@@ -10,8 +10,8 @@ export declare const ReleaseResultZodSchema: z.ZodObject<{
10
10
  digest: z.ZodOptional<z.ZodString>;
11
11
  isStable: z.ZodOptional<z.ZodBoolean>;
12
12
  }, "strip", z.ZodTypeAny, {
13
- version: string;
14
13
  releaseTimestamp: import("../../../util/timestamp").Timestamp | null;
14
+ version: string;
15
15
  digest?: string | undefined;
16
16
  sourceUrl?: string | undefined;
17
17
  changelogUrl?: string | undefined;
@@ -30,8 +30,8 @@ export declare const ReleaseResultZodSchema: z.ZodObject<{
30
30
  }>, {
31
31
  newDigest: string | undefined;
32
32
  digest: undefined;
33
- version: string;
34
33
  releaseTimestamp: import("../../../util/timestamp").Timestamp | null;
34
+ version: string;
35
35
  sourceUrl?: string | undefined;
36
36
  changelogUrl?: string | undefined;
37
37
  isDeprecated?: boolean | undefined;
@@ -56,19 +56,19 @@ export declare const ReleaseResultZodSchema: z.ZodObject<{
56
56
  releases: {
57
57
  newDigest: string | undefined;
58
58
  digest: undefined;
59
- version: string;
60
59
  releaseTimestamp: import("../../../util/timestamp").Timestamp | null;
60
+ version: string;
61
61
  sourceUrl?: string | undefined;
62
62
  changelogUrl?: string | undefined;
63
63
  isDeprecated?: boolean | undefined;
64
64
  isStable?: boolean | undefined;
65
65
  sourceDirectory?: string | undefined;
66
66
  }[];
67
- tags?: Record<string, string> | undefined;
68
67
  sourceUrl?: string | undefined;
69
68
  changelogUrl?: string | undefined;
70
69
  homepage?: string | undefined;
71
70
  sourceDirectory?: string | undefined;
71
+ tags?: Record<string, string> | undefined;
72
72
  }, {
73
73
  releases: {
74
74
  version: string;
@@ -80,9 +80,9 @@ export declare const ReleaseResultZodSchema: z.ZodObject<{
80
80
  isStable?: boolean | undefined;
81
81
  sourceDirectory?: string | undefined;
82
82
  }[];
83
- tags?: Record<string, string> | undefined;
84
83
  sourceUrl?: string | undefined;
85
84
  changelogUrl?: string | undefined;
86
85
  homepage?: string | undefined;
87
86
  sourceDirectory?: string | undefined;
87
+ tags?: Record<string, string> | undefined;
88
88
  }>;
@@ -17,8 +17,8 @@ export declare const DenoAPIModuleResponse: z.ZodObject<{
17
17
  }[], any[]>, Record<string, string>, any[]>>;
18
18
  versions: z.ZodArray<z.ZodString, "many">;
19
19
  }, "strip", z.ZodTypeAny, {
20
- tags: Record<string, string>;
21
20
  versions: string[];
21
+ tags: Record<string, string>;
22
22
  }, {
23
23
  versions: string[];
24
24
  tags?: unknown;
@@ -29,13 +29,13 @@ export declare const DenoAPIUploadOptions: z.ZodObject<{
29
29
  repository: z.ZodString;
30
30
  subdir: z.ZodOptional<z.ZodString>;
31
31
  }, "strip", z.ZodTypeAny, {
32
- ref: string;
33
32
  repository: string;
33
+ ref: string;
34
34
  type?: unknown;
35
35
  subdir?: string | undefined;
36
36
  }, {
37
- ref: string;
38
37
  repository: string;
38
+ ref: string;
39
39
  type?: unknown;
40
40
  subdir?: string | undefined;
41
41
  }>;
@@ -46,13 +46,13 @@ export declare const DenoAPIModuleVersionResponse: z.ZodEffects<z.ZodObject<{
46
46
  repository: z.ZodString;
47
47
  subdir: z.ZodOptional<z.ZodString>;
48
48
  }, "strip", z.ZodTypeAny, {
49
- ref: string;
50
49
  repository: string;
50
+ ref: string;
51
51
  type?: unknown;
52
52
  subdir?: string | undefined;
53
53
  }, {
54
- ref: string;
55
54
  repository: string;
55
+ ref: string;
56
56
  type?: unknown;
57
57
  subdir?: string | undefined;
58
58
  }>;
@@ -61,8 +61,8 @@ export declare const DenoAPIModuleVersionResponse: z.ZodEffects<z.ZodObject<{
61
61
  }, "strip", z.ZodTypeAny, {
62
62
  version: string;
63
63
  upload_options: {
64
- ref: string;
65
64
  repository: string;
65
+ ref: string;
66
66
  type?: unknown;
67
67
  subdir?: string | undefined;
68
68
  };
@@ -70,8 +70,8 @@ export declare const DenoAPIModuleVersionResponse: z.ZodEffects<z.ZodObject<{
70
70
  }, {
71
71
  version: string;
72
72
  upload_options: {
73
- ref: string;
74
73
  repository: string;
74
+ ref: string;
75
75
  type?: unknown;
76
76
  subdir?: string | undefined;
77
77
  };
@@ -79,8 +79,8 @@ export declare const DenoAPIModuleVersionResponse: z.ZodEffects<z.ZodObject<{
79
79
  }>, Release, {
80
80
  version: string;
81
81
  upload_options: {
82
- ref: string;
83
82
  repository: string;
83
+ ref: string;
84
84
  type?: unknown;
85
85
  subdir?: string | undefined;
86
86
  };
@@ -584,8 +584,9 @@ class DockerDatasource extends datasource_1.Datasource {
584
584
  async getDockerHubTags(dockerRepository) {
585
585
  let url = `https://hub.docker.com/v2/repositories/${dockerRepository}/tags?page_size=1000&ordering=last_updated`;
586
586
  const cache = await dockerhub_cache_1.DockerHubCache.init(dockerRepository);
587
- let needNextPage = true;
588
- while (needNextPage) {
587
+ const maxPages = global_1.GlobalConfig.get('dockerMaxPages', 20);
588
+ let page = 0, needNextPage = true;
589
+ while (needNextPage && page < maxPages) {
589
590
  const { val, err } = await this.http
590
591
  .getJsonSafe(url, schema_1.DockerHubTagsPage)
591
592
  .unwrap();
@@ -593,6 +594,7 @@ class DockerDatasource extends datasource_1.Datasource {
593
594
  logger_1.logger.debug({ err }, `Docker: error fetching data from DockerHub`);
594
595
  return null;
595
596
  }
597
+ page++;
596
598
  const { results, next, count } = val;
597
599
  needNextPage = cache.reconcile(results, count);
598
600
  if (!next) {