renovate 43.136.3 → 43.137.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.
@@ -41,7 +41,7 @@ hashMap.set("fleet", "d73d5d35f10df0599a561d9c8d25f3935350407d0e3bd3a1d1545295f2
41
41
  hashMap.set("flux", "427e0c1a5b1d8337503a9a568a76532fbde0bab8b355fa8f47312de50eadf2f6");
42
42
  hashMap.set("fvm", "9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90");
43
43
  hashMap.set("git-submodules", "fbbf1c7b7b6f4166fa3beee96a3283d007b388e9ecb6a14f76123c8ab8c78071");
44
- hashMap.set("github-actions", "49c1733a35ee643fbc4cbd169004c851f0f4636cc8683341bfa5266f12fb0615");
44
+ hashMap.set("github-actions", "d4b664f2ae7bb2c6fdd8794df578a44b7370437a5b8bd499684b579ebbb0adb0");
45
45
  hashMap.set("gitlabci", "0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6");
46
46
  hashMap.set("gitlabci-include", "354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab");
47
47
  hashMap.set("glasskube", "253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70");
@@ -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','8640868d2249c9a0fbc57680fa81cf0c8c35f170258c50ac3ffb3a4f798cc5ae');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','1f6fcf620e9c6cd35991380cb6eafb94ec60cd77cbd13335ebe3a1d9727416c9');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','ff071fcf8b53036956627d2a430ccdf256e30bee4d7e80c329379879d836a931');\nhashMap.set('bazelisk','b6ec532dfa7c8f82ad4084df864ac6276e87c27285369323902afc146d3537ac');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','1322232bf1d0c4fa796e31a00488453bdcd00d4958431d9e424c1635e60a99bd');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','6d7e9d2018ac03e15f19e8b40ef70dd87d509d5affca24bc464d085899880a25');\nhashMap.set('cake','65ad4f28c318675b9edb49dbd11d677f42c762b01b3f5a25dd3b2f345ecd387e');\nhashMap.set('cargo','308d7ab4c6d24027b050bf659dfab0e510d9a22f8134695a7c68214908ee4634');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','135937d4720718304adb0ba998516f8ce38c3220ccd18b00b8c70c62b45df4da');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','b6ac3b4a6b8a5b32daed37bf695fe177cdb1b4a94ae7f7fb2f4c4c096c0a004c');\nhashMap.set('composer','cdb6895574020cec402e0b878e4078b62f1acfd0392a861cbb523036634f6383');\nhashMap.set('conan','aecc3917d77146db4e57dd12944be1beff860e90b7ebdd2d8fbc449fc1a06574');\nhashMap.set('copier','faa3b79991256a6fc0957fdcd530a1bc8aee65913d5aff2b1b4d226dcd44d008');\nhashMap.set('cpanfile','6a1d67d9c8751123deaf0c7f3ac38a07024e960c140f8228fcbcb93954fdca01');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','bcf5334e8a21190baaa25436acf2f17fbf095504262a4e9ee7c62ffb644eb716');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','d73d5d35f10df0599a561d9c8d25f3935350407d0e3bd3a1d1545295f278912e');\nhashMap.set('flux','427e0c1a5b1d8337503a9a568a76532fbde0bab8b355fa8f47312de50eadf2f6');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','fbbf1c7b7b6f4166fa3beee96a3283d007b388e9ecb6a14f76123c8ab8c78071');\nhashMap.set('github-actions','49c1733a35ee643fbc4cbd169004c851f0f4636cc8683341bfa5266f12fb0615');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','b717a48c525ad6b1d434c6a9db828ddebbb85e94519e89ddc4040878e3600e84');\nhashMap.set('gomod','82e877b22c0dd0217368760bb5d38430657fff63d07c289793a866f0845d2976');\nhashMap.set('gradle','882a835107334db9a6fe1b830d8230f020436b5152b35d87142916281639479f');\nhashMap.set('gradle-wrapper','90d2ecb9d0b113f8e946d4ea221c040f17f91af846e1ff4f9fc1514ad4324b74');\nhashMap.set('haskell-cabal','d796ec6859e63ab4f1b7030c4016071202c3a44c7c11d4a9131d7e2ba19b396d');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','e5783484b81247279563da3c835afe4002edfc412e13fb91877818ca44ae65f2');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','7724bf6cc3ff4afec1809899f619a332f4350049b9578b5c4634514b4448cf2b');\nhashMap.set('hermit','672c328e4baea3a1ccd2cde2364db01c8033a8c077bf63a5b914fc20ee1de838');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','56ef90301143874355fd2ed25dff7c646875f701f97422d02e01d45608a88f31');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','4b73c32ddc3fe45d9777106d45b116777a2960e6e631256a6553060e602f893c');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','1e44d6ef8622252dac6d9649fb04badd12d4827eb2a55f74792aa9de2b915775');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','fd6bfc21be851ed076eabea1a91a89b25eb82129734c7cb0c2e684385cf1ea69');\nhashMap.set('maven-wrapper','9a868d1328f911eb72f9e65a64d46c86ae347aab0153d1cf4e9a62ad9e0d6cb0');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','b816a49c8525716454d0a2bc9127916d5b27e5cca7b2aa2030312f218942af3e');\nhashMap.set('mise','38177382f3785cfe7cce92994bfb429b68f5165e6eef1bdcd2c7a3d8d5414da2');\nhashMap.set('mix','1116e1adf1c18c866f0a9e6fa065c4fb9da055d8d150e625344899bb94095481');\nhashMap.set('nix','f3ffec2f14e7261de8068895b91392e992dcef208fbaf52110d6862e4712c031');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','eaf9fe4981de8f7504227f3be88445f60f87ba74f9b9c7e54284bc2bb41320b3');\nhashMap.set('nuget','5cc468acb3b3a721c70c1a4674382e8e50999873a84ecaa32c4f02d0107ddab1');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','f503497a4adef31b29572176e9a69d52fa9b0bfe3477b6e228c906aeb4861de5');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','89152ad6c89f278395f32d289dc3890823c233366547d228e97dd1319aa144b5');\nhashMap.set('pip_requirements','d5c474c524bc7adc1aae065da0531bd22d9f7f52523b018f2461f6c29e12fdf3');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','50f5a54ed714fd3d738c1aa9a353cf3aab767899acdcb763088d4bd04f3a737b');\nhashMap.set('pixi','395114828787d8fcc3b3bd9f6df9507eafecacdd9061c1ad10f9ecf803e7fc30');\nhashMap.set('poetry','7f227b8b912b405df7735e9dc7c178f03021844f0c027d4b321c023c330c390a');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('pub','0fbad9f77579fcec3a623c6feab56e71934c67a79bb8f4f0f847452051d2a0ba');\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','74125bd9c76a5724092258cd1dee1ea99fc0d735b463a2b64fedc5d950efde2a');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','167a5cc79098803be3b815a28cc40ef3361c455751e1d6a7a99ba91bfce26709');\nhashMap.set('swift','79ec9a6a2a8bb4853bb78bbb3a2a6e64e3b32b0ddeb312385abb3a14366ad505');\nhashMap.set('tekton','4e35c75bba4abc9c3cf49c55da6c19db4f4e9181d1fd9583288ab55ef7c944fd');\nhashMap.set('terraform','51aa6b0a49001494e7ee718d01312961c7fbd244831b42ceefd690d75404e795');\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','4627230d3b7698c41aac192d57b65b091c860c8f858c89d6af4b06ed6a32fae6');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','3b5f465b586993f92c8490e70885e7eecce9b6556bcc376dd9c11db8ee9e6960');\nhashMap.set('regex','7b643b49e498465cf91b25b8b840bb1fec8c8a3a59bfa8f97a39c976675325a0');"],"mappings":";AAAA,MAAa,0BAAU,IAAI,KAAqB;AAEhD,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,kBAAiB,mEAAmE;AAChG,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,mBAAkB,mEAAmE;AACjG,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,kBAAiB,mEAAmE;AAChG,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,gBAAe,mEAAmE;AAC9F,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,uBAAsB,mEAAmE;AACrG,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,eAAc,mEAAmE;AAC7F,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,gBAAe,mEAAmE;AAC9F,QAAQ,IAAI,kBAAiB,mEAAmE;AAChG,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,kBAAiB,mEAAmE;AAChG,QAAQ,IAAI,kBAAiB,mEAAmE;AAChG,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,oBAAmB,mEAAmE;AAClG,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,kBAAiB,mEAAmE;AAChG,QAAQ,IAAI,iBAAgB,mEAAmE;AAC/F,QAAQ,IAAI,qBAAoB,mEAAmE;AACnG,QAAQ,IAAI,eAAc,mEAAmE;AAC7F,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,0BAAyB,mEAAmE;AACxG,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,mBAAkB,mEAAmE;AACjG,QAAQ,IAAI,iBAAgB,mEAAmE;AAC/F,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,iBAAgB,mEAAmE;AAC/F,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,eAAc,mEAAmE;AAC7F,QAAQ,IAAI,oBAAmB,mEAAmE;AAClG,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,2BAA0B,mEAAmE;AACzG,QAAQ,IAAI,gBAAe,mEAAmE;AAC9F,QAAQ,IAAI,mBAAkB,mEAAmE;AACjG,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,qBAAoB,mEAAmE;AACnG,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,sBAAqB,mEAAmE;AACpG,QAAQ,IAAI,iBAAgB,mEAAmE;AAC/F,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,SAAQ,mEAAmE"}
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','8640868d2249c9a0fbc57680fa81cf0c8c35f170258c50ac3ffb3a4f798cc5ae');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','1f6fcf620e9c6cd35991380cb6eafb94ec60cd77cbd13335ebe3a1d9727416c9');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','ff071fcf8b53036956627d2a430ccdf256e30bee4d7e80c329379879d836a931');\nhashMap.set('bazelisk','b6ec532dfa7c8f82ad4084df864ac6276e87c27285369323902afc146d3537ac');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','1322232bf1d0c4fa796e31a00488453bdcd00d4958431d9e424c1635e60a99bd');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','6d7e9d2018ac03e15f19e8b40ef70dd87d509d5affca24bc464d085899880a25');\nhashMap.set('cake','65ad4f28c318675b9edb49dbd11d677f42c762b01b3f5a25dd3b2f345ecd387e');\nhashMap.set('cargo','308d7ab4c6d24027b050bf659dfab0e510d9a22f8134695a7c68214908ee4634');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','135937d4720718304adb0ba998516f8ce38c3220ccd18b00b8c70c62b45df4da');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','b6ac3b4a6b8a5b32daed37bf695fe177cdb1b4a94ae7f7fb2f4c4c096c0a004c');\nhashMap.set('composer','cdb6895574020cec402e0b878e4078b62f1acfd0392a861cbb523036634f6383');\nhashMap.set('conan','aecc3917d77146db4e57dd12944be1beff860e90b7ebdd2d8fbc449fc1a06574');\nhashMap.set('copier','faa3b79991256a6fc0957fdcd530a1bc8aee65913d5aff2b1b4d226dcd44d008');\nhashMap.set('cpanfile','6a1d67d9c8751123deaf0c7f3ac38a07024e960c140f8228fcbcb93954fdca01');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','bcf5334e8a21190baaa25436acf2f17fbf095504262a4e9ee7c62ffb644eb716');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','d73d5d35f10df0599a561d9c8d25f3935350407d0e3bd3a1d1545295f278912e');\nhashMap.set('flux','427e0c1a5b1d8337503a9a568a76532fbde0bab8b355fa8f47312de50eadf2f6');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','fbbf1c7b7b6f4166fa3beee96a3283d007b388e9ecb6a14f76123c8ab8c78071');\nhashMap.set('github-actions','d4b664f2ae7bb2c6fdd8794df578a44b7370437a5b8bd499684b579ebbb0adb0');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','b717a48c525ad6b1d434c6a9db828ddebbb85e94519e89ddc4040878e3600e84');\nhashMap.set('gomod','82e877b22c0dd0217368760bb5d38430657fff63d07c289793a866f0845d2976');\nhashMap.set('gradle','882a835107334db9a6fe1b830d8230f020436b5152b35d87142916281639479f');\nhashMap.set('gradle-wrapper','90d2ecb9d0b113f8e946d4ea221c040f17f91af846e1ff4f9fc1514ad4324b74');\nhashMap.set('haskell-cabal','d796ec6859e63ab4f1b7030c4016071202c3a44c7c11d4a9131d7e2ba19b396d');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','e5783484b81247279563da3c835afe4002edfc412e13fb91877818ca44ae65f2');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','7724bf6cc3ff4afec1809899f619a332f4350049b9578b5c4634514b4448cf2b');\nhashMap.set('hermit','672c328e4baea3a1ccd2cde2364db01c8033a8c077bf63a5b914fc20ee1de838');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','56ef90301143874355fd2ed25dff7c646875f701f97422d02e01d45608a88f31');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','4b73c32ddc3fe45d9777106d45b116777a2960e6e631256a6553060e602f893c');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','1e44d6ef8622252dac6d9649fb04badd12d4827eb2a55f74792aa9de2b915775');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','fd6bfc21be851ed076eabea1a91a89b25eb82129734c7cb0c2e684385cf1ea69');\nhashMap.set('maven-wrapper','9a868d1328f911eb72f9e65a64d46c86ae347aab0153d1cf4e9a62ad9e0d6cb0');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','b816a49c8525716454d0a2bc9127916d5b27e5cca7b2aa2030312f218942af3e');\nhashMap.set('mise','38177382f3785cfe7cce92994bfb429b68f5165e6eef1bdcd2c7a3d8d5414da2');\nhashMap.set('mix','1116e1adf1c18c866f0a9e6fa065c4fb9da055d8d150e625344899bb94095481');\nhashMap.set('nix','f3ffec2f14e7261de8068895b91392e992dcef208fbaf52110d6862e4712c031');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','eaf9fe4981de8f7504227f3be88445f60f87ba74f9b9c7e54284bc2bb41320b3');\nhashMap.set('nuget','5cc468acb3b3a721c70c1a4674382e8e50999873a84ecaa32c4f02d0107ddab1');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','f503497a4adef31b29572176e9a69d52fa9b0bfe3477b6e228c906aeb4861de5');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','89152ad6c89f278395f32d289dc3890823c233366547d228e97dd1319aa144b5');\nhashMap.set('pip_requirements','d5c474c524bc7adc1aae065da0531bd22d9f7f52523b018f2461f6c29e12fdf3');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','50f5a54ed714fd3d738c1aa9a353cf3aab767899acdcb763088d4bd04f3a737b');\nhashMap.set('pixi','395114828787d8fcc3b3bd9f6df9507eafecacdd9061c1ad10f9ecf803e7fc30');\nhashMap.set('poetry','7f227b8b912b405df7735e9dc7c178f03021844f0c027d4b321c023c330c390a');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('pub','0fbad9f77579fcec3a623c6feab56e71934c67a79bb8f4f0f847452051d2a0ba');\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','74125bd9c76a5724092258cd1dee1ea99fc0d735b463a2b64fedc5d950efde2a');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','167a5cc79098803be3b815a28cc40ef3361c455751e1d6a7a99ba91bfce26709');\nhashMap.set('swift','79ec9a6a2a8bb4853bb78bbb3a2a6e64e3b32b0ddeb312385abb3a14366ad505');\nhashMap.set('tekton','4e35c75bba4abc9c3cf49c55da6c19db4f4e9181d1fd9583288ab55ef7c944fd');\nhashMap.set('terraform','51aa6b0a49001494e7ee718d01312961c7fbd244831b42ceefd690d75404e795');\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','4627230d3b7698c41aac192d57b65b091c860c8f858c89d6af4b06ed6a32fae6');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','3b5f465b586993f92c8490e70885e7eecce9b6556bcc376dd9c11db8ee9e6960');\nhashMap.set('regex','7b643b49e498465cf91b25b8b840bb1fec8c8a3a59bfa8f97a39c976675325a0');"],"mappings":";AAAA,MAAa,0BAAU,IAAI,KAAqB;AAEhD,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,kBAAiB,mEAAmE;AAChG,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,mBAAkB,mEAAmE;AACjG,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,kBAAiB,mEAAmE;AAChG,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,gBAAe,mEAAmE;AAC9F,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,uBAAsB,mEAAmE;AACrG,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,eAAc,mEAAmE;AAC7F,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,gBAAe,mEAAmE;AAC9F,QAAQ,IAAI,kBAAiB,mEAAmE;AAChG,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,kBAAiB,mEAAmE;AAChG,QAAQ,IAAI,kBAAiB,mEAAmE;AAChG,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,oBAAmB,mEAAmE;AAClG,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,kBAAiB,mEAAmE;AAChG,QAAQ,IAAI,iBAAgB,mEAAmE;AAC/F,QAAQ,IAAI,qBAAoB,mEAAmE;AACnG,QAAQ,IAAI,eAAc,mEAAmE;AAC7F,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,0BAAyB,mEAAmE;AACxG,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,mBAAkB,mEAAmE;AACjG,QAAQ,IAAI,iBAAgB,mEAAmE;AAC/F,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,iBAAgB,mEAAmE;AAC/F,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,eAAc,mEAAmE;AAC7F,QAAQ,IAAI,oBAAmB,mEAAmE;AAClG,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,2BAA0B,mEAAmE;AACzG,QAAQ,IAAI,gBAAe,mEAAmE;AAC9F,QAAQ,IAAI,mBAAkB,mEAAmE;AACjG,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,qBAAoB,mEAAmE;AACnG,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,sBAAqB,mEAAmE;AACpG,QAAQ,IAAI,iBAAgB,mEAAmE;AAC/F,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,SAAQ,mEAAmE"}
@@ -1,144 +1,94 @@
1
1
  import { escapeRegExp, regEx } from "../../../util/regex.js";
