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.
Files changed (237) hide show
  1. package/dist/config/options/index.js +13 -0
  2. package/dist/config/options/index.js.map +1 -1
  3. package/dist/config/presets/common.js +1 -0
  4. package/dist/config/presets/common.js.map +1 -1
  5. package/dist/config/presets/internal/custom-managers.js +15 -0
  6. package/dist/config/presets/internal/custom-managers.js.map +1 -1
  7. package/dist/constants/platforms.js +5 -1
  8. package/dist/constants/platforms.js.map +1 -1
  9. package/dist/data/monorepo.json +3 -1
  10. package/dist/data-files.generated.js +2 -2
  11. package/dist/data-files.generated.js.map +1 -1
  12. package/dist/instrumentation/index.js +28 -8
  13. package/dist/instrumentation/index.js.map +1 -1
  14. package/dist/modules/datasource/api.js +2 -0
  15. package/dist/modules/datasource/api.js.map +1 -1
  16. package/dist/modules/datasource/azure-pipelines-tasks/index.js +4 -0
  17. package/dist/modules/datasource/azure-pipelines-tasks/index.js.map +1 -1
  18. package/dist/modules/datasource/azure-pipelines-tasks/schema.d.ts +8 -0
  19. package/dist/modules/datasource/azure-pipelines-tasks/schema.js +1 -0
  20. package/dist/modules/datasource/azure-pipelines-tasks/schema.js.map +1 -1
  21. package/dist/modules/datasource/bazel/index.js +18 -1
  22. package/dist/modules/datasource/bazel/index.js.map +1 -1
  23. package/dist/modules/datasource/bazel/schema.d.ts +1 -0
  24. package/dist/modules/datasource/bazel/schema.js.map +1 -1
  25. package/dist/modules/datasource/bitbucket-server-tags/index.d.ts +19 -0
  26. package/dist/modules/datasource/bitbucket-server-tags/index.js +133 -0
  27. package/dist/modules/datasource/bitbucket-server-tags/index.js.map +1 -0
  28. package/dist/modules/datasource/bitbucket-server-tags/schema.d.ts +28 -0
  29. package/dist/modules/datasource/bitbucket-server-tags/schema.js +13 -0
  30. package/dist/modules/datasource/bitbucket-server-tags/schema.js.map +1 -0
  31. package/dist/modules/datasource/conda/prefix-dev.js +1 -3
  32. package/dist/modules/datasource/conda/prefix-dev.js.map +1 -1
  33. package/dist/modules/datasource/cpan/index.js +1 -3
  34. package/dist/modules/datasource/cpan/index.js.map +1 -1
  35. package/dist/modules/datasource/custom/schema.d.ts +3 -3
  36. package/dist/modules/datasource/deb/index.d.ts +4 -5
  37. package/dist/modules/datasource/deb/index.js +8 -9
  38. package/dist/modules/datasource/deb/index.js.map +1 -1
  39. package/dist/modules/datasource/deb/url.d.ts +3 -3
  40. package/dist/modules/datasource/deb/url.js +17 -13
  41. package/dist/modules/datasource/deb/url.js.map +1 -1
  42. package/dist/modules/datasource/docker/schema.d.ts +72 -96
  43. package/dist/modules/datasource/github-runners/index.js +2 -2
  44. package/dist/modules/datasource/github-runners/index.js.map +1 -1
  45. package/dist/modules/datasource/metadata.js +9 -1
  46. package/dist/modules/datasource/metadata.js.map +1 -1
  47. package/dist/modules/datasource/npm/get.d.ts +0 -1
  48. package/dist/modules/datasource/npm/get.js +14 -68
  49. package/dist/modules/datasource/npm/get.js.map +1 -1
  50. package/dist/modules/datasource/npm/types.d.ts +0 -8
  51. package/dist/modules/datasource/npm/types.js.map +1 -1
  52. package/dist/modules/datasource/packagist/schema.d.ts +7 -7
  53. package/dist/modules/datasource/types.d.ts +1 -0
  54. package/dist/modules/datasource/types.js.map +1 -1
  55. package/dist/modules/manager/argocd/schema.d.ts +12 -12
  56. package/dist/modules/manager/bazel-module/parser/maven.d.ts +6 -52
  57. package/dist/modules/manager/bazel-module/parser/oci.d.ts +3 -26
  58. package/dist/modules/manager/bazel-module/rules.d.ts +15 -125
  59. package/dist/modules/manager/bun/extract.d.ts +1 -0
  60. package/dist/modules/manager/bun/extract.js +53 -27
  61. package/dist/modules/manager/bun/extract.js.map +1 -1
  62. package/dist/modules/manager/bun/index.js +1 -1
  63. package/dist/modules/manager/bun/index.js.map +1 -1
  64. package/dist/modules/manager/bun/utils.d.ts +2 -0
  65. package/dist/modules/manager/bun/utils.js +22 -0
  66. package/dist/modules/manager/bun/utils.js.map +1 -0
  67. package/dist/modules/manager/cargo/schema.d.ts +3 -3
  68. package/dist/modules/manager/circleci/extract.js +21 -30
  69. package/dist/modules/manager/circleci/extract.js.map +1 -1
  70. package/dist/modules/manager/circleci/schema.d.ts +33 -144
  71. package/dist/modules/manager/circleci/schema.js +21 -17
  72. package/dist/modules/manager/circleci/schema.js.map +1 -1
  73. package/dist/modules/manager/composer/schema.d.ts +6 -8
  74. package/dist/modules/manager/conan/artifacts.d.ts +2 -0
  75. package/dist/modules/manager/conan/artifacts.js +76 -0
  76. package/dist/modules/manager/conan/artifacts.js.map +1 -0
  77. package/dist/modules/manager/conan/index.d.ts +2 -0
  78. package/dist/modules/manager/conan/index.js +4 -1
  79. package/dist/modules/manager/conan/index.js.map +1 -1
  80. package/dist/modules/manager/devbox/artifacts.js +7 -0
  81. package/dist/modules/manager/devbox/artifacts.js.map +1 -1
  82. package/dist/modules/manager/dockerfile/extract.js +2 -6
  83. package/dist/modules/manager/dockerfile/extract.js.map +1 -1
  84. package/dist/modules/manager/fingerprint.generated.js +10 -10
  85. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  86. package/dist/modules/manager/flux/schema.d.ts +36 -60
  87. package/dist/modules/manager/gomod/artifacts-extra.js +12 -4
  88. package/dist/modules/manager/gomod/artifacts-extra.js.map +1 -1
  89. package/dist/modules/manager/gomod/update.js +3 -1
  90. package/dist/modules/manager/gomod/update.js.map +1 -1
  91. package/dist/modules/manager/gradle/extract.js +8 -13
  92. package/dist/modules/manager/gradle/extract.js.map +1 -1
  93. package/dist/modules/manager/gradle/parser/handlers.js +8 -0
  94. package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
  95. package/dist/modules/manager/gradle/parser/registry-urls.js +36 -10
  96. package/dist/modules/manager/gradle/parser/registry-urls.js.map +1 -1
  97. package/dist/modules/manager/gradle/types.d.ts +1 -0
  98. package/dist/modules/manager/gradle/types.js.map +1 -1
  99. package/dist/modules/manager/maven/extract.js +1 -3
  100. package/dist/modules/manager/maven/extract.js.map +1 -1
  101. package/dist/modules/manager/nix/schema.d.ts +14 -14
  102. package/dist/modules/manager/nix/schema.js +1 -0
  103. package/dist/modules/manager/nix/schema.js.map +1 -1
  104. package/dist/modules/manager/npm/extract/common/package-file.js +1 -0
  105. package/dist/modules/manager/npm/extract/common/package-file.js.map +1 -1
  106. package/dist/modules/manager/nuget/extract.js +21 -18
  107. package/dist/modules/manager/nuget/extract.js.map +1 -1
  108. package/dist/modules/manager/pep621/schema.d.ts +292 -5
  109. package/dist/modules/manager/pip_requirements/common.js +2 -6
  110. package/dist/modules/manager/pip_requirements/common.js.map +1 -1
  111. package/dist/modules/manager/pixi/artifacts.js +4 -10
  112. package/dist/modules/manager/pixi/artifacts.js.map +1 -1
  113. package/dist/modules/manager/pixi/extract.d.ts +2 -0
  114. package/dist/modules/manager/pixi/extract.js +81 -3
  115. package/dist/modules/manager/pixi/extract.js.map +1 -1
  116. package/dist/modules/manager/pixi/index.d.ts +0 -1
  117. package/dist/modules/manager/pixi/index.js +1 -3
  118. package/dist/modules/manager/pixi/index.js.map +1 -1
  119. package/dist/modules/manager/pixi/schema.d.ts +394 -3
  120. package/dist/modules/manager/pixi/schema.js +135 -2
  121. package/dist/modules/manager/pixi/schema.js.map +1 -1
  122. package/dist/modules/manager/sveltos/schema.d.ts +18 -30
  123. package/dist/modules/manager/terraform/util.js +1 -3
  124. package/dist/modules/manager/terraform/util.js.map +1 -1
  125. package/dist/modules/manager/vendir/schema.d.ts +3 -3
  126. package/dist/modules/platform/bitbucket/schema.d.ts +3 -3
  127. package/dist/modules/platform/bitbucket-server/schema.d.ts +1 -0
  128. package/dist/modules/platform/bitbucket-server/schema.js +2 -1
  129. package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
  130. package/dist/modules/platform/gerrit/client.d.ts +0 -3
  131. package/dist/modules/platform/gerrit/client.js +8 -28
  132. package/dist/modules/platform/gerrit/client.js.map +1 -1
  133. package/dist/modules/platform/gerrit/index.js +0 -6
  134. package/dist/modules/platform/gerrit/index.js.map +1 -1
  135. package/dist/modules/platform/gerrit/scm.js +5 -6
  136. package/dist/modules/platform/gerrit/scm.js.map +1 -1
  137. package/dist/modules/platform/gerrit/types.d.ts +1 -4
  138. package/dist/modules/platform/gerrit/types.js.map +1 -1
  139. package/dist/modules/platform/gerrit/utils.d.ts +3 -2
  140. package/dist/modules/platform/gerrit/utils.js +3 -7
  141. package/dist/modules/platform/gerrit/utils.js.map +1 -1
  142. package/dist/modules/platform/gitea/index.js +7 -9
  143. package/dist/modules/platform/gitea/index.js.map +1 -1
  144. package/dist/modules/platform/github/issue.d.ts +6 -6
  145. package/dist/modules/platform/github/schema.d.ts +52 -52
  146. package/dist/modules/platform/gitlab/index.js +2 -6
  147. package/dist/modules/platform/gitlab/index.js.map +1 -1
  148. package/dist/modules/versioning/distro.js +1 -3
  149. package/dist/modules/versioning/distro.js.map +1 -1
  150. package/dist/util/cache/package/types.d.ts +1 -1
  151. package/dist/util/cache/package/types.js.map +1 -1
  152. package/dist/util/cache/repository/impl/base.js +4 -0
  153. package/dist/util/cache/repository/impl/base.js.map +1 -1
  154. package/dist/util/common.d.ts +4 -2
  155. package/dist/util/common.js +17 -3
  156. package/dist/util/common.js.map +1 -1
  157. package/dist/util/exec/containerbase.js +2 -3
  158. package/dist/util/exec/containerbase.js.map +1 -1
  159. package/dist/util/git/auth.js +8 -5
  160. package/dist/util/git/auth.js.map +1 -1
  161. package/dist/util/git/index.js +2 -6
  162. package/dist/util/git/index.js.map +1 -1
  163. package/dist/util/git/private-key.js +1 -3
  164. package/dist/util/git/private-key.js.map +1 -1
  165. package/dist/util/git/types.d.ts +2 -0
  166. package/dist/util/git/types.js.map +1 -1
  167. package/dist/util/git/url.js +1 -1
  168. package/dist/util/git/url.js.map +1 -1
  169. package/dist/util/github/graphql/datasource-fetcher.js +3 -5
  170. package/dist/util/github/graphql/datasource-fetcher.js.map +1 -1
  171. package/dist/util/http/bitbucket-server.d.ts +2 -1
  172. package/dist/util/http/bitbucket-server.js +5 -3
  173. package/dist/util/http/bitbucket-server.js.map +1 -1
  174. package/dist/util/http/cache/package-http-cache-provider.d.ts +23 -0
  175. package/dist/util/http/cache/package-http-cache-provider.js +80 -0
  176. package/dist/util/http/cache/package-http-cache-provider.js.map +1 -0
  177. package/dist/util/http/host-rules.js +12 -0
  178. package/dist/util/http/host-rules.js.map +1 -1
  179. package/dist/util/schema-utils.d.ts +1 -0
  180. package/dist/util/schema-utils.js +43 -8
  181. package/dist/util/schema-utils.js.map +1 -1
  182. package/dist/util/string.d.ts +1 -0
  183. package/dist/util/string.js +4 -0
  184. package/dist/util/string.js.map +1 -1
  185. package/dist/util/yaml.js +2 -3
  186. package/dist/util/yaml.js.map +1 -1
  187. package/dist/workers/global/config/parse/index.js +10 -0
  188. package/dist/workers/global/config/parse/index.js.map +1 -1
  189. package/dist/workers/global/index.js +4 -2
  190. package/dist/workers/global/index.js.map +1 -1
  191. package/dist/workers/repository/process/lookup/index.js +2 -0
  192. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  193. package/dist/workers/repository/process/lookup/timestamps.d.ts +18 -0
  194. package/dist/workers/repository/process/lookup/timestamps.js +69 -0
  195. package/dist/workers/repository/process/lookup/timestamps.js.map +1 -0
  196. package/dist/workers/repository/process/lookup/types.d.ts +1 -0
  197. package/dist/workers/repository/process/lookup/types.js.map +1 -1
  198. package/dist/workers/repository/process/lookup/utils.js +20 -9
  199. package/dist/workers/repository/process/lookup/utils.js.map +1 -1
  200. package/dist/workers/repository/process/sort.js +1 -1
  201. package/dist/workers/repository/process/sort.js.map +1 -1
  202. package/dist/workers/repository/reconfigure/utils.d.ts +2 -0
  203. package/dist/workers/repository/reconfigure/utils.js +16 -0
  204. package/dist/workers/repository/reconfigure/utils.js.map +1 -1
  205. package/dist/workers/repository/reconfigure/validate.js +5 -17
  206. package/dist/workers/repository/reconfigure/validate.js.map +1 -1
  207. package/dist/workers/repository/update/branch/auto-replace.js +25 -5
  208. package/dist/workers/repository/update/branch/auto-replace.js.map +1 -1
  209. package/dist/workers/repository/update/branch/commit.js +2 -0
  210. package/dist/workers/repository/update/branch/commit.js.map +1 -1
  211. package/dist/workers/repository/update/pr/body/config-description.js +26 -1
  212. package/dist/workers/repository/update/pr/body/config-description.js.map +1 -1
  213. package/dist/workers/repository/update/pr/body/index.js +21 -14
  214. package/dist/workers/repository/update/pr/body/index.js.map +1 -1
  215. package/dist/workers/repository/update/pr/changelog/api.js +8 -6
  216. package/dist/workers/repository/update/pr/changelog/api.js.map +1 -1
  217. package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.d.ts +3 -0
  218. package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.js +39 -0
  219. package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.js.map +1 -0
  220. package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.d.ts +8 -0
  221. package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.js +31 -0
  222. package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.js.map +1 -0
  223. package/dist/workers/repository/update/pr/changelog/release-notes.js +12 -8
  224. package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
  225. package/dist/workers/repository/update/pr/changelog/source.d.ts +1 -1
  226. package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
  227. package/dist/workers/repository/update/pr/changelog/types.d.ts +1 -1
  228. package/dist/workers/repository/update/pr/changelog/types.js.map +1 -1
  229. package/dist/workers/repository/update/pr/index.js +2 -4
  230. package/dist/workers/repository/update/pr/index.js.map +1 -1
  231. package/dist/workers/repository/updates/generate.js +2 -0
  232. package/dist/workers/repository/updates/generate.js.map +1 -1
  233. package/package.json +40 -37
  234. package/renovate-schema.json +9 -2
  235. package/dist/modules/manager/pixi/lockfile.d.ts +0 -6
  236. package/dist/modules/manager/pixi/lockfile.js +0 -25
  237. 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 options = {};
