renovate 43.21.0 → 43.22.0
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/modules/manager/bun/extract.js +7 -4
- package/dist/modules/manager/bun/extract.js.map +1 -1
- package/dist/modules/manager/fingerprint.generated.js +2 -2
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/npm/extract/index.js +2 -25
- package/dist/modules/manager/npm/extract/index.js.map +1 -1
- package/dist/modules/manager/npm/npmrc.js +40 -0
- package/dist/modules/manager/npm/npmrc.js.map +1 -0
- package/package.json +1 -1
- package/renovate-schema.json +2 -2
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { logger } from "../../../logger/index.js";
|
|
2
2
|
import { getParentDir, getSiblingFileName, readLocalFile } from "../../../util/fs/index.js";
|
|
3
|
+
import { resolveNpmrc } from "../npm/npmrc.js";
|
|
3
4
|
import { extractPackageJson } from "../npm/extract/common/package-file.js";
|
|
4
5
|
import { filesMatchingWorkspaces } from "./utils.js";
|
|
5
6
|
import { isArray, isString } from "@sindresorhus/is";
|
|
@@ -8,7 +9,7 @@ import { isArray, isString } from "@sindresorhus/is";
|
|
|
8
9
|
function matchesFileName(fileNameWithPath, fileName) {
|
|
9
10
|
return fileNameWithPath === fileName || fileNameWithPath.endsWith(`/${fileName}`);
|
|
10
11
|
}
|
|
11
|
-
async function processPackageFile(packageFile) {
|
|
12
|
+
async function processPackageFile(packageFile, config) {
|
|
12
13
|
const fileContent = await readLocalFile(packageFile, "utf8");
|
|
13
14
|
if (!fileContent) {
|
|
14
15
|
logger.warn({ fileName: packageFile }, "Could not read file content");
|
|
@@ -26,9 +27,11 @@ async function processPackageFile(packageFile) {
|
|
|
26
27
|
logger.debug({ packageFile }, "No dependencies found");
|
|
27
28
|
return null;
|
|
28
29
|
}
|
|
30
|
+
const { npmrc } = await resolveNpmrc(packageFile, config);
|
|
29
31
|
return {
|
|
30
32
|
...result,
|
|
31
|
-
packageFile
|
|
33
|
+
packageFile,
|
|
34
|
+
npmrc
|
|
32
35
|
};
|
|
33
36
|
}
|
|
34
37
|
async function extractAllPackageFiles(config, matchedFiles) {
|
|
@@ -41,7 +44,7 @@ async function extractAllPackageFiles(config, matchedFiles) {
|
|
|
41
44
|
const allPackageJson = matchedFiles.filter((file) => matchesFileName(file, "package.json"));
|
|
42
45
|
for (const lockFile of allLockFiles) {
|
|
43
46
|
const packageFile = getSiblingFileName(lockFile, "package.json");
|
|
44
|
-
const res = await processPackageFile(packageFile);
|
|
47
|
+
const res = await processPackageFile(packageFile, config);
|
|
45
48
|
if (res) packageFiles.push({
|
|
46
49
|
...res,
|
|
47
50
|
lockFiles: [lockFile]
|
|
@@ -53,7 +56,7 @@ async function extractAllPackageFiles(config, matchedFiles) {
|
|
|
53
56
|
if (workspacePackageFiles.length) {
|
|
54
57
|
logger.debug({ workspacePackageFiles }, "Found bun workspace files");
|
|
55
58
|
for (const workspaceFile of workspacePackageFiles) {
|
|
56
|
-
const res = await processPackageFile(workspaceFile);
|
|
59
|
+
const res = await processPackageFile(workspaceFile, config);
|
|
57
60
|
if (res) packageFiles.push({
|
|
58
61
|
...res,
|
|
59
62
|
lockFiles: [lockFile]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.js","names":[],"sources":["../../../../lib/modules/manager/bun/extract.ts"],"sourcesContent":["import { isArray, isString } from '@sindresorhus/is';\nimport { logger } from '../../../logger/index.ts';\nimport {\n getParentDir,\n getSiblingFileName,\n readLocalFile,\n} from '../../../util/fs/index.ts';\n\nimport { extractPackageJson } from '../npm/extract/common/package-file.ts';\nimport type { NpmPackage } from '../npm/extract/types.ts';\nimport type { NpmManagerData } from '../npm/types.ts';\nimport type { ExtractConfig, PackageFile } from '../types.ts';\nimport { filesMatchingWorkspaces } from './utils.ts';\n\nfunction matchesFileName(fileNameWithPath: string, fileName: string): boolean {\n return (\n fileNameWithPath === fileName || fileNameWithPath.endsWith(`/${fileName}`)\n );\n}\n\nexport async function processPackageFile(\n packageFile: string,\n): Promise<PackageFile | null> {\n const fileContent = await readLocalFile(packageFile, 'utf8');\n if (!fileContent) {\n logger.warn({ fileName: packageFile }, 'Could not read file content');\n return null;\n }\n let packageJson: NpmPackage;\n try {\n packageJson = JSON.parse(fileContent);\n } catch (err) {\n logger.debug({ err }, 'Error parsing package.json');\n return null;\n }\n const result = extractPackageJson(packageJson, packageFile);\n if (!result) {\n logger.debug({ packageFile }, 'No dependencies found');\n return null;\n }\n return {\n ...result,\n packageFile,\n };\n}\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n matchedFiles: string[],\n): Promise<PackageFile[]> {\n const packageFiles: PackageFile<NpmManagerData>[] = [];\n const allLockFiles = matchedFiles.filter(\n (file) =>\n matchesFileName(file, 'bun.lock') || matchesFileName(file, 'bun.lockb'),\n );\n if (allLockFiles.length === 0) {\n logger.debug('No bun lockfiles found');\n return packageFiles;\n }\n const allPackageJson = matchedFiles.filter((file) =>\n matchesFileName(file, 'package.json'),\n );\n for (const lockFile of allLockFiles) {\n const packageFile = getSiblingFileName(lockFile, 'package.json');\n const res = await processPackageFile(packageFile);\n if (res) {\n packageFiles.push({ ...res, lockFiles: [lockFile] });\n }\n // Check if package.json contains workspaces\n const workspaces = res?.managerData?.workspaces;\n\n if (!isArray(workspaces, isString)) {\n continue;\n }\n\n logger.debug(`Found bun workspaces in ${packageFile}`);\n const pwd = getParentDir(packageFile);\n const workspacePackageFiles = filesMatchingWorkspaces(\n pwd,\n allPackageJson,\n workspaces,\n );\n if (workspacePackageFiles.length) {\n logger.debug({ workspacePackageFiles }, 'Found bun workspace files');\n for (const workspaceFile of workspacePackageFiles) {\n const res = await processPackageFile(workspaceFile);\n if (res) {\n packageFiles.push({ ...res, lockFiles: [lockFile] });\n }\n }\n }\n }\n\n return packageFiles;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"extract.js","names":[],"sources":["../../../../lib/modules/manager/bun/extract.ts"],"sourcesContent":["import { isArray, isString } from '@sindresorhus/is';\nimport { logger } from '../../../logger/index.ts';\nimport {\n getParentDir,\n getSiblingFileName,\n readLocalFile,\n} from '../../../util/fs/index.ts';\n\nimport { extractPackageJson } from '../npm/extract/common/package-file.ts';\nimport type { NpmPackage } from '../npm/extract/types.ts';\nimport { resolveNpmrc } from '../npm/npmrc.ts';\nimport type { NpmManagerData } from '../npm/types.ts';\nimport type { ExtractConfig, PackageFile } from '../types.ts';\nimport { filesMatchingWorkspaces } from './utils.ts';\n\nfunction matchesFileName(fileNameWithPath: string, fileName: string): boolean {\n return (\n fileNameWithPath === fileName || fileNameWithPath.endsWith(`/${fileName}`)\n );\n}\n\nexport async function processPackageFile(\n packageFile: string,\n config: ExtractConfig,\n): Promise<PackageFile | null> {\n const fileContent = await readLocalFile(packageFile, 'utf8');\n if (!fileContent) {\n logger.warn({ fileName: packageFile }, 'Could not read file content');\n return null;\n }\n let packageJson: NpmPackage;\n try {\n packageJson = JSON.parse(fileContent);\n } catch (err) {\n logger.debug({ err }, 'Error parsing package.json');\n return null;\n }\n const result = extractPackageJson(packageJson, packageFile);\n if (!result) {\n logger.debug({ packageFile }, 'No dependencies found');\n return null;\n }\n\n const { npmrc } = await resolveNpmrc(packageFile, config);\n\n return {\n ...result,\n packageFile,\n npmrc,\n };\n}\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n matchedFiles: string[],\n): Promise<PackageFile[]> {\n const packageFiles: PackageFile<NpmManagerData>[] = [];\n const allLockFiles = matchedFiles.filter(\n (file) =>\n matchesFileName(file, 'bun.lock') || matchesFileName(file, 'bun.lockb'),\n );\n if (allLockFiles.length === 0) {\n logger.debug('No bun lockfiles found');\n return packageFiles;\n }\n const allPackageJson = matchedFiles.filter((file) =>\n matchesFileName(file, 'package.json'),\n );\n for (const lockFile of allLockFiles) {\n const packageFile = getSiblingFileName(lockFile, 'package.json');\n const res = await processPackageFile(packageFile, config);\n if (res) {\n packageFiles.push({ ...res, lockFiles: [lockFile] });\n }\n // Check if package.json contains workspaces\n const workspaces = res?.managerData?.workspaces;\n\n if (!isArray(workspaces, isString)) {\n continue;\n }\n\n logger.debug(`Found bun workspaces in ${packageFile}`);\n const pwd = getParentDir(packageFile);\n const workspacePackageFiles = filesMatchingWorkspaces(\n pwd,\n allPackageJson,\n workspaces,\n );\n if (workspacePackageFiles.length) {\n logger.debug({ workspacePackageFiles }, 'Found bun workspace files');\n for (const workspaceFile of workspacePackageFiles) {\n const res = await processPackageFile(workspaceFile, config);\n if (res) {\n packageFiles.push({ ...res, lockFiles: [lockFile] });\n }\n }\n }\n }\n\n return packageFiles;\n}\n"],"mappings":";;;;;;;;AAeA,SAAS,gBAAgB,kBAA0B,UAA2B;AAC5E,QACE,qBAAqB,YAAY,iBAAiB,SAAS,IAAI,WAAW;;AAI9E,eAAsB,mBACpB,aACA,QAC6B;CAC7B,MAAM,cAAc,MAAM,cAAc,aAAa,OAAO;AAC5D,KAAI,CAAC,aAAa;AAChB,SAAO,KAAK,EAAE,UAAU,aAAa,EAAE,8BAA8B;AACrE,SAAO;;CAET,IAAI;AACJ,KAAI;AACF,gBAAc,KAAK,MAAM,YAAY;UAC9B,KAAK;AACZ,SAAO,MAAM,EAAE,KAAK,EAAE,6BAA6B;AACnD,SAAO;;CAET,MAAM,SAAS,mBAAmB,aAAa,YAAY;AAC3D,KAAI,CAAC,QAAQ;AACX,SAAO,MAAM,EAAE,aAAa,EAAE,wBAAwB;AACtD,SAAO;;CAGT,MAAM,EAAE,UAAU,MAAM,aAAa,aAAa,OAAO;AAEzD,QAAO;EACL,GAAG;EACH;EACA;EACD;;AAEH,eAAsB,uBACpB,QACA,cACwB;CACxB,MAAM,eAA8C,EAAE;CACtD,MAAM,eAAe,aAAa,QAC/B,SACC,gBAAgB,MAAM,WAAW,IAAI,gBAAgB,MAAM,YAAY,CAC1E;AACD,KAAI,aAAa,WAAW,GAAG;AAC7B,SAAO,MAAM,yBAAyB;AACtC,SAAO;;CAET,MAAM,iBAAiB,aAAa,QAAQ,SAC1C,gBAAgB,MAAM,eAAe,CACtC;AACD,MAAK,MAAM,YAAY,cAAc;EACnC,MAAM,cAAc,mBAAmB,UAAU,eAAe;EAChE,MAAM,MAAM,MAAM,mBAAmB,aAAa,OAAO;AACzD,MAAI,IACF,cAAa,KAAK;GAAE,GAAG;GAAK,WAAW,CAAC,SAAS;GAAE,CAAC;EAGtD,MAAM,aAAa,KAAK,aAAa;AAErC,MAAI,CAAC,QAAQ,YAAY,SAAS,CAChC;AAGF,SAAO,MAAM,2BAA2B,cAAc;EAEtD,MAAM,wBAAwB,wBADlB,aAAa,YAAY,EAGnC,gBACA,WACD;AACD,MAAI,sBAAsB,QAAQ;AAChC,UAAO,MAAM,EAAE,uBAAuB,EAAE,4BAA4B;AACpE,QAAK,MAAM,iBAAiB,uBAAuB;IACjD,MAAM,MAAM,MAAM,mBAAmB,eAAe,OAAO;AAC3D,QAAI,IACF,cAAa,KAAK;KAAE,GAAG;KAAK,WAAW,CAAC,SAAS;KAAE,CAAC;;;;AAM5D,QAAO"}
|
|
@@ -15,7 +15,7 @@ hashMap.set("bitbucket-pipelines", "09eb044219d74331fea135f50121b7d4d146333eb97e
|
|
|
15
15
|
hashMap.set("bitrise", "afdb46fe37fc0307943089e18b6724065394805e628b4b6c4430a6068c494030");
|
|
16
16
|
hashMap.set("buildkite", "a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407");
|
|
17
17
|
hashMap.set("buildpacks", "6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f");
|
|
18
|
-
hashMap.set("bun", "
|
|
18
|
+
hashMap.set("bun", "c7c917ad579dbf031294302bc05bfd5e1053e0e3208c50d9cc425fb0d7785310");
|
|
19
19
|
hashMap.set("bun-version", "df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4");
|
|
20
20
|
hashMap.set("bundler", "b04522e682849d52d0389e1bae31d784b89e7aac1788bf76575bf41fc16d1ec0");
|
|
21
21
|
hashMap.set("cake", "73eca16006bb82cfe63405b32d1072050fd33c9baa7fda2ec1ea7536ecb6ec4f");
|
|
@@ -71,7 +71,7 @@ hashMap.set("mise", "2af97573f0705892e3728ea131499d70d0353ed8a82db4cba8f66c1d751
|
|
|
71
71
|
hashMap.set("mix", "7c215ea50304c1269aa324f642ab9cf9a44174497cf451d8060ec09e2446b2a5");
|
|
72
72
|
hashMap.set("nix", "9c523d1a3e3e313aa8f278942be6556f3134d2fc979edf210f5722543e558245");
|
|
73
73
|
hashMap.set("nodenv", "ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8");
|
|
74
|
-
hashMap.set("npm", "
|
|
74
|
+
hashMap.set("npm", "7d874defce04a6ed616413dff24e5dac22f8b7c7bde7e1e4a8d6290fadcb6c74");
|
|
75
75
|
hashMap.set("nuget", "0d1da22aed5f8364417d75aa0a8ee95d579dde39b164770576e072fb28a1b1f3");
|
|
76
76
|
hashMap.set("nvm", "3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322");
|
|
77
77
|
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','1fbc76f78daa14a8c9ab1142e9d1e05c746c0419a9f1455e4279f476590d0c04');\nhashMap.set('ansible-galaxy','8226d47128f2018825d4d6f84794e3183eb79c706045fa7e88491edd5e64106f');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','1f6fcf620e9c6cd35991380cb6eafb94ec60cd77cbd13335ebe3a1d9727416c9');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','0a13df03d359e50cb0bd8ae7b57e8e93424b3733ccf98ece0719efaa343f782d');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','3240f148b71c7567f784df3adc6937afbd69d7c7f8a40553bb64f5c767f26907');\nhashMap.set('bazelisk','c4c8561ff5857a14db68d70867dcc3cf63605380966b1132c295336e5cef5604');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','09eb044219d74331fea135f50121b7d4d146333eb97e4ccbfa9ddf0eb4012963');\nhashMap.set('bitrise','afdb46fe37fc0307943089e18b6724065394805e628b4b6c4430a6068c494030');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','c0121f5ade7e3b5c379dda48cedf9e3f1a87b3e743b1a3d89d934cd2e317ed45');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','b04522e682849d52d0389e1bae31d784b89e7aac1788bf76575bf41fc16d1ec0');\nhashMap.set('cake','73eca16006bb82cfe63405b32d1072050fd33c9baa7fda2ec1ea7536ecb6ec4f');\nhashMap.set('cargo','e4577a23fb5750443c6813afec57108b21e61e208af5023b8c06f12bcaa49c81');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','135937d4720718304adb0ba998516f8ce38c3220ccd18b00b8c70c62b45df4da');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','04ad0bd9744b4a369444ac1a2c417bbc9b941d029d921e0bd8fbe1dcd0e655ad');\nhashMap.set('composer','0e9d4516e440e5bbf22e141d5e2353cdb1ae59c3be2f26abff9e5d2235779027');\nhashMap.set('conan','16b128910a5c855128f5e63f9540fa0c9c6c1a790ec651703268224264cc2234');\nhashMap.set('copier','c2243ee99dee6c667ea087a8d97ce4ff56413768f6b26d4b7699af3bb95df6fc');\nhashMap.set('cpanfile','6a1d67d9c8751123deaf0c7f3ac38a07024e960c140f8228fcbcb93954fdca01');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','c853d5f943fe7bce7578063b25f8bb1597252726395fedeffc029a78f6321ed7');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','fe2b132bd17f9c0a46ea5877bdaa6671c6452391219c9441e367d44deabd7a9a');\nhashMap.set('flux','bffacf477a9f1a24c7d1964cefcfcf67c34337b6966a52024396cc273e27dc17');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','a286e097a5fcc6c946e792b812871147b39ad93f9ad041b5b3216b100f972e95');\nhashMap.set('github-actions','67d6a125f4b7711a3f9a853ffd09f48fe2db9e650b3430b5501ca304f46c10b8');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','e43a4427261082876bf6b648da34f76349055bee8ad09ab020ef9a5085d7b4e5');\nhashMap.set('gomod','81504c337a01a33da767c9e7509e318ba324cb07c51023a24dffe548bbb69f47');\nhashMap.set('gradle','89a5f64d6eac944e3b4de83d7b1c5d0d1b7985998fd7c3b5d0a8eabbfd2b80b1');\nhashMap.set('gradle-wrapper','f647673f40861f7aae9c92a933b015909ae1306438623b47c880786602de6eb6');\nhashMap.set('haskell-cabal','d796ec6859e63ab4f1b7030c4016071202c3a44c7c11d4a9131d7e2ba19b396d');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','2baa991e43f8c38e85051d12749e17c333be488b1b3af7ccb8ac3e97e134272c');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','d91b78dd3648e3acda92ba61c6b867f295176862588957635853cb4274d949a7');\nhashMap.set('hermit','0322c7489c79e76c85ebd802b11f0f55332c40fdfc82eea9ca8b300fef61dc52');\nhashMap.set('homebrew','3cd972c03dc6333a12fd26413150ffe18c0305aa61a16b490e3306fcec9f0000');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','0c15736494cd1e598985f0d49fc39e3cecc7ebeefa2101ccfab98605f92860e2');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','87d87b2c410facdd0400691e87080a3e1ffe83158f51f52cd784442713122f30');\nhashMap.set('kustomize','1e44d6ef8622252dac6d9649fb04badd12d4827eb2a55f74792aa9de2b915775');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','6faa1a3a70542bc7e84683c31b2fb86468fdf82a25c264cf2f7fc45dbc98b1d8');\nhashMap.set('maven-wrapper','ff10b7b3c33deda4e51a0904aed299522c9ab4d9deb8696faac37672419ba08c');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','b816a49c8525716454d0a2bc9127916d5b27e5cca7b2aa2030312f218942af3e');\nhashMap.set('mise','2af97573f0705892e3728ea131499d70d0353ed8a82db4cba8f66c1d7515b3fb');\nhashMap.set('mix','7c215ea50304c1269aa324f642ab9cf9a44174497cf451d8060ec09e2446b2a5');\nhashMap.set('nix','9c523d1a3e3e313aa8f278942be6556f3134d2fc979edf210f5722543e558245');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','1bd3420cdef6ed9cb2eb3bf65709d82932cafdc4642cf5ede04080fc0a55cb80');\nhashMap.set('nuget','0d1da22aed5f8364417d75aa0a8ee95d579dde39b164770576e072fb28a1b1f3');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','4c39cffc02e67b96d8c259f1384ea055f2cc1680f1611c1ae239bb5bb84830c7');\nhashMap.set('pep723','105cdc1674da67d48174457bea670c95d8a023e4263d1efc002f02c7f232b5eb');\nhashMap.set('pip-compile','ba65a1188370e4031c1554f4df2b32c513afe4da2f8c151ec008b2de1da3161d');\nhashMap.set('pip_requirements','e3cbe0e891deeeee05bb2f76020dc0c9f24ff4d964ba662267dd2080adfaa511');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','a63361766d23f3688cc50903ca335854f72a951c182b39261c5ec7ea3506d55f');\nhashMap.set('pixi','0223374aadaeaff1532b77663e0c6d88a54902d4f6740ab0c6c57868d661f25c');\nhashMap.set('poetry','c7e9443739418742c5d8fc80cb0905537d0a804133bf792da21a7e6c12edc336');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('pub','01ac02ee8d07ede5fe93045c04176a2dcc402e28378d4b696cb069eb3dad28c4');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e355e13e104351a8b3516a8e272fc5f7e625c9f39b0c492ba27283a36227c2d4');\nhashMap.set('renovate-config-presets','a394fe55f8b6ba356f29f76efd9f0d34b56baceb111e6d92f95b29b5ca50ac67');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('sbt','61f9323c91c45227da71d43120fa1eddc41685502be017118975f77b44fb1b8e');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','167a5cc79098803be3b815a28cc40ef3361c455751e1d6a7a99ba91bfce26709');\nhashMap.set('swift','9dd5ea9db9a7719e857cb6c07d8052e7cadaf42bcdcc422b8c567b207bc7e8e4');\nhashMap.set('tekton','4e35c75bba4abc9c3cf49c55da6c19db4f4e9181d1fd9583288ab55ef7c944fd');\nhashMap.set('terraform','970e707239d270362ce1a8f390cda5dc6a78aee39e6b299a529eaaf7577f73d6');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','b8474c65383a702602eee432cc1434f9a49a1ef886d1213de92d7a84fb98b9cd');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','4a975f0cc1aa22cd258aa835de3dc98d7a5c0d1cee0a1092324338968e08a827');\nhashMap.set('travis','bb482a0195cd009ec3896a6227bb95617f5c84bedb518c7d971e50c62235d9ca');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','fba1cfdcaf185d9dacb681d81cf08d73437ea278e92f0bdd6f3d635852fecaf0');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('jsonata','3b5f465b586993f92c8490e70885e7eecce9b6556bcc376dd9c11db8ee9e6960');\nhashMap.set('regex','7b643b49e498465cf91b25b8b840bb1fec8c8a3a59bfa8f97a39c976675325a0');"],"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','1fbc76f78daa14a8c9ab1142e9d1e05c746c0419a9f1455e4279f476590d0c04');\nhashMap.set('ansible-galaxy','8226d47128f2018825d4d6f84794e3183eb79c706045fa7e88491edd5e64106f');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','1f6fcf620e9c6cd35991380cb6eafb94ec60cd77cbd13335ebe3a1d9727416c9');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','0a13df03d359e50cb0bd8ae7b57e8e93424b3733ccf98ece0719efaa343f782d');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','3240f148b71c7567f784df3adc6937afbd69d7c7f8a40553bb64f5c767f26907');\nhashMap.set('bazelisk','c4c8561ff5857a14db68d70867dcc3cf63605380966b1132c295336e5cef5604');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','09eb044219d74331fea135f50121b7d4d146333eb97e4ccbfa9ddf0eb4012963');\nhashMap.set('bitrise','afdb46fe37fc0307943089e18b6724065394805e628b4b6c4430a6068c494030');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','c7c917ad579dbf031294302bc05bfd5e1053e0e3208c50d9cc425fb0d7785310');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','b04522e682849d52d0389e1bae31d784b89e7aac1788bf76575bf41fc16d1ec0');\nhashMap.set('cake','73eca16006bb82cfe63405b32d1072050fd33c9baa7fda2ec1ea7536ecb6ec4f');\nhashMap.set('cargo','e4577a23fb5750443c6813afec57108b21e61e208af5023b8c06f12bcaa49c81');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','135937d4720718304adb0ba998516f8ce38c3220ccd18b00b8c70c62b45df4da');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','04ad0bd9744b4a369444ac1a2c417bbc9b941d029d921e0bd8fbe1dcd0e655ad');\nhashMap.set('composer','0e9d4516e440e5bbf22e141d5e2353cdb1ae59c3be2f26abff9e5d2235779027');\nhashMap.set('conan','16b128910a5c855128f5e63f9540fa0c9c6c1a790ec651703268224264cc2234');\nhashMap.set('copier','c2243ee99dee6c667ea087a8d97ce4ff56413768f6b26d4b7699af3bb95df6fc');\nhashMap.set('cpanfile','6a1d67d9c8751123deaf0c7f3ac38a07024e960c140f8228fcbcb93954fdca01');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','c853d5f943fe7bce7578063b25f8bb1597252726395fedeffc029a78f6321ed7');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','fe2b132bd17f9c0a46ea5877bdaa6671c6452391219c9441e367d44deabd7a9a');\nhashMap.set('flux','bffacf477a9f1a24c7d1964cefcfcf67c34337b6966a52024396cc273e27dc17');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','a286e097a5fcc6c946e792b812871147b39ad93f9ad041b5b3216b100f972e95');\nhashMap.set('github-actions','67d6a125f4b7711a3f9a853ffd09f48fe2db9e650b3430b5501ca304f46c10b8');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','e43a4427261082876bf6b648da34f76349055bee8ad09ab020ef9a5085d7b4e5');\nhashMap.set('gomod','81504c337a01a33da767c9e7509e318ba324cb07c51023a24dffe548bbb69f47');\nhashMap.set('gradle','89a5f64d6eac944e3b4de83d7b1c5d0d1b7985998fd7c3b5d0a8eabbfd2b80b1');\nhashMap.set('gradle-wrapper','f647673f40861f7aae9c92a933b015909ae1306438623b47c880786602de6eb6');\nhashMap.set('haskell-cabal','d796ec6859e63ab4f1b7030c4016071202c3a44c7c11d4a9131d7e2ba19b396d');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','2baa991e43f8c38e85051d12749e17c333be488b1b3af7ccb8ac3e97e134272c');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','d91b78dd3648e3acda92ba61c6b867f295176862588957635853cb4274d949a7');\nhashMap.set('hermit','0322c7489c79e76c85ebd802b11f0f55332c40fdfc82eea9ca8b300fef61dc52');\nhashMap.set('homebrew','3cd972c03dc6333a12fd26413150ffe18c0305aa61a16b490e3306fcec9f0000');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','0c15736494cd1e598985f0d49fc39e3cecc7ebeefa2101ccfab98605f92860e2');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','87d87b2c410facdd0400691e87080a3e1ffe83158f51f52cd784442713122f30');\nhashMap.set('kustomize','1e44d6ef8622252dac6d9649fb04badd12d4827eb2a55f74792aa9de2b915775');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','6faa1a3a70542bc7e84683c31b2fb86468fdf82a25c264cf2f7fc45dbc98b1d8');\nhashMap.set('maven-wrapper','ff10b7b3c33deda4e51a0904aed299522c9ab4d9deb8696faac37672419ba08c');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','b816a49c8525716454d0a2bc9127916d5b27e5cca7b2aa2030312f218942af3e');\nhashMap.set('mise','2af97573f0705892e3728ea131499d70d0353ed8a82db4cba8f66c1d7515b3fb');\nhashMap.set('mix','7c215ea50304c1269aa324f642ab9cf9a44174497cf451d8060ec09e2446b2a5');\nhashMap.set('nix','9c523d1a3e3e313aa8f278942be6556f3134d2fc979edf210f5722543e558245');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','7d874defce04a6ed616413dff24e5dac22f8b7c7bde7e1e4a8d6290fadcb6c74');\nhashMap.set('nuget','0d1da22aed5f8364417d75aa0a8ee95d579dde39b164770576e072fb28a1b1f3');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','4c39cffc02e67b96d8c259f1384ea055f2cc1680f1611c1ae239bb5bb84830c7');\nhashMap.set('pep723','105cdc1674da67d48174457bea670c95d8a023e4263d1efc002f02c7f232b5eb');\nhashMap.set('pip-compile','ba65a1188370e4031c1554f4df2b32c513afe4da2f8c151ec008b2de1da3161d');\nhashMap.set('pip_requirements','e3cbe0e891deeeee05bb2f76020dc0c9f24ff4d964ba662267dd2080adfaa511');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','a63361766d23f3688cc50903ca335854f72a951c182b39261c5ec7ea3506d55f');\nhashMap.set('pixi','0223374aadaeaff1532b77663e0c6d88a54902d4f6740ab0c6c57868d661f25c');\nhashMap.set('poetry','c7e9443739418742c5d8fc80cb0905537d0a804133bf792da21a7e6c12edc336');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('pub','01ac02ee8d07ede5fe93045c04176a2dcc402e28378d4b696cb069eb3dad28c4');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e355e13e104351a8b3516a8e272fc5f7e625c9f39b0c492ba27283a36227c2d4');\nhashMap.set('renovate-config-presets','a394fe55f8b6ba356f29f76efd9f0d34b56baceb111e6d92f95b29b5ca50ac67');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('sbt','61f9323c91c45227da71d43120fa1eddc41685502be017118975f77b44fb1b8e');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','167a5cc79098803be3b815a28cc40ef3361c455751e1d6a7a99ba91bfce26709');\nhashMap.set('swift','9dd5ea9db9a7719e857cb6c07d8052e7cadaf42bcdcc422b8c567b207bc7e8e4');\nhashMap.set('tekton','4e35c75bba4abc9c3cf49c55da6c19db4f4e9181d1fd9583288ab55ef7c944fd');\nhashMap.set('terraform','970e707239d270362ce1a8f390cda5dc6a78aee39e6b299a529eaaf7577f73d6');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','b8474c65383a702602eee432cc1434f9a49a1ef886d1213de92d7a84fb98b9cd');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','4a975f0cc1aa22cd258aa835de3dc98d7a5c0d1cee0a1092324338968e08a827');\nhashMap.set('travis','bb482a0195cd009ec3896a6227bb95617f5c84bedb518c7d971e50c62235d9ca');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','fba1cfdcaf185d9dacb681d81cf08d73437ea278e92f0bdd6f3d635852fecaf0');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('jsonata','3b5f465b586993f92c8490e70885e7eecce9b6556bcc376dd9c11db8ee9e6960');\nhashMap.set('regex','7b643b49e498465cf91b25b8b840bb1fec8c8a3a59bfa8f97a39c976675325a0');"],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { newlineRegex, regEx } from "../../../../util/regex.js";
|
|
2
|
-
import { GlobalConfig } from "../../../../config/global.js";
|
|
3
1
|
import { logger } from "../../../../logger/index.js";
|
|
4
2
|
import { findLocalSiblingOrParent, getSiblingFileName, readLocalFile } from "../../../../util/fs/index.js";
|
|
5
3
|
import { NpmDatasource } from "../../../datasource/npm/index.js";
|
|
4
|
+
import { resolveNpmrc } from "../npmrc.js";
|
|
6
5
|
import { getExtractedConstraints } from "./common/dependency.js";
|
|
7
6
|
import { extractPackageJson, hasPackageManager } from "./common/package-file.js";
|
|
8
7
|
import { extractPnpmWorkspaceFile, tryParsePnpmWorkspaceYaml } from "./pnpm.js";
|
|
@@ -46,29 +45,7 @@ async function extractPackageFile(content, packageFile, config) {
|
|
|
46
45
|
delete lockFiles.packageLock;
|
|
47
46
|
delete lockFiles.shrinkwrapJson;
|
|
48
47
|
if (hasMultipleLockFiles(lockFiles)) logger.warn("Updating multiple npm lock files is deprecated and support will be removed in future versions.");
|
|
49
|
-
|
|
50
|
-
const npmrcFileName = await findLocalSiblingOrParent(packageFile, ".npmrc");
|
|
51
|
-
if (npmrcFileName) {
|
|
52
|
-
let repoNpmrc = await readLocalFile(npmrcFileName, "utf8");
|
|
53
|
-
if (isString(repoNpmrc)) if (isString(config.npmrc) && !config.npmrcMerge) {
|
|
54
|
-
logger.debug({ npmrcFileName }, "Repo .npmrc file is ignored due to config.npmrc with config.npmrcMerge=false");
|
|
55
|
-
npmrc = config.npmrc;
|
|
56
|
-
} else {
|
|
57
|
-
npmrc = config.npmrc ?? "";
|
|
58
|
-
if (npmrc.length) {
|
|
59
|
-
if (!npmrc.endsWith("\n")) npmrc += "\n";
|
|
60
|
-
}
|
|
61
|
-
if (repoNpmrc?.includes("package-lock")) {
|
|
62
|
-
logger.debug("Stripping package-lock setting from .npmrc");
|
|
63
|
-
repoNpmrc = repoNpmrc.replace(regEx(/(^|\n)package-lock.*?(\n|$)/g), "\n");
|
|
64
|
-
}
|
|
65
|
-
if (repoNpmrc.includes("=${") && !GlobalConfig.get("exposeAllEnv")) {
|
|
66
|
-
logger.debug({ npmrcFileName }, "Stripping .npmrc file of lines with variables");
|
|
67
|
-
repoNpmrc = repoNpmrc.split(newlineRegex).filter((line) => !line.includes("=${")).join("\n");
|
|
68
|
-
}
|
|
69
|
-
npmrc += repoNpmrc;
|
|
70
|
-
}
|
|
71
|
-
} else if (isString(config.npmrc)) npmrc = config.npmrc;
|
|
48
|
+
const { npmrc, npmrcFileName } = await resolveNpmrc(packageFile, config);
|
|
72
49
|
const yarnrcYmlFileName = await findLocalSiblingOrParent(packageFile, ".yarnrc.yml");
|
|
73
50
|
const yarnZeroInstall = yarnrcYmlFileName ? await isZeroInstall(yarnrcYmlFileName) : false;
|
|
74
51
|
let yarnrcConfig = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../lib/modules/manager/npm/extract/index.ts"],"sourcesContent":["import {\n isArray,\n isNonEmptyObject,\n isNonEmptyStringAndNotWhitespace,\n isString,\n} from '@sindresorhus/is';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../../config/global.ts';\nimport { logger } from '../../../../logger/index.ts';\nimport {\n findLocalSiblingOrParent,\n getSiblingFileName,\n readLocalFile,\n} from '../../../../util/fs/index.ts';\nimport { newlineRegex, regEx } from '../../../../util/regex.ts';\nimport { NpmDatasource } from '../../../datasource/npm/index.ts';\n\nimport type {\n ExtractConfig,\n PackageFile,\n PackageFileContent,\n} from '../../types.ts';\nimport type { YarnConfig } from '../schema.ts';\nimport type { NpmLockFiles, NpmManagerData } from '../types.ts';\nimport { getExtractedConstraints } from './common/dependency.ts';\nimport {\n extractPackageJson,\n hasPackageManager,\n} from './common/package-file.ts';\nimport { extractPnpmWorkspaceFile, tryParsePnpmWorkspaceYaml } from './pnpm.ts';\nimport { postExtract } from './post/index.ts';\nimport type { NpmPackage } from './types.ts';\nimport { extractYarnCatalogs, isZeroInstall } from './yarn.ts';\nimport {\n loadConfigFromLegacyYarnrc,\n loadConfigFromYarnrcYml,\n resolveRegistryUrl,\n} from './yarnrc.ts';\n\nfunction hasMultipleLockFiles(lockFiles: NpmLockFiles): boolean {\n return Object.values(lockFiles).filter(isString).length > 1;\n}\n\nexport async function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): Promise<PackageFileContent<NpmManagerData> | null> {\n logger.trace(`npm.extractPackageFile(${packageFile})`);\n logger.trace({ content });\n let packageJson: NpmPackage;\n try {\n packageJson = JSON.parse(content);\n } catch {\n logger.debug({ packageFile }, `Invalid JSON`);\n return null;\n }\n\n const res = extractPackageJson(packageJson, packageFile);\n if (!res) {\n return null;\n }\n\n let workspacesPackages: string[] | undefined;\n if (isArray(packageJson.workspaces)) {\n workspacesPackages = packageJson.workspaces;\n } else {\n workspacesPackages = packageJson.workspaces?.packages;\n }\n\n const lockFiles: NpmLockFiles = {\n yarnLock: 'yarn.lock',\n packageLock: 'package-lock.json',\n shrinkwrapJson: 'npm-shrinkwrap.json',\n pnpmShrinkwrap: 'pnpm-lock.yaml',\n };\n\n for (const [key, val] of Object.entries(lockFiles) as [\n 'yarnLock' | 'packageLock' | 'shrinkwrapJson' | 'pnpmShrinkwrap',\n string,\n ][]) {\n const filePath = getSiblingFileName(packageFile, val);\n if (await readLocalFile(filePath, 'utf8')) {\n lockFiles[key] = filePath;\n } else {\n lockFiles[key] = undefined;\n }\n }\n lockFiles.npmLock = lockFiles.packageLock ?? lockFiles.shrinkwrapJson;\n delete lockFiles.packageLock;\n delete lockFiles.shrinkwrapJson;\n\n if (hasMultipleLockFiles(lockFiles)) {\n logger.warn(\n 'Updating multiple npm lock files is deprecated and support will be removed in future versions.',\n );\n }\n\n let npmrc: string | undefined;\n const npmrcFileName = await findLocalSiblingOrParent(packageFile, '.npmrc');\n if (npmrcFileName) {\n let repoNpmrc = await readLocalFile(npmrcFileName, 'utf8');\n if (isString(repoNpmrc)) {\n if (isString(config.npmrc) && !config.npmrcMerge) {\n logger.debug(\n { npmrcFileName },\n 'Repo .npmrc file is ignored due to config.npmrc with config.npmrcMerge=false',\n );\n npmrc = config.npmrc;\n } else {\n npmrc = config.npmrc ?? '';\n if (npmrc.length) {\n if (!npmrc.endsWith('\\n')) {\n npmrc += '\\n';\n }\n }\n if (repoNpmrc?.includes('package-lock')) {\n logger.debug('Stripping package-lock setting from .npmrc');\n repoNpmrc = repoNpmrc.replace(\n regEx(/(^|\\n)package-lock.*?(\\n|$)/g),\n '\\n',\n );\n }\n if (repoNpmrc.includes('=${') && !GlobalConfig.get('exposeAllEnv')) {\n logger.debug(\n { npmrcFileName },\n 'Stripping .npmrc file of lines with variables',\n );\n repoNpmrc = repoNpmrc\n .split(newlineRegex)\n .filter((line) => !line.includes('=${'))\n .join('\\n');\n }\n npmrc += repoNpmrc;\n }\n }\n } else if (isString(config.npmrc)) {\n npmrc = config.npmrc;\n }\n\n const yarnrcYmlFileName = await findLocalSiblingOrParent(\n packageFile,\n '.yarnrc.yml',\n );\n const yarnZeroInstall = yarnrcYmlFileName\n ? await isZeroInstall(yarnrcYmlFileName)\n : false;\n\n let yarnrcConfig: YarnConfig | null = null;\n const repoYarnrcYml = yarnrcYmlFileName\n ? await readLocalFile(yarnrcYmlFileName, 'utf8')\n : null;\n if (isString(repoYarnrcYml) && repoYarnrcYml.trim().length > 0) {\n yarnrcConfig = loadConfigFromYarnrcYml(repoYarnrcYml);\n }\n\n const legacyYarnrcFileName = await findLocalSiblingOrParent(\n packageFile,\n '.yarnrc',\n );\n const repoLegacyYarnrc = legacyYarnrcFileName\n ? await readLocalFile(legacyYarnrcFileName, 'utf8')\n : null;\n if (isString(repoLegacyYarnrc) && repoLegacyYarnrc.trim().length > 0) {\n yarnrcConfig = loadConfigFromLegacyYarnrc(repoLegacyYarnrc);\n }\n\n if (res.deps.length === 0) {\n logger.debug('Package file has no deps');\n if (\n !(\n !!res.managerData?.packageJsonName ||\n !!res.packageFileVersion ||\n !!npmrc ||\n workspacesPackages\n )\n ) {\n logger.debug('Skipping file');\n return null;\n }\n }\n let skipInstalls = config.skipInstalls;\n if (skipInstalls === null) {\n const hasFancyRefs = !!res.deps.some(\n (dep) =>\n !!dep.currentValue?.startsWith('file:') ||\n !!dep.currentValue?.startsWith('npm:'),\n );\n if ((hasFancyRefs && !!lockFiles.npmLock) || yarnZeroInstall) {\n // https://github.com/npm/cli/issues/1432\n // Explanation:\n // - npm install --package-lock-only is buggy for transitive deps in file: and npm: references\n // - So we set skipInstalls to false if file: or npm: refs are found *and* the user hasn't explicitly set the value already\n // - Also, do not skip install if Yarn zero-install is used\n logger.debug('Automatically setting skipInstalls to false');\n skipInstalls = false;\n } else {\n skipInstalls = true;\n }\n }\n\n const extractedConstraints = getExtractedConstraints(res.deps);\n\n if (yarnrcConfig) {\n for (const dep of res.deps) {\n if (dep.depName) {\n const registryUrlFromYarnrcConfig = resolveRegistryUrl(\n dep.packageName ?? dep.depName,\n yarnrcConfig,\n );\n if (\n registryUrlFromYarnrcConfig &&\n dep.datasource === NpmDatasource.id\n ) {\n dep.registryUrls = [registryUrlFromYarnrcConfig];\n }\n }\n }\n }\n\n return {\n ...res,\n npmrc,\n managerData: {\n ...res.managerData,\n ...lockFiles,\n yarnZeroInstall,\n hasPackageManager:\n isNonEmptyStringAndNotWhitespace(packageJson.packageManager) ||\n isNonEmptyObject(packageJson.devEngines?.packageManager),\n workspacesPackages,\n npmrcFileName, // store npmrc file name so we can later tell if it came from the workspace or not\n },\n skipInstalls,\n extractedConstraints,\n };\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile<NpmManagerData>[]> {\n const npmFiles: PackageFile<NpmManagerData>[] = [];\n for (const packageFile of packageFiles) {\n const content = await readLocalFile(packageFile, 'utf8');\n if (content) {\n // pnpm workspace files are their own package file, defined via managerFilePatterns.\n // We duck-type the content here, to allow users to rename the file itself.\n const parsedPnpmWorkspaceYaml = tryParsePnpmWorkspaceYaml(content);\n if (parsedPnpmWorkspaceYaml.success) {\n logger.trace(\n { packageFile },\n `Extracting file as a pnpm workspace YAML file`,\n );\n const deps = await extractPnpmWorkspaceFile(\n parsedPnpmWorkspaceYaml.data,\n packageFile,\n );\n if (deps) {\n npmFiles.push({\n ...deps,\n packageFile,\n });\n }\n } else {\n if (packageFile.endsWith('json')) {\n logger.trace({ packageFile }, `Extracting as a package.json file`);\n\n const deps = await extractPackageFile(content, packageFile, config);\n if (deps) {\n npmFiles.push({\n ...deps,\n packageFile,\n });\n }\n } else {\n logger.trace({ packageFile }, `Extracting as a .yarnrc.yml file`);\n\n const yarnConfig = loadConfigFromYarnrcYml(content);\n\n if (yarnConfig?.catalogs || yarnConfig?.catalog) {\n const hasPackageManagerResult = await hasPackageManager(\n upath.dirname(packageFile),\n );\n const catalogsDeps = await extractYarnCatalogs(\n { catalog: yarnConfig.catalog, catalogs: yarnConfig.catalogs },\n packageFile,\n hasPackageManagerResult,\n );\n if (catalogsDeps) {\n npmFiles.push({\n ...catalogsDeps,\n packageFile,\n });\n }\n }\n }\n }\n } else {\n logger.debug({ packageFile }, `No content found`);\n }\n }\n\n await postExtract(npmFiles);\n return npmFiles;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../lib/modules/manager/npm/extract/index.ts"],"sourcesContent":["import {\n isArray,\n isNonEmptyObject,\n isNonEmptyStringAndNotWhitespace,\n isString,\n} from '@sindresorhus/is';\nimport upath from 'upath';\nimport { logger } from '../../../../logger/index.ts';\nimport {\n findLocalSiblingOrParent,\n getSiblingFileName,\n readLocalFile,\n} from '../../../../util/fs/index.ts';\nimport { NpmDatasource } from '../../../datasource/npm/index.ts';\n\nimport type {\n ExtractConfig,\n PackageFile,\n PackageFileContent,\n} from '../../types.ts';\nimport { resolveNpmrc } from '../npmrc.ts';\nimport type { YarnConfig } from '../schema.ts';\nimport type { NpmLockFiles, NpmManagerData } from '../types.ts';\nimport { getExtractedConstraints } from './common/dependency.ts';\nimport {\n extractPackageJson,\n hasPackageManager,\n} from './common/package-file.ts';\nimport { extractPnpmWorkspaceFile, tryParsePnpmWorkspaceYaml } from './pnpm.ts';\nimport { postExtract } from './post/index.ts';\nimport type { NpmPackage } from './types.ts';\nimport { extractYarnCatalogs, isZeroInstall } from './yarn.ts';\nimport {\n loadConfigFromLegacyYarnrc,\n loadConfigFromYarnrcYml,\n resolveRegistryUrl,\n} from './yarnrc.ts';\n\nfunction hasMultipleLockFiles(lockFiles: NpmLockFiles): boolean {\n return Object.values(lockFiles).filter(isString).length > 1;\n}\n\nexport async function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): Promise<PackageFileContent<NpmManagerData> | null> {\n logger.trace(`npm.extractPackageFile(${packageFile})`);\n logger.trace({ content });\n let packageJson: NpmPackage;\n try {\n packageJson = JSON.parse(content);\n } catch {\n logger.debug({ packageFile }, `Invalid JSON`);\n return null;\n }\n\n const res = extractPackageJson(packageJson, packageFile);\n if (!res) {\n return null;\n }\n\n let workspacesPackages: string[] | undefined;\n if (isArray(packageJson.workspaces)) {\n workspacesPackages = packageJson.workspaces;\n } else {\n workspacesPackages = packageJson.workspaces?.packages;\n }\n\n const lockFiles: NpmLockFiles = {\n yarnLock: 'yarn.lock',\n packageLock: 'package-lock.json',\n shrinkwrapJson: 'npm-shrinkwrap.json',\n pnpmShrinkwrap: 'pnpm-lock.yaml',\n };\n\n for (const [key, val] of Object.entries(lockFiles) as [\n 'yarnLock' | 'packageLock' | 'shrinkwrapJson' | 'pnpmShrinkwrap',\n string,\n ][]) {\n const filePath = getSiblingFileName(packageFile, val);\n if (await readLocalFile(filePath, 'utf8')) {\n lockFiles[key] = filePath;\n } else {\n lockFiles[key] = undefined;\n }\n }\n lockFiles.npmLock = lockFiles.packageLock ?? lockFiles.shrinkwrapJson;\n delete lockFiles.packageLock;\n delete lockFiles.shrinkwrapJson;\n\n if (hasMultipleLockFiles(lockFiles)) {\n logger.warn(\n 'Updating multiple npm lock files is deprecated and support will be removed in future versions.',\n );\n }\n\n const { npmrc, npmrcFileName } = await resolveNpmrc(packageFile, config);\n\n const yarnrcYmlFileName = await findLocalSiblingOrParent(\n packageFile,\n '.yarnrc.yml',\n );\n const yarnZeroInstall = yarnrcYmlFileName\n ? await isZeroInstall(yarnrcYmlFileName)\n : false;\n\n let yarnrcConfig: YarnConfig | null = null;\n const repoYarnrcYml = yarnrcYmlFileName\n ? await readLocalFile(yarnrcYmlFileName, 'utf8')\n : null;\n if (isString(repoYarnrcYml) && repoYarnrcYml.trim().length > 0) {\n yarnrcConfig = loadConfigFromYarnrcYml(repoYarnrcYml);\n }\n\n const legacyYarnrcFileName = await findLocalSiblingOrParent(\n packageFile,\n '.yarnrc',\n );\n const repoLegacyYarnrc = legacyYarnrcFileName\n ? await readLocalFile(legacyYarnrcFileName, 'utf8')\n : null;\n if (isString(repoLegacyYarnrc) && repoLegacyYarnrc.trim().length > 0) {\n yarnrcConfig = loadConfigFromLegacyYarnrc(repoLegacyYarnrc);\n }\n\n if (res.deps.length === 0) {\n logger.debug('Package file has no deps');\n if (\n !(\n !!res.managerData?.packageJsonName ||\n !!res.packageFileVersion ||\n !!npmrc ||\n workspacesPackages\n )\n ) {\n logger.debug('Skipping file');\n return null;\n }\n }\n let skipInstalls = config.skipInstalls;\n if (skipInstalls === null) {\n const hasFancyRefs = !!res.deps.some(\n (dep) =>\n !!dep.currentValue?.startsWith('file:') ||\n !!dep.currentValue?.startsWith('npm:'),\n );\n if ((hasFancyRefs && !!lockFiles.npmLock) || yarnZeroInstall) {\n // https://github.com/npm/cli/issues/1432\n // Explanation:\n // - npm install --package-lock-only is buggy for transitive deps in file: and npm: references\n // - So we set skipInstalls to false if file: or npm: refs are found *and* the user hasn't explicitly set the value already\n // - Also, do not skip install if Yarn zero-install is used\n logger.debug('Automatically setting skipInstalls to false');\n skipInstalls = false;\n } else {\n skipInstalls = true;\n }\n }\n\n const extractedConstraints = getExtractedConstraints(res.deps);\n\n if (yarnrcConfig) {\n for (const dep of res.deps) {\n if (dep.depName) {\n const registryUrlFromYarnrcConfig = resolveRegistryUrl(\n dep.packageName ?? dep.depName,\n yarnrcConfig,\n );\n if (\n registryUrlFromYarnrcConfig &&\n dep.datasource === NpmDatasource.id\n ) {\n dep.registryUrls = [registryUrlFromYarnrcConfig];\n }\n }\n }\n }\n\n return {\n ...res,\n npmrc,\n managerData: {\n ...res.managerData,\n ...lockFiles,\n yarnZeroInstall,\n hasPackageManager:\n isNonEmptyStringAndNotWhitespace(packageJson.packageManager) ||\n isNonEmptyObject(packageJson.devEngines?.packageManager),\n workspacesPackages,\n npmrcFileName, // store npmrc file name so we can later tell if it came from the workspace or not\n },\n skipInstalls,\n extractedConstraints,\n };\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile<NpmManagerData>[]> {\n const npmFiles: PackageFile<NpmManagerData>[] = [];\n for (const packageFile of packageFiles) {\n const content = await readLocalFile(packageFile, 'utf8');\n if (content) {\n // pnpm workspace files are their own package file, defined via managerFilePatterns.\n // We duck-type the content here, to allow users to rename the file itself.\n const parsedPnpmWorkspaceYaml = tryParsePnpmWorkspaceYaml(content);\n if (parsedPnpmWorkspaceYaml.success) {\n logger.trace(\n { packageFile },\n `Extracting file as a pnpm workspace YAML file`,\n );\n const deps = await extractPnpmWorkspaceFile(\n parsedPnpmWorkspaceYaml.data,\n packageFile,\n );\n if (deps) {\n npmFiles.push({\n ...deps,\n packageFile,\n });\n }\n } else {\n if (packageFile.endsWith('json')) {\n logger.trace({ packageFile }, `Extracting as a package.json file`);\n\n const deps = await extractPackageFile(content, packageFile, config);\n if (deps) {\n npmFiles.push({\n ...deps,\n packageFile,\n });\n }\n } else {\n logger.trace({ packageFile }, `Extracting as a .yarnrc.yml file`);\n\n const yarnConfig = loadConfigFromYarnrcYml(content);\n\n if (yarnConfig?.catalogs || yarnConfig?.catalog) {\n const hasPackageManagerResult = await hasPackageManager(\n upath.dirname(packageFile),\n );\n const catalogsDeps = await extractYarnCatalogs(\n { catalog: yarnConfig.catalog, catalogs: yarnConfig.catalogs },\n packageFile,\n hasPackageManagerResult,\n );\n if (catalogsDeps) {\n npmFiles.push({\n ...catalogsDeps,\n packageFile,\n });\n }\n }\n }\n }\n } else {\n logger.debug({ packageFile }, `No content found`);\n }\n }\n\n await postExtract(npmFiles);\n return npmFiles;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { newlineRegex, regEx } from "../../../util/regex.js";
|
|
2
|
+
import { GlobalConfig } from "../../../config/global.js";
|
|
3
|
+
import { logger } from "../../../logger/index.js";
|
|
4
|
+
import { findLocalSiblingOrParent, readLocalFile } from "../../../util/fs/index.js";
|
|
5
|
+
import { isString } from "@sindresorhus/is";
|
|
6
|
+
|
|
7
|
+
//#region lib/modules/manager/npm/npmrc.ts
|
|
8
|
+
async function resolveNpmrc(packageFile, config) {
|
|
9
|
+
let npmrc;
|
|
10
|
+
const npmrcFileName = await findLocalSiblingOrParent(packageFile, ".npmrc");
|
|
11
|
+
if (npmrcFileName) {
|
|
12
|
+
let repoNpmrc = await readLocalFile(npmrcFileName, "utf8");
|
|
13
|
+
if (isString(repoNpmrc)) if (isString(config.npmrc) && !config.npmrcMerge) {
|
|
14
|
+
logger.debug({ npmrcFileName }, "Repo .npmrc file is ignored due to config.npmrc with config.npmrcMerge=false");
|
|
15
|
+
npmrc = config.npmrc;
|
|
16
|
+
} else {
|
|
17
|
+
npmrc = config.npmrc ?? "";
|
|
18
|
+
if (npmrc.length) {
|
|
19
|
+
if (!npmrc.endsWith("\n")) npmrc += "\n";
|
|
20
|
+
}
|
|
21
|
+
if (repoNpmrc?.includes("package-lock")) {
|
|
22
|
+
logger.debug("Stripping package-lock setting from .npmrc");
|
|
23
|
+
repoNpmrc = repoNpmrc.replace(regEx(/(^|\n)package-lock.*?(\n|$)/g), "\n");
|
|
24
|
+
}
|
|
25
|
+
if (repoNpmrc.includes("=${") && !GlobalConfig.get("exposeAllEnv")) {
|
|
26
|
+
logger.debug({ npmrcFileName }, "Stripping .npmrc file of lines with variables");
|
|
27
|
+
repoNpmrc = repoNpmrc.split(newlineRegex).filter((line) => !line.includes("=${")).join("\n");
|
|
28
|
+
}
|
|
29
|
+
npmrc += repoNpmrc;
|
|
30
|
+
}
|
|
31
|
+
} else if (isString(config.npmrc)) npmrc = config.npmrc;
|
|
32
|
+
return {
|
|
33
|
+
npmrc,
|
|
34
|
+
npmrcFileName
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
export { resolveNpmrc };
|
|
40
|
+
//# sourceMappingURL=npmrc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npmrc.js","names":[],"sources":["../../../../lib/modules/manager/npm/npmrc.ts"],"sourcesContent":["import { isString } from '@sindresorhus/is';\nimport { GlobalConfig } from '../../../config/global.ts';\nimport { logger } from '../../../logger/index.ts';\nimport {\n findLocalSiblingOrParent,\n readLocalFile,\n} from '../../../util/fs/index.ts';\nimport { newlineRegex, regEx } from '../../../util/regex.ts';\n\nexport interface NpmrcResult {\n npmrc: string | undefined;\n npmrcFileName: string | null;\n}\n\nexport async function resolveNpmrc(\n packageFile: string,\n config: { npmrc?: string; npmrcMerge?: boolean },\n): Promise<NpmrcResult> {\n let npmrc: string | undefined;\n const npmrcFileName = await findLocalSiblingOrParent(packageFile, '.npmrc');\n if (npmrcFileName) {\n let repoNpmrc = await readLocalFile(npmrcFileName, 'utf8');\n if (isString(repoNpmrc)) {\n if (isString(config.npmrc) && !config.npmrcMerge) {\n logger.debug(\n { npmrcFileName },\n 'Repo .npmrc file is ignored due to config.npmrc with config.npmrcMerge=false',\n );\n npmrc = config.npmrc;\n } else {\n npmrc = config.npmrc ?? '';\n if (npmrc.length) {\n if (!npmrc.endsWith('\\n')) {\n npmrc += '\\n';\n }\n }\n if (repoNpmrc?.includes('package-lock')) {\n logger.debug('Stripping package-lock setting from .npmrc');\n repoNpmrc = repoNpmrc.replace(\n regEx(/(^|\\n)package-lock.*?(\\n|$)/g),\n '\\n',\n );\n }\n if (repoNpmrc.includes('=${') && !GlobalConfig.get('exposeAllEnv')) {\n logger.debug(\n { npmrcFileName },\n 'Stripping .npmrc file of lines with variables',\n );\n repoNpmrc = repoNpmrc\n .split(newlineRegex)\n .filter((line) => !line.includes('=${'))\n .join('\\n');\n }\n npmrc += repoNpmrc;\n }\n }\n } else if (isString(config.npmrc)) {\n npmrc = config.npmrc;\n }\n return { npmrc, npmrcFileName };\n}\n"],"mappings":";;;;;;;AAcA,eAAsB,aACpB,aACA,QACsB;CACtB,IAAI;CACJ,MAAM,gBAAgB,MAAM,yBAAyB,aAAa,SAAS;AAC3E,KAAI,eAAe;EACjB,IAAI,YAAY,MAAM,cAAc,eAAe,OAAO;AAC1D,MAAI,SAAS,UAAU,CACrB,KAAI,SAAS,OAAO,MAAM,IAAI,CAAC,OAAO,YAAY;AAChD,UAAO,MACL,EAAE,eAAe,EACjB,+EACD;AACD,WAAQ,OAAO;SACV;AACL,WAAQ,OAAO,SAAS;AACxB,OAAI,MAAM,QACR;QAAI,CAAC,MAAM,SAAS,KAAK,CACvB,UAAS;;AAGb,OAAI,WAAW,SAAS,eAAe,EAAE;AACvC,WAAO,MAAM,6CAA6C;AAC1D,gBAAY,UAAU,QACpB,MAAM,+BAA+B,EACrC,KACD;;AAEH,OAAI,UAAU,SAAS,MAAM,IAAI,CAAC,aAAa,IAAI,eAAe,EAAE;AAClE,WAAO,MACL,EAAE,eAAe,EACjB,gDACD;AACD,gBAAY,UACT,MAAM,aAAa,CACnB,QAAQ,SAAS,CAAC,KAAK,SAAS,MAAM,CAAC,CACvC,KAAK,KAAK;;AAEf,YAAS;;YAGJ,SAAS,OAAO,MAAM,CAC/B,SAAQ,OAAO;AAEjB,QAAO;EAAE;EAAO;EAAe"}
|
package/package.json
CHANGED
package/renovate-schema.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"title": "JSON schema for Renovate 43.
|
|
2
|
+
"title": "JSON schema for Renovate 43.22.0 config files (https://renovatebot.com/)",
|
|
3
3
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
-
"x-renovate-version": "43.
|
|
4
|
+
"x-renovate-version": "43.22.0",
|
|
5
5
|
"allowComments": true,
|
|
6
6
|
"type": "object",
|
|
7
7
|
"properties": {
|