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.
- package/dist/config/decrypt/legacy.js +0 -1
- package/dist/config/decrypt/legacy.js.map +1 -1
- package/dist/config/decrypt.d.ts +3 -1
- package/dist/config/decrypt.js +56 -13
- package/dist/config/decrypt.js.map +1 -1
- package/dist/config/migrate-validate.js +3 -2
- package/dist/config/migrate-validate.js.map +1 -1
- package/dist/config/migration.js +2 -1
- package/dist/config/migration.js.map +1 -1
- package/dist/config/migrations/custom/rebase-stale-prs-migration.js +1 -1
- package/dist/config/migrations/custom/rebase-stale-prs-migration.js.map +1 -1
- package/dist/config/options/index.js +3 -3
- package/dist/config/options/index.js.map +1 -1
- package/dist/config/parse.js +2 -2
- package/dist/config/parse.js.map +1 -1
- package/dist/config/presets/gitea/index.js +0 -1
- package/dist/config/presets/gitea/index.js.map +1 -1
- package/dist/config/presets/github/index.js +0 -1
- package/dist/config/presets/github/index.js.map +1 -1
- package/dist/config/presets/gitlab/index.js +1 -1
- package/dist/config/presets/gitlab/index.js.map +1 -1
- package/dist/config/presets/http/index.js +1 -2
- package/dist/config/presets/http/index.js.map +1 -1
- package/dist/config/presets/index.js +0 -7
- package/dist/config/presets/index.js.map +1 -1
- package/dist/config/presets/internal/custom-managers.js +3 -4
- package/dist/config/presets/internal/custom-managers.js.map +1 -1
- package/dist/config/presets/internal/index.js +1 -3
- package/dist/config/presets/internal/index.js.map +1 -1
- package/dist/config/schema.d.ts +2 -2
- package/dist/config/validation.js +3 -5
- package/dist/config/validation.js.map +1 -1
- package/dist/config-validator.js +0 -1
- package/dist/config-validator.js.map +1 -1
- package/dist/constants/category.js +0 -1
- package/dist/constants/category.js.map +1 -1
- package/dist/data/monorepo.json +2 -1
- package/dist/instrumentation/index.js +5 -3
- package/dist/instrumentation/index.js.map +1 -1
- package/dist/instrumentation/utils.js +1 -1
- package/dist/instrumentation/utils.js.map +1 -1
- package/dist/logger/cmd-serializer.js +0 -1
- package/dist/logger/cmd-serializer.js.map +1 -1
- package/dist/logger/config-serializer.js +0 -1
- package/dist/logger/config-serializer.js.map +1 -1
- package/dist/logger/index.js +0 -3
- package/dist/logger/index.js.map +1 -1
- package/dist/logger/once.js +4 -2
- package/dist/logger/once.js.map +1 -1
- package/dist/logger/pretty-stdout.js +0 -1
- package/dist/logger/pretty-stdout.js.map +1 -1
- package/dist/logger/renovate-logger.js +1 -1
- package/dist/logger/renovate-logger.js.map +1 -1
- package/dist/logger/utils.js +6 -11
- package/dist/logger/utils.js.map +1 -1
- package/dist/modules/datasource/artifactory/index.js +1 -1
- package/dist/modules/datasource/artifactory/index.js.map +1 -1
- package/dist/modules/datasource/azure-pipelines-tasks/index.js +11 -1
- package/dist/modules/datasource/azure-pipelines-tasks/index.js.map +1 -1
- package/dist/modules/datasource/azure-pipelines-tasks/schema.d.ts +16 -0
- package/dist/modules/datasource/azure-pipelines-tasks/schema.js +2 -0
- package/dist/modules/datasource/azure-pipelines-tasks/schema.js.map +1 -1
- package/dist/modules/datasource/crate/index.js +1 -1
- package/dist/modules/datasource/crate/index.js.map +1 -1
- package/dist/modules/datasource/custom/formats/html.js +1 -1
- package/dist/modules/datasource/custom/formats/html.js.map +1 -1
- package/dist/modules/datasource/custom/formats/yaml.js +1 -1
- package/dist/modules/datasource/custom/formats/yaml.js.map +1 -1
- package/dist/modules/datasource/custom/schema.d.ts +5 -5
- package/dist/modules/datasource/deb/index.js +1 -1
- package/dist/modules/datasource/deb/index.js.map +1 -1
- package/dist/modules/datasource/deno/schema.d.ts +8 -8
- package/dist/modules/datasource/docker/common.js +1 -1
- package/dist/modules/datasource/docker/common.js.map +1 -1
- package/dist/modules/datasource/docker/index.js +5 -3
- package/dist/modules/datasource/docker/index.js.map +1 -1
- package/dist/modules/datasource/docker/schema.d.ts +32 -32
- package/dist/modules/datasource/galaxy/schema.d.ts +1 -1
- package/dist/modules/datasource/galaxy-collection/schema.d.ts +3 -3
- package/dist/modules/datasource/gitea-releases/schema.d.ts +4 -4
- package/dist/modules/datasource/gitea-tags/schema.d.ts +4 -4
- package/dist/modules/datasource/github-release-attachments/index.js +2 -2
- package/dist/modules/datasource/github-release-attachments/index.js.map +1 -1
- package/dist/modules/datasource/go/base.js +1 -1
- package/dist/modules/datasource/go/base.js.map +1 -1
- package/dist/modules/datasource/go/releases-goproxy.js +1 -1
- package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
- package/dist/modules/datasource/golang-version/index.js +1 -1
- package/dist/modules/datasource/golang-version/index.js.map +1 -1
- package/dist/modules/datasource/hex/schema.d.ts +11 -11
- package/dist/modules/datasource/hexpm-bob/index.js +1 -1
- package/dist/modules/datasource/hexpm-bob/index.js.map +1 -1
- package/dist/modules/datasource/index.js +2 -2
- package/dist/modules/datasource/index.js.map +1 -1
- package/dist/modules/datasource/maven/util.js +1 -1
- package/dist/modules/datasource/maven/util.js.map +1 -1
- package/dist/modules/datasource/nuget/v2.js +1 -1
- package/dist/modules/datasource/nuget/v2.js.map +1 -1
- package/dist/modules/datasource/nuget/v3.js +1 -1
- package/dist/modules/datasource/nuget/v3.js.map +1 -1
- package/dist/modules/datasource/packagist/schema.d.ts +30 -30
- package/dist/modules/datasource/pod/index.js +1 -1
- package/dist/modules/datasource/pod/index.js.map +1 -1
- package/dist/modules/datasource/pypi/index.js +1 -1
- package/dist/modules/datasource/pypi/index.js.map +1 -1
- package/dist/modules/datasource/ruby-version/index.js +1 -1
- package/dist/modules/datasource/ruby-version/index.js.map +1 -1
- package/dist/modules/datasource/rubygems/index.js +1 -1
- package/dist/modules/datasource/rubygems/index.js.map +1 -1
- package/dist/modules/datasource/rubygems/versions-endpoint-cache.js +2 -2
- package/dist/modules/datasource/rubygems/versions-endpoint-cache.js.map +1 -1
- package/dist/modules/datasource/terraform-provider/index.js +1 -1
- package/dist/modules/datasource/terraform-provider/index.js.map +1 -1
- package/dist/modules/datasource/unity3d/index.d.ts +4 -1
- package/dist/modules/datasource/unity3d/index.js +36 -42
- package/dist/modules/datasource/unity3d/index.js.map +1 -1
- package/dist/modules/datasource/unity3d/schema.d.ts +47 -0
- package/dist/modules/datasource/unity3d/schema.js +17 -0
- package/dist/modules/datasource/unity3d/schema.js.map +1 -0
- package/dist/modules/manager/argocd/schema.d.ts +10 -10
- package/dist/modules/manager/azure-pipelines/schema.d.ts +10 -10
- package/dist/modules/manager/batect/schema.d.ts +6 -6
- package/dist/modules/manager/batect-wrapper/artifacts.js +1 -1
- package/dist/modules/manager/batect-wrapper/artifacts.js.map +1 -1
- package/dist/modules/manager/bazel/rules/docker.d.ts +9 -9
- package/dist/modules/manager/bazel/rules/git.d.ts +10 -10
- package/dist/modules/manager/bazel/rules/git.js +7 -1
- package/dist/modules/manager/bazel/rules/git.js.map +1 -1
- package/dist/modules/manager/bazel/rules/go.d.ts +5 -5
- package/dist/modules/manager/bazel/rules/oci.d.ts +3 -3
- package/dist/modules/manager/bazel-module/parser/fragments.d.ts +40 -40
- package/dist/modules/manager/bazel-module/parser/maven.d.ts +27 -27
- package/dist/modules/manager/bazel-module/parser/oci.d.ts +17 -17
- package/dist/modules/manager/bazel-module/rules.d.ts +40 -40
- package/dist/modules/manager/bundler/artifacts.js.map +1 -1
- package/dist/modules/manager/cargo/schema.d.ts +100 -100
- package/dist/modules/manager/circleci/schema.d.ts +6 -6
- package/dist/modules/manager/composer/schema.d.ts +40 -40
- package/dist/modules/manager/composer/utils.js +9 -6
- package/dist/modules/manager/composer/utils.js.map +1 -1
- package/dist/modules/manager/crossplane/schema.d.ts +2 -2
- package/dist/modules/manager/custom/jsonata/index.js +4 -0
- package/dist/modules/manager/custom/jsonata/index.js.map +1 -1
- package/dist/modules/manager/custom/jsonata/schema.d.ts +7 -7
- package/dist/modules/manager/devbox/artifacts.d.ts +1 -1
- package/dist/modules/manager/devbox/artifacts.js +29 -11
- package/dist/modules/manager/devbox/artifacts.js.map +1 -1
- package/dist/modules/manager/fingerprint.generated.js +68 -68
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/fleet/schema.d.ts +12 -12
- package/dist/modules/manager/flux/schema.d.ts +50 -50
- package/dist/modules/manager/glasskube/schema.d.ts +8 -8
- package/dist/modules/manager/gradle-wrapper/artifacts.js +1 -1
- package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
- package/dist/modules/manager/maven/extract.js +3 -1
- package/dist/modules/manager/maven/extract.js.map +1 -1
- package/dist/modules/manager/mise/extract.js +1 -1
- package/dist/modules/manager/mise/extract.js.map +1 -1
- package/dist/modules/manager/nix/schema.d.ts +24 -24
- package/dist/modules/manager/npm/schema.d.ts +13 -13
- package/dist/modules/manager/nuget/schema.d.ts +8 -8
- package/dist/modules/manager/ocb/schema.d.ts +6 -6
- package/dist/modules/manager/pep621/schema.d.ts +55 -55
- package/dist/modules/manager/pep621/utils.js +1 -1
- package/dist/modules/manager/pep621/utils.js.map +1 -1
- package/dist/modules/manager/poetry/artifacts.js +3 -3
- package/dist/modules/manager/poetry/artifacts.js.map +1 -1
- package/dist/modules/manager/poetry/extract.js +2 -1
- package/dist/modules/manager/poetry/extract.js.map +1 -1
- package/dist/modules/manager/poetry/schema.d.ts +48 -48
- package/dist/modules/manager/sveltos/schema.d.ts +12 -12
- package/dist/modules/manager/terraform/lockfile/hash.d.ts +1 -1
- package/dist/modules/manager/vendir/schema.d.ts +27 -27
- package/dist/modules/platform/api.d.ts +1 -1
- package/dist/modules/platform/bitbucket/index.d.ts +1 -0
- package/dist/modules/platform/bitbucket/index.js +6 -1
- package/dist/modules/platform/bitbucket/index.js.map +1 -1
- package/dist/modules/platform/bitbucket/schema.d.ts +17 -17
- package/dist/modules/platform/bitbucket-server/index.d.ts +1 -1
- package/dist/modules/platform/bitbucket-server/index.js +13 -11
- package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/schema.d.ts +75 -0
- package/dist/modules/platform/bitbucket-server/schema.js +14 -1
- package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/types.d.ts +2 -1
- package/dist/modules/platform/bitbucket-server/types.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/utils.d.ts +0 -2
- package/dist/modules/platform/bitbucket-server/utils.js +1 -51
- package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
- package/dist/modules/platform/gerrit/client.js +1 -1
- package/dist/modules/platform/gerrit/client.js.map +1 -1
- package/dist/modules/platform/gitea/index.d.ts +1 -0
- package/dist/modules/platform/gitea/index.js +11 -0
- package/dist/modules/platform/gitea/index.js.map +1 -1
- package/dist/modules/platform/gitea/schema.d.ts +8 -8
- package/dist/modules/platform/github/common.d.ts +2 -0
- package/dist/modules/platform/github/common.js +16 -0
- package/dist/modules/platform/github/common.js.map +1 -1
- package/dist/modules/platform/github/index.d.ts +1 -1
- package/dist/modules/platform/github/index.js +6 -4
- package/dist/modules/platform/github/index.js.map +1 -1
- package/dist/modules/platform/github/issue.d.ts +12 -12
- package/dist/modules/platform/github/schema.d.ts +65 -65
- package/dist/modules/platform/gitlab/index.d.ts +1 -0
- package/dist/modules/platform/gitlab/index.js +9 -0
- package/dist/modules/platform/gitlab/index.js.map +1 -1
- package/dist/modules/platform/scm.d.ts +1 -1
- package/dist/modules/versioning/composer/index.js +10 -0
- package/dist/modules/versioning/composer/index.js.map +1 -1
- package/dist/modules/versioning/npm/index.js +2 -1
- package/dist/modules/versioning/npm/index.js.map +1 -1
- package/dist/modules/versioning/schema.js +1 -1
- package/dist/modules/versioning/schema.js.map +1 -1
- package/dist/modules/versioning/types.d.ts +4 -0
- package/dist/modules/versioning/types.js.map +1 -1
- package/dist/proxy.js +2 -1
- package/dist/proxy.js.map +1 -1
- package/dist/renovate.js +2 -2
- package/dist/renovate.js.map +1 -1
- package/dist/util/cache/package/decorator.js +2 -2
- package/dist/util/cache/package/decorator.js.map +1 -1
- package/dist/util/cache/package/redis.js +0 -1
- package/dist/util/cache/package/redis.js.map +1 -1
- package/dist/util/cache/repository/impl/base.d.ts +1 -1
- package/dist/util/exec/containerbase.js +12 -12
- package/dist/util/exec/containerbase.js.map +1 -1
- package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +5 -5
- package/dist/util/http/auth.js +0 -1
- package/dist/util/http/auth.js.map +1 -1
- package/dist/util/http/bitbucket-server.d.ts +5 -4
- package/dist/util/http/bitbucket-server.js +17 -20
- package/dist/util/http/bitbucket-server.js.map +1 -1
- package/dist/util/http/bitbucket.d.ts +6 -5
- package/dist/util/http/bitbucket.js +30 -31
- package/dist/util/http/bitbucket.js.map +1 -1
- package/dist/util/http/cache/abstract-http-cache-provider.js +1 -1
- package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
- package/dist/util/http/cache/schema.d.ts +2 -2
- package/dist/util/http/errors.d.ts +2 -0
- package/dist/util/http/errors.js +8 -0
- package/dist/util/http/errors.js.map +1 -0
- package/dist/util/http/gerrit.d.ts +6 -4
- package/dist/util/http/gerrit.js +11 -12
- package/dist/util/http/gerrit.js.map +1 -1
- package/dist/util/http/gitea.d.ts +5 -4
- package/dist/util/http/gitea.js +12 -13
- package/dist/util/http/gitea.js.map +1 -1
- package/dist/util/http/github.d.ts +14 -8
- package/dist/util/http/github.js +64 -60
- package/dist/util/http/github.js.map +1 -1
- package/dist/util/http/gitlab.d.ts +7 -5
- package/dist/util/http/gitlab.js +56 -46
- package/dist/util/http/gitlab.js.map +1 -1
- package/dist/util/http/got.d.ts +9 -0
- package/dist/util/http/got.js +54 -0
- package/dist/util/http/got.js.map +1 -0
- package/dist/util/http/host-rules.d.ts +2 -1
- package/dist/util/http/host-rules.js.map +1 -1
- package/dist/util/http/http.d.ts +93 -0
- package/dist/util/http/http.js +339 -0
- package/dist/util/http/http.js.map +1 -0
- package/dist/util/http/index.d.ts +6 -74
- package/dist/util/http/index.js +5 -359
- package/dist/util/http/index.js.map +1 -1
- package/dist/util/http/legacy.js +4 -1
- package/dist/util/http/legacy.js.map +1 -1
- package/dist/util/http/types.d.ts +9 -16
- package/dist/util/http/types.js.map +1 -1
- package/dist/util/string.d.ts +15 -0
- package/dist/util/string.js +75 -0
- package/dist/util/string.js.map +1 -1
- package/dist/util/toml.d.ts +1 -0
- package/dist/util/toml.js +6 -0
- package/dist/util/toml.js.map +1 -1
- package/dist/util/url.js +3 -8
- package/dist/util/url.js.map +1 -1
- package/dist/util/yaml.js +2 -6
- package/dist/util/yaml.js.map +1 -1
- package/dist/workers/global/config/parse/env.js +3 -2
- package/dist/workers/global/config/parse/env.js.map +1 -1
- package/dist/workers/global/config/parse/file.js +19 -9
- package/dist/workers/global/config/parse/file.js.map +1 -1
- package/dist/workers/global/config/parse/host-rules-from-env.js +6 -2
- package/dist/workers/global/config/parse/host-rules-from-env.js.map +1 -1
- package/dist/workers/repository/cache.js +0 -1
- package/dist/workers/repository/cache.js.map +1 -1
- package/dist/workers/repository/onboarding/pr/config-description.js +3 -1
- package/dist/workers/repository/onboarding/pr/config-description.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +1 -1
- package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/gitlab/index.js +1 -1
- package/dist/workers/repository/update/pr/changelog/gitlab/index.js.map +1 -1
- package/package.json +44 -49
- package/renovate-schema.json +2 -1
package/dist/util/http/index.js
CHANGED
@@ -1,366 +1,12 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.Http = exports.EmptyResultError = exports.HttpError = void 0;
|
4
|
-
const
|
5
|
-
|
6
|
-
const
|
7
|
-
const got_1 = tslib_1.__importStar(require("got"));
|
4
|
+
const errors_1 = require("./errors");
|
5
|
+
Object.defineProperty(exports, "EmptyResultError", { enumerable: true, get: function () { return errors_1.EmptyResultError; } });
|
6
|
+
const got_1 = require("./got");
|
8
7
|
Object.defineProperty(exports, "HttpError", { enumerable: true, get: function () { return got_1.RequestError; } });
|
9
|
-
const
|
10
|
-
|
11
|
-
const error_messages_1 = require("../../constants/error-messages");
|
12
|
-
const expose_cjs_1 = require("../../expose.cjs");
|
13
|
-
const logger_1 = require("../../logger");
|
14
|
-
const external_host_error_1 = require("../../types/errors/external-host-error");
|
15
|
-
const memCache = tslib_1.__importStar(require("../cache/memory"));
|
16
|
-
const hash_1 = require("../hash");
|
17
|
-
const result_1 = require("../result");
|
18
|
-
const stats_1 = require("../stats");
|
19
|
-
const url_1 = require("../url");
|
20
|
-
const yaml_1 = require("../yaml");
|
21
|
-
const auth_1 = require("./auth");
|
22
|
-
const hooks_1 = require("./hooks");
|
23
|
-
const host_rules_1 = require("./host-rules");
|
24
|
-
const queue_1 = require("./queue");
|
25
|
-
const retry_after_1 = require("./retry-after");
|
26
|
-
const throttle_1 = require("./throttle");
|
27
|
-
// TODO: refactor code to remove this (#9651)
|
28
|
-
require("./legacy");
|
29
|
-
const util_1 = require("./util");
|
30
|
-
class EmptyResultError extends Error {
|
31
|
-
}
|
32
|
-
exports.EmptyResultError = EmptyResultError;
|
33
|
-
function applyDefaultHeaders(options) {
|
34
|
-
const renovateVersion = expose_cjs_1.pkg.version;
|
35
|
-
options.headers = {
|
36
|
-
...options.headers,
|
37
|
-
'user-agent': global_1.GlobalConfig.get('userAgent') ??
|
38
|
-
`RenovateBot/${renovateVersion} (https://github.com/renovatebot/renovate)`,
|
39
|
-
};
|
40
|
-
}
|
41
|
-
// Note on types:
|
42
|
-
// options.requestType can be either 'json' or 'buffer', but `T` should be
|
43
|
-
// `Buffer` in the latter case.
|
44
|
-
// We don't declare overload signatures because it's immediately wrapped by
|
45
|
-
// `request`.
|
46
|
-
async function gotTask(url, options, queueStats) {
|
47
|
-
logger_1.logger.trace({ url, options }, 'got request');
|
48
|
-
let duration = 0;
|
49
|
-
let statusCode = 0;
|
50
|
-
try {
|
51
|
-
// Cheat the TS compiler using `as` to pick a specific overload.
|
52
|
-
// Otherwise it doesn't typecheck.
|
53
|
-
const resp = await (0, got_1.default)(url, { ...options, hooks: hooks_1.hooks });
|
54
|
-
statusCode = resp.statusCode;
|
55
|
-
duration =
|
56
|
-
resp.timings.phases.total ??
|
57
|
-
/* istanbul ignore next: can't be tested */ 0;
|
58
|
-
return resp;
|
59
|
-
}
|
60
|
-
catch (error) {
|
61
|
-
if (error instanceof got_1.RequestError) {
|
62
|
-
statusCode =
|
63
|
-
error.response?.statusCode ??
|
64
|
-
/* istanbul ignore next: can't be tested */ -1;
|
65
|
-
duration =
|
66
|
-
error.timings?.phases.total ??
|
67
|
-
/* istanbul ignore next: can't be tested */ -1;
|
68
|
-
const method = options.method.toUpperCase();
|
69
|
-
const code = error.code ?? /* istanbul ignore next */ 'UNKNOWN';
|
70
|
-
const retryCount = error.request?.retryCount ?? /* istanbul ignore next */ -1;
|
71
|
-
logger_1.logger.debug(`${method} ${url} = (code=${code}, statusCode=${statusCode} retryCount=${retryCount}, duration=${duration})`);
|
72
|
-
}
|
73
|
-
throw error;
|
74
|
-
}
|
75
|
-
finally {
|
76
|
-
stats_1.HttpStats.write({
|
77
|
-
method: options.method,
|
78
|
-
url,
|
79
|
-
reqMs: duration,
|
80
|
-
queueMs: queueStats.queueMs,
|
81
|
-
status: statusCode,
|
82
|
-
});
|
83
|
-
}
|
84
|
-
}
|
85
|
-
class Http {
|
86
|
-
hostType;
|
87
|
-
options;
|
88
|
-
constructor(hostType, options = {}) {
|
89
|
-
this.hostType = hostType;
|
90
|
-
const retryLimit = process.env.NODE_ENV === 'test' ? 0 : 2;
|
91
|
-
this.options = (0, deepmerge_1.default)(options, {
|
92
|
-
context: { hostType },
|
93
|
-
retry: {
|
94
|
-
calculateDelay: (retryObject) => this.calculateRetryDelay(retryObject),
|
95
|
-
limit: retryLimit,
|
96
|
-
maxRetryAfter: 0, // Don't rely on `got` retry-after handling, just let it fail and then we'll handle it
|
97
|
-
},
|
98
|
-
}, { isMergeableObject: is_1.default.plainObject });
|
99
|
-
}
|
100
|
-
async request(requestUrl, httpOptions) {
|
101
|
-
let url = requestUrl.toString();
|
102
|
-
if (httpOptions?.baseUrl) {
|
103
|
-
url = (0, url_1.resolveBaseUrl)(httpOptions.baseUrl, url);
|
104
|
-
}
|
105
|
-
let options = (0, deepmerge_1.default)({
|
106
|
-
method: 'get',
|
107
|
-
...this.options,
|
108
|
-
hostType: this.hostType,
|
109
|
-
}, httpOptions, { isMergeableObject: is_1.default.plainObject });
|
110
|
-
logger_1.logger.trace(`HTTP request: ${options.method.toUpperCase()} ${url}`);
|
111
|
-
options.hooks = {
|
112
|
-
beforeRedirect: [auth_1.removeAuthorization],
|
113
|
-
};
|
114
|
-
applyDefaultHeaders(options);
|
115
|
-
if (is_1.default.undefined(options.readOnly) &&
|
116
|
-
['head', 'get'].includes(options.method)) {
|
117
|
-
options.readOnly = true;
|
118
|
-
}
|
119
|
-
const hostRule = (0, host_rules_1.findMatchingRule)(url, options);
|
120
|
-
options = (0, host_rules_1.applyHostRule)(url, options, hostRule);
|
121
|
-
if (options.enabled === false) {
|
122
|
-
logger_1.logger.debug(`Host is disabled - rejecting request. HostUrl: ${url}`);
|
123
|
-
throw new Error(error_messages_1.HOST_DISABLED);
|
124
|
-
}
|
125
|
-
options = (0, auth_1.applyAuthorization)(options);
|
126
|
-
options.timeout ??= 60000;
|
127
|
-
const { cacheProvider } = options;
|
128
|
-
const cachedResponse = await cacheProvider?.bypassServer(url);
|
129
|
-
if (cachedResponse) {
|
130
|
-
return cachedResponse;
|
131
|
-
}
|
132
|
-
const memCacheKey = options.memCache !== false &&
|
133
|
-
(options.method === 'get' || options.method === 'head')
|
134
|
-
? (0, hash_1.hash)(`got-${JSON.stringify({
|
135
|
-
url,
|
136
|
-
headers: options.headers,
|
137
|
-
method: options.method,
|
138
|
-
})}`)
|
139
|
-
: null;
|
140
|
-
let resPromise = null;
|
141
|
-
// Cache GET requests unless memCache=false
|
142
|
-
if (memCacheKey) {
|
143
|
-
resPromise = memCache.get(memCacheKey);
|
144
|
-
}
|
145
|
-
// istanbul ignore else: no cache tests
|
146
|
-
if (!resPromise) {
|
147
|
-
if (cacheProvider) {
|
148
|
-
await cacheProvider.setCacheHeaders(url, options);
|
149
|
-
}
|
150
|
-
const startTime = Date.now();
|
151
|
-
const httpTask = () => {
|
152
|
-
const queueMs = Date.now() - startTime;
|
153
|
-
return gotTask(url, options, { queueMs });
|
154
|
-
};
|
155
|
-
const throttle = (0, throttle_1.getThrottle)(url);
|
156
|
-
const throttledTask = throttle
|
157
|
-
? () => throttle.add(httpTask)
|
158
|
-
: httpTask;
|
159
|
-
const queue = (0, queue_1.getQueue)(url);
|
160
|
-
const queuedTask = queue
|
161
|
-
? () => queue.add(throttledTask)
|
162
|
-
: throttledTask;
|
163
|
-
const { maxRetryAfter = 60 } = hostRule;
|
164
|
-
resPromise = (0, retry_after_1.wrapWithRetry)(queuedTask, url, retry_after_1.getRetryAfter, maxRetryAfter);
|
165
|
-
if (memCacheKey) {
|
166
|
-
memCache.set(memCacheKey, resPromise);
|
167
|
-
}
|
168
|
-
}
|
169
|
-
try {
|
170
|
-
const res = await resPromise;
|
171
|
-
const deepCopyNeeded = !!memCacheKey && res.statusCode !== 304;
|
172
|
-
const resCopy = (0, util_1.copyResponse)(res, deepCopyNeeded);
|
173
|
-
resCopy.authorization = !!options?.headers?.authorization;
|
174
|
-
if (cacheProvider) {
|
175
|
-
return await cacheProvider.wrapServerResponse(url, resCopy);
|
176
|
-
}
|
177
|
-
return resCopy;
|
178
|
-
}
|
179
|
-
catch (err) {
|
180
|
-
const { abortOnError, abortIgnoreStatusCodes } = options;
|
181
|
-
if (abortOnError && !abortIgnoreStatusCodes?.includes(err.statusCode)) {
|
182
|
-
throw new external_host_error_1.ExternalHostError(err);
|
183
|
-
}
|
184
|
-
const staleResponse = await cacheProvider?.bypassServer(url, true);
|
185
|
-
if (staleResponse) {
|
186
|
-
logger_1.logger.debug({ err }, `Request error: returning stale cache instead for ${url}`);
|
187
|
-
return staleResponse;
|
188
|
-
}
|
189
|
-
throw err;
|
190
|
-
}
|
191
|
-
}
|
192
|
-
calculateRetryDelay({ computedValue }) {
|
193
|
-
return computedValue;
|
194
|
-
}
|
195
|
-
get(url, options = {}) {
|
196
|
-
return this.request(url, options);
|
197
|
-
}
|
198
|
-
head(url, options = {}) {
|
199
|
-
return this.request(url, { ...options, method: 'head' });
|
200
|
-
}
|
201
|
-
getBuffer(url, options = {}) {
|
202
|
-
return this.request(url, {
|
203
|
-
...options,
|
204
|
-
responseType: 'buffer',
|
205
|
-
});
|
206
|
-
}
|
207
|
-
async requestJson(method, { url, httpOptions: requestOptions, schema }) {
|
208
|
-
const { body, ...httpOptions } = { ...requestOptions };
|
209
|
-
const opts = {
|
210
|
-
...httpOptions,
|
211
|
-
method,
|
212
|
-
responseType: 'json',
|
213
|
-
};
|
214
|
-
// signal that we expect a json response
|
215
|
-
opts.headers = {
|
216
|
-
accept: 'application/json',
|
217
|
-
...opts.headers,
|
218
|
-
};
|
219
|
-
if (body) {
|
220
|
-
opts.json = body;
|
221
|
-
}
|
222
|
-
const res = await this.request(url, opts);
|
223
|
-
if (!schema) {
|
224
|
-
return res;
|
225
|
-
}
|
226
|
-
res.body = await schema.parseAsync(res.body);
|
227
|
-
return res;
|
228
|
-
}
|
229
|
-
resolveArgs(arg1, arg2, arg3) {
|
230
|
-
const res = { url: arg1 };
|
231
|
-
if (arg2 instanceof zod_1.ZodType) {
|
232
|
-
res.schema = arg2;
|
233
|
-
}
|
234
|
-
else if (arg2) {
|
235
|
-
res.httpOptions = arg2;
|
236
|
-
}
|
237
|
-
if (arg3) {
|
238
|
-
res.schema = arg3;
|
239
|
-
}
|
240
|
-
return res;
|
241
|
-
}
|
242
|
-
async getPlain(url, options) {
|
243
|
-
const opt = options ?? {};
|
244
|
-
return await this.get(url, {
|
245
|
-
headers: {
|
246
|
-
Accept: 'text/plain',
|
247
|
-
},
|
248
|
-
...opt,
|
249
|
-
});
|
250
|
-
}
|
251
|
-
/**
|
252
|
-
* @deprecated use `getYaml` instead
|
253
|
-
*/
|
254
|
-
async getYamlUnchecked(url, options) {
|
255
|
-
const res = await this.get(url, options);
|
256
|
-
const body = (0, yaml_1.parseSingleYaml)(res.body);
|
257
|
-
return { ...res, body };
|
258
|
-
}
|
259
|
-
async getYaml(arg1, arg2, arg3) {
|
260
|
-
const url = arg1;
|
261
|
-
let schema;
|
262
|
-
let httpOptions;
|
263
|
-
if (arg3) {
|
264
|
-
schema = arg3;
|
265
|
-
httpOptions = arg2;
|
266
|
-
}
|
267
|
-
else {
|
268
|
-
schema = arg2;
|
269
|
-
}
|
270
|
-
const opts = {
|
271
|
-
...httpOptions,
|
272
|
-
method: 'get',
|
273
|
-
};
|
274
|
-
const res = await this.get(url, opts);
|
275
|
-
const body = await schema.parseAsync((0, yaml_1.parseSingleYaml)(res.body));
|
276
|
-
return { ...res, body };
|
277
|
-
}
|
278
|
-
getYamlSafe(arg1, arg2, arg3) {
|
279
|
-
const url = arg1;
|
280
|
-
let schema;
|
281
|
-
let httpOptions;
|
282
|
-
if (arg3) {
|
283
|
-
schema = arg3;
|
284
|
-
httpOptions = arg2;
|
285
|
-
}
|
286
|
-
else {
|
287
|
-
schema = arg2;
|
288
|
-
}
|
289
|
-
let res;
|
290
|
-
if (httpOptions) {
|
291
|
-
res = result_1.Result.wrap(this.getYaml(url, httpOptions, schema));
|
292
|
-
}
|
293
|
-
else {
|
294
|
-
res = result_1.Result.wrap(this.getYaml(url, schema));
|
295
|
-
}
|
296
|
-
return res.transform((response) => result_1.Result.ok(response.body));
|
297
|
-
}
|
298
|
-
/**
|
299
|
-
* Request JSON and return the response without any validation.
|
300
|
-
*
|
301
|
-
* The usage of this method is discouraged, please use `getJson` instead.
|
302
|
-
*
|
303
|
-
* If you're new to Zod schema validation library:
|
304
|
-
* - consult the [documentation of Zod library](https://github.com/colinhacks/zod?tab=readme-ov-file#basic-usage)
|
305
|
-
* - search the Renovate codebase for 'zod' module usage
|
306
|
-
* - take a look at the `schema-utils.ts` file for Renovate-specific schemas and utilities
|
307
|
-
*/
|
308
|
-
getJsonUnchecked(url, options) {
|
309
|
-
return this.requestJson('get', { url, httpOptions: options });
|
310
|
-
}
|
311
|
-
getJson(arg1, arg2, arg3) {
|
312
|
-
const args = this.resolveArgs(arg1, arg2, arg3);
|
313
|
-
return this.requestJson('get', args);
|
314
|
-
}
|
315
|
-
getJsonSafe(arg1, arg2, arg3) {
|
316
|
-
const args = this.resolveArgs(arg1, arg2, arg3);
|
317
|
-
return result_1.Result.wrap(this.requestJson('get', args)).transform((response) => result_1.Result.ok(response.body));
|
318
|
-
}
|
319
|
-
headJson(url, httpOptions) {
|
320
|
-
return this.requestJson('head', { url, httpOptions });
|
321
|
-
}
|
322
|
-
postJson(arg1, arg2, arg3) {
|
323
|
-
const args = this.resolveArgs(arg1, arg2, arg3);
|
324
|
-
return this.requestJson('post', args);
|
325
|
-
}
|
326
|
-
putJson(arg1, arg2, arg3) {
|
327
|
-
const args = this.resolveArgs(arg1, arg2, arg3);
|
328
|
-
return this.requestJson('put', args);
|
329
|
-
}
|
330
|
-
patchJson(arg1, arg2, arg3) {
|
331
|
-
const args = this.resolveArgs(arg1, arg2, arg3);
|
332
|
-
return this.requestJson('patch', args);
|
333
|
-
}
|
334
|
-
deleteJson(arg1, arg2, arg3) {
|
335
|
-
const args = this.resolveArgs(arg1, arg2, arg3);
|
336
|
-
return this.requestJson('delete', args);
|
337
|
-
}
|
338
|
-
stream(url, options) {
|
339
|
-
// TODO: fix types (#22198)
|
340
|
-
let combinedOptions = {
|
341
|
-
method: 'get',
|
342
|
-
...this.options,
|
343
|
-
hostType: this.hostType,
|
344
|
-
...options,
|
345
|
-
};
|
346
|
-
let resolvedUrl = url;
|
347
|
-
// istanbul ignore else: needs test
|
348
|
-
if (options?.baseUrl) {
|
349
|
-
resolvedUrl = (0, url_1.resolveBaseUrl)(options.baseUrl, url);
|
350
|
-
}
|
351
|
-
applyDefaultHeaders(combinedOptions);
|
352
|
-
if (is_1.default.undefined(combinedOptions.readOnly) &&
|
353
|
-
['head', 'get'].includes(combinedOptions.method)) {
|
354
|
-
combinedOptions.readOnly = true;
|
355
|
-
}
|
356
|
-
const hostRule = (0, host_rules_1.findMatchingRule)(url, combinedOptions);
|
357
|
-
combinedOptions = (0, host_rules_1.applyHostRule)(resolvedUrl, combinedOptions, hostRule);
|
358
|
-
if (combinedOptions.enabled === false) {
|
359
|
-
throw new Error(error_messages_1.HOST_DISABLED);
|
360
|
-
}
|
361
|
-
combinedOptions = (0, auth_1.applyAuthorization)(combinedOptions);
|
362
|
-
return got_1.default.stream(resolvedUrl, combinedOptions);
|
363
|
-
}
|
8
|
+
const http_1 = require("./http");
|
9
|
+
class Http extends http_1.HttpBase {
|
364
10
|
}
|
365
11
|
exports.Http = Http;
|
366
12
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/util/http/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport merge from 'deepmerge';\nimport type { Options, RetryObject } from 'got';\nimport got, { RequestError } from 'got';\nimport type { SetRequired } from 'type-fest';\nimport type { infer as Infer, ZodError } from 'zod';\nimport { ZodType } from 'zod';\nimport { GlobalConfig } from '../../config/global';\nimport { HOST_DISABLED } from '../../constants/error-messages';\nimport { pkg } from '../../expose.cjs';\nimport { logger } from '../../logger';\nimport { ExternalHostError } from '../../types/errors/external-host-error';\nimport * as memCache from '../cache/memory';\nimport { hash } from '../hash';\nimport { type AsyncResult, Result } from '../result';\nimport { type HttpRequestStatsDataPoint, HttpStats } from '../stats';\nimport { resolveBaseUrl } from '../url';\nimport { parseSingleYaml } from '../yaml';\nimport { applyAuthorization, removeAuthorization } from './auth';\nimport { hooks } from './hooks';\nimport { applyHostRule, findMatchingRule } from './host-rules';\nimport { getQueue } from './queue';\nimport { getRetryAfter, wrapWithRetry } from './retry-after';\nimport { getThrottle } from './throttle';\nimport type {\n GotJSONOptions,\n GotOptions,\n GotTask,\n HttpOptions,\n HttpResponse,\n InternalHttpOptions,\n} from './types';\n// TODO: refactor code to remove this (#9651)\nimport './legacy';\nimport { copyResponse } from './util';\n\nexport { RequestError as HttpError };\n\nexport class EmptyResultError extends Error {}\nexport type SafeJsonError = RequestError | ZodError | EmptyResultError;\n\ninterface HttpFnArgs<\n Opts extends HttpOptions,\n ResT = unknown,\n Schema extends ZodType<ResT> = ZodType<ResT>,\n> {\n url: string;\n httpOptions?: Opts;\n schema?: Schema;\n}\n\nfunction applyDefaultHeaders(options: Options): void {\n const renovateVersion = pkg.version;\n options.headers = {\n ...options.headers,\n 'user-agent':\n GlobalConfig.get('userAgent') ??\n `RenovateBot/${renovateVersion} (https://github.com/renovatebot/renovate)`,\n };\n}\n\ntype QueueStatsData = Pick<HttpRequestStatsDataPoint, 'queueMs'>;\n\n// Note on types:\n// options.requestType can be either 'json' or 'buffer', but `T` should be\n// `Buffer` in the latter case.\n// We don't declare overload signatures because it's immediately wrapped by\n// `request`.\nasync function gotTask<T>(\n url: string,\n options: SetRequired<GotOptions, 'method'>,\n queueStats: QueueStatsData,\n): Promise<HttpResponse<T>> {\n logger.trace({ url, options }, 'got request');\n\n let duration = 0;\n let statusCode = 0;\n\n try {\n // Cheat the TS compiler using `as` to pick a specific overload.\n // Otherwise it doesn't typecheck.\n const resp = await got<T>(url, { ...options, hooks } as GotJSONOptions);\n statusCode = resp.statusCode;\n duration =\n resp.timings.phases.total ??\n /* istanbul ignore next: can't be tested */ 0;\n return resp;\n } catch (error) {\n if (error instanceof RequestError) {\n statusCode =\n error.response?.statusCode ??\n /* istanbul ignore next: can't be tested */ -1;\n duration =\n error.timings?.phases.total ??\n /* istanbul ignore next: can't be tested */ -1;\n const method = options.method.toUpperCase();\n const code = error.code ?? /* istanbul ignore next */ 'UNKNOWN';\n const retryCount =\n error.request?.retryCount ?? /* istanbul ignore next */ -1;\n logger.debug(\n `${method} ${url} = (code=${code}, statusCode=${statusCode} retryCount=${retryCount}, duration=${duration})`,\n );\n }\n\n throw error;\n } finally {\n HttpStats.write({\n method: options.method,\n url,\n reqMs: duration,\n queueMs: queueStats.queueMs,\n status: statusCode,\n });\n }\n}\n\nexport class Http<Opts extends HttpOptions = HttpOptions> {\n private options?: GotOptions;\n\n constructor(\n protected hostType: string,\n options: HttpOptions = {},\n ) {\n const retryLimit = process.env.NODE_ENV === 'test' ? 0 : 2;\n this.options = merge<GotOptions>(\n options,\n {\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: is.plainObject },\n );\n }\n\n protected async request<T>(\n requestUrl: string | URL,\n httpOptions: InternalHttpOptions,\n ): Promise<HttpResponse<T>> {\n let url = requestUrl.toString();\n if (httpOptions?.baseUrl) {\n url = resolveBaseUrl(httpOptions.baseUrl, url);\n }\n\n let options = merge<SetRequired<GotOptions, 'method'>, InternalHttpOptions>(\n {\n method: 'get',\n ...this.options,\n hostType: this.hostType,\n },\n httpOptions,\n { isMergeableObject: is.plainObject },\n );\n\n logger.trace(`HTTP request: ${options.method.toUpperCase()} ${url}`);\n\n options.hooks = {\n beforeRedirect: [removeAuthorization],\n };\n\n applyDefaultHeaders(options);\n\n if (\n is.undefined(options.readOnly) &&\n ['head', 'get'].includes(options.method)\n ) {\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 const { cacheProvider } = options;\n const cachedResponse = await cacheProvider?.bypassServer<T>(url);\n if (cachedResponse) {\n return cachedResponse;\n }\n\n const memCacheKey =\n options.memCache !== false &&\n (options.method === 'get' || options.method === 'head')\n ? hash(\n `got-${JSON.stringify({\n url,\n headers: options.headers,\n method: options.method,\n })}`,\n )\n : null;\n\n let resPromise: Promise<HttpResponse<T>> | null = null;\n\n // Cache GET requests unless memCache=false\n if (memCacheKey) {\n resPromise = memCache.get(memCacheKey);\n }\n\n // istanbul ignore else: no cache tests\n if (!resPromise) {\n if (cacheProvider) {\n await cacheProvider.setCacheHeaders(url, options);\n }\n\n const startTime = Date.now();\n const httpTask: GotTask<T> = () => {\n const queueMs = Date.now() - startTime;\n return gotTask(url, options, { queueMs });\n };\n\n const throttle = getThrottle(url);\n const throttledTask: GotTask<T> = throttle\n ? () => throttle.add<HttpResponse<T>>(httpTask)\n : httpTask;\n\n const queue = getQueue(url);\n const queuedTask: GotTask<T> = queue\n ? () => queue.add<HttpResponse<T>>(throttledTask)\n : 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(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<T>(url, true);\n if (staleResponse) {\n logger.debug(\n { err },\n `Request error: returning stale cache instead for ${url}`,\n );\n return staleResponse;\n }\n\n throw err;\n }\n }\n\n protected calculateRetryDelay({ computedValue }: RetryObject): number {\n return computedValue;\n }\n\n get(url: string, options: HttpOptions = {}): Promise<HttpResponse> {\n return this.request<string>(url, options);\n }\n\n head(url: string, options: HttpOptions = {}): Promise<HttpResponse> {\n return this.request<string>(url, { ...options, method: 'head' });\n }\n\n getBuffer(\n url: string,\n options: HttpOptions = {},\n ): Promise<HttpResponse<Buffer>> {\n return this.request<Buffer>(url, {\n ...options,\n responseType: 'buffer',\n });\n }\n\n private async requestJson<ResT = unknown>(\n method: InternalHttpOptions['method'],\n { url, httpOptions: requestOptions, schema }: HttpFnArgs<Opts, ResT>,\n ): Promise<HttpResponse<ResT>> {\n const { body, ...httpOptions } = { ...requestOptions };\n const opts: InternalHttpOptions = {\n ...httpOptions,\n method,\n responseType: 'json',\n };\n // signal that we expect a json response\n opts.headers = {\n accept: 'application/json',\n ...opts.headers,\n };\n if (body) {\n opts.json = body;\n }\n const res = await this.request<ResT>(url, opts);\n\n if (!schema) {\n return res;\n }\n\n res.body = await schema.parseAsync(res.body);\n return res;\n }\n\n private resolveArgs<ResT = unknown>(\n arg1: string,\n arg2: Opts | ZodType<ResT> | undefined,\n arg3: ZodType<ResT> | undefined,\n ): HttpFnArgs<Opts, ResT> {\n const res: HttpFnArgs<Opts, 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.get(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.get(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.get(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?: Opts,\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: Opts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n getJson<Schema extends ZodType<any, any, any>>(\n arg1: string,\n arg2?: Opts | 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: Opts,\n schema: Schema,\n ): AsyncResult<Infer<Schema>, SafeJsonError>;\n getJsonSafe<ResT extends NonNullable<unknown>, Schema extends ZodType<ResT>>(\n arg1: string,\n arg2?: Opts | 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 headJson(url: string, httpOptions?: Opts): Promise<HttpResponse<never>> {\n return this.requestJson<never>('head', { url, httpOptions });\n }\n\n postJson<T>(url: string, options?: Opts): 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: Opts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n postJson<T = unknown, Schema extends ZodType<T> = ZodType<T>>(\n arg1: string,\n arg2?: Opts | 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?: Opts): 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: Opts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n putJson<T = unknown, Schema extends ZodType<T> = ZodType<T>>(\n arg1: string,\n arg2?: Opts | 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?: Opts): 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: Opts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n patchJson<T = unknown, Schema extends ZodType<T> = ZodType<T>>(\n arg1: string,\n arg2?: Opts | 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?: Opts): 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: Opts,\n schema: Schema,\n ): Promise<HttpResponse<Infer<Schema>>>;\n deleteJson<T = unknown, Schema extends ZodType<T> = ZodType<T>>(\n arg1: string,\n arg2?: Opts | 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 // TODO: fix types (#22198)\n let combinedOptions: any = {\n method: 'get',\n ...this.options,\n hostType: this.hostType,\n ...options,\n };\n\n let resolvedUrl = url;\n // istanbul ignore else: needs test\n if (options?.baseUrl) {\n resolvedUrl = resolveBaseUrl(options.baseUrl, url);\n }\n\n applyDefaultHeaders(combinedOptions);\n\n if (\n is.undefined(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 got.stream(resolvedUrl, combinedOptions);\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/util/http/index.ts"],"names":[],"mappings":";;;AAAA,qCAA4C;AAIR,iGAJ3B,yBAAgB,OAI2B;AAHpD,+BAAqC;AAGZ,0FAHhB,kBAAY,OAGa;AAFlC,iCAAkC;AAMlC,MAAa,IAAK,SAAQ,eAAQ;CAAG;AAArC,oBAAqC","sourcesContent":["import { EmptyResultError } from './errors';\nimport { RequestError } from './got';\nimport { HttpBase } from './http';\n\nexport { RequestError as HttpError, EmptyResultError };\n\nexport type * from './types';\n\nexport class Http extends HttpBase {}\n"]}
|
package/dist/util/http/legacy.js
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
// istanbul ignore file
|
4
3
|
const got_1 = require("got");
|
5
4
|
const url_1 = require("../url");
|
6
5
|
// TODO: remove when code is refactored (#9651)
|
@@ -8,6 +7,7 @@ Object.defineProperty(got_1.RequestError.prototype, 'statusCode', {
|
|
8
7
|
get: function statusCode() {
|
9
8
|
return this.response?.statusCode;
|
10
9
|
},
|
10
|
+
configurable: true, // required by azure tests
|
11
11
|
});
|
12
12
|
Object.defineProperty(got_1.RequestError.prototype, 'body', {
|
13
13
|
get: function body() {
|
@@ -18,6 +18,7 @@ Object.defineProperty(got_1.RequestError.prototype, 'body', {
|
|
18
18
|
this.response.body = value;
|
19
19
|
}
|
20
20
|
},
|
21
|
+
configurable: true,
|
21
22
|
});
|
22
23
|
Object.defineProperty(got_1.RequestError.prototype, 'headers', {
|
23
24
|
get: function headers() {
|
@@ -28,6 +29,7 @@ Object.defineProperty(got_1.RequestError.prototype, 'url', {
|
|
28
29
|
get: function url() {
|
29
30
|
return this.response?.url;
|
30
31
|
},
|
32
|
+
configurable: true,
|
31
33
|
});
|
32
34
|
Object.defineProperty(got_1.RequestError.prototype, 'host', {
|
33
35
|
get: function url() {
|
@@ -35,5 +37,6 @@ Object.defineProperty(got_1.RequestError.prototype, 'host', {
|
|
35
37
|
const url = urlStr ? (0, url_1.parseUrl)(urlStr) : null;
|
36
38
|
return url?.host;
|
37
39
|
},
|
40
|
+
configurable: true,
|
38
41
|
});
|
39
42
|
//# sourceMappingURL=legacy.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"legacy.js","sourceRoot":"","sources":["../../../lib/util/http/legacy.ts"],"names":[],"mappings":";;AAAA,
|
1
|
+
{"version":3,"file":"legacy.js","sourceRoot":"","sources":["../../../lib/util/http/legacy.ts"],"names":[],"mappings":";;AAAA,6BAAgD;AAChD,gCAAkC;AAElC,+CAA+C;AAE/C,MAAM,CAAC,cAAc,CAAC,kBAAS,CAAC,SAAS,EAAE,YAAY,EAAE;IACvD,GAAG,EAAE,SAAS,UAAU;QACtB,OAAO,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;IACnC,CAAC;IACD,YAAY,EAAE,IAAI,EAAE,0BAA0B;CAC/C,CAAC,CAAC;AAEH,MAAM,CAAC,cAAc,CAAC,kBAAS,CAAC,SAAS,EAAE,MAAM,EAAE;IACjD,GAAG,EAAE,SAAS,IAAI;QAChB,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;IAC7B,CAAC;IACD,GAAG,EAAE,SAAS,IAAI,CAAkB,KAAc;QAChD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,YAAY,EAAE,IAAI;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,cAAc,CAAC,kBAAS,CAAC,SAAS,EAAE,SAAS,EAAE;IACpD,GAAG,EAAE,SAAS,OAAO;QACnB,OAAO,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;IAChC,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,cAAc,CAAC,kBAAS,CAAC,SAAS,EAAE,KAAK,EAAE;IAChD,GAAG,EAAE,SAAS,GAAG;QACf,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;IAC5B,CAAC;IACD,YAAY,EAAE,IAAI;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,cAAc,CAAC,kBAAS,CAAC,SAAS,EAAE,MAAM,EAAE;IACjD,GAAG,EAAE,SAAS,GAAG;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;QAClC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,IAAA,cAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7C,OAAO,GAAG,EAAE,IAAI,CAAC;IACnB,CAAC;IACD,YAAY,EAAE,IAAI;CACnB,CAAC,CAAC","sourcesContent":["import { RequestError as HttpError } from 'got';\nimport { parseUrl } from '../url';\n\n// TODO: remove when code is refactored (#9651)\n\nObject.defineProperty(HttpError.prototype, 'statusCode', {\n get: function statusCode(this: HttpError) {\n return this.response?.statusCode;\n },\n configurable: true, // required by azure tests\n});\n\nObject.defineProperty(HttpError.prototype, 'body', {\n get: function body(this: HttpError): unknown {\n return this.response?.body;\n },\n set: function body(this: HttpError, value: unknown): void {\n if (this.response) {\n this.response.body = value;\n }\n },\n configurable: true,\n});\n\nObject.defineProperty(HttpError.prototype, 'headers', {\n get: function headers(this: HttpError) {\n return this.response?.headers;\n },\n});\n\nObject.defineProperty(HttpError.prototype, 'url', {\n get: function url(this: HttpError) {\n return this.response?.url;\n },\n configurable: true,\n});\n\nObject.defineProperty(HttpError.prototype, 'host', {\n get: function url(this: HttpError) {\n const urlStr = this.response?.url;\n const url = urlStr ? parseUrl(urlStr) : null;\n return url?.host;\n },\n configurable: true,\n});\n\nexport type GotLegacyError<E = unknown, T = unknown> = HttpError & {\n statusCode?: number;\n body: {\n message?: string;\n errors?: E[];\n };\n headers?: Record<string, T>;\n};\n"]}
|
@@ -1,12 +1,16 @@
|
|
1
1
|
import type { IncomingHttpHeaders } from 'node:http';
|
2
|
-
import type { OptionsOfBufferResponseBody, OptionsOfJSONResponseBody,
|
2
|
+
import type { Options, OptionsOfBufferResponseBody, OptionsOfJSONResponseBody, OptionsOfTextResponseBody, RequestError } from 'got';
|
3
|
+
import type { ZodError } from 'zod';
|
3
4
|
import type { HttpCacheProvider } from './cache/types';
|
5
|
+
import type { EmptyResultError } from './errors';
|
4
6
|
export type GotContextOptions = {
|
5
7
|
authType?: string;
|
6
8
|
} & Record<string, unknown>;
|
7
|
-
export type GotOptions = GotBufferOptions | GotJSONOptions;
|
9
|
+
export type GotOptions = GotBufferOptions | GotTextOptions | GotJSONOptions;
|
8
10
|
export type GotBufferOptions = OptionsOfBufferResponseBody & GotExtraOptions;
|
11
|
+
export type GotTextOptions = OptionsOfTextResponseBody & GotExtraOptions;
|
9
12
|
export type GotJSONOptions = OptionsOfJSONResponseBody & GotExtraOptions;
|
13
|
+
export type GotStreamOptions = Options & GotExtraOptions;
|
10
14
|
export interface GotExtraOptions {
|
11
15
|
abortOnError?: boolean;
|
12
16
|
abortIgnoreStatusCodes?: number[];
|
@@ -17,13 +21,6 @@ export interface GotExtraOptions {
|
|
17
21
|
noAuth?: boolean;
|
18
22
|
context?: GotContextOptions;
|
19
23
|
}
|
20
|
-
export interface RequestStats {
|
21
|
-
method: string;
|
22
|
-
url: string;
|
23
|
-
duration: number;
|
24
|
-
queueDuration: number;
|
25
|
-
statusCode: number;
|
26
|
-
}
|
27
24
|
export type OutgoingHttpHeaders = Record<string, string | string[] | undefined>;
|
28
25
|
export type GraphqlVariables = Record<string, unknown>;
|
29
26
|
export interface GraphqlOptions {
|
@@ -52,15 +49,10 @@ export interface HttpOptions {
|
|
52
49
|
cacheProvider?: HttpCacheProvider;
|
53
50
|
readOnly?: boolean;
|
54
51
|
}
|
55
|
-
export interface InternalHttpOptions extends HttpOptions {
|
56
|
-
json?: HttpOptions['body'];
|
57
|
-
responseType?: 'json' | 'buffer';
|
58
|
-
method?: 'get' | 'post' | 'put' | 'patch' | 'delete' | 'head';
|
59
|
-
parseJson?: ParseJsonFunction;
|
60
|
-
}
|
61
52
|
export interface HttpHeaders extends IncomingHttpHeaders {
|
62
53
|
link?: string | undefined;
|
63
54
|
}
|
55
|
+
export type HttpMethod = 'get' | 'post' | 'put' | 'patch' | 'delete' | 'head';
|
64
56
|
export interface HttpResponse<T = string> {
|
65
57
|
statusCode: number;
|
66
58
|
body: T;
|
@@ -68,7 +60,7 @@ export interface HttpResponse<T = string> {
|
|
68
60
|
authorization?: boolean;
|
69
61
|
}
|
70
62
|
export type Task<T> = () => Promise<T>;
|
71
|
-
export type GotTask<T> = Task<HttpResponse<T>>;
|
63
|
+
export type GotTask<T = unknown> = Task<HttpResponse<T>>;
|
72
64
|
export interface ThrottleLimitRule {
|
73
65
|
matchHost: string;
|
74
66
|
throttleMs: number;
|
@@ -77,3 +69,4 @@ export interface ConcurrencyLimitRule {
|
|
77
69
|
matchHost: string;
|
78
70
|
concurrency: number;
|
79
71
|
}
|
72
|
+
export type SafeJsonError = RequestError | ZodError | EmptyResultError;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/util/http/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { IncomingHttpHeaders } from 'node:http';\nimport type {\n OptionsOfBufferResponseBody,\n OptionsOfJSONResponseBody,\n
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/util/http/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { IncomingHttpHeaders } from 'node:http';\nimport type {\n Options,\n OptionsOfBufferResponseBody,\n OptionsOfJSONResponseBody,\n OptionsOfTextResponseBody,\n RequestError,\n} from 'got';\nimport type { ZodError } from 'zod';\nimport type { HttpCacheProvider } from './cache/types';\nimport type { EmptyResultError } from './errors';\n\nexport type GotContextOptions = {\n authType?: string;\n} & Record<string, unknown>;\n\n// TODO: Move options to context\nexport type GotOptions = GotBufferOptions | GotTextOptions | GotJSONOptions;\nexport type GotBufferOptions = OptionsOfBufferResponseBody & GotExtraOptions;\nexport type GotTextOptions = OptionsOfTextResponseBody & GotExtraOptions;\nexport type GotJSONOptions = OptionsOfJSONResponseBody & GotExtraOptions;\n\nexport type GotStreamOptions = Options & GotExtraOptions;\n\nexport interface GotExtraOptions {\n abortOnError?: boolean;\n abortIgnoreStatusCodes?: number[];\n token?: string;\n hostType?: string;\n enabled?: boolean;\n memCache?: boolean;\n noAuth?: boolean;\n context?: GotContextOptions;\n}\n\nexport type OutgoingHttpHeaders = Record<string, string | string[] | undefined>;\n\nexport type GraphqlVariables = Record<string, unknown>;\n\nexport interface GraphqlOptions {\n variables?: GraphqlVariables;\n paginate?: boolean;\n count?: number;\n limit?: number;\n cursor?: string | null;\n acceptHeader?: string;\n token?: string;\n readOnly?: boolean;\n}\n\nexport interface HttpOptions {\n body?: any;\n username?: string;\n password?: string;\n baseUrl?: string;\n headers?: OutgoingHttpHeaders;\n\n /**\n * Do not use authentication\n */\n noAuth?: boolean;\n\n throwHttpErrors?: boolean;\n\n token?: string;\n memCache?: boolean;\n cacheProvider?: HttpCacheProvider;\n readOnly?: boolean;\n}\n\nexport interface HttpHeaders extends IncomingHttpHeaders {\n link?: string | undefined;\n}\n\nexport type HttpMethod = 'get' | 'post' | 'put' | 'patch' | 'delete' | 'head';\n\nexport interface HttpResponse<T = string> {\n statusCode: number;\n body: T;\n headers: HttpHeaders;\n authorization?: boolean;\n}\n\nexport type Task<T> = () => Promise<T>;\nexport type GotTask<T = unknown> = Task<HttpResponse<T>>;\n\nexport interface ThrottleLimitRule {\n matchHost: string;\n throttleMs: number;\n}\n\nexport interface ConcurrencyLimitRule {\n matchHost: string;\n concurrency: number;\n}\n\nexport type SafeJsonError = RequestError | ZodError | EmptyResultError;\n"]}
|
package/dist/util/string.d.ts
CHANGED
@@ -26,3 +26,18 @@ export declare function copystr(x: string): string;
|
|
26
26
|
* @returns the coerced value.
|
27
27
|
*/
|
28
28
|
export declare function coerceString(val: string | null | undefined, def?: string): string;
|
29
|
+
/**
|
30
|
+
* Remove templates from string.
|
31
|
+
*
|
32
|
+
* This is more performant version of this code:
|
33
|
+
*
|
34
|
+
* ```
|
35
|
+
* content
|
36
|
+
* .replaceAll(regEx(/{{`.+?`}}/gs), '')
|
37
|
+
* .replaceAll(regEx(/{{.+?}}/gs), '')
|
38
|
+
* .replaceAll(regEx(/{%`.+?`%}/gs), '')
|
39
|
+
* .replaceAll(regEx(/{%.+?%}/gs), '')
|
40
|
+
* .replaceAll(regEx(/{#.+?#}/gs), '')
|
41
|
+
* ```
|
42
|
+
*/
|
43
|
+
export declare function stripTemplates(content: string): string;
|