2
2
  import { DockerDatasource } from "../../datasource/docker/index.js";
3
- import { id } from "../../versioning/pep440/index.js";
4
3
  import "../../versioning/npm/index.js";
5
4
  import { GithubReleasesDatasource } from "../../datasource/github-releases/index.js";
6
5
  import { NpmDatasource } from "../../datasource/npm/index.js";
7
6
  import { PypiDatasource } from "../../datasource/pypi/index.js";
8
- import { id as id$1 } from "../../versioning/ruby/index.js";
9
7
  import { RubyVersionDatasource } from "../../datasource/ruby-version/index.js";
10
- import { id as id$2 } from "../../versioning/conda/index.js";
8
+ import { id } from "../../versioning/conda/index.js";
11
9
  import { z } from "zod/v3";
12
10
  //#region lib/modules/manager/github-actions/community.ts
11
+ /**
12
+ * Update readme if new actions are added here.
13
+ */
14
+ /**
15
+ * match actions
16
+ */
13
17
  function matchAction(action) {
14
18
  return z.string().regex(regEx(`(?:https?://[^/]+/)?${escapeRegExp(action)}(?:@.+)?$`));
15
19
  }
16
- const SetupUV = z.object({
17
- uses: matchAction("astral-sh/setup-uv"),
18
- with: z.object({ version: z.string().optional() })
19
- }).transform(({ with: val }) => {
20
- let skipStage;
21
- let skipReason;
22
- if (!val.version) {
23
- skipStage = "extract";
24
- skipReason = "unspecified-version";
25
- }
20
+ function parseValue(currentValue, validator) {
21
+ if (!currentValue) return {
22
+ skipStage: "extract",
23
+ skipReason: "unspecified-version",
24
+ depType: "uses-with"
25
+ };
26
+ if (validator?.() === true) return {
27
+ skipStage: "extract",
28
+ skipReason: "invalid-version",
29
+ depType: "uses-with",
30
+ currentValue
31
+ };
26
32
  return {
27
- datasource: GithubReleasesDatasource.id,
28
- depName: "astral-sh/uv",
29
- versioning: "npm",
30
- packageName: "astral-sh/uv",
31
- ...skipStage && { skipStage },
32
- ...skipReason && { skipReason },
33
- currentValue: val.version,
33
+ currentValue,
34
34
  depType: "uses-with"
35
35
  };
36
- });
36
+ }
37
+ const SetupUV = z.object({
38
+ uses: matchAction("astral-sh/setup-uv"),
39
+ with: z.object({ version: z.string().optional() })
40
+ }).transform(({ with: val }) => ({
41
+ datasource: GithubReleasesDatasource.id,
42
+ depName: "astral-sh/uv",
43
+ versioning: "npm",
44
+ packageName: "astral-sh/uv",
45
+ ...parseValue(val.version)
46
+ }));
37
47
  const SetupPnpm = z.object({
38
48
  uses: matchAction("pnpm/action-setup"),
39
49
  with: z.object({ version: z.string().optional() })
40
- }).transform(({ with: val }) => {
41
- let skipStage;
42
- let skipReason;
43
- if (!val.version) {
44
- skipStage = "extract";
45
- skipReason = "unspecified-version";
46
- }
47
- return {
48
- datasource: NpmDatasource.id,
49
- depName: "pnpm",
50
- versioning: "npm",
51
- packageName: "pnpm",
52
- ...skipStage && { skipStage },
53
- ...skipReason && { skipReason },
54
- currentValue: val.version,
55
- depType: "uses-with"
56
- };
57
- });
50
+ }).transform(({ with: val }) => ({
51
+ datasource: NpmDatasource.id,
52
+ depName: "pnpm",
53
+ packageName: "pnpm",
54
+ ...parseValue(val.version)
55
+ }));
58
56
  const SetupBun = z.object({
59
57
  uses: matchAction("oven-sh/setup-bun"),
60
58
  with: z.object({ "bun-version": z.string().optional() })
61
- }).transform(({ with: val }) => {
62
- let skipStage;
63
- let skipReason;
64
- if (!val["bun-version"]) {
65
- skipStage = "extract";
66
- skipReason = "unspecified-version";
67
- }
68
- return {
69
- datasource: NpmDatasource.id,
70
- depName: "bun",
71
- versioning: "npm",
72
- packageName: "bun",
73
- ...skipStage && { skipStage },
74
- ...skipReason && { skipReason },
75
- currentValue: val["bun-version"],
76
- depType: "uses-with"
77
- };
78
- });
59
+ }).transform(({ with: val }) => ({
60
+ datasource: NpmDatasource.id,
61
+ depName: "bun",
62
+ packageName: "bun",
63
+ ...parseValue(val["bun-version"])
64
+ }));
79
65
  const SetupDeno = z.object({
80
66
  uses: matchAction("denoland/setup-deno"),
81
67
  with: z.object({ "deno-version": z.string().optional() })
82
- }).transform(({ with: val }) => {
83
- let skipStage;
84
- let skipReason;
85
- if (!val["deno-version"]) {
86
- skipStage = "extract";
87
- skipReason = "unspecified-version";
88
- }
89
- return {
90
- datasource: NpmDatasource.id,
91
- depName: "deno",
92
- versioning: "npm",
93
- packageName: "deno",
94
- ...skipStage && { skipStage },
95
- ...skipReason && { skipReason },
96
- currentValue: val["deno-version"],
97
- depType: "uses-with"
98
- };
99
- });
68
+ }).transform(({ with: val }) => ({
69
+ datasource: NpmDatasource.id,
70
+ depName: "deno",
71
+ packageName: "deno",
72
+ ...parseValue(val["deno-version"])
73
+ }));
100
74
  const SetupRuby = z.object({
101
75
  uses: matchAction("ruby/setup-ruby"),
102
76
  with: z.object({ "ruby-version": z.string().optional() })
103
- }).transform(({ with: val }) => {
104
- let skipStage;
105
- let skipReason;
106
- if (!val["ruby-version"]) {
107
- skipStage = "extract";
108
- skipReason = "unspecified-version";
109
- }
110
- return {
111
- datasource: RubyVersionDatasource.id,
112
- depName: "ruby",
113
- versioning: id$1,
114
- packageName: "ruby",
115
- ...skipStage && { skipStage },
116
- ...skipReason && { skipReason },
117
- currentValue: val["ruby-version"],
118
- depType: "uses-with"
119
- };
120
- });
77
+ }).transform(({ with: val }) => ({
78
+ datasource: RubyVersionDatasource.id,
79
+ depName: "ruby",
80
+ packageName: "ruby",
81
+ ...parseValue(val["ruby-version"])
82
+ }));
121
83
  const SetupPDM = z.object({
122
84
  uses: matchAction("pdm-project/setup-pdm"),
123
85
  with: z.object({ version: z.string().optional() })
124
- }).transform(({ with: val }) => {
125
- let skipStage;
126
- let skipReason;
127
- if (!val.version) {
128
- skipStage = "extract";
129
- skipReason = "unspecified-version";
130
- }
131
- return {
132
- datasource: PypiDatasource.id,
133
- depName: "pdm",
134
- versioning: id,
135
- packageName: "pdm",
136
- currentValue: val.version,
137
- ...skipStage && { skipStage },
138
- ...skipReason && { skipReason },
139
- depType: "uses-with"
140
- };
141
- });
86
+ }).transform(({ with: val }) => ({
87
+ datasource: PypiDatasource.id,
88
+ depName: "pdm",
89
+ packageName: "pdm",
90
+ ...parseValue(val.version)
91
+ }));
142
92
  const InstallBinary = z.object({
143
93
  uses: z.union([matchAction("jaxxstorm/action-install-gh-release"), matchAction("sigoden/install-binary")]),
144
94
  with: z.object({
@@ -150,8 +100,7 @@ const InstallBinary = z.object({
150
100
  datasource: GithubReleasesDatasource.id,
151
101
  depName: val.repo,
152
102
  packageName: val.repo,
153
- currentValue: val.tag,
154
- depType: "uses-with"
103
+ ...parseValue(val.tag)
155
104
  };
156
105
  });
157
106
  const SetupPixi = z.object({
@@ -160,95 +109,63 @@ const SetupPixi = z.object({
160
109
  }).transform(({ with: val }) => {
161
110
  return {
162
111
  datasource: GithubReleasesDatasource.id,
163
- versioning: id$2,
112
+ versioning: id,
164
113
  depName: "prefix-dev/pixi",
165
114
  packageName: "prefix-dev/pixi",
166
- currentValue: val["pixi-version"],
167
- depType: "uses-with"
115
+ ...parseValue(val["pixi-version"])
168
116
  };
169
117
  });
170
118
  const SetupHatch = z.object({
171
119
  uses: matchAction("pypa/hatch"),
172
120
  with: z.object({ version: z.string().optional() })
173
- }).transform(({ with: val }) => {
174
- let skipStage;
175
- let skipReason;
176
- if (!val.version) {
177
- skipStage = "extract";
178
- skipReason = "unspecified-version";
179
- }
180
- return {
181
- datasource: GithubReleasesDatasource.id,
182
- depName: "pypa/hatch",
183
- packageName: "pypa/hatch",
184
- ...skipStage && { skipStage },
185
- ...skipReason && { skipReason },
186
- currentValue: val.version,
187
- depType: "uses-with",
188
- extractVersion: "^hatch-(?<version>.+)$"
189
- };
190
- });
121
+ }).transform(({ with: val }) => ({
122
+ datasource: GithubReleasesDatasource.id,
123
+ depName: "pypa/hatch",
124
+ packageName: "pypa/hatch",
125
+ ...parseValue(val.version),
126
+ extractVersion: "^hatch-(?<version>.+)$"
127
+ }));
191
128
  const SetupGolangciLint = z.object({
192
129
  uses: matchAction("golangci/golangci-lint-action"),
193
130
  with: z.object({ version: z.string().optional() })
194
- }).transform(({ with: val }) => {
195
- let skipStage;
196
- let skipReason;
197
- if (!val.version) {
198
- skipStage = "extract";
199
- skipReason = "unspecified-version";
200
- }
201
- return {
202
- datasource: GithubReleasesDatasource.id,
203
- depName: "golangci/golangci-lint",
204
- packageName: "golangci/golangci-lint",
205
- ...skipStage && { skipStage },
206
- ...skipReason && { skipReason },
207
- currentValue: val.version,
208
- depType: "uses-with"
209
- };
210
- });
131
+ }).transform(({ with: val }) => ({
132
+ datasource: GithubReleasesDatasource.id,
133
+ depName: "golangci/golangci-lint",
134
+ packageName: "golangci/golangci-lint",
135
+ ...parseValue(val.version)
136
+ }));
211
137
  const ZizmorcoreZizmorAction = z.object({
212
138
  uses: matchAction("zizmorcore/zizmor-action"),
213
139
  with: z.object({ version: z.string().optional() })
214
- }).transform(({ with: val }) => {
215
- let skipStage;
216
- let skipReason;
217
- if (!val.version) {
218
- skipStage = "extract";
219
- skipReason = "unspecified-version";
220
- }
221
- return {
222
- datasource: DockerDatasource.id,
223
- depName: "ghcr.io/zizmorcore/zizmor",
224
- packageName: "ghcr.io/zizmorcore/zizmor",
225
- ...skipStage && { skipStage },
226
- ...skipReason && { skipReason },
227
- currentValue: val.version,
228
- depType: "uses-with"
229
- };
230
- });
140
+ }).transform(({ with: val }) => ({
141
+ datasource: DockerDatasource.id,
142
+ depName: "ghcr.io/zizmorcore/zizmor",
143
+ packageName: "ghcr.io/zizmorcore/zizmor",
144
+ ...parseValue(val.version)
145
+ }));
231
146
  const SetupPyright = z.object({
232
147
  uses: matchAction("jakebailey/pyright-action"),
233
148
  with: z.object({ version: z.string().optional() })
234
- }).transform(({ with: val }) => {
235
- let skipStage;
236
- let skipReason;
237
- if (!val.version || val.version === "PATH") {
238
- skipStage = "extract";
239
- skipReason = "unspecified-version";
240
- }
241
- return {
242
- datasource: NpmDatasource.id,
243
- depName: "pyright",
244
- versioning: "npm",
245
- packageName: "pyright",
246
- ...skipStage && { skipStage },
247
- ...skipReason && { skipReason },
248
- currentValue: val.version,
249
- depType: "uses-with"
250
- };
251
- });
149
+ }).transform(({ with: val }) => ({
150
+ datasource: NpmDatasource.id,
151
+ depName: "pyright",
152
+ packageName: "pyright",
153
+ ...parseValue(val.version, () => val.version === "PATH")
154
+ }));
155
+ /**
156
+ * Both actions are used to setup trivy.
157
+ * - https://github.com/aquasecurity/setup-trivy
158
+ * - https://github.com/aquasecurity/trivy-action
159
+ */
160
+ const AquaSecurityTrivy = z.object({
161
+ uses: z.union([matchAction("aquasecurity/setup-trivy"), matchAction("aquasecurity/trivy-action")]),
162
+ with: z.object({ version: z.string().optional() })
163
+ }).transform(({ with: val }) => ({
164
+ datasource: GithubReleasesDatasource.id,
165
+ depName: "aquasecurity/trivy",
166
+ packageName: "aquasecurity/trivy",
167
+ ...parseValue(val.version)
168
+ }));
252
169
  /**
253
170
  * schema here should match the whole step,
254
171
  * there may be some actions use env as arguments version.
@@ -256,6 +173,7 @@ const SetupPyright = z.object({
256
173
  * each type should return `PackageDependency | undefined`
257
174
  */
