renovate 40.0.0-next.2 → 40.0.0-next.20

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 (294) 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.d.ts +3 -1
  4. package/dist/config/decrypt.js +56 -13
  5. package/dist/config/decrypt.js.map +1 -1
  6. package/dist/config/migrate-validate.js +3 -2
  7. package/dist/config/migrate-validate.js.map +1 -1
  8. package/dist/config/migration.js +2 -1
  9. package/dist/config/migration.js.map +1 -1
  10. package/dist/config/migrations/custom/rebase-stale-prs-migration.js +1 -1
  11. package/dist/config/migrations/custom/rebase-stale-prs-migration.js.map +1 -1
  12. package/dist/config/options/index.js +3 -3
  13. package/dist/config/options/index.js.map +1 -1
  14. package/dist/config/parse.js +2 -2
  15. package/dist/config/parse.js.map +1 -1
  16. package/dist/config/presets/gitea/index.js +0 -1
  17. package/dist/config/presets/gitea/index.js.map +1 -1
  18. package/dist/config/presets/github/index.js +0 -1
  19. package/dist/config/presets/github/index.js.map +1 -1
  20. package/dist/config/presets/gitlab/index.js +1 -1
  21. package/dist/config/presets/gitlab/index.js.map +1 -1
  22. package/dist/config/presets/http/index.js +1 -2
  23. package/dist/config/presets/http/index.js.map +1 -1
  24. package/dist/config/presets/index.js +0 -7
  25. package/dist/config/presets/index.js.map +1 -1
  26. package/dist/config/presets/internal/custom-managers.js +3 -4
  27. package/dist/config/presets/internal/custom-managers.js.map +1 -1
  28. package/dist/config/presets/internal/index.js +1 -3
  29. package/dist/config/presets/internal/index.js.map +1 -1
  30. package/dist/config/schema.d.ts +2 -2
  31. package/dist/config/validation.js +3 -5
  32. package/dist/config/validation.js.map +1 -1
  33. package/dist/config-validator.js +0 -1
  34. package/dist/config-validator.js.map +1 -1
  35. package/dist/constants/category.js +0 -1
  36. package/dist/constants/category.js.map +1 -1
  37. package/dist/data/monorepo.json +2 -1
  38. package/dist/instrumentation/index.js +5 -3
  39. package/dist/instrumentation/index.js.map +1 -1
  40. package/dist/instrumentation/utils.js +1 -1
  41. package/dist/instrumentation/utils.js.map +1 -1
  42. package/dist/logger/cmd-serializer.js +0 -1
  43. package/dist/logger/cmd-serializer.js.map +1 -1
  44. package/dist/logger/config-serializer.js +0 -1
  45. package/dist/logger/config-serializer.js.map +1 -1
  46. package/dist/logger/index.js +0 -3
  47. package/dist/logger/index.js.map +1 -1
  48. package/dist/logger/once.js +4 -2
  49. package/dist/logger/once.js.map +1 -1
  50. package/dist/logger/pretty-stdout.js +0 -1
  51. package/dist/logger/pretty-stdout.js.map +1 -1
  52. package/dist/logger/renovate-logger.js +1 -1
  53. package/dist/logger/renovate-logger.js.map +1 -1
  54. package/dist/logger/utils.js +6 -11
  55. package/dist/logger/utils.js.map +1 -1
  56. package/dist/modules/datasource/artifactory/index.js +1 -1
  57. package/dist/modules/datasource/artifactory/index.js.map +1 -1
  58. package/dist/modules/datasource/azure-pipelines-tasks/index.js +11 -1
  59. package/dist/modules/datasource/azure-pipelines-tasks/index.js.map +1 -1
  60. package/dist/modules/datasource/azure-pipelines-tasks/schema.d.ts +16 -0
  61. package/dist/modules/datasource/azure-pipelines-tasks/schema.js +2 -0
  62. package/dist/modules/datasource/azure-pipelines-tasks/schema.js.map +1 -1
  63. package/dist/modules/datasource/crate/index.js +1 -1
  64. package/dist/modules/datasource/crate/index.js.map +1 -1
  65. package/dist/modules/datasource/custom/formats/html.js +1 -1
  66. package/dist/modules/datasource/custom/formats/html.js.map +1 -1
  67. package/dist/modules/datasource/custom/formats/yaml.js +1 -1
  68. package/dist/modules/datasource/custom/formats/yaml.js.map +1 -1
  69. package/dist/modules/datasource/custom/schema.d.ts +5 -5
  70. package/dist/modules/datasource/deb/index.js +1 -1
  71. package/dist/modules/datasource/deb/index.js.map +1 -1
  72. package/dist/modules/datasource/deno/schema.d.ts +8 -8
  73. package/dist/modules/datasource/docker/common.js +1 -1
  74. package/dist/modules/datasource/docker/common.js.map +1 -1
  75. package/dist/modules/datasource/docker/index.js +5 -3
  76. package/dist/modules/datasource/docker/index.js.map +1 -1
  77. package/dist/modules/datasource/docker/schema.d.ts +32 -32
  78. package/dist/modules/datasource/galaxy/schema.d.ts +1 -1
  79. package/dist/modules/datasource/galaxy-collection/schema.d.ts +3 -3
  80. package/dist/modules/datasource/gitea-releases/schema.d.ts +4 -4
  81. package/dist/modules/datasource/gitea-tags/schema.d.ts +4 -4
  82. package/dist/modules/datasource/github-release-attachments/index.js +2 -2
  83. package/dist/modules/datasource/github-release-attachments/index.js.map +1 -1
  84. package/dist/modules/datasource/go/base.js +1 -1
  85. package/dist/modules/datasource/go/base.js.map +1 -1
  86. package/dist/modules/datasource/go/releases-goproxy.js +1 -1
  87. package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
  88. package/dist/modules/datasource/golang-version/index.js +1 -1
  89. package/dist/modules/datasource/golang-version/index.js.map +1 -1
  90. package/dist/modules/datasource/hex/schema.d.ts +11 -11
  91. package/dist/modules/datasource/hexpm-bob/index.js +1 -1
  92. package/dist/modules/datasource/hexpm-bob/index.js.map +1 -1
  93. package/dist/modules/datasource/index.js +2 -2
  94. package/dist/modules/datasource/index.js.map +1 -1
  95. package/dist/modules/datasource/maven/util.js +1 -1
  96. package/dist/modules/datasource/maven/util.js.map +1 -1
  97. package/dist/modules/datasource/nuget/v2.js +1 -1
  98. package/dist/modules/datasource/nuget/v2.js.map +1 -1
  99. package/dist/modules/datasource/nuget/v3.js +1 -1
  100. package/dist/modules/datasource/nuget/v3.js.map +1 -1
  101. package/dist/modules/datasource/packagist/schema.d.ts +30 -30
  102. package/dist/modules/datasource/pod/index.js +1 -1
  103. package/dist/modules/datasource/pod/index.js.map +1 -1
  104. package/dist/modules/datasource/pypi/index.js +1 -1
  105. package/dist/modules/datasource/pypi/index.js.map +1 -1
  106. package/dist/modules/datasource/ruby-version/index.js +1 -1
  107. package/dist/modules/datasource/ruby-version/index.js.map +1 -1
  108. package/dist/modules/datasource/rubygems/index.js +1 -1
  109. package/dist/modules/datasource/rubygems/index.js.map +1 -1
  110. package/dist/modules/datasource/rubygems/versions-endpoint-cache.js +2 -2
  111. package/dist/modules/datasource/rubygems/versions-endpoint-cache.js.map +1 -1
  112. package/dist/modules/datasource/terraform-provider/index.js +1 -1
  113. package/dist/modules/datasource/terraform-provider/index.js.map +1 -1
  114. package/dist/modules/datasource/unity3d/index.d.ts +4 -1
  115. package/dist/modules/datasource/unity3d/index.js +36 -42
  116. package/dist/modules/datasource/unity3d/index.js.map +1 -1
  117. package/dist/modules/datasource/unity3d/schema.d.ts +47 -0
  118. package/dist/modules/datasource/unity3d/schema.js +17 -0
  119. package/dist/modules/datasource/unity3d/schema.js.map +1 -0
  120. package/dist/modules/manager/argocd/schema.d.ts +10 -10
  121. package/dist/modules/manager/azure-pipelines/schema.d.ts +10 -10
  122. package/dist/modules/manager/batect/schema.d.ts +6 -6
  123. package/dist/modules/manager/batect-wrapper/artifacts.js +1 -1
  124. package/dist/modules/manager/batect-wrapper/artifacts.js.map +1 -1
  125. package/dist/modules/manager/bazel/rules/docker.d.ts +9 -9
  126. package/dist/modules/manager/bazel/rules/git.d.ts +10 -10
  127. package/dist/modules/manager/bazel/rules/git.js +7 -1
  128. package/dist/modules/manager/bazel/rules/git.js.map +1 -1
  129. package/dist/modules/manager/bazel/rules/go.d.ts +5 -5
  130. package/dist/modules/manager/bazel/rules/oci.d.ts +3 -3
  131. package/dist/modules/manager/bazel-module/parser/fragments.d.ts +40 -40
  132. package/dist/modules/manager/bazel-module/parser/maven.d.ts +27 -27
  133. package/dist/modules/manager/bazel-module/parser/oci.d.ts +17 -17
  134. package/dist/modules/manager/bazel-module/rules.d.ts +40 -40
  135. package/dist/modules/manager/bundler/artifacts.js.map +1 -1
  136. package/dist/modules/manager/cargo/schema.d.ts +100 -100
  137. package/dist/modules/manager/circleci/schema.d.ts +6 -6
  138. package/dist/modules/manager/composer/schema.d.ts +40 -40
  139. package/dist/modules/manager/composer/utils.js +9 -6
  140. package/dist/modules/manager/composer/utils.js.map +1 -1
  141. package/dist/modules/manager/crossplane/schema.d.ts +2 -2
  142. package/dist/modules/manager/custom/jsonata/index.js +4 -0
  143. package/dist/modules/manager/custom/jsonata/index.js.map +1 -1
  144. package/dist/modules/manager/custom/jsonata/schema.d.ts +7 -7
  145. package/dist/modules/manager/devbox/artifacts.d.ts +1 -1
  146. package/dist/modules/manager/devbox/artifacts.js +29 -11
  147. package/dist/modules/manager/devbox/artifacts.js.map +1 -1
  148. package/dist/modules/manager/fingerprint.generated.js +68 -68
  149. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  150. package/dist/modules/manager/fleet/schema.d.ts +12 -12
  151. package/dist/modules/manager/flux/schema.d.ts +50 -50
  152. package/dist/modules/manager/glasskube/schema.d.ts +8 -8
  153. package/dist/modules/manager/gradle-wrapper/artifacts.js +1 -1
  154. package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
  155. package/dist/modules/manager/maven/extract.js +3 -1
  156. package/dist/modules/manager/maven/extract.js.map +1 -1
  157. package/dist/modules/manager/mise/extract.js +1 -1
  158. package/dist/modules/manager/mise/extract.js.map +1 -1
  159. package/dist/modules/manager/nix/schema.d.ts +24 -24
  160. package/dist/modules/manager/npm/schema.d.ts +13 -13
  161. package/dist/modules/manager/nuget/schema.d.ts +8 -8
  162. package/dist/modules/manager/ocb/schema.d.ts +6 -6
  163. package/dist/modules/manager/pep621/schema.d.ts +55 -55
  164. package/dist/modules/manager/pep621/utils.js +1 -1
  165. package/dist/modules/manager/pep621/utils.js.map +1 -1
  166. package/dist/modules/manager/poetry/artifacts.js +3 -3
  167. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  168. package/dist/modules/manager/poetry/extract.js +2 -1
  169. package/dist/modules/manager/poetry/extract.js.map +1 -1
  170. package/dist/modules/manager/poetry/schema.d.ts +48 -48
  171. package/dist/modules/manager/sveltos/schema.d.ts +12 -12
  172. package/dist/modules/manager/terraform/lockfile/hash.d.ts +1 -1
  173. package/dist/modules/manager/vendir/schema.d.ts +27 -27
  174. package/dist/modules/platform/api.d.ts +1 -1
  175. package/dist/modules/platform/bitbucket/index.d.ts +1 -0
  176. package/dist/modules/platform/bitbucket/index.js +6 -1
  177. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  178. package/dist/modules/platform/bitbucket/schema.d.ts +17 -17
  179. package/dist/modules/platform/bitbucket-server/index.d.ts +1 -1
  180. package/dist/modules/platform/bitbucket-server/index.js +13 -11
  181. package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
  182. package/dist/modules/platform/bitbucket-server/schema.d.ts +75 -0
  183. package/dist/modules/platform/bitbucket-server/schema.js +14 -1
  184. package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
  185. package/dist/modules/platform/bitbucket-server/types.d.ts +2 -1
  186. package/dist/modules/platform/bitbucket-server/types.js.map +1 -1
  187. package/dist/modules/platform/bitbucket-server/utils.d.ts +0 -2
  188. package/dist/modules/platform/bitbucket-server/utils.js +1 -51
  189. package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
  190. package/dist/modules/platform/gerrit/client.js +1 -1
  191. package/dist/modules/platform/gerrit/client.js.map +1 -1
  192. package/dist/modules/platform/gitea/index.d.ts +1 -0
  193. package/dist/modules/platform/gitea/index.js +11 -0
  194. package/dist/modules/platform/gitea/index.js.map +1 -1
  195. package/dist/modules/platform/gitea/schema.d.ts +8 -8
  196. package/dist/modules/platform/github/common.d.ts +2 -0
  197. package/dist/modules/platform/github/common.js +16 -0
  198. package/dist/modules/platform/github/common.js.map +1 -1
  199. package/dist/modules/platform/github/index.d.ts +1 -1
  200. package/dist/modules/platform/github/index.js +6 -4
  201. package/dist/modules/platform/github/index.js.map +1 -1
  202. package/dist/modules/platform/github/issue.d.ts +12 -12
  203. package/dist/modules/platform/github/schema.d.ts +65 -65
  204. package/dist/modules/platform/gitlab/index.d.ts +1 -0
  205. package/dist/modules/platform/gitlab/index.js +9 -0
  206. package/dist/modules/platform/gitlab/index.js.map +1 -1
  207. package/dist/modules/platform/scm.d.ts +1 -1
  208. package/dist/modules/versioning/composer/index.js +10 -0
  209. package/dist/modules/versioning/composer/index.js.map +1 -1
  210. package/dist/modules/versioning/npm/index.js +2 -1
  211. package/dist/modules/versioning/npm/index.js.map +1 -1
  212. package/dist/modules/versioning/schema.js +1 -1
  213. package/dist/modules/versioning/schema.js.map +1 -1
  214. package/dist/modules/versioning/types.d.ts +4 -0
  215. package/dist/modules/versioning/types.js.map +1 -1
  216. package/dist/proxy.js +2 -1
  217. package/dist/proxy.js.map +1 -1
  218. package/dist/renovate.js +2 -2
  219. package/dist/renovate.js.map +1 -1
  220. package/dist/util/cache/package/decorator.js +2 -2
  221. package/dist/util/cache/package/decorator.js.map +1 -1
  222. package/dist/util/cache/package/redis.js +0 -1
  223. package/dist/util/cache/package/redis.js.map +1 -1
  224. package/dist/util/cache/repository/impl/base.d.ts +1 -1
  225. package/dist/util/exec/containerbase.js +12 -12
  226. package/dist/util/exec/containerbase.js.map +1 -1
  227. package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +5 -5
  228. package/dist/util/http/auth.js +0 -1
  229. package/dist/util/http/auth.js.map +1 -1
  230. package/dist/util/http/bitbucket-server.d.ts +5 -4
  231. package/dist/util/http/bitbucket-server.js +17 -20
  232. package/dist/util/http/bitbucket-server.js.map +1 -1
  233. package/dist/util/http/bitbucket.d.ts +6 -5
  234. package/dist/util/http/bitbucket.js +30 -31
  235. package/dist/util/http/bitbucket.js.map +1 -1
  236. package/dist/util/http/cache/abstract-http-cache-provider.js +1 -1
  237. package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
  238. package/dist/util/http/cache/schema.d.ts +2 -2
  239. package/dist/util/http/errors.d.ts +2 -0
  240. package/dist/util/http/errors.js +8 -0
  241. package/dist/util/http/errors.js.map +1 -0
  242. package/dist/util/http/gerrit.d.ts +6 -4
  243. package/dist/util/http/gerrit.js +11 -12
  244. package/dist/util/http/gerrit.js.map +1 -1
  245. package/dist/util/http/gitea.d.ts +5 -4
  246. package/dist/util/http/gitea.js +12 -13
  247. package/dist/util/http/gitea.js.map +1 -1
  248. package/dist/util/http/github.d.ts +14 -8
  249. package/dist/util/http/github.js +64 -60
  250. package/dist/util/http/github.js.map +1 -1
  251. package/dist/util/http/gitlab.d.ts +7 -5
  252. package/dist/util/http/gitlab.js +56 -46
  253. package/dist/util/http/gitlab.js.map +1 -1
  254. package/dist/util/http/got.d.ts +9 -0
  255. package/dist/util/http/got.js +54 -0
  256. package/dist/util/http/got.js.map +1 -0
  257. package/dist/util/http/host-rules.d.ts +2 -1
  258. package/dist/util/http/host-rules.js.map +1 -1
  259. package/dist/util/http/http.d.ts +93 -0
  260. package/dist/util/http/http.js +339 -0
  261. package/dist/util/http/http.js.map +1 -0
  262. package/dist/util/http/index.d.ts +6 -74
  263. package/dist/util/http/index.js +5 -359
  264. package/dist/util/http/index.js.map +1 -1
  265. package/dist/util/http/legacy.js +4 -1
  266. package/dist/util/http/legacy.js.map +1 -1
  267. package/dist/util/http/types.d.ts +9 -16
  268. package/dist/util/http/types.js.map +1 -1
  269. package/dist/util/string.d.ts +15 -0
  270. package/dist/util/string.js +75 -0
  271. package/dist/util/string.js.map +1 -1
  272. package/dist/util/toml.d.ts +1 -0
  273. package/dist/util/toml.js +6 -0
  274. package/dist/util/toml.js.map +1 -1
  275. package/dist/util/url.js +3 -8
  276. package/dist/util/url.js.map +1 -1
  277. package/dist/util/yaml.js +2 -6
  278. package/dist/util/yaml.js.map +1 -1
  279. package/dist/workers/global/config/parse/env.js +3 -2
  280. package/dist/workers/global/config/parse/env.js.map +1 -1
  281. package/dist/workers/global/config/parse/file.js +19 -9
  282. package/dist/workers/global/config/parse/file.js.map +1 -1
  283. package/dist/workers/global/config/parse/host-rules-from-env.js +6 -2
  284. package/dist/workers/global/config/parse/host-rules-from-env.js.map +1 -1
  285. package/dist/workers/repository/cache.js +0 -1
  286. package/dist/workers/repository/cache.js.map +1 -1
  287. package/dist/workers/repository/onboarding/pr/config-description.js +3 -1
  288. package/dist/workers/repository/onboarding/pr/config-description.js.map +1 -1
  289. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +1 -1
  290. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
  291. package/dist/workers/repository/update/pr/changelog/gitlab/index.js +1 -1
  292. package/dist/workers/repository/update/pr/changelog/gitlab/index.js.map +1 -1
  293. package/package.json +44 -49
  294. package/renovate-schema.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/logger/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport * as bunyan from 'bunyan';\nimport fs from 'fs-extra';\nimport { nanoid } from 'nanoid';\nimport upath from 'upath';\nimport cmdSerializer from './cmd-serializer';\nimport configSerializer from './config-serializer';\nimport errSerializer from './err-serializer';\nimport { RenovateStream } from './pretty-stdout';\nimport { RenovateLogger } from './renovate-logger';\nimport type { BunyanRecord, Logger } from './types';\nimport {\n ProblemStream,\n getEnv,\n validateLogLevel,\n withSanitizer,\n} from './utils';\n\nconst problems = new ProblemStream();\nlet stdoutLevel = validateLogLevel(getEnv('LOG_LEVEL'), 'info');\n\nexport function logLevel(): bunyan.LogLevelString {\n return stdoutLevel;\n}\n\nexport function createDefaultStreams(\n stdoutLevel: bunyan.LogLevelString,\n problems: ProblemStream,\n logFile: string | undefined,\n): bunyan.Stream[] {\n const stdout: bunyan.Stream = {\n name: 'stdout',\n level: stdoutLevel,\n stream: process.stdout,\n };\n\n // istanbul ignore if: not testable\n if (getEnv('LOG_FORMAT') !== 'json') {\n // TODO: typings (#9615)\n const prettyStdOut = new RenovateStream() as any;\n prettyStdOut.pipe(process.stdout);\n stdout.stream = prettyStdOut;\n stdout.type = 'raw';\n }\n\n const problemsStream: bunyan.Stream = {\n name: 'problems',\n level: 'warn' as bunyan.LogLevel,\n stream: problems as any,\n type: 'raw',\n };\n\n // istanbul ignore next: not easily testable\n const logFileStream: bunyan.Stream | undefined = is.string(logFile)\n ? createLogFileStream(logFile)\n : undefined;\n\n return [stdout, problemsStream, logFileStream].filter(\n Boolean,\n ) as bunyan.Stream[];\n}\n\n// istanbul ignore next: not easily testable\nfunction createLogFileStream(logFile: string): bunyan.Stream {\n // Ensure log file directory exists\n const directoryName = upath.dirname(logFile);\n fs.ensureDirSync(directoryName);\n\n return {\n name: 'logfile',\n path: logFile,\n level: validateLogLevel(getEnv('LOG_FILE_LEVEL'), 'debug'),\n };\n}\n\nfunction serializedSanitizedLogger(streams: bunyan.Stream[]): bunyan {\n return bunyan.createLogger({\n name: 'renovate',\n serializers: {\n body: configSerializer,\n cmd: cmdSerializer,\n config: configSerializer,\n migratedConfig: configSerializer,\n originalConfig: configSerializer,\n presetConfig: configSerializer,\n oldConfig: configSerializer,\n newConfig: configSerializer,\n err: errSerializer,\n },\n streams: streams.map(withSanitizer),\n });\n}\n\nconst defaultStreams = createDefaultStreams(\n stdoutLevel,\n problems,\n getEnv('LOG_FILE'),\n);\n\nconst bunyanLogger = serializedSanitizedLogger(defaultStreams);\nconst logContext = getEnv('LOG_CONTEXT') ?? nanoid();\nconst loggerInternal = new RenovateLogger(bunyanLogger, logContext, {});\n\nexport const logger: Logger = loggerInternal;\n\nexport function setContext(value: string): void {\n loggerInternal.logContext = value;\n}\n\nexport function getContext(): any {\n return loggerInternal.logContext;\n}\n\n// setMeta overrides existing meta, may remove fields if no longer existing\nexport function setMeta(obj: Record<string, unknown>): void {\n loggerInternal.setMeta(obj);\n}\n\n// addMeta overrides or adds fields but does not remove any\nexport function addMeta(obj: Record<string, unknown>): void {\n loggerInternal.addMeta(obj);\n}\n\n// removeMeta removes the provided fields from meta\nexport function removeMeta(fields: string[]): void {\n loggerInternal.removeMeta(fields);\n}\n\nexport function withMeta<T>(obj: Record<string, unknown>, cb: () => T): T {\n setMeta(obj);\n try {\n return cb();\n } finally {\n removeMeta(Object.keys(obj));\n }\n}\n\nexport /* istanbul ignore next */ function addStream(\n stream: bunyan.Stream,\n): void {\n loggerInternal.addStream(stream);\n}\n\n/**\n * For testing purposes only\n * @param name stream name\n * @param level log level\n * @private\n */\nexport function levels(\n name: 'stdout' | 'logfile',\n level: bunyan.LogLevelString,\n): void {\n bunyanLogger.levels(name, level);\n if (name === 'stdout') {\n stdoutLevel = level;\n }\n}\n\nexport function getProblems(): BunyanRecord[] {\n return problems.getProblems();\n}\n\nexport function clearProblems(): void {\n return problems.clearProblems();\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/logger/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport * as bunyan from 'bunyan';\nimport fs from 'fs-extra';\nimport { nanoid } from 'nanoid';\nimport upath from 'upath';\nimport cmdSerializer from './cmd-serializer';\nimport configSerializer from './config-serializer';\nimport errSerializer from './err-serializer';\nimport { RenovateStream } from './pretty-stdout';\nimport { RenovateLogger } from './renovate-logger';\nimport type { BunyanRecord, Logger } from './types';\nimport {\n ProblemStream,\n getEnv,\n validateLogLevel,\n withSanitizer,\n} from './utils';\n\nconst problems = new ProblemStream();\nlet stdoutLevel = validateLogLevel(getEnv('LOG_LEVEL'), 'info');\n\nexport function logLevel(): bunyan.LogLevelString {\n return stdoutLevel;\n}\n\nexport function createDefaultStreams(\n stdoutLevel: bunyan.LogLevelString,\n problems: ProblemStream,\n logFile: string | undefined,\n): bunyan.Stream[] {\n const stdout: bunyan.Stream = {\n name: 'stdout',\n level: stdoutLevel,\n stream: process.stdout,\n };\n\n if (getEnv('LOG_FORMAT') !== 'json') {\n // TODO: typings (#9615)\n const prettyStdOut = new RenovateStream() as any;\n prettyStdOut.pipe(process.stdout);\n stdout.stream = prettyStdOut;\n stdout.type = 'raw';\n }\n\n const problemsStream: bunyan.Stream = {\n name: 'problems',\n level: 'warn' as bunyan.LogLevel,\n stream: problems as any,\n type: 'raw',\n };\n\n const logFileStream: bunyan.Stream | undefined = is.string(logFile)\n ? createLogFileStream(logFile)\n : undefined;\n\n return [stdout, problemsStream, logFileStream].filter(\n Boolean,\n ) as bunyan.Stream[];\n}\n\nfunction createLogFileStream(logFile: string): bunyan.Stream {\n // Ensure log file directory exists\n const directoryName = upath.dirname(logFile);\n fs.ensureDirSync(directoryName);\n\n return {\n name: 'logfile',\n path: logFile,\n level: validateLogLevel(getEnv('LOG_FILE_LEVEL'), 'debug'),\n };\n}\n\nfunction serializedSanitizedLogger(streams: bunyan.Stream[]): bunyan {\n return bunyan.createLogger({\n name: 'renovate',\n serializers: {\n body: configSerializer,\n cmd: cmdSerializer,\n config: configSerializer,\n migratedConfig: configSerializer,\n originalConfig: configSerializer,\n presetConfig: configSerializer,\n oldConfig: configSerializer,\n newConfig: configSerializer,\n err: errSerializer,\n },\n streams: streams.map(withSanitizer),\n });\n}\n\nconst defaultStreams = createDefaultStreams(\n stdoutLevel,\n problems,\n getEnv('LOG_FILE'),\n);\n\nconst bunyanLogger = serializedSanitizedLogger(defaultStreams);\nconst logContext = getEnv('LOG_CONTEXT') ?? nanoid();\nconst loggerInternal = new RenovateLogger(bunyanLogger, logContext, {});\n\nexport const logger: Logger = loggerInternal;\n\nexport function setContext(value: string): void {\n loggerInternal.logContext = value;\n}\n\nexport function getContext(): any {\n return loggerInternal.logContext;\n}\n\n// setMeta overrides existing meta, may remove fields if no longer existing\nexport function setMeta(obj: Record<string, unknown>): void {\n loggerInternal.setMeta(obj);\n}\n\n// addMeta overrides or adds fields but does not remove any\nexport function addMeta(obj: Record<string, unknown>): void {\n loggerInternal.addMeta(obj);\n}\n\n// removeMeta removes the provided fields from meta\nexport function removeMeta(fields: string[]): void {\n loggerInternal.removeMeta(fields);\n}\n\nexport function withMeta<T>(obj: Record<string, unknown>, cb: () => T): T {\n setMeta(obj);\n try {\n return cb();\n } finally {\n removeMeta(Object.keys(obj));\n }\n}\n\nexport function addStream(stream: bunyan.Stream): void {\n loggerInternal.addStream(stream);\n}\n\n/**\n * For testing purposes only\n * @param name stream name\n * @param level log level\n * @private\n */\nexport function levels(\n name: 'stdout' | 'logfile',\n level: bunyan.LogLevelString,\n): void {\n bunyanLogger.levels(name, level);\n if (name === 'stdout') {\n stdoutLevel = level;\n }\n}\n\nexport function getProblems(): BunyanRecord[] {\n return problems.getProblems();\n}\n\nexport function clearProblems(): void {\n return problems.clearProblems();\n}\n"]}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.once = once;
4
4
  exports.reset = reset;
5
+ // TODO: use `callsite` package instead?
5
6
  /**
6
7
  * Get the single frame of this function's callers stack.
7
8
  *
@@ -23,8 +24,9 @@ function getCallSite(omitFn) {
23
24
  if (callsite) {
24
25
  result = callsite.toString();
25
26
  }
27
+ /* v8 ignore next 2: should not happen */
26
28
  }
27
- catch /* istanbul ignore next */ {
29
+ catch {
28
30
  // no-op
29
31
  }
30
32
  finally {
@@ -36,7 +38,7 @@ function getCallSite(omitFn) {
36
38
  const keys = new Set();
37
39
  function once(callback, omitFn = once) {
38
40
  const key = getCallSite(omitFn);
39
- // istanbul ignore if
41
+ /* v8 ignore next 3: should not happen */
40
42
  if (!key) {
41
43
  return;
42
44
  }
@@ -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),
@@ -156,7 +151,7 @@ function sanitizeValue(value, seen = new WeakMap()) {
156
151
  if (is_1.default.date(value)) {
157
152
  return value;
158
153
  }
159
- if (is_1.default.function_(value)) {
154
+ if (is_1.default.function(value)) {
160
155
  return '[function]';
161
156
  }
162
157
  if (is_1.default.buffer(value)) {
@@ -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"]}
@@ -31,7 +31,7 @@ class ArtifactoryDatasource extends datasource_1.Datasource {
31
31
  releases: [],
32
32
  };
33
33
  try {
34
- const response = await this.http.get(url);
34
+ const response = await this.http.getText(url);
35
35
  const body = (0, html_1.parse)(response.body, {
36
36
  blockTextElements: {
37
37
  script: true,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/artifactory/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { parse } from '../../../util/html';\nimport { HttpError } from '../../../util/http';\nimport { regEx } from '../../../util/regex';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { joinUrlParts } from '../../../util/url';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport { datasource } from './common';\n\nexport class ArtifactoryDatasource extends Datasource {\n static readonly id = datasource;\n\n constructor() {\n super(datasource);\n }\n\n override readonly customRegistrySupport = true;\n\n override readonly caching = true;\n\n override readonly registryStrategy = 'merge';\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the date-like text, next to the version hyperlink tag in the results.';\n\n @cache({\n namespace: `datasource-${datasource}`,\n key: ({ registryUrl, packageName }: GetReleasesConfig) =>\n // TODO: types (#22198)\n `${registryUrl}:${packageName}`,\n })\n async getReleases({\n packageName,\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n if (!registryUrl) {\n logger.warn(\n { packageName },\n 'artifactory datasource requires custom registryUrl. Skipping datasource',\n );\n return null;\n }\n\n const url = joinUrlParts(registryUrl, packageName);\n\n const result: ReleaseResult = {\n releases: [],\n };\n try {\n const response = await this.http.get(url);\n const body = parse(response.body, {\n blockTextElements: {\n script: true,\n noscript: true,\n style: true,\n },\n });\n const nodes = body.querySelectorAll('a');\n\n nodes\n .filter(\n // filter out hyperlink to navigate to parent folder\n (node) => node.innerHTML !== '../' && node.innerHTML !== '..',\n )\n .forEach(\n // extract version and published time for each node\n (node) => {\n const version: string = node.innerHTML.endsWith('/')\n ? node.innerHTML.slice(0, -1)\n : node.innerHTML;\n\n const releaseTimestamp = asTimestamp(\n node.nextSibling?.text?.trimStart()?.split(regEx(/\\s{2,}/))?.[0],\n );\n\n const thisRelease: Release = {\n version,\n releaseTimestamp,\n };\n\n result.releases.push(thisRelease);\n },\n );\n\n if (result.releases.length) {\n logger.trace(\n { registryUrl, packageName, versions: result.releases.length },\n 'artifactory: Found versions',\n );\n } else {\n logger.trace(\n { registryUrl, packageName },\n 'artifactory: No versions found',\n );\n }\n } catch (err) {\n // istanbul ignore else: not testable with nock\n if (err instanceof HttpError) {\n if (err.response?.statusCode === 404) {\n logger.warn(\n { registryUrl, packageName },\n 'artifactory: `Not Found` error',\n );\n return null;\n }\n }\n this.handleGenericErrors(err);\n }\n\n return result.releases.length ? result : null;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/artifactory/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { parse } from '../../../util/html';\nimport { HttpError } from '../../../util/http';\nimport { regEx } from '../../../util/regex';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { joinUrlParts } from '../../../util/url';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport { datasource } from './common';\n\nexport class ArtifactoryDatasource extends Datasource {\n static readonly id = datasource;\n\n constructor() {\n super(datasource);\n }\n\n override readonly customRegistrySupport = true;\n\n override readonly caching = true;\n\n override readonly registryStrategy = 'merge';\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the date-like text, next to the version hyperlink tag in the results.';\n\n @cache({\n namespace: `datasource-${datasource}`,\n key: ({ registryUrl, packageName }: GetReleasesConfig) =>\n // TODO: types (#22198)\n `${registryUrl}:${packageName}`,\n })\n async getReleases({\n packageName,\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n if (!registryUrl) {\n logger.warn(\n { packageName },\n 'artifactory datasource requires custom registryUrl. Skipping datasource',\n );\n return null;\n }\n\n const url = joinUrlParts(registryUrl, packageName);\n\n const result: ReleaseResult = {\n releases: [],\n };\n try {\n const response = await this.http.getText(url);\n const body = parse(response.body, {\n blockTextElements: {\n script: true,\n noscript: true,\n style: true,\n },\n });\n const nodes = body.querySelectorAll('a');\n\n nodes\n .filter(\n // filter out hyperlink to navigate to parent folder\n (node) => node.innerHTML !== '../' && node.innerHTML !== '..',\n )\n .forEach(\n // extract version and published time for each node\n (node) => {\n const version: string = node.innerHTML.endsWith('/')\n ? node.innerHTML.slice(0, -1)\n : node.innerHTML;\n\n const releaseTimestamp = asTimestamp(\n node.nextSibling?.text?.trimStart()?.split(regEx(/\\s{2,}/))?.[0],\n );\n\n const thisRelease: Release = {\n version,\n releaseTimestamp,\n };\n\n result.releases.push(thisRelease);\n },\n );\n\n if (result.releases.length) {\n logger.trace(\n { registryUrl, packageName, versions: result.releases.length },\n 'artifactory: Found versions',\n );\n } else {\n logger.trace(\n { registryUrl, packageName },\n 'artifactory: No versions found',\n );\n }\n } catch (err) {\n // istanbul ignore else: not testable with nock\n if (err instanceof HttpError) {\n if (err.response?.statusCode === 404) {\n logger.warn(\n { registryUrl, packageName },\n 'artifactory: `Not Found` error',\n );\n return null;\n }\n }\n this.handleGenericErrors(err);\n }\n\n return result.releases.length ? result : null;\n }\n}\n"]}
@@ -33,7 +33,17 @@ class AzurePipelinesTasksDatasource extends datasource_1.Datasource {
33
33
  const results = await this.getTasks(`${endpoint}/_apis/distributedtask/tasks/`, opts, schema_1.AzurePipelinesJSON);
34
34
  const result = { releases: [] };
35
35
  results.value
36
- .filter((task) => task.name === packageName)
36
+ .filter((task) => {
37
+ const matchers = [
38
+ task.id === packageName,
39
+ task.name === packageName,
40
+ task.contributionIdentifier !== null &&
41
+ `${task.contributionIdentifier}.${task.id}` === packageName,
42
+ task.contributionIdentifier !== null &&
43
+ `${task.contributionIdentifier}.${task.name}` === packageName,
44
+ ];
45
+ return matchers.some((match) => match);
46
+ })
37
47
  .sort(AzurePipelinesTasksDatasource.compareSemanticVersions('version'))
38
48
  .forEach((task) => {
39
49
  result.releases.push({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/azure-pipelines-tasks/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TypeOf, ZodType } from 'zod';\nimport { GlobalConfig } from '../../../config/global';\nimport { cache } from '../../../util/cache/package/decorator';\nimport * as hostRules from '../../../util/host-rules';\nimport type { HttpOptions } from '../../../util/http/types';\nimport { id as versioning } from '../../versioning/loose';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport {\n AzurePipelinesFallbackTasks,\n AzurePipelinesJSON,\n AzurePipelinesTaskVersion,\n} from './schema';\n\nconst TASKS_URL_BASE =\n 'https://raw.githubusercontent.com/renovatebot/azure-devops-marketplace/main';\nconst BUILT_IN_TASKS_URL = `${TASKS_URL_BASE}/azure-pipelines-builtin-tasks.json`;\nconst MARKETPLACE_TASKS_URL = `${TASKS_URL_BASE}/azure-pipelines-marketplace-tasks.json`;\n\nexport class AzurePipelinesTasksDatasource extends Datasource {\n static readonly id = 'azure-pipelines-tasks';\n\n constructor() {\n super(AzurePipelinesTasksDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultVersioning = versioning;\n\n async getReleases({\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const platform = GlobalConfig.get('platform');\n const endpoint = GlobalConfig.get('endpoint');\n const { token } = hostRules.find({\n hostType: AzurePipelinesTasksDatasource.id,\n url: endpoint,\n });\n\n if (platform === 'azure' && endpoint && token) {\n const auth = Buffer.from(`renovate:${token}`).toString('base64');\n const opts: HttpOptions = {\n headers: { authorization: `Basic ${auth}` },\n };\n const results = await this.getTasks(\n `${endpoint}/_apis/distributedtask/tasks/`,\n opts,\n AzurePipelinesJSON,\n );\n\n const result: ReleaseResult = { releases: [] };\n\n results.value\n .filter((task) => task.name === packageName)\n .sort(AzurePipelinesTasksDatasource.compareSemanticVersions('version'))\n .forEach((task) => {\n result.releases.push({\n version: `${task.version!.major}.${task.version!.minor}.${task.version!.patch}`,\n isDeprecated: task.deprecated,\n });\n });\n\n return result;\n } else {\n const versions =\n (\n await this.getTasks(\n BUILT_IN_TASKS_URL,\n {},\n AzurePipelinesFallbackTasks,\n )\n )[packageName.toLowerCase()] ??\n (\n await this.getTasks(\n MARKETPLACE_TASKS_URL,\n {},\n AzurePipelinesFallbackTasks,\n )\n )[packageName.toLowerCase()];\n\n if (versions) {\n const releases = versions.map((version) => ({ version }));\n return { releases };\n }\n }\n\n return null;\n }\n\n @cache({\n namespace: `datasource-${AzurePipelinesTasksDatasource.id}`,\n key: (url: string) => url,\n ttlMinutes: 24 * 60,\n })\n async getTasks<Schema extends ZodType>(\n url: string,\n opts: HttpOptions,\n schema: Schema,\n ): Promise<TypeOf<Schema>> {\n const { body } = await this.http.getJson(url, opts, schema);\n return body;\n }\n\n static compareSemanticVersions = (key: string) => (a: any, b: any) => {\n const a1Version = AzurePipelinesTaskVersion.safeParse(a[key]).data;\n const b1Version = AzurePipelinesTaskVersion.safeParse(b[key]).data;\n\n const a1 =\n a1Version === undefined\n ? ''\n : `${a1Version.major}.${a1Version.minor}.${a1Version.patch}`;\n const b1 =\n b1Version === undefined\n ? ''\n : `${b1Version.major}.${b1Version.minor}.${b1Version.patch}`;\n\n const len = Math.min(a1.length, b1.length);\n\n for (let i = 0; i < len; i++) {\n const a2 = +a1[i] || 0;\n const b2 = +b1[i] || 0;\n\n if (a2 !== b2) {\n return a2 > b2 ? 1 : -1;\n }\n }\n\n return b1.length - a1.length;\n };\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/azure-pipelines-tasks/index.ts"],"names":[],"mappings":";;;;AACA,mDAAsD;AACtD,qEAA8D;AAC9D,4EAAsD;AAEtD,kDAA0D;AAC1D,8CAA2C;AAE3C,qCAIkB;AAElB,MAAM,cAAc,GAClB,6EAA6E,CAAC;AAChF,MAAM,kBAAkB,GAAG,GAAG,cAAc,qCAAqC,CAAC;AAClF,MAAM,qBAAqB,GAAG,GAAG,cAAc,yCAAyC,CAAC;AAEzF,MAAa,6BAA8B,SAAQ,uBAAU;IAC3D,MAAM,CAAU,EAAE,GAAG,uBAAuB,CAAC;IAE7C;QACE,KAAK,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAEiB,qBAAqB,GAAG,KAAK,CAAC;IAE9B,iBAAiB,GAAG,UAAU,CAAC;IAEjD,KAAK,CAAC,WAAW,CAAC,EAChB,WAAW,GACO;QAClB,MAAM,QAAQ,GAAG,qBAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,qBAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC;YAC/B,QAAQ,EAAE,6BAA6B,CAAC,EAAE;YAC1C,GAAG,EAAE,QAAQ;SACd,CAAC,CAAC;QAEH,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACjE,MAAM,IAAI,GAAgB;gBACxB,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,IAAI,EAAE,EAAE;aAC5C,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CACjC,GAAG,QAAQ,+BAA+B,EAC1C,IAAI,EACJ,2BAAkB,CACnB,CAAC;YAEF,MAAM,MAAM,GAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YAE/C,OAAO,CAAC,KAAK;iBACV,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;gBACf,MAAM,QAAQ,GAAG;oBACf,IAAI,CAAC,EAAE,KAAK,WAAW;oBACvB,IAAI,CAAC,IAAI,KAAK,WAAW;oBACzB,IAAI,CAAC,sBAAsB,KAAK,IAAI;wBAClC,GAAG,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,EAAE,EAAE,KAAK,WAAW;oBAC7D,IAAI,CAAC,sBAAsB,KAAK,IAAI;wBAClC,GAAG,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,WAAW;iBAChE,CAAC;gBACF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC,CAAC;iBACD,IAAI,CAAC,6BAA6B,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;iBACtE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAChB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACnB,OAAO,EAAE,GAAG,IAAI,CAAC,OAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,OAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,OAAQ,CAAC,KAAK,EAAE;oBAC/E,YAAY,EAAE,IAAI,CAAC,UAAU;iBAC9B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEL,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GACZ,CACE,MAAM,IAAI,CAAC,QAAQ,CACjB,kBAAkB,EAClB,EAAE,EACF,oCAA2B,CAC5B,CACF,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;gBAC5B,CACE,MAAM,IAAI,CAAC,QAAQ,CACjB,qBAAqB,EACrB,EAAE,EACF,oCAA2B,CAC5B,CACF,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;YAE/B,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC1D,OAAO,EAAE,QAAQ,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAOK,AAAN,KAAK,CAAC,QAAQ,CACZ,GAAW,EACX,IAAiB,EACjB,MAAc;QAEd,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,uBAAuB,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE;QACnE,MAAM,SAAS,GAAG,kCAAyB,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QACnE,MAAM,SAAS,GAAG,kCAAyB,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAEnE,MAAM,EAAE,GACN,SAAS,KAAK,SAAS;YACrB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QACjE,MAAM,EAAE,GACN,SAAS,KAAK,SAAS;YACrB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QAEjE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAEvB,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACd,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,OAAO,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;IAC/B,CAAC,CAAC;;AAxHJ,sEAyHC;AAnCO;IALL,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,6BAA6B,CAAC,EAAE,EAAE;QAC3D,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;QACzB,UAAU,EAAE,EAAE,GAAG,EAAE;KACpB,CAAC;6DAQD","sourcesContent":["import type { TypeOf, ZodType } from 'zod';\nimport { GlobalConfig } from '../../../config/global';\nimport { cache } from '../../../util/cache/package/decorator';\nimport * as hostRules from '../../../util/host-rules';\nimport type { HttpOptions } from '../../../util/http/types';\nimport { id as versioning } from '../../versioning/loose';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport {\n AzurePipelinesFallbackTasks,\n AzurePipelinesJSON,\n AzurePipelinesTaskVersion,\n} from './schema';\n\nconst TASKS_URL_BASE =\n 'https://raw.githubusercontent.com/renovatebot/azure-devops-marketplace/main';\nconst BUILT_IN_TASKS_URL = `${TASKS_URL_BASE}/azure-pipelines-builtin-tasks.json`;\nconst MARKETPLACE_TASKS_URL = `${TASKS_URL_BASE}/azure-pipelines-marketplace-tasks.json`;\n\nexport class AzurePipelinesTasksDatasource extends Datasource {\n static readonly id = 'azure-pipelines-tasks';\n\n constructor() {\n super(AzurePipelinesTasksDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultVersioning = versioning;\n\n async getReleases({\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const platform = GlobalConfig.get('platform');\n const endpoint = GlobalConfig.get('endpoint');\n const { token } = hostRules.find({\n hostType: AzurePipelinesTasksDatasource.id,\n url: endpoint,\n });\n\n if (platform === 'azure' && endpoint && token) {\n const auth = Buffer.from(`renovate:${token}`).toString('base64');\n const opts: HttpOptions = {\n headers: { authorization: `Basic ${auth}` },\n };\n const results = await this.getTasks(\n `${endpoint}/_apis/distributedtask/tasks/`,\n opts,\n AzurePipelinesJSON,\n );\n\n const result: ReleaseResult = { releases: [] };\n\n results.value\n .filter((task) => {\n const matchers = [\n task.id === packageName,\n task.name === packageName,\n task.contributionIdentifier !== null &&\n `${task.contributionIdentifier}.${task.id}` === packageName,\n task.contributionIdentifier !== null &&\n `${task.contributionIdentifier}.${task.name}` === packageName,\n ];\n return matchers.some((match) => match);\n })\n .sort(AzurePipelinesTasksDatasource.compareSemanticVersions('version'))\n .forEach((task) => {\n result.releases.push({\n version: `${task.version!.major}.${task.version!.minor}.${task.version!.patch}`,\n isDeprecated: task.deprecated,\n });\n });\n\n return result;\n } else {\n const versions =\n (\n await this.getTasks(\n BUILT_IN_TASKS_URL,\n {},\n AzurePipelinesFallbackTasks,\n )\n )[packageName.toLowerCase()] ??\n (\n await this.getTasks(\n MARKETPLACE_TASKS_URL,\n {},\n AzurePipelinesFallbackTasks,\n )\n )[packageName.toLowerCase()];\n\n if (versions) {\n const releases = versions.map((version) => ({ version }));\n return { releases };\n }\n }\n\n return null;\n }\n\n @cache({\n namespace: `datasource-${AzurePipelinesTasksDatasource.id}`,\n key: (url: string) => url,\n ttlMinutes: 24 * 60,\n })\n async getTasks<Schema extends ZodType>(\n url: string,\n opts: HttpOptions,\n schema: Schema,\n ): Promise<TypeOf<Schema>> {\n const { body } = await this.http.getJson(url, opts, schema);\n return body;\n }\n\n static compareSemanticVersions = (key: string) => (a: any, b: any) => {\n const a1Version = AzurePipelinesTaskVersion.safeParse(a[key]).data;\n const b1Version = AzurePipelinesTaskVersion.safeParse(b[key]).data;\n\n const a1 =\n a1Version === undefined\n ? ''\n : `${a1Version.major}.${a1Version.minor}.${a1Version.patch}`;\n const b1 =\n b1Version === undefined\n ? ''\n : `${b1Version.major}.${b1Version.minor}.${b1Version.patch}`;\n\n const len = Math.min(a1.length, b1.length);\n\n for (let i = 0; i < len; i++) {\n const a2 = +a1[i] || 0;\n const b2 = +b1[i] || 0;\n\n if (a2 !== b2) {\n return a2 > b2 ? 1 : -1;\n }\n }\n\n return b1.length - a1.length;\n };\n}\n"]}
@@ -13,6 +13,7 @@ export declare const AzurePipelinesTaskVersion: z.ZodObject<{
13
13
  patch: number;
14
14
  }>;
15
15
  export declare const AzurePipelinesTask: z.ZodObject<{
16
+ id: z.ZodString;
16
17
  name: z.ZodString;
17
18
  deprecated: z.ZodOptional<z.ZodBoolean>;
18
19
  version: z.ZodNullable<z.ZodObject<{
@@ -28,7 +29,9 @@ export declare const AzurePipelinesTask: z.ZodObject<{
28
29
  minor: number;
29
30
  patch: number;
30
31
  }>>;
32
+ contributionIdentifier: z.ZodOptional<z.ZodString>;
31
33
  }, "strip", z.ZodTypeAny, {
34
+ id: string;
32
35
  name: string;
33
36
  version: {
34
37
  major: number;
@@ -36,7 +39,9 @@ export declare const AzurePipelinesTask: z.ZodObject<{
36
39
  patch: number;
37
40
  } | null;
38
41
  deprecated?: boolean | undefined;
42
+ contributionIdentifier?: string | undefined;
39
43
  }, {
44
+ id: string;
40
45
  name: string;
41
46
  version: {
42
47
  major: number;
@@ -44,9 +49,11 @@ export declare const AzurePipelinesTask: z.ZodObject<{
44
49
  patch: number;
45
50
  } | null;
46
51
  deprecated?: boolean | undefined;
52
+ contributionIdentifier?: string | undefined;
47
53
  }>;
48
54
  export declare const AzurePipelinesJSON: z.ZodObject<{
49
55
  value: z.ZodArray<z.ZodObject<{
56
+ id: z.ZodString;
50
57
  name: z.ZodString;
51
58
  deprecated: z.ZodOptional<z.ZodBoolean>;
52
59
  version: z.ZodNullable<z.ZodObject<{
@@ -62,7 +69,9 @@ export declare const AzurePipelinesJSON: z.ZodObject<{
62
69
  minor: number;
63
70
  patch: number;
64
71
  }>>;
72
+ contributionIdentifier: z.ZodOptional<z.ZodString>;
65
73
  }, "strip", z.ZodTypeAny, {
74
+ id: string;
66
75
  name: string;
67
76
  version: {
68
77
  major: number;
@@ -70,7 +79,9 @@ export declare const AzurePipelinesJSON: z.ZodObject<{
70
79
  patch: number;
71
80
  } | null;
72
81
  deprecated?: boolean | undefined;
82
+ contributionIdentifier?: string | undefined;
73
83
  }, {
84
+ id: string;
74
85
  name: string;
75
86
  version: {
76
87
  major: number;
@@ -78,9 +89,11 @@ export declare const AzurePipelinesJSON: z.ZodObject<{
78
89
  patch: number;
79
90
  } | null;
80
91
  deprecated?: boolean | undefined;
92
+ contributionIdentifier?: string | undefined;
81
93
  }>, "many">;
82
94
  }, "strip", z.ZodTypeAny, {
83
95
  value: {
96
+ id: string;
84
97
  name: string;
85
98
  version: {
86
99
  major: number;
@@ -88,9 +101,11 @@ export declare const AzurePipelinesJSON: z.ZodObject<{
88
101
  patch: number;
89
102
  } | null;
90
103
  deprecated?: boolean | undefined;
104
+ contributionIdentifier?: string | undefined;
91
105
  }[];
92
106
  }, {
93
107
  value: {
108
+ id: string;
94
109
  name: string;
95
110
  version: {
96
111
  major: number;
@@ -98,6 +113,7 @@ export declare const AzurePipelinesJSON: z.ZodObject<{
98
113
  patch: number;
99
114
  } | null;
100
115
  deprecated?: boolean | undefined;
116
+ contributionIdentifier?: string | undefined;
101
117
  }[];
102
118
  }>;
103
119
  export declare const AzurePipelinesFallbackTasks: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
@@ -8,9 +8,11 @@ exports.AzurePipelinesTaskVersion = zod_1.z.object({
8
8
  patch: zod_1.z.number(),
9
9
  });
10
10
  exports.AzurePipelinesTask = zod_1.z.object({
11
+ id: zod_1.z.string(),
11
12
  name: zod_1.z.string(),
12
13
  deprecated: zod_1.z.boolean().optional(),
13
14
  version: exports.AzurePipelinesTaskVersion.nullable(),
15
+ contributionIdentifier: zod_1.z.string().optional(),
14
16
  });
15
17
  exports.AzurePipelinesJSON = zod_1.z.object({
16
18
  value: exports.AzurePipelinesTask.array(),
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/azure-pipelines-tasks/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,iCAAyB,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,0BAAkB,CAAC,KAAK,EAAE;CAClC,CAAC,CAAC;AAEU,QAAA,2BAA2B,GAAG,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\n\nexport const AzurePipelinesTaskVersion = z.object({\n major: z.number(),\n minor: z.number(),\n patch: z.number(),\n});\n\nexport const AzurePipelinesTask = z.object({\n name: z.string(),\n deprecated: z.boolean().optional(),\n version: AzurePipelinesTaskVersion.nullable(),\n});\n\nexport const AzurePipelinesJSON = z.object({\n value: AzurePipelinesTask.array(),\n});\n\nexport const AzurePipelinesFallbackTasks = z.record(z.string().array());\n"]}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/azure-pipelines-tasks/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,iCAAyB,CAAC,QAAQ,EAAE;IAC7C,sBAAsB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,0BAAkB,CAAC,KAAK,EAAE;CAClC,CAAC,CAAC;AAEU,QAAA,2BAA2B,GAAG,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\n\nexport const AzurePipelinesTaskVersion = z.object({\n major: z.number(),\n minor: z.number(),\n patch: z.number(),\n});\n\nexport const AzurePipelinesTask = z.object({\n id: z.string(),\n name: z.string(),\n deprecated: z.boolean().optional(),\n version: AzurePipelinesTaskVersion.nullable(),\n contributionIdentifier: z.string().optional(),\n});\n\nexport const AzurePipelinesJSON = z.object({\n value: AzurePipelinesTask.array(),\n});\n\nexport const AzurePipelinesFallbackTasks = z.record(z.string().array());\n"]}
@@ -110,7 +110,7 @@ class CrateDatasource extends datasource_1.Datasource {
110
110
  const packageSuffix = CrateDatasource.getIndexSuffix(packageName.toLowerCase());
111
111
  const crateUrl = (0, url_1.joinUrlParts)(baseUrl, ...packageSuffix);
112
112
  try {
113
- return (await this.http.get(crateUrl)).body;
113
+ return (await this.http.getText(crateUrl)).body;
114
114
  }
115
115
  catch (err) {
116
116
  this.handleGenericErrors(err);