renovate 43.257.1 → 43.257.3
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/custom/jsonata/index.js +1 -0
- package/dist/modules/manager/custom/jsonata/index.js.map +1 -1
- package/dist/modules/manager/custom/jsonata/types.d.ts +6 -0
- package/dist/modules/manager/custom/types.d.ts +1 -1
- package/dist/modules/manager/fingerprint.generated.js +1 -1
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/workers/repository/update/branch/auto-replace.js +20 -8
- package/dist/workers/repository/update/branch/auto-replace.js.map +1 -1
- package/dist/workers/types.d.ts +3 -1
- package/package.json +5 -5
- package/renovate-schema.json +2 -2
|
@@ -49,6 +49,7 @@ async function extractPackageFile(content, packageFile, config) {
|
|
|
49
49
|
fileFormat: config.fileFormat
|
|
50
50
|
};
|
|
51
51
|
for (const field of validMatchFields.map((f) => `${f}Template`)) if (config[field]) res[field] = config[field];
|
|
52
|
+
if (config.autoReplaceStringTemplate) res.autoReplaceStringTemplate = config.autoReplaceStringTemplate;
|
|
52
53
|
return res;
|
|
53
54
|
}
|
|
54
55
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["parseToml"],"sources":["../../../../../lib/modules/manager/custom/jsonata/index.ts"],"sourcesContent":["import { isNullOrUndefined } from '@sindresorhus/is';\nimport type { Category } from '../../../../constants/index.ts';\nimport { logger } from '../../../../logger/index.ts';\nimport { parseJson } from '../../../../util/common.ts';\nimport { parse as parseToml } from '../../../../util/toml.ts';\nimport { parseYaml } from '../../../../util/yaml.ts';\nimport type { PackageFileContent } from '../../types.ts';\nimport { validMatchFields } from '../utils.ts';\nimport type { JSONataManagerTemplates, JsonataExtractConfig } from './types.ts';\nimport { handleMatching } from './utils.ts';\n\nexport const categories: Category[] = ['custom'];\n\nexport const defaultConfig = {\n pinDigests: false,\n};\nexport const supportedDatasources = ['*'];\nexport const displayName = 'JSONata';\n\nexport async function extractPackageFile(\n content: string,\n packageFile: string,\n config: JsonataExtractConfig,\n): Promise<PackageFileContent | null> {\n let json: unknown;\n try {\n switch (config.fileFormat) {\n case 'json':\n json = parseJson(content, packageFile);\n break;\n case 'yaml':\n json = parseYaml(content);\n break;\n case 'toml':\n json = parseToml(content);\n break;\n }\n } catch (err) {\n logger.debug(\n { err, fileName: packageFile, fileFormat: config.fileFormat },\n 'Error while parsing file',\n );\n return null;\n }\n\n if (isNullOrUndefined(json)) {\n return null;\n }\n\n const deps = await handleMatching(json, packageFile, config);\n if (!deps.length) {\n return null;\n }\n\n const res: PackageFileContent & JSONataManagerTemplates = {\n deps,\n matchStrings: config.matchStrings,\n fileFormat: config.fileFormat,\n };\n\n // copy over templates for autoreplace\n for (const field of validMatchFields.map(\n (f) => `${f}Template` as keyof JSONataManagerTemplates,\n )) {\n if (config[field]) {\n res[field] = config[field];\n }\n }\n\n return res;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAWA,MAAa,aAAyB,CAAC,QAAQ;AAE/C,MAAa,gBAAgB,EAC3B,YAAY,MACd;AACA,MAAa,uBAAuB,CAAC,GAAG;AACxC,MAAa,cAAc;AAE3B,eAAsB,mBACpB,SACA,aACA,QACoC;CACpC,IAAI;CACJ,IAAI;EACF,QAAQ,OAAO,YAAf;GACE,KAAK;IACH,OAAO,UAAU,SAAS,WAAW;IACrC;GACF,KAAK;IACH,OAAO,UAAU,OAAO;IACxB;GACF,KAAK;IACH,OAAOA,MAAU,OAAO;IACxB;EACJ;CACF,SAAS,KAAK;EACZ,OAAO,MACL;GAAE;GAAK,UAAU;GAAa,YAAY,OAAO;EAAW,GAC5D,0BACF;EACA,OAAO;CACT;CAEA,IAAI,kBAAkB,IAAI,GACxB,OAAO;CAGT,MAAM,OAAO,MAAM,eAAe,MAAM,aAAa,MAAM;CAC3D,IAAI,CAAC,KAAK,QACR,OAAO;CAGT,MAAM,MAAoD;EACxD;EACA,cAAc,OAAO;EACrB,YAAY,OAAO;CACrB;CAGA,KAAK,MAAM,SAAS,iBAAiB,KAClC,MAAM,GAAG,EAAE,SACd,GACE,IAAI,OAAO,QACT,IAAI,SAAS,OAAO;
|
|
1
|
+
{"version":3,"file":"index.js","names":["parseToml"],"sources":["../../../../../lib/modules/manager/custom/jsonata/index.ts"],"sourcesContent":["import { isNullOrUndefined } from '@sindresorhus/is';\nimport type { Category } from '../../../../constants/index.ts';\nimport { logger } from '../../../../logger/index.ts';\nimport { parseJson } from '../../../../util/common.ts';\nimport { parse as parseToml } from '../../../../util/toml.ts';\nimport { parseYaml } from '../../../../util/yaml.ts';\nimport type { PackageFileContent } from '../../types.ts';\nimport { validMatchFields } from '../utils.ts';\nimport type { JSONataManagerTemplates, JsonataExtractConfig } from './types.ts';\nimport { handleMatching } from './utils.ts';\n\nexport const categories: Category[] = ['custom'];\n\nexport const defaultConfig = {\n pinDigests: false,\n};\nexport const supportedDatasources = ['*'];\nexport const displayName = 'JSONata';\n\nexport async function extractPackageFile(\n content: string,\n packageFile: string,\n config: JsonataExtractConfig,\n): Promise<PackageFileContent | null> {\n let json: unknown;\n try {\n switch (config.fileFormat) {\n case 'json':\n json = parseJson(content, packageFile);\n break;\n case 'yaml':\n json = parseYaml(content);\n break;\n case 'toml':\n json = parseToml(content);\n break;\n }\n } catch (err) {\n logger.debug(\n { err, fileName: packageFile, fileFormat: config.fileFormat },\n 'Error while parsing file',\n );\n return null;\n }\n\n if (isNullOrUndefined(json)) {\n return null;\n }\n\n const deps = await handleMatching(json, packageFile, config);\n if (!deps.length) {\n return null;\n }\n\n const res: PackageFileContent & JSONataManagerTemplates = {\n deps,\n matchStrings: config.matchStrings,\n fileFormat: config.fileFormat,\n };\n\n // copy over templates for autoreplace\n for (const field of validMatchFields.map(\n (f) => `${f}Template` as keyof JSONataManagerTemplates,\n )) {\n if (config[field]) {\n res[field] = config[field];\n }\n }\n if (config.autoReplaceStringTemplate) {\n res.autoReplaceStringTemplate = config.autoReplaceStringTemplate;\n }\n\n return res;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAWA,MAAa,aAAyB,CAAC,QAAQ;AAE/C,MAAa,gBAAgB,EAC3B,YAAY,MACd;AACA,MAAa,uBAAuB,CAAC,GAAG;AACxC,MAAa,cAAc;AAE3B,eAAsB,mBACpB,SACA,aACA,QACoC;CACpC,IAAI;CACJ,IAAI;EACF,QAAQ,OAAO,YAAf;GACE,KAAK;IACH,OAAO,UAAU,SAAS,WAAW;IACrC;GACF,KAAK;IACH,OAAO,UAAU,OAAO;IACxB;GACF,KAAK;IACH,OAAOA,MAAU,OAAO;IACxB;EACJ;CACF,SAAS,KAAK;EACZ,OAAO,MACL;GAAE;GAAK,UAAU;GAAa,YAAY,OAAO;EAAW,GAC5D,0BACF;EACA,OAAO;CACT;CAEA,IAAI,kBAAkB,IAAI,GACxB,OAAO;CAGT,MAAM,OAAO,MAAM,eAAe,MAAM,aAAa,MAAM;CAC3D,IAAI,CAAC,KAAK,QACR,OAAO;CAGT,MAAM,MAAoD;EACxD;EACA,cAAc,OAAO;EACrB,YAAY,OAAO;CACrB;CAGA,KAAK,MAAM,SAAS,iBAAiB,KAClC,MAAM,GAAG,EAAE,SACd,GACE,IAAI,OAAO,QACT,IAAI,SAAS,OAAO;CAGxB,IAAI,OAAO,2BACT,IAAI,4BAA4B,OAAO;CAGzC,OAAO;AACT"}
|
|
@@ -9,6 +9,12 @@ interface JSONataManagerTemplates {
|
|
|
9
9
|
currentDigestTemplate?: string;
|
|
10
10
|
extractVersionTemplate?: string;
|
|
11
11
|
registryUrlTemplate?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Lets a JSONata manager reshape the updated value before it is written back,
|
|
14
|
+
* e.g. to re-pad a 4-segment version that the datasource returns as 3 segments
|
|
15
|
+
* Needed because the extracted value and the new value can differ in format
|
|
16
|
+
*/
|
|
17
|
+
autoReplaceStringTemplate?: string;
|
|
12
18
|
}
|
|
13
19
|
interface JSONataManagerConfig extends JSONataManagerTemplates {
|
|
14
20
|
fileFormat: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { JSONataManagerConfig } from "./jsonata/types.js";
|
|
2
1
|
import { RegexManagerConfig } from "./regex/types.js";
|
|
2
|
+
import { JSONataManagerConfig } from "./jsonata/types.js";
|
|
3
3
|
|
|
4
4
|
//#region lib/modules/manager/custom/types.d.ts
|
|
5
5
|
interface CustomExtractConfig extends Partial<RegexManagerConfig>, Partial<JSONataManagerConfig> {}
|
|
@@ -115,7 +115,7 @@ hashMap.set("velaci", "fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac
|
|
|
115
115
|
hashMap.set("vendir", "dfd7b905577b362093ce72e6ee597308f97c83678ddb15d6455a1627969b8b7d");
|
|
116
116
|
hashMap.set("woodpecker", "6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045");
|
|
117
117
|
hashMap.set("xcodegen", "dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683");
|
|
118
|
-
hashMap.set("jsonata", "
|
|
118
|
+
hashMap.set("jsonata", "06d83ae6bf80f77b12638d5c785f30bfce4195a37a63026f60e4c16c960ae18b");
|
|
119
119
|
hashMap.set("regex", "dbe6889ea021a05127fed06226d73366fdada2ae577147a5c027996fd325416e");
|
|
120
120
|
//#endregion
|
|
121
121
|
export { hashMap };
|
|
@@ -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('ant','2df5943cf0ed19a21b94df13729dbb925655548130caf37e3e22bebaed518e17');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','a599d9834f33a92e7c25753f933621f0b1b076ba8a068628a3f64e1dc545b739');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','8d5314f630038df8a974a285ab5066a0b4d69bc4dcd0a4fa2e9e6c6747073229');\nhashMap.set('bazelisk','49e6bd1fc8f03facd06e517dc64596833b90ee0a079a45cff78f0eeb3c3566f8');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','2df1756b14b3d690e5ad1295bc1e78d8a8d7b967a552fd7b8e3274866a5acf3e');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','cf7b07339eec46097c479fc5d9aa1c699d74b11954aea156eef7b893251b070d');\nhashMap.set('cake','65ad4f28c318675b9edb49dbd11d677f42c762b01b3f5a25dd3b2f345ecd387e');\nhashMap.set('cargo','23fcc425ccd3a50559210e0ab8c84c1d47cf5c617cd5d58afdcf258ab862bafa');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','91cbeb33ea20f9838e2c81a1195eb806f0b38fa282bc3679f62552f20575ca85');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','08310c39254947632d42058f74f755e9d3f3019c2edeeaf52b5142917085e2df');\nhashMap.set('composer','991a845be7ede562df4abfb005caf5e22cded077cec46711f8c008e468fbd633');\nhashMap.set('conan','b846e8812d65d4201dc0bf7c1d5c344e3a1edaaff6441010875171028be2f0fb');\nhashMap.set('copier','b26904512023c7785e86ee57744f16b336a380ae80d2b85924bf7c30e3c6f1c5');\nhashMap.set('cpanfile','6a1d67d9c8751123deaf0c7f3ac38a07024e960c140f8228fcbcb93954fdca01');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deno','1c418ca043ad0cbba47282c9cd602ed0945b4adcfcdb2d968fb1bcafe727190e');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','ac472ae4897dc1df85326dbd89a8c3488579ae2b180014ffcf085ce422e19dbd');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','d73d5d35f10df0599a561d9c8d25f3935350407d0e3bd3a1d1545295f278912e');\nhashMap.set('flux','22de4afb277e579dcbc7ec765eca2ddc5e4b1bb39d49e762e8af026fa062c53f');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','475d08a1a75e5732dd6003f63bd98c91ce09e42229cdcd9d2d060c60ce474e49');\nhashMap.set('github-actions','100d3ecacf720978aef32ec929d879b6392485ecaab0cb395d497f24a0ab3850');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','e7ee3392d1f900fc1299308c8e930db9288790c6d0b6c35f1a62e55683090d34');\nhashMap.set('gomod','f675e8c7bf83c00101d9725814927c69d04e5e347dc6b0346a7100892b1ea4c9');\nhashMap.set('gradle','1108234b4fcfebf95c453111f652ab75f5c6cc6c4472efb60b7bc29cbe683612');\nhashMap.set('gradle-wrapper','f85031e7feb4e811aa5f29c589a30f8076a078e5bbf366fb65fb28b5a47d2c44');\nhashMap.set('haskell-cabal','a4f01c22bdd453dd4610473d92946f7764ceb27624547325f5e21d294214811b');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','5bbc18bf059640191e2237408ca3b442556834e5c1c05d3317e82e7e097ae1f2');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','86799a6d3fba17b1f4c8017d308cba44a1efcf6d6290371263b8cf14be9e16ae');\nhashMap.set('hermit','f30ba5fe8ee46997c1f3d15235e6ff64c96d7ce5e439ee99f8008580348fe0da');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','56ef90301143874355fd2ed25dff7c646875f701f97422d02e01d45608a88f31');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','f918a7f378dc207cadf291e7481006008c69623f690902ed921e1e33db270b78');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','c6ee547378d5c5619a0fe94be35f9838e0f006b4807a896e9caefefa20efacf7');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','2bf7b65d51718daf3eec4f30c0fc7f2f045f4f8f24862bebe17c2174abb606b9');\nhashMap.set('maven-wrapper','976ed8a59cf43b0c765b1a49ebc5669478e78278cf48f4ce3d0deb49647d10e3');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','248fe4f1ea5c985921c286785792c97e06fc41f402b2d45df82f6aecd17f710e');\nhashMap.set('mise','670975cb441aaa5524010e5b681c0a70a4fe96b1785da51f10a8fd45eebff4e0');\nhashMap.set('mix','ead2078c33550ec8695298c053f549866e1701fa096440d4228e3e51f8f1e49c');\nhashMap.set('nix','95f0827f7ec9a3bfd5119534f129aad6cf26b28e99d55aec0945f08bbfff9fb1');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','1b2c36731a273216a8b56e12989e1c9255b516faf26b200dfa66083214d28f9a');\nhashMap.set('nuget','54c1e149b47e4f588e99857e3e62b420f50649a868a28944a0c82a7b7fb530e7');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','fffd093eaf6de3cab7b2f6b57e57715aa240fcd958954f31fbc47f18e1730a4d');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','4a46edd733ab3ebbc398b57ba1d6b0a3a49e98b23841631ab9a716ff1146d510');\nhashMap.set('pip_requirements','5ef648e398281294c79ec5dc56a868af904efddc536c9ce8d693a8425afd9677');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','1d0af710667f6dce377feae9aa238b21fe5e0e75e75758a70f5e9758c6cb6678');\nhashMap.set('pixi','7d183aaae4370a0c62496bbff60ad12fd4dd46822630541f712f437dcea021e1');\nhashMap.set('poetry','0211739556f8193c70fa69cbf66c60e688042fd7dc7a2fe08f9f328b35ad1f82');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('proto','412053d4550026b4ace490b46e970915b87ec1abf0b0a0c6c8c58ccf1fc16843');\nhashMap.set('pub','aad0dd6524158fda5345d75662f337b275c6c46b29f051ba94201d42c22b0da8');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e355e13e104351a8b3516a8e272fc5f7e625c9f39b0c492ba27283a36227c2d4');\nhashMap.set('renovate-config','2a4e4fb671aed5d0c900b8d54c31bfef46ca36d0f4e16b00ff73377b9c09fb69');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('rust-toolchain','e957f1f1563af4e5fbd1c552ca15632b7808d9d2e51ec0da6022a1f84372caec');\nhashMap.set('sbt','74125bd9c76a5724092258cd1dee1ea99fc0d735b463a2b64fedc5d950efde2a');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','05b3158e88771ed4629e171592cf4f1bf0ff342f8aeae89be0b340c630cc6d8e');\nhashMap.set('swift','56cdc6fe4cd00519f953459f94323c71677f6bde007537eef891154fb8696db1');\nhashMap.set('tekton','fdc5b9b5edec2a90cda2f858f3ebc532aa8efb1187d1e0b7c89b07796e9cb6cd');\nhashMap.set('terraform','045931e1d5ae5607fb7fbcdfe6d2cd9cf45020432de7c78fbb3432579c8b3310');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','142c3f0549c4152297615b5bbf3a78ba8f7ce6a0cebcea63b81e9815dca40494');\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','dfd7b905577b362093ce72e6ee597308f97c83678ddb15d6455a1627969b8b7d');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','38e53aa73ff0f211f8d92f3489f6f3183234e59528d9f635de40a4f6b60d0937');\nhashMap.set('regex','dbe6889ea021a05127fed06226d73366fdada2ae577147a5c027996fd325416e');"],"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('ant','2df5943cf0ed19a21b94df13729dbb925655548130caf37e3e22bebaed518e17');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','a599d9834f33a92e7c25753f933621f0b1b076ba8a068628a3f64e1dc545b739');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','8d5314f630038df8a974a285ab5066a0b4d69bc4dcd0a4fa2e9e6c6747073229');\nhashMap.set('bazelisk','49e6bd1fc8f03facd06e517dc64596833b90ee0a079a45cff78f0eeb3c3566f8');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','2df1756b14b3d690e5ad1295bc1e78d8a8d7b967a552fd7b8e3274866a5acf3e');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','cf7b07339eec46097c479fc5d9aa1c699d74b11954aea156eef7b893251b070d');\nhashMap.set('cake','65ad4f28c318675b9edb49dbd11d677f42c762b01b3f5a25dd3b2f345ecd387e');\nhashMap.set('cargo','23fcc425ccd3a50559210e0ab8c84c1d47cf5c617cd5d58afdcf258ab862bafa');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','91cbeb33ea20f9838e2c81a1195eb806f0b38fa282bc3679f62552f20575ca85');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','08310c39254947632d42058f74f755e9d3f3019c2edeeaf52b5142917085e2df');\nhashMap.set('composer','991a845be7ede562df4abfb005caf5e22cded077cec46711f8c008e468fbd633');\nhashMap.set('conan','b846e8812d65d4201dc0bf7c1d5c344e3a1edaaff6441010875171028be2f0fb');\nhashMap.set('copier','b26904512023c7785e86ee57744f16b336a380ae80d2b85924bf7c30e3c6f1c5');\nhashMap.set('cpanfile','6a1d67d9c8751123deaf0c7f3ac38a07024e960c140f8228fcbcb93954fdca01');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deno','1c418ca043ad0cbba47282c9cd602ed0945b4adcfcdb2d968fb1bcafe727190e');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','ac472ae4897dc1df85326dbd89a8c3488579ae2b180014ffcf085ce422e19dbd');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','d73d5d35f10df0599a561d9c8d25f3935350407d0e3bd3a1d1545295f278912e');\nhashMap.set('flux','22de4afb277e579dcbc7ec765eca2ddc5e4b1bb39d49e762e8af026fa062c53f');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','475d08a1a75e5732dd6003f63bd98c91ce09e42229cdcd9d2d060c60ce474e49');\nhashMap.set('github-actions','100d3ecacf720978aef32ec929d879b6392485ecaab0cb395d497f24a0ab3850');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','e7ee3392d1f900fc1299308c8e930db9288790c6d0b6c35f1a62e55683090d34');\nhashMap.set('gomod','f675e8c7bf83c00101d9725814927c69d04e5e347dc6b0346a7100892b1ea4c9');\nhashMap.set('gradle','1108234b4fcfebf95c453111f652ab75f5c6cc6c4472efb60b7bc29cbe683612');\nhashMap.set('gradle-wrapper','f85031e7feb4e811aa5f29c589a30f8076a078e5bbf366fb65fb28b5a47d2c44');\nhashMap.set('haskell-cabal','a4f01c22bdd453dd4610473d92946f7764ceb27624547325f5e21d294214811b');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','5bbc18bf059640191e2237408ca3b442556834e5c1c05d3317e82e7e097ae1f2');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','86799a6d3fba17b1f4c8017d308cba44a1efcf6d6290371263b8cf14be9e16ae');\nhashMap.set('hermit','f30ba5fe8ee46997c1f3d15235e6ff64c96d7ce5e439ee99f8008580348fe0da');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','56ef90301143874355fd2ed25dff7c646875f701f97422d02e01d45608a88f31');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','f918a7f378dc207cadf291e7481006008c69623f690902ed921e1e33db270b78');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','c6ee547378d5c5619a0fe94be35f9838e0f006b4807a896e9caefefa20efacf7');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','2bf7b65d51718daf3eec4f30c0fc7f2f045f4f8f24862bebe17c2174abb606b9');\nhashMap.set('maven-wrapper','976ed8a59cf43b0c765b1a49ebc5669478e78278cf48f4ce3d0deb49647d10e3');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','248fe4f1ea5c985921c286785792c97e06fc41f402b2d45df82f6aecd17f710e');\nhashMap.set('mise','670975cb441aaa5524010e5b681c0a70a4fe96b1785da51f10a8fd45eebff4e0');\nhashMap.set('mix','ead2078c33550ec8695298c053f549866e1701fa096440d4228e3e51f8f1e49c');\nhashMap.set('nix','95f0827f7ec9a3bfd5119534f129aad6cf26b28e99d55aec0945f08bbfff9fb1');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','1b2c36731a273216a8b56e12989e1c9255b516faf26b200dfa66083214d28f9a');\nhashMap.set('nuget','54c1e149b47e4f588e99857e3e62b420f50649a868a28944a0c82a7b7fb530e7');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','fffd093eaf6de3cab7b2f6b57e57715aa240fcd958954f31fbc47f18e1730a4d');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','4a46edd733ab3ebbc398b57ba1d6b0a3a49e98b23841631ab9a716ff1146d510');\nhashMap.set('pip_requirements','5ef648e398281294c79ec5dc56a868af904efddc536c9ce8d693a8425afd9677');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','1d0af710667f6dce377feae9aa238b21fe5e0e75e75758a70f5e9758c6cb6678');\nhashMap.set('pixi','7d183aaae4370a0c62496bbff60ad12fd4dd46822630541f712f437dcea021e1');\nhashMap.set('poetry','0211739556f8193c70fa69cbf66c60e688042fd7dc7a2fe08f9f328b35ad1f82');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('proto','412053d4550026b4ace490b46e970915b87ec1abf0b0a0c6c8c58ccf1fc16843');\nhashMap.set('pub','aad0dd6524158fda5345d75662f337b275c6c46b29f051ba94201d42c22b0da8');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e355e13e104351a8b3516a8e272fc5f7e625c9f39b0c492ba27283a36227c2d4');\nhashMap.set('renovate-config','2a4e4fb671aed5d0c900b8d54c31bfef46ca36d0f4e16b00ff73377b9c09fb69');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('rust-toolchain','e957f1f1563af4e5fbd1c552ca15632b7808d9d2e51ec0da6022a1f84372caec');\nhashMap.set('sbt','74125bd9c76a5724092258cd1dee1ea99fc0d735b463a2b64fedc5d950efde2a');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','05b3158e88771ed4629e171592cf4f1bf0ff342f8aeae89be0b340c630cc6d8e');\nhashMap.set('swift','56cdc6fe4cd00519f953459f94323c71677f6bde007537eef891154fb8696db1');\nhashMap.set('tekton','fdc5b9b5edec2a90cda2f858f3ebc532aa8efb1187d1e0b7c89b07796e9cb6cd');\nhashMap.set('terraform','045931e1d5ae5607fb7fbcdfe6d2cd9cf45020432de7c78fbb3432579c8b3310');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','142c3f0549c4152297615b5bbf3a78ba8f7ce6a0cebcea63b81e9815dca40494');\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','dfd7b905577b362093ce72e6ee597308f97c83678ddb15d6455a1627969b8b7d');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','06d83ae6bf80f77b12638d5c785f30bfce4195a37a63026f60e4c16c960ae18b');\nhashMap.set('regex','dbe6889ea021a05127fed06226d73366fdada2ae577147a5c027996fd325416e');"],"mappings":"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"}
|
|
@@ -63,14 +63,26 @@ async function confirmIfDepUpdated(upgrade, newContent) {
|
|
|
63
63
|
return false;
|
|
64
64
|
}
|
|
65
65
|
if (upgrade.newValue && upgrade.newValue !== newUpgrade.currentValue) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
66
|
+
let templateMatchesExtractedValue = false;
|
|
67
|
+
if (upgrade.autoReplaceStringTemplate) try {
|
|
68
|
+
templateMatchesExtractedValue = compile(upgrade.autoReplaceStringTemplate, upgrade, false) === newUpgrade.currentValue;
|
|
69
|
+
} catch (err) {
|
|
70
|
+
logger.debug({
|
|
71
|
+
err,
|
|
72
|
+
manager,
|
|
73
|
+
packageFile
|
|
74
|
+
}, "Failed to compile autoReplaceStringTemplate in confirmIfDepUpdated");
|
|
75
|
+
}
|
|
76
|
+
if (!templateMatchesExtractedValue) {
|
|
77
|
+
logger.debug({
|
|
78
|
+
depName: upgrade.depName,
|
|
79
|
+
manager,
|
|
80
|
+
packageFile,
|
|
81
|
+
expectedValue: upgrade.newValue,
|
|
82
|
+
foundValue: newUpgrade.currentValue
|
|
83
|
+
}, "Value is not updated");
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
74
86
|
}
|
|
75
87
|
if (upgrade.newDigest && (upgrade.isPinDigest === true || upgrade.currentDigest) && upgrade.newDigest !== newUpgrade.currentDigest) {
|
|
76
88
|
logger.debug({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-replace.js","names":[],"sources":["../../../../../lib/workers/repository/update/branch/auto-replace.ts"],"sourcesContent":["// TODO #22198\nimport { isNumber, isString, isUndefined } from '@sindresorhus/is';\nimport { WORKER_FILE_UPDATE_FAILED } from '../../../../constants/error-messages.ts';\nimport { logger } from '../../../../logger/index.ts';\nimport { extractPackageFile } from '../../../../modules/manager/index.ts';\nimport type { PackageDependency } from '../../../../modules/manager/types.ts';\nimport { writeLocalFile } from '../../../../util/fs/index.ts';\nimport { escapeRegExp, regEx } from '../../../../util/regex.ts';\nimport { matchAt, replaceAt } from '../../../../util/string.ts';\nimport { compile } from '../../../../util/template/index.ts';\nimport type { BranchUpgradeConfig } from '../../../types.ts';\n\nexport async function confirmIfDepUpdated(\n upgrade: BranchUpgradeConfig,\n newContent: string,\n): Promise<boolean> {\n const { manager, packageFile, depIndex } = upgrade;\n let newUpgrade: PackageDependency;\n try {\n const newExtract = await extractPackageFile(\n manager,\n newContent,\n packageFile!,\n upgrade,\n );\n // istanbul ignore if\n if (!newExtract) {\n // TODO: fix types (#22198)\n logger.debug(\n `Could not extract ${packageFile!} (manager=${manager}) after autoreplace. Did the autoreplace make the file unparseable?`,\n );\n logger.trace(\n { packageFile, content: newContent },\n 'packageFile content after autoreplace',\n );\n return false;\n }\n // istanbul ignore if\n if (!newExtract.deps?.length) {\n logger.debug(\n `Extracted ${packageFile!} after autoreplace has no deps array. Did the autoreplace make the file unparseable?`,\n );\n return false;\n }\n // istanbul ignore if\n if (isNumber(depIndex) && depIndex >= newExtract.deps.length) {\n logger.debug(\n `Extracted ${packageFile!} after autoreplace has fewer deps than expected.`,\n );\n return false;\n }\n newUpgrade = newExtract.deps[depIndex!];\n } catch (err) {\n /* istanbul ignore next */\n logger.debug({ manager, packageFile, err }, 'Failed to parse newContent');\n }\n\n if (!newUpgrade!) {\n logger.debug(`No newUpgrade in ${packageFile!}`);\n return false;\n }\n\n if (\n upgrade.depName !== newUpgrade.depName &&\n upgrade.newName !== newUpgrade.depName\n ) {\n logger.debug(\n {\n manager,\n packageFile,\n currentDepName: upgrade.depName,\n newDepName: newUpgrade.depName,\n },\n 'depName mismatch',\n );\n return false;\n }\n\n if (upgrade.newName && upgrade.newName !== newUpgrade.depName) {\n logger.debug(\n {\n manager,\n packageFile,\n currentDepName: upgrade.depName,\n newDepName: newUpgrade.depName,\n },\n 'depName is not updated',\n );\n return false;\n }\n\n if (upgrade.newValue && upgrade.newValue !== newUpgrade.currentValue) {\n logger.debug(\n {\n depName: upgrade.depName,\n manager,\n packageFile,\n expectedValue: upgrade.newValue,\n foundValue: newUpgrade.currentValue,\n },\n 'Value is not updated',\n );\n return false;\n }\n\n if (\n upgrade.newDigest &&\n (upgrade.isPinDigest === true || upgrade.currentDigest) &&\n upgrade.newDigest !== newUpgrade.currentDigest\n ) {\n logger.debug(\n {\n depName: upgrade.depName,\n manager,\n packageFile,\n expectedValue: upgrade.newDigest,\n foundValue: newUpgrade.currentDigest,\n },\n 'Digest is not updated',\n );\n return false;\n }\n\n return true;\n}\n\nfunction getDepsSignature(deps: PackageDependency[]): string {\n // TODO: types (#22198)\n return deps\n .map(\n (dep) =>\n `${(dep.depName ?? dep.packageName)!}${(dep.packageName ??\n dep.depName)!}`,\n )\n .join(',');\n}\n\nfunction firstIndexOf(\n existingContent: string,\n depName: string,\n currentValue: string,\n position = 0,\n): number {\n const depIndex = existingContent.indexOf(depName, position);\n const valIndex = existingContent.indexOf(currentValue, position);\n const index = depIndex < valIndex ? depIndex : valIndex;\n if (index < 0) {\n return position === 0 ? -1 : existingContent.length;\n }\n return index;\n}\n\nexport async function checkBranchDepsMatchBaseDeps(\n upgrade: BranchUpgradeConfig,\n branchContent: string,\n): Promise<boolean> {\n const { baseDeps, manager, packageFile } = upgrade;\n try {\n const res = await extractPackageFile(\n manager,\n branchContent,\n packageFile!,\n upgrade,\n )!;\n const branchDeps = res!.deps;\n return getDepsSignature(baseDeps!) === getDepsSignature(branchDeps);\n } catch /* istanbul ignore next */ {\n logger.info(\n { manager, packageFile },\n 'Failed to parse branchContent - rebasing',\n );\n return false;\n }\n}\n\nasync function checkExistingBranch(\n upgrade: BranchUpgradeConfig,\n existingContent: string,\n): Promise<string | null> {\n const { packageFile, depName } = upgrade;\n if (!(await checkBranchDepsMatchBaseDeps(upgrade, existingContent))) {\n logger.debug(\n { packageFile, depName },\n 'Rebasing branch after deps list has changed',\n );\n return null;\n }\n if (!(await confirmIfDepUpdated(upgrade, existingContent))) {\n logger.debug(\n { packageFile, depName },\n 'Rebasing after outdated branch dep found',\n );\n return null;\n }\n // TODO: fix types (#22198)\n logger.debug(`Branch dep ${depName!} in ${packageFile!} is already updated`);\n return existingContent;\n}\n\nexport async function doAutoReplace(\n upgrade: BranchUpgradeConfig,\n existingContent: string,\n reuseExistingBranch: boolean,\n firstUpdate = true,\n): Promise<string | null> {\n const {\n packageFile,\n depName,\n depNameTemplate,\n newName,\n currentValue,\n currentValueTemplate,\n newValue,\n currentDigest,\n currentDigestShort,\n newDigest,\n autoReplaceGlobalMatch,\n autoReplaceStringTemplate,\n } = upgrade;\n /*\n If replacement support for more managers is added,\n please also update the list in docs/usage/configuration-options.md\n at replacementName and replacementVersion\n */\n if (reuseExistingBranch) {\n return await checkExistingBranch(upgrade, existingContent);\n }\n const valueChanging =\n isString(currentValue) && isString(newValue) && currentValue !== newValue;\n const digestChanging =\n isString(currentDigest) &&\n isString(newDigest) &&\n currentDigest !== newDigest;\n let replaceWithoutReplaceString =\n isString(newName) &&\n newName !== depName &&\n (isUndefined(upgrade.replaceString) ||\n !upgrade.replaceString?.includes(depName!));\n // fallback must contain the field being updated, else the replacement is\n // a no-op for managers where value and digest live in separate tokens\n let replaceString = upgrade.replaceString;\n if (isUndefined(replaceString)) {\n if (valueChanging && digestChanging) {\n // no single fallback covers both — use the per-field path\n replaceWithoutReplaceString = true;\n replaceString = currentValue;\n } else if (digestChanging) {\n replaceString = currentDigest;\n } else {\n replaceString = currentValue ?? currentDigest;\n }\n }\n logger.trace({ depName, replaceString }, 'autoReplace replaceString');\n let searchIndex: number;\n if (replaceWithoutReplaceString) {\n searchIndex = firstIndexOf(existingContent, depName!, currentValue!);\n } else {\n searchIndex = existingContent.indexOf(replaceString!);\n }\n if (searchIndex === -1) {\n logger.info(\n { packageFile, depName, existingContent, replaceString },\n 'Cannot find replaceString in current file content. Was it already updated?',\n );\n return existingContent;\n }\n try {\n let newString: string;\n if (autoReplaceStringTemplate && !newName) {\n newString = compile(autoReplaceStringTemplate, upgrade, false);\n } else {\n newString = replaceString!;\n\n const autoReplaceRegExpFlag = autoReplaceGlobalMatch ? 'g' : '';\n if (currentValue && newValue && currentValue !== newValue) {\n if (!newString.includes(currentValue)) {\n logger.debug(\n { stringToReplace: newString, currentValue, currentValueTemplate },\n 'currentValue not found in string to replace',\n );\n }\n newString = newString.replace(\n regEx(escapeRegExp(currentValue), autoReplaceRegExpFlag),\n newValue,\n );\n }\n if (depName && newName && depName !== newName) {\n if (!newString.includes(depName)) {\n logger.debug(\n { stringToReplace: newString, depName, depNameTemplate },\n 'depName not found in string to replace',\n );\n }\n newString = newString.replace(\n regEx(escapeRegExp(depName), autoReplaceRegExpFlag),\n newName,\n );\n }\n if (currentDigest && newDigest && currentDigest !== newDigest) {\n if (!newString.includes(currentDigest)) {\n logger.debug(\n { stringToReplace: newString, currentDigest },\n 'currentDigest not found in string to replace',\n );\n }\n newString = newString.replace(\n regEx(escapeRegExp(currentDigest), autoReplaceRegExpFlag),\n newDigest,\n );\n } else if (\n currentDigestShort &&\n newDigest &&\n currentDigestShort !== newDigest &&\n // Only use short digest replacement when there's no full currentDigest\n // that already matches newDigest (otherwise we'd incorrectly replace\n // part of an already-correct digest)\n !(currentDigest && currentDigest === newDigest)\n ) {\n if (!newString.includes(currentDigestShort)) {\n logger.debug(\n { stringToReplace: newString, currentDigestShort },\n 'currentDigestShort not found in string to replace',\n );\n }\n newString = newString.replace(\n regEx(escapeRegExp(currentDigestShort), autoReplaceRegExpFlag),\n newDigest,\n );\n }\n }\n if (!firstUpdate && (await confirmIfDepUpdated(upgrade, existingContent))) {\n logger.debug(\n { packageFile, depName },\n 'Package file is already updated - no work to do',\n );\n return existingContent;\n }\n logger.debug(\n { packageFile, depName },\n `Starting search at index ${searchIndex}`,\n );\n let newContent = existingContent;\n let nameReplaced = !newName;\n let valueReplaced = !newValue;\n let digestReplaced = !newDigest;\n let startIndex = searchIndex;\n // Iterate through the rest of the file\n for (; searchIndex < newContent.length; searchIndex += 1) {\n // First check if we have a hit for the old version\n if (replaceWithoutReplaceString) {\n // look for depName and currentValue\n if (newName && matchAt(newContent, searchIndex, depName!)) {\n logger.debug(\n { packageFile, depName },\n `Found depName at index ${searchIndex}`,\n );\n if (nameReplaced) {\n startIndex = firstIndexOf(\n existingContent,\n depName!,\n currentValue!,\n startIndex + 1,\n );\n searchIndex = startIndex - 1;\n await writeLocalFile(upgrade.packageFile!, existingContent);\n newContent = existingContent;\n nameReplaced = !newName;\n valueReplaced = !newValue;\n digestReplaced = !newDigest;\n continue;\n }\n // replace with newName\n newContent = replaceAt(newContent, searchIndex, depName!, newName);\n await writeLocalFile(upgrade.packageFile!, newContent);\n nameReplaced = true;\n searchIndex += newName.length - 1;\n } else if (\n newValue &&\n matchAt(newContent, searchIndex, currentValue!)\n ) {\n logger.debug(\n { packageFile, currentValue },\n `Found currentValue at index ${searchIndex}`,\n );\n if (valueReplaced) {\n startIndex = firstIndexOf(\n existingContent,\n depName!,\n currentValue!,\n startIndex + 1,\n );\n searchIndex = startIndex - 1;\n await writeLocalFile(upgrade.packageFile!, existingContent);\n newContent = existingContent;\n nameReplaced = !newName;\n valueReplaced = !newValue;\n digestReplaced = !newDigest;\n continue;\n }\n // Now test if the result matches\n newContent = replaceAt(\n newContent,\n searchIndex,\n currentValue!,\n newValue,\n );\n await writeLocalFile(upgrade.packageFile!, newContent);\n valueReplaced = true;\n searchIndex += newValue.length - 1;\n } else if (\n newDigest &&\n matchAt(newContent, searchIndex, currentDigest!)\n ) {\n logger.debug(\n { packageFile, currentDigest },\n `Found currentDigest at index ${searchIndex}`,\n );\n if (digestReplaced) {\n startIndex = firstIndexOf(\n existingContent,\n depName!,\n currentValue!,\n startIndex + 1,\n );\n searchIndex = startIndex - 1;\n await writeLocalFile(upgrade.packageFile!, existingContent);\n newContent = existingContent;\n nameReplaced = !newName;\n valueReplaced = !newValue;\n digestReplaced = !newDigest;\n continue;\n }\n // Now test if the result matches\n newContent = replaceAt(\n newContent,\n searchIndex,\n currentDigest!,\n newDigest,\n );\n await writeLocalFile(upgrade.packageFile!, newContent);\n digestReplaced = true;\n searchIndex += newDigest.length - 1;\n }\n if (nameReplaced && valueReplaced && digestReplaced) {\n if (await confirmIfDepUpdated(upgrade, newContent)) {\n return newContent;\n }\n startIndex = firstIndexOf(\n existingContent,\n depName!,\n currentValue!,\n startIndex + 1,\n );\n searchIndex = startIndex - 1;\n await writeLocalFile(upgrade.packageFile!, existingContent);\n newContent = existingContent;\n nameReplaced = !newName;\n valueReplaced = !newValue;\n digestReplaced = !newDigest;\n }\n } else if (matchAt(newContent, searchIndex, replaceString!)) {\n logger.debug(\n { packageFile, depName },\n `Found match at index ${searchIndex}`,\n );\n // Now test if the result matches\n newContent = replaceAt(\n newContent,\n searchIndex,\n replaceString!,\n newString,\n );\n await writeLocalFile(upgrade.packageFile!, newContent);\n if (await confirmIfDepUpdated(upgrade, newContent)) {\n return newContent;\n }\n await writeLocalFile(upgrade.packageFile!, existingContent);\n newContent = existingContent;\n }\n }\n } catch (err) {\n /* istanbul ignore next */\n logger.debug({ packageFile, depName, err }, 'doAutoReplace error');\n }\n // istanbul ignore next\n throw new Error(WORKER_FILE_UPDATE_FAILED);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auto-replace.js","names":[],"sources":["../../../../../lib/workers/repository/update/branch/auto-replace.ts"],"sourcesContent":["// TODO #22198\nimport { isNumber, isString, isUndefined } from '@sindresorhus/is';\nimport { WORKER_FILE_UPDATE_FAILED } from '../../../../constants/error-messages.ts';\nimport { logger } from '../../../../logger/index.ts';\nimport { extractPackageFile } from '../../../../modules/manager/index.ts';\nimport type { PackageDependency } from '../../../../modules/manager/types.ts';\nimport { writeLocalFile } from '../../../../util/fs/index.ts';\nimport { escapeRegExp, regEx } from '../../../../util/regex.ts';\nimport { matchAt, replaceAt } from '../../../../util/string.ts';\nimport { compile } from '../../../../util/template/index.ts';\nimport type { BranchUpgradeConfig } from '../../../types.ts';\n\nexport async function confirmIfDepUpdated(\n upgrade: BranchUpgradeConfig,\n newContent: string,\n): Promise<boolean> {\n const { manager, packageFile, depIndex } = upgrade;\n let newUpgrade: PackageDependency;\n try {\n const newExtract = await extractPackageFile(\n manager,\n newContent,\n packageFile!,\n upgrade,\n );\n // istanbul ignore if\n if (!newExtract) {\n // TODO: fix types (#22198)\n logger.debug(\n `Could not extract ${packageFile!} (manager=${manager}) after autoreplace. Did the autoreplace make the file unparseable?`,\n );\n logger.trace(\n { packageFile, content: newContent },\n 'packageFile content after autoreplace',\n );\n return false;\n }\n // istanbul ignore if\n if (!newExtract.deps?.length) {\n logger.debug(\n `Extracted ${packageFile!} after autoreplace has no deps array. Did the autoreplace make the file unparseable?`,\n );\n return false;\n }\n // istanbul ignore if\n if (isNumber(depIndex) && depIndex >= newExtract.deps.length) {\n logger.debug(\n `Extracted ${packageFile!} after autoreplace has fewer deps than expected.`,\n );\n return false;\n }\n newUpgrade = newExtract.deps[depIndex!];\n } catch (err) {\n /* istanbul ignore next */\n logger.debug({ manager, packageFile, err }, 'Failed to parse newContent');\n }\n\n if (!newUpgrade!) {\n logger.debug(`No newUpgrade in ${packageFile!}`);\n return false;\n }\n\n if (\n upgrade.depName !== newUpgrade.depName &&\n upgrade.newName !== newUpgrade.depName\n ) {\n logger.debug(\n {\n manager,\n packageFile,\n currentDepName: upgrade.depName,\n newDepName: newUpgrade.depName,\n },\n 'depName mismatch',\n );\n return false;\n }\n\n if (upgrade.newName && upgrade.newName !== newUpgrade.depName) {\n logger.debug(\n {\n manager,\n packageFile,\n currentDepName: upgrade.depName,\n newDepName: newUpgrade.depName,\n },\n 'depName is not updated',\n );\n return false;\n }\n\n if (upgrade.newValue && upgrade.newValue !== newUpgrade.currentValue) {\n // accept reshaped values produced by autoReplaceStringTemplate\n let templateMatchesExtractedValue = false;\n if (upgrade.autoReplaceStringTemplate) {\n try {\n const compiledValue = compile(\n upgrade.autoReplaceStringTemplate,\n upgrade,\n false,\n );\n templateMatchesExtractedValue =\n compiledValue === newUpgrade.currentValue;\n } catch (err) {\n logger.debug(\n { err, manager, packageFile },\n 'Failed to compile autoReplaceStringTemplate in confirmIfDepUpdated',\n );\n }\n }\n if (!templateMatchesExtractedValue) {\n logger.debug(\n {\n depName: upgrade.depName,\n manager,\n packageFile,\n expectedValue: upgrade.newValue,\n foundValue: newUpgrade.currentValue,\n },\n 'Value is not updated',\n );\n return false;\n }\n }\n\n if (\n upgrade.newDigest &&\n (upgrade.isPinDigest === true || upgrade.currentDigest) &&\n upgrade.newDigest !== newUpgrade.currentDigest\n ) {\n logger.debug(\n {\n depName: upgrade.depName,\n manager,\n packageFile,\n expectedValue: upgrade.newDigest,\n foundValue: newUpgrade.currentDigest,\n },\n 'Digest is not updated',\n );\n return false;\n }\n\n return true;\n}\n\nfunction getDepsSignature(deps: PackageDependency[]): string {\n // TODO: types (#22198)\n return deps\n .map(\n (dep) =>\n `${(dep.depName ?? dep.packageName)!}${(dep.packageName ??\n dep.depName)!}`,\n )\n .join(',');\n}\n\nfunction firstIndexOf(\n existingContent: string,\n depName: string,\n currentValue: string,\n position = 0,\n): number {\n const depIndex = existingContent.indexOf(depName, position);\n const valIndex = existingContent.indexOf(currentValue, position);\n const index = depIndex < valIndex ? depIndex : valIndex;\n if (index < 0) {\n return position === 0 ? -1 : existingContent.length;\n }\n return index;\n}\n\nexport async function checkBranchDepsMatchBaseDeps(\n upgrade: BranchUpgradeConfig,\n branchContent: string,\n): Promise<boolean> {\n const { baseDeps, manager, packageFile } = upgrade;\n try {\n const res = await extractPackageFile(\n manager,\n branchContent,\n packageFile!,\n upgrade,\n )!;\n const branchDeps = res!.deps;\n return getDepsSignature(baseDeps!) === getDepsSignature(branchDeps);\n } catch /* istanbul ignore next */ {\n logger.info(\n { manager, packageFile },\n 'Failed to parse branchContent - rebasing',\n );\n return false;\n }\n}\n\nasync function checkExistingBranch(\n upgrade: BranchUpgradeConfig,\n existingContent: string,\n): Promise<string | null> {\n const { packageFile, depName } = upgrade;\n if (!(await checkBranchDepsMatchBaseDeps(upgrade, existingContent))) {\n logger.debug(\n { packageFile, depName },\n 'Rebasing branch after deps list has changed',\n );\n return null;\n }\n if (!(await confirmIfDepUpdated(upgrade, existingContent))) {\n logger.debug(\n { packageFile, depName },\n 'Rebasing after outdated branch dep found',\n );\n return null;\n }\n // TODO: fix types (#22198)\n logger.debug(`Branch dep ${depName!} in ${packageFile!} is already updated`);\n return existingContent;\n}\n\nexport async function doAutoReplace(\n upgrade: BranchUpgradeConfig,\n existingContent: string,\n reuseExistingBranch: boolean,\n firstUpdate = true,\n): Promise<string | null> {\n const {\n packageFile,\n depName,\n depNameTemplate,\n newName,\n currentValue,\n currentValueTemplate,\n newValue,\n currentDigest,\n currentDigestShort,\n newDigest,\n autoReplaceGlobalMatch,\n autoReplaceStringTemplate,\n } = upgrade;\n /*\n If replacement support for more managers is added,\n please also update the list in docs/usage/configuration-options.md\n at replacementName and replacementVersion\n */\n if (reuseExistingBranch) {\n return await checkExistingBranch(upgrade, existingContent);\n }\n const valueChanging =\n isString(currentValue) && isString(newValue) && currentValue !== newValue;\n const digestChanging =\n isString(currentDigest) &&\n isString(newDigest) &&\n currentDigest !== newDigest;\n let replaceWithoutReplaceString =\n isString(newName) &&\n newName !== depName &&\n (isUndefined(upgrade.replaceString) ||\n !upgrade.replaceString?.includes(depName!));\n // fallback must contain the field being updated, else the replacement is\n // a no-op for managers where value and digest live in separate tokens\n let replaceString = upgrade.replaceString;\n if (isUndefined(replaceString)) {\n if (valueChanging && digestChanging) {\n // no single fallback covers both — use the per-field path\n replaceWithoutReplaceString = true;\n replaceString = currentValue;\n } else if (digestChanging) {\n replaceString = currentDigest;\n } else {\n replaceString = currentValue ?? currentDigest;\n }\n }\n logger.trace({ depName, replaceString }, 'autoReplace replaceString');\n let searchIndex: number;\n if (replaceWithoutReplaceString) {\n searchIndex = firstIndexOf(existingContent, depName!, currentValue!);\n } else {\n searchIndex = existingContent.indexOf(replaceString!);\n }\n if (searchIndex === -1) {\n logger.info(\n { packageFile, depName, existingContent, replaceString },\n 'Cannot find replaceString in current file content. Was it already updated?',\n );\n return existingContent;\n }\n try {\n let newString: string;\n if (autoReplaceStringTemplate && !newName) {\n newString = compile(autoReplaceStringTemplate, upgrade, false);\n } else {\n newString = replaceString!;\n\n const autoReplaceRegExpFlag = autoReplaceGlobalMatch ? 'g' : '';\n if (currentValue && newValue && currentValue !== newValue) {\n if (!newString.includes(currentValue)) {\n logger.debug(\n { stringToReplace: newString, currentValue, currentValueTemplate },\n 'currentValue not found in string to replace',\n );\n }\n newString = newString.replace(\n regEx(escapeRegExp(currentValue), autoReplaceRegExpFlag),\n newValue,\n );\n }\n if (depName && newName && depName !== newName) {\n if (!newString.includes(depName)) {\n logger.debug(\n { stringToReplace: newString, depName, depNameTemplate },\n 'depName not found in string to replace',\n );\n }\n newString = newString.replace(\n regEx(escapeRegExp(depName), autoReplaceRegExpFlag),\n newName,\n );\n }\n if (currentDigest && newDigest && currentDigest !== newDigest) {\n if (!newString.includes(currentDigest)) {\n logger.debug(\n { stringToReplace: newString, currentDigest },\n 'currentDigest not found in string to replace',\n );\n }\n newString = newString.replace(\n regEx(escapeRegExp(currentDigest), autoReplaceRegExpFlag),\n newDigest,\n );\n } else if (\n currentDigestShort &&\n newDigest &&\n currentDigestShort !== newDigest &&\n // Only use short digest replacement when there's no full currentDigest\n // that already matches newDigest (otherwise we'd incorrectly replace\n // part of an already-correct digest)\n !(currentDigest && currentDigest === newDigest)\n ) {\n if (!newString.includes(currentDigestShort)) {\n logger.debug(\n { stringToReplace: newString, currentDigestShort },\n 'currentDigestShort not found in string to replace',\n );\n }\n newString = newString.replace(\n regEx(escapeRegExp(currentDigestShort), autoReplaceRegExpFlag),\n newDigest,\n );\n }\n }\n if (!firstUpdate && (await confirmIfDepUpdated(upgrade, existingContent))) {\n logger.debug(\n { packageFile, depName },\n 'Package file is already updated - no work to do',\n );\n return existingContent;\n }\n logger.debug(\n { packageFile, depName },\n `Starting search at index ${searchIndex}`,\n );\n let newContent = existingContent;\n let nameReplaced = !newName;\n let valueReplaced = !newValue;\n let digestReplaced = !newDigest;\n let startIndex = searchIndex;\n // Iterate through the rest of the file\n for (; searchIndex < newContent.length; searchIndex += 1) {\n // First check if we have a hit for the old version\n if (replaceWithoutReplaceString) {\n // look for depName and currentValue\n if (newName && matchAt(newContent, searchIndex, depName!)) {\n logger.debug(\n { packageFile, depName },\n `Found depName at index ${searchIndex}`,\n );\n if (nameReplaced) {\n startIndex = firstIndexOf(\n existingContent,\n depName!,\n currentValue!,\n startIndex + 1,\n );\n searchIndex = startIndex - 1;\n await writeLocalFile(upgrade.packageFile!, existingContent);\n newContent = existingContent;\n nameReplaced = !newName;\n valueReplaced = !newValue;\n digestReplaced = !newDigest;\n continue;\n }\n // replace with newName\n newContent = replaceAt(newContent, searchIndex, depName!, newName);\n await writeLocalFile(upgrade.packageFile!, newContent);\n nameReplaced = true;\n searchIndex += newName.length - 1;\n } else if (\n newValue &&\n matchAt(newContent, searchIndex, currentValue!)\n ) {\n logger.debug(\n { packageFile, currentValue },\n `Found currentValue at index ${searchIndex}`,\n );\n if (valueReplaced) {\n startIndex = firstIndexOf(\n existingContent,\n depName!,\n currentValue!,\n startIndex + 1,\n );\n searchIndex = startIndex - 1;\n await writeLocalFile(upgrade.packageFile!, existingContent);\n newContent = existingContent;\n nameReplaced = !newName;\n valueReplaced = !newValue;\n digestReplaced = !newDigest;\n continue;\n }\n // Now test if the result matches\n newContent = replaceAt(\n newContent,\n searchIndex,\n currentValue!,\n newValue,\n );\n await writeLocalFile(upgrade.packageFile!, newContent);\n valueReplaced = true;\n searchIndex += newValue.length - 1;\n } else if (\n newDigest &&\n matchAt(newContent, searchIndex, currentDigest!)\n ) {\n logger.debug(\n { packageFile, currentDigest },\n `Found currentDigest at index ${searchIndex}`,\n );\n if (digestReplaced) {\n startIndex = firstIndexOf(\n existingContent,\n depName!,\n currentValue!,\n startIndex + 1,\n );\n searchIndex = startIndex - 1;\n await writeLocalFile(upgrade.packageFile!, existingContent);\n newContent = existingContent;\n nameReplaced = !newName;\n valueReplaced = !newValue;\n digestReplaced = !newDigest;\n continue;\n }\n // Now test if the result matches\n newContent = replaceAt(\n newContent,\n searchIndex,\n currentDigest!,\n newDigest,\n );\n await writeLocalFile(upgrade.packageFile!, newContent);\n digestReplaced = true;\n searchIndex += newDigest.length - 1;\n }\n if (nameReplaced && valueReplaced && digestReplaced) {\n if (await confirmIfDepUpdated(upgrade, newContent)) {\n return newContent;\n }\n startIndex = firstIndexOf(\n existingContent,\n depName!,\n currentValue!,\n startIndex + 1,\n );\n searchIndex = startIndex - 1;\n await writeLocalFile(upgrade.packageFile!, existingContent);\n newContent = existingContent;\n nameReplaced = !newName;\n valueReplaced = !newValue;\n digestReplaced = !newDigest;\n }\n } else if (matchAt(newContent, searchIndex, replaceString!)) {\n logger.debug(\n { packageFile, depName },\n `Found match at index ${searchIndex}`,\n );\n // Now test if the result matches\n newContent = replaceAt(\n newContent,\n searchIndex,\n replaceString!,\n newString,\n );\n await writeLocalFile(upgrade.packageFile!, newContent);\n if (await confirmIfDepUpdated(upgrade, newContent)) {\n return newContent;\n }\n await writeLocalFile(upgrade.packageFile!, existingContent);\n newContent = existingContent;\n }\n }\n } catch (err) {\n /* istanbul ignore next */\n logger.debug({ packageFile, depName, err }, 'doAutoReplace error');\n }\n // istanbul ignore next\n throw new Error(WORKER_FILE_UPDATE_FAILED);\n}\n"],"mappings":"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"}
|
package/dist/workers/types.d.ts
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import { ConstraintName } from "../util/exec/types.js";
|
|
2
2
|
import { Timestamp } from "../util/timestamp.js";
|
|
3
3
|
import { Release } from "../modules/datasource/types.js";
|
|
4
|
+
import { RegexManagerConfig } from "../modules/manager/custom/regex/types.js";
|
|
4
5
|
import { FileChange } from "../util/git/types.js";
|
|
5
6
|
import { PlatformPrOptions } from "../modules/platform/types.js";
|
|
6
7
|
import { MergeConfidence } from "../util/merge-confidence/types.js";
|
|
7
8
|
import { ChangeLogRelease, ChangeLogResult } from "./repository/update/pr/changelog/types.js";
|
|
8
9
|
import { BranchStatus } from "../types/branch-status.js";
|
|
9
10
|
import { ArtifactError, ArtifactNotice, ExtractConfig, LookupUpdate, PackageDependency, PackageFile } from "../modules/manager/types.js";
|
|
11
|
+
import { JSONataManagerConfig } from "../modules/manager/custom/jsonata/types.js";
|
|
10
12
|
import { GroupConfig, LegacyAdminConfig, RenovateConfig, RenovateSharedConfig, UpdateType, ValidationMessage } from "../config/types.js";
|
|
11
13
|
import { Merge } from "type-fest";
|
|
12
14
|
|
|
13
15
|
//#region lib/workers/types.d.ts
|
|
14
16
|
type ReleaseWithNotes = Release & Partial<ChangeLogRelease>;
|
|
15
|
-
interface BranchUpgradeConfig extends Merge<RenovateConfig, PackageDependency>, Partial<LookupUpdate>, RenovateSharedConfig {
|
|
17
|
+
interface BranchUpgradeConfig extends Merge<RenovateConfig, PackageDependency>, Partial<LookupUpdate>, Partial<RegexManagerConfig>, Partial<JSONataManagerConfig>, RenovateSharedConfig {
|
|
16
18
|
artifactErrors?: ArtifactError[];
|
|
17
19
|
artifactNotices?: ArtifactNotice[];
|
|
18
20
|
autoReplaceStringTemplate?: string;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "renovate",
|
|
3
3
|
"description": "Automated dependency updates. Flexible so you don't need to be.",
|
|
4
|
-
"version": "43.257.
|
|
4
|
+
"version": "43.257.3",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"renovate": "dist/renovate.js",
|
|
@@ -99,18 +99,18 @@
|
|
|
99
99
|
"@cdktf/hcl2json": "0.21.0",
|
|
100
100
|
"@opentelemetry/api": "1.9.1",
|
|
101
101
|
"@opentelemetry/context-async-hooks": "2.9.0",
|
|
102
|
-
"@opentelemetry/exporter-trace-otlp-http": "0.
|
|
102
|
+
"@opentelemetry/exporter-trace-otlp-http": "0.220.0",
|
|
103
103
|
"@opentelemetry/instrumentation": "0.220.0",
|
|
104
104
|
"@opentelemetry/instrumentation-bunyan": "0.64.0",
|
|
105
|
-
"@opentelemetry/instrumentation-http": "0.
|
|
105
|
+
"@opentelemetry/instrumentation-http": "0.220.0",
|
|
106
106
|
"@opentelemetry/instrumentation-redis": "0.67.0",
|
|
107
107
|
"@opentelemetry/resource-detector-aws": "2.19.0",
|
|
108
108
|
"@opentelemetry/resource-detector-azure": "0.27.0",
|
|
109
109
|
"@opentelemetry/resource-detector-gcp": "0.54.0",
|
|
110
110
|
"@opentelemetry/resource-detector-github": "0.32.0",
|
|
111
111
|
"@opentelemetry/resources": "2.9.0",
|
|
112
|
-
"@opentelemetry/sdk-trace-base": "2.
|
|
113
|
-
"@opentelemetry/sdk-trace-node": "2.
|
|
112
|
+
"@opentelemetry/sdk-trace-base": "2.9.0",
|
|
113
|
+
"@opentelemetry/sdk-trace-node": "2.9.0",
|
|
114
114
|
"@opentelemetry/semantic-conventions": "1.41.1",
|
|
115
115
|
"@pnpm/parse-overrides": "1001.0.4",
|
|
116
116
|
"@qnighy/marshal": "0.1.3",
|
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 43.257.
|
|
3
|
+
"title": "JSON schema for Renovate 43.257.3 config files (https://renovatebot.com/)",
|
|
4
4
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
5
|
-
"x-renovate-version": "43.257.
|
|
5
|
+
"x-renovate-version": "43.257.3",
|
|
6
6
|
"allowComments": true,
|
|
7
7
|
"type": "object",
|
|
8
8
|
"definitions": {
|