258
175
  const CommunityActions = z.union([
176
+ AquaSecurityTrivy,
259
177
  InstallBinary,
260
178
  SetupPDM,
261
179
  SetupPixi,
@@ -1 +1 @@
1
- {"version":3,"file":"community.js","names":["rubyVersioning.id","pep440versioning.id","condaVersioning.id"],"sources":["../../../../lib/modules/manager/github-actions/community.ts"],"sourcesContent":["import { z } from 'zod/v3';\n\nimport type { SkipReason, StageName } from '../../../types/index.ts';\nimport { escapeRegExp, regEx } from '../../../util/regex.ts';\nimport { DockerDatasource } from '../../datasource/docker/index.ts';\nimport { GithubReleasesDatasource } from '../../datasource/github-releases/index.ts';\nimport { NpmDatasource } from '../../datasource/npm/index.ts';\nimport { PypiDatasource } from '../../datasource/pypi/index.ts';\nimport { RubyVersionDatasource } from '../../datasource/ruby-version/index.ts';\nimport * as condaVersioning from '../../versioning/conda/index.ts';\nimport * as npmVersioning from '../../versioning/npm/index.ts';\nimport * as pep440versioning from '../../versioning/pep440/index.ts';\nimport * as rubyVersioning from '../../versioning/ruby/index.ts';\nimport type { PackageDependency } from '../types.ts';\n\nfunction matchAction(action: string): z.Schema {\n return z\n .string()\n .regex(regEx(`(?:https?://[^/]+/)?${escapeRegExp(action)}(?:@.+)?$`));\n}\n\nconst SetupUV = z\n .object({\n // https://github.com/astral-sh/setup-uv\n uses: matchAction('astral-sh/setup-uv'),\n with: z.object({ version: z.string().optional() }),\n })\n .transform(({ with: val }): PackageDependency => {\n let skipStage: StageName | undefined;\n let skipReason: SkipReason | undefined;\n\n if (!val.version) {\n skipStage = 'extract';\n skipReason = 'unspecified-version';\n }\n\n return {\n datasource: GithubReleasesDatasource.id,\n depName: 'astral-sh/uv',\n versioning: npmVersioning.id,\n packageName: 'astral-sh/uv',\n ...(skipStage && { skipStage }),\n ...(skipReason && { skipReason }),\n currentValue: val.version,\n depType: 'uses-with',\n };\n });\n\nconst SetupPnpm = z\n .object({\n uses: matchAction('pnpm/action-setup'),\n with: z.object({\n version: z.string().optional(),\n }),\n })\n .transform(({ with: val }): PackageDependency => {\n let skipStage: StageName | undefined;\n let skipReason: SkipReason | undefined;\n if (!val.version) {\n skipStage = 'extract';\n skipReason = 'unspecified-version';\n }\n\n return {\n datasource: NpmDatasource.id,\n depName: 'pnpm',\n versioning: npmVersioning.id,\n packageName: 'pnpm',\n ...(skipStage && { skipStage }),\n ...(skipReason && { skipReason }),\n currentValue: val.version,\n depType: 'uses-with',\n };\n });\n\nconst SetupBun = z\n .object({\n uses: matchAction('oven-sh/setup-bun'),\n with: z.object({\n 'bun-version': z.string().optional(),\n }),\n })\n .transform(({ with: val }): PackageDependency => {\n let skipStage: StageName | undefined;\n let skipReason: SkipReason | undefined;\n if (!val['bun-version']) {\n skipStage = 'extract';\n skipReason = 'unspecified-version';\n }\n\n return {\n datasource: NpmDatasource.id,\n depName: 'bun',\n versioning: npmVersioning.id,\n packageName: 'bun',\n ...(skipStage && { skipStage }),\n ...(skipReason && { skipReason }),\n currentValue: val['bun-version'],\n depType: 'uses-with',\n };\n });\n\nconst SetupDeno = z\n .object({\n uses: matchAction('denoland/setup-deno'),\n with: z.object({\n 'deno-version': z.string().optional(),\n }),\n })\n .transform(({ with: val }): PackageDependency => {\n let skipStage: StageName | undefined;\n let skipReason: SkipReason | undefined;\n if (!val['deno-version']) {\n skipStage = 'extract';\n skipReason = 'unspecified-version';\n }\n\n return {\n datasource: NpmDatasource.id,\n depName: 'deno',\n versioning: npmVersioning.id,\n packageName: 'deno',\n ...(skipStage && { skipStage }),\n ...(skipReason && { skipReason }),\n currentValue: val['deno-version'],\n depType: 'uses-with',\n };\n });\n\nconst SetupRuby = z\n .object({\n uses: matchAction('ruby/setup-ruby'),\n with: z.object({\n 'ruby-version': z.string().optional(),\n }),\n })\n .transform(({ with: val }): PackageDependency => {\n let skipStage: StageName | undefined;\n let skipReason: SkipReason | undefined;\n if (!val['ruby-version']) {\n skipStage = 'extract';\n skipReason = 'unspecified-version';\n }\n\n return {\n datasource: RubyVersionDatasource.id,\n depName: 'ruby',\n versioning: rubyVersioning.id,\n packageName: 'ruby',\n ...(skipStage && { skipStage }),\n ...(skipReason && { skipReason }),\n currentValue: val['ruby-version'],\n depType: 'uses-with',\n };\n });\n\nconst SetupPDM = z\n .object({\n uses: matchAction('pdm-project/setup-pdm'),\n with: z.object({ version: z.string().optional() }),\n })\n .transform(({ with: val }): PackageDependency => {\n let skipStage: StageName | undefined;\n let skipReason: SkipReason | undefined;\n if (!val.version) {\n skipStage = 'extract';\n skipReason = 'unspecified-version';\n }\n\n return {\n datasource: PypiDatasource.id,\n depName: 'pdm',\n versioning: pep440versioning.id,\n packageName: 'pdm',\n currentValue: val.version,\n ...(skipStage && { skipStage }),\n ...(skipReason && { skipReason }),\n depType: 'uses-with',\n };\n });\n\nconst InstallBinary = z\n .object({\n uses: z.union([\n matchAction('jaxxstorm/action-install-gh-release'),\n matchAction('sigoden/install-binary'),\n ]),\n with: z.object({ repo: z.string(), tag: z.string() }),\n })\n .transform(({ with: val }): PackageDependency => {\n return {\n datasource: GithubReleasesDatasource.id,\n depName: val.repo,\n packageName: val.repo,\n currentValue: val.tag,\n depType: 'uses-with',\n };\n });\n\nconst SetupPixi = z\n .object({\n uses: matchAction('prefix-dev/setup-pixi'),\n with: z.object({ 'pixi-version': z.string() }),\n })\n .transform(({ with: val }): PackageDependency => {\n return {\n datasource: GithubReleasesDatasource.id,\n versioning: condaVersioning.id,\n depName: 'prefix-dev/pixi',\n packageName: 'prefix-dev/pixi',\n currentValue: val['pixi-version'],\n depType: 'uses-with',\n };\n });\n\nconst SetupHatch = z\n .object({\n // https://github.com/pypa/hatch/tree/install\n uses: matchAction('pypa/hatch'),\n with: z.object({ version: z.string().optional() }),\n })\n .transform(({ with: val }): PackageDependency => {\n let skipStage: StageName | undefined;\n let skipReason: SkipReason | undefined;\n\n if (!val.version) {\n skipStage = 'extract';\n skipReason = 'unspecified-version';\n }\n\n return {\n datasource: GithubReleasesDatasource.id,\n depName: 'pypa/hatch',\n packageName: 'pypa/hatch',\n ...(skipStage && { skipStage }),\n ...(skipReason && { skipReason }),\n currentValue: val.version,\n depType: 'uses-with',\n // Strip hatch- prefix from release tags\n extractVersion: '^hatch-(?<version>.+)$',\n };\n });\n\nconst SetupGolangciLint = z\n .object({\n uses: matchAction('golangci/golangci-lint-action'),\n with: z.object({ version: z.string().optional() }),\n })\n .transform(({ with: val }): PackageDependency => {\n let skipStage: StageName | undefined;\n let skipReason: SkipReason | undefined;\n\n if (!val.version) {\n skipStage = 'extract';\n skipReason = 'unspecified-version';\n }\n\n return {\n datasource: GithubReleasesDatasource.id,\n depName: 'golangci/golangci-lint',\n packageName: 'golangci/golangci-lint',\n ...(skipStage && { skipStage }),\n ...(skipReason && { skipReason }),\n currentValue: val.version,\n depType: 'uses-with',\n };\n });\n\nconst ZizmorcoreZizmorAction = z\n .object({\n uses: matchAction('zizmorcore/zizmor-action'),\n with: z.object({ version: z.string().optional() }),\n })\n .transform(({ with: val }): PackageDependency => {\n let skipStage: StageName | undefined;\n let skipReason: SkipReason | undefined;\n\n if (!val.version) {\n skipStage = 'extract';\n skipReason = 'unspecified-version';\n }\n\n return {\n datasource: DockerDatasource.id,\n depName: 'ghcr.io/zizmorcore/zizmor',\n packageName: 'ghcr.io/zizmorcore/zizmor',\n ...(skipStage && { skipStage }),\n ...(skipReason && { skipReason }),\n currentValue: val.version,\n depType: 'uses-with',\n };\n });\n\nconst SetupPyright = z\n .object({\n uses: matchAction('jakebailey/pyright-action'),\n with: z.object({ version: z.string().optional() }),\n })\n .transform(({ with: val }): PackageDependency => {\n let skipStage: StageName | undefined;\n let skipReason: SkipReason | undefined;\n\n if (!val.version || val.version === 'PATH') {\n skipStage = 'extract';\n skipReason = 'unspecified-version';\n }\n\n return {\n datasource: NpmDatasource.id,\n depName: 'pyright',\n versioning: npmVersioning.id,\n packageName: 'pyright',\n ...(skipStage && { skipStage }),\n ...(skipReason && { skipReason }),\n currentValue: val.version,\n depType: 'uses-with',\n };\n });\n\n/**\n * schema here should match the whole step,\n * there may be some actions use env as arguments version.\n *\n * each type should return `PackageDependency | undefined`\n */\nexport const CommunityActions = z.union([\n InstallBinary,\n SetupPDM,\n SetupPixi,\n SetupPnpm,\n SetupPyright,\n SetupUV,\n SetupBun,\n SetupDeno,\n SetupRuby,\n SetupHatch,\n SetupGolangciLint,\n ZizmorcoreZizmorAction,\n]);\n"],"mappings":"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"}
1
+ {"version":3,"file":"community.js","names":["condaVersioning.id"],"sources":["../../../../lib/modules/manager/github-actions/community.ts"],"sourcesContent":["/**\n * Update readme if new actions are added here.\n */\nimport { z } from 'zod/v3';\n\nimport { escapeRegExp, regEx } from '../../../util/regex.ts';\nimport { DockerDatasource } from '../../datasource/docker/index.ts';\nimport { GithubReleasesDatasource } from '../../datasource/github-releases/index.ts';\nimport { NpmDatasource } from '../../datasource/npm/index.ts';\nimport { PypiDatasource } from '../../datasource/pypi/index.ts';\nimport { RubyVersionDatasource } from '../../datasource/ruby-version/index.ts';\nimport * as condaVersioning from '../../versioning/conda/index.ts';\nimport * as npmVersioning from '../../versioning/npm/index.ts';\nimport type { PackageDependency } from '../types.ts';\n\n/**\n * match actions\n */\nfunction matchAction(action: string): z.ZodString {\n return z\n .string()\n .regex(regEx(`(?:https?://[^/]+/)?${escapeRegExp(action)}(?:@.+)?$`));\n}\n\nfunction parseValue(\n currentValue: string | undefined,\n validator?: () => boolean,\n): PackageDependency {\n if (!currentValue) {\n return {\n skipStage: 'extract',\n skipReason: 'unspecified-version',\n depType: 'uses-with',\n };\n }\n if (validator?.() === true) {\n return {\n skipStage: 'extract',\n skipReason: 'invalid-version',\n depType: 'uses-with',\n currentValue,\n };\n }\n return { currentValue, depType: 'uses-with' };\n}\n\nconst SetupUV = z\n .object({\n // https://github.com/astral-sh/setup-uv\n uses: matchAction('astral-sh/setup-uv'),\n with: z.object({ version: z.string().optional() }),\n })\n .transform(\n ({ with: val }): PackageDependency => ({\n datasource: GithubReleasesDatasource.id,\n depName: 'astral-sh/uv',\n versioning: npmVersioning.id,\n packageName: 'astral-sh/uv',\n ...parseValue(val.version),\n }),\n );\n\nconst SetupPnpm = z\n .object({\n uses: matchAction('pnpm/action-setup'),\n with: z.object({\n version: z.string().optional(),\n }),\n })\n .transform(\n ({ with: val }): PackageDependency => ({\n datasource: NpmDatasource.id,\n depName: 'pnpm',\n packageName: 'pnpm',\n ...parseValue(val.version),\n }),\n );\n\nconst SetupBun = z\n .object({\n uses: matchAction('oven-sh/setup-bun'),\n with: z.object({\n 'bun-version': z.string().optional(),\n }),\n })\n .transform(\n ({ with: val }): PackageDependency => ({\n datasource: NpmDatasource.id,\n depName: 'bun',\n packageName: 'bun',\n ...parseValue(val['bun-version']),\n }),\n );\n\nconst SetupDeno = z\n .object({\n uses: matchAction('denoland/setup-deno'),\n with: z.object({\n 'deno-version': z.string().optional(),\n }),\n })\n .transform(\n ({ with: val }): PackageDependency => ({\n datasource: NpmDatasource.id,\n depName: 'deno',\n packageName: 'deno',\n ...parseValue(val['deno-version']),\n }),\n );\n\nconst SetupRuby = z\n .object({\n uses: matchAction('ruby/setup-ruby'),\n with: z.object({\n 'ruby-version': z.string().optional(),\n }),\n })\n .transform(\n ({ with: val }): PackageDependency => ({\n datasource: RubyVersionDatasource.id,\n depName: 'ruby',\n packageName: 'ruby',\n ...parseValue(val['ruby-version']),\n }),\n );\n\nconst SetupPDM = z\n .object({\n uses: matchAction('pdm-project/setup-pdm'),\n with: z.object({ version: z.string().optional() }),\n })\n .transform(\n ({ with: val }): PackageDependency => ({\n datasource: PypiDatasource.id,\n depName: 'pdm',\n packageName: 'pdm',\n ...parseValue(val.version),\n }),\n );\n\nconst InstallBinary = z\n .object({\n uses: z.union([\n matchAction('jaxxstorm/action-install-gh-release'),\n matchAction('sigoden/install-binary'),\n ]),\n with: z.object({ repo: z.string(), tag: z.string() }),\n })\n .transform(({ with: val }): PackageDependency => {\n return {\n datasource: GithubReleasesDatasource.id,\n depName: val.repo,\n packageName: val.repo,\n ...parseValue(val.tag),\n };\n });\n\nconst SetupPixi = z\n .object({\n uses: matchAction('prefix-dev/setup-pixi'),\n with: z.object({ 'pixi-version': z.string() }),\n })\n .transform(({ with: val }): PackageDependency => {\n return {\n datasource: GithubReleasesDatasource.id,\n versioning: condaVersioning.id,\n depName: 'prefix-dev/pixi',\n packageName: 'prefix-dev/pixi',\n ...parseValue(val['pixi-version']),\n };\n });\n\nconst SetupHatch = z\n .object({\n // https://github.com/pypa/hatch/tree/install\n uses: matchAction('pypa/hatch'),\n with: z.object({ version: z.string().optional() }),\n })\n .transform(\n ({ with: val }): PackageDependency => ({\n datasource: GithubReleasesDatasource.id,\n depName: 'pypa/hatch',\n packageName: 'pypa/hatch',\n ...parseValue(val.version),\n // Strip hatch- prefix from release tags\n extractVersion: '^hatch-(?<version>.+)$',\n }),\n );\n\nconst SetupGolangciLint = z\n .object({\n uses: matchAction('golangci/golangci-lint-action'),\n with: z.object({ version: z.string().optional() }),\n })\n .transform(\n ({ with: val }): PackageDependency => ({\n datasource: GithubReleasesDatasource.id,\n depName: 'golangci/golangci-lint',\n packageName: 'golangci/golangci-lint',\n ...parseValue(val.version),\n }),\n );\n\nconst ZizmorcoreZizmorAction = z\n .object({\n uses: matchAction('zizmorcore/zizmor-action'),\n with: z.object({ version: z.string().optional() }),\n })\n .transform(\n ({ with: val }): PackageDependency => ({\n datasource: DockerDatasource.id,\n depName: 'ghcr.io/zizmorcore/zizmor',\n packageName: 'ghcr.io/zizmorcore/zizmor',\n ...parseValue(val.version),\n }),\n );\n\nconst SetupPyright = z\n .object({\n uses: matchAction('jakebailey/pyright-action'),\n with: z.object({ version: z.string().optional() }),\n })\n .transform(\n ({ with: val }): PackageDependency => ({\n datasource: NpmDatasource.id,\n depName: 'pyright',\n packageName: 'pyright',\n ...parseValue(val.version, () => val.version === 'PATH'),\n }),\n );\n\n/**\n * Both actions are used to setup trivy.\n * - https://github.com/aquasecurity/setup-trivy\n * - https://github.com/aquasecurity/trivy-action\n */\nconst AquaSecurityTrivy = z\n .object({\n uses: z.union([\n matchAction('aquasecurity/setup-trivy'),\n matchAction('aquasecurity/trivy-action'),\n ]),\n with: z.object({ version: z.string().optional() }),\n })\n .transform(\n ({ with: val }): PackageDependency => ({\n datasource: GithubReleasesDatasource.id,\n depName: 'aquasecurity/trivy',\n packageName: 'aquasecurity/trivy',\n ...parseValue(val.version),\n }),\n );\n\n/**\n * schema here should match the whole step,\n * there may be some actions use env as arguments version.\n *\n * each type should return `PackageDependency | undefined`\n */\nexport const CommunityActions = z.union([\n AquaSecurityTrivy,\n InstallBinary,\n SetupPDM,\n SetupPixi,\n SetupPnpm,\n SetupPyright,\n SetupUV,\n SetupBun,\n SetupDeno,\n SetupRuby,\n SetupHatch,\n SetupGolangciLint,\n ZizmorcoreZizmorAction,\n]);\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { regEx } from "../../../util/regex.js";
2
2
  import { logger } from "../../../logger/index.js";
3
- import { isEmptyArray, isUndefined } from "@sindresorhus/is";
3
+ import { isUndefined } from "@sindresorhus/is";
4
4
  import semver from "semver";
5
5
  //#region lib/modules/versioning/github-actions/index.ts
6
6
  const id = "github-actions";
@@ -112,7 +112,7 @@ function getNewValue({ currentValue, currentVersion, rangeStrategy, newVersion,
112
112
  if (!newParsed) return newVersion;
113
113
  if (parseVersion(currentValue)) return newVersion;
114
114
  const [prefix] = currentValue.split(massageValue(currentValue));
115
- if (isUndefined(allVersions) || isEmptyArray(allVersions)) {
115
+ if (isUndefined(allVersions) || allVersions.size === 0) {
116
116
  if (isUndefined(range.minor)) return `${prefix}${newParsed.major}`;
117
117
  return `${prefix}${newParsed.major}.${newParsed.minor}`;
118
118
  }
@@ -135,7 +135,7 @@ function getShortestMatchingVersion(prefix, newParsed, allVersions) {
135
135
  `${prefix}${newParsed.major}.${newParsed.minor}.${newParsed.patch}`,
136
136
  `${prefix}${newParsed.toString()}`
137
137
  ];
138
- for (const option of options) if (allVersions.includes(option)) return option;
138
+ for (const option of options) if (allVersions.has(option)) return option;
139
139
  return null;
140
140
  }
141
141
  function isCompatible(version) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/versioning/github-actions/index.ts"],"sourcesContent":["import { isEmptyArray, isUndefined } from '@sindresorhus/is';\nimport type { SemVer } from 'semver';\nimport semver from 'semver';\nimport { logger } from '../../../logger/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport type { NewValueConfig, VersioningApi } from '../types.ts';\n\nexport const id = 'github-actions';\nexport const displayName = 'GitHub Actions';\nexport const urls = [\n 'https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/find-and-customize-actions#using-release-management-for-your-custom-actions',\n];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies = ['pin', 'replace'];\n\nfunction massageValue(input: string): string {\n return input.trim().replace(regEx(/^v/i), '');\n}\n\nfunction parseVersion(input: string): SemVer | null {\n return semver.parse(massageValue(input));\n}\n\ninterface Range {\n major: number;\n minor?: number;\n}\n\nfunction parseRange(input: string): Range | null {\n const stripped = massageValue(input);\n const coerced = semver.coerce(stripped);\n if (!coerced) {\n return null;\n }\n const { major, minor } = coerced;\n\n if (regEx(/^\\d+$/).test(stripped)) {\n return { major };\n }\n\n return { major, minor };\n}\n\n/*\n * Like parseVersion but also accepts floating tags (e.g. `v1`, `v1.2`)\n * by coercing them to full semver.\n */\nfunction parseVersionCoerced(input: string): SemVer | null {\n const v = parseVersion(input);\n if (v) {\n return v;\n }\n const stripped = massageValue(input);\n if (!regEx(/^\\d/).test(stripped)) {\n return null;\n }\n return semver.coerce(stripped);\n}\n\nfunction isValid(input: string): boolean {\n return !!parseVersion(input) || !!parseRange(input);\n}\n\nfunction isVersion(input: string | undefined | null): boolean {\n if (!input) {\n return false;\n }\n\n if (parseVersion(input)) {\n return true;\n }\n\n const stripped = massageValue(input);\n if (!regEx(/^\\d/).test(stripped)) {\n return false;\n }\n\n return parseRange(input) !== null;\n}\n\nfunction isStable(version: string): boolean {\n const v = parseVersionCoerced(version);\n if (!v) {\n return false;\n }\n\n return v.prerelease.length === 0;\n}\n\nfunction isSingleVersion(input: string): boolean {\n return !!parseVersion(input);\n}\n\nfunction getMajor(version: string): number | null {\n return parseVersionCoerced(version)?.major ?? null;\n}\n\nfunction getMinor(version: string): number | null {\n return parseVersionCoerced(version)?.minor ?? null;\n}\n\nfunction getPatch(version: string): number | null {\n return parseVersionCoerced(version)?.patch ?? null;\n}\n\nfunction sortVersions(x: string, y: string): number {\n const a = parseVersionCoerced(x);\n const b = parseVersionCoerced(y);\n if (!a || !b) {\n return 0;\n }\n return semver.compare(a, b);\n}\n\nfunction equals(x: string, y: string): boolean {\n const a = parseVersionCoerced(x);\n const b = parseVersionCoerced(y);\n if (!a || !b) {\n return false;\n }\n return semver.eq(a, b);\n}\n\nfunction isGreaterThan(x: string, y: string): boolean {\n const a = parseVersionCoerced(x);\n const b = parseVersionCoerced(y);\n if (!a || !b) {\n return false;\n }\n return semver.gt(a, b);\n}\n\nfunction matches(version: string, range: string): boolean {\n const v = parseVersion(version);\n if (!v) {\n return false;\n }\n\n const rv = parseVersion(range);\n if (rv) {\n return semver.eq(v, rv);\n }\n\n const r = parseRange(range);\n if (!r) {\n return false;\n }\n\n if (v.prerelease.length > 0) {\n return false;\n }\n\n if (v.major !== r.major) {\n return false;\n }\n\n if (isUndefined(r.minor)) {\n return true;\n }\n\n return v.minor === r.minor;\n}\n\nfunction getSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n const sortedVersions = versions.sort(sortVersions).reverse();\n for (const version of sortedVersions) {\n if (matches(version, range)) {\n return version;\n }\n }\n return null;\n}\n\nfunction minSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n const sortedVersions = versions.sort(sortVersions);\n for (const version of sortedVersions) {\n if (matches(version, range)) {\n return version;\n }\n }\n return null;\n}\n\nfunction isLessThanRange(version: string, range: string): boolean {\n const v = parseVersionCoerced(version);\n const r = parseRange(range);\n\n if (!v || !r) {\n return false;\n }\n\n if (v.major !== r.major) {\n return v.major < r.major;\n }\n\n if (isUndefined(r.minor)) {\n return false;\n }\n\n if (v.minor !== r.minor) {\n return v.minor < r.minor;\n }\n\n return false;\n}\n\nfunction getNewValue({\n currentValue,\n currentVersion,\n rangeStrategy,\n newVersion,\n allVersions,\n}: NewValueConfig): string | null {\n if (rangeStrategy === 'pin') {\n return newVersion;\n }\n\n const range = parseRange(currentValue);\n if (!range) {\n return newVersion;\n }\n\n const newParsed = parseVersion(newVersion);\n if (!newParsed) {\n return newVersion;\n }\n\n // Check if currentValue is a full version (has patch component)\n const currentParsed = parseVersion(currentValue);\n if (currentParsed) {\n // currentValue is a full version, return full newVersion\n return newVersion;\n }\n\n const [prefix] = currentValue.split(massageValue(currentValue));\n\n if (isUndefined(allVersions) || isEmptyArray(allVersions)) {\n if (isUndefined(range.minor)) {\n return `${prefix}${newParsed.major}`;\n }\n\n return `${prefix}${newParsed.major}.${newParsed.minor}`;\n }\n\n const shortest = getShortestMatchingVersion(prefix, newParsed, allVersions);\n if (shortest) {\n return shortest;\n }\n\n logger.once.debug(\n {\n versioning: id,\n currentValue,\n currentVersion,\n newVersion,\n rangeStrategy,\n allVersions,\n },\n `Suggested newValue \\`${newVersion}\\` was not included in allVersions, but it should have been. Returning it anyway`,\n );\n\n return newVersion;\n}\n\nfunction getShortestMatchingVersion(\n prefix: string,\n newParsed: SemVer,\n allVersions: string[],\n): string | null {\n // in shortest-first order\n const options = [\n `${prefix}${newParsed.major}`,\n `${prefix}${newParsed.major}.${newParsed.minor}`,\n `${prefix}${newParsed.major}.${newParsed.minor}.${newParsed.patch}`,\n `${prefix}${newParsed.toString()}`,\n ];\n\n for (const option of options) {\n if (allVersions.includes(option)) {\n return option;\n }\n }\n\n return null;\n}\n\nfunction isCompatible(version: string): boolean {\n return isValid(version);\n}\n\nfunction isBreaking(version: string, current: string): boolean {\n const versionParsed = parseVersion(version);\n const currentParsed = parseVersion(current);\n\n if (!versionParsed || !currentParsed) {\n return false;\n }\n\n if (currentParsed.major === 0) {\n return versionParsed.major > 0 || versionParsed.minor > currentParsed.minor;\n }\n\n return versionParsed.major > currentParsed.major;\n}\n\nexport const api: VersioningApi = {\n equals,\n getMajor,\n getMinor,\n getPatch,\n isBreaking,\n isCompatible,\n isGreaterThan,\n isLessThanRange,\n isSingleVersion,\n isStable,\n isValid,\n isVersion,\n matches,\n getSatisfyingVersion,\n minSatisfyingVersion,\n getNewValue,\n sortVersions,\n};\n\nexport default api;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/versioning/github-actions/index.ts"],"sourcesContent":["import { isUndefined } from '@sindresorhus/is';\nimport type { SemVer } from 'semver';\nimport semver from 'semver';\nimport { logger } from '../../../logger/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport type { NewValueConfig, VersioningApi } from '../types.ts';\n\nexport const id = 'github-actions';\nexport const displayName = 'GitHub Actions';\nexport const urls = [\n 'https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/find-and-customize-actions#using-release-management-for-your-custom-actions',\n];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies = ['pin', 'replace'];\n\nfunction massageValue(input: string): string {\n return input.trim().replace(regEx(/^v/i), '');\n}\n\nfunction parseVersion(input: string): SemVer | null {\n return semver.parse(massageValue(input));\n}\n\ninterface Range {\n major: number;\n minor?: number;\n}\n\nfunction parseRange(input: string): Range | null {\n const stripped = massageValue(input);\n const coerced = semver.coerce(stripped);\n if (!coerced) {\n return null;\n }\n const { major, minor } = coerced;\n\n if (regEx(/^\\d+$/).test(stripped)) {\n return { major };\n }\n\n return { major, minor };\n}\n\n/*\n * Like parseVersion but also accepts floating tags (e.g. `v1`, `v1.2`)\n * by coercing them to full semver.\n */\nfunction parseVersionCoerced(input: string): SemVer | null {\n const v = parseVersion(input);\n if (v) {\n return v;\n }\n const stripped = massageValue(input);\n if (!regEx(/^\\d/).test(stripped)) {\n return null;\n }\n return semver.coerce(stripped);\n}\n\nfunction isValid(input: string): boolean {\n return !!parseVersion(input) || !!parseRange(input);\n}\n\nfunction isVersion(input: string | undefined | null): boolean {\n if (!input) {\n return false;\n }\n\n if (parseVersion(input)) {\n return true;\n }\n\n const stripped = massageValue(input);\n if (!regEx(/^\\d/).test(stripped)) {\n return false;\n }\n\n return parseRange(input) !== null;\n}\n\nfunction isStable(version: string): boolean {\n const v = parseVersionCoerced(version);\n if (!v) {\n return false;\n }\n\n return v.prerelease.length === 0;\n}\n\nfunction isSingleVersion(input: string): boolean {\n return !!parseVersion(input);\n}\n\nfunction getMajor(version: string): number | null {\n return parseVersionCoerced(version)?.major ?? null;\n}\n\nfunction getMinor(version: string): number | null {\n return parseVersionCoerced(version)?.minor ?? null;\n}\n\nfunction getPatch(version: string): number | null {\n return parseVersionCoerced(version)?.patch ?? null;\n}\n\nfunction sortVersions(x: string, y: string): number {\n const a = parseVersionCoerced(x);\n const b = parseVersionCoerced(y);\n if (!a || !b) {\n return 0;\n }\n return semver.compare(a, b);\n}\n\nfunction equals(x: string, y: string): boolean {\n const a = parseVersionCoerced(x);\n const b = parseVersionCoerced(y);\n if (!a || !b) {\n return false;\n }\n return semver.eq(a, b);\n}\n\nfunction isGreaterThan(x: string, y: string): boolean {\n const a = parseVersionCoerced(x);\n const b = parseVersionCoerced(y);\n if (!a || !b) {\n return false;\n }\n return semver.gt(a, b);\n}\n\nfunction matches(version: string, range: string): boolean {\n const v = parseVersion(version);\n if (!v) {\n return false;\n }\n\n const rv = parseVersion(range);\n if (rv) {\n return semver.eq(v, rv);\n }\n\n const r = parseRange(range);\n if (!r) {\n return false;\n }\n\n if (v.prerelease.length > 0) {\n return false;\n }\n\n if (v.major !== r.major) {\n return false;\n }\n\n if (isUndefined(r.minor)) {\n return true;\n }\n\n return v.minor === r.minor;\n}\n\nfunction getSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n const sortedVersions = versions.sort(sortVersions).reverse();\n for (const version of sortedVersions) {\n if (matches(version, range)) {\n return version;\n }\n }\n return null;\n}\n\nfunction minSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n const sortedVersions = versions.sort(sortVersions);\n for (const version of sortedVersions) {\n if (matches(version, range)) {\n return version;\n }\n }\n return null;\n}\n\nfunction isLessThanRange(version: string, range: string): boolean {\n const v = parseVersionCoerced(version);\n const r = parseRange(range);\n\n if (!v || !r) {\n return false;\n }\n\n if (v.major !== r.major) {\n return v.major < r.major;\n }\n\n if (isUndefined(r.minor)) {\n return false;\n }\n\n if (v.minor !== r.minor) {\n return v.minor < r.minor;\n }\n\n return false;\n}\n\nfunction getNewValue({\n currentValue,\n currentVersion,\n rangeStrategy,\n newVersion,\n allVersions,\n}: NewValueConfig): string | null {\n if (rangeStrategy === 'pin') {\n return newVersion;\n }\n\n const range = parseRange(currentValue);\n if (!range) {\n return newVersion;\n }\n\n const newParsed = parseVersion(newVersion);\n if (!newParsed) {\n return newVersion;\n }\n\n // Check if currentValue is a full version (has patch component)\n const currentParsed = parseVersion(currentValue);\n if (currentParsed) {\n // currentValue is a full version, return full newVersion\n return newVersion;\n }\n\n const [prefix] = currentValue.split(massageValue(currentValue));\n\n if (isUndefined(allVersions) || allVersions.size === 0) {\n if (isUndefined(range.minor)) {\n return `${prefix}${newParsed.major}`;\n }\n\n return `${prefix}${newParsed.major}.${newParsed.minor}`;\n }\n\n const shortest = getShortestMatchingVersion(prefix, newParsed, allVersions);\n if (shortest) {\n return shortest;\n }\n\n logger.once.debug(\n {\n versioning: id,\n currentValue,\n currentVersion,\n newVersion,\n rangeStrategy,\n allVersions,\n },\n `Suggested newValue \\`${newVersion}\\` was not included in allVersions, but it should have been. Returning it anyway`,\n );\n\n return newVersion;\n}\n\nfunction getShortestMatchingVersion(\n prefix: string,\n newParsed: SemVer,\n allVersions: Set<string>,\n): string | null {\n // in shortest-first order\n const options = [\n `${prefix}${newParsed.major}`,\n `${prefix}${newParsed.major}.${newParsed.minor}`,\n `${prefix}${newParsed.major}.${newParsed.minor}.${newParsed.patch}`,\n `${prefix}${newParsed.toString()}`,\n ];\n\n for (const option of options) {\n if (allVersions.has(option)) {\n return option;\n }\n }\n\n return null;\n}\n\nfunction isCompatible(version: string): boolean {\n return isValid(version);\n}\n\nfunction isBreaking(version: string, current: string): boolean {\n const versionParsed = parseVersion(version);\n const currentParsed = parseVersion(current);\n\n if (!versionParsed || !currentParsed) {\n return false;\n }\n\n if (currentParsed.major === 0) {\n return versionParsed.major > 0 || versionParsed.minor > currentParsed.minor;\n }\n\n return versionParsed.major > currentParsed.major;\n}\n\nexport const api: VersioningApi = {\n equals,\n getMajor,\n getMinor,\n getPatch,\n isBreaking,\n isCompatible,\n isGreaterThan,\n isLessThanRange,\n isSingleVersion,\n isStable,\n isValid,\n isVersion,\n matches,\n getSatisfyingVersion,\n minSatisfyingVersion,\n getNewValue,\n sortVersions,\n};\n\nexport default api;\n"],"mappings":"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"}
@@ -13,7 +13,7 @@ interface NewValueConfig {
13
13
  *
14
14
  * Allows Versioning modules to determine whether the version they're proposing matches a known version.
15
15
  */
16
- allVersions?: string[];
16
+ allVersions?: Set<string>;
17
17
  }
18
18
  interface VersioningApi {
19
19
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","names":[],"sources":["../../../../../lib/workers/repository/process/lookup/generate.ts"],"sourcesContent":["import { isNonEmptyArray } from '@sindresorhus/is';\nimport { logger } from '../../../../logger/index.ts';\nimport type { Release } from '../../../../modules/datasource/index.ts';\nimport type { LookupUpdate } from '../../../../modules/manager/types.ts';\nimport type { VersioningApi } from '../../../../modules/versioning/index.ts';\nimport type { RangeStrategy } from '../../../../types/index.ts';\nimport { getElapsedDays } from '../../../../util/date.ts';\nimport { getMergeConfidenceLevel } from '../../../../util/merge-confidence/index.ts';\nimport type { LookupUpdateConfig } from './types.ts';\nimport { getUpdateType } from './update-type.ts';\n\nexport async function generateUpdate(\n config: LookupUpdateConfig,\n currentValue: string | undefined,\n versioningApi: VersioningApi,\n rangeStrategy: RangeStrategy,\n currentVersion: string,\n bucket: string,\n release: Release,\n allVersions: string[],\n): Promise<LookupUpdate> {\n const newVersion = release.version;\n const update: LookupUpdate = {\n bucket,\n newVersion,\n newValue: null!,\n hasAttestation: release.attestation,\n };\n\n // istanbul ignore if\n if (release.checksumUrl !== undefined) {\n update.checksumUrl = release.checksumUrl;\n }\n // istanbul ignore if\n if (release.downloadUrl !== undefined) {\n update.downloadUrl = release.downloadUrl;\n }\n // istanbul ignore if\n if (release.newDigest !== undefined) {\n update.newDigest = release.newDigest;\n }\n // istanbul ignore if\n if (release.releaseTimestamp) {\n update.releaseTimestamp = release.releaseTimestamp;\n update.newVersionAgeInDays = getElapsedDays(release.releaseTimestamp);\n }\n // istanbul ignore if\n if (release.registryUrl !== undefined) {\n /**\n * This means:\n * - registry strategy is set to merge\n * - releases were fetched from multiple registry urls\n */\n update.registryUrl = release.registryUrl;\n }\n\n if (currentValue) {\n try {\n update.newValue = versioningApi.getNewValue({\n currentValue,\n rangeStrategy,\n currentVersion,\n newVersion,\n allVersions,\n })!;\n } catch (err) /* istanbul ignore next */ {\n logger.warn(\n { err, currentValue, rangeStrategy, currentVersion, newVersion },\n 'getNewValue error',\n );\n update.newValue = currentValue;\n }\n } else {\n update.newValue = currentValue;\n }\n update.newMajor = versioningApi.getMajor(newVersion)!;\n update.newMinor = versioningApi.getMinor(newVersion)!;\n update.newPatch = versioningApi.getPatch(newVersion)!;\n // istanbul ignore if\n if (!update.updateType && !currentVersion) {\n logger.debug({ update }, 'Update has no currentVersion');\n update.newValue = currentValue!;\n return update;\n }\n update.updateType =\n update.updateType ??\n getUpdateType(config, versioningApi, currentVersion, newVersion);\n if (versioningApi.isBreaking) {\n // This versioning scheme has breaking awareness\n update.isBreaking = versioningApi.isBreaking(currentVersion, newVersion);\n } else {\n // This versioning scheme does not have breaking awareness - assume only major updates are breaking\n // Updates from, or to, unstable releases should be treated as breaking too.\n // But we should not add that as default behavior until we stop treating non-LTS versions as unstable first\n update.isBreaking = update.updateType === 'major';\n }\n const { datasource, packageName, packageRules } = config;\n if (packageRules?.some((pr) => isNonEmptyArray(pr.matchConfidence))) {\n update.mergeConfidenceLevel = await getMergeConfidenceLevel(\n datasource,\n packageName,\n currentVersion,\n newVersion,\n update.updateType,\n );\n }\n if (!versioningApi.isVersion(update.newValue)) {\n update.isRange = true;\n }\n if (rangeStrategy === 'update-lockfile' && currentValue === update.newValue) {\n update.isLockfileUpdate = true;\n }\n if (\n rangeStrategy === 'bump' &&\n // TODO #22198\n versioningApi.matches(newVersion, currentValue!)\n ) {\n update.isBump = true;\n }\n return update;\n}\n"],"mappings":";;;;;;AAWA,eAAsB,eACpB,QACA,cACA,eACA,eACA,gBACA,QACA,SACA,aACuB;CACvB,MAAM,aAAa,QAAQ;CAC3B,MAAM,SAAuB;EAC3B;EACA;EACA,UAAU;EACV,gBAAgB,QAAQ;EACzB;;AAGD,KAAI,QAAQ,gBAAgB,KAAA,EAC1B,QAAO,cAAc,QAAQ;;AAG/B,KAAI,QAAQ,gBAAgB,KAAA,EAC1B,QAAO,cAAc,QAAQ;;AAG/B,KAAI,QAAQ,cAAc,KAAA,EACxB,QAAO,YAAY,QAAQ;;AAG7B,KAAI,QAAQ,kBAAkB;AAC5B,SAAO,mBAAmB,QAAQ;AAClC,SAAO,sBAAsB,eAAe,QAAQ,iBAAiB;;;AAGvE,KAAI,QAAQ,gBAAgB,KAAA;;;;;;AAM1B,QAAO,cAAc,QAAQ;AAG/B,KAAI,aACF,KAAI;AACF,SAAO,WAAW,cAAc,YAAY;GAC1C;GACA;GACA;GACA;GACA;GACD,CAAC;UACK,iCAAgC;AACvC,SAAO,KACL;GAAE;GAAK;GAAc;GAAe;GAAgB;GAAY,EAChE,oBACD;AACD,SAAO,WAAW;;KAGpB,QAAO,WAAW;AAEpB,QAAO,WAAW,cAAc,SAAS,WAAW;AACpD,QAAO,WAAW,cAAc,SAAS,WAAW;AACpD,QAAO,WAAW,cAAc,SAAS,WAAW;;AAEpD,KAAI,CAAC,OAAO,cAAc,CAAC,gBAAgB;AACzC,SAAO,MAAM,EAAE,QAAQ,EAAE,+BAA+B;AACxD,SAAO,WAAW;AAClB,SAAO;;AAET,QAAO,aACL,OAAO,cACP,cAAc,QAAQ,eAAe,gBAAgB,WAAW;AAClE,KAAI,cAAc,WAEhB,QAAO,aAAa,cAAc,WAAW,gBAAgB,WAAW;KAKxE,QAAO,aAAa,OAAO,eAAe;CAE5C,MAAM,EAAE,YAAY,aAAa,iBAAiB;AAClD,KAAI,cAAc,MAAM,OAAO,gBAAgB,GAAG,gBAAgB,CAAC,CACjE,QAAO,uBAAuB,MAAM,wBAClC,YACA,aACA,gBACA,YACA,OAAO,WACR;AAEH,KAAI,CAAC,cAAc,UAAU,OAAO,SAAS,CAC3C,QAAO,UAAU;AAEnB,KAAI,kBAAkB,qBAAqB,iBAAiB,OAAO,SACjE,QAAO,mBAAmB;AAE5B,KACE,kBAAkB,UAElB,cAAc,QAAQ,YAAY,aAAc,CAEhD,QAAO,SAAS;AAElB,QAAO"}
1
+ {"version":3,"file":"generate.js","names":[],"sources":["../../../../../lib/workers/repository/process/lookup/generate.ts"],"sourcesContent":["import { isNonEmptyArray } from '@sindresorhus/is';\nimport { logger } from '../../../../logger/index.ts';\nimport type { Release } from '../../../../modules/datasource/index.ts';\nimport type { LookupUpdate } from '../../../../modules/manager/types.ts';\nimport type { VersioningApi } from '../../../../modules/versioning/index.ts';\nimport type { RangeStrategy } from '../../../../types/index.ts';\nimport { getElapsedDays } from '../../../../util/date.ts';\nimport { getMergeConfidenceLevel } from '../../../../util/merge-confidence/index.ts';\nimport type { LookupUpdateConfig } from './types.ts';\nimport { getUpdateType } from './update-type.ts';\n\nexport async function generateUpdate(\n config: LookupUpdateConfig,\n currentValue: string | undefined,\n versioningApi: VersioningApi,\n rangeStrategy: RangeStrategy,\n currentVersion: string,\n bucket: string,\n release: Release,\n allVersions: Set<string>,\n): Promise<LookupUpdate> {\n const newVersion = release.version;\n const update: LookupUpdate = {\n bucket,\n newVersion,\n newValue: null!,\n hasAttestation: release.attestation,\n };\n\n // istanbul ignore if\n if (release.checksumUrl !== undefined) {\n update.checksumUrl = release.checksumUrl;\n }\n // istanbul ignore if\n if (release.downloadUrl !== undefined) {\n update.downloadUrl = release.downloadUrl;\n }\n // istanbul ignore if\n if (release.newDigest !== undefined) {\n update.newDigest = release.newDigest;\n }\n // istanbul ignore if\n if (release.releaseTimestamp) {\n update.releaseTimestamp = release.releaseTimestamp;\n update.newVersionAgeInDays = getElapsedDays(release.releaseTimestamp);\n }\n // istanbul ignore if\n if (release.registryUrl !== undefined) {\n /**\n * This means:\n * - registry strategy is set to merge\n * - releases were fetched from multiple registry urls\n */\n update.registryUrl = release.registryUrl;\n }\n\n if (currentValue) {\n try {\n update.newValue = versioningApi.getNewValue({\n currentValue,\n rangeStrategy,\n currentVersion,\n newVersion,\n allVersions,\n })!;\n } catch (err) /* istanbul ignore next */ {\n logger.warn(\n { err, currentValue, rangeStrategy, currentVersion, newVersion },\n 'getNewValue error',\n );\n update.newValue = currentValue;\n }\n } else {\n update.newValue = currentValue;\n }\n update.newMajor = versioningApi.getMajor(newVersion)!;\n update.newMinor = versioningApi.getMinor(newVersion)!;\n update.newPatch = versioningApi.getPatch(newVersion)!;\n // istanbul ignore if\n if (!update.updateType && !currentVersion) {\n logger.debug({ update }, 'Update has no currentVersion');\n update.newValue = currentValue!;\n return update;\n }\n update.updateType =\n update.updateType ??\n getUpdateType(config, versioningApi, currentVersion, newVersion);\n if (versioningApi.isBreaking) {\n // This versioning scheme has breaking awareness\n update.isBreaking = versioningApi.isBreaking(currentVersion, newVersion);\n } else {\n // This versioning scheme does not have breaking awareness - assume only major updates are breaking\n // Updates from, or to, unstable releases should be treated as breaking too.\n // But we should not add that as default behavior until we stop treating non-LTS versions as unstable first\n update.isBreaking = update.updateType === 'major';\n }\n const { datasource, packageName, packageRules } = config;\n if (packageRules?.some((pr) => isNonEmptyArray(pr.matchConfidence))) {\n update.mergeConfidenceLevel = await getMergeConfidenceLevel(\n datasource,\n packageName,\n currentVersion,\n newVersion,\n update.updateType,\n );\n }\n if (!versioningApi.isVersion(update.newValue)) {\n update.isRange = true;\n }\n if (rangeStrategy === 'update-lockfile' && currentValue === update.newValue) {\n update.isLockfileUpdate = true;\n }\n if (\n rangeStrategy === 'bump' &&\n // TODO #22198\n versioningApi.matches(newVersion, currentValue!)\n ) {\n update.isBump = true;\n }\n return update;\n}\n"],"mappings":";;;;;;AAWA,eAAsB,eACpB,QACA,cACA,eACA,eACA,gBACA,QACA,SACA,aACuB;CACvB,MAAM,aAAa,QAAQ;CAC3B,MAAM,SAAuB;EAC3B;EACA;EACA,UAAU;EACV,gBAAgB,QAAQ;EACzB;;AAGD,KAAI,QAAQ,gBAAgB,KAAA,EAC1B,QAAO,cAAc,QAAQ;;AAG/B,KAAI,QAAQ,gBAAgB,KAAA,EAC1B,QAAO,cAAc,QAAQ;;AAG/B,KAAI,QAAQ,cAAc,KAAA,EACxB,QAAO,YAAY,QAAQ;;AAG7B,KAAI,QAAQ,kBAAkB;AAC5B,SAAO,mBAAmB,QAAQ;AAClC,SAAO,sBAAsB,eAAe,QAAQ,iBAAiB;;;AAGvE,KAAI,QAAQ,gBAAgB,KAAA;;;;;;AAM1B,QAAO,cAAc,QAAQ;AAG/B,KAAI,aACF,KAAI;AACF,SAAO,WAAW,cAAc,YAAY;GAC1C;GACA;GACA;GACA;GACA;GACD,CAAC;UACK,iCAAgC;AACvC,SAAO,KACL;GAAE;GAAK;GAAc;GAAe;GAAgB;GAAY,EAChE,oBACD;AACD,SAAO,WAAW;;KAGpB,QAAO,WAAW;AAEpB,QAAO,WAAW,cAAc,SAAS,WAAW;AACpD,QAAO,WAAW,cAAc,SAAS,WAAW;AACpD,QAAO,WAAW,cAAc,SAAS,WAAW;;AAEpD,KAAI,CAAC,OAAO,cAAc,CAAC,gBAAgB;AACzC,SAAO,MAAM,EAAE,QAAQ,EAAE,+BAA+B;AACxD,SAAO,WAAW;AAClB,SAAO;;AAET,QAAO,aACL,OAAO,cACP,cAAc,QAAQ,eAAe,gBAAgB,WAAW;AAClE,KAAI,cAAc,WAEhB,QAAO,aAAa,cAAc,WAAW,gBAAgB,WAAW;KAKxE,QAAO,aAAa,OAAO,eAAe;CAE5C,MAAM,EAAE,YAAY,aAAa,iBAAiB;AAClD,KAAI,cAAc,MAAM,OAAO,gBAAgB,GAAG,gBAAgB,CAAC,CACjE,QAAO,uBAAuB,MAAM,wBAClC,YACA,aACA,gBACA,YACA,OAAO,WACR;AAEH,KAAI,CAAC,cAAc,UAAU,OAAO,SAAS,CAC3C,QAAO,UAAU;AAEnB,KAAI,kBAAkB,qBAAqB,iBAAiB,OAAO,SACjE,QAAO,mBAAmB;AAE5B,KACE,kBAAkB,UAElB,cAAc,QAAQ,YAAY,aAAc,CAEhD,QAAO,SAAS;AAElB,QAAO"}
@@ -113,7 +113,7 @@ async function lookupUpdates(inconfig) {
113
113
  ]);
114
114
  const latestVersion = dependency.tags?.latest;
115
115
  let allVersions = dependency.releases.filter((release) => versioningApi.isVersion(release.version));
116
- const allReleaseVersions = allVersions.map((r) => r.version);
116
+ const allReleaseVersions = new Set(allVersions.map((r) => r.version));
117
117
  // istanbul ignore if
118
118
  if (allVersions.length === 0) {
119
119
  logger.info({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["allVersioning.get"],"sources":["../../../../../lib/workers/repository/process/lookup/index.ts"],"sourcesContent":["import { isNonEmptyString, isString, isUndefined } from '@sindresorhus/is';\nimport { mergeChildConfig } from '../../../../config/index.ts';\nimport type { ValidationMessage } from '../../../../config/types.ts';\nimport { CONFIG_VALIDATION } from '../../../../constants/error-messages.ts';\nimport { logger } from '../../../../logger/index.ts';\nimport {\n getDatasourceFor,\n getDefaultVersioning,\n} from '../../../../modules/datasource/common.ts';\nimport type {\n GetDigestInputConfig,\n Release,\n ReleaseResult,\n} from '../../../../modules/datasource/index.ts';\nimport {\n applyDatasourceFilters,\n getDigest,\n getRawPkgReleases,\n isGetPkgReleasesConfig,\n supportsDigests,\n} from '../../../../modules/datasource/index.ts';\nimport { postprocessRelease } from '../../../../modules/datasource/postprocess-release.ts';\nimport { getRangeStrategy } from '../../../../modules/manager/index.ts';\nimport { id as dockerVersioningId } from '../../../../modules/versioning/docker/index.ts';\nimport * as allVersioning from '../../../../modules/versioning/index.ts';\nimport { ExternalHostError } from '../../../../types/errors/external-host-error.ts';\nimport { assignKeys } from '../../../../util/assign-keys.ts';\nimport { getElapsedDays } from '../../../../util/date.ts';\nimport { applyPackageRules } from '../../../../util/package-rules/index.ts';\nimport { regEx } from '../../../../util/regex.ts';\nimport { Result } from '../../../../util/result.ts';\nimport type { Timestamp } from '../../../../util/timestamp.ts';\nimport { calculateAbandonment } from './abandonment.ts';\nimport { getBucket } from './bucket.ts';\nimport { getCurrentVersion } from './current.ts';\nimport { filterVersions } from './filter.ts';\nimport { filterInternalChecks } from './filter-checks.ts';\nimport { generateUpdate } from './generate.ts';\nimport { getRollbackUpdate } from './rollback.ts';\nimport { calculateMostRecentTimestamp } from './timestamps.ts';\nimport type { LookupUpdateConfig, UpdateResult } from './types.ts';\nimport {\n addReplacementUpdateIfValid,\n isReplacementRulesConfigured,\n} from './utils.ts';\n\nasync function getTimestamp(\n config: LookupUpdateConfig,\n versions: Release[],\n version: string,\n versioningApi: allVersioning.VersioningApi,\n): Promise<Timestamp | null | undefined> {\n const currentRelease = versions.find(\n (v) =>\n versioningApi.isValid(v.version) &&\n versioningApi.equals(v.version, version),\n );\n\n if (!currentRelease) {\n return null;\n }\n\n if (currentRelease.releaseTimestamp) {\n return currentRelease.releaseTimestamp;\n }\n\n const remoteRelease = await postprocessRelease(config, currentRelease);\n return remoteRelease?.releaseTimestamp;\n}\n\nexport async function lookupUpdates(\n inconfig: LookupUpdateConfig,\n): Promise<Result<UpdateResult, Error>> {\n let config: LookupUpdateConfig = { ...inconfig };\n config.versioning ??= getDefaultVersioning(config.datasource);\n\n const versioningApi = allVersioning.get(config.versioning);\n\n let dependency: ReleaseResult | null = null;\n const res: UpdateResult = {\n versioning: config.versioning,\n updates: [],\n warnings: [],\n };\n\n try {\n logger.trace(\n {\n dependency: config.packageName,\n currentValue: config.currentValue,\n },\n 'lookupUpdates',\n );\n if (config.currentValue && !isString(config.currentValue)) {\n // If currentValue is not a string, then it's invalid\n // v8 ignore else -- TODO: add test #40625\n if (config.currentValue) {\n logger.debug(\n `Invalid currentValue for ${config.packageName}: ${JSON.stringify(config.currentValue)} (${typeof config.currentValue})`,\n );\n }\n res.skipReason = 'invalid-value';\n return Result.ok(res);\n }\n if (\n !isGetPkgReleasesConfig(config) ||\n !getDatasourceFor(config.datasource)\n ) {\n res.skipReason = 'invalid-config';\n return Result.ok(res);\n }\n let compareValue = config.currentValue;\n if (\n isString(config.currentValue) &&\n isString(config.versionCompatibility)\n ) {\n const versionCompatbilityRegEx = regEx(config.versionCompatibility);\n const regexMatch = versionCompatbilityRegEx.exec(config.currentValue);\n if (regexMatch?.groups) {\n logger.debug(\n {\n versionCompatibility: config.versionCompatibility,\n currentValue: config.currentValue,\n packageName: config.packageName,\n groups: regexMatch.groups,\n },\n 'version compatibility regex match',\n );\n config.currentCompatibility = regexMatch.groups.compatibility;\n compareValue = regexMatch.groups.version;\n } else {\n logger.debug(\n {\n versionCompatibility: config.versionCompatibility,\n currentValue: config.currentValue,\n packageName: config.packageName,\n },\n 'version compatibility regex mismatch',\n );\n }\n }\n\n const isValid =\n isString(compareValue) && versioningApi.isValid(compareValue);\n\n const unconstrainedValue =\n !!config.lockedVersion && isUndefined(config.currentValue);\n\n if (isValid || unconstrainedValue) {\n if (\n !config.updatePinnedDependencies &&\n // TODO #22198\n versioningApi.isSingleVersion(compareValue!)\n ) {\n res.skipReason = 'is-pinned';\n return Result.ok(res);\n }\n\n const { val: releaseResult, err: lookupError } = await getRawPkgReleases(\n config,\n )\n .transform((res) => calculateMostRecentTimestamp(versioningApi, res))\n .transform((res) => calculateAbandonment(res, config))\n .transform((res) => applyDatasourceFilters(res, config))\n .unwrap();\n\n if (lookupError instanceof Error) {\n throw lookupError;\n }\n\n if (lookupError) {\n // If dependency lookup fails then warn and return\n const warning: ValidationMessage = {\n topic: config.packageName,\n message: `Failed to look up ${config.datasource} package ${config.packageName}: ${lookupError}`,\n };\n logger.debug(\n {\n dependency: config.packageName,\n packageFile: config.packageFile,\n },\n warning.message,\n );\n // TODO: return warnings in own field\n res.warnings.push(warning);\n return Result.ok(res);\n }\n\n dependency = releaseResult;\n\n if (dependency.deprecationMessage) {\n logger.debug(\n `Found deprecationMessage for ${config.datasource} package ${config.packageName}`,\n );\n }\n\n assignKeys(res, dependency, [\n 'deprecationMessage',\n 'sourceUrl',\n 'registryUrl',\n 'sourceDirectory',\n 'homepage',\n 'changelogUrl',\n 'dependencyUrl',\n 'lookupName',\n 'packageScope',\n 'mostRecentTimestamp',\n 'isAbandoned',\n 'respectLatest',\n ]);\n\n const latestVersion = dependency.tags?.latest;\n // Filter out any results from datasource that don't comply with our versioning\n let allVersions = dependency.releases.filter((release) =>\n versioningApi.isVersion(release.version),\n );\n const allReleaseVersions = allVersions.map((r) => r.version);\n // istanbul ignore if\n if (allVersions.length === 0) {\n const message = `Found no results from datasource that look like a version`;\n logger.info(\n {\n dependency: config.packageName,\n result: dependency,\n },\n message,\n );\n if (!config.currentDigest) {\n return Result.ok(res);\n }\n }\n // Reapply package rules in case we missed something from sourceUrl\n config = await applyPackageRules(\n { ...config, sourceUrl: res.sourceUrl },\n 'source-url',\n );\n if (config.followTag) {\n const taggedVersion = dependency.tags?.[config.followTag];\n if (!taggedVersion) {\n res.warnings.push({\n topic: config.packageName,\n message: `Can't find version with tag ${config.followTag} for ${config.datasource} package ${config.packageName}`,\n });\n return Result.ok(res);\n }\n allVersions = allVersions.filter(\n (v) =>\n v.version === taggedVersion ||\n (v.version === compareValue &&\n versioningApi.isGreaterThan(taggedVersion, compareValue)),\n );\n }\n\n const inRangeOnlyStrategy = config.rangeStrategy === 'in-range-only';\n // Check that existing constraint can be satisfied\n const allSatisfyingVersions =\n (inRangeOnlyStrategy || config.rollbackPrs) && !unconstrainedValue\n ? allVersions.filter((v) =>\n // TODO #22198\n versioningApi.matches(v.version, compareValue!),\n )\n : allVersions;\n if (!allSatisfyingVersions.length) {\n logger.debug(\n `Found no satisfying versions with '${config.versioning}' versioning`,\n );\n }\n\n if (config.rollbackPrs && !allSatisfyingVersions.length) {\n const rollback = getRollbackUpdate(config, allVersions, versioningApi);\n // istanbul ignore if\n if (!rollback) {\n res.warnings.push({\n topic: config.packageName,\n // TODO: types (#22198)\n message: `Can't find version matching ${compareValue!} for ${\n config.datasource\n } package ${config.packageName}`,\n });\n return Result.ok(res);\n }\n res.updates.push(rollback);\n }\n let rangeStrategy = getRangeStrategy(config);\n\n // istanbul ignore next\n if (\n config.isVulnerabilityAlert &&\n rangeStrategy === 'update-lockfile' &&\n !config.lockedVersion\n ) {\n rangeStrategy = 'bump';\n }\n // unconstrained deps with lockedVersion\n if (\n config.isVulnerabilityAlert &&\n !config.currentValue &&\n config.lockedVersion\n ) {\n rangeStrategy = 'update-lockfile';\n }\n const nonDeprecatedVersions = dependency.releases\n .filter((release) => !release.isDeprecated)\n .map((release) => release.version);\n let currentVersion: string;\n if (rangeStrategy === 'update-lockfile') {\n currentVersion = config.lockedVersion!;\n } else if (allVersions.find((v) => v.version === compareValue)) {\n currentVersion = compareValue!;\n }\n // TODO #22198\n currentVersion ??=\n getCurrentVersion(\n compareValue!,\n config.lockedVersion!,\n versioningApi,\n rangeStrategy!,\n latestVersion!,\n nonDeprecatedVersions,\n ) ??\n getCurrentVersion(\n compareValue!,\n config.lockedVersion!,\n versioningApi,\n rangeStrategy!,\n latestVersion!,\n allVersions.map((v) => v.version),\n )!;\n\n if (!currentVersion) {\n // v8 ignore else -- TODO: add test #40625\n if (!config.lockedVersion) {\n logger.debug(\n `No currentVersion or lockedVersion found for ${config.packageName}`,\n );\n res.skipReason = 'invalid-value';\n }\n return Result.ok(res);\n }\n\n res.currentVersion = currentVersion!;\n const currentVersionTimestamp = await getTimestamp(\n config,\n allVersions,\n currentVersion,\n versioningApi,\n );\n\n if (isNonEmptyString(currentVersionTimestamp)) {\n res.currentVersionTimestamp = currentVersionTimestamp;\n res.currentVersionAgeInDays = getElapsedDays(currentVersionTimestamp);\n\n if (\n config.packageRules?.some((rule) =>\n isNonEmptyString(rule.matchCurrentAge),\n )\n ) {\n // Reapply package rules to check matches for matchCurrentAge\n config = await applyPackageRules(\n { ...config, currentVersionTimestamp },\n 'current-timestamp',\n );\n }\n }\n\n if (\n compareValue &&\n currentVersion &&\n rangeStrategy === 'pin' &&\n !versioningApi.isSingleVersion(compareValue)\n ) {\n const newValue =\n versioningApi.getPinnedValue?.(currentVersion) ?? currentVersion;\n res.updates.push({\n updateType: 'pin',\n isPin: true,\n newValue,\n newVersion: currentVersion,\n newMajor: versioningApi.getMajor(currentVersion)!,\n });\n }\n if (rangeStrategy === 'pin') {\n // Fall back to replace once pinning logic is done\n rangeStrategy = 'replace';\n }\n // istanbul ignore if\n if (!versioningApi.isVersion(currentVersion!)) {\n res.skipReason = 'invalid-version';\n return Result.ok(res);\n }\n // Filter latest, unstable, etc\n // TODO #22198\n let filteredReleases = filterVersions(\n config,\n currentVersion!,\n latestVersion!,\n inRangeOnlyStrategy ? allSatisfyingVersions : allVersions,\n versioningApi,\n ).filter(\n (v) =>\n // Leave only compatible versions\n unconstrainedValue ||\n versioningApi.isCompatible(v.version, compareValue),\n );\n let shrinkedViaVulnerability = false;\n if (config.isVulnerabilityAlert) {\n if (config.vulnerabilityFixVersion) {\n res.vulnerabilityFixVersion = config.vulnerabilityFixVersion;\n res.vulnerabilityFixStrategy = config.vulnerabilityFixStrategy;\n if (versioningApi.isValid(config.vulnerabilityFixVersion)) {\n let fixedFilteredReleases;\n if (versioningApi.isVersion(config.vulnerabilityFixVersion)) {\n // Retain only releases greater than or equal to the fix version\n fixedFilteredReleases = filteredReleases.filter(\n (release) =>\n !versioningApi.isGreaterThan(\n config.vulnerabilityFixVersion!,\n release.version,\n ),\n );\n } else {\n // Retain only releases which max the fix constraint\n fixedFilteredReleases = filteredReleases.filter((release) =>\n versioningApi.matches(\n release.version,\n config.vulnerabilityFixVersion!,\n ),\n );\n }\n // Warn if this filtering results caused zero releases\n if (fixedFilteredReleases.length === 0 && filteredReleases.length) {\n logger.warn(\n {\n releases: filteredReleases,\n vulnerabilityFixVersion: config.vulnerabilityFixVersion,\n packageName: config.packageName,\n },\n 'No releases satisfy vulnerabilityFixVersion',\n );\n }\n // Use the additionally filtered releases\n filteredReleases = fixedFilteredReleases;\n } else {\n logger.warn(\n {\n vulnerabilityFixVersion: config.vulnerabilityFixVersion,\n packageName: config.packageName,\n },\n 'vulnerabilityFixVersion is not valid',\n );\n }\n }\n if (config.vulnerabilityFixStrategy === 'highest') {\n // Don't shrink the list of releases - let Renovate use its normal logic\n logger.once.debug(\n `Using vulnerabilityFixStrategy=highest for ${config.packageName}`,\n );\n } else {\n // Shrink the list of releases to the lowest fixed version\n logger.once.debug(\n `Using vulnerabilityFixStrategy=lowest for ${config.packageName}`,\n );\n filteredReleases = filteredReleases.slice(0, 1);\n shrinkedViaVulnerability = true;\n }\n }\n const buckets: Record<string, [Release]> = {};\n for (const release of filteredReleases) {\n const bucket = getBucket(\n config,\n // TODO #22198\n currentVersion!,\n release.version,\n versioningApi,\n );\n // v8 ignore else -- TODO: add test #40625\n if (isString(bucket)) {\n if (buckets[bucket]) {\n buckets[bucket].push(release);\n } else {\n buckets[bucket] = [release];\n }\n }\n }\n const depResultConfig = mergeChildConfig(config, res);\n for (const [bucket, releases] of Object.entries(buckets)) {\n const sortedReleases = releases.sort((r1, r2) =>\n versioningApi.sortVersions(r1.version, r2.version),\n );\n const { release, pendingChecks, pendingReleases } =\n await filterInternalChecks(\n depResultConfig,\n versioningApi,\n bucket,\n sortedReleases,\n );\n // istanbul ignore next\n if (!release) {\n return Result.ok(res);\n }\n const newVersion = release.version;\n const update = await generateUpdate(\n config,\n compareValue,\n versioningApi,\n // TODO #22198\n\n rangeStrategy!,\n config.lockedVersion ?? currentVersion!,\n bucket,\n release,\n allReleaseVersions,\n );\n\n // #29034\n if (\n config.manager === 'gomod' &&\n compareValue?.startsWith('v0.0.0-') &&\n update.newValue?.startsWith('v0.0.0-') &&\n config.currentDigest !== update.newDigest\n ) {\n update.updateType = 'digest';\n }\n\n if (pendingChecks) {\n update.pendingChecks = pendingChecks;\n }\n\n if (pendingReleases.length) {\n update.pendingVersions = pendingReleases.map((r) => r.version);\n }\n if (!update.newValue || update.newValue === compareValue) {\n if (!config.lockedVersion) {\n continue;\n }\n // istanbul ignore if\n if (rangeStrategy === 'bump') {\n logger.trace(\n {\n packageName: config.packageName,\n currentValue: config.currentValue,\n lockedVersion: config.lockedVersion,\n newVersion,\n },\n 'Skipping bump because newValue is the same',\n );\n continue;\n }\n res.isSingleVersion = true;\n }\n res.isSingleVersion ??=\n isString(update.newValue) &&\n versioningApi.isSingleVersion(update.newValue);\n // istanbul ignore if\n if (\n config.versioning === dockerVersioningId &&\n update.updateType !== 'rollback' &&\n update.newValue &&\n versioningApi.isVersion(update.newValue) &&\n compareValue &&\n versioningApi.isVersion(compareValue) &&\n versioningApi.isGreaterThan(compareValue, update.newValue)\n ) {\n logger.warn(\n {\n packageName: config.packageName,\n currentValue: config.currentValue,\n compareValue,\n currentVersion: config.currentVersion,\n update,\n allVersionsLength: allVersions.length,\n filteredReleaseVersions: filteredReleases.map((r) => r.version),\n shrinkedViaVulnerability,\n },\n 'Unexpected downgrade detected: skipping',\n );\n } else {\n res.updates.push(update);\n }\n }\n } else if (compareValue) {\n logger.debug(\n `Dependency ${config.packageName} has unsupported/unversioned value ${compareValue} (versioning=${config.versioning})`,\n );\n\n if (!config.pinDigests && !config.currentDigest) {\n logger.debug(\n `Skipping ${config.packageName} because no currentDigest or pinDigests`,\n );\n res.skipReason = 'invalid-value';\n } else {\n delete res.skipReason;\n }\n } else {\n res.skipReason = 'invalid-value';\n }\n\n if (isReplacementRulesConfigured(config)) {\n addReplacementUpdateIfValid(res.updates, config);\n } else if (dependency?.replacementName && dependency.replacementVersion) {\n res.updates.push({\n updateType: 'replacement',\n newName: dependency.replacementName,\n newValue: dependency.replacementVersion,\n });\n }\n\n // Record if the dep is fixed to a version\n if (config.lockedVersion) {\n res.currentVersion = config.lockedVersion;\n res.fixedVersion = config.lockedVersion;\n } else if (compareValue && versioningApi.isSingleVersion(compareValue)) {\n res.fixedVersion = compareValue.replace(regEx(/^=+/), '');\n }\n\n // massage versionCompatibility\n if (\n isString(config.currentValue) &&\n isString(compareValue) &&\n isString(config.versionCompatibility)\n ) {\n for (const update of res.updates) {\n logger.debug({ update });\n // v8 ignore else -- TODO: add test #40625\n if (isString(config.currentValue) && isString(update.newValue)) {\n update.newValue = config.currentValue.replace(\n compareValue,\n update.newValue,\n );\n }\n }\n }\n\n // Add digests if necessary\n if (supportsDigests(config.datasource)) {\n if (config.currentDigest) {\n if (!config.digestOneAndOnly || !res.updates.length) {\n // digest update\n res.updates.push({\n updateType: 'digest',\n newValue: config.currentValue,\n });\n }\n } else if (config.pinDigests) {\n // Create a pin only if one doesn't already exists\n // v8 ignore else -- TODO: add test #40625\n if (!res.updates.some((update) => update.updateType === 'pin')) {\n // pin digest\n res.updates.push({\n isPinDigest: true,\n updateType: 'pinDigest',\n newValue: config.currentValue,\n });\n }\n }\n if (versioningApi.valueToVersion) {\n // TODO #22198\n res.currentVersion = versioningApi.valueToVersion(res.currentVersion!);\n for (const update of res.updates) {\n // TODO #22198\n update.newVersion = versioningApi.valueToVersion(update.newVersion!);\n }\n }\n if (res.registryUrl) {\n config.registryUrls = [res.registryUrl];\n }\n\n // update digest for all\n for (const update of res.updates) {\n if (config.pinDigests === true || config.currentDigest) {\n const getDigestConfig: GetDigestInputConfig = {\n ...config,\n registryUrl: update.registryUrl ?? res.registryUrl,\n lookupName: res.lookupName,\n };\n\n // #20304 only pass it for replacement updates, otherwise we get wrong or invalid digest\n if (update.updateType !== 'replacement') {\n delete getDigestConfig.replacementName;\n }\n\n // #20304 don't use lookupName and currentDigest when we replace image name\n if (\n update.updateType === 'replacement' &&\n update.newName !== config.packageName\n ) {\n delete getDigestConfig.lookupName;\n delete getDigestConfig.currentDigest;\n getDigestConfig.replacementName = update.newName;\n }\n\n // Don't use current releases if replacement changes name, otherwise we use the wrong new digest.\n // This happens on datasources which return the digest in release info like `github-tags`.\n // We can still use it when only version is changing.\n if (\n update.updateType !== 'replacement' ||\n update.newName === config.packageName\n ) {\n update.newDigest ??= dependency?.releases.find(\n (r) => r.version === update.newValue,\n )?.newDigest;\n }\n\n update.newDigest ??= await getDigest(\n getDigestConfig,\n update.newValue,\n );\n\n // If the digest could not be determined, report this as otherwise the\n // update will be omitted later on without notice.\n if (update.newDigest === null) {\n logger.debug(\n {\n packageName: config.packageName,\n currentValue: config.currentValue,\n datasource: config.datasource,\n newValue: update.newValue,\n bucket: update.bucket,\n },\n 'Could not determine new digest for update.',\n );\n\n // Only report a warning if there is a current digest.\n // Context: https://github.com/renovatebot/renovate/pull/20175#discussion_r1102615059.\n if (config.currentDigest) {\n res.warnings.push({\n message: `Could not determine new digest for update (${config.datasource} package ${config.packageName})`,\n topic: config.packageName,\n });\n }\n }\n } else {\n delete update.newDigest;\n }\n if (update.newVersion) {\n const registryUrl = dependency?.releases?.find(\n (release) => release.version === update.newVersion,\n )?.registryUrl;\n if (registryUrl && registryUrl !== res.registryUrl) {\n update.registryUrl = registryUrl;\n }\n }\n }\n }\n\n if (res.updates.length) {\n delete res.skipReason;\n }\n // Strip out any non-changed ones\n res.updates = res.updates\n .filter(\n (update) => update.newValue !== null || config.currentValue === null,\n )\n .filter((update) => update.newDigest !== null)\n .filter(\n (update) =>\n (isString(update.newName) && update.newName !== config.packageName) ||\n update.isReplacement === true ||\n update.newValue !== config.currentValue ||\n update.isLockfileUpdate === true ||\n // TODO #22198\n (update.newDigest &&\n !update.newDigest.startsWith(config.currentDigest!)),\n );\n // If range strategy specified in config is 'in-range-only', also strip out updates where currentValue !== newValue\n if (config.rangeStrategy === 'in-range-only') {\n res.updates = res.updates.filter(\n (update) => update.newValue === config.currentValue,\n );\n }\n // Handle a weird edge case involving followTag and fallbacks\n if (config.rollbackPrs && config.followTag) {\n res.updates = res.updates.filter(\n (update) =>\n update.updateType !== 'rollback' || res.updates.length === 1,\n );\n }\n\n const release =\n res.updates.length > 0\n ? dependency?.releases.find(\n (r) => r.version === res.updates[0].newValue,\n )\n : null;\n\n if (release?.changelogContent) {\n res.changelogContent = release.changelogContent;\n res.changelogUrl = release.changelogUrl;\n }\n } catch (err) /* istanbul ignore next */ {\n if (err instanceof ExternalHostError) {\n return Result.err(err);\n }\n\n if (err instanceof Error && err.message === CONFIG_VALIDATION) {\n return Result.err(err);\n }\n\n logger.error(\n {\n currentDigest: config.currentDigest,\n currentValue: config.currentValue,\n datasource: config.datasource,\n packageName: config.packageName,\n digestOneAndOnly: config.digestOneAndOnly,\n followTag: config.followTag,\n lockedVersion: config.lockedVersion,\n packageFile: config.packageFile,\n pinDigests: config.pinDigests,\n rollbackPrs: config.rollbackPrs,\n isVulnerabilityAlert: config.isVulnerabilityAlert,\n updatePinnedDependencies: config.updatePinnedDependencies,\n err,\n },\n 'lookupUpdates error',\n );\n res.skipReason = 'internal-error';\n }\n return Result.ok(res);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["allVersioning.get"],"sources":["../../../../../lib/workers/repository/process/lookup/index.ts"],"sourcesContent":["import { isNonEmptyString, isString, isUndefined } from '@sindresorhus/is';\nimport { mergeChildConfig } from '../../../../config/index.ts';\nimport type { ValidationMessage } from '../../../../config/types.ts';\nimport { CONFIG_VALIDATION } from '../../../../constants/error-messages.ts';\nimport { logger } from '../../../../logger/index.ts';\nimport {\n getDatasourceFor,\n getDefaultVersioning,\n} from '../../../../modules/datasource/common.ts';\nimport type {\n GetDigestInputConfig,\n Release,\n ReleaseResult,\n} from '../../../../modules/datasource/index.ts';\nimport {\n applyDatasourceFilters,\n getDigest,\n getRawPkgReleases,\n isGetPkgReleasesConfig,\n supportsDigests,\n} from '../../../../modules/datasource/index.ts';\nimport { postprocessRelease } from '../../../../modules/datasource/postprocess-release.ts';\nimport { getRangeStrategy } from '../../../../modules/manager/index.ts';\nimport { id as dockerVersioningId } from '../../../../modules/versioning/docker/index.ts';\nimport * as allVersioning from '../../../../modules/versioning/index.ts';\nimport { ExternalHostError } from '../../../../types/errors/external-host-error.ts';\nimport { assignKeys } from '../../../../util/assign-keys.ts';\nimport { getElapsedDays } from '../../../../util/date.ts';\nimport { applyPackageRules } from '../../../../util/package-rules/index.ts';\nimport { regEx } from '../../../../util/regex.ts';\nimport { Result } from '../../../../util/result.ts';\nimport type { Timestamp } from '../../../../util/timestamp.ts';\nimport { calculateAbandonment } from './abandonment.ts';\nimport { getBucket } from './bucket.ts';\nimport { getCurrentVersion } from './current.ts';\nimport { filterVersions } from './filter.ts';\nimport { filterInternalChecks } from './filter-checks.ts';\nimport { generateUpdate } from './generate.ts';\nimport { getRollbackUpdate } from './rollback.ts';\nimport { calculateMostRecentTimestamp } from './timestamps.ts';\nimport type { LookupUpdateConfig, UpdateResult } from './types.ts';\nimport {\n addReplacementUpdateIfValid,\n isReplacementRulesConfigured,\n} from './utils.ts';\n\nasync function getTimestamp(\n config: LookupUpdateConfig,\n versions: Release[],\n version: string,\n versioningApi: allVersioning.VersioningApi,\n): Promise<Timestamp | null | undefined> {\n const currentRelease = versions.find(\n (v) =>\n versioningApi.isValid(v.version) &&\n versioningApi.equals(v.version, version),\n );\n\n if (!currentRelease) {\n return null;\n }\n\n if (currentRelease.releaseTimestamp) {\n return currentRelease.releaseTimestamp;\n }\n\n const remoteRelease = await postprocessRelease(config, currentRelease);\n return remoteRelease?.releaseTimestamp;\n}\n\nexport async function lookupUpdates(\n inconfig: LookupUpdateConfig,\n): Promise<Result<UpdateResult, Error>> {\n let config: LookupUpdateConfig = { ...inconfig };\n config.versioning ??= getDefaultVersioning(config.datasource);\n\n const versioningApi = allVersioning.get(config.versioning);\n\n let dependency: ReleaseResult | null = null;\n const res: UpdateResult = {\n versioning: config.versioning,\n updates: [],\n warnings: [],\n };\n\n try {\n logger.trace(\n {\n dependency: config.packageName,\n currentValue: config.currentValue,\n },\n 'lookupUpdates',\n );\n if (config.currentValue && !isString(config.currentValue)) {\n // If currentValue is not a string, then it's invalid\n // v8 ignore else -- TODO: add test #40625\n if (config.currentValue) {\n logger.debug(\n `Invalid currentValue for ${config.packageName}: ${JSON.stringify(config.currentValue)} (${typeof config.currentValue})`,\n );\n }\n res.skipReason = 'invalid-value';\n return Result.ok(res);\n }\n if (\n !isGetPkgReleasesConfig(config) ||\n !getDatasourceFor(config.datasource)\n ) {\n res.skipReason = 'invalid-config';\n return Result.ok(res);\n }\n let compareValue = config.currentValue;\n if (\n isString(config.currentValue) &&\n isString(config.versionCompatibility)\n ) {\n const versionCompatbilityRegEx = regEx(config.versionCompatibility);\n const regexMatch = versionCompatbilityRegEx.exec(config.currentValue);\n if (regexMatch?.groups) {\n logger.debug(\n {\n versionCompatibility: config.versionCompatibility,\n currentValue: config.currentValue,\n packageName: config.packageName,\n groups: regexMatch.groups,\n },\n 'version compatibility regex match',\n );\n config.currentCompatibility = regexMatch.groups.compatibility;\n compareValue = regexMatch.groups.version;\n } else {\n logger.debug(\n {\n versionCompatibility: config.versionCompatibility,\n currentValue: config.currentValue,\n packageName: config.packageName,\n },\n 'version compatibility regex mismatch',\n );\n }\n }\n\n const isValid =\n isString(compareValue) && versioningApi.isValid(compareValue);\n\n const unconstrainedValue =\n !!config.lockedVersion && isUndefined(config.currentValue);\n\n if (isValid || unconstrainedValue) {\n if (\n !config.updatePinnedDependencies &&\n // TODO #22198\n versioningApi.isSingleVersion(compareValue!)\n ) {\n res.skipReason = 'is-pinned';\n return Result.ok(res);\n }\n\n const { val: releaseResult, err: lookupError } = await getRawPkgReleases(\n config,\n )\n .transform((res) => calculateMostRecentTimestamp(versioningApi, res))\n .transform((res) => calculateAbandonment(res, config))\n .transform((res) => applyDatasourceFilters(res, config))\n .unwrap();\n\n if (lookupError instanceof Error) {\n throw lookupError;\n }\n\n if (lookupError) {\n // If dependency lookup fails then warn and return\n const warning: ValidationMessage = {\n topic: config.packageName,\n message: `Failed to look up ${config.datasource} package ${config.packageName}: ${lookupError}`,\n };\n logger.debug(\n {\n dependency: config.packageName,\n packageFile: config.packageFile,\n },\n warning.message,\n );\n // TODO: return warnings in own field\n res.warnings.push(warning);\n return Result.ok(res);\n }\n\n dependency = releaseResult;\n\n if (dependency.deprecationMessage) {\n logger.debug(\n `Found deprecationMessage for ${config.datasource} package ${config.packageName}`,\n );\n }\n\n assignKeys(res, dependency, [\n 'deprecationMessage',\n 'sourceUrl',\n 'registryUrl',\n 'sourceDirectory',\n 'homepage',\n 'changelogUrl',\n 'dependencyUrl',\n 'lookupName',\n 'packageScope',\n 'mostRecentTimestamp',\n 'isAbandoned',\n 'respectLatest',\n ]);\n\n const latestVersion = dependency.tags?.latest;\n // Filter out any results from datasource that don't comply with our versioning\n let allVersions = dependency.releases.filter((release) =>\n versioningApi.isVersion(release.version),\n );\n const allReleaseVersions = new Set(allVersions.map((r) => r.version));\n // istanbul ignore if\n if (allVersions.length === 0) {\n const message = `Found no results from datasource that look like a version`;\n logger.info(\n {\n dependency: config.packageName,\n result: dependency,\n },\n message,\n );\n if (!config.currentDigest) {\n return Result.ok(res);\n }\n }\n // Reapply package rules in case we missed something from sourceUrl\n config = await applyPackageRules(\n { ...config, sourceUrl: res.sourceUrl },\n 'source-url',\n );\n if (config.followTag) {\n const taggedVersion = dependency.tags?.[config.followTag];\n if (!taggedVersion) {\n res.warnings.push({\n topic: config.packageName,\n message: `Can't find version with tag ${config.followTag} for ${config.datasource} package ${config.packageName}`,\n });\n return Result.ok(res);\n }\n allVersions = allVersions.filter(\n (v) =>\n v.version === taggedVersion ||\n (v.version === compareValue &&\n versioningApi.isGreaterThan(taggedVersion, compareValue)),\n );\n }\n\n const inRangeOnlyStrategy = config.rangeStrategy === 'in-range-only';\n // Check that existing constraint can be satisfied\n const allSatisfyingVersions =\n (inRangeOnlyStrategy || config.rollbackPrs) && !unconstrainedValue\n ? allVersions.filter((v) =>\n // TODO #22198\n versioningApi.matches(v.version, compareValue!),\n )\n : allVersions;\n if (!allSatisfyingVersions.length) {\n logger.debug(\n `Found no satisfying versions with '${config.versioning}' versioning`,\n );\n }\n\n if (config.rollbackPrs && !allSatisfyingVersions.length) {\n const rollback = getRollbackUpdate(config, allVersions, versioningApi);\n // istanbul ignore if\n if (!rollback) {\n res.warnings.push({\n topic: config.packageName,\n // TODO: types (#22198)\n message: `Can't find version matching ${compareValue!} for ${\n config.datasource\n } package ${config.packageName}`,\n });\n return Result.ok(res);\n }\n res.updates.push(rollback);\n }\n let rangeStrategy = getRangeStrategy(config);\n\n // istanbul ignore next\n if (\n config.isVulnerabilityAlert &&\n rangeStrategy === 'update-lockfile' &&\n !config.lockedVersion\n ) {\n rangeStrategy = 'bump';\n }\n // unconstrained deps with lockedVersion\n if (\n config.isVulnerabilityAlert &&\n !config.currentValue &&\n config.lockedVersion\n ) {\n rangeStrategy = 'update-lockfile';\n }\n const nonDeprecatedVersions = dependency.releases\n .filter((release) => !release.isDeprecated)\n .map((release) => release.version);\n let currentVersion: string;\n if (rangeStrategy === 'update-lockfile') {\n currentVersion = config.lockedVersion!;\n } else if (allVersions.find((v) => v.version === compareValue)) {\n currentVersion = compareValue!;\n }\n // TODO #22198\n currentVersion ??=\n getCurrentVersion(\n compareValue!,\n config.lockedVersion!,\n versioningApi,\n rangeStrategy!,\n latestVersion!,\n nonDeprecatedVersions,\n ) ??\n getCurrentVersion(\n compareValue!,\n config.lockedVersion!,\n versioningApi,\n rangeStrategy!,\n latestVersion!,\n allVersions.map((v) => v.version),\n )!;\n\n if (!currentVersion) {\n // v8 ignore else -- TODO: add test #40625\n if (!config.lockedVersion) {\n logger.debug(\n `No currentVersion or lockedVersion found for ${config.packageName}`,\n );\n res.skipReason = 'invalid-value';\n }\n return Result.ok(res);\n }\n\n res.currentVersion = currentVersion!;\n const currentVersionTimestamp = await getTimestamp(\n config,\n allVersions,\n currentVersion,\n versioningApi,\n );\n\n if (isNonEmptyString(currentVersionTimestamp)) {\n res.currentVersionTimestamp = currentVersionTimestamp;\n res.currentVersionAgeInDays = getElapsedDays(currentVersionTimestamp);\n\n if (\n config.packageRules?.some((rule) =>\n isNonEmptyString(rule.matchCurrentAge),\n )\n ) {\n // Reapply package rules to check matches for matchCurrentAge\n config = await applyPackageRules(\n { ...config, currentVersionTimestamp },\n 'current-timestamp',\n );\n }\n }\n\n if (\n compareValue &&\n currentVersion &&\n rangeStrategy === 'pin' &&\n !versioningApi.isSingleVersion(compareValue)\n ) {\n const newValue =\n versioningApi.getPinnedValue?.(currentVersion) ?? currentVersion;\n res.updates.push({\n updateType: 'pin',\n isPin: true,\n newValue,\n newVersion: currentVersion,\n newMajor: versioningApi.getMajor(currentVersion)!,\n });\n }\n if (rangeStrategy === 'pin') {\n // Fall back to replace once pinning logic is done\n rangeStrategy = 'replace';\n }\n // istanbul ignore if\n if (!versioningApi.isVersion(currentVersion!)) {\n res.skipReason = 'invalid-version';\n return Result.ok(res);\n }\n // Filter latest, unstable, etc\n // TODO #22198\n let filteredReleases = filterVersions(\n config,\n currentVersion!,\n latestVersion!,\n inRangeOnlyStrategy ? allSatisfyingVersions : allVersions,\n versioningApi,\n ).filter(\n (v) =>\n // Leave only compatible versions\n unconstrainedValue ||\n versioningApi.isCompatible(v.version, compareValue),\n );\n let shrinkedViaVulnerability = false;\n if (config.isVulnerabilityAlert) {\n if (config.vulnerabilityFixVersion) {\n res.vulnerabilityFixVersion = config.vulnerabilityFixVersion;\n res.vulnerabilityFixStrategy = config.vulnerabilityFixStrategy;\n if (versioningApi.isValid(config.vulnerabilityFixVersion)) {\n let fixedFilteredReleases;\n if (versioningApi.isVersion(config.vulnerabilityFixVersion)) {\n // Retain only releases greater than or equal to the fix version\n fixedFilteredReleases = filteredReleases.filter(\n (release) =>\n !versioningApi.isGreaterThan(\n config.vulnerabilityFixVersion!,\n release.version,\n ),\n );\n } else {\n // Retain only releases which max the fix constraint\n fixedFilteredReleases = filteredReleases.filter((release) =>\n versioningApi.matches(\n release.version,\n config.vulnerabilityFixVersion!,\n ),\n );\n }\n // Warn if this filtering results caused zero releases\n if (fixedFilteredReleases.length === 0 && filteredReleases.length) {\n logger.warn(\n {\n releases: filteredReleases,\n vulnerabilityFixVersion: config.vulnerabilityFixVersion,\n packageName: config.packageName,\n },\n 'No releases satisfy vulnerabilityFixVersion',\n );\n }\n // Use the additionally filtered releases\n filteredReleases = fixedFilteredReleases;\n } else {\n logger.warn(\n {\n vulnerabilityFixVersion: config.vulnerabilityFixVersion,\n packageName: config.packageName,\n },\n 'vulnerabilityFixVersion is not valid',\n );\n }\n }\n if (config.vulnerabilityFixStrategy === 'highest') {\n // Don't shrink the list of releases - let Renovate use its normal logic\n logger.once.debug(\n `Using vulnerabilityFixStrategy=highest for ${config.packageName}`,\n );\n } else {\n // Shrink the list of releases to the lowest fixed version\n logger.once.debug(\n `Using vulnerabilityFixStrategy=lowest for ${config.packageName}`,\n );\n filteredReleases = filteredReleases.slice(0, 1);\n shrinkedViaVulnerability = true;\n }\n }\n const buckets: Record<string, [Release]> = {};\n for (const release of filteredReleases) {\n const bucket = getBucket(\n config,\n // TODO #22198\n currentVersion!,\n release.version,\n versioningApi,\n );\n // v8 ignore else -- TODO: add test #40625\n if (isString(bucket)) {\n if (buckets[bucket]) {\n buckets[bucket].push(release);\n } else {\n buckets[bucket] = [release];\n }\n }\n }\n const depResultConfig = mergeChildConfig(config, res);\n for (const [bucket, releases] of Object.entries(buckets)) {\n const sortedReleases = releases.sort((r1, r2) =>\n versioningApi.sortVersions(r1.version, r2.version),\n );\n const { release, pendingChecks, pendingReleases } =\n await filterInternalChecks(\n depResultConfig,\n versioningApi,\n bucket,\n sortedReleases,\n );\n // istanbul ignore next\n if (!release) {\n return Result.ok(res);\n }\n const newVersion = release.version;\n const update = await generateUpdate(\n config,\n compareValue,\n versioningApi,\n // TODO #22198\n\n rangeStrategy!,\n config.lockedVersion ?? currentVersion!,\n bucket,\n release,\n allReleaseVersions,\n );\n\n // #29034\n if (\n config.manager === 'gomod' &&\n compareValue?.startsWith('v0.0.0-') &&\n update.newValue?.startsWith('v0.0.0-') &&\n config.currentDigest !== update.newDigest\n ) {\n update.updateType = 'digest';\n }\n\n if (pendingChecks) {\n update.pendingChecks = pendingChecks;\n }\n\n if (pendingReleases.length) {\n update.pendingVersions = pendingReleases.map((r) => r.version);\n }\n if (!update.newValue || update.newValue === compareValue) {\n if (!config.lockedVersion) {\n continue;\n }\n // istanbul ignore if\n if (rangeStrategy === 'bump') {\n logger.trace(\n {\n packageName: config.packageName,\n currentValue: config.currentValue,\n lockedVersion: config.lockedVersion,\n newVersion,\n },\n 'Skipping bump because newValue is the same',\n );\n continue;\n }\n res.isSingleVersion = true;\n }\n res.isSingleVersion ??=\n isString(update.newValue) &&\n versioningApi.isSingleVersion(update.newValue);\n // istanbul ignore if\n if (\n config.versioning === dockerVersioningId &&\n update.updateType !== 'rollback' &&\n update.newValue &&\n versioningApi.isVersion(update.newValue) &&\n compareValue &&\n versioningApi.isVersion(compareValue) &&\n versioningApi.isGreaterThan(compareValue, update.newValue)\n ) {\n logger.warn(\n {\n packageName: config.packageName,\n currentValue: config.currentValue,\n compareValue,\n currentVersion: config.currentVersion,\n update,\n allVersionsLength: allVersions.length,\n filteredReleaseVersions: filteredReleases.map((r) => r.version),\n shrinkedViaVulnerability,\n },\n 'Unexpected downgrade detected: skipping',\n );\n } else {\n res.updates.push(update);\n }\n }\n } else if (compareValue) {\n logger.debug(\n `Dependency ${config.packageName} has unsupported/unversioned value ${compareValue} (versioning=${config.versioning})`,\n );\n\n if (!config.pinDigests && !config.currentDigest) {\n logger.debug(\n `Skipping ${config.packageName} because no currentDigest or pinDigests`,\n );\n res.skipReason = 'invalid-value';\n } else {\n delete res.skipReason;\n }\n } else {\n res.skipReason = 'invalid-value';\n }\n\n if (isReplacementRulesConfigured(config)) {\n addReplacementUpdateIfValid(res.updates, config);\n } else if (dependency?.replacementName && dependency.replacementVersion) {\n res.updates.push({\n updateType: 'replacement',\n newName: dependency.replacementName,\n newValue: dependency.replacementVersion,\n });\n }\n\n // Record if the dep is fixed to a version\n if (config.lockedVersion) {\n res.currentVersion = config.lockedVersion;\n res.fixedVersion = config.lockedVersion;\n } else if (compareValue && versioningApi.isSingleVersion(compareValue)) {\n res.fixedVersion = compareValue.replace(regEx(/^=+/), '');\n }\n\n // massage versionCompatibility\n if (\n isString(config.currentValue) &&\n isString(compareValue) &&\n isString(config.versionCompatibility)\n ) {\n for (const update of res.updates) {\n logger.debug({ update });\n // v8 ignore else -- TODO: add test #40625\n if (isString(config.currentValue) && isString(update.newValue)) {\n update.newValue = config.currentValue.replace(\n compareValue,\n update.newValue,\n );\n }\n }\n }\n\n // Add digests if necessary\n if (supportsDigests(config.datasource)) {\n if (config.currentDigest) {\n if (!config.digestOneAndOnly || !res.updates.length) {\n // digest update\n res.updates.push({\n updateType: 'digest',\n newValue: config.currentValue,\n });\n }\n } else if (config.pinDigests) {\n // Create a pin only if one doesn't already exists\n // v8 ignore else -- TODO: add test #40625\n if (!res.updates.some((update) => update.updateType === 'pin')) {\n // pin digest\n res.updates.push({\n isPinDigest: true,\n updateType: 'pinDigest',\n newValue: config.currentValue,\n });\n }\n }\n if (versioningApi.valueToVersion) {\n // TODO #22198\n res.currentVersion = versioningApi.valueToVersion(res.currentVersion!);\n for (const update of res.updates) {\n // TODO #22198\n update.newVersion = versioningApi.valueToVersion(update.newVersion!);\n }\n }\n if (res.registryUrl) {\n config.registryUrls = [res.registryUrl];\n }\n\n // update digest for all\n for (const update of res.updates) {\n if (config.pinDigests === true || config.currentDigest) {\n const getDigestConfig: GetDigestInputConfig = {\n ...config,\n registryUrl: update.registryUrl ?? res.registryUrl,\n lookupName: res.lookupName,\n };\n\n // #20304 only pass it for replacement updates, otherwise we get wrong or invalid digest\n if (update.updateType !== 'replacement') {\n delete getDigestConfig.replacementName;\n }\n\n // #20304 don't use lookupName and currentDigest when we replace image name\n if (\n update.updateType === 'replacement' &&\n update.newName !== config.packageName\n ) {\n delete getDigestConfig.lookupName;\n delete getDigestConfig.currentDigest;\n getDigestConfig.replacementName = update.newName;\n }\n\n // Don't use current releases if replacement changes name, otherwise we use the wrong new digest.\n // This happens on datasources which return the digest in release info like `github-tags`.\n // We can still use it when only version is changing.\n if (\n update.updateType !== 'replacement' ||\n update.newName === config.packageName\n ) {\n update.newDigest ??= dependency?.releases.find(\n (r) => r.version === update.newValue,\n )?.newDigest;\n }\n\n update.newDigest ??= await getDigest(\n getDigestConfig,\n update.newValue,\n );\n\n // If the digest could not be determined, report this as otherwise the\n // update will be omitted later on without notice.\n if (update.newDigest === null) {\n logger.debug(\n {\n packageName: config.packageName,\n currentValue: config.currentValue,\n datasource: config.datasource,\n newValue: update.newValue,\n bucket: update.bucket,\n },\n 'Could not determine new digest for update.',\n );\n\n // Only report a warning if there is a current digest.\n // Context: https://github.com/renovatebot/renovate/pull/20175#discussion_r1102615059.\n if (config.currentDigest) {\n res.warnings.push({\n message: `Could not determine new digest for update (${config.datasource} package ${config.packageName})`,\n topic: config.packageName,\n });\n }\n }\n } else {\n delete update.newDigest;\n }\n if (update.newVersion) {\n const registryUrl = dependency?.releases?.find(\n (release) => release.version === update.newVersion,\n )?.registryUrl;\n if (registryUrl && registryUrl !== res.registryUrl) {\n update.registryUrl = registryUrl;\n }\n }\n }\n }\n\n if (res.updates.length) {\n delete res.skipReason;\n }\n // Strip out any non-changed ones\n res.updates = res.updates\n .filter(\n (update) => update.newValue !== null || config.currentValue === null,\n )\n .filter((update) => update.newDigest !== null)\n .filter(\n (update) =>\n (isString(update.newName) && update.newName !== config.packageName) ||\n update.isReplacement === true ||\n update.newValue !== config.currentValue ||\n update.isLockfileUpdate === true ||\n // TODO #22198\n (update.newDigest &&\n !update.newDigest.startsWith(config.currentDigest!)),\n );\n // If range strategy specified in config is 'in-range-only', also strip out updates where currentValue !== newValue\n if (config.rangeStrategy === 'in-range-only') {\n res.updates = res.updates.filter(\n (update) => update.newValue === config.currentValue,\n );\n }\n // Handle a weird edge case involving followTag and fallbacks\n if (config.rollbackPrs && config.followTag) {\n res.updates = res.updates.filter(\n (update) =>\n update.updateType !== 'rollback' || res.updates.length === 1,\n );\n }\n\n const release =\n res.updates.length > 0\n ? dependency?.releases.find(\n (r) => r.version === res.updates[0].newValue,\n )\n : null;\n\n if (release?.changelogContent) {\n res.changelogContent = release.changelogContent;\n res.changelogUrl = release.changelogUrl;\n }\n } catch (err) /* istanbul ignore next */ {\n if (err instanceof ExternalHostError) {\n return Result.err(err);\n }\n\n if (err instanceof Error && err.message === CONFIG_VALIDATION) {\n return Result.err(err);\n }\n\n logger.error(\n {\n currentDigest: config.currentDigest,\n currentValue: config.currentValue,\n datasource: config.datasource,\n packageName: config.packageName,\n digestOneAndOnly: config.digestOneAndOnly,\n followTag: config.followTag,\n lockedVersion: config.lockedVersion,\n packageFile: config.packageFile,\n pinDigests: config.pinDigests,\n rollbackPrs: config.rollbackPrs,\n isVulnerabilityAlert: config.isVulnerabilityAlert,\n updatePinnedDependencies: config.updatePinnedDependencies,\n err,\n },\n 'lookupUpdates error',\n );\n res.skipReason = 'internal-error';\n }\n return Result.ok(res);\n}\n"],"mappings":"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"}
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.136.3",
4
+ "version": "43.137.0",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$id": "https://docs.renovatebot.com/renovate-schema.json",
3
- "title": "JSON schema for Renovate 43.136.3 config files (https://renovatebot.com/)",
3
+ "title": "JSON schema for Renovate 43.137.0 config files (https://renovatebot.com/)",
4
4
  "$schema": "http://json-schema.org/draft-07/schema#",
5
- "x-renovate-version": "43.136.3",
5
+ "x-renovate-version": "43.137.0",
6
6
  "allowComments": true,
7
7
  "type": "object",
8
8
  "properties": {