renovate 44.124.0 → 44.124.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/options/index.js +1 -1
- package/dist/config/options/index.js.map +1 -1
- package/dist/global-config-option-defaults.generated.js +1 -1
- package/dist/global-config-option-defaults.generated.js.map +1 -1
- package/dist/modules/manager/bun/artifacts.js +1 -1
- package/dist/modules/manager/deno/artifacts.js +1 -1
- package/dist/modules/manager/fingerprint.generated.js +1 -1
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/npm/artifacts.js +34 -54
- package/dist/modules/manager/npm/artifacts.js.map +1 -1
- package/dist/modules/manager/npm/extract/common/dependency.js +2 -2
- package/dist/modules/manager/npm/extract/common/dependency.js.map +1 -1
- package/dist/modules/manager/npm/extract/common/package-file.js +1 -1
- package/dist/modules/manager/npm/extract/index.js +1 -1
- package/dist/modules/manager/npm/extract/post/locked-versions.js +1 -1
- package/dist/modules/manager/npm/extract/post/locked-versions.js.map +1 -1
- package/dist/modules/manager/npm/post-update/index.js +2 -2
- package/dist/modules/manager/npm/post-update/npm.js +1 -1
- package/dist/modules/manager/npm/post-update/yarn.js +1 -1
- package/package.json +1 -1
- package/renovate-schema.json +2 -2
|
@@ -23,7 +23,7 @@ const globalConfigOptionDefaults = {
|
|
|
23
23
|
"detectHostRulesFromEnv": false,
|
|
24
24
|
"dockerChildPrefix": "renovate_",
|
|
25
25
|
"dockerMaxPages": 20,
|
|
26
|
-
"dockerSidecarImage": "ghcr.io/renovatebot/base-image:13.104.
|
|
26
|
+
"dockerSidecarImage": "ghcr.io/renovatebot/base-image:13.104.3",
|
|
27
27
|
"dockerUser": "12021",
|
|
28
28
|
"executionTimeout": 15,
|
|
29
29
|
"exitCodeForErrors": false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-config-option-defaults.generated.js","names":[],"sources":["../lib/global-config-option-defaults.generated.ts"],"sourcesContent":["\nexport const globalConfigOptionDefaults: Record<string, unknown> = {\n \"allowCustomCrateGitRegistries\": false,\n \"allowedCommands\": [],\n \"allowedEnv\": [],\n \"allowedHeaders\": [\n \"X-*\"\n ],\n \"allowedUnsafeExecutions\": [],\n \"allowPlugins\": false,\n \"allowScripts\": false,\n \"allowShellExecutorForPostUpgradeCommands\": false,\n \"autodiscover\": false,\n \"bbUseDevelopmentBranch\": false,\n \"binarySource\": \"install\",\n \"cacheHardTtlMinutes\": 10080,\n \"cachePrivatePackages\": false,\n \"cacheTtlOverride\": {},\n \"checkedBranches\": [],\n \"configValidationError\": false,\n \"customEnvVariables\": {},\n \"deleteAdditionalConfigFile\": false,\n \"deleteConfigFile\": false,\n \"detectGlobalManagerConfig\": false,\n \"detectHostRulesFromEnv\": false,\n \"dockerChildPrefix\": \"renovate_\",\n \"dockerMaxPages\": 20,\n \"dockerSidecarImage\": \"ghcr.io/renovatebot/base-image:13.104.
|
|
1
|
+
{"version":3,"file":"global-config-option-defaults.generated.js","names":[],"sources":["../lib/global-config-option-defaults.generated.ts"],"sourcesContent":["\nexport const globalConfigOptionDefaults: Record<string, unknown> = {\n \"allowCustomCrateGitRegistries\": false,\n \"allowedCommands\": [],\n \"allowedEnv\": [],\n \"allowedHeaders\": [\n \"X-*\"\n ],\n \"allowedUnsafeExecutions\": [],\n \"allowPlugins\": false,\n \"allowScripts\": false,\n \"allowShellExecutorForPostUpgradeCommands\": false,\n \"autodiscover\": false,\n \"bbUseDevelopmentBranch\": false,\n \"binarySource\": \"install\",\n \"cacheHardTtlMinutes\": 10080,\n \"cachePrivatePackages\": false,\n \"cacheTtlOverride\": {},\n \"checkedBranches\": [],\n \"configValidationError\": false,\n \"customEnvVariables\": {},\n \"deleteAdditionalConfigFile\": false,\n \"deleteConfigFile\": false,\n \"detectGlobalManagerConfig\": false,\n \"detectHostRulesFromEnv\": false,\n \"dockerChildPrefix\": \"renovate_\",\n \"dockerMaxPages\": 20,\n \"dockerSidecarImage\": \"ghcr.io/renovatebot/base-image:13.104.3\",\n \"dockerUser\": \"12021\",\n \"executionTimeout\": 15,\n \"exitCodeForErrors\": false,\n \"exposeAllEnv\": false,\n \"forceCli\": true,\n \"forkCreation\": true,\n \"githubTokenWarn\": true,\n \"gitNoVerify\": [\n \"commit\",\n \"push\"\n ],\n \"gitTimeout\": 0,\n \"gitUrl\": \"default\",\n \"httpCacheTtlDays\": 90,\n \"ignorePrAuthor\": false,\n \"includeMirrors\": false,\n \"inheritConfig\": false,\n \"inheritConfigFileName\": \"org-inherited-config.json\",\n \"inheritConfigRepoName\": \"{{parentOrg}}/renovate-config\",\n \"inheritConfigStrict\": false,\n \"inheritConfigTrusted\": false,\n \"internalHostAccess\": \"warn\",\n \"mergeConfidenceDatasources\": [\n \"go\",\n \"maven\",\n \"npm\",\n \"nuget\",\n \"packagist\",\n \"pypi\",\n \"rubygems\"\n ],\n \"mergeConfidenceEndpoint\": \"https://developer.mend.io/\",\n \"migratePresets\": {},\n \"onboardingBranch\": \"renovate/configure\",\n \"onboardingConfig\": {\n \"$schema\": \"https://docs.renovatebot.com/renovate-schema.json\"\n },\n \"onboardingConfigFileName\": \"renovate.json\",\n \"onboardingNoDeps\": \"auto\",\n \"onboardingPrTitle\": \"Configure Renovate\",\n \"onboardingRebaseCheckbox\": false,\n \"optimizeForDisabled\": false,\n \"persistRepoData\": false,\n \"platform\": \"github\",\n \"prCacheSyncMaxPages\": 100,\n \"prCommitsPerRunLimit\": 0,\n \"presetCachePersistence\": false,\n \"processEnv\": {},\n \"productLinks\": {\n \"documentation\": \"https://docs.renovatebot.com/\",\n \"help\": \"https://github.com/renovatebot/renovate/discussions\",\n \"homepage\": \"https://github.com/renovatebot/renovate\"\n },\n \"rebaseAllOpenBranches\": false,\n \"reportFormatting\": false,\n \"repositoryCache\": \"disabled\",\n \"repositoryCacheForceLocal\": false,\n \"repositoryCacheType\": \"local\",\n \"requireConfig\": \"required\",\n \"s3PathStyle\": false,\n \"secrets\": {},\n \"unicodeEmoji\": true,\n \"useCloudMetadataServices\": true,\n \"userAgent\": \"Renovate/{{renovateVersion}} (https://github.com/renovatebot/renovate)\",\n \"variables\": {}\n};\n"],"mappings":";AACA,MAAa,6BAAsD;CACjE,iCAAiC;CACjC,mBAAmB,CAAC;CACpB,cAAc,CAAC;CACf,kBAAkB,CAChB,KACF;CACA,2BAA2B,CAAC;CAC5B,gBAAgB;CAChB,gBAAgB;CAChB,4CAA4C;CAC5C,gBAAgB;CAChB,0BAA0B;CAC1B,gBAAgB;CAChB,uBAAuB;CACvB,wBAAwB;CACxB,oBAAoB,CAAC;CACrB,mBAAmB,CAAC;CACpB,yBAAyB;CACzB,sBAAsB,CAAC;CACvB,8BAA8B;CAC9B,oBAAoB;CACpB,6BAA6B;CAC7B,0BAA0B;CAC1B,qBAAqB;CACrB,kBAAkB;CAClB,sBAAsB;CACtB,cAAc;CACd,oBAAoB;CACpB,qBAAqB;CACrB,gBAAgB;CAChB,YAAY;CACZ,gBAAgB;CAChB,mBAAmB;CACnB,eAAe,CACb,UACA,MACF;CACA,cAAc;CACd,UAAU;CACV,oBAAoB;CACpB,kBAAkB;CAClB,kBAAkB;CAClB,iBAAiB;CACjB,yBAAyB;CACzB,yBAAyB;CACzB,uBAAuB;CACvB,wBAAwB;CACxB,sBAAsB;CACtB,8BAA8B;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,2BAA2B;CAC3B,kBAAkB,CAAC;CACnB,oBAAoB;CACpB,oBAAoB,EAClB,WAAW,oDACb;CACA,4BAA4B;CAC5B,oBAAoB;CACpB,qBAAqB;CACrB,4BAA4B;CAC5B,uBAAuB;CACvB,mBAAmB;CACnB,YAAY;CACZ,uBAAuB;CACvB,wBAAwB;CACxB,0BAA0B;CAC1B,cAAc,CAAC;CACf,gBAAgB;EACd,iBAAiB;EACjB,QAAQ;EACR,YAAY;CACd;CACA,yBAAyB;CACzB,oBAAoB;CACpB,mBAAmB;CACnB,6BAA6B;CAC7B,uBAAuB;CACvB,iBAAiB;CACjB,eAAe;CACf,WAAW,CAAC;CACZ,gBAAgB;CAChB,4BAA4B;CAC5B,aAAa;CACb,aAAa,CAAC;AAChB"}
|
|
@@ -4,8 +4,8 @@ import { logger } from "../../../logger/index.js";
|
|
|
4
4
|
import { readLocalFile } from "../../../util/fs/index.js";
|
|
5
5
|
import { exec } from "../../../util/exec/index.js";
|
|
6
6
|
import { artifactErrorResult, resolveToolConstraint, updateLockFile } from "../util.js";
|
|
7
|
-
import { processHostRules } from "../npm/post-update/rules.js";
|
|
8
7
|
import { withNpmrcHostRules } from "../npm/utils.js";
|
|
8
|
+
import { processHostRules } from "../npm/post-update/rules.js";
|
|
9
9
|
import { isEmptyArray } from "@sindresorhus/is";
|
|
10
10
|
import upath from "upath";
|
|
11
11
|
//#region lib/modules/manager/bun/artifacts.ts
|
|
@@ -4,8 +4,8 @@ import { findAll } from "../../../util/host-rules.js";
|
|
|
4
4
|
import { readLocalFile } from "../../../util/fs/index.js";
|
|
5
5
|
import { exec } from "../../../util/exec/index.js";
|
|
6
6
|
import { artifactError, artifactErrorResult, resolveToolConstraint, updateLockFile } from "../util.js";
|
|
7
|
-
import { processHostRules } from "../npm/post-update/rules.js";
|
|
8
7
|
import { withNpmrcHostRules } from "../npm/utils.js";
|
|
8
|
+
import { processHostRules } from "../npm/post-update/rules.js";
|
|
9
9
|
import { isEmptyArray } from "@sindresorhus/is";
|
|
10
10
|
import { quote } from "shlex";
|
|
11
11
|
import upath from "upath";
|
|
@@ -75,7 +75,7 @@ hashMap.set("mise", "3e68dcf95b79d51665c60edf565fd07f29f177f9a48129460e18fa16bd4
|
|
|
75
75
|
hashMap.set("mix", "0f79163dc2a1c896599d152be635c23beaf16812ae3d8fbfffec98c7bd0de872");
|
|
76
76
|
hashMap.set("nix", "9cbd96a29fe96e3df7418e422256380202f07970cf7f00b08388c181224a2b85");
|
|
77
77
|
hashMap.set("nodenv", "ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8");
|
|
78
|
-
hashMap.set("npm", "
|
|
78
|
+
hashMap.set("npm", "7b87ba7087d99dea194cc618426efd845bd400c1fb8fffe585e43ec3268c559c");
|
|
79
79
|
hashMap.set("nuget", "b81fb0ca6cfeb86b004592b38ce176673e056d6a2ed41a9807afb0eb7ad405d2");
|
|
80
80
|
hashMap.set("nvm", "3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322");
|
|
81
81
|
hashMap.set("ocb", "032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','a52394a36ac5517f7330473c31d93aa05b2ce607c5e951b48f25a4693cd20a81');\nhashMap.set('ansible-galaxy','0a264d6be73953d801510fdeff271e4071c274339569c6dab4e2a128eaf4869f');\nhashMap.set('ant','2df5943cf0ed19a21b94df13729dbb925655548130caf37e3e22bebaed518e17');\nhashMap.set('apm','bdb6931cc03f4ac02ebfdb56c4b3483bb6c5250fa952545f1a25584d502bbffd');\nhashMap.set('argocd','cff9cd22257bc460ae4b9936570bf0ed5585f280a55d26629deaeeb0bfee8eb5');\nhashMap.set('asdf','430eb99b58171700c8a59c78b9e648575e9b176b781d90dd10a710f7b69015bb');\nhashMap.set('azure-pipelines','04a13dec4e08ba21004961c718072fde976226d65809fa3c838bf66ba93e5d5a');\nhashMap.set('batect','375d39b432013bedb1330cf40a2199dd822751b28578214f219e7bab98594b8d');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c31bc0a0e23d32726bcc09aa67533ebc5058124bf89c88e09c837419f550801a');\nhashMap.set('bazel-module','9fbba0339f9f7785d52ab85c5f0f6385003093c063483c13feccba13ae438bef');\nhashMap.set('bazelisk','770f75a746dc6ba90c518788d5987d7df4243ef9eee122d1bb0556a93d6e1b11');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','b8b404f53cd5d61c39153fddf93945e621471c4ac6aa9960c881cd868922bb4c');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','5820cfb6ebe018b8c336d481ea9ae319daaee6a2e368c45196fc8bc67cb3e755');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','6e4784dd98c1f86ef64cc8cbf3128df48aebf920032d7792b54fdedd3dd9d4d5');\nhashMap.set('cake','9ebd8b481220b30a8860121d26184540a1a2fcc05ef780df9295dea39b386fad');\nhashMap.set('cargo','fe8136135c895dd08819f91a60cf105f8b951251b057092700101ace991ae1d7');\nhashMap.set('cdnurl','9a81c8e3c6ad6c788498c99fc1067ffdfcd92a427c3afaf8c0130975d83131f2');\nhashMap.set('circleci','91cbeb33ea20f9838e2c81a1195eb806f0b38fa282bc3679f62552f20575ca85');\nhashMap.set('cloudbuild','f4e40388944652c8a19f8518771ac8d3f3c4ccf81ddef0e68b463aca833cb73c');\nhashMap.set('cocoapods','f832e2beef885bb3fd697ed9bb3e8cd742926bfec37ff41212edd2dbb4edb3ba');\nhashMap.set('composer','f1294fb3866ff65a75d98fdef80b1df3d3a8856535b8c690d1799e1205e4b639');\nhashMap.set('conan','8d46e9a30ae628e26118aea10a98d1b846f7c5d96d51ce24693437d555f6d125');\nhashMap.set('copier','10ae4d7f8ff35faf3a3f9f25bf4c969ea960e19aaf8c012aee11f93f4d10533e');\nhashMap.set('cpanfile','07813fec3f3c2197056500e9266a0553b9774c02f2c74d5ca2e213188c7c12d3');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deno','05e7ab60494a20a5e7477f06a9e723e443d37643b6e1d9ba8d3d87126a051175');\nhashMap.set('deps-edn','06783dbc8b9c7bb84e162d1f75b7db56dfa021cc6f809dfd2314cee8b64af08d');\nhashMap.set('devbox','a40050cc61bd9b5d500ec111abb17bb15d5f82ab5b7699f66f628307ba8382c9');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','fba87b82cb0f2bfd66526631fbe928b8153e7ca701a5790d02b944df17417bb9');\nhashMap.set('dockerfile','b5faeb8f31d238e0d05a4aeebf9a837273687908ab8078b34e738bb0e369c80c');\nhashMap.set('droneci','661d2a2d7295af8dd7a1234c7090c42a89306bd574c3adf1fc67782efaad3998');\nhashMap.set('fleet','ffa222820f72c4eb4cdc4c229ae8c50433bee96f3b974f0633d5a7d1f6427c97');\nhashMap.set('flux','842597c9083d82af99ef3d526101a3a53c4448414d2f53f7e969074757124811');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','df8bb92b2906d8cddda2d4b302ee503f8002e3554d32d74cef2f584fe891f38f');\nhashMap.set('github-actions','7bd984806fa6e33e0650d2f65d88758a9f4b972f366c6cd7c7698e22e6fb3ca3');\nhashMap.set('gitlabci','a5e1e66ef461e1c1e71062f85f35a212417e23627f4b002810f9a98295d6e672');\nhashMap.set('gitlabci-include','8860a15ab516fde00694f9bd9bf56fce4addafe5a55b5ddb9a4ec477d301d351');\nhashMap.set('glasskube','93e7b9000a17efa15a1abaaf320b5af9169b1ecd828fc0c881d98570ef9d9e30');\nhashMap.set('gleam','5e9b9f5f914afe5ed7b526c06c65111e3716d2dea9b0cbe7907bbc96db1064a3');\nhashMap.set('gomod','7db21962e60c8b5da397dd9d01550a398675d81877a34b08f1ab2dc95a7c249a');\nhashMap.set('gradle','9e3ff52ce4ad2555929acdd4d32c417c4ef8714c23a92f2893ecc580fa4d6064');\nhashMap.set('gradle-wrapper','73ba30c34955fab7737454b5cff9aca6d1b5607d53c17c9e13d8ad96f6eaae87');\nhashMap.set('haskell-cabal','f158b7725e3143dfd2950e3de0bbccc2a61cd7eba87f7a54c5057e01252348e2');\nhashMap.set('helm-requirements','22f61344565f87ca3512c0ba8fac32627fde8ee919b7badae07b2116e285f049');\nhashMap.set('helm-values','0aa79bb0257d0d72e54dfd2653e59bfef63b97e46c035b7443593bdf6e6382aa');\nhashMap.set('helmfile','28572dd24b6746ca7065ee467aa13bbc8c3e8c0f88ae48e33bce88468c600100');\nhashMap.set('helmsman','951deeb3355da751ef39c9e932b26ea749450e32e75759e4b5fc29359e100b37');\nhashMap.set('helmv3','d4ede7d5e170dec2b63b7d14c38b83c7b0dd540a2fbf9363c41fed3dcd355447');\nhashMap.set('hermit','0fb25b7766c3a264fbb765ff75b1542b24136c4c9f933696d4a5aecfed637071');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','dffe954a4e18c2dc4bfdaa12222fe8ddc3395869afd5afa603fc2b6264747984');\nhashMap.set('html','81fa6c2bf2b868596584a48b949645207a2aa3081951ed99183ee50b70b77d5f');\nhashMap.set('jenkins','7fda0e7e0f3d5e18088ccb3594f727f4cfc48b064706bdaaf1a0a075b6a2cff5');\nhashMap.set('jsonnet-bundler','4cedeb0394e5c38361d1868ff45b4f34747ab8c492378b6e63dcaf1f4f3c024d');\nhashMap.set('kotlin-script','95ebc844c040ca047321b207d525220e29774a2a1fe06f9639e8353c66908564');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','706cc4776ad6ec4df5bed0ac84e8324ad7328457b6743b082e444d4770756604');\nhashMap.set('leiningen','c8397e376f1717c2f771ae9ea3ba6b720d2422b133cf937e762c44e42be146a2');\nhashMap.set('maven','c110b99291c2a5bc82cf7a69330275e9bbd7dc8ba3e9e987611dfcffbe002d8d');\nhashMap.set('maven-wrapper','6e53b6e4abf1d20b75094c7a70d66b4a5ac39954f009aa401f5e55dada8be4d0');\nhashMap.set('meteor','4636a47ba4dcfff19fe662572ef7a40d17146be3c966e00ef437e1fc8de92776');\nhashMap.set('mint','248fe4f1ea5c985921c286785792c97e06fc41f402b2d45df82f6aecd17f710e');\nhashMap.set('mise','3e68dcf95b79d51665c60edf565fd07f29f177f9a48129460e18fa16bd4c3963');\nhashMap.set('mix','0f79163dc2a1c896599d152be635c23beaf16812ae3d8fbfffec98c7bd0de872');\nhashMap.set('nix','9cbd96a29fe96e3df7418e422256380202f07970cf7f00b08388c181224a2b85');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','ed4988307cb65fda072a361c08251a0f9f2e8b3e4651aaf52635abcaea9047e9');\nhashMap.set('nuget','b81fb0ca6cfeb86b004592b38ce176673e056d6a2ed41a9807afb0eb7ad405d2');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','d6567a733ef3983112b46fdccd7ceebfcd48411104e0c6b6e714d4310db48024');\nhashMap.set('pep621','52450676f8b0e05134b3e8947b832195ef40bcaec1ce43d71351a2f797b80d75');\nhashMap.set('pep723','77022a0eae6a3cbb74a1e6d596db1276e379768e40448192b3fa81edd14ca73f');\nhashMap.set('pip-compile','a98dc76a002e1dc21662237f009ff8fea36236bb4e24cb82ee30c6a78f57271f');\nhashMap.set('pip_requirements','bf3a407f72abf711230247bef94ba5dc84c08a35107b0f017912fad66afa716a');\nhashMap.set('pip_setup','df18fba2bdcf48f3ca12a8f7e5cd28df31e2368d5528127277038ef4206eca79');\nhashMap.set('pipenv','baf237cd77173c1a7a9c7fa2a8bfb214f3c488ba0cc27f0e8f334df192e3a398');\nhashMap.set('pixi','e31c397982ffa34222b061f23f3b3683f42523dd5dca45ecce2448b0ebc55ea2');\nhashMap.set('poetry','e9dea5d591c87956b9f018414cb3dab8f2e13580a13be00550fdce198fdf08e6');\nhashMap.set('pre-commit','760f2c291ae084db889f722390798a0e2d431ccdc3bc676e73b14901ebea19ac');\nhashMap.set('proto','412053d4550026b4ace490b46e970915b87ec1abf0b0a0c6c8c58ccf1fc16843');\nhashMap.set('pub','8e7c65dfd1999de4f7c44392e949a4d8f4701eb86df59d550e4657feb06b1872');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','40927b98dd2bac45dba60e66b5fd0e6b84b61d02db8be536fda7b14546a4feb7');\nhashMap.set('renovate-config','dfaf3f03ddaf70c332f7916106648f36dbfa6a36dd76d15dd27fa116ab3c174c');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('rust-toolchain','6ace53db02874d73620d2d872291839820a512a9529c42d174358c692e5db720');\nhashMap.set('sbt','e1eb5c7f0171a9bb1b6bd4a36a91039a31b6c84e0983d91d930be31a69506d9e');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','4a3a7c812d34739c07685691e7e64c7d3127f9d7d4aff99dc45a25df97ed9745');\nhashMap.set('smithy','9641b91d065ffb63be0dd888139a0402dba41e550f8b44c592db9daf52109100');\nhashMap.set('sveltos','60dd75bb53ace31217211100d622fdb65068c6162758b6ae7103a6ce8bdc9f90');\nhashMap.set('swift','cdf063debdbf36888523ff8cec6d2d1b0ec6f49b37b2fbcd80b0d4f6a31114e1');\nhashMap.set('tekton','33948f5bdf7553909fa63744adb26da97ddf366e9499bccab1250879570267c9');\nhashMap.set('terraform','6788a8569ba9c50c763ffa2bed952a4314ae8e696c29f93d3eb7c4a12d99ce20');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','300f8fb3c09667654412d2f5dd8ab4882e0f5d1d7a8bc39794993d2e7e58d1b7');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','f423bfa2b42a2bfc0e38a33ebd4f9d452473e7ed4e7ad6384a99eb9a35d97479');\nhashMap.set('travis','f3e2f38e699c390b00ff481be5e91dceaa81609e93caf9a4214933de759c84fc');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','7db907b3b77ef5f3465f3c4339fbab56bbcdfd1bf34b3d33e4c178d2e07e23e7');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','416bcf61144b276b3112814c6e6d261aa29608f46fbb0516c471d35c16f8f0d7');\nhashMap.set('regex','20be5247fdc164173871a051acb0527da017d0c155c653d7563601f55e7b3ff5');"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','a52394a36ac5517f7330473c31d93aa05b2ce607c5e951b48f25a4693cd20a81');\nhashMap.set('ansible-galaxy','0a264d6be73953d801510fdeff271e4071c274339569c6dab4e2a128eaf4869f');\nhashMap.set('ant','2df5943cf0ed19a21b94df13729dbb925655548130caf37e3e22bebaed518e17');\nhashMap.set('apm','bdb6931cc03f4ac02ebfdb56c4b3483bb6c5250fa952545f1a25584d502bbffd');\nhashMap.set('argocd','cff9cd22257bc460ae4b9936570bf0ed5585f280a55d26629deaeeb0bfee8eb5');\nhashMap.set('asdf','430eb99b58171700c8a59c78b9e648575e9b176b781d90dd10a710f7b69015bb');\nhashMap.set('azure-pipelines','04a13dec4e08ba21004961c718072fde976226d65809fa3c838bf66ba93e5d5a');\nhashMap.set('batect','375d39b432013bedb1330cf40a2199dd822751b28578214f219e7bab98594b8d');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c31bc0a0e23d32726bcc09aa67533ebc5058124bf89c88e09c837419f550801a');\nhashMap.set('bazel-module','9fbba0339f9f7785d52ab85c5f0f6385003093c063483c13feccba13ae438bef');\nhashMap.set('bazelisk','770f75a746dc6ba90c518788d5987d7df4243ef9eee122d1bb0556a93d6e1b11');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','b8b404f53cd5d61c39153fddf93945e621471c4ac6aa9960c881cd868922bb4c');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','5820cfb6ebe018b8c336d481ea9ae319daaee6a2e368c45196fc8bc67cb3e755');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','6e4784dd98c1f86ef64cc8cbf3128df48aebf920032d7792b54fdedd3dd9d4d5');\nhashMap.set('cake','9ebd8b481220b30a8860121d26184540a1a2fcc05ef780df9295dea39b386fad');\nhashMap.set('cargo','fe8136135c895dd08819f91a60cf105f8b951251b057092700101ace991ae1d7');\nhashMap.set('cdnurl','9a81c8e3c6ad6c788498c99fc1067ffdfcd92a427c3afaf8c0130975d83131f2');\nhashMap.set('circleci','91cbeb33ea20f9838e2c81a1195eb806f0b38fa282bc3679f62552f20575ca85');\nhashMap.set('cloudbuild','f4e40388944652c8a19f8518771ac8d3f3c4ccf81ddef0e68b463aca833cb73c');\nhashMap.set('cocoapods','f832e2beef885bb3fd697ed9bb3e8cd742926bfec37ff41212edd2dbb4edb3ba');\nhashMap.set('composer','f1294fb3866ff65a75d98fdef80b1df3d3a8856535b8c690d1799e1205e4b639');\nhashMap.set('conan','8d46e9a30ae628e26118aea10a98d1b846f7c5d96d51ce24693437d555f6d125');\nhashMap.set('copier','10ae4d7f8ff35faf3a3f9f25bf4c969ea960e19aaf8c012aee11f93f4d10533e');\nhashMap.set('cpanfile','07813fec3f3c2197056500e9266a0553b9774c02f2c74d5ca2e213188c7c12d3');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deno','05e7ab60494a20a5e7477f06a9e723e443d37643b6e1d9ba8d3d87126a051175');\nhashMap.set('deps-edn','06783dbc8b9c7bb84e162d1f75b7db56dfa021cc6f809dfd2314cee8b64af08d');\nhashMap.set('devbox','a40050cc61bd9b5d500ec111abb17bb15d5f82ab5b7699f66f628307ba8382c9');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','fba87b82cb0f2bfd66526631fbe928b8153e7ca701a5790d02b944df17417bb9');\nhashMap.set('dockerfile','b5faeb8f31d238e0d05a4aeebf9a837273687908ab8078b34e738bb0e369c80c');\nhashMap.set('droneci','661d2a2d7295af8dd7a1234c7090c42a89306bd574c3adf1fc67782efaad3998');\nhashMap.set('fleet','ffa222820f72c4eb4cdc4c229ae8c50433bee96f3b974f0633d5a7d1f6427c97');\nhashMap.set('flux','842597c9083d82af99ef3d526101a3a53c4448414d2f53f7e969074757124811');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','df8bb92b2906d8cddda2d4b302ee503f8002e3554d32d74cef2f584fe891f38f');\nhashMap.set('github-actions','7bd984806fa6e33e0650d2f65d88758a9f4b972f366c6cd7c7698e22e6fb3ca3');\nhashMap.set('gitlabci','a5e1e66ef461e1c1e71062f85f35a212417e23627f4b002810f9a98295d6e672');\nhashMap.set('gitlabci-include','8860a15ab516fde00694f9bd9bf56fce4addafe5a55b5ddb9a4ec477d301d351');\nhashMap.set('glasskube','93e7b9000a17efa15a1abaaf320b5af9169b1ecd828fc0c881d98570ef9d9e30');\nhashMap.set('gleam','5e9b9f5f914afe5ed7b526c06c65111e3716d2dea9b0cbe7907bbc96db1064a3');\nhashMap.set('gomod','7db21962e60c8b5da397dd9d01550a398675d81877a34b08f1ab2dc95a7c249a');\nhashMap.set('gradle','9e3ff52ce4ad2555929acdd4d32c417c4ef8714c23a92f2893ecc580fa4d6064');\nhashMap.set('gradle-wrapper','73ba30c34955fab7737454b5cff9aca6d1b5607d53c17c9e13d8ad96f6eaae87');\nhashMap.set('haskell-cabal','f158b7725e3143dfd2950e3de0bbccc2a61cd7eba87f7a54c5057e01252348e2');\nhashMap.set('helm-requirements','22f61344565f87ca3512c0ba8fac32627fde8ee919b7badae07b2116e285f049');\nhashMap.set('helm-values','0aa79bb0257d0d72e54dfd2653e59bfef63b97e46c035b7443593bdf6e6382aa');\nhashMap.set('helmfile','28572dd24b6746ca7065ee467aa13bbc8c3e8c0f88ae48e33bce88468c600100');\nhashMap.set('helmsman','951deeb3355da751ef39c9e932b26ea749450e32e75759e4b5fc29359e100b37');\nhashMap.set('helmv3','d4ede7d5e170dec2b63b7d14c38b83c7b0dd540a2fbf9363c41fed3dcd355447');\nhashMap.set('hermit','0fb25b7766c3a264fbb765ff75b1542b24136c4c9f933696d4a5aecfed637071');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','dffe954a4e18c2dc4bfdaa12222fe8ddc3395869afd5afa603fc2b6264747984');\nhashMap.set('html','81fa6c2bf2b868596584a48b949645207a2aa3081951ed99183ee50b70b77d5f');\nhashMap.set('jenkins','7fda0e7e0f3d5e18088ccb3594f727f4cfc48b064706bdaaf1a0a075b6a2cff5');\nhashMap.set('jsonnet-bundler','4cedeb0394e5c38361d1868ff45b4f34747ab8c492378b6e63dcaf1f4f3c024d');\nhashMap.set('kotlin-script','95ebc844c040ca047321b207d525220e29774a2a1fe06f9639e8353c66908564');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','706cc4776ad6ec4df5bed0ac84e8324ad7328457b6743b082e444d4770756604');\nhashMap.set('leiningen','c8397e376f1717c2f771ae9ea3ba6b720d2422b133cf937e762c44e42be146a2');\nhashMap.set('maven','c110b99291c2a5bc82cf7a69330275e9bbd7dc8ba3e9e987611dfcffbe002d8d');\nhashMap.set('maven-wrapper','6e53b6e4abf1d20b75094c7a70d66b4a5ac39954f009aa401f5e55dada8be4d0');\nhashMap.set('meteor','4636a47ba4dcfff19fe662572ef7a40d17146be3c966e00ef437e1fc8de92776');\nhashMap.set('mint','248fe4f1ea5c985921c286785792c97e06fc41f402b2d45df82f6aecd17f710e');\nhashMap.set('mise','3e68dcf95b79d51665c60edf565fd07f29f177f9a48129460e18fa16bd4c3963');\nhashMap.set('mix','0f79163dc2a1c896599d152be635c23beaf16812ae3d8fbfffec98c7bd0de872');\nhashMap.set('nix','9cbd96a29fe96e3df7418e422256380202f07970cf7f00b08388c181224a2b85');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','7b87ba7087d99dea194cc618426efd845bd400c1fb8fffe585e43ec3268c559c');\nhashMap.set('nuget','b81fb0ca6cfeb86b004592b38ce176673e056d6a2ed41a9807afb0eb7ad405d2');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','d6567a733ef3983112b46fdccd7ceebfcd48411104e0c6b6e714d4310db48024');\nhashMap.set('pep621','52450676f8b0e05134b3e8947b832195ef40bcaec1ce43d71351a2f797b80d75');\nhashMap.set('pep723','77022a0eae6a3cbb74a1e6d596db1276e379768e40448192b3fa81edd14ca73f');\nhashMap.set('pip-compile','a98dc76a002e1dc21662237f009ff8fea36236bb4e24cb82ee30c6a78f57271f');\nhashMap.set('pip_requirements','bf3a407f72abf711230247bef94ba5dc84c08a35107b0f017912fad66afa716a');\nhashMap.set('pip_setup','df18fba2bdcf48f3ca12a8f7e5cd28df31e2368d5528127277038ef4206eca79');\nhashMap.set('pipenv','baf237cd77173c1a7a9c7fa2a8bfb214f3c488ba0cc27f0e8f334df192e3a398');\nhashMap.set('pixi','e31c397982ffa34222b061f23f3b3683f42523dd5dca45ecce2448b0ebc55ea2');\nhashMap.set('poetry','e9dea5d591c87956b9f018414cb3dab8f2e13580a13be00550fdce198fdf08e6');\nhashMap.set('pre-commit','760f2c291ae084db889f722390798a0e2d431ccdc3bc676e73b14901ebea19ac');\nhashMap.set('proto','412053d4550026b4ace490b46e970915b87ec1abf0b0a0c6c8c58ccf1fc16843');\nhashMap.set('pub','8e7c65dfd1999de4f7c44392e949a4d8f4701eb86df59d550e4657feb06b1872');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','40927b98dd2bac45dba60e66b5fd0e6b84b61d02db8be536fda7b14546a4feb7');\nhashMap.set('renovate-config','dfaf3f03ddaf70c332f7916106648f36dbfa6a36dd76d15dd27fa116ab3c174c');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('rust-toolchain','6ace53db02874d73620d2d872291839820a512a9529c42d174358c692e5db720');\nhashMap.set('sbt','e1eb5c7f0171a9bb1b6bd4a36a91039a31b6c84e0983d91d930be31a69506d9e');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','4a3a7c812d34739c07685691e7e64c7d3127f9d7d4aff99dc45a25df97ed9745');\nhashMap.set('smithy','9641b91d065ffb63be0dd888139a0402dba41e550f8b44c592db9daf52109100');\nhashMap.set('sveltos','60dd75bb53ace31217211100d622fdb65068c6162758b6ae7103a6ce8bdc9f90');\nhashMap.set('swift','cdf063debdbf36888523ff8cec6d2d1b0ec6f49b37b2fbcd80b0d4f6a31114e1');\nhashMap.set('tekton','33948f5bdf7553909fa63744adb26da97ddf366e9499bccab1250879570267c9');\nhashMap.set('terraform','6788a8569ba9c50c763ffa2bed952a4314ae8e696c29f93d3eb7c4a12d99ce20');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','300f8fb3c09667654412d2f5dd8ab4882e0f5d1d7a8bc39794993d2e7e58d1b7');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','f423bfa2b42a2bfc0e38a33ebd4f9d452473e7ed4e7ad6384a99eb9a35d97479');\nhashMap.set('travis','f3e2f38e699c390b00ff481be5e91dceaa81609e93caf9a4214933de759c84fc');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','7db907b3b77ef5f3465f3c4339fbab56bbcdfd1bf34b3d33e4c178d2e07e23e7');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','416bcf61144b276b3112814c6e6d261aa29608f46fbb0516c471d35c16f8f0d7');\nhashMap.set('regex','20be5247fdc164173871a051acb0527da017d0c155c653d7563601f55e7b3ff5');"],"mappings":"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"}
|
|
@@ -2,79 +2,59 @@ import { coerceObject } from "../../../util/object.js";
|
|
|
2
2
|
import { regEx } from "../../../util/regex.js";
|
|
3
3
|
import { matchRegexOrGlob } from "../../../util/string-match.js";
|
|
4
4
|
import { logger } from "../../../logger/index.js";
|
|
5
|
-
import {
|
|
6
|
-
import { exec } from "../../../util/exec/index.js";
|
|
7
|
-
import { resolveToolConstraint } from "../util.js";
|
|
8
|
-
import { PNPM_CACHE_DIR, PNPM_STORE_DIR } from "./constants.js";
|
|
9
|
-
import { getNodeToolConstraint } from "./post-update/node-version.js";
|
|
10
|
-
import { processHostRules } from "./post-update/rules.js";
|
|
11
|
-
import { withNpmrcHostRules } from "./utils.js";
|
|
12
|
-
import { lazyLoadPackageJson } from "./post-update/utils.js";
|
|
5
|
+
import { localPathExists, readLocalFile, writeLocalFile } from "../../../util/fs/index.js";
|
|
13
6
|
import { isEmptyArray, isNonEmptyObject, isString } from "@sindresorhus/is";
|
|
14
7
|
import { isScalar, isSeq, parseDocument } from "yaml";
|
|
15
|
-
import { quote } from "shlex";
|
|
16
8
|
import upath from "upath";
|
|
17
9
|
//#region lib/modules/manager/npm/artifacts.ts
|
|
18
10
|
const versionWithHashRegString = "^(?<version>.*)\\+(?<hash>.*)";
|
|
11
|
+
const sriRegString = "^(?<algo>sha\\d+)-(?<hash>[A-Za-z0-9+/]+={0,2})$";
|
|
12
|
+
const packageManagerFieldRegString = "(\"packageManager\"\\s*:\\s*\")[^\"]*\"";
|
|
19
13
|
async function updateArtifacts(updateArtifactsConfig) {
|
|
20
14
|
logger.debug(`npm.updateArtifacts(${updateArtifactsConfig.packageFileName})`);
|
|
21
15
|
let res = [];
|
|
22
|
-
res.push(coerceObject(
|
|
16
|
+
res.push(coerceObject(handlePackageManagerUpdates(updateArtifactsConfig)));
|
|
23
17
|
res.push(coerceObject(await updatePnpmWorkspace(updateArtifactsConfig)));
|
|
24
18
|
res = res.filter(isNonEmptyObject);
|
|
25
19
|
if (res.length === 0) return null;
|
|
26
20
|
return res;
|
|
27
21
|
}
|
|
28
|
-
|
|
29
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Updates the corepack hash of the `packageManager` field from the new version's integrity digest.
|
|
24
|
+
* @see https://github.com/nodejs/corepack/blob/57bfb67b062ea1b8746b302bcdbf9f8e8438c526/sources/corepackUtils.ts#L300
|
|
25
|
+
*/
|
|
26
|
+
function handlePackageManagerUpdates(updateArtifactsConfig) {
|
|
27
|
+
const { packageFileName, updatedDeps, newPackageFileContent } = updateArtifactsConfig;
|
|
30
28
|
const packageManagerUpdate = updatedDeps.find((dep) => dep.depType === "packageManager");
|
|
31
29
|
if (!packageManagerUpdate) {
|
|
32
30
|
logger.debug("No packageManager updates - returning null");
|
|
33
31
|
return null;
|
|
34
32
|
}
|
|
35
|
-
const { currentValue, depName, newVersion } = packageManagerUpdate;
|
|
33
|
+
const { currentValue, depName, newVersion, newDigest } = packageManagerUpdate;
|
|
36
34
|
if (!currentValue || !regEx(versionWithHashRegString).test(currentValue)) return null;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
try {
|
|
61
|
-
await exec(cmd, execOptions);
|
|
62
|
-
const newPackageFileContent = await readLocalFile(packageFileName, "utf8");
|
|
63
|
-
if (!newPackageFileContent || existingPackageFileContent === newPackageFileContent) return null;
|
|
64
|
-
logger.debug("Returning updated package.json");
|
|
65
|
-
return { file: {
|
|
66
|
-
type: "addition",
|
|
67
|
-
path: packageFileName,
|
|
68
|
-
contents: newPackageFileContent
|
|
69
|
-
} };
|
|
70
|
-
} catch (err) {
|
|
71
|
-
logger.warn({ err }, "Error updating package.json");
|
|
72
|
-
return { artifactError: {
|
|
73
|
-
fileName: packageFileName,
|
|
74
|
-
stderr: err.message
|
|
75
|
-
} };
|
|
76
|
-
}
|
|
77
|
-
});
|
|
35
|
+
const sriMatch = regEx(sriRegString).exec(newDigest ?? "");
|
|
36
|
+
if (!sriMatch?.groups) {
|
|
37
|
+
logger.warn({
|
|
38
|
+
packageFileName,
|
|
39
|
+
depName,
|
|
40
|
+
newVersion,
|
|
41
|
+
newDigest
|
|
42
|
+
}, "Cannot update packageManager hash: no valid digest available");
|
|
43
|
+
return { artifactError: {
|
|
44
|
+
fileName: packageFileName,
|
|
45
|
+
stderr: `Cannot update packageManager hash for ${depName}@${newVersion}: no valid digest available`
|
|
46
|
+
} };
|
|
47
|
+
}
|
|
48
|
+
const { algo, hash } = sriMatch.groups;
|
|
49
|
+
const newPackageManagerValue = `${depName}@${newVersion}+${algo}.${Buffer.from(hash, "base64").toString("hex")}`;
|
|
50
|
+
const newContent = newPackageFileContent.replace(regEx(packageManagerFieldRegString), `$1${newPackageManagerValue}"`);
|
|
51
|
+
if (newContent === newPackageFileContent) return null;
|
|
52
|
+
logger.debug("Returning updated package.json");
|
|
53
|
+
return { file: {
|
|
54
|
+
type: "addition",
|
|
55
|
+
path: packageFileName,
|
|
56
|
+
contents: newContent
|
|
57
|
+
} };
|
|
78
58
|
}
|
|
79
59
|
/**
|
|
80
60
|
* Update the minimumReleaseAgeExclude setting in pnpm-workspace.yaml if needed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.js","names":[],"sources":["../../../../lib/modules/manager/npm/artifacts.ts"],"sourcesContent":["import { isEmptyArray, isNonEmptyObject, isString } from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport upath from 'upath';\nimport type { Scalar, YAMLSeq } from 'yaml';\nimport { isScalar, isSeq, parseDocument } from 'yaml';\nimport { logger } from '../../../logger/index.ts';\nimport { exec } from '../../../util/exec/index.ts';\nimport type { ExecOptions } from '../../../util/exec/types.ts';\nimport {\n ensureCacheDir,\n localPathExists,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs/index.ts';\nimport { coerceObject } from '../../../util/object.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { matchRegexOrGlob } from '../../../util/string-match.ts';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types.ts';\nimport { resolveToolConstraint } from '../util.ts';\nimport { PNPM_CACHE_DIR, PNPM_STORE_DIR } from './constants.ts';\nimport { getNodeToolConstraint } from './post-update/node-version.ts';\nimport { processHostRules } from './post-update/rules.ts';\nimport { lazyLoadPackageJson } from './post-update/utils.ts';\nimport { withNpmrcHostRules } from './utils.ts';\n\n// eg. 8.15.5+sha256.4b4efa12490e5055d59b9b9fc9438b7d581a6b7af3b5675eb5c5f447cee1a589\nconst versionWithHashRegString = '^(?<version>.*)\\\\+(?<hash>.*)';\n\n// Execute 'corepack use' command for npm manager updates\n// This step is necessary because Corepack recommends attaching a hash after the version\n// The hash is generated only after running 'corepack use' and cannot be fetched from the npm registry\nexport async function updateArtifacts(\n updateArtifactsConfig: UpdateArtifact,\n): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`npm.updateArtifacts(${updateArtifactsConfig.packageFileName})`);\n let res: UpdateArtifactsResult[] = [];\n res.push(\n coerceObject(await handlePackageManagerUpdates(updateArtifactsConfig)),\n );\n res.push(coerceObject(await updatePnpmWorkspace(updateArtifactsConfig)));\n\n res = res.filter(isNonEmptyObject);\n if (res.length === 0) {\n return null;\n }\n\n return res;\n}\n\nasync function handlePackageManagerUpdates(\n updateArtifactsConfig: UpdateArtifact,\n): Promise<UpdateArtifactsResult | null> {\n const {\n packageFileName,\n config,\n updatedDeps,\n newPackageFileContent: existingPackageFileContent,\n } = updateArtifactsConfig;\n const packageManagerUpdate = updatedDeps.find(\n (dep) => dep.depType === 'packageManager',\n );\n\n if (!packageManagerUpdate) {\n logger.debug('No packageManager updates - returning null');\n return null;\n }\n\n const { currentValue, depName, newVersion } = packageManagerUpdate;\n\n // Execute 'corepack use' command only if the currentValue already has hash in it\n if (!currentValue || !regEx(versionWithHashRegString).test(currentValue)) {\n return null;\n }\n\n // write old updates before executing corepack update so that they are not removed from package file\n await writeLocalFile(packageFileName, existingPackageFileContent);\n\n // Asumming that corepack only needs to modify the package.json file in the root folder\n // As it should not be regular practice to have different package managers in different workspaces\n const pkgFileDir = upath.dirname(packageFileName);\n const { additionalNpmrcContent } = processHostRules();\n const lazyPkgJson = lazyLoadPackageJson(pkgFileDir);\n const cmd = `corepack use ${quote(`${depName}@${newVersion}`)}`;\n\n const nodeConstraints = await getNodeToolConstraint(\n config,\n updatedDeps,\n pkgFileDir,\n lazyPkgJson,\n );\n\n const pnpmConfigCacheDir = await ensureCacheDir(PNPM_CACHE_DIR);\n const pnpmConfigStoreDir = await ensureCacheDir(PNPM_STORE_DIR);\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n extraEnv: {\n // To make sure pnpm store location is consistent between \"corepack use\"\n // here and the pnpm commands in ./post-update/pnpm.ts. Check\n // ./post-update/pnpm.ts for more details.\n npm_config_cache_dir: pnpmConfigCacheDir,\n npm_config_store_dir: pnpmConfigStoreDir,\n pnpm_config_cache_dir: pnpmConfigCacheDir,\n pnpm_config_store_dir: pnpmConfigStoreDir,\n },\n toolConstraints: [\n nodeConstraints,\n {\n toolName: 'corepack',\n constraint: await resolveToolConstraint(config, 'corepack'),\n },\n ],\n docker: {},\n };\n\n return await withNpmrcHostRules(\n pkgFileDir,\n additionalNpmrcContent,\n async () => {\n try {\n await exec(cmd, execOptions);\n const newPackageFileContent = await readLocalFile(\n packageFileName,\n 'utf8',\n );\n if (\n !newPackageFileContent ||\n existingPackageFileContent === newPackageFileContent\n ) {\n return null;\n }\n logger.debug('Returning updated package.json');\n return {\n file: {\n type: 'addition',\n path: packageFileName,\n contents: newPackageFileContent,\n },\n };\n } catch (err) {\n logger.warn({ err }, 'Error updating package.json');\n return {\n artifactError: {\n fileName: packageFileName,\n stderr: err.message,\n },\n };\n }\n },\n );\n}\n\n/**\n * Update the minimumReleaseAgeExclude setting in pnpm-workspace.yaml if needed\n */\nasync function updatePnpmWorkspace(\n updateArtifactsConfig: UpdateArtifact,\n): Promise<UpdateArtifactsResult | null> {\n const upgrades = updateArtifactsConfig.updatedDeps.filter(\n (u) => u.isVulnerabilityAlert,\n );\n // return early if no security updates are present\n if (isEmptyArray(upgrades)) {\n return null;\n }\n\n const pnpmLockFile = upgrades[0].managerData?.pnpmLockFile;\n if (!isString(pnpmLockFile)) {\n logger.debug(\n 'No pnpm shrinkwrap found, not attempting to update pnpm-workspace.yaml',\n );\n return null;\n }\n const lockFileDir = upath.dirname(pnpmLockFile);\n const pnpmWorkspaceFilePath = upath.join(lockFileDir, 'pnpm-workspace.yaml');\n\n if (!(await localPathExists(pnpmWorkspaceFilePath))) {\n return null;\n }\n\n // use already-updated content when updating the workspace file itself\n const packageFileContent =\n updateArtifactsConfig.packageFileName === pnpmWorkspaceFilePath\n ? updateArtifactsConfig.newPackageFileContent\n : (await readLocalFile(pnpmWorkspaceFilePath, 'utf8'))!;\n const doc = parseDocument(packageFileContent);\n\n if (!doc.get('minimumReleaseAge')) {\n return null;\n }\n\n let updated = false;\n\n for (const upgrade of upgrades) {\n let excludeNode = doc.getIn(['minimumReleaseAgeExclude']) as YAMLSeq | null;\n // v8 ignore next -- TODO: add test #40625\n const newVersion = upgrade.newVersion ?? upgrade.newValue;\n // For pnpm overrides with range selectors (e.g. \"pkg@<=1.0.0\"), depName contains\n // the full key including the selector. Use packageName (bare package name) for\n // minimumReleaseAgeExclude entries which require exact versions only.\n const excludeDepName = upgrade.packageName ?? upgrade.depName;\n\n /* v8 ignore if -- should not happen, adding for type narrowing*/\n if (excludeNode && !isSeq(excludeNode)) {\n return null;\n }\n\n if (!excludeNode) {\n logger.debug('Adding new exclude block');\n excludeNode = doc.createNode([]);\n const newItem = doc.createNode(`${excludeDepName}@${newVersion}`);\n newItem.commentBefore = ` Renovate security update: ${excludeDepName}@${newVersion}`;\n excludeNode.items.push(newItem);\n doc.set('minimumReleaseAgeExclude', excludeNode);\n updated = true;\n continue;\n }\n\n const {\n item: matchedItem,\n allExcluded,\n malformed,\n } = getMatchedItem(excludeDepName!, excludeNode.items);\n\n if (allExcluded) {\n // still clean up any malformed entries even when a wildcard covers the package\n } else if (malformed && isScalar<string>(matchedItem)) {\n logger.debug(\n { entry: matchedItem.value, excludeDepName, newVersion },\n 'Replacing malformed minimumReleaseAgeExclude entry',\n );\n matchedItem.value = `${excludeDepName}@${newVersion}`;\n matchedItem.commentBefore = ` Renovate security update: ${excludeDepName}@${newVersion}`;\n updated = true;\n } else if (isScalar<string>(matchedItem)) {\n // if we have a comment before the list, which includes the dependency\n if (excludeNode?.commentBefore?.includes(`${excludeDepName}@`)) {\n // and it doesn't already have the version included in it\n if (\n !minimumReleaseAgeExcludeIncludesDepNameAndVersion(\n excludeNode.commentBefore,\n excludeDepName,\n newVersion,\n )\n ) {\n // then append it\n\n // normalize value (no quote handling needed)\n excludeNode.commentBefore = `${excludeNode.commentBefore} || ${newVersion}`;\n updated = true;\n }\n }\n // otherwise, if it's in our matched item's comment\n else if (matchedItem.commentBefore) {\n // add it\n if (\n !minimumReleaseAgeExcludeIncludesDepNameAndVersion(\n matchedItem.commentBefore,\n excludeDepName,\n newVersion,\n )\n ) {\n // normalize value (no quote handling needed)\n matchedItem.commentBefore = `${matchedItem.commentBefore} || ${newVersion}`;\n updated = true;\n }\n } else {\n matchedItem.commentBefore = ` Renovate security update: ${excludeDepName}@${newVersion}`;\n updated = true;\n }\n\n if (\n !minimumReleaseAgeExcludeIncludesDepNameAndVersion(\n matchedItem.value,\n excludeDepName,\n newVersion,\n )\n ) {\n matchedItem.value = `${matchedItem.value} || ${newVersion}`;\n updated = true;\n }\n } else {\n // add new entry\n const newItem = doc.createNode(`${excludeDepName}@${newVersion}`);\n newItem.commentBefore = ` Renovate security update: ${excludeDepName}@${newVersion}`;\n\n excludeNode.items.push(newItem);\n updated = true;\n }\n\n // Remove any malformed entries for the same package left over from the prior bug\n for (let i = excludeNode.items.length - 1; i >= 0; i--) {\n const item = excludeNode.items[i];\n if (\n item !== matchedItem &&\n isScalar(item) &&\n isString(item.value) &&\n item.value.startsWith(`${excludeDepName}@`) &&\n !isValidMinimumReleaseAgeExcludeEntry(item.value, excludeDepName!)\n ) {\n excludeNode.items.splice(i, 1);\n updated = true;\n }\n }\n }\n\n if (!updated) {\n return null;\n }\n\n const newContent = doc.toString();\n await writeLocalFile(pnpmWorkspaceFilePath, newContent);\n\n return {\n file: {\n type: 'addition',\n path: pnpmWorkspaceFilePath,\n contents: newContent,\n },\n };\n}\n\nfunction getMatchedItem(\n depName: string,\n items: unknown[],\n): {\n item: Scalar | null;\n allExcluded: boolean;\n malformed?: boolean;\n} {\n let malformedItem: Scalar | null = null;\n\n for (const item of items) {\n /* v8 ignore if -- should not happen */\n if (!isScalar(item) || !isString(item.value)) {\n continue;\n }\n\n if (item.value.startsWith(`${depName}@`)) {\n if (isValidMinimumReleaseAgeExcludeEntry(item.value, depName)) {\n return {\n allExcluded: false,\n item,\n };\n }\n malformedItem ??= item;\n continue;\n }\n\n if (item.value === depName || matchRegexOrGlob(depName, item.value)) {\n return {\n allExcluded: true,\n item,\n };\n }\n }\n\n if (malformedItem) {\n return {\n allExcluded: false,\n item: malformedItem,\n malformed: true,\n };\n }\n\n return {\n item: null,\n allExcluded: false,\n };\n}\n\n/** pnpm requires package@version entries without range selectors or extra @ in the version part */\nfunction isValidMinimumReleaseAgeExcludeEntry(\n value: string,\n packageName: string,\n): boolean {\n return !value.slice(`${packageName}@`.length).includes('@');\n}\n\n/** determine whether a comment or a list item contains the depName at a given newVersion */\nfunction minimumReleaseAgeExcludeIncludesDepNameAndVersion(\n line: string,\n depName: string | undefined,\n newVersion: string | undefined,\n): boolean {\n if (line.includes(`${depName}@${newVersion}`)) {\n return true;\n }\n\n if (line.includes(`|| ${newVersion}`)) {\n return true;\n }\n\n return false;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"artifacts.js","names":[],"sources":["../../../../lib/modules/manager/npm/artifacts.ts"],"sourcesContent":["import { isEmptyArray, isNonEmptyObject, isString } from '@sindresorhus/is';\nimport upath from 'upath';\nimport type { Scalar, YAMLSeq } from 'yaml';\nimport { isScalar, isSeq, parseDocument } from 'yaml';\nimport { logger } from '../../../logger/index.ts';\nimport {\n localPathExists,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs/index.ts';\nimport { coerceObject } from '../../../util/object.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { matchRegexOrGlob } from '../../../util/string-match.ts';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types.ts';\n\n// eg. 8.15.5+sha256.4b4efa12490e5055d59b9b9fc9438b7d581a6b7af3b5675eb5c5f447cee1a589\nconst versionWithHashRegString = '^(?<version>.*)\\\\+(?<hash>.*)';\n\n// Matches a Subresource Integrity string, eg. sha512-<base64 digest>\nconst sriRegString = '^(?<algo>sha\\\\d+)-(?<hash>[A-Za-z0-9+/]+={0,2})$';\n\nconst packageManagerFieldRegString = '(\"packageManager\"\\\\s*:\\\\s*\")[^\"]*\"';\n\nexport async function updateArtifacts(\n updateArtifactsConfig: UpdateArtifact,\n): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`npm.updateArtifacts(${updateArtifactsConfig.packageFileName})`);\n let res: UpdateArtifactsResult[] = [];\n res.push(coerceObject(handlePackageManagerUpdates(updateArtifactsConfig)));\n res.push(coerceObject(await updatePnpmWorkspace(updateArtifactsConfig)));\n\n res = res.filter(isNonEmptyObject);\n if (res.length === 0) {\n return null;\n }\n\n return res;\n}\n\n/**\n * Updates the corepack hash of the `packageManager` field from the new version's integrity digest.\n * @see https://github.com/nodejs/corepack/blob/57bfb67b062ea1b8746b302bcdbf9f8e8438c526/sources/corepackUtils.ts#L300\n */\nfunction handlePackageManagerUpdates(\n updateArtifactsConfig: UpdateArtifact,\n): UpdateArtifactsResult | null {\n const { packageFileName, updatedDeps, newPackageFileContent } =\n updateArtifactsConfig;\n const packageManagerUpdate = updatedDeps.find(\n (dep) => dep.depType === 'packageManager',\n );\n\n if (!packageManagerUpdate) {\n logger.debug('No packageManager updates - returning null');\n return null;\n }\n\n const { currentValue, depName, newVersion, newDigest } = packageManagerUpdate;\n\n // Only rewrite the hash if the current value already has one\n if (!currentValue || !regEx(versionWithHashRegString).test(currentValue)) {\n return null;\n }\n\n const sriMatch = regEx(sriRegString).exec(newDigest ?? '');\n if (!sriMatch?.groups) {\n logger.warn(\n { packageFileName, depName, newVersion, newDigest },\n 'Cannot update packageManager hash: no valid digest available',\n );\n return {\n artifactError: {\n fileName: packageFileName,\n stderr: `Cannot update packageManager hash for ${depName}@${newVersion}: no valid digest available`,\n },\n };\n }\n\n const { algo, hash } = sriMatch.groups;\n const hexHash = Buffer.from(hash, 'base64').toString('hex');\n const newPackageManagerValue = `${depName}@${newVersion}+${algo}.${hexHash}`;\n\n const newContent = newPackageFileContent.replace(\n regEx(packageManagerFieldRegString),\n `$1${newPackageManagerValue}\"`,\n );\n\n if (newContent === newPackageFileContent) {\n return null;\n }\n\n logger.debug('Returning updated package.json');\n return {\n file: {\n type: 'addition',\n path: packageFileName,\n contents: newContent,\n },\n };\n}\n\n/**\n * Update the minimumReleaseAgeExclude setting in pnpm-workspace.yaml if needed\n */\nasync function updatePnpmWorkspace(\n updateArtifactsConfig: UpdateArtifact,\n): Promise<UpdateArtifactsResult | null> {\n const upgrades = updateArtifactsConfig.updatedDeps.filter(\n (u) => u.isVulnerabilityAlert,\n );\n // return early if no security updates are present\n if (isEmptyArray(upgrades)) {\n return null;\n }\n\n const pnpmLockFile = upgrades[0].managerData?.pnpmLockFile;\n if (!isString(pnpmLockFile)) {\n logger.debug(\n 'No pnpm shrinkwrap found, not attempting to update pnpm-workspace.yaml',\n );\n return null;\n }\n const lockFileDir = upath.dirname(pnpmLockFile);\n const pnpmWorkspaceFilePath = upath.join(lockFileDir, 'pnpm-workspace.yaml');\n\n if (!(await localPathExists(pnpmWorkspaceFilePath))) {\n return null;\n }\n\n // use already-updated content when updating the workspace file itself\n const packageFileContent =\n updateArtifactsConfig.packageFileName === pnpmWorkspaceFilePath\n ? updateArtifactsConfig.newPackageFileContent\n : (await readLocalFile(pnpmWorkspaceFilePath, 'utf8'))!;\n const doc = parseDocument(packageFileContent);\n\n if (!doc.get('minimumReleaseAge')) {\n return null;\n }\n\n let updated = false;\n\n for (const upgrade of upgrades) {\n let excludeNode = doc.getIn(['minimumReleaseAgeExclude']) as YAMLSeq | null;\n // v8 ignore next -- TODO: add test #40625\n const newVersion = upgrade.newVersion ?? upgrade.newValue;\n // For pnpm overrides with range selectors (e.g. \"pkg@<=1.0.0\"), depName contains\n // the full key including the selector. Use packageName (bare package name) for\n // minimumReleaseAgeExclude entries which require exact versions only.\n const excludeDepName = upgrade.packageName ?? upgrade.depName;\n\n /* v8 ignore if -- should not happen, adding for type narrowing*/\n if (excludeNode && !isSeq(excludeNode)) {\n return null;\n }\n\n if (!excludeNode) {\n logger.debug('Adding new exclude block');\n excludeNode = doc.createNode([]);\n const newItem = doc.createNode(`${excludeDepName}@${newVersion}`);\n newItem.commentBefore = ` Renovate security update: ${excludeDepName}@${newVersion}`;\n excludeNode.items.push(newItem);\n doc.set('minimumReleaseAgeExclude', excludeNode);\n updated = true;\n continue;\n }\n\n const {\n item: matchedItem,\n allExcluded,\n malformed,\n } = getMatchedItem(excludeDepName!, excludeNode.items);\n\n if (allExcluded) {\n // still clean up any malformed entries even when a wildcard covers the package\n } else if (malformed && isScalar<string>(matchedItem)) {\n logger.debug(\n { entry: matchedItem.value, excludeDepName, newVersion },\n 'Replacing malformed minimumReleaseAgeExclude entry',\n );\n matchedItem.value = `${excludeDepName}@${newVersion}`;\n matchedItem.commentBefore = ` Renovate security update: ${excludeDepName}@${newVersion}`;\n updated = true;\n } else if (isScalar<string>(matchedItem)) {\n // if we have a comment before the list, which includes the dependency\n if (excludeNode?.commentBefore?.includes(`${excludeDepName}@`)) {\n // and it doesn't already have the version included in it\n if (\n !minimumReleaseAgeExcludeIncludesDepNameAndVersion(\n excludeNode.commentBefore,\n excludeDepName,\n newVersion,\n )\n ) {\n // then append it\n\n // normalize value (no quote handling needed)\n excludeNode.commentBefore = `${excludeNode.commentBefore} || ${newVersion}`;\n updated = true;\n }\n }\n // otherwise, if it's in our matched item's comment\n else if (matchedItem.commentBefore) {\n // add it\n if (\n !minimumReleaseAgeExcludeIncludesDepNameAndVersion(\n matchedItem.commentBefore,\n excludeDepName,\n newVersion,\n )\n ) {\n // normalize value (no quote handling needed)\n matchedItem.commentBefore = `${matchedItem.commentBefore} || ${newVersion}`;\n updated = true;\n }\n } else {\n matchedItem.commentBefore = ` Renovate security update: ${excludeDepName}@${newVersion}`;\n updated = true;\n }\n\n if (\n !minimumReleaseAgeExcludeIncludesDepNameAndVersion(\n matchedItem.value,\n excludeDepName,\n newVersion,\n )\n ) {\n matchedItem.value = `${matchedItem.value} || ${newVersion}`;\n updated = true;\n }\n } else {\n // add new entry\n const newItem = doc.createNode(`${excludeDepName}@${newVersion}`);\n newItem.commentBefore = ` Renovate security update: ${excludeDepName}@${newVersion}`;\n\n excludeNode.items.push(newItem);\n updated = true;\n }\n\n // Remove any malformed entries for the same package left over from the prior bug\n for (let i = excludeNode.items.length - 1; i >= 0; i--) {\n const item = excludeNode.items[i];\n if (\n item !== matchedItem &&\n isScalar(item) &&\n isString(item.value) &&\n item.value.startsWith(`${excludeDepName}@`) &&\n !isValidMinimumReleaseAgeExcludeEntry(item.value, excludeDepName!)\n ) {\n excludeNode.items.splice(i, 1);\n updated = true;\n }\n }\n }\n\n if (!updated) {\n return null;\n }\n\n const newContent = doc.toString();\n await writeLocalFile(pnpmWorkspaceFilePath, newContent);\n\n return {\n file: {\n type: 'addition',\n path: pnpmWorkspaceFilePath,\n contents: newContent,\n },\n };\n}\n\nfunction getMatchedItem(\n depName: string,\n items: unknown[],\n): {\n item: Scalar | null;\n allExcluded: boolean;\n malformed?: boolean;\n} {\n let malformedItem: Scalar | null = null;\n\n for (const item of items) {\n /* v8 ignore if -- should not happen */\n if (!isScalar(item) || !isString(item.value)) {\n continue;\n }\n\n if (item.value.startsWith(`${depName}@`)) {\n if (isValidMinimumReleaseAgeExcludeEntry(item.value, depName)) {\n return {\n allExcluded: false,\n item,\n };\n }\n malformedItem ??= item;\n continue;\n }\n\n if (item.value === depName || matchRegexOrGlob(depName, item.value)) {\n return {\n allExcluded: true,\n item,\n };\n }\n }\n\n if (malformedItem) {\n return {\n allExcluded: false,\n item: malformedItem,\n malformed: true,\n };\n }\n\n return {\n item: null,\n allExcluded: false,\n };\n}\n\n/** pnpm requires package@version entries without range selectors or extra @ in the version part */\nfunction isValidMinimumReleaseAgeExcludeEntry(\n value: string,\n packageName: string,\n): boolean {\n return !value.slice(`${packageName}@`.length).includes('@');\n}\n\n/** determine whether a comment or a list item contains the depName at a given newVersion */\nfunction minimumReleaseAgeExcludeIncludesDepNameAndVersion(\n line: string,\n depName: string | undefined,\n newVersion: string | undefined,\n): boolean {\n if (line.includes(`${depName}@${newVersion}`)) {\n return true;\n }\n\n if (line.includes(`|| ${newVersion}`)) {\n return true;\n }\n\n return false;\n}\n"],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@ function extractDependency(depType, depName, input) {
|
|
|
43
43
|
dep.datasource = NpmDatasource.id;
|
|
44
44
|
dep.commitMessageTopic = "Yarn";
|
|
45
45
|
const major = isVersion(dep.currentValue) && api.getMajor(dep.currentValue);
|
|
46
|
-
if (major && major > 1) dep.packageName = "@yarnpkg/cli";
|
|
46
|
+
if (major && major > 1) dep.packageName = "@yarnpkg/cli-dist";
|
|
47
47
|
} else if (depName === "npm") {
|
|
48
48
|
dep.datasource = NpmDatasource.id;
|
|
49
49
|
dep.commitMessageTopic = "npm";
|
|
@@ -67,7 +67,7 @@ function extractDependency(depType, depName, input) {
|
|
|
67
67
|
dep.datasource = NpmDatasource.id;
|
|
68
68
|
dep.commitMessageTopic = "Yarn";
|
|
69
69
|
const major = isVersion(dep.currentValue) && api.getMajor(dep.currentValue);
|
|
70
|
-
if (major && major > 1) dep.packageName = "@yarnpkg/cli";
|
|
70
|
+
if (major && major > 1) dep.packageName = "@yarnpkg/cli-dist";
|
|
71
71
|
} else if (depName === "npm") dep.datasource = NpmDatasource.id;
|
|
72
72
|
else if (depName === "pnpm") {
|
|
73
73
|
dep.datasource = NpmDatasource.id;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency.js","names":[],"sources":["../../../../../../lib/modules/manager/npm/extract/common/dependency.ts"],"sourcesContent":["import { isString } from '@sindresorhus/is';\nimport validateNpmPackageName from 'validate-npm-package-name';\nimport { logger } from '../../../../../logger/index.ts';\nimport { coerceArray } from '../../../../../util/array.ts';\nimport type { ConstraintName } from '../../../../../util/exec/types.ts';\nimport { isConstraintName } from '../../../../../util/exec/types.ts';\nimport { regEx } from '../../../../../util/regex.ts';\nimport { coerceString } from '../../../../../util/string.ts';\nimport { GithubTagsDatasource } from '../../../../datasource/github-tags/index.ts';\nimport { NodeVersionDatasource } from '../../../../datasource/node-version/index.ts';\nimport { NpmDatasource } from '../../../../datasource/npm/index.ts';\nimport {\n api,\n isValid,\n isVersion,\n id as npmVersioningId,\n} from '../../../../versioning/npm/index.ts';\nimport type { PackageDependency } from '../../../types.ts';\n\nconst RE_REPOSITORY_GITHUB_SSH_FORMAT = regEx(\n /(?:git@)github.com:(?<owner>[^/]+)\\/(?<repo>[^/]+?)(?:\\.git)?$/,\n);\n\nexport function parseDepName(depType: string, key: string): string {\n if (depType !== 'resolutions') {\n return key;\n }\n\n // Yarn selective dependency resolutions may nest a path of parent\n // packages before the target package, e.g. `parent/child` or\n // `@scope/parent/child`, and any segment (including the last) may carry\n // a `@range` suffix used to disambiguate which version of that package\n // to match, e.g. `@cypress/request/qs@~6.14.1`.\n const parts = key.split('/');\n const segments: string[] = [];\n for (let i = 0; i < parts.length; i += 1) {\n const part = parts[i];\n if (part.startsWith('@') && i + 1 < parts.length) {\n i += 1;\n segments.push(`${part}/${parts[i]}`);\n } else {\n segments.push(part);\n }\n }\n\n const lastSegment = segments.at(-1);\n const [, depName] = coerceArray(\n regEx(/^(?<depName>(?:@[^/]+\\/)?[^@]+)/).exec(coerceString(lastSegment)),\n );\n return depName;\n}\n\nexport function extractDependency(\n depType: string,\n depName: string,\n input: string,\n): PackageDependency {\n const dep: PackageDependency = {};\n if (!validateNpmPackageName(depName).validForOldPackages) {\n dep.skipReason = 'invalid-name';\n return dep;\n }\n if (!isString(input)) {\n dep.skipReason = 'invalid-value';\n return dep;\n }\n dep.currentValue = input.trim();\n if (depType === 'engines' || depType === 'packageManager') {\n if (depName === 'node') {\n dep.datasource = NodeVersionDatasource.id;\n } else if (depName === 'yarn') {\n dep.datasource = NpmDatasource.id;\n dep.commitMessageTopic = 'Yarn';\n const major =\n isVersion(dep.currentValue) && api.getMajor(dep.currentValue);\n if (major && major > 1) {\n dep.packageName = '@yarnpkg/cli';\n }\n } else if (depName === 'npm') {\n dep.datasource = NpmDatasource.id;\n dep.commitMessageTopic = 'npm';\n } else if (depName === 'pnpm') {\n dep.datasource = NpmDatasource.id;\n dep.commitMessageTopic = 'pnpm';\n } else if (depName === 'vscode') {\n dep.datasource = GithubTagsDatasource.id;\n dep.packageName = 'microsoft/vscode';\n dep.versioning = npmVersioningId;\n } else if (depName === 'bun') {\n dep.datasource = NpmDatasource.id;\n dep.commitMessageTopic = 'Bun';\n } else {\n dep.skipReason = 'unknown-engines';\n }\n if (!isValid(dep.currentValue)) {\n dep.skipReason = 'unspecified-version';\n }\n return dep;\n }\n\n // support for volta\n if (depType === 'volta') {\n if (depName === 'node') {\n dep.datasource = NodeVersionDatasource.id;\n } else if (depName === 'yarn') {\n dep.datasource = NpmDatasource.id;\n dep.commitMessageTopic = 'Yarn';\n const major =\n isVersion(dep.currentValue) && api.getMajor(dep.currentValue);\n if (major && major > 1) {\n dep.packageName = '@yarnpkg/cli';\n }\n } else if (depName === 'npm') {\n dep.datasource = NpmDatasource.id;\n } else if (depName === 'pnpm') {\n dep.datasource = NpmDatasource.id;\n dep.commitMessageTopic = 'pnpm';\n } else {\n dep.skipReason = 'unknown-volta';\n }\n if (!isValid(dep.currentValue)) {\n dep.skipReason = 'unspecified-version';\n }\n return dep;\n }\n\n if (dep.currentValue.startsWith('npm:')) {\n dep.npmPackageAlias = true;\n const valSplit = dep.currentValue.replace('npm:', '').split('@');\n if (valSplit.length === 1) {\n dep.packageName = depName;\n dep.currentValue = valSplit[0];\n } else if (valSplit.length === 2) {\n dep.packageName = valSplit[0];\n dep.currentValue = valSplit[1];\n } else if (valSplit.length === 3) {\n dep.packageName = `${valSplit[0]}@${valSplit[1]}`;\n dep.currentValue = valSplit[2];\n } else {\n logger.debug(\n `Invalid npm package alias for dependency: \"${depName}\":\"${dep.currentValue}\"`,\n );\n }\n }\n if (dep.currentValue.startsWith('file:')) {\n dep.skipReason = 'file';\n return dep;\n }\n\n if (isValid(dep.currentValue)) {\n dep.datasource = NpmDatasource.id;\n if (dep.currentValue === '') {\n dep.skipReason = 'empty';\n }\n return dep;\n }\n const hashSplit = dep.currentValue.split('#');\n if (hashSplit.length !== 2) {\n dep.skipReason = 'unspecified-version';\n return dep;\n }\n const [depNamePart, depRefPart] = hashSplit;\n\n let githubOwnerRepo: string;\n let githubOwner: string;\n let githubRepo: string;\n const matchUrlSshFormat = RE_REPOSITORY_GITHUB_SSH_FORMAT.exec(depNamePart);\n if (matchUrlSshFormat === null) {\n githubOwnerRepo = depNamePart\n .replace(regEx(/^github:/), '')\n .replace(regEx(/^git\\+/), '')\n .replace(regEx(/^https:\\/\\/github\\.com\\//), '')\n .replace(regEx(/\\.git$/), '');\n const githubRepoSplit = githubOwnerRepo.split('/');\n if (githubRepoSplit.length !== 2) {\n dep.skipReason = 'unspecified-version';\n return dep;\n }\n [githubOwner, githubRepo] = githubRepoSplit;\n } else {\n githubOwner = matchUrlSshFormat.groups!.owner;\n githubRepo = matchUrlSshFormat.groups!.repo;\n githubOwnerRepo = `${githubOwner}/${githubRepo}`;\n }\n // combined with the length check below, this is equivalent to\n // /^[a-z\\d](?:[a-z\\d]|-(?=[a-z\\d])){0,38}$/i without the lookahead\n const githubOwnerRegex = regEx(/^[a-z\\d](?:-?[a-z\\d]){0,38}$/i);\n const githubRepoRegex = regEx(/^[a-zA-Z0-9._-]{1,100}$/);\n if (\n githubOwner.length > 39 ||\n !githubOwnerRegex.test(githubOwner) ||\n !githubRepoRegex.test(githubRepo)\n ) {\n dep.skipReason = 'unspecified-version';\n return dep;\n }\n if (isVersion(depRefPart)) {\n dep.currentRawValue = dep.currentValue;\n dep.currentValue = depRefPart;\n dep.datasource = GithubTagsDatasource.id;\n dep.versioning = npmVersioningId;\n dep.packageName = githubOwnerRepo;\n dep.pinDigests = false;\n } else if (\n regEx(/^[0-9a-f]{7}$/).test(depRefPart) ||\n regEx(/^[0-9a-f]{40}$/).test(depRefPart)\n ) {\n dep.currentRawValue = dep.currentValue;\n dep.currentValue = null;\n dep.currentDigest = depRefPart;\n dep.datasource = GithubTagsDatasource.id;\n dep.versioning = npmVersioningId;\n dep.packageName = githubOwnerRepo;\n } else {\n // <protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish> | #semver:<semver>]\n // https://docs.npmjs.com/cli/v10/configuring-npm/package-json#git-urls-as-dependencies\n const len = 7; // length of 'semver:'\n const maybeVersion = depRefPart.substring(len);\n\n if (depRefPart.startsWith('semver:') && isValid(maybeVersion)) {\n dep.currentRawValue = dep.currentValue;\n dep.currentValue = maybeVersion;\n dep.datasource = GithubTagsDatasource.id;\n dep.versioning = npmVersioningId;\n dep.packageName = githubOwnerRepo;\n dep.pinDigests = false;\n } else {\n dep.skipReason = 'unversioned-reference';\n return dep;\n }\n }\n dep.sourceUrl = `https://github.com/${githubOwnerRepo}`;\n dep.gitRef = true;\n return dep;\n}\n\nexport function getExtractedConstraints(\n deps: PackageDependency[],\n): Partial<Record<ConstraintName, string>> {\n const extractedConstraints: Partial<Record<ConstraintName, string>> = {};\n const constraints: ConstraintName[] = [\n 'bun',\n 'node',\n 'yarn',\n 'npm',\n 'pnpm',\n 'vscode',\n ];\n for (const dep of deps) {\n if (\n !dep.skipReason &&\n (dep.depType === 'engines' || dep.depType === 'packageManager') &&\n dep.depName &&\n isConstraintName(dep.depName) &&\n constraints.includes(dep.depName) &&\n isString(dep.currentValue)\n ) {\n extractedConstraints[dep.depName] = dep.currentValue;\n }\n }\n return extractedConstraints;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dependency.js","names":[],"sources":["../../../../../../lib/modules/manager/npm/extract/common/dependency.ts"],"sourcesContent":["import { isString } from '@sindresorhus/is';\nimport validateNpmPackageName from 'validate-npm-package-name';\nimport { logger } from '../../../../../logger/index.ts';\nimport { coerceArray } from '../../../../../util/array.ts';\nimport type { ConstraintName } from '../../../../../util/exec/types.ts';\nimport { isConstraintName } from '../../../../../util/exec/types.ts';\nimport { regEx } from '../../../../../util/regex.ts';\nimport { coerceString } from '../../../../../util/string.ts';\nimport { GithubTagsDatasource } from '../../../../datasource/github-tags/index.ts';\nimport { NodeVersionDatasource } from '../../../../datasource/node-version/index.ts';\nimport { NpmDatasource } from '../../../../datasource/npm/index.ts';\nimport {\n api,\n isValid,\n isVersion,\n id as npmVersioningId,\n} from '../../../../versioning/npm/index.ts';\nimport type { PackageDependency } from '../../../types.ts';\n\nconst RE_REPOSITORY_GITHUB_SSH_FORMAT = regEx(\n /(?:git@)github.com:(?<owner>[^/]+)\\/(?<repo>[^/]+?)(?:\\.git)?$/,\n);\n\nexport function parseDepName(depType: string, key: string): string {\n if (depType !== 'resolutions') {\n return key;\n }\n\n // Yarn selective dependency resolutions may nest a path of parent\n // packages before the target package, e.g. `parent/child` or\n // `@scope/parent/child`, and any segment (including the last) may carry\n // a `@range` suffix used to disambiguate which version of that package\n // to match, e.g. `@cypress/request/qs@~6.14.1`.\n const parts = key.split('/');\n const segments: string[] = [];\n for (let i = 0; i < parts.length; i += 1) {\n const part = parts[i];\n if (part.startsWith('@') && i + 1 < parts.length) {\n i += 1;\n segments.push(`${part}/${parts[i]}`);\n } else {\n segments.push(part);\n }\n }\n\n const lastSegment = segments.at(-1);\n const [, depName] = coerceArray(\n regEx(/^(?<depName>(?:@[^/]+\\/)?[^@]+)/).exec(coerceString(lastSegment)),\n );\n return depName;\n}\n\nexport function extractDependency(\n depType: string,\n depName: string,\n input: string,\n): PackageDependency {\n const dep: PackageDependency = {};\n if (!validateNpmPackageName(depName).validForOldPackages) {\n dep.skipReason = 'invalid-name';\n return dep;\n }\n if (!isString(input)) {\n dep.skipReason = 'invalid-value';\n return dep;\n }\n dep.currentValue = input.trim();\n if (depType === 'engines' || depType === 'packageManager') {\n if (depName === 'node') {\n dep.datasource = NodeVersionDatasource.id;\n } else if (depName === 'yarn') {\n dep.datasource = NpmDatasource.id;\n dep.commitMessageTopic = 'Yarn';\n const major =\n isVersion(dep.currentValue) && api.getMajor(dep.currentValue);\n if (major && major > 1) {\n dep.packageName = '@yarnpkg/cli-dist';\n }\n } else if (depName === 'npm') {\n dep.datasource = NpmDatasource.id;\n dep.commitMessageTopic = 'npm';\n } else if (depName === 'pnpm') {\n dep.datasource = NpmDatasource.id;\n dep.commitMessageTopic = 'pnpm';\n } else if (depName === 'vscode') {\n dep.datasource = GithubTagsDatasource.id;\n dep.packageName = 'microsoft/vscode';\n dep.versioning = npmVersioningId;\n } else if (depName === 'bun') {\n dep.datasource = NpmDatasource.id;\n dep.commitMessageTopic = 'Bun';\n } else {\n dep.skipReason = 'unknown-engines';\n }\n if (!isValid(dep.currentValue)) {\n dep.skipReason = 'unspecified-version';\n }\n return dep;\n }\n\n // support for volta\n if (depType === 'volta') {\n if (depName === 'node') {\n dep.datasource = NodeVersionDatasource.id;\n } else if (depName === 'yarn') {\n dep.datasource = NpmDatasource.id;\n dep.commitMessageTopic = 'Yarn';\n const major =\n isVersion(dep.currentValue) && api.getMajor(dep.currentValue);\n if (major && major > 1) {\n dep.packageName = '@yarnpkg/cli-dist';\n }\n } else if (depName === 'npm') {\n dep.datasource = NpmDatasource.id;\n } else if (depName === 'pnpm') {\n dep.datasource = NpmDatasource.id;\n dep.commitMessageTopic = 'pnpm';\n } else {\n dep.skipReason = 'unknown-volta';\n }\n if (!isValid(dep.currentValue)) {\n dep.skipReason = 'unspecified-version';\n }\n return dep;\n }\n\n if (dep.currentValue.startsWith('npm:')) {\n dep.npmPackageAlias = true;\n const valSplit = dep.currentValue.replace('npm:', '').split('@');\n if (valSplit.length === 1) {\n dep.packageName = depName;\n dep.currentValue = valSplit[0];\n } else if (valSplit.length === 2) {\n dep.packageName = valSplit[0];\n dep.currentValue = valSplit[1];\n } else if (valSplit.length === 3) {\n dep.packageName = `${valSplit[0]}@${valSplit[1]}`;\n dep.currentValue = valSplit[2];\n } else {\n logger.debug(\n `Invalid npm package alias for dependency: \"${depName}\":\"${dep.currentValue}\"`,\n );\n }\n }\n if (dep.currentValue.startsWith('file:')) {\n dep.skipReason = 'file';\n return dep;\n }\n\n if (isValid(dep.currentValue)) {\n dep.datasource = NpmDatasource.id;\n if (dep.currentValue === '') {\n dep.skipReason = 'empty';\n }\n return dep;\n }\n const hashSplit = dep.currentValue.split('#');\n if (hashSplit.length !== 2) {\n dep.skipReason = 'unspecified-version';\n return dep;\n }\n const [depNamePart, depRefPart] = hashSplit;\n\n let githubOwnerRepo: string;\n let githubOwner: string;\n let githubRepo: string;\n const matchUrlSshFormat = RE_REPOSITORY_GITHUB_SSH_FORMAT.exec(depNamePart);\n if (matchUrlSshFormat === null) {\n githubOwnerRepo = depNamePart\n .replace(regEx(/^github:/), '')\n .replace(regEx(/^git\\+/), '')\n .replace(regEx(/^https:\\/\\/github\\.com\\//), '')\n .replace(regEx(/\\.git$/), '');\n const githubRepoSplit = githubOwnerRepo.split('/');\n if (githubRepoSplit.length !== 2) {\n dep.skipReason = 'unspecified-version';\n return dep;\n }\n [githubOwner, githubRepo] = githubRepoSplit;\n } else {\n githubOwner = matchUrlSshFormat.groups!.owner;\n githubRepo = matchUrlSshFormat.groups!.repo;\n githubOwnerRepo = `${githubOwner}/${githubRepo}`;\n }\n // combined with the length check below, this is equivalent to\n // /^[a-z\\d](?:[a-z\\d]|-(?=[a-z\\d])){0,38}$/i without the lookahead\n const githubOwnerRegex = regEx(/^[a-z\\d](?:-?[a-z\\d]){0,38}$/i);\n const githubRepoRegex = regEx(/^[a-zA-Z0-9._-]{1,100}$/);\n if (\n githubOwner.length > 39 ||\n !githubOwnerRegex.test(githubOwner) ||\n !githubRepoRegex.test(githubRepo)\n ) {\n dep.skipReason = 'unspecified-version';\n return dep;\n }\n if (isVersion(depRefPart)) {\n dep.currentRawValue = dep.currentValue;\n dep.currentValue = depRefPart;\n dep.datasource = GithubTagsDatasource.id;\n dep.versioning = npmVersioningId;\n dep.packageName = githubOwnerRepo;\n dep.pinDigests = false;\n } else if (\n regEx(/^[0-9a-f]{7}$/).test(depRefPart) ||\n regEx(/^[0-9a-f]{40}$/).test(depRefPart)\n ) {\n dep.currentRawValue = dep.currentValue;\n dep.currentValue = null;\n dep.currentDigest = depRefPart;\n dep.datasource = GithubTagsDatasource.id;\n dep.versioning = npmVersioningId;\n dep.packageName = githubOwnerRepo;\n } else {\n // <protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish> | #semver:<semver>]\n // https://docs.npmjs.com/cli/v10/configuring-npm/package-json#git-urls-as-dependencies\n const len = 7; // length of 'semver:'\n const maybeVersion = depRefPart.substring(len);\n\n if (depRefPart.startsWith('semver:') && isValid(maybeVersion)) {\n dep.currentRawValue = dep.currentValue;\n dep.currentValue = maybeVersion;\n dep.datasource = GithubTagsDatasource.id;\n dep.versioning = npmVersioningId;\n dep.packageName = githubOwnerRepo;\n dep.pinDigests = false;\n } else {\n dep.skipReason = 'unversioned-reference';\n return dep;\n }\n }\n dep.sourceUrl = `https://github.com/${githubOwnerRepo}`;\n dep.gitRef = true;\n return dep;\n}\n\nexport function getExtractedConstraints(\n deps: PackageDependency[],\n): Partial<Record<ConstraintName, string>> {\n const extractedConstraints: Partial<Record<ConstraintName, string>> = {};\n const constraints: ConstraintName[] = [\n 'bun',\n 'node',\n 'yarn',\n 'npm',\n 'pnpm',\n 'vscode',\n ];\n for (const dep of deps) {\n if (\n !dep.skipReason &&\n (dep.depType === 'engines' || dep.depType === 'packageManager') &&\n dep.depName &&\n isConstraintName(dep.depName) &&\n constraints.includes(dep.depName) &&\n isString(dep.currentValue)\n ) {\n extractedConstraints[dep.depName] = dep.currentValue;\n }\n }\n return extractedConstraints;\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { CONFIG_VALIDATION } from "../../../../../constants/error-messages.js";
|
|
2
2
|
import { regEx } from "../../../../../util/regex.js";
|
|
3
3
|
import { logger } from "../../../../../logger/index.js";
|
|
4
|
-
import { loadPackageJson } from "../../utils.js";
|
|
5
4
|
import { extractDependency, getExtractedConstraints, parseDepName } from "./dependency.js";
|
|
5
|
+
import { loadPackageJson } from "../../utils.js";
|
|
6
6
|
import { setNodeCommitTopic } from "./node.js";
|
|
7
7
|
import { extractOverrideDepsRec } from "./overrides.js";
|
|
8
8
|
import { isNonEmptyObject, isNonEmptyString, isNonEmptyStringAndNotWhitespace, isObject, isString } from "@sindresorhus/is";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { logger } from "../../../../logger/index.js";
|
|
2
2
|
import { findLocalSiblingOrParent, getSiblingFileName, readLocalFile } from "../../../../util/fs/index.js";
|
|
3
3
|
import { NpmDatasource } from "../../../datasource/npm/index.js";
|
|
4
|
-
import { PnpmWorkspaceFile } from "../schema.js";
|
|
5
4
|
import { resolveNpmrc } from "../npmrc.js";
|
|
5
|
+
import { PnpmWorkspaceFile } from "../schema.js";
|
|
6
6
|
import { getExtractedConstraints } from "./common/dependency.js";
|
|
7
7
|
import { extractPackageJson, hasPackageManager } from "./common/package-file.js";
|
|
8
8
|
import { applyPnpmWorkspaceRegistries, extractPnpmWorkspaceFile } from "./pnpm.js";
|
|
@@ -32,7 +32,7 @@ async function getLockedVersions(packageFiles) {
|
|
|
32
32
|
}
|
|
33
33
|
for (const dep of packageFile.deps) {
|
|
34
34
|
dep.lockedVersion = lockFileCache[yarnLock].lockedVersions?.[`${dep.depName}@${dep.currentValue}`];
|
|
35
|
-
if ((dep.depType === "engines" || dep.depType === "packageManager") && dep.depName === "yarn" && !isYarn1) dep.packageName = "@yarnpkg/cli";
|
|
35
|
+
if ((dep.depType === "engines" || dep.depType === "packageManager") && dep.depName === "yarn" && !isYarn1) dep.packageName = "@yarnpkg/cli-dist";
|
|
36
36
|
}
|
|
37
37
|
} else if (npmLock) {
|
|
38
38
|
logger.debug(`Found ${npmLock} for ${packageFile.packageFile}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locked-versions.js","names":[],"sources":["../../../../../../lib/modules/manager/npm/extract/post/locked-versions.ts"],"sourcesContent":["import { isString } from '@sindresorhus/is';\nimport semver from 'semver';\nimport upath from 'upath';\nimport { logger } from '../../../../../logger/index.ts';\nimport { regEx } from '../../../../../util/regex.ts';\nimport type { PackageFile } from '../../../types.ts';\nimport type { NpmManagerData } from '../../types.ts';\nimport { getNpmLock } from '../npm.ts';\nimport { getPnpmLock } from '../pnpm.ts';\nimport type { LockFile } from '../types.ts';\nimport { getYarnLock, getYarnVersionFromLock } from '../yarn.ts';\n\nconst pnpmCatalogDepTypeRe = regEx(/pnpm\\.catalog\\.(?<version>.*)/);\n\nexport async function getLockedVersions(\n packageFiles: PackageFile<NpmManagerData>[],\n): Promise<void> {\n const lockFileCache: Record<string, LockFile> = {};\n logger.debug('Finding locked versions');\n for (const packageFile of packageFiles) {\n const { managerData = {} } = packageFile;\n const { yarnLock, npmLock, pnpmLockFile } = managerData;\n const lockFiles: string[] = [];\n if (yarnLock) {\n logger.trace('Found yarnLock');\n lockFiles.push(yarnLock);\n // v8 ignore else -- TODO: add test #40625\n if (!lockFileCache[yarnLock]) {\n logger.trace(`Retrieving/parsing ${yarnLock}`);\n lockFileCache[yarnLock] = await getYarnLock(yarnLock);\n }\n const { isYarn1 } = lockFileCache[yarnLock];\n let yarn: string | undefined;\n if (!isYarn1 && !packageFile.extractedConstraints?.yarn) {\n yarn = getYarnVersionFromLock(lockFileCache[yarnLock]);\n }\n if (yarn) {\n packageFile.extractedConstraints ??= {};\n packageFile.extractedConstraints.yarn = yarn;\n }\n for (const dep of packageFile.deps) {\n dep.lockedVersion =\n lockFileCache[yarnLock].lockedVersions?.[\n // TODO: types (#22198)\n `${dep.depName}@${dep.currentValue}`\n ];\n if (\n (dep.depType === 'engines' || dep.depType === 'packageManager') &&\n dep.depName === 'yarn' &&\n !isYarn1\n ) {\n dep.packageName = '@yarnpkg/cli';\n }\n }\n } else if (npmLock) {\n logger.debug(`Found ${npmLock} for ${packageFile.packageFile}`);\n lockFiles.push(npmLock);\n if (!lockFileCache[npmLock]) {\n logger.trace(`Retrieving/parsing ${npmLock}`);\n const cache = await getNpmLock(npmLock);\n /* v8 ignore next -- needs test */\n if (!cache) {\n logger.warn({ npmLock }, 'Npm: unable to get lockfile');\n return;\n }\n lockFileCache[npmLock] = cache;\n }\n\n const { lockfileVersion } = lockFileCache[npmLock];\n let npm: string | undefined;\n if (lockfileVersion === 1) {\n if (packageFile.extractedConstraints?.npm) {\n // Add a <7 constraint if it's not already a fixed version\n if (\n semver.satisfies('6.14.18', packageFile.extractedConstraints.npm)\n ) {\n npm = `${packageFile.extractedConstraints.npm} <7`;\n }\n } else {\n npm = '<7';\n }\n } else if (lockfileVersion === 2) {\n if (packageFile.extractedConstraints?.npm) {\n // Add a <9 constraint if the latest 8.x is compatible\n if (\n semver.satisfies('8.19.3', packageFile.extractedConstraints.npm)\n ) {\n npm = `${packageFile.extractedConstraints.npm} <9`;\n }\n } else {\n npm = '<9';\n }\n } else if (lockfileVersion === 3) {\n if (!packageFile.extractedConstraints?.npm) {\n npm = '>=7';\n }\n } else {\n logger.warn(\n { lockfileVersion, npmLock },\n 'Found unsupported npm lockfile version',\n );\n return;\n }\n if (npm) {\n packageFile.extractedConstraints ??= {};\n packageFile.extractedConstraints.npm = npm;\n }\n\n const packageDir = upath.dirname(packageFile.packageFile);\n const npmRootDir = upath.dirname(npmLock);\n const relativeDir = upath.relative(npmRootDir, packageDir);\n\n for (const dep of packageFile.deps) {\n // Skip dependency types which are not locked in the lock file\n if (\n dep.depType === 'engines' ||\n dep.depType === 'packageManager' ||\n dep.depType === 'volta'\n ) {\n continue;\n }\n\n // TODO: types (#22198)\n let lockedDepName = dep.depName!;\n if (relativeDir && relativeDir !== '.') {\n lockedDepName = `${relativeDir}/node_modules/${dep.depName}`;\n }\n\n dep.lockedVersion = semver.valid(\n lockFileCache[npmLock].lockedVersions?.[lockedDepName],\n )!;\n }\n } else if (pnpmLockFile) {\n logger.debug('Found pnpm lock-file');\n lockFiles.push(pnpmLockFile);\n if (!lockFileCache[pnpmLockFile]) {\n logger.trace(`Retrieving/parsing ${pnpmLockFile}`);\n lockFileCache[pnpmLockFile] = await getPnpmLock(pnpmLockFile);\n }\n\n const packageDir = upath.dirname(packageFile.packageFile);\n const pnpmRootDir = upath.dirname(pnpmLockFile);\n const relativeDir = upath.relative(pnpmRootDir, packageDir) || '.';\n\n for (const dep of packageFile.deps) {\n const { depName, depType } = dep;\n\n const catalogName = pnpmCatalogDepTypeRe.exec(depType!)?.groups\n ?.version;\n\n if (catalogName) {\n const lockedVersion = semver.valid(\n lockFileCache[pnpmLockFile].lockedVersionsWithCatalog?.[\n catalogName\n ]?.[depName!],\n );\n\n // v8 ignore else -- TODO: add test #40625\n if (isString(lockedVersion)) {\n dep.lockedVersion = lockedVersion;\n }\n } else {\n // TODO: types (#22198)\n const lockedVersion = semver.valid(\n lockFileCache[pnpmLockFile].lockedVersionsWithPath?.[relativeDir]?.[\n depType!\n ]?.[depName!],\n );\n\n // v8 ignore else -- TODO: add test #40625\n if (isString(lockedVersion)) {\n dep.lockedVersion = lockedVersion;\n }\n }\n }\n }\n if (lockFiles.length) {\n packageFile.lockFiles = lockFiles;\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"locked-versions.js","names":[],"sources":["../../../../../../lib/modules/manager/npm/extract/post/locked-versions.ts"],"sourcesContent":["import { isString } from '@sindresorhus/is';\nimport semver from 'semver';\nimport upath from 'upath';\nimport { logger } from '../../../../../logger/index.ts';\nimport { regEx } from '../../../../../util/regex.ts';\nimport type { PackageFile } from '../../../types.ts';\nimport type { NpmManagerData } from '../../types.ts';\nimport { getNpmLock } from '../npm.ts';\nimport { getPnpmLock } from '../pnpm.ts';\nimport type { LockFile } from '../types.ts';\nimport { getYarnLock, getYarnVersionFromLock } from '../yarn.ts';\n\nconst pnpmCatalogDepTypeRe = regEx(/pnpm\\.catalog\\.(?<version>.*)/);\n\nexport async function getLockedVersions(\n packageFiles: PackageFile<NpmManagerData>[],\n): Promise<void> {\n const lockFileCache: Record<string, LockFile> = {};\n logger.debug('Finding locked versions');\n for (const packageFile of packageFiles) {\n const { managerData = {} } = packageFile;\n const { yarnLock, npmLock, pnpmLockFile } = managerData;\n const lockFiles: string[] = [];\n if (yarnLock) {\n logger.trace('Found yarnLock');\n lockFiles.push(yarnLock);\n // v8 ignore else -- TODO: add test #40625\n if (!lockFileCache[yarnLock]) {\n logger.trace(`Retrieving/parsing ${yarnLock}`);\n lockFileCache[yarnLock] = await getYarnLock(yarnLock);\n }\n const { isYarn1 } = lockFileCache[yarnLock];\n let yarn: string | undefined;\n if (!isYarn1 && !packageFile.extractedConstraints?.yarn) {\n yarn = getYarnVersionFromLock(lockFileCache[yarnLock]);\n }\n if (yarn) {\n packageFile.extractedConstraints ??= {};\n packageFile.extractedConstraints.yarn = yarn;\n }\n for (const dep of packageFile.deps) {\n dep.lockedVersion =\n lockFileCache[yarnLock].lockedVersions?.[\n // TODO: types (#22198)\n `${dep.depName}@${dep.currentValue}`\n ];\n if (\n (dep.depType === 'engines' || dep.depType === 'packageManager') &&\n dep.depName === 'yarn' &&\n !isYarn1\n ) {\n dep.packageName = '@yarnpkg/cli-dist';\n }\n }\n } else if (npmLock) {\n logger.debug(`Found ${npmLock} for ${packageFile.packageFile}`);\n lockFiles.push(npmLock);\n if (!lockFileCache[npmLock]) {\n logger.trace(`Retrieving/parsing ${npmLock}`);\n const cache = await getNpmLock(npmLock);\n /* v8 ignore next -- needs test */\n if (!cache) {\n logger.warn({ npmLock }, 'Npm: unable to get lockfile');\n return;\n }\n lockFileCache[npmLock] = cache;\n }\n\n const { lockfileVersion } = lockFileCache[npmLock];\n let npm: string | undefined;\n if (lockfileVersion === 1) {\n if (packageFile.extractedConstraints?.npm) {\n // Add a <7 constraint if it's not already a fixed version\n if (\n semver.satisfies('6.14.18', packageFile.extractedConstraints.npm)\n ) {\n npm = `${packageFile.extractedConstraints.npm} <7`;\n }\n } else {\n npm = '<7';\n }\n } else if (lockfileVersion === 2) {\n if (packageFile.extractedConstraints?.npm) {\n // Add a <9 constraint if the latest 8.x is compatible\n if (\n semver.satisfies('8.19.3', packageFile.extractedConstraints.npm)\n ) {\n npm = `${packageFile.extractedConstraints.npm} <9`;\n }\n } else {\n npm = '<9';\n }\n } else if (lockfileVersion === 3) {\n if (!packageFile.extractedConstraints?.npm) {\n npm = '>=7';\n }\n } else {\n logger.warn(\n { lockfileVersion, npmLock },\n 'Found unsupported npm lockfile version',\n );\n return;\n }\n if (npm) {\n packageFile.extractedConstraints ??= {};\n packageFile.extractedConstraints.npm = npm;\n }\n\n const packageDir = upath.dirname(packageFile.packageFile);\n const npmRootDir = upath.dirname(npmLock);\n const relativeDir = upath.relative(npmRootDir, packageDir);\n\n for (const dep of packageFile.deps) {\n // Skip dependency types which are not locked in the lock file\n if (\n dep.depType === 'engines' ||\n dep.depType === 'packageManager' ||\n dep.depType === 'volta'\n ) {\n continue;\n }\n\n // TODO: types (#22198)\n let lockedDepName = dep.depName!;\n if (relativeDir && relativeDir !== '.') {\n lockedDepName = `${relativeDir}/node_modules/${dep.depName}`;\n }\n\n dep.lockedVersion = semver.valid(\n lockFileCache[npmLock].lockedVersions?.[lockedDepName],\n )!;\n }\n } else if (pnpmLockFile) {\n logger.debug('Found pnpm lock-file');\n lockFiles.push(pnpmLockFile);\n if (!lockFileCache[pnpmLockFile]) {\n logger.trace(`Retrieving/parsing ${pnpmLockFile}`);\n lockFileCache[pnpmLockFile] = await getPnpmLock(pnpmLockFile);\n }\n\n const packageDir = upath.dirname(packageFile.packageFile);\n const pnpmRootDir = upath.dirname(pnpmLockFile);\n const relativeDir = upath.relative(pnpmRootDir, packageDir) || '.';\n\n for (const dep of packageFile.deps) {\n const { depName, depType } = dep;\n\n const catalogName = pnpmCatalogDepTypeRe.exec(depType!)?.groups\n ?.version;\n\n if (catalogName) {\n const lockedVersion = semver.valid(\n lockFileCache[pnpmLockFile].lockedVersionsWithCatalog?.[\n catalogName\n ]?.[depName!],\n );\n\n // v8 ignore else -- TODO: add test #40625\n if (isString(lockedVersion)) {\n dep.lockedVersion = lockedVersion;\n }\n } else {\n // TODO: types (#22198)\n const lockedVersion = semver.valid(\n lockFileCache[pnpmLockFile].lockedVersionsWithPath?.[relativeDir]?.[\n depType!\n ]?.[depName!],\n );\n\n // v8 ignore else -- TODO: add test #40625\n if (isString(lockedVersion)) {\n dep.lockedVersion = lockedVersion;\n }\n }\n }\n }\n if (lockFiles.length) {\n packageFile.lockFiles = lockFiles;\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -9,11 +9,11 @@ import { ensureCacheDir, getSiblingFileName, readLocalFile, writeLocalFile } fro
|
|
|
9
9
|
import { getFile, getRepoStatus } from "../../../../util/git/index.js";
|
|
10
10
|
import { NpmDatasource } from "../../../datasource/npm/index.js";
|
|
11
11
|
import { artifactErrorMessageFromExecError } from "../../util.js";
|
|
12
|
-
import { PNPM_CACHE_BASE_DIR, YARN_CACHE_DIR, YARN_GLOBAL_DIR } from "../constants.js";
|
|
13
|
-
import { processHostRules } from "./rules.js";
|
|
14
12
|
import { composeLockFile, parseLockFile, withNpmrcHostRules } from "../utils.js";
|
|
15
13
|
import { getZeroInstallPaths } from "../extract/yarn.js";
|
|
14
|
+
import { processHostRules } from "./rules.js";
|
|
16
15
|
import { scm } from "../../../platform/scm.js";
|
|
16
|
+
import { PNPM_CACHE_BASE_DIR, YARN_CACHE_DIR, YARN_GLOBAL_DIR } from "../constants.js";
|
|
17
17
|
import { generateLockFile } from "./npm.js";
|
|
18
18
|
import { generateLockFile as generateLockFile$1 } from "./pnpm.js";
|
|
19
19
|
import { fuzzyMatchAdditionalYarnrcYml, generateLockFile as generateLockFile$2, isYarnUpdate } from "./yarn.js";
|
|
@@ -9,9 +9,9 @@ import { deleteLocalFile, localPathExists, readLocalFile, renameLocalFile } from
|
|
|
9
9
|
import { Result } from "../../../../util/result.js";
|
|
10
10
|
import { exec, getToolSettingsOptions } from "../../../../util/exec/index.js";
|
|
11
11
|
import { resolveToolConstraint } from "../../util.js";
|
|
12
|
-
import { getNodeToolConstraint } from "./node-version.js";
|
|
13
12
|
import { PackageLock } from "../schema.js";
|
|
14
13
|
import { composeLockFile, parseLockFile } from "../utils.js";
|
|
14
|
+
import { getNodeToolConstraint } from "./node-version.js";
|
|
15
15
|
import { getNodeOptions, getPackageManagerVersion, lazyLoadPackageJson } from "./utils.js";
|
|
16
16
|
import { isNonEmptyString, isNumber, isString } from "@sindresorhus/is";
|
|
17
17
|
import { DateTime } from "luxon";
|
|
@@ -10,9 +10,9 @@ import { localPathIsFile, readLocalFile, writeLocalFile } from "../../../../util
|
|
|
10
10
|
import { exec, getToolSettingsOptions } from "../../../../util/exec/index.js";
|
|
11
11
|
import { NpmDatasource } from "../../../datasource/npm/index.js";
|
|
12
12
|
import { resolveToolConstraint } from "../../util.js";
|
|
13
|
+
import { getYarnLock, getYarnVersionFromLock } from "../extract/yarn.js";
|
|
13
14
|
import { getNodeToolConstraint } from "./node-version.js";
|
|
14
15
|
import { getNodeOptions, getPackageManagerVersion, lazyLoadPackageJson } from "./utils.js";
|
|
15
|
-
import { getYarnLock, getYarnVersionFromLock } from "../extract/yarn.js";
|
|
16
16
|
import { isString } from "@sindresorhus/is";
|
|
17
17
|
import { quote } from "shlex";
|
|
18
18
|
import upath from "upath";
|
package/package.json
CHANGED
package/renovate-schema.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$id": "https://docs.renovatebot.com/renovate-schema.json",
|
|
3
|
-
"title": "JSON schema for Renovate 44.124.
|
|
3
|
+
"title": "JSON schema for Renovate 44.124.2 config files (https://renovatebot.com/)",
|
|
4
4
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
5
|
-
"x-renovate-version": "44.124.
|
|
5
|
+
"x-renovate-version": "44.124.2",
|
|
6
6
|
"allowComments": true,
|
|
7
7
|
"type": "object",
|
|
8
8
|
"definitions": {
|