renovate 40.0.0-next.40 → 40.0.0-next.41
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/options/index.js +13 -0
- package/dist/config/options/index.js.map +1 -1
- package/dist/config/presets/common.js +1 -0
- package/dist/config/presets/common.js.map +1 -1
- package/dist/config/presets/internal/custom-managers.js +15 -0
- package/dist/config/presets/internal/custom-managers.js.map +1 -1
- package/dist/constants/platforms.js +5 -1
- package/dist/constants/platforms.js.map +1 -1
- package/dist/data/monorepo.json +3 -1
- package/dist/data-files.generated.js +2 -2
- package/dist/data-files.generated.js.map +1 -1
- package/dist/instrumentation/index.js +28 -8
- package/dist/instrumentation/index.js.map +1 -1
- package/dist/modules/datasource/api.js +2 -0
- package/dist/modules/datasource/api.js.map +1 -1
- package/dist/modules/datasource/azure-pipelines-tasks/index.js +4 -0
- package/dist/modules/datasource/azure-pipelines-tasks/index.js.map +1 -1
- package/dist/modules/datasource/azure-pipelines-tasks/schema.d.ts +8 -0
- package/dist/modules/datasource/azure-pipelines-tasks/schema.js +1 -0
- package/dist/modules/datasource/azure-pipelines-tasks/schema.js.map +1 -1
- package/dist/modules/datasource/bazel/index.js +18 -1
- package/dist/modules/datasource/bazel/index.js.map +1 -1
- package/dist/modules/datasource/bazel/schema.d.ts +1 -0
- package/dist/modules/datasource/bazel/schema.js.map +1 -1
- package/dist/modules/datasource/bitbucket-server-tags/index.d.ts +19 -0
- package/dist/modules/datasource/bitbucket-server-tags/index.js +133 -0
- package/dist/modules/datasource/bitbucket-server-tags/index.js.map +1 -0
- package/dist/modules/datasource/bitbucket-server-tags/schema.d.ts +28 -0
- package/dist/modules/datasource/bitbucket-server-tags/schema.js +13 -0
- package/dist/modules/datasource/bitbucket-server-tags/schema.js.map +1 -0
- package/dist/modules/datasource/conda/prefix-dev.js +1 -3
- package/dist/modules/datasource/conda/prefix-dev.js.map +1 -1
- package/dist/modules/datasource/cpan/index.js +1 -3
- package/dist/modules/datasource/cpan/index.js.map +1 -1
- package/dist/modules/datasource/custom/schema.d.ts +3 -3
- package/dist/modules/datasource/deb/index.d.ts +4 -5
- package/dist/modules/datasource/deb/index.js +8 -9
- package/dist/modules/datasource/deb/index.js.map +1 -1
- package/dist/modules/datasource/deb/url.d.ts +3 -3
- package/dist/modules/datasource/deb/url.js +17 -13
- package/dist/modules/datasource/deb/url.js.map +1 -1
- package/dist/modules/datasource/docker/schema.d.ts +72 -96
- package/dist/modules/datasource/github-runners/index.js +2 -2
- package/dist/modules/datasource/github-runners/index.js.map +1 -1
- package/dist/modules/datasource/metadata.js +9 -1
- package/dist/modules/datasource/metadata.js.map +1 -1
- package/dist/modules/datasource/npm/get.d.ts +0 -1
- package/dist/modules/datasource/npm/get.js +14 -68
- package/dist/modules/datasource/npm/get.js.map +1 -1
- package/dist/modules/datasource/npm/types.d.ts +0 -8
- package/dist/modules/datasource/npm/types.js.map +1 -1
- package/dist/modules/datasource/packagist/schema.d.ts +7 -7
- package/dist/modules/datasource/types.d.ts +1 -0
- package/dist/modules/datasource/types.js.map +1 -1
- package/dist/modules/manager/argocd/schema.d.ts +12 -12
- package/dist/modules/manager/bazel-module/parser/maven.d.ts +6 -52
- package/dist/modules/manager/bazel-module/parser/oci.d.ts +3 -26
- package/dist/modules/manager/bazel-module/rules.d.ts +15 -125
- package/dist/modules/manager/bun/extract.d.ts +1 -0
- package/dist/modules/manager/bun/extract.js +53 -27
- package/dist/modules/manager/bun/extract.js.map +1 -1
- package/dist/modules/manager/bun/index.js +1 -1
- package/dist/modules/manager/bun/index.js.map +1 -1
- package/dist/modules/manager/bun/utils.d.ts +2 -0
- package/dist/modules/manager/bun/utils.js +22 -0
- package/dist/modules/manager/bun/utils.js.map +1 -0
- package/dist/modules/manager/cargo/schema.d.ts +3 -3
- package/dist/modules/manager/circleci/extract.js +21 -30
- package/dist/modules/manager/circleci/extract.js.map +1 -1
- package/dist/modules/manager/circleci/schema.d.ts +33 -144
- package/dist/modules/manager/circleci/schema.js +21 -17
- package/dist/modules/manager/circleci/schema.js.map +1 -1
- package/dist/modules/manager/composer/schema.d.ts +6 -8
- package/dist/modules/manager/conan/artifacts.d.ts +2 -0
- package/dist/modules/manager/conan/artifacts.js +76 -0
- package/dist/modules/manager/conan/artifacts.js.map +1 -0
- package/dist/modules/manager/conan/index.d.ts +2 -0
- package/dist/modules/manager/conan/index.js +4 -1
- package/dist/modules/manager/conan/index.js.map +1 -1
- package/dist/modules/manager/devbox/artifacts.js +7 -0
- package/dist/modules/manager/devbox/artifacts.js.map +1 -1
- package/dist/modules/manager/dockerfile/extract.js +2 -6
- package/dist/modules/manager/dockerfile/extract.js.map +1 -1
- package/dist/modules/manager/fingerprint.generated.js +10 -10
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/flux/schema.d.ts +36 -60
- package/dist/modules/manager/gomod/artifacts-extra.js +12 -4
- package/dist/modules/manager/gomod/artifacts-extra.js.map +1 -1
- package/dist/modules/manager/gomod/update.js +3 -1
- package/dist/modules/manager/gomod/update.js.map +1 -1
- package/dist/modules/manager/gradle/extract.js +8 -13
- package/dist/modules/manager/gradle/extract.js.map +1 -1
- package/dist/modules/manager/gradle/parser/handlers.js +8 -0
- package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
- package/dist/modules/manager/gradle/parser/registry-urls.js +36 -10
- package/dist/modules/manager/gradle/parser/registry-urls.js.map +1 -1
- package/dist/modules/manager/gradle/types.d.ts +1 -0
- package/dist/modules/manager/gradle/types.js.map +1 -1
- package/dist/modules/manager/maven/extract.js +1 -3
- package/dist/modules/manager/maven/extract.js.map +1 -1
- package/dist/modules/manager/nix/schema.d.ts +14 -14
- package/dist/modules/manager/nix/schema.js +1 -0
- package/dist/modules/manager/nix/schema.js.map +1 -1
- package/dist/modules/manager/npm/extract/common/package-file.js +1 -0
- package/dist/modules/manager/npm/extract/common/package-file.js.map +1 -1
- package/dist/modules/manager/nuget/extract.js +21 -18
- package/dist/modules/manager/nuget/extract.js.map +1 -1
- package/dist/modules/manager/pep621/schema.d.ts +292 -5
- package/dist/modules/manager/pip_requirements/common.js +2 -6
- package/dist/modules/manager/pip_requirements/common.js.map +1 -1
- package/dist/modules/manager/pixi/artifacts.js +4 -10
- package/dist/modules/manager/pixi/artifacts.js.map +1 -1
- package/dist/modules/manager/pixi/extract.d.ts +2 -0
- package/dist/modules/manager/pixi/extract.js +81 -3
- package/dist/modules/manager/pixi/extract.js.map +1 -1
- package/dist/modules/manager/pixi/index.d.ts +0 -1
- package/dist/modules/manager/pixi/index.js +1 -3
- package/dist/modules/manager/pixi/index.js.map +1 -1
- package/dist/modules/manager/pixi/schema.d.ts +394 -3
- package/dist/modules/manager/pixi/schema.js +135 -2
- package/dist/modules/manager/pixi/schema.js.map +1 -1
- package/dist/modules/manager/sveltos/schema.d.ts +18 -30
- package/dist/modules/manager/terraform/util.js +1 -3
- package/dist/modules/manager/terraform/util.js.map +1 -1
- package/dist/modules/manager/vendir/schema.d.ts +3 -3
- package/dist/modules/platform/bitbucket/schema.d.ts +3 -3
- package/dist/modules/platform/bitbucket-server/schema.d.ts +1 -0
- package/dist/modules/platform/bitbucket-server/schema.js +2 -1
- package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
- package/dist/modules/platform/gerrit/client.d.ts +0 -3
- package/dist/modules/platform/gerrit/client.js +8 -28
- package/dist/modules/platform/gerrit/client.js.map +1 -1
- package/dist/modules/platform/gerrit/index.js +0 -6
- package/dist/modules/platform/gerrit/index.js.map +1 -1
- package/dist/modules/platform/gerrit/scm.js +5 -6
- package/dist/modules/platform/gerrit/scm.js.map +1 -1
- package/dist/modules/platform/gerrit/types.d.ts +1 -4
- package/dist/modules/platform/gerrit/types.js.map +1 -1
- package/dist/modules/platform/gerrit/utils.d.ts +3 -2
- package/dist/modules/platform/gerrit/utils.js +3 -7
- package/dist/modules/platform/gerrit/utils.js.map +1 -1
- package/dist/modules/platform/gitea/index.js +7 -9
- package/dist/modules/platform/gitea/index.js.map +1 -1
- package/dist/modules/platform/github/issue.d.ts +6 -6
- package/dist/modules/platform/github/schema.d.ts +52 -52
- package/dist/modules/platform/gitlab/index.js +2 -6
- package/dist/modules/platform/gitlab/index.js.map +1 -1
- package/dist/modules/versioning/distro.js +1 -3
- package/dist/modules/versioning/distro.js.map +1 -1
- package/dist/util/cache/package/types.d.ts +1 -1
- package/dist/util/cache/package/types.js.map +1 -1
- package/dist/util/cache/repository/impl/base.js +4 -0
- package/dist/util/cache/repository/impl/base.js.map +1 -1
- package/dist/util/common.d.ts +4 -2
- package/dist/util/common.js +17 -3
- package/dist/util/common.js.map +1 -1
- package/dist/util/exec/containerbase.js +2 -3
- package/dist/util/exec/containerbase.js.map +1 -1
- package/dist/util/git/auth.js +8 -5
- package/dist/util/git/auth.js.map +1 -1
- package/dist/util/git/index.js +2 -6
- package/dist/util/git/index.js.map +1 -1
- package/dist/util/git/private-key.js +1 -3
- package/dist/util/git/private-key.js.map +1 -1
- package/dist/util/git/types.d.ts +2 -0
- package/dist/util/git/types.js.map +1 -1
- package/dist/util/git/url.js +1 -1
- package/dist/util/git/url.js.map +1 -1
- package/dist/util/github/graphql/datasource-fetcher.js +3 -5
- package/dist/util/github/graphql/datasource-fetcher.js.map +1 -1
- package/dist/util/http/bitbucket-server.d.ts +2 -1
- package/dist/util/http/bitbucket-server.js +5 -3
- package/dist/util/http/bitbucket-server.js.map +1 -1
- package/dist/util/http/cache/package-http-cache-provider.d.ts +23 -0
- package/dist/util/http/cache/package-http-cache-provider.js +80 -0
- package/dist/util/http/cache/package-http-cache-provider.js.map +1 -0
- package/dist/util/http/host-rules.js +12 -0
- package/dist/util/http/host-rules.js.map +1 -1
- package/dist/util/schema-utils.d.ts +1 -0
- package/dist/util/schema-utils.js +43 -8
- package/dist/util/schema-utils.js.map +1 -1
- package/dist/util/string.d.ts +1 -0
- package/dist/util/string.js +4 -0
- package/dist/util/string.js.map +1 -1
- package/dist/util/yaml.js +2 -3
- package/dist/util/yaml.js.map +1 -1
- package/dist/workers/global/config/parse/index.js +10 -0
- package/dist/workers/global/config/parse/index.js.map +1 -1
- package/dist/workers/global/index.js +4 -2
- package/dist/workers/global/index.js.map +1 -1
- package/dist/workers/repository/process/lookup/index.js +2 -0
- package/dist/workers/repository/process/lookup/index.js.map +1 -1
- package/dist/workers/repository/process/lookup/timestamps.d.ts +18 -0
- package/dist/workers/repository/process/lookup/timestamps.js +69 -0
- package/dist/workers/repository/process/lookup/timestamps.js.map +1 -0
- package/dist/workers/repository/process/lookup/types.d.ts +1 -0
- package/dist/workers/repository/process/lookup/types.js.map +1 -1
- package/dist/workers/repository/process/lookup/utils.js +20 -9
- package/dist/workers/repository/process/lookup/utils.js.map +1 -1
- package/dist/workers/repository/process/sort.js +1 -1
- package/dist/workers/repository/process/sort.js.map +1 -1
- package/dist/workers/repository/reconfigure/utils.d.ts +2 -0
- package/dist/workers/repository/reconfigure/utils.js +16 -0
- package/dist/workers/repository/reconfigure/utils.js.map +1 -1
- package/dist/workers/repository/reconfigure/validate.js +5 -17
- package/dist/workers/repository/reconfigure/validate.js.map +1 -1
- package/dist/workers/repository/update/branch/auto-replace.js +25 -5
- package/dist/workers/repository/update/branch/auto-replace.js.map +1 -1
- package/dist/workers/repository/update/branch/commit.js +2 -0
- package/dist/workers/repository/update/branch/commit.js.map +1 -1
- package/dist/workers/repository/update/pr/body/config-description.js +26 -1
- package/dist/workers/repository/update/pr/body/config-description.js.map +1 -1
- package/dist/workers/repository/update/pr/body/index.js +21 -14
- package/dist/workers/repository/update/pr/body/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/api.js +8 -6
- package/dist/workers/repository/update/pr/changelog/api.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.d.ts +3 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.js +39 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.js.map +1 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.d.ts +8 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.js +31 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.js.map +1 -0
- package/dist/workers/repository/update/pr/changelog/release-notes.js +12 -8
- package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/source.d.ts +1 -1
- package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/types.d.ts +1 -1
- package/dist/workers/repository/update/pr/changelog/types.js.map +1 -1
- package/dist/workers/repository/update/pr/index.js +2 -4
- package/dist/workers/repository/update/pr/index.js.map +1 -1
- package/dist/workers/repository/updates/generate.js +2 -0
- package/dist/workers/repository/updates/generate.js.map +1 -1
- package/package.json +40 -37
- package/renovate-schema.json +9 -2
- package/dist/modules/manager/pixi/lockfile.d.ts +0 -6
- package/dist/modules/manager/pixi/lockfile.js +0 -25
- package/dist/modules/manager/pixi/lockfile.js.map +0 -1
@@ -1,23 +1,17 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.CACHE_REVISION = void 0;
|
4
3
|
exports.getDependency = getDependency;
|
5
4
|
const tslib_1 = require("tslib");
|
6
|
-
const node_url_1 = tslib_1.__importDefault(require("node:url"));
|
7
5
|
const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
|
8
|
-
const luxon_1 = require("luxon");
|
9
6
|
const zod_1 = require("zod");
|
10
|
-
const global_1 = require("../../../config/global");
|
11
7
|
const error_messages_1 = require("../../../constants/error-messages");
|
12
8
|
const logger_1 = require("../../../logger");
|
13
9
|
const external_host_error_1 = require("../../../types/errors/external-host-error");
|
14
|
-
const packageCache = tslib_1.__importStar(require("../../../util/cache/package"));
|
15
10
|
const hostRules = tslib_1.__importStar(require("../../../util/host-rules"));
|
11
|
+
const package_http_cache_provider_1 = require("../../../util/http/cache/package-http-cache-provider");
|
16
12
|
const regex_1 = require("../../../util/regex");
|
17
|
-
const stats_1 = require("../../../util/stats");
|
18
13
|
const timestamp_1 = require("../../../util/timestamp");
|
19
14
|
const url_1 = require("../../../util/url");
|
20
|
-
exports.CACHE_REVISION = 1;
|
21
15
|
const SHORT_REPO_REGEX = (0, regex_1.regEx)(/^((?<platform>bitbucket|github|gitlab):)?(?<shortRepo>[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+)$/);
|
22
16
|
const platformMapping = {
|
23
17
|
bitbucket: 'https://bitbucket.org/',
|
@@ -62,40 +56,12 @@ const PackageSource = zod_1.z
|
|
62
56
|
async function getDependency(http, registryUrl, packageName) {
|
63
57
|
logger_1.logger.trace(`npm.getDependency(${packageName})`);
|
64
58
|
const packageUrl = (0, url_1.joinUrlParts)(registryUrl, packageName.replace('/', '%2F'));
|
65
|
-
// Now check the persistent cache
|
66
|
-
const cacheNamespace = 'datasource-npm:data';
|
67
|
-
const cachedResult = await packageCache.get(cacheNamespace, packageUrl);
|
68
|
-
if (cachedResult?.cacheData) {
|
69
|
-
if (cachedResult.cacheData.revision === exports.CACHE_REVISION) {
|
70
|
-
const softExpireAt = luxon_1.DateTime.fromISO(cachedResult.cacheData.softExpireAt);
|
71
|
-
if (softExpireAt.isValid && softExpireAt > luxon_1.DateTime.local()) {
|
72
|
-
logger_1.logger.trace('Cached result is not expired - reusing');
|
73
|
-
stats_1.HttpCacheStats.incLocalHits(packageUrl);
|
74
|
-
delete cachedResult.cacheData;
|
75
|
-
return cachedResult;
|
76
|
-
}
|
77
|
-
logger_1.logger.trace('Cached result is soft expired');
|
78
|
-
stats_1.HttpCacheStats.incLocalMisses(packageUrl);
|
79
|
-
}
|
80
|
-
else {
|
81
|
-
logger_1.logger.trace(`Package cache for npm package "${packageName}" is from an old revision - discarding`);
|
82
|
-
delete cachedResult.cacheData;
|
83
|
-
}
|
84
|
-
}
|
85
|
-
const cacheMinutes = 15;
|
86
|
-
const softExpireAt = luxon_1.DateTime.local().plus({ minutes: cacheMinutes }).toISO();
|
87
|
-
let cacheHardTtlMinutes = global_1.GlobalConfig.get('cacheHardTtlMinutes');
|
88
|
-
if (!(is_1.default.number(cacheHardTtlMinutes) &&
|
89
|
-
/* istanbul ignore next: needs test */ cacheHardTtlMinutes > cacheMinutes)) {
|
90
|
-
cacheHardTtlMinutes = cacheMinutes;
|
91
|
-
}
|
92
|
-
const uri = node_url_1.default.parse(packageUrl);
|
93
59
|
try {
|
94
|
-
const
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
}
|
60
|
+
const cacheProvider = new package_http_cache_provider_1.PackageHttpCacheProvider({
|
61
|
+
namespace: 'datasource-npm:cache-provider',
|
62
|
+
checkAuthorizationHeader: false,
|
63
|
+
});
|
64
|
+
const options = { cacheProvider };
|
99
65
|
// set abortOnError for registry.npmjs.org if no hostRule with explicit abortOnError exists
|
100
66
|
if (registryUrl === 'https://registry.npmjs.org' &&
|
101
67
|
hostRules.find({ url: 'https://registry.npmjs.org' })?.abortOnError ===
|
@@ -106,18 +72,8 @@ async function getDependency(http, registryUrl, packageName) {
|
|
106
72
|
abortOnError: true,
|
107
73
|
});
|
108
74
|
}
|
109
|
-
const
|
110
|
-
|
111
|
-
logger_1.logger.trace(`Cached npm result for ${packageName} is revalidated`);
|
112
|
-
stats_1.HttpCacheStats.incRemoteHits(packageUrl);
|
113
|
-
cachedResult.cacheData.softExpireAt = softExpireAt;
|
114
|
-
await packageCache.set(cacheNamespace, packageUrl, cachedResult, cacheHardTtlMinutes);
|
115
|
-
delete cachedResult.cacheData;
|
116
|
-
return cachedResult;
|
117
|
-
}
|
118
|
-
stats_1.HttpCacheStats.incRemoteMisses(packageUrl);
|
119
|
-
const etag = raw.headers.etag;
|
120
|
-
const res = raw.body;
|
75
|
+
const resp = await http.getJsonUnchecked(packageUrl, options);
|
76
|
+
const { body: res } = resp;
|
121
77
|
if (!res.versions || !Object.keys(res.versions).length) {
|
122
78
|
// Registry returned a 200 OK but with no versions
|
123
79
|
logger_1.logger.debug(`No versions returned for npm dependency ${packageName}`);
|
@@ -174,19 +130,14 @@ async function getDependency(http, registryUrl, packageName) {
|
|
174
130
|
}
|
175
131
|
return release;
|
176
132
|
});
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
(
|
181
|
-
|
182
|
-
const cacheData = { revision: exports.CACHE_REVISION, softExpireAt, etag };
|
183
|
-
await packageCache.set(cacheNamespace, packageUrl, { ...dep, cacheData }, etag
|
184
|
-
? /* istanbul ignore next: needs test */ cacheHardTtlMinutes
|
185
|
-
: cacheMinutes);
|
186
|
-
}
|
187
|
-
else {
|
133
|
+
const isPublic = resp.headers?.['cache-control']
|
134
|
+
?.toLocaleLowerCase()
|
135
|
+
?.split((0, regex_1.regEx)(/\s*,\s*/))
|
136
|
+
?.includes('public');
|
137
|
+
if (!isPublic) {
|
188
138
|
dep.isPrivate = true;
|
189
139
|
}
|
140
|
+
logger_1.logger.trace({ dep }, 'dep');
|
190
141
|
return dep;
|
191
142
|
}
|
192
143
|
catch (err) {
|
@@ -199,11 +150,6 @@ async function getDependency(http, registryUrl, packageName) {
|
|
199
150
|
return null;
|
200
151
|
}
|
201
152
|
if (err instanceof external_host_error_1.ExternalHostError) {
|
202
|
-
if (cachedResult) {
|
203
|
-
logger_1.logger.warn({ err, host: uri.host }, `npm host error, reusing expired cached result instead`);
|
204
|
-
delete cachedResult.cacheData;
|
205
|
-
return cachedResult;
|
206
|
-
}
|
207
153
|
if (actualError.name === 'ParseError' && actualError.body) {
|
208
154
|
actualError.body = 'err.body deleted by Renovate';
|
209
155
|
err.err = actualError;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/npm/get.ts"],"names":[],"mappings":"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","sourcesContent":["import url from 'node:url';\nimport is from '@sindresorhus/is';\nimport { DateTime } from 'luxon';\nimport { z } from 'zod';\nimport { GlobalConfig } from '../../../config/global';\nimport { HOST_DISABLED } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { ExternalHostError } from '../../../types/errors/external-host-error';\nimport * as packageCache from '../../../util/cache/package';\nimport * as hostRules from '../../../util/host-rules';\nimport type { Http } from '../../../util/http';\nimport type { HttpOptions } from '../../../util/http/types';\nimport { regEx } from '../../../util/regex';\nimport { HttpCacheStats } from '../../../util/stats';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { joinUrlParts } from '../../../util/url';\nimport type { Release, ReleaseResult } from '../types';\nimport type { CachedReleaseResult, NpmResponse } from './types';\n\nexport const CACHE_REVISION = 1;\n\nconst SHORT_REPO_REGEX = regEx(\n /^((?<platform>bitbucket|github|gitlab):)?(?<shortRepo>[A-Za-z0-9_.-]+\\/[A-Za-z0-9_.-]+)$/,\n);\n\nconst platformMapping: Record<string, string> = {\n bitbucket: 'https://bitbucket.org/',\n github: 'https://github.com/',\n gitlab: 'https://gitlab.com/',\n};\n\ninterface PackageSource {\n sourceUrl: string | null;\n sourceDirectory: string | null;\n}\n\nconst PackageSource = z\n .union([\n z\n .string()\n .nonempty()\n .transform((repository): PackageSource => {\n let sourceUrl: string | null = null;\n const sourceDirectory = null;\n const shortMatch = repository.match(SHORT_REPO_REGEX);\n if (shortMatch?.groups) {\n const { platform = 'github', shortRepo } = shortMatch.groups;\n sourceUrl = platformMapping[platform] + shortRepo;\n } else {\n sourceUrl = repository;\n }\n return { sourceUrl, sourceDirectory };\n }),\n z\n .object({\n url: z.string().nonempty().nullish(),\n directory: z.string().nonempty().nullish(),\n })\n .transform(({ url, directory }) => {\n const res: PackageSource = { sourceUrl: null, sourceDirectory: null };\n\n if (url) {\n res.sourceUrl = url;\n }\n\n if (directory) {\n res.sourceDirectory = directory;\n }\n\n return res;\n }),\n ])\n .catch({ sourceUrl: null, sourceDirectory: null });\n\nexport async function getDependency(\n http: Http,\n registryUrl: string,\n packageName: string,\n): Promise<ReleaseResult | null> {\n logger.trace(`npm.getDependency(${packageName})`);\n\n const packageUrl = joinUrlParts(registryUrl, packageName.replace('/', '%2F'));\n\n // Now check the persistent cache\n const cacheNamespace = 'datasource-npm:data';\n const cachedResult = await packageCache.get<CachedReleaseResult>(\n cacheNamespace,\n packageUrl,\n );\n if (cachedResult?.cacheData) {\n if (cachedResult.cacheData.revision === CACHE_REVISION) {\n const softExpireAt = DateTime.fromISO(\n cachedResult.cacheData.softExpireAt,\n );\n if (softExpireAt.isValid && softExpireAt > DateTime.local()) {\n logger.trace('Cached result is not expired - reusing');\n HttpCacheStats.incLocalHits(packageUrl);\n delete cachedResult.cacheData;\n return cachedResult;\n }\n\n logger.trace('Cached result is soft expired');\n HttpCacheStats.incLocalMisses(packageUrl);\n } else {\n logger.trace(\n `Package cache for npm package \"${packageName}\" is from an old revision - discarding`,\n );\n delete cachedResult.cacheData;\n }\n }\n const cacheMinutes = 15;\n const softExpireAt = DateTime.local().plus({ minutes: cacheMinutes }).toISO();\n let cacheHardTtlMinutes = GlobalConfig.get('cacheHardTtlMinutes');\n if (\n !(\n is.number(cacheHardTtlMinutes) &&\n /* istanbul ignore next: needs test */ cacheHardTtlMinutes > cacheMinutes\n )\n ) {\n cacheHardTtlMinutes = cacheMinutes;\n }\n\n const uri = url.parse(packageUrl);\n\n try {\n const options: HttpOptions = {};\n if (cachedResult?.cacheData?.etag) {\n logger.trace({ packageName }, 'Using cached etag');\n options.headers = { 'If-None-Match': cachedResult.cacheData.etag };\n }\n\n // set abortOnError for registry.npmjs.org if no hostRule with explicit abortOnError exists\n if (\n registryUrl === 'https://registry.npmjs.org' &&\n hostRules.find({ url: 'https://registry.npmjs.org' })?.abortOnError ===\n undefined\n ) {\n logger.trace(\n { packageName, registry: 'https://registry.npmjs.org' },\n 'setting abortOnError hostRule for well known host',\n );\n hostRules.add({\n matchHost: 'https://registry.npmjs.org',\n abortOnError: true,\n });\n }\n\n const raw = await http.getJsonUnchecked<NpmResponse>(packageUrl, options);\n if (cachedResult?.cacheData && raw.statusCode === 304) {\n logger.trace(`Cached npm result for ${packageName} is revalidated`);\n HttpCacheStats.incRemoteHits(packageUrl);\n cachedResult.cacheData.softExpireAt = softExpireAt;\n await packageCache.set(\n cacheNamespace,\n packageUrl,\n cachedResult,\n cacheHardTtlMinutes,\n );\n delete cachedResult.cacheData;\n return cachedResult;\n }\n HttpCacheStats.incRemoteMisses(packageUrl);\n const etag = raw.headers.etag;\n const res = raw.body;\n if (!res.versions || !Object.keys(res.versions).length) {\n // Registry returned a 200 OK but with no versions\n logger.debug(`No versions returned for npm dependency ${packageName}`);\n return null;\n }\n\n const latestVersion = res.versions[res['dist-tags']?.latest ?? ''];\n res.repository ??= latestVersion?.repository;\n res.homepage ??= latestVersion?.homepage;\n\n const { sourceUrl, sourceDirectory } = PackageSource.parse(res.repository);\n\n // Simplify response before caching and returning\n const dep: ReleaseResult = {\n homepage: res.homepage,\n releases: [],\n tags: res['dist-tags'],\n registryUrl,\n };\n\n if (sourceUrl) {\n dep.sourceUrl = sourceUrl;\n }\n\n if (sourceDirectory) {\n dep.sourceDirectory = sourceDirectory;\n }\n\n if (latestVersion?.deprecated) {\n dep.deprecationMessage = `On registry \\`${registryUrl}\\`, the \"latest\" version of dependency \\`${packageName}\\` has the following deprecation notice:\\n\\n\\`${latestVersion.deprecated}\\`\\n\\nMarking the latest version of an npm package as deprecated results in the entire package being considered deprecated, so contact the package author you think this is a mistake.`;\n }\n dep.releases = Object.keys(res.versions).map((version) => {\n const release: Release = {\n version,\n gitRef: res.versions?.[version].gitHead,\n dependencies: res.versions?.[version].dependencies,\n devDependencies: res.versions?.[version].devDependencies,\n };\n const releaseTimestamp = asTimestamp(res.time?.[version]);\n if (releaseTimestamp) {\n release.releaseTimestamp = releaseTimestamp;\n }\n if (res.versions?.[version].deprecated) {\n release.isDeprecated = true;\n }\n const nodeConstraint = res.versions?.[version].engines?.node;\n if (is.nonEmptyString(nodeConstraint)) {\n release.constraints = { node: [nodeConstraint] };\n }\n const source = PackageSource.parse(res.versions?.[version].repository);\n if (source.sourceUrl && source.sourceUrl !== dep.sourceUrl) {\n release.sourceUrl = source.sourceUrl;\n }\n if (\n source.sourceDirectory &&\n source.sourceDirectory !== dep.sourceDirectory\n ) {\n release.sourceDirectory = source.sourceDirectory;\n }\n if (dep.deprecationMessage) {\n release.isDeprecated = true;\n }\n return release;\n });\n logger.trace({ dep }, 'dep');\n const cacheControl = raw.headers?.['cache-control'];\n if (\n is.nonEmptyString(cacheControl) &&\n regEx(/(^|,)\\s*public\\s*(,|$)/).test(cacheControl)\n ) {\n dep.isPrivate = false;\n const cacheData = { revision: CACHE_REVISION, softExpireAt, etag };\n await packageCache.set(\n cacheNamespace,\n packageUrl,\n { ...dep, cacheData },\n etag\n ? /* istanbul ignore next: needs test */ cacheHardTtlMinutes\n : cacheMinutes,\n );\n } else {\n dep.isPrivate = true;\n }\n return dep;\n } catch (err) {\n const actualError = err instanceof ExternalHostError ? err.err : err;\n const ignoredStatusCodes = [401, 402, 403, 404];\n const ignoredResponseCodes = ['ENOTFOUND'];\n if (\n actualError.message === HOST_DISABLED ||\n ignoredStatusCodes.includes(actualError.statusCode) ||\n ignoredResponseCodes.includes(actualError.code)\n ) {\n return null;\n }\n\n if (err instanceof ExternalHostError) {\n if (cachedResult) {\n logger.warn(\n { err, host: uri.host },\n `npm host error, reusing expired cached result instead`,\n );\n delete cachedResult.cacheData;\n return cachedResult;\n }\n\n if (actualError.name === 'ParseError' && actualError.body) {\n actualError.body = 'err.body deleted by Renovate';\n err.err = actualError;\n }\n throw err;\n }\n logger.debug({ err }, 'Unknown npm lookup error');\n return null;\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/npm/get.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { z } from 'zod';\nimport { HOST_DISABLED } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { ExternalHostError } from '../../../types/errors/external-host-error';\nimport * as hostRules from '../../../util/host-rules';\nimport type { Http } from '../../../util/http';\nimport { PackageHttpCacheProvider } from '../../../util/http/cache/package-http-cache-provider';\nimport type { HttpOptions } from '../../../util/http/types';\nimport { regEx } from '../../../util/regex';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { joinUrlParts } from '../../../util/url';\nimport type { Release, ReleaseResult } from '../types';\nimport type { NpmResponse } from './types';\n\nconst SHORT_REPO_REGEX = regEx(\n /^((?<platform>bitbucket|github|gitlab):)?(?<shortRepo>[A-Za-z0-9_.-]+\\/[A-Za-z0-9_.-]+)$/,\n);\n\nconst platformMapping: Record<string, string> = {\n bitbucket: 'https://bitbucket.org/',\n github: 'https://github.com/',\n gitlab: 'https://gitlab.com/',\n};\n\ninterface PackageSource {\n sourceUrl: string | null;\n sourceDirectory: string | null;\n}\n\nconst PackageSource = z\n .union([\n z\n .string()\n .nonempty()\n .transform((repository): PackageSource => {\n let sourceUrl: string | null = null;\n const sourceDirectory = null;\n const shortMatch = repository.match(SHORT_REPO_REGEX);\n if (shortMatch?.groups) {\n const { platform = 'github', shortRepo } = shortMatch.groups;\n sourceUrl = platformMapping[platform] + shortRepo;\n } else {\n sourceUrl = repository;\n }\n return { sourceUrl, sourceDirectory };\n }),\n z\n .object({\n url: z.string().nonempty().nullish(),\n directory: z.string().nonempty().nullish(),\n })\n .transform(({ url, directory }) => {\n const res: PackageSource = { sourceUrl: null, sourceDirectory: null };\n\n if (url) {\n res.sourceUrl = url;\n }\n\n if (directory) {\n res.sourceDirectory = directory;\n }\n\n return res;\n }),\n ])\n .catch({ sourceUrl: null, sourceDirectory: null });\n\nexport async function getDependency(\n http: Http,\n registryUrl: string,\n packageName: string,\n): Promise<ReleaseResult | null> {\n logger.trace(`npm.getDependency(${packageName})`);\n\n const packageUrl = joinUrlParts(registryUrl, packageName.replace('/', '%2F'));\n\n try {\n const cacheProvider = new PackageHttpCacheProvider({\n namespace: 'datasource-npm:cache-provider',\n checkAuthorizationHeader: false,\n });\n const options: HttpOptions = { cacheProvider };\n\n // set abortOnError for registry.npmjs.org if no hostRule with explicit abortOnError exists\n if (\n registryUrl === 'https://registry.npmjs.org' &&\n hostRules.find({ url: 'https://registry.npmjs.org' })?.abortOnError ===\n undefined\n ) {\n logger.trace(\n { packageName, registry: 'https://registry.npmjs.org' },\n 'setting abortOnError hostRule for well known host',\n );\n hostRules.add({\n matchHost: 'https://registry.npmjs.org',\n abortOnError: true,\n });\n }\n\n const resp = await http.getJsonUnchecked<NpmResponse>(packageUrl, options);\n const { body: res } = resp;\n if (!res.versions || !Object.keys(res.versions).length) {\n // Registry returned a 200 OK but with no versions\n logger.debug(`No versions returned for npm dependency ${packageName}`);\n return null;\n }\n\n const latestVersion = res.versions[res['dist-tags']?.latest ?? ''];\n res.repository ??= latestVersion?.repository;\n res.homepage ??= latestVersion?.homepage;\n\n const { sourceUrl, sourceDirectory } = PackageSource.parse(res.repository);\n\n // Simplify response before caching and returning\n const dep: ReleaseResult = {\n homepage: res.homepage,\n releases: [],\n tags: res['dist-tags'],\n registryUrl,\n };\n\n if (sourceUrl) {\n dep.sourceUrl = sourceUrl;\n }\n\n if (sourceDirectory) {\n dep.sourceDirectory = sourceDirectory;\n }\n\n if (latestVersion?.deprecated) {\n dep.deprecationMessage = `On registry \\`${registryUrl}\\`, the \"latest\" version of dependency \\`${packageName}\\` has the following deprecation notice:\\n\\n\\`${latestVersion.deprecated}\\`\\n\\nMarking the latest version of an npm package as deprecated results in the entire package being considered deprecated, so contact the package author you think this is a mistake.`;\n }\n dep.releases = Object.keys(res.versions).map((version) => {\n const release: Release = {\n version,\n gitRef: res.versions?.[version].gitHead,\n dependencies: res.versions?.[version].dependencies,\n devDependencies: res.versions?.[version].devDependencies,\n };\n const releaseTimestamp = asTimestamp(res.time?.[version]);\n if (releaseTimestamp) {\n release.releaseTimestamp = releaseTimestamp;\n }\n if (res.versions?.[version].deprecated) {\n release.isDeprecated = true;\n }\n const nodeConstraint = res.versions?.[version].engines?.node;\n if (is.nonEmptyString(nodeConstraint)) {\n release.constraints = { node: [nodeConstraint] };\n }\n const source = PackageSource.parse(res.versions?.[version].repository);\n if (source.sourceUrl && source.sourceUrl !== dep.sourceUrl) {\n release.sourceUrl = source.sourceUrl;\n }\n if (\n source.sourceDirectory &&\n source.sourceDirectory !== dep.sourceDirectory\n ) {\n release.sourceDirectory = source.sourceDirectory;\n }\n if (dep.deprecationMessage) {\n release.isDeprecated = true;\n }\n return release;\n });\n\n const isPublic = resp.headers?.['cache-control']\n ?.toLocaleLowerCase()\n ?.split(regEx(/\\s*,\\s*/))\n ?.includes('public');\n if (!isPublic) {\n dep.isPrivate = true;\n }\n\n logger.trace({ dep }, 'dep');\n return dep;\n } catch (err) {\n const actualError = err instanceof ExternalHostError ? err.err : err;\n const ignoredStatusCodes = [401, 402, 403, 404];\n const ignoredResponseCodes = ['ENOTFOUND'];\n if (\n actualError.message === HOST_DISABLED ||\n ignoredStatusCodes.includes(actualError.statusCode) ||\n ignoredResponseCodes.includes(actualError.code)\n ) {\n return null;\n }\n\n if (err instanceof ExternalHostError) {\n if (actualError.name === 'ParseError' && actualError.body) {\n actualError.body = 'err.body deleted by Renovate';\n err.err = actualError;\n }\n throw err;\n }\n logger.debug({ err }, 'Unknown npm lookup error');\n return null;\n }\n}\n"]}
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import type { PackageRule } from '../../../config/types';
|
2
2
|
import type { HostRule } from '../../../types';
|
3
|
-
import type { ReleaseResult } from '../types';
|
4
3
|
export interface NpmrcRules {
|
5
4
|
hostRules: HostRule[];
|
6
5
|
packageRules: PackageRule[];
|
@@ -29,11 +28,4 @@ export interface NpmResponse {
|
|
29
28
|
time?: Record<string, string>;
|
30
29
|
'dist-tags'?: Record<string, string>;
|
31
30
|
}
|
32
|
-
export interface CachedReleaseResult extends ReleaseResult {
|
33
|
-
cacheData?: {
|
34
|
-
revision?: number;
|
35
|
-
etag: string | undefined;
|
36
|
-
softExpireAt: string;
|
37
|
-
};
|
38
|
-
}
|
39
31
|
export type Npmrc = Record<string, any>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/npm/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { PackageRule } from '../../../config/types';\nimport type { HostRule } from '../../../types';\
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/npm/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { PackageRule } from '../../../config/types';\nimport type { HostRule } from '../../../types';\n\nexport interface NpmrcRules {\n hostRules: HostRule[];\n packageRules: PackageRule[];\n}\n\nexport interface NpmResponseVersion {\n repository?: {\n url: string;\n directory: string;\n };\n homepage?: string;\n deprecated?: boolean;\n gitHead?: string;\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n engines?: Record<string, string>;\n}\n\nexport interface NpmResponse {\n _id: string;\n name: string;\n versions?: Record<string, NpmResponseVersion>;\n repository?: {\n url?: string;\n directory?: string;\n };\n homepage?: string;\n time?: Record<string, string>;\n 'dist-tags'?: Record<string, string>;\n}\n\nexport type Npmrc = Record<string, any>;\n"]}
|
@@ -193,7 +193,7 @@ export declare const PackagesResponse: z.ZodObject<{
|
|
193
193
|
packages?: unknown;
|
194
194
|
}>;
|
195
195
|
export type PackagesResponse = z.infer<typeof PackagesResponse>;
|
196
|
-
export declare const PackagistFile: z.ZodObject<
|
196
|
+
export declare const PackagistFile: z.ZodObject<{
|
197
197
|
packages: z.ZodCatch<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodAny>, Record<string, {
|
198
198
|
time: import("../../../util/timestamp").Timestamp | null;
|
199
199
|
version: string;
|
@@ -205,7 +205,7 @@ export declare const PackagistFile: z.ZodObject<z.objectUtil.extendShape<{
|
|
205
205
|
php: string;
|
206
206
|
} | null;
|
207
207
|
}[]>, Record<string, any>>>;
|
208
|
-
}
|
208
|
+
} & {
|
209
209
|
providers: z.ZodCatch<z.ZodEffects<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodAny>, Record<string, {
|
210
210
|
hash: string | null;
|
211
211
|
} | {
|
@@ -213,7 +213,7 @@ export declare const PackagistFile: z.ZodObject<z.objectUtil.extendShape<{
|
|
213
213
|
}>, Record<string, any>>, {
|
214
214
|
[k: string]: string | null;
|
215
215
|
}, Record<string, any>>>;
|
216
|
-
}
|
216
|
+
}, "strip", z.ZodTypeAny, {
|
217
217
|
packages: Record<string, {
|
218
218
|
time: import("../../../util/timestamp").Timestamp | null;
|
219
219
|
version: string;
|
@@ -233,7 +233,7 @@ export declare const PackagistFile: z.ZodObject<z.objectUtil.extendShape<{
|
|
233
233
|
providers?: unknown;
|
234
234
|
}>;
|
235
235
|
export type PackagistFile = z.infer<typeof PackagistFile>;
|
236
|
-
export declare const RegistryMeta: z.ZodEffects<z.ZodPipeline<z.ZodCatch<z.ZodRecord<z.ZodString, z.ZodUnknown>>, z.ZodObject<
|
236
|
+
export declare const RegistryMeta: z.ZodEffects<z.ZodPipeline<z.ZodCatch<z.ZodRecord<z.ZodString, z.ZodUnknown>>, z.ZodObject<{
|
237
237
|
packages: z.ZodCatch<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodAny>, Record<string, {
|
238
238
|
time: import("../../../util/timestamp").Timestamp | null;
|
239
239
|
version: string;
|
@@ -245,7 +245,7 @@ export declare const RegistryMeta: z.ZodEffects<z.ZodPipeline<z.ZodCatch<z.ZodRe
|
|
245
245
|
php: string;
|
246
246
|
} | null;
|
247
247
|
}[]>, Record<string, any>>>;
|
248
|
-
}
|
248
|
+
} & {
|
249
249
|
providers: z.ZodCatch<z.ZodEffects<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodAny>, Record<string, {
|
250
250
|
hash: string | null;
|
251
251
|
} | {
|
@@ -253,7 +253,7 @@ export declare const RegistryMeta: z.ZodEffects<z.ZodPipeline<z.ZodCatch<z.ZodRe
|
|
253
253
|
}>, Record<string, any>>, {
|
254
254
|
[k: string]: string | null;
|
255
255
|
}, Record<string, any>>>;
|
256
|
-
}
|
256
|
+
} & {
|
257
257
|
includes: z.ZodCatch<z.ZodEffects<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodAny>, Record<string, {
|
258
258
|
hash: string | null;
|
259
259
|
} | {
|
@@ -274,7 +274,7 @@ export declare const RegistryMeta: z.ZodEffects<z.ZodPipeline<z.ZodCatch<z.ZodRe
|
|
274
274
|
"providers-url": z.ZodCatch<z.ZodNullable<z.ZodString>>;
|
275
275
|
"metadata-url": z.ZodCatch<z.ZodNullable<z.ZodString>>;
|
276
276
|
"available-packages": z.ZodCatch<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>;
|
277
|
-
}
|
277
|
+
}, "strip", z.ZodTypeAny, {
|
278
278
|
includes: {
|
279
279
|
key: string;
|
280
280
|
hash: string | null;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/modules/datasource/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n ConstraintsFilter,\n CustomDatasourceConfig,\n} from '../../config/types';\nimport type { ModuleApi } from '../../types';\nimport type { Timestamp } from '../../util/timestamp';\n\nexport interface GetDigestInputConfig {\n datasource: string;\n packageName: string;\n defaultRegistryUrls?: string[];\n registryUrls?: string[] | null;\n registryUrl?: string;\n lookupName?: string;\n additionalRegistryUrls?: string[];\n currentValue?: string;\n currentDigest?: string;\n replacementName?: string;\n}\n\nexport interface DigestConfig {\n packageName: string;\n lookupName?: string;\n registryUrl?: string;\n currentValue?: string;\n currentDigest?: string;\n}\n\nexport interface GetReleasesConfig {\n customDatasources?: Record<string, CustomDatasourceConfig>;\n datasource?: string;\n packageName: string;\n registryUrl?: string;\n currentValue?: string;\n}\n\nexport interface GetPkgReleasesConfig {\n customDatasources?: Record<string, CustomDatasourceConfig>;\n npmrc?: string;\n defaultRegistryUrls?: string[];\n registryUrls?: string[] | null;\n additionalRegistryUrls?: string[];\n datasource: string;\n packageName: string;\n currentValue?: string;\n versioning?: string;\n extractVersion?: string;\n versionCompatibility?: string;\n currentCompatibility?: string;\n constraints?: Record<string, string>;\n replacementName?: string;\n replacementVersion?: string;\n constraintsFiltering?: ConstraintsFilter;\n registryStrategy?: RegistryStrategy;\n}\n\nexport interface Release {\n changelogUrl?: string;\n checksumUrl?: string;\n downloadUrl?: string;\n gitRef?: string;\n isDeprecated?: boolean;\n isStable?: boolean;\n releaseTimestamp?: Timestamp | null;\n version: string;\n /** The original value to which `extractVersion` was applied */\n versionOrig?: string;\n newDigest?: string | undefined;\n constraints?: Record<string, string[]>;\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n registryUrl?: string;\n sourceUrl?: string | undefined;\n sourceDirectory?: string;\n currentAge?: string;\n isLatest?: boolean;\n}\n\nexport interface ReleaseResult {\n deprecationMessage?: string;\n isPrivate?: boolean;\n releases: Release[];\n tags?: Record<string, string> | undefined;\n // URL metadata\n changelogUrl?: string;\n dependencyUrl?: string;\n homepage?: string | undefined;\n gitRef?: string;\n sourceUrl?: string | null;\n sourceDirectory?: string;\n registryUrl?: string;\n replacementName?: string;\n replacementVersion?: string;\n lookupName?: string;\n packageScope?: string;\n}\n\nexport interface PostprocessReleaseConfig {\n packageName: string;\n registryUrl: string | null;\n}\n\nexport type PostprocessReleaseResult = Release | 'reject';\n\nexport type RegistryStrategy = 'first' | 'hunt' | 'merge';\nexport type SourceUrlSupport = 'package' | 'release' | 'none';\nexport interface DatasourceApi extends ModuleApi {\n id: string;\n getDigest?(config: DigestConfig, newValue?: string): Promise<string | null>;\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null>;\n defaultRegistryUrls?: string[] | (() => string[]);\n defaultVersioning?: string | undefined;\n defaultConfig?: Record<string, unknown> | undefined;\n\n /**\n * Strategy to use when multiple registryUrls are available to the datasource.\n * - `first`: only the first registryUrl will be tried and others ignored\n * - `hunt`: registryUrls will be tried in order until one returns a result\n * - `merge`: all registryUrls will be tried and the results merged if more than one returns a result\n */\n registryStrategy?: RegistryStrategy | undefined;\n\n /**\n * Whether custom registryUrls are allowed.\n */\n customRegistrySupport: boolean;\n\n /**\n * Whether release timestamp can be returned.\n */\n releaseTimestampSupport: boolean;\n /**\n * Notes on how release timestamp is determined.\n */\n releaseTimestampNote?: string;\n\n /**\n * Whether sourceURL can be returned.\n */\n sourceUrlSupport: SourceUrlSupport;\n /**\n * Notes on how sourceURL is determined.\n */\n sourceUrlNote?: string;\n\n /**\n * Whether to perform caching in the datasource index/wrapper or not.\n * true: datasoure index wrapper should cache all results (based on registryUrl/packageName)\n * false: caching is not performed, or performed within the datasource implementation\n */\n caching?: boolean | undefined;\n\n /**\n * When the candidate for update is formed, this method could be called\n * to fetch additional information such as `releaseTimestamp`.\n *\n * Also, the release could be checked (and potentially rejected)\n * via some datasource-specific external call.\n *\n * In case of reject, the next candidate release is selected,\n * and `postprocessRelease` is called again.\n *\n * Rejection must happen only when the release will lead to downstream error,\n * e.g. the release turned out to be yanked or doesn't exist for some reason.\n *\n * In other cases, the original `Release` parameter should be returned.\n */\n postprocessRelease(\n config: PostprocessReleaseConfig,\n release: Release,\n ): Promise<PostprocessReleaseResult>;\n}\n"]}
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/modules/datasource/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n ConstraintsFilter,\n CustomDatasourceConfig,\n} from '../../config/types';\nimport type { ModuleApi } from '../../types';\nimport type { Timestamp } from '../../util/timestamp';\n\nexport interface GetDigestInputConfig {\n datasource: string;\n packageName: string;\n defaultRegistryUrls?: string[];\n registryUrls?: string[] | null;\n registryUrl?: string;\n lookupName?: string;\n additionalRegistryUrls?: string[];\n currentValue?: string;\n currentDigest?: string;\n replacementName?: string;\n}\n\nexport interface DigestConfig {\n packageName: string;\n lookupName?: string;\n registryUrl?: string;\n currentValue?: string;\n currentDigest?: string;\n}\n\nexport interface GetReleasesConfig {\n customDatasources?: Record<string, CustomDatasourceConfig>;\n datasource?: string;\n packageName: string;\n registryUrl?: string;\n currentValue?: string;\n}\n\nexport interface GetPkgReleasesConfig {\n customDatasources?: Record<string, CustomDatasourceConfig>;\n npmrc?: string;\n defaultRegistryUrls?: string[];\n registryUrls?: string[] | null;\n additionalRegistryUrls?: string[];\n datasource: string;\n packageName: string;\n currentValue?: string;\n versioning?: string;\n extractVersion?: string;\n versionCompatibility?: string;\n currentCompatibility?: string;\n constraints?: Record<string, string>;\n replacementName?: string;\n replacementVersion?: string;\n constraintsFiltering?: ConstraintsFilter;\n registryStrategy?: RegistryStrategy;\n}\n\nexport interface Release {\n changelogUrl?: string;\n checksumUrl?: string;\n downloadUrl?: string;\n gitRef?: string;\n isDeprecated?: boolean;\n isStable?: boolean;\n releaseTimestamp?: Timestamp | null;\n version: string;\n /** The original value to which `extractVersion` was applied */\n versionOrig?: string;\n newDigest?: string | undefined;\n constraints?: Record<string, string[]>;\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n registryUrl?: string;\n sourceUrl?: string | undefined;\n sourceDirectory?: string;\n currentAge?: string;\n isLatest?: boolean;\n}\n\nexport interface ReleaseResult {\n deprecationMessage?: string;\n isPrivate?: boolean;\n releases: Release[];\n tags?: Record<string, string> | undefined;\n // URL metadata\n changelogUrl?: string;\n dependencyUrl?: string;\n homepage?: string | undefined;\n gitRef?: string;\n sourceUrl?: string | null;\n sourceDirectory?: string;\n registryUrl?: string;\n replacementName?: string;\n replacementVersion?: string;\n lookupName?: string;\n packageScope?: string;\n bumpedAt?: Timestamp;\n}\n\nexport interface PostprocessReleaseConfig {\n packageName: string;\n registryUrl: string | null;\n}\n\nexport type PostprocessReleaseResult = Release | 'reject';\n\nexport type RegistryStrategy = 'first' | 'hunt' | 'merge';\nexport type SourceUrlSupport = 'package' | 'release' | 'none';\nexport interface DatasourceApi extends ModuleApi {\n id: string;\n getDigest?(config: DigestConfig, newValue?: string): Promise<string | null>;\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null>;\n defaultRegistryUrls?: string[] | (() => string[]);\n defaultVersioning?: string | undefined;\n defaultConfig?: Record<string, unknown> | undefined;\n\n /**\n * Strategy to use when multiple registryUrls are available to the datasource.\n * - `first`: only the first registryUrl will be tried and others ignored\n * - `hunt`: registryUrls will be tried in order until one returns a result\n * - `merge`: all registryUrls will be tried and the results merged if more than one returns a result\n */\n registryStrategy?: RegistryStrategy | undefined;\n\n /**\n * Whether custom registryUrls are allowed.\n */\n customRegistrySupport: boolean;\n\n /**\n * Whether release timestamp can be returned.\n */\n releaseTimestampSupport: boolean;\n /**\n * Notes on how release timestamp is determined.\n */\n releaseTimestampNote?: string;\n\n /**\n * Whether sourceURL can be returned.\n */\n sourceUrlSupport: SourceUrlSupport;\n /**\n * Notes on how sourceURL is determined.\n */\n sourceUrlNote?: string;\n\n /**\n * Whether to perform caching in the datasource index/wrapper or not.\n * true: datasoure index wrapper should cache all results (based on registryUrl/packageName)\n * false: caching is not performed, or performed within the datasource implementation\n */\n caching?: boolean | undefined;\n\n /**\n * When the candidate for update is formed, this method could be called\n * to fetch additional information such as `releaseTimestamp`.\n *\n * Also, the release could be checked (and potentially rejected)\n * via some datasource-specific external call.\n *\n * In case of reject, the next candidate release is selected,\n * and `postprocessRelease` is called again.\n *\n * Rejection must happen only when the release will lead to downstream error,\n * e.g. the release turned out to be yanked or doesn't exist for some reason.\n *\n * In other cases, the original `Release` parameter should be returned.\n */\n postprocessRelease(\n config: PostprocessReleaseConfig,\n release: Release,\n ): Promise<PostprocessReleaseResult>;\n}\n"]}
|
@@ -104,9 +104,9 @@ export declare const ApplicationSpec: z.ZodObject<{
|
|
104
104
|
sources?: any[] | undefined;
|
105
105
|
}>;
|
106
106
|
export type ApplicationSpec = z.infer<typeof ApplicationSpec>;
|
107
|
-
export declare const Application: z.ZodObject<
|
107
|
+
export declare const Application: z.ZodObject<{
|
108
108
|
apiVersion: z.ZodString;
|
109
|
-
}
|
109
|
+
} & {
|
110
110
|
kind: z.ZodLiteral<"Application">;
|
111
111
|
spec: z.ZodObject<{
|
112
112
|
source: z.ZodOptional<z.ZodObject<{
|
@@ -171,7 +171,7 @@ export declare const Application: z.ZodObject<z.objectUtil.extendShape<{
|
|
171
171
|
} | undefined;
|
172
172
|
sources?: any[] | undefined;
|
173
173
|
}>;
|
174
|
-
}
|
174
|
+
}, "strip", z.ZodTypeAny, {
|
175
175
|
apiVersion: string;
|
176
176
|
kind: "Application";
|
177
177
|
spec: {
|
@@ -207,9 +207,9 @@ export declare const Application: z.ZodObject<z.objectUtil.extendShape<{
|
|
207
207
|
sources?: any[] | undefined;
|
208
208
|
};
|
209
209
|
}>;
|
210
|
-
export declare const ApplicationSet: z.ZodObject<
|
210
|
+
export declare const ApplicationSet: z.ZodObject<{
|
211
211
|
apiVersion: z.ZodString;
|
212
|
-
}
|
212
|
+
} & {
|
213
213
|
kind: z.ZodLiteral<"ApplicationSet">;
|
214
214
|
spec: z.ZodObject<{
|
215
215
|
template: z.ZodObject<{
|
@@ -344,7 +344,7 @@ export declare const ApplicationSet: z.ZodObject<z.objectUtil.extendShape<{
|
|
344
344
|
};
|
345
345
|
};
|
346
346
|
}>;
|
347
|
-
}
|
347
|
+
}, "strip", z.ZodTypeAny, {
|
348
348
|
apiVersion: string;
|
349
349
|
kind: "ApplicationSet";
|
350
350
|
spec: {
|
@@ -388,9 +388,9 @@ export declare const ApplicationSet: z.ZodObject<z.objectUtil.extendShape<{
|
|
388
388
|
};
|
389
389
|
};
|
390
390
|
}>;
|
391
|
-
export declare const ApplicationDefinition: z.ZodUnion<[z.ZodObject<
|
391
|
+
export declare const ApplicationDefinition: z.ZodUnion<[z.ZodObject<{
|
392
392
|
apiVersion: z.ZodString;
|
393
|
-
}
|
393
|
+
} & {
|
394
394
|
kind: z.ZodLiteral<"Application">;
|
395
395
|
spec: z.ZodObject<{
|
396
396
|
source: z.ZodOptional<z.ZodObject<{
|
@@ -455,7 +455,7 @@ export declare const ApplicationDefinition: z.ZodUnion<[z.ZodObject<z.objectUtil
|
|
455
455
|
} | undefined;
|
456
456
|
sources?: any[] | undefined;
|
457
457
|
}>;
|
458
|
-
}
|
458
|
+
}, "strip", z.ZodTypeAny, {
|
459
459
|
apiVersion: string;
|
460
460
|
kind: "Application";
|
461
461
|
spec: {
|
@@ -490,9 +490,9 @@ export declare const ApplicationDefinition: z.ZodUnion<[z.ZodObject<z.objectUtil
|
|
490
490
|
} | undefined;
|
491
491
|
sources?: any[] | undefined;
|
492
492
|
};
|
493
|
-
}>, z.ZodObject<
|
493
|
+
}>, z.ZodObject<{
|
494
494
|
apiVersion: z.ZodString;
|
495
|
-
}
|
495
|
+
} & {
|
496
496
|
kind: z.ZodLiteral<"ApplicationSet">;
|
497
497
|
spec: z.ZodObject<{
|
498
498
|
template: z.ZodObject<{
|
@@ -627,7 +627,7 @@ export declare const ApplicationDefinition: z.ZodUnion<[z.ZodObject<z.objectUtil
|
|
627
627
|
};
|
628
628
|
};
|
629
629
|
}>;
|
630
|
-
}
|
630
|
+
}, "strip", z.ZodTypeAny, {
|
631
631
|
apiVersion: string;
|
632
632
|
kind: "ApplicationSet";
|
633
633
|
spec: {
|
@@ -2,36 +2,13 @@ import { z } from 'zod';
|
|
2
2
|
import type { PackageDependency } from '../../types';
|
3
3
|
export declare const mavenExtensionPrefix = "maven";
|
4
4
|
export declare const mavenExtensionTags: string[];
|
5
|
-
export declare const RuleToMavenPackageDep: z.ZodUnion<[z.ZodEffects<z.ZodObject<
|
5
|
+
export declare const RuleToMavenPackageDep: z.ZodUnion<[z.ZodEffects<z.ZodObject<{
|
6
6
|
type: z.ZodLiteral<"extensionTag">;
|
7
|
-
extension: z.ZodString;
|
8
7
|
rawExtension: z.ZodString;
|
9
|
-
tag: z.ZodString;
|
10
|
-
children: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodAny>, Record<string, {
|
11
|
-
type: "string";
|
12
|
-
value: string;
|
13
|
-
isComplete: true;
|
14
|
-
} | {
|
15
|
-
type: "boolean";
|
16
|
-
value: boolean;
|
17
|
-
isComplete: true;
|
18
|
-
} | {
|
19
|
-
type: "array";
|
20
|
-
isComplete: boolean;
|
21
|
-
items: ({
|
22
|
-
type: "string";
|
23
|
-
value: string;
|
24
|
-
isComplete: true;
|
25
|
-
} | {
|
26
|
-
type: "boolean";
|
27
|
-
value: boolean;
|
28
|
-
isComplete: true;
|
29
|
-
})[];
|
30
|
-
}>, Record<string, any>>;
|
31
8
|
isComplete: z.ZodBoolean;
|
32
9
|
offset: z.ZodNumber;
|
33
10
|
rawString: z.ZodOptional<z.ZodString>;
|
34
|
-
}
|
11
|
+
} & {
|
35
12
|
extension: z.ZodLiteral<"maven">;
|
36
13
|
tag: z.ZodLiteral<"artifact">;
|
37
14
|
children: z.ZodObject<{
|
@@ -107,7 +84,7 @@ export declare const RuleToMavenPackageDep: z.ZodUnion<[z.ZodEffects<z.ZodObject
|
|
107
84
|
isComplete: true;
|
108
85
|
};
|
109
86
|
}>;
|
110
|
-
}
|
87
|
+
}, "strip", z.ZodTypeAny, {
|
111
88
|
type: "extensionTag";
|
112
89
|
tag: "artifact";
|
113
90
|
children: {
|
@@ -182,36 +159,13 @@ export declare const RuleToMavenPackageDep: z.ZodUnion<[z.ZodEffects<z.ZodObject
|
|
182
159
|
extension: "maven";
|
183
160
|
rawExtension: string;
|
184
161
|
rawString?: string | undefined;
|
185
|
-
}>, z.ZodEffects<z.ZodObject<
|
162
|
+
}>, z.ZodEffects<z.ZodObject<{
|
186
163
|
type: z.ZodLiteral<"extensionTag">;
|
187
|
-
extension: z.ZodString;
|
188
164
|
rawExtension: z.ZodString;
|
189
|
-
tag: z.ZodString;
|
190
|
-
children: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodAny>, Record<string, {
|
191
|
-
type: "string";
|
192
|
-
value: string;
|
193
|
-
isComplete: true;
|
194
|
-
} | {
|
195
|
-
type: "boolean";
|
196
|
-
value: boolean;
|
197
|
-
isComplete: true;
|
198
|
-
} | {
|
199
|
-
type: "array";
|
200
|
-
isComplete: boolean;
|
201
|
-
items: ({
|
202
|
-
type: "string";
|
203
|
-
value: string;
|
204
|
-
isComplete: true;
|
205
|
-
} | {
|
206
|
-
type: "boolean";
|
207
|
-
value: boolean;
|
208
|
-
isComplete: true;
|
209
|
-
})[];
|
210
|
-
}>, Record<string, any>>;
|
211
165
|
isComplete: z.ZodBoolean;
|
212
166
|
offset: z.ZodNumber;
|
213
167
|
rawString: z.ZodOptional<z.ZodString>;
|
214
|
-
}
|
168
|
+
} & {
|
215
169
|
extension: z.ZodLiteral<"maven">;
|
216
170
|
tag: z.ZodLiteral<"install">;
|
217
171
|
children: z.ZodObject<{
|
@@ -292,7 +246,7 @@ export declare const RuleToMavenPackageDep: z.ZodUnion<[z.ZodEffects<z.ZodObject
|
|
292
246
|
items: any[];
|
293
247
|
};
|
294
248
|
}>;
|
295
|
-
}
|
249
|
+
}, "strip", z.ZodTypeAny, {
|
296
250
|
type: "extensionTag";
|
297
251
|
tag: "install";
|
298
252
|
children: {
|
@@ -2,36 +2,13 @@ import { z } from 'zod';
|
|
2
2
|
import type { PackageDependency } from '../../types';
|
3
3
|
export declare const ociExtensionPrefix = "oci";
|
4
4
|
export declare const ociExtensionTags: string[];
|
5
|
-
export declare const RuleToDockerPackageDep: z.ZodEffects<z.ZodObject<
|
5
|
+
export declare const RuleToDockerPackageDep: z.ZodEffects<z.ZodObject<{
|
6
6
|
type: z.ZodLiteral<"extensionTag">;
|
7
|
-
extension: z.ZodString;
|
8
7
|
rawExtension: z.ZodString;
|
9
|
-
tag: z.ZodString;
|
10
|
-
children: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodAny>, Record<string, {
|
11
|
-
type: "string";
|
12
|
-
value: string;
|
13
|
-
isComplete: true;
|
14
|
-
} | {
|
15
|
-
type: "boolean";
|
16
|
-
value: boolean;
|
17
|
-
isComplete: true;
|
18
|
-
} | {
|
19
|
-
type: "array";
|
20
|
-
isComplete: boolean;
|
21
|
-
items: ({
|
22
|
-
type: "string";
|
23
|
-
value: string;
|
24
|
-
isComplete: true;
|
25
|
-
} | {
|
26
|
-
type: "boolean";
|
27
|
-
value: boolean;
|
28
|
-
isComplete: true;
|
29
|
-
})[];
|
30
|
-
}>, Record<string, any>>;
|
31
8
|
isComplete: z.ZodBoolean;
|
32
9
|
offset: z.ZodNumber;
|
33
10
|
rawString: z.ZodOptional<z.ZodString>;
|
34
|
-
}
|
11
|
+
} & {
|
35
12
|
extension: z.ZodLiteral<"oci">;
|
36
13
|
tag: z.ZodLiteral<"pull">;
|
37
14
|
children: z.ZodObject<{
|
@@ -130,7 +107,7 @@ export declare const RuleToDockerPackageDep: z.ZodEffects<z.ZodObject<z.objectUt
|
|
130
107
|
isComplete: true;
|
131
108
|
} | undefined;
|
132
109
|
}>;
|
133
|
-
}
|
110
|
+
}, "strip", z.ZodTypeAny, {
|
134
111
|
type: "extensionTag";
|
135
112
|
tag: "pull";
|
136
113
|
children: {
|