95
- if (cachedResult?.cacheData?.etag) {
96
- logger_1.logger.trace({ packageName }, 'Using cached etag');
97
- options.headers = { 'If-None-Match': cachedResult.cacheData.etag };
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 raw = await http.getJsonUnchecked(packageUrl, options);
110
- if (cachedResult?.cacheData && raw.statusCode === 304) {
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
- logger_1.logger.trace({ dep }, 'dep');
178
- const cacheControl = raw.headers?.['cache-control'];
179
- if (is_1.default.nonEmptyString(cacheControl) &&
180
- (0, regex_1.regEx)(/(^|,)\s*public\s*(,|$)/).test(cacheControl)) {
181
- dep.isPrivate = false;
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":";;;AA0EA,sCA6MC;;AAvRD,gEAA2B;AAC3B,kEAAkC;AAClC,iCAAiC;AACjC,6BAAwB;AACxB,mDAAsD;AACtD,sEAAkE;AAClE,4CAAyC;AACzC,mFAA8E;AAC9E,kFAA4D;AAC5D,4EAAsD;AAGtD,+CAA4C;AAC5C,+CAAqD;AACrD,uDAAsD;AACtD,2CAAiD;AAIpC,QAAA,cAAc,GAAG,CAAC,CAAC;AAEhC,MAAM,gBAAgB,GAAG,IAAA,aAAK,EAC5B,0FAA0F,CAC3F,CAAC;AAEF,MAAM,eAAe,GAA2B;IAC9C,SAAS,EAAE,wBAAwB;IACnC,MAAM,EAAE,qBAAqB;IAC7B,MAAM,EAAE,qBAAqB;CAC9B,CAAC;AAOF,MAAM,aAAa,GAAG,OAAC;KACpB,KAAK,CAAC;IACL,OAAC;SACE,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,SAAS,CAAC,CAAC,UAAU,EAAiB,EAAE;QACvC,IAAI,SAAS,GAAkB,IAAI,CAAC;QACpC,MAAM,eAAe,GAAG,IAAI,CAAC;QAC7B,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACtD,IAAI,UAAU,EAAE,MAAM,EAAE,CAAC;YACvB,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC;YAC7D,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,UAAU,CAAC;QACzB,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;IACxC,CAAC,CAAC;IACJ,OAAC;SACE,MAAM,CAAC;QACN,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;QACpC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;KAC3C,CAAC;SACD,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;QAChC,MAAM,GAAG,GAAkB,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;QAEtE,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC;QACtB,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,CAAC,eAAe,GAAG,SAAS,CAAC;QAClC,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;CACL,CAAC;KACD,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;AAE9C,KAAK,UAAU,aAAa,CACjC,IAAU,EACV,WAAmB,EACnB,WAAmB;IAEnB,eAAM,CAAC,KAAK,CAAC,qBAAqB,WAAW,GAAG,CAAC,CAAC;IAElD,MAAM,UAAU,GAAG,IAAA,kBAAY,EAAC,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAE9E,iCAAiC;IACjC,MAAM,cAAc,GAAG,qBAAqB,CAAC;IAC7C,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,GAAG,CACzC,cAAc,EACd,UAAU,CACX,CAAC;IACF,IAAI,YAAY,EAAE,SAAS,EAAE,CAAC;QAC5B,IAAI,YAAY,CAAC,SAAS,CAAC,QAAQ,KAAK,sBAAc,EAAE,CAAC;YACvD,MAAM,YAAY,GAAG,gBAAQ,CAAC,OAAO,CACnC,YAAY,CAAC,SAAS,CAAC,YAAY,CACpC,CAAC;YACF,IAAI,YAAY,CAAC,OAAO,IAAI,YAAY,GAAG,gBAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC5D,eAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACvD,sBAAc,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBACxC,OAAO,YAAY,CAAC,SAAS,CAAC;gBAC9B,OAAO,YAAY,CAAC;YACtB,CAAC;YAED,eAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC9C,sBAAc,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,eAAM,CAAC,KAAK,CACV,kCAAkC,WAAW,wCAAwC,CACtF,CAAC;YACF,OAAO,YAAY,CAAC,SAAS,CAAC;QAChC,CAAC;IACH,CAAC;IACD,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,MAAM,YAAY,GAAG,gBAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAC9E,IAAI,mBAAmB,GAAG,qBAAY,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAClE,IACE,CAAC,CACC,YAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC;QAC9B,sCAAsC,CAAC,mBAAmB,GAAG,YAAY,CAC1E,EACD,CAAC;QACD,mBAAmB,GAAG,YAAY,CAAC;IACrC,CAAC;IAED,MAAM,GAAG,GAAG,kBAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAElC,IAAI,CAAC;QACH,MAAM,OAAO,GAAgB,EAAE,CAAC;QAChC,IAAI,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YAClC,eAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE,mBAAmB,CAAC,CAAC;YACnD,OAAO,CAAC,OAAO,GAAG,EAAE,eAAe,EAAE,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACrE,CAAC;QAED,2FAA2F;QAC3F,IACE,WAAW,KAAK,4BAA4B;YAC5C,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,4BAA4B,EAAE,CAAC,EAAE,YAAY;gBACjE,SAAS,EACX,CAAC;YACD,eAAM,CAAC,KAAK,CACV,EAAE,WAAW,EAAE,QAAQ,EAAE,4BAA4B,EAAE,EACvD,mDAAmD,CACpD,CAAC;YACF,SAAS,CAAC,GAAG,CAAC;gBACZ,SAAS,EAAE,4BAA4B;gBACvC,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAc,UAAU,EAAE,OAAO,CAAC,CAAC;QAC1E,IAAI,YAAY,EAAE,SAAS,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YACtD,eAAM,CAAC,KAAK,CAAC,yBAAyB,WAAW,iBAAiB,CAAC,CAAC;YACpE,sBAAc,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACzC,YAAY,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;YACnD,MAAM,YAAY,CAAC,GAAG,CACpB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,mBAAmB,CACpB,CAAC;YACF,OAAO,YAAY,CAAC,SAAS,CAAC;YAC9B,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,sBAAc,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;YACvD,kDAAkD;YAClD,eAAM,CAAC,KAAK,CAAC,2CAA2C,WAAW,EAAE,CAAC,CAAC;YACvE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;QACnE,GAAG,CAAC,UAAU,KAAK,aAAa,EAAE,UAAU,CAAC;QAC7C,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,QAAQ,CAAC;QAEzC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAE3E,iDAAiD;QACjD,MAAM,GAAG,GAAkB;YACzB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC;YACtB,WAAW;SACZ,CAAC;QAEF,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;QAC5B,CAAC;QAED,IAAI,eAAe,EAAE,CAAC;YACpB,GAAG,CAAC,eAAe,GAAG,eAAe,CAAC;QACxC,CAAC;QAED,IAAI,aAAa,EAAE,UAAU,EAAE,CAAC;YAC9B,GAAG,CAAC,kBAAkB,GAAG,iBAAiB,WAAW,4CAA4C,WAAW,iDAAiD,aAAa,CAAC,UAAU,wLAAwL,CAAC;QAChX,CAAC;QACD,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACvD,MAAM,OAAO,GAAY;gBACvB,OAAO;gBACP,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO;gBACvC,YAAY,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,YAAY;gBAClD,eAAe,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,eAAe;aACzD,CAAC;YACF,MAAM,gBAAgB,GAAG,IAAA,uBAAW,EAAC,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1D,IAAI,gBAAgB,EAAE,CAAC;gBACrB,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;YAC9C,CAAC;YACD,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;gBACvC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;YAC9B,CAAC;YACD,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC;YAC7D,IAAI,YAAE,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC;gBACtC,OAAO,CAAC,WAAW,GAAG,EAAE,IAAI,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;YACnD,CAAC;YACD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC;YACvE,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,EAAE,CAAC;gBAC3D,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YACvC,CAAC;YACD,IACE,MAAM,CAAC,eAAe;gBACtB,MAAM,CAAC,eAAe,KAAK,GAAG,CAAC,eAAe,EAC9C,CAAC;gBACD,OAAO,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;YACnD,CAAC;YACD,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC;gBAC3B,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;YAC9B,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QAC7B,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,eAAe,CAAC,CAAC;QACpD,IACE,YAAE,CAAC,cAAc,CAAC,YAAY,CAAC;YAC/B,IAAA,aAAK,EAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAClD,CAAC;YACD,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;YACtB,MAAM,SAAS,GAAG,EAAE,QAAQ,EAAE,sBAAc,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;YACnE,MAAM,YAAY,CAAC,GAAG,CACpB,cAAc,EACd,UAAU,EACV,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,EACrB,IAAI;gBACF,CAAC,CAAC,sCAAsC,CAAC,mBAAmB;gBAC5D,CAAC,CAAC,YAAY,CACjB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,WAAW,GAAG,GAAG,YAAY,uCAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACrE,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,oBAAoB,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3C,IACE,WAAW,CAAC,OAAO,KAAK,8BAAa;YACrC,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC;YACnD,oBAAoB,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAC/C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,GAAG,YAAY,uCAAiB,EAAE,CAAC;YACrC,IAAI,YAAY,EAAE,CAAC;gBACjB,eAAM,CAAC,IAAI,CACT,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EACvB,uDAAuD,CACxD,CAAC;gBACF,OAAO,YAAY,CAAC,SAAS,CAAC;gBAC9B,OAAO,YAAY,CAAC;YACtB,CAAC;YAED,IAAI,WAAW,CAAC,IAAI,KAAK,YAAY,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;gBAC1D,WAAW,CAAC,IAAI,GAAG,8BAA8B,CAAC;gBAClD,GAAG,CAAC,GAAG,GAAG,WAAW,CAAC;YACxB,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,0BAA0B,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC","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';\nimport type { ReleaseResult } 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 interface CachedReleaseResult extends ReleaseResult {\n cacheData?: {\n revision?: number;\n etag: string | undefined;\n softExpireAt: string;\n };\n}\n\nexport type Npmrc = Record<string, any>;\n"]}
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<z.objectUtil.extendShape<{
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
- }>, "strip", z.ZodTypeAny, {
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<z.objectUtil.extendShape<z.objectUtil.extendShape<{
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
- }>, "strip", z.ZodTypeAny, {
277
+ }, "strip", z.ZodTypeAny, {
278
278
  includes: {
279
279
  key: string;
280
280
  hash: string | null;
@@ -83,6 +83,7 @@ export interface ReleaseResult {
83
83
  replacementVersion?: string;
84
84
  lookupName?: string;
85
85
  packageScope?: string;
86
+ bumpedAt?: Timestamp;
86
87
  }
87
88
  export interface PostprocessReleaseConfig {
88
89
  packageName: string;
@@ -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<z.objectUtil.extendShape<{
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
- }>, "strip", z.ZodTypeAny, {
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<z.objectUtil.extendShape<{
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
- }>, "strip", z.ZodTypeAny, {
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<z.objectUtil.extendShape<{
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
- }>, "strip", z.ZodTypeAny, {
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<z.objectUtil.extendShape<{
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
- }>, "strip", z.ZodTypeAny, {
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<z.objectUtil.extendShape<{
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
- }>, "strip", z.ZodTypeAny, {
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<z.objectUtil.extendShape<{
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
- }>, "strip", z.ZodTypeAny, {
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<z.objectUtil.extendShape<{
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
- }>, "strip", z.ZodTypeAny, {
110
+ }, "strip", z.ZodTypeAny, {
134
111
  type: "extensionTag";
135
112
  tag: "pull";
136
113
  children: {