renovate 42.97.0 → 42.97.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/util/http/http.d.ts +19 -19
- package/dist/util/http/http.js.map +1 -1
- package/package.json +4 -4
- package/renovate-schema.json +2 -2
package/dist/util/http/http.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AsyncResult } from "../result.js";
|
|
2
2
|
import { HttpMethod, HttpOptions, HttpResponse, SafeJsonError } from "./types.js";
|
|
3
3
|
import "type-fest";
|
|
4
|
-
import { ZodType,
|
|
4
|
+
import { ZodType, z } from "zod";
|
|
5
5
|
import { Options, RetryObject } from "got";
|
|
6
6
|
|
|
7
7
|
//#region lib/util/http/http.d.ts
|
|
@@ -41,10 +41,10 @@ declare abstract class HttpBase<JSONOpts extends HttpOptions = HttpOptions, Opts
|
|
|
41
41
|
* @deprecated use `getYaml` instead
|
|
42
42
|
*/
|
|
43
43
|
getYamlUnchecked<ResT>(url: string, options?: Opts): Promise<HttpResponse<ResT>>;
|
|
44
|
-
getYaml<Schema extends ZodType<any, any, any>>(url: string, schema: Schema): Promise<HttpResponse<infer<Schema>>>;
|
|
45
|
-
getYaml<Schema extends ZodType<any, any, any>>(url: string, options: Opts, schema: Schema): Promise<HttpResponse<infer<Schema>>>;
|
|
46
|
-
getYamlSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT> = ZodType<ResT>>(url: string, schema: Schema): AsyncResult<infer<Schema>, SafeJsonError>;
|
|
47
|
-
getYamlSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT> = ZodType<ResT>>(url: string, options: Opts, schema: Schema): AsyncResult<infer<Schema>, SafeJsonError>;
|
|
44
|
+
getYaml<Schema extends ZodType<any, any, any>>(url: string, schema: Schema): Promise<HttpResponse<z.infer<Schema>>>;
|
|
45
|
+
getYaml<Schema extends ZodType<any, any, any>>(url: string, options: Opts, schema: Schema): Promise<HttpResponse<z.infer<Schema>>>;
|
|
46
|
+
getYamlSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT> = ZodType<ResT>>(url: string, schema: Schema): AsyncResult<z.infer<Schema>, SafeJsonError>;
|
|
47
|
+
getYamlSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT> = ZodType<ResT>>(url: string, options: Opts, schema: Schema): AsyncResult<z.infer<Schema>, SafeJsonError>;
|
|
48
48
|
/**
|
|
49
49
|
* Request JSON and return the response without any validation.
|
|
50
50
|
*
|
|
@@ -63,8 +63,8 @@ declare abstract class HttpBase<JSONOpts extends HttpOptions = HttpOptions, Opts
|
|
|
63
63
|
* @param url
|
|
64
64
|
* @param schema Zod schema for the response
|
|
65
65
|
*/
|
|
66
|
-
getJson<Schema extends ZodType<any, any, any>>(url: string, schema: Schema): Promise<HttpResponse<infer<Schema>>>;
|
|
67
|
-
getJson<Schema extends ZodType<any, any, any>>(url: string, options: JSONOpts, schema: Schema): Promise<HttpResponse<infer<Schema>>>;
|
|
66
|
+
getJson<Schema extends ZodType<any, any, any>>(url: string, schema: Schema): Promise<HttpResponse<z.infer<Schema>>>;
|
|
67
|
+
getJson<Schema extends ZodType<any, any, any>>(url: string, options: JSONOpts, schema: Schema): Promise<HttpResponse<z.infer<Schema>>>;
|
|
68
68
|
/**
|
|
69
69
|
* Request JSON with a Zod schema for the response,
|
|
70
70
|
* wrapping response data in a `Result` class.
|
|
@@ -72,27 +72,27 @@ declare abstract class HttpBase<JSONOpts extends HttpOptions = HttpOptions, Opts
|
|
|
72
72
|
* @param url
|
|
73
73
|
* @param schema Zod schema for the response
|
|
74
74
|
*/
|
|
75
|
-
getJsonSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT>>(url: string, schema: Schema): AsyncResult<infer<Schema>, SafeJsonError>;
|
|
76
|
-
getJsonSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT>>(url: string, options: JSONOpts, schema: Schema): AsyncResult<infer<Schema>, SafeJsonError>;
|
|
75
|
+
getJsonSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT>>(url: string, schema: Schema): AsyncResult<z.infer<Schema>, SafeJsonError>;
|
|
76
|
+
getJsonSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT>>(url: string, options: JSONOpts, schema: Schema): AsyncResult<z.infer<Schema>, SafeJsonError>;
|
|
77
77
|
/**
|
|
78
78
|
* @deprecated use `head` instead
|
|
79
79
|
*/
|
|
80
80
|
headJson(url: string, httpOptions?: JSONOpts): Promise<HttpResponse<never>>;
|
|
81
81
|
postJson<T>(url: string, options?: JSONOpts): Promise<HttpResponse<T>>;
|
|
82
|
-
postJson<T, Schema extends ZodType<T> = ZodType<T>>(url: string, schema: Schema): Promise<HttpResponse<infer<Schema>>>;
|
|
83
|
-
postJson<T, Schema extends ZodType<T> = ZodType<T>>(url: string, options: JSONOpts, schema: Schema): Promise<HttpResponse<infer<Schema>>>;
|
|
82
|
+
postJson<T, Schema extends ZodType<T> = ZodType<T>>(url: string, schema: Schema): Promise<HttpResponse<z.infer<Schema>>>;
|
|
83
|
+
postJson<T, Schema extends ZodType<T> = ZodType<T>>(url: string, options: JSONOpts, schema: Schema): Promise<HttpResponse<z.infer<Schema>>>;
|
|
84
84
|
putJson<T>(url: string, options?: JSONOpts): Promise<HttpResponse<T>>;
|
|
85
|
-
putJson<T, Schema extends ZodType<T> = ZodType<T>>(url: string, schema: Schema): Promise<HttpResponse<infer<Schema>>>;
|
|
86
|
-
putJson<T, Schema extends ZodType<T> = ZodType<T>>(url: string, options: JSONOpts, schema: Schema): Promise<HttpResponse<infer<Schema>>>;
|
|
85
|
+
putJson<T, Schema extends ZodType<T> = ZodType<T>>(url: string, schema: Schema): Promise<HttpResponse<z.infer<Schema>>>;
|
|
86
|
+
putJson<T, Schema extends ZodType<T> = ZodType<T>>(url: string, options: JSONOpts, schema: Schema): Promise<HttpResponse<z.infer<Schema>>>;
|
|
87
87
|
patchJson<T>(url: string, options?: JSONOpts): Promise<HttpResponse<T>>;
|
|
88
|
-
patchJson<T, Schema extends ZodType<T> = ZodType<T>>(url: string, schema: Schema): Promise<HttpResponse<infer<Schema>>>;
|
|
89
|
-
patchJson<T, Schema extends ZodType<T> = ZodType<T>>(url: string, options: JSONOpts, schema: Schema): Promise<HttpResponse<infer<Schema>>>;
|
|
88
|
+
patchJson<T, Schema extends ZodType<T> = ZodType<T>>(url: string, schema: Schema): Promise<HttpResponse<z.infer<Schema>>>;
|
|
89
|
+
patchJson<T, Schema extends ZodType<T> = ZodType<T>>(url: string, options: JSONOpts, schema: Schema): Promise<HttpResponse<z.infer<Schema>>>;
|
|
90
90
|
deleteJson<T>(url: string, options?: JSONOpts): Promise<HttpResponse<T>>;
|
|
91
|
-
deleteJson<T, Schema extends ZodType<T> = ZodType<T>>(url: string, schema: Schema): Promise<HttpResponse<infer<Schema>>>;
|
|
92
|
-
deleteJson<T, Schema extends ZodType<T> = ZodType<T>>(url: string, options: JSONOpts, schema: Schema): Promise<HttpResponse<infer<Schema>>>;
|
|
91
|
+
deleteJson<T, Schema extends ZodType<T> = ZodType<T>>(url: string, schema: Schema): Promise<HttpResponse<z.infer<Schema>>>;
|
|
92
|
+
deleteJson<T, Schema extends ZodType<T> = ZodType<T>>(url: string, options: JSONOpts, schema: Schema): Promise<HttpResponse<z.infer<Schema>>>;
|
|
93
93
|
stream(url: string, options?: HttpOptions): NodeJS.ReadableStream;
|
|
94
|
-
getToml<Schema extends ZodType<any, any, any>>(url: string, schema?: Schema): Promise<HttpResponse<infer<Schema>>>;
|
|
95
|
-
getToml<Schema extends ZodType<any, any, any>>(url: string, options: JSONOpts, schema: Schema): Promise<HttpResponse<infer<Schema>>>;
|
|
94
|
+
getToml<Schema extends ZodType<any, any, any>>(url: string, schema?: Schema): Promise<HttpResponse<z.infer<Schema>>>;
|
|
95
|
+
getToml<Schema extends ZodType<any, any, any>>(url: string, options: JSONOpts, schema: Schema): Promise<HttpResponse<z.infer<Schema>>>;
|
|
96
96
|
}
|
|
97
97
|
//#endregion
|
|
98
98
|
export { HttpBase, InternalHttpOptions, InternalJsonUnsafeOptions };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","names":["pkg","GlobalConfig","getEnv","isPlainObject","removeAuthorization","findMatchingRule","applyHostRule","HOST_DISABLED","applyAuthorization","hash","acquireLock","fetch","getThrottle","getQueue","wrapWithRetry","getRetryAfter","copyResponse","ExternalHostError","resolveBaseUrl","parseUrl","isHttpUrl","ZodType","parseSingleYaml","Result","stream","Toml"],"sources":["../../../lib/util/http/http.ts"],"sourcesContent":["import { isPlainObject, isUndefined } from '@sindresorhus/is';\nimport merge from 'deepmerge';\nimport type { Options, RetryObject } from 'got';\nimport type { Merge, SetRequired } from 'type-fest';\nimport type { infer as Infer } from 'zod';\nimport { ZodType } from 'zod';\nimport { GlobalConfig } from '../../config/global.ts';\nimport { HOST_DISABLED } from '../../constants/error-messages.ts';\nimport { pkg } from '../../expose.cjs';\nimport { logger } from '../../logger/index.ts';\nimport { ExternalHostError } from '../../types/errors/external-host-error.ts';\nimport * as memCache from '../cache/memory/index.ts';\nimport { getEnv } from '../env.ts';\nimport { hash } from '../hash.ts';\nimport { acquireLock } from '../mutex.ts';\nimport { type AsyncResult, Result } from '../result.ts';\nimport { Toml } from '../schema-utils/index.ts';\nimport { ObsoleteCacheHitLogger } from '../stats.ts';\nimport { isHttpUrl, parseUrl, resolveBaseUrl } from '../url.ts';\nimport { parseSingleYaml } from '../yaml.ts';\nimport { applyAuthorization, removeAuthorization } from './auth.ts';\nimport type { HttpCacheProvider } from './cache/types.ts';\nimport { fetch, stream } from './got.ts';\nimport { applyHostRule, findMatchingRule } from './host-rules.ts';\n\nimport { getQueue } from './queue.ts';\nimport { getRetryAfter, wrapWithRetry } from './retry-after.ts';\nimport { getThrottle } from './throttle.ts';\nimport type {\n GotOptions,\n GotStreamOptions,\n GotTask,\n HttpMethod,\n HttpOptions,\n HttpResponse,\n SafeJsonError,\n} from './types.ts';\nimport { copyResponse } from './util.ts';\n\nexport interface InternalJsonUnsafeOptions<\n Opts extends HttpOptions = HttpOptions,\n> {\n url: string | URL;\n httpOptions?: Opts;\n}\n\nexport interface InternalJsonOptions<\n Opts extends HttpOptions,\n ResT = unknown,\n Schema extends ZodType<ResT> = ZodType<ResT>,\n> extends InternalJsonUnsafeOptions<Opts> {\n schema?: Schema;\n}\n\nexport type InternalGotOptions = SetRequired<GotOptions, 'method' | 'context'>;\n\nexport interface InternalHttpOptions extends HttpOptions {\n json?: HttpOptions['body'];\n\n method?: HttpMethod;\n\n parseJson?: Options['parseJson'];\n}\n\nexport function applyDefaultHeaders(options: Options): void {\n const renovateVersion = pkg.version;\n options.headers = {\n ...options.headers,\n 'user-agent':\n GlobalConfig.get('userAgent') ??\n `Renovate/${renovateVersion} (https://github.com/renovatebot/renovate)`,\n };\n}\n\nexport abstract class HttpBase<\n JSONOpts extends HttpOptions = HttpOptions,\n Opts extends HttpOptions = HttpOptions,\n> {\n private readonly options: InternalGotOptions;\n\n protected get baseUrl(): string | undefined {\n return undefined;\n }\n\n protected hostType: string;\n\n constructor(hostType: string, options: HttpOptions = {}) {\n this.hostType = hostType;\n const retryLimit = getEnv().NODE_ENV === 'test' ? 0 : 2;\n this.options = merge<InternalGotOptions>(\n options,\n {\n method: 'get',\n context: { hostType },\n retry: {\n calculateDelay: (retryObject) =>\n this.calculateRetryDelay(retryObject),\n limit: retryLimit,\n maxRetryAfter: 0, // Don't rely on `got` retry-after handling, just let it fail and then we'll handle it\n },\n },\n { isMergeableObject: isPlainObject },\n );\n }\n private async request(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions,\n ): Promise<HttpResponse<string>>;\n private async request(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions & { responseType: 'text' },\n ): Promise<HttpResponse<string>>;\n private async request(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions & { responseType: 'buffer' },\n ): Promise<HttpResponse<Buffer>>;\n private async request<T = unknown>(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions & { responseType: 'json' },\n ): Promise<HttpResponse<T>>;\n\n private async request(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions,\n ): Promise<HttpResponse<unknown>> {\n const resolvedUrl = this.resolveUrl(requestUrl, httpOptions);\n const url = resolvedUrl.toString();\n\n this.processOptions(resolvedUrl, httpOptions);\n\n let options = merge<InternalGotOptions, InternalHttpOptions>(\n {\n ...this.options,\n hostType: this.hostType,\n },\n httpOptions,\n { isMergeableObject: isPlainObject },\n );\n\n const method = options.method.toLowerCase();\n const isReadMethod = ['head', 'get'].includes(method);\n\n logger.trace(`HTTP request: ${method.toUpperCase()} ${url}`);\n\n options.hooks = {\n beforeRedirect: [removeAuthorization],\n };\n\n applyDefaultHeaders(options);\n\n if (isUndefined(options.readOnly) && isReadMethod) {\n options.readOnly = true;\n }\n\n const hostRule = findMatchingRule(url, options);\n options = applyHostRule(url, options, hostRule);\n if (options.enabled === false) {\n logger.debug(`Host is disabled - rejecting request. HostUrl: ${url}`);\n throw new Error(HOST_DISABLED);\n }\n options = applyAuthorization(options);\n options.timeout ??= 60000;\n\n let cacheProvider: HttpCacheProvider | undefined;\n if (isReadMethod && options.cacheProvider) {\n cacheProvider = options.cacheProvider;\n }\n\n const memCacheKey =\n !process.env.RENOVATE_X_DISABLE_HTTP_MEMCACHE &&\n !cacheProvider &&\n options.memCache !== false &&\n isReadMethod\n ? hash(\n `got-${JSON.stringify({\n url,\n headers: options.headers,\n method,\n })}`,\n )\n : null;\n\n let resPromise: Promise<HttpResponse<unknown>> | null = null;\n\n // Cache GET requests unless memCache=false\n if (memCacheKey) {\n resPromise = memCache.get(memCacheKey);\n\n /* v8 ignore next: temporary code */\n if (resPromise && !cacheProvider) {\n ObsoleteCacheHitLogger.write(url);\n }\n }\n\n // v8 ignore else -- TODO: add test #40625\n if (!resPromise) {\n if (cacheProvider) {\n await cacheProvider.setCacheHeaders(method, url, options);\n }\n\n const startTime = Date.now();\n const httpTask: GotTask = async () => {\n let releaseLock: undefined | (() => void);\n if (isReadMethod) {\n releaseLock = await acquireLock(\n `${options.method} ${url}`,\n 'http-mutex',\n );\n }\n try {\n const cachedResponse = await cacheProvider?.bypassServer<unknown>(\n options.method,\n url,\n );\n if (cachedResponse) {\n return cachedResponse;\n }\n\n const queueMs = Date.now() - startTime;\n return fetch(url, options, { queueMs });\n } finally {\n releaseLock?.();\n }\n };\n\n const throttle = getThrottle(url);\n const throttledTask = throttle ? () => throttle.add(httpTask) : httpTask;\n\n const queue = getQueue(url);\n const queuedTask = queue ? () => queue.add(throttledTask) : throttledTask;\n\n const { maxRetryAfter = 60 } = hostRule;\n resPromise = wrapWithRetry(queuedTask, url, getRetryAfter, maxRetryAfter);\n\n if (memCacheKey) {\n memCache.set(memCacheKey, resPromise);\n }\n }\n\n try {\n const res = await resPromise;\n const deepCopyNeeded = !!memCacheKey && res.statusCode !== 304;\n const resCopy = copyResponse(res, deepCopyNeeded);\n resCopy.authorization = !!options?.headers?.authorization;\n\n if (cacheProvider) {\n return await cacheProvider.wrapServerResponse(method, url, resCopy);\n }\n\n return resCopy;\n } catch (err) {\n const { abortOnError, abortIgnoreStatusCodes } = options;\n if (abortOnError && !abortIgnoreStatusCodes?.includes(err.statusCode)) {\n throw new ExternalHostError(err);\n }\n\n const staleResponse = await cacheProvider?.bypassServer<string | Buffer>(\n method,\n url,\n true,\n );\n if (staleResponse) {\n logger.debug(\n { err },\n `Request error: returning stale cache instead for ${url}`,\n );\n return staleResponse;\n }\n\n this.handleError(requestUrl, httpOptions, err);\n }\n }\n\n protected processOptions(_url: URL, _options: InternalHttpOptions): void {\n // noop\n }\n\n protected handleError(\n _url: string | URL,\n _httpOptions: HttpOptions,\n err: Error,\n ): never {\n throw err;\n }\n\n resolveUrl(\n requestUrl: string | URL,\n options: HttpOptions | undefined = undefined,\n ): URL {\n let url = requestUrl;\n\n if (url instanceof URL) {\n // already a aboslute URL\n return url;\n }\n\n const baseUrl = options?.baseUrl ?? this.baseUrl;\n if (baseUrl) {\n url = resolveBaseUrl(baseUrl, url);\n }\n\n const parsedUrl = parseUrl(url);\n if (!parsedUrl || !isHttpUrl(parsedUrl)) {\n logger.error(\n { url: requestUrl, baseUrl, resolvedUrl: url },\n 'Request Error: cannot parse url',\n );\n throw new Error('Invalid URL');\n }\n return parsedUrl;\n }\n\n protected calculateRetryDelay({ computedValue }: RetryObject): number {\n return computedValue;\n }\n\n get(\n url: string,\n options: HttpOptions = {},\n ): Promise<HttpResponse<string | Buffer>> {\n return this.request(url, options);\n }\n\n head(url: string, options: HttpOptions = {}): Promise<HttpResponse<never>> {\n // to complex to validate\n return this.request(url, {\n ...options,\n responseType: 'text',\n method: 'head',\n }) as Promise<HttpResponse<never>>;\n }\n\n getText(\n url: string | URL,\n options: HttpOptions = {},\n ): Promise<HttpResponse<string>> {\n return this.request(url, { ...options, responseType: 'text' });\n }\n\n getBuffer(\n url: string | URL,\n options: HttpOptions = {},\n ): Promise<HttpResponse<Buffer>> {\n return this.request(url, { ...options, responseType: 'buffer' });\n }\n\n protected requestJsonUnsafe<ResT>(\n method: HttpMethod,\n { url, httpOptions: requestOptions }: InternalJsonUnsafeOptions<JSONOpts>,\n ): Promise<HttpResponse<ResT>> {\n const { body: json, ...httpOptions } = { ...requestOptions };\n const opts: InternalHttpOptions = {\n ...httpOptions,\n method,\n };\n // signal that we expect a json response\n opts.headers = {\n accept: 'application/json',\n ...opts.headers,\n };\n if (json) {\n opts.json = json;\n }\n return this.request<ResT>(url, { ...opts, responseType: 'json' });\n }\n\n private async requestJson<ResT, Schema extends ZodType<ResT> = ZodType<ResT>>(\n method: HttpMethod,\n options: InternalJsonOptions<JSONOpts, ResT, Schema>,\n ): Promise<HttpResponse<ResT>> {\n const res = await this.requestJsonUnsafe<ResT>(method, options);\n\n if (options.schema) {\n res.body = await options.schema.parseAsync(res.body);\n }\n\n return res;\n }\n\n private resolveArgs<ResT = unknown>(\n arg1: string,\n arg2: JSONOpts | ZodType<ResT> | undefined,\n arg3: ZodType<ResT> | undefined,\n ): InternalJsonOptions<JSONOpts, ResT> {\n const res: InternalJsonOptions<JSONOpts, ResT> = { url: arg1 };\n\n if (arg2 instanceof ZodType) {\n res.schema = arg2;\n } else if (arg2) {\n res.httpOptions = arg2;\n }\n\n if (arg3) {\n res.schema = arg3;\n }\n\n return res;\n }\n\n async getPlain(url: string, options?: Opts): Promise<HttpResponse> {\n const opt = options ?? {};\n return await this.getText(url, {\n headers: {\n Accept: 'text/plain',\n },\n ...opt,\n });\n }\n\n /**\n * @deprecated use `getYaml` instead\n */\n async getYamlUnchecked<ResT>(\n url: string,\n options?: Opts,\n ): Promise<HttpResponse<ResT>> {\n const res = await this.getText(url, options);\n const body = parseSingleYaml<ResT>(res.body);\n return { ...res, body };\n }\n\n async getYaml<Schema extends ZodType<any, any, any>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n async getYaml<Schema extends ZodType<any, any, any>>(\n url: string,\n options: Opts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n async getYaml<Schema extends ZodType<any, any, any>>(\n arg1: string,\n arg2?: Opts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<Infer<Schema>>> {\n const url = arg1;\n let schema: Schema;\n let httpOptions: Opts | undefined;\n if (arg3) {\n schema = arg3;\n httpOptions = arg2 as Opts;\n } else {\n schema = arg2 as Schema;\n }\n\n const opts: InternalHttpOptions = {\n ...httpOptions,\n method: 'get',\n };\n\n const res = await this.getText(url, opts);\n const body = await schema.parseAsync(parseSingleYaml(res.body));\n return { ...res, body };\n }\n\n getYamlSafe<\n ResT extends NonNullable<unknown>,\n Schema extends ZodType<ResT> = ZodType<ResT>,\n >(url: string, schema: Schema): AsyncResult<Infer<Schema>, SafeJsonError>;\n getYamlSafe<\n ResT extends NonNullable<unknown>,\n Schema extends ZodType<ResT> = ZodType<ResT>,\n >(\n url: string,\n options: Opts,\n schema: Schema,\n ): AsyncResult<Infer<Schema>, SafeJsonError>;\n getYamlSafe<\n ResT extends NonNullable<unknown>,\n Schema extends ZodType<ResT> = ZodType<ResT>,\n >(\n arg1: string,\n arg2: Opts | Schema,\n arg3?: Schema,\n ): AsyncResult<ResT, SafeJsonError> {\n const url = arg1;\n let schema: Schema;\n let httpOptions: Opts | undefined;\n if (arg3) {\n schema = arg3;\n httpOptions = arg2 as Opts;\n } else {\n schema = arg2 as Schema;\n }\n\n let res: AsyncResult<HttpResponse<ResT>, SafeJsonError>;\n if (httpOptions) {\n res = Result.wrap(this.getYaml(url, httpOptions, schema));\n } else {\n res = Result.wrap(this.getYaml(url, schema));\n }\n\n return res.transform((response) => Result.ok(response.body));\n }\n\n /**\n * Request JSON and return the response without any validation.\n *\n * The usage of this method is discouraged, please use `getJson` instead.\n *\n * If you're new to Zod schema validation library:\n * - consult the [documentation of Zod library](https://github.com/colinhacks/zod?tab=readme-ov-file#basic-usage)\n * - search the Renovate codebase for 'zod' module usage\n * - take a look at the `schema-utils.ts` file for Renovate-specific schemas and utilities\n */\n getJsonUnchecked<ResT = unknown>(\n url: string,\n options?: JSONOpts,\n ): Promise<HttpResponse<ResT>> {\n return this.requestJson<ResT>('get', { url, httpOptions: options });\n }\n\n /**\n * Request JSON with a Zod schema for the response,\n * throwing an error if the response is not valid.\n *\n * @param url\n * @param schema Zod schema for the response\n */\n getJson<Schema extends ZodType<any, any, any>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n getJson<Schema extends ZodType<any, any, any>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n getJson<Schema extends ZodType<any, any, any>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<Infer<Schema>>> {\n const args = this.resolveArgs<Infer<Schema>>(arg1, arg2, arg3);\n return this.requestJson<Infer<Schema>>('get', args);\n }\n\n /**\n * Request JSON with a Zod schema for the response,\n * wrapping response data in a `Result` class.\n *\n * @param url\n * @param schema Zod schema for the response\n */\n getJsonSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT>>(\n url: string,\n schema: Schema,\n ): AsyncResult<Infer<Schema>, SafeJsonError>;\n getJsonSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): AsyncResult<Infer<Schema>, SafeJsonError>;\n getJsonSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): AsyncResult<ResT, SafeJsonError> {\n const args = this.resolveArgs<ResT>(arg1, arg2, arg3);\n return Result.wrap(this.requestJson<ResT>('get', args)).transform(\n (response) => Result.ok(response.body),\n );\n }\n\n /**\n * @deprecated use `head` instead\n */\n headJson(url: string, httpOptions?: JSONOpts): Promise<HttpResponse<never>> {\n return this.requestJson<never>('head', { url, httpOptions });\n }\n\n postJson<T>(url: string, options?: JSONOpts): Promise<HttpResponse<T>>;\n postJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n postJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n postJson<T = unknown, Schema extends ZodType<T> = ZodType<T>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<T>> {\n const args = this.resolveArgs(arg1, arg2, arg3);\n return this.requestJson<T>('post', args);\n }\n\n putJson<T>(url: string, options?: JSONOpts): Promise<HttpResponse<T>>;\n putJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n putJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n putJson<T = unknown, Schema extends ZodType<T> = ZodType<T>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: ZodType,\n ): Promise<HttpResponse<T>> {\n const args = this.resolveArgs(arg1, arg2, arg3);\n return this.requestJson<T>('put', args);\n }\n\n patchJson<T>(url: string, options?: JSONOpts): Promise<HttpResponse<T>>;\n patchJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n patchJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n patchJson<T = unknown, Schema extends ZodType<T> = ZodType<T>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<T>> {\n const args = this.resolveArgs(arg1, arg2, arg3);\n return this.requestJson<T>('patch', args);\n }\n\n deleteJson<T>(url: string, options?: JSONOpts): Promise<HttpResponse<T>>;\n deleteJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n deleteJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n deleteJson<T = unknown, Schema extends ZodType<T> = ZodType<T>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<T>> {\n const args = this.resolveArgs(arg1, arg2, arg3);\n return this.requestJson<T>('delete', args);\n }\n\n stream(url: string, options?: HttpOptions): NodeJS.ReadableStream {\n let combinedOptions: Merge<\n GotStreamOptions,\n SetRequired<InternalHttpOptions, 'method'>\n > = {\n ...this.options,\n hostType: this.hostType,\n ...options,\n method: 'get',\n };\n\n const resolvedUrl = this.resolveUrl(url, options).toString();\n\n applyDefaultHeaders(combinedOptions);\n\n // v8 ignore else -- TODO: add test #40625\n if (\n isUndefined(combinedOptions.readOnly) &&\n ['head', 'get'].includes(combinedOptions.method)\n ) {\n combinedOptions.readOnly = true;\n }\n\n const hostRule = findMatchingRule(url, combinedOptions);\n combinedOptions = applyHostRule(resolvedUrl, combinedOptions, hostRule);\n if (combinedOptions.enabled === false) {\n throw new Error(HOST_DISABLED);\n }\n combinedOptions = applyAuthorization(combinedOptions);\n\n return stream(resolvedUrl, combinedOptions);\n }\n\n async getToml<Schema extends ZodType<any, any, any>>(\n url: string,\n schema?: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n async getToml<Schema extends ZodType<any, any, any>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n async getToml<Schema extends ZodType<any, any, any>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<Infer<Schema>>> {\n const { url, schema, httpOptions } = this.resolveArgs<Infer<Schema>>(\n arg1,\n arg2,\n arg3,\n );\n\n const opts: InternalHttpOptions = {\n ...httpOptions,\n method: 'get',\n headers: {\n 'Content-Type': 'application/toml',\n ...httpOptions?.headers,\n },\n };\n\n const res = await this.getText(url, opts);\n if (schema) {\n res.body = await Toml.pipe(schema).parseAsync(res.body);\n } else {\n res.body = (await Toml.parseAsync(res.body)) as Infer<Schema>;\n }\n\n return res;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http.js","names":["pkg","GlobalConfig","getEnv","isPlainObject","removeAuthorization","findMatchingRule","applyHostRule","HOST_DISABLED","applyAuthorization","hash","acquireLock","fetch","getThrottle","getQueue","wrapWithRetry","getRetryAfter","copyResponse","ExternalHostError","resolveBaseUrl","parseUrl","isHttpUrl","ZodType","parseSingleYaml","Result","stream","Toml"],"sources":["../../../lib/util/http/http.ts"],"sourcesContent":["import { isPlainObject, isUndefined } from '@sindresorhus/is';\nimport merge from 'deepmerge';\nimport type { Options, RetryObject } from 'got';\nimport type { Merge, SetRequired } from 'type-fest';\nimport type { z } from 'zod';\nimport { ZodType } from 'zod';\nimport { GlobalConfig } from '../../config/global.ts';\nimport { HOST_DISABLED } from '../../constants/error-messages.ts';\nimport { pkg } from '../../expose.cjs';\nimport { logger } from '../../logger/index.ts';\nimport { ExternalHostError } from '../../types/errors/external-host-error.ts';\nimport * as memCache from '../cache/memory/index.ts';\nimport { getEnv } from '../env.ts';\nimport { hash } from '../hash.ts';\nimport { acquireLock } from '../mutex.ts';\nimport { type AsyncResult, Result } from '../result.ts';\nimport { Toml } from '../schema-utils/index.ts';\nimport { ObsoleteCacheHitLogger } from '../stats.ts';\nimport { isHttpUrl, parseUrl, resolveBaseUrl } from '../url.ts';\nimport { parseSingleYaml } from '../yaml.ts';\nimport { applyAuthorization, removeAuthorization } from './auth.ts';\nimport type { HttpCacheProvider } from './cache/types.ts';\nimport { fetch, stream } from './got.ts';\nimport { applyHostRule, findMatchingRule } from './host-rules.ts';\n\nimport { getQueue } from './queue.ts';\nimport { getRetryAfter, wrapWithRetry } from './retry-after.ts';\nimport { getThrottle } from './throttle.ts';\nimport type {\n GotOptions,\n GotStreamOptions,\n GotTask,\n HttpMethod,\n HttpOptions,\n HttpResponse,\n SafeJsonError,\n} from './types.ts';\nimport { copyResponse } from './util.ts';\n\nexport interface InternalJsonUnsafeOptions<\n Opts extends HttpOptions = HttpOptions,\n> {\n url: string | URL;\n httpOptions?: Opts;\n}\n\nexport interface InternalJsonOptions<\n Opts extends HttpOptions,\n ResT = unknown,\n Schema extends ZodType<ResT> = ZodType<ResT>,\n> extends InternalJsonUnsafeOptions<Opts> {\n schema?: Schema;\n}\n\nexport type InternalGotOptions = SetRequired<GotOptions, 'method' | 'context'>;\n\nexport interface InternalHttpOptions extends HttpOptions {\n json?: HttpOptions['body'];\n\n method?: HttpMethod;\n\n parseJson?: Options['parseJson'];\n}\n\nexport function applyDefaultHeaders(options: Options): void {\n const renovateVersion = pkg.version;\n options.headers = {\n ...options.headers,\n 'user-agent':\n GlobalConfig.get('userAgent') ??\n `Renovate/${renovateVersion} (https://github.com/renovatebot/renovate)`,\n };\n}\n\nexport abstract class HttpBase<\n JSONOpts extends HttpOptions = HttpOptions,\n Opts extends HttpOptions = HttpOptions,\n> {\n private readonly options: InternalGotOptions;\n\n protected get baseUrl(): string | undefined {\n return undefined;\n }\n\n protected hostType: string;\n\n constructor(hostType: string, options: HttpOptions = {}) {\n this.hostType = hostType;\n const retryLimit = getEnv().NODE_ENV === 'test' ? 0 : 2;\n this.options = merge<InternalGotOptions>(\n options,\n {\n method: 'get',\n context: { hostType },\n retry: {\n calculateDelay: (retryObject) =>\n this.calculateRetryDelay(retryObject),\n limit: retryLimit,\n maxRetryAfter: 0, // Don't rely on `got` retry-after handling, just let it fail and then we'll handle it\n },\n },\n { isMergeableObject: isPlainObject },\n );\n }\n private async request(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions,\n ): Promise<HttpResponse<string>>;\n private async request(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions & { responseType: 'text' },\n ): Promise<HttpResponse<string>>;\n private async request(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions & { responseType: 'buffer' },\n ): Promise<HttpResponse<Buffer>>;\n private async request<T = unknown>(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions & { responseType: 'json' },\n ): Promise<HttpResponse<T>>;\n\n private async request(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions,\n ): Promise<HttpResponse<unknown>> {\n const resolvedUrl = this.resolveUrl(requestUrl, httpOptions);\n const url = resolvedUrl.toString();\n\n this.processOptions(resolvedUrl, httpOptions);\n\n let options = merge<InternalGotOptions, InternalHttpOptions>(\n {\n ...this.options,\n hostType: this.hostType,\n },\n httpOptions,\n { isMergeableObject: isPlainObject },\n );\n\n const method = options.method.toLowerCase();\n const isReadMethod = ['head', 'get'].includes(method);\n\n logger.trace(`HTTP request: ${method.toUpperCase()} ${url}`);\n\n options.hooks = {\n beforeRedirect: [removeAuthorization],\n };\n\n applyDefaultHeaders(options);\n\n if (isUndefined(options.readOnly) && isReadMethod) {\n options.readOnly = true;\n }\n\n const hostRule = findMatchingRule(url, options);\n options = applyHostRule(url, options, hostRule);\n if (options.enabled === false) {\n logger.debug(`Host is disabled - rejecting request. HostUrl: ${url}`);\n throw new Error(HOST_DISABLED);\n }\n options = applyAuthorization(options);\n options.timeout ??= 60000;\n\n let cacheProvider: HttpCacheProvider | undefined;\n if (isReadMethod && options.cacheProvider) {\n cacheProvider = options.cacheProvider;\n }\n\n const memCacheKey =\n !process.env.RENOVATE_X_DISABLE_HTTP_MEMCACHE &&\n !cacheProvider &&\n options.memCache !== false &&\n isReadMethod\n ? hash(\n `got-${JSON.stringify({\n url,\n headers: options.headers,\n method,\n })}`,\n )\n : null;\n\n let resPromise: Promise<HttpResponse<unknown>> | null = null;\n\n // Cache GET requests unless memCache=false\n if (memCacheKey) {\n resPromise = memCache.get(memCacheKey);\n\n /* v8 ignore next: temporary code */\n if (resPromise && !cacheProvider) {\n ObsoleteCacheHitLogger.write(url);\n }\n }\n\n // v8 ignore else -- TODO: add test #40625\n if (!resPromise) {\n if (cacheProvider) {\n await cacheProvider.setCacheHeaders(method, url, options);\n }\n\n const startTime = Date.now();\n const httpTask: GotTask = async () => {\n let releaseLock: undefined | (() => void);\n if (isReadMethod) {\n releaseLock = await acquireLock(\n `${options.method} ${url}`,\n 'http-mutex',\n );\n }\n try {\n const cachedResponse = await cacheProvider?.bypassServer<unknown>(\n options.method,\n url,\n );\n if (cachedResponse) {\n return cachedResponse;\n }\n\n const queueMs = Date.now() - startTime;\n return fetch(url, options, { queueMs });\n } finally {\n releaseLock?.();\n }\n };\n\n const throttle = getThrottle(url);\n const throttledTask = throttle ? () => throttle.add(httpTask) : httpTask;\n\n const queue = getQueue(url);\n const queuedTask = queue ? () => queue.add(throttledTask) : throttledTask;\n\n const { maxRetryAfter = 60 } = hostRule;\n resPromise = wrapWithRetry(queuedTask, url, getRetryAfter, maxRetryAfter);\n\n if (memCacheKey) {\n memCache.set(memCacheKey, resPromise);\n }\n }\n\n try {\n const res = await resPromise;\n const deepCopyNeeded = !!memCacheKey && res.statusCode !== 304;\n const resCopy = copyResponse(res, deepCopyNeeded);\n resCopy.authorization = !!options?.headers?.authorization;\n\n if (cacheProvider) {\n return await cacheProvider.wrapServerResponse(method, url, resCopy);\n }\n\n return resCopy;\n } catch (err) {\n const { abortOnError, abortIgnoreStatusCodes } = options;\n if (abortOnError && !abortIgnoreStatusCodes?.includes(err.statusCode)) {\n throw new ExternalHostError(err);\n }\n\n const staleResponse = await cacheProvider?.bypassServer<string | Buffer>(\n method,\n url,\n true,\n );\n if (staleResponse) {\n logger.debug(\n { err },\n `Request error: returning stale cache instead for ${url}`,\n );\n return staleResponse;\n }\n\n this.handleError(requestUrl, httpOptions, err);\n }\n }\n\n protected processOptions(_url: URL, _options: InternalHttpOptions): void {\n // noop\n }\n\n protected handleError(\n _url: string | URL,\n _httpOptions: HttpOptions,\n err: Error,\n ): never {\n throw err;\n }\n\n resolveUrl(\n requestUrl: string | URL,\n options: HttpOptions | undefined = undefined,\n ): URL {\n let url = requestUrl;\n\n if (url instanceof URL) {\n // already a aboslute URL\n return url;\n }\n\n const baseUrl = options?.baseUrl ?? this.baseUrl;\n if (baseUrl) {\n url = resolveBaseUrl(baseUrl, url);\n }\n\n const parsedUrl = parseUrl(url);\n if (!parsedUrl || !isHttpUrl(parsedUrl)) {\n logger.error(\n { url: requestUrl, baseUrl, resolvedUrl: url },\n 'Request Error: cannot parse url',\n );\n throw new Error('Invalid URL');\n }\n return parsedUrl;\n }\n\n protected calculateRetryDelay({ computedValue }: RetryObject): number {\n return computedValue;\n }\n\n get(\n url: string,\n options: HttpOptions = {},\n ): Promise<HttpResponse<string | Buffer>> {\n return this.request(url, options);\n }\n\n head(url: string, options: HttpOptions = {}): Promise<HttpResponse<never>> {\n // to complex to validate\n return this.request(url, {\n ...options,\n responseType: 'text',\n method: 'head',\n }) as Promise<HttpResponse<never>>;\n }\n\n getText(\n url: string | URL,\n options: HttpOptions = {},\n ): Promise<HttpResponse<string>> {\n return this.request(url, { ...options, responseType: 'text' });\n }\n\n getBuffer(\n url: string | URL,\n options: HttpOptions = {},\n ): Promise<HttpResponse<Buffer>> {\n return this.request(url, { ...options, responseType: 'buffer' });\n }\n\n protected requestJsonUnsafe<ResT>(\n method: HttpMethod,\n { url, httpOptions: requestOptions }: InternalJsonUnsafeOptions<JSONOpts>,\n ): Promise<HttpResponse<ResT>> {\n const { body: json, ...httpOptions } = { ...requestOptions };\n const opts: InternalHttpOptions = {\n ...httpOptions,\n method,\n };\n // signal that we expect a json response\n opts.headers = {\n accept: 'application/json',\n ...opts.headers,\n };\n if (json) {\n opts.json = json;\n }\n return this.request<ResT>(url, { ...opts, responseType: 'json' });\n }\n\n private async requestJson<ResT, Schema extends ZodType<ResT> = ZodType<ResT>>(\n method: HttpMethod,\n options: InternalJsonOptions<JSONOpts, ResT, Schema>,\n ): Promise<HttpResponse<ResT>> {\n const res = await this.requestJsonUnsafe<ResT>(method, options);\n\n if (options.schema) {\n res.body = await options.schema.parseAsync(res.body);\n }\n\n return res;\n }\n\n private resolveArgs<ResT = unknown>(\n arg1: string,\n arg2: JSONOpts | ZodType<ResT> | undefined,\n arg3: ZodType<ResT> | undefined,\n ): InternalJsonOptions<JSONOpts, ResT> {\n const res: InternalJsonOptions<JSONOpts, ResT> = { url: arg1 };\n\n if (arg2 instanceof ZodType) {\n res.schema = arg2;\n } else if (arg2) {\n res.httpOptions = arg2;\n }\n\n if (arg3) {\n res.schema = arg3;\n }\n\n return res;\n }\n\n async getPlain(url: string, options?: Opts): Promise<HttpResponse> {\n const opt = options ?? {};\n return await this.getText(url, {\n headers: {\n Accept: 'text/plain',\n },\n ...opt,\n });\n }\n\n /**\n * @deprecated use `getYaml` instead\n */\n async getYamlUnchecked<ResT>(\n url: string,\n options?: Opts,\n ): Promise<HttpResponse<ResT>> {\n const res = await this.getText(url, options);\n const body = parseSingleYaml<ResT>(res.body);\n return { ...res, body };\n }\n\n async getYaml<Schema extends ZodType<any, any, any>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<z.infer<Schema>>>;\n async getYaml<Schema extends ZodType<any, any, any>>(\n url: string,\n options: Opts,\n schema: Schema,\n ): Promise<HttpResponse<z.infer<Schema>>>;\n async getYaml<Schema extends ZodType<any, any, any>>(\n arg1: string,\n arg2?: Opts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<z.infer<Schema>>> {\n const url = arg1;\n let schema: Schema;\n let httpOptions: Opts | undefined;\n if (arg3) {\n schema = arg3;\n httpOptions = arg2 as Opts;\n } else {\n schema = arg2 as Schema;\n }\n\n const opts: InternalHttpOptions = {\n ...httpOptions,\n method: 'get',\n };\n\n const res = await this.getText(url, opts);\n const body = await schema.parseAsync(parseSingleYaml(res.body));\n return { ...res, body };\n }\n\n getYamlSafe<\n ResT extends NonNullable<unknown>,\n Schema extends ZodType<ResT> = ZodType<ResT>,\n >(url: string, schema: Schema): AsyncResult<z.infer<Schema>, SafeJsonError>;\n getYamlSafe<\n ResT extends NonNullable<unknown>,\n Schema extends ZodType<ResT> = ZodType<ResT>,\n >(\n url: string,\n options: Opts,\n schema: Schema,\n ): AsyncResult<z.infer<Schema>, SafeJsonError>;\n getYamlSafe<\n ResT extends NonNullable<unknown>,\n Schema extends ZodType<ResT> = ZodType<ResT>,\n >(\n arg1: string,\n arg2: Opts | Schema,\n arg3?: Schema,\n ): AsyncResult<ResT, SafeJsonError> {\n const url = arg1;\n let schema: Schema;\n let httpOptions: Opts | undefined;\n if (arg3) {\n schema = arg3;\n httpOptions = arg2 as Opts;\n } else {\n schema = arg2 as Schema;\n }\n\n let res: AsyncResult<HttpResponse<ResT>, SafeJsonError>;\n if (httpOptions) {\n res = Result.wrap(this.getYaml(url, httpOptions, schema));\n } else {\n res = Result.wrap(this.getYaml(url, schema));\n }\n\n return res.transform((response) => Result.ok(response.body));\n }\n\n /**\n * Request JSON and return the response without any validation.\n *\n * The usage of this method is discouraged, please use `getJson` instead.\n *\n * If you're new to Zod schema validation library:\n * - consult the [documentation of Zod library](https://github.com/colinhacks/zod?tab=readme-ov-file#basic-usage)\n * - search the Renovate codebase for 'zod' module usage\n * - take a look at the `schema-utils.ts` file for Renovate-specific schemas and utilities\n */\n getJsonUnchecked<ResT = unknown>(\n url: string,\n options?: JSONOpts,\n ): Promise<HttpResponse<ResT>> {\n return this.requestJson<ResT>('get', { url, httpOptions: options });\n }\n\n /**\n * Request JSON with a Zod schema for the response,\n * throwing an error if the response is not valid.\n *\n * @param url\n * @param schema Zod schema for the response\n */\n getJson<Schema extends ZodType<any, any, any>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<z.infer<Schema>>>;\n getJson<Schema extends ZodType<any, any, any>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<z.infer<Schema>>>;\n getJson<Schema extends ZodType<any, any, any>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<z.infer<Schema>>> {\n const args = this.resolveArgs<z.infer<Schema>>(arg1, arg2, arg3);\n return this.requestJson<z.infer<Schema>>('get', args);\n }\n\n /**\n * Request JSON with a Zod schema for the response,\n * wrapping response data in a `Result` class.\n *\n * @param url\n * @param schema Zod schema for the response\n */\n getJsonSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT>>(\n url: string,\n schema: Schema,\n ): AsyncResult<z.infer<Schema>, SafeJsonError>;\n getJsonSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): AsyncResult<z.infer<Schema>, SafeJsonError>;\n getJsonSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): AsyncResult<ResT, SafeJsonError> {\n const args = this.resolveArgs<ResT>(arg1, arg2, arg3);\n return Result.wrap(this.requestJson<ResT>('get', args)).transform(\n (response) => Result.ok(response.body),\n );\n }\n\n /**\n * @deprecated use `head` instead\n */\n headJson(url: string, httpOptions?: JSONOpts): Promise<HttpResponse<never>> {\n return this.requestJson<never>('head', { url, httpOptions });\n }\n\n postJson<T>(url: string, options?: JSONOpts): Promise<HttpResponse<T>>;\n postJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<z.infer<Schema>>>;\n postJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<z.infer<Schema>>>;\n postJson<T = unknown, Schema extends ZodType<T> = ZodType<T>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<T>> {\n const args = this.resolveArgs(arg1, arg2, arg3);\n return this.requestJson<T>('post', args);\n }\n\n putJson<T>(url: string, options?: JSONOpts): Promise<HttpResponse<T>>;\n putJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<z.infer<Schema>>>;\n putJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<z.infer<Schema>>>;\n putJson<T = unknown, Schema extends ZodType<T> = ZodType<T>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: ZodType,\n ): Promise<HttpResponse<T>> {\n const args = this.resolveArgs(arg1, arg2, arg3);\n return this.requestJson<T>('put', args);\n }\n\n patchJson<T>(url: string, options?: JSONOpts): Promise<HttpResponse<T>>;\n patchJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<z.infer<Schema>>>;\n patchJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<z.infer<Schema>>>;\n patchJson<T = unknown, Schema extends ZodType<T> = ZodType<T>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<T>> {\n const args = this.resolveArgs(arg1, arg2, arg3);\n return this.requestJson<T>('patch', args);\n }\n\n deleteJson<T>(url: string, options?: JSONOpts): Promise<HttpResponse<T>>;\n deleteJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n schema: Schema,\n ): Promise<HttpResponse<z.infer<Schema>>>;\n deleteJson<T, Schema extends ZodType<T> = ZodType<T>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<z.infer<Schema>>>;\n deleteJson<T = unknown, Schema extends ZodType<T> = ZodType<T>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<T>> {\n const args = this.resolveArgs(arg1, arg2, arg3);\n return this.requestJson<T>('delete', args);\n }\n\n stream(url: string, options?: HttpOptions): NodeJS.ReadableStream {\n let combinedOptions: Merge<\n GotStreamOptions,\n SetRequired<InternalHttpOptions, 'method'>\n > = {\n ...this.options,\n hostType: this.hostType,\n ...options,\n method: 'get',\n };\n\n const resolvedUrl = this.resolveUrl(url, options).toString();\n\n applyDefaultHeaders(combinedOptions);\n\n // v8 ignore else -- TODO: add test #40625\n if (\n isUndefined(combinedOptions.readOnly) &&\n ['head', 'get'].includes(combinedOptions.method)\n ) {\n combinedOptions.readOnly = true;\n }\n\n const hostRule = findMatchingRule(url, combinedOptions);\n combinedOptions = applyHostRule(resolvedUrl, combinedOptions, hostRule);\n if (combinedOptions.enabled === false) {\n throw new Error(HOST_DISABLED);\n }\n combinedOptions = applyAuthorization(combinedOptions);\n\n return stream(resolvedUrl, combinedOptions);\n }\n\n async getToml<Schema extends ZodType<any, any, any>>(\n url: string,\n schema?: Schema,\n ): Promise<HttpResponse<z.infer<Schema>>>;\n async getToml<Schema extends ZodType<any, any, any>>(\n url: string,\n options: JSONOpts,\n schema: Schema,\n ): Promise<HttpResponse<z.infer<Schema>>>;\n async getToml<Schema extends ZodType<any, any, any>>(\n arg1: string,\n arg2?: JSONOpts | Schema,\n arg3?: Schema,\n ): Promise<HttpResponse<z.infer<Schema>>> {\n const { url, schema, httpOptions } = this.resolveArgs<z.infer<Schema>>(\n arg1,\n arg2,\n arg3,\n );\n\n const opts: InternalHttpOptions = {\n ...httpOptions,\n method: 'get',\n headers: {\n 'Content-Type': 'application/toml',\n ...httpOptions?.headers,\n },\n };\n\n const res = await this.getText(url, opts);\n if (schema) {\n res.body = await Toml.pipe(schema).parseAsync(res.body);\n } else {\n res.body = (await Toml.parseAsync(res.body)) as z.infer<Schema>;\n }\n\n return res;\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "renovate",
|
|
3
3
|
"description": "Automated dependency updates. Flexible so you don't need to be.",
|
|
4
|
-
"version": "42.97.
|
|
4
|
+
"version": "42.97.2",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"bin": {
|
|
7
7
|
"renovate": "dist/renovate.js",
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"pnpm": "^10.0.0"
|
|
88
88
|
},
|
|
89
89
|
"volta": {
|
|
90
|
-
"node": "24.13.
|
|
90
|
+
"node": "24.13.1",
|
|
91
91
|
"pnpm": "10.28.2"
|
|
92
92
|
},
|
|
93
93
|
"dependencies": {
|
|
@@ -226,7 +226,7 @@
|
|
|
226
226
|
"@ls-lint/ls-lint": "2.3.1",
|
|
227
227
|
"@openpgp/web-stream-tools": "0.3.0",
|
|
228
228
|
"@semantic-release/exec": "7.1.0",
|
|
229
|
-
"@smithy/util-stream": "4.5.
|
|
229
|
+
"@smithy/util-stream": "4.5.11",
|
|
230
230
|
"@types/auth-header": "1.0.6",
|
|
231
231
|
"@types/aws4": "1.11.6",
|
|
232
232
|
"@types/better-sqlite3": "7.6.13",
|
|
@@ -253,7 +253,7 @@
|
|
|
253
253
|
"@types/mdast": "4.0.4",
|
|
254
254
|
"@types/moo": "0.5.10",
|
|
255
255
|
"@types/ms": "2.1.0",
|
|
256
|
-
"@types/node": "22.19.
|
|
256
|
+
"@types/node": "22.19.8",
|
|
257
257
|
"@types/parse-link-header": "2.0.3",
|
|
258
258
|
"@types/punycode": "2.1.4",
|
|
259
259
|
"@types/sax": "1.2.7",
|
package/renovate-schema.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"title": "JSON schema for Renovate 42.97.
|
|
2
|
+
"title": "JSON schema for Renovate 42.97.2 config files (https://renovatebot.com/)",
|
|
3
3
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
-
"x-renovate-version": "42.97.
|
|
4
|
+
"x-renovate-version": "42.97.2",
|
|
5
5
|
"allowComments": true,
|
|
6
6
|
"type": "object",
|
|
7
7
|
"properties": {
|