renovate 44.115.13 → 44.116.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.
@@ -48,7 +48,7 @@ hashMap.set("gitlabci", "a5e1e66ef461e1c1e71062f85f35a212417e23627f4b002810f9a98
48
48
  hashMap.set("gitlabci-include", "8860a15ab516fde00694f9bd9bf56fce4addafe5a55b5ddb9a4ec477d301d351");
49
49
  hashMap.set("glasskube", "93e7b9000a17efa15a1abaaf320b5af9169b1ecd828fc0c881d98570ef9d9e30");
50
50
  hashMap.set("gleam", "5e9b9f5f914afe5ed7b526c06c65111e3716d2dea9b0cbe7907bbc96db1064a3");
51
- hashMap.set("gomod", "bce4ce9a3f905fb1ba5983e14dd32a027b5981927b6177211d4efb5bd888d3b9");
51
+ hashMap.set("gomod", "1efadf67fd408055379311c637c676057f7c5c254046ccab2504b257658b9f51");
52
52
  hashMap.set("gradle", "9e3ff52ce4ad2555929acdd4d32c417c4ef8714c23a92f2893ecc580fa4d6064");
53
53
  hashMap.set("gradle-wrapper", "73ba30c34955fab7737454b5cff9aca6d1b5607d53c17c9e13d8ad96f6eaae87");
54
54
  hashMap.set("haskell-cabal", "f158b7725e3143dfd2950e3de0bbccc2a61cd7eba87f7a54c5057e01252348e2");
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','a52394a36ac5517f7330473c31d93aa05b2ce607c5e951b48f25a4693cd20a81');\nhashMap.set('ansible-galaxy','0a264d6be73953d801510fdeff271e4071c274339569c6dab4e2a128eaf4869f');\nhashMap.set('ant','2df5943cf0ed19a21b94df13729dbb925655548130caf37e3e22bebaed518e17');\nhashMap.set('apm','bdb6931cc03f4ac02ebfdb56c4b3483bb6c5250fa952545f1a25584d502bbffd');\nhashMap.set('argocd','cff9cd22257bc460ae4b9936570bf0ed5585f280a55d26629deaeeb0bfee8eb5');\nhashMap.set('asdf','430eb99b58171700c8a59c78b9e648575e9b176b781d90dd10a710f7b69015bb');\nhashMap.set('azure-pipelines','a051fe5e7e4fef8208b5864131a2b52b4ae319936f1dd8ee5a4e1ef11359ec09');\nhashMap.set('batect','375d39b432013bedb1330cf40a2199dd822751b28578214f219e7bab98594b8d');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c31bc0a0e23d32726bcc09aa67533ebc5058124bf89c88e09c837419f550801a');\nhashMap.set('bazel-module','9fbba0339f9f7785d52ab85c5f0f6385003093c063483c13feccba13ae438bef');\nhashMap.set('bazelisk','770f75a746dc6ba90c518788d5987d7df4243ef9eee122d1bb0556a93d6e1b11');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','b8b404f53cd5d61c39153fddf93945e621471c4ac6aa9960c881cd868922bb4c');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','5820cfb6ebe018b8c336d481ea9ae319daaee6a2e368c45196fc8bc67cb3e755');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','6e4784dd98c1f86ef64cc8cbf3128df48aebf920032d7792b54fdedd3dd9d4d5');\nhashMap.set('cake','9ebd8b481220b30a8860121d26184540a1a2fcc05ef780df9295dea39b386fad');\nhashMap.set('cargo','fe8136135c895dd08819f91a60cf105f8b951251b057092700101ace991ae1d7');\nhashMap.set('cdnurl','9a81c8e3c6ad6c788498c99fc1067ffdfcd92a427c3afaf8c0130975d83131f2');\nhashMap.set('circleci','91cbeb33ea20f9838e2c81a1195eb806f0b38fa282bc3679f62552f20575ca85');\nhashMap.set('cloudbuild','f4e40388944652c8a19f8518771ac8d3f3c4ccf81ddef0e68b463aca833cb73c');\nhashMap.set('cocoapods','f832e2beef885bb3fd697ed9bb3e8cd742926bfec37ff41212edd2dbb4edb3ba');\nhashMap.set('composer','f1294fb3866ff65a75d98fdef80b1df3d3a8856535b8c690d1799e1205e4b639');\nhashMap.set('conan','8d46e9a30ae628e26118aea10a98d1b846f7c5d96d51ce24693437d555f6d125');\nhashMap.set('copier','10ae4d7f8ff35faf3a3f9f25bf4c969ea960e19aaf8c012aee11f93f4d10533e');\nhashMap.set('cpanfile','07813fec3f3c2197056500e9266a0553b9774c02f2c74d5ca2e213188c7c12d3');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deno','05e7ab60494a20a5e7477f06a9e723e443d37643b6e1d9ba8d3d87126a051175');\nhashMap.set('deps-edn','06783dbc8b9c7bb84e162d1f75b7db56dfa021cc6f809dfd2314cee8b64af08d');\nhashMap.set('devbox','a40050cc61bd9b5d500ec111abb17bb15d5f82ab5b7699f66f628307ba8382c9');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','fba87b82cb0f2bfd66526631fbe928b8153e7ca701a5790d02b944df17417bb9');\nhashMap.set('dockerfile','995048a257692db3b48dccda029ef5230ebd2a17085e837fc4eb848aae9ba64f');\nhashMap.set('droneci','661d2a2d7295af8dd7a1234c7090c42a89306bd574c3adf1fc67782efaad3998');\nhashMap.set('fleet','ffa222820f72c4eb4cdc4c229ae8c50433bee96f3b974f0633d5a7d1f6427c97');\nhashMap.set('flux','842597c9083d82af99ef3d526101a3a53c4448414d2f53f7e969074757124811');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','df8bb92b2906d8cddda2d4b302ee503f8002e3554d32d74cef2f584fe891f38f');\nhashMap.set('github-actions','7adddc8e590786084855ffe53292bff3098ac672f91c21cc39d45bcf0af2271f');\nhashMap.set('gitlabci','a5e1e66ef461e1c1e71062f85f35a212417e23627f4b002810f9a98295d6e672');\nhashMap.set('gitlabci-include','8860a15ab516fde00694f9bd9bf56fce4addafe5a55b5ddb9a4ec477d301d351');\nhashMap.set('glasskube','93e7b9000a17efa15a1abaaf320b5af9169b1ecd828fc0c881d98570ef9d9e30');\nhashMap.set('gleam','5e9b9f5f914afe5ed7b526c06c65111e3716d2dea9b0cbe7907bbc96db1064a3');\nhashMap.set('gomod','bce4ce9a3f905fb1ba5983e14dd32a027b5981927b6177211d4efb5bd888d3b9');\nhashMap.set('gradle','9e3ff52ce4ad2555929acdd4d32c417c4ef8714c23a92f2893ecc580fa4d6064');\nhashMap.set('gradle-wrapper','73ba30c34955fab7737454b5cff9aca6d1b5607d53c17c9e13d8ad96f6eaae87');\nhashMap.set('haskell-cabal','f158b7725e3143dfd2950e3de0bbccc2a61cd7eba87f7a54c5057e01252348e2');\nhashMap.set('helm-requirements','22f61344565f87ca3512c0ba8fac32627fde8ee919b7badae07b2116e285f049');\nhashMap.set('helm-values','0aa79bb0257d0d72e54dfd2653e59bfef63b97e46c035b7443593bdf6e6382aa');\nhashMap.set('helmfile','28572dd24b6746ca7065ee467aa13bbc8c3e8c0f88ae48e33bce88468c600100');\nhashMap.set('helmsman','951deeb3355da751ef39c9e932b26ea749450e32e75759e4b5fc29359e100b37');\nhashMap.set('helmv3','d4ede7d5e170dec2b63b7d14c38b83c7b0dd540a2fbf9363c41fed3dcd355447');\nhashMap.set('hermit','0fb25b7766c3a264fbb765ff75b1542b24136c4c9f933696d4a5aecfed637071');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','dffe954a4e18c2dc4bfdaa12222fe8ddc3395869afd5afa603fc2b6264747984');\nhashMap.set('html','81fa6c2bf2b868596584a48b949645207a2aa3081951ed99183ee50b70b77d5f');\nhashMap.set('jenkins','7fda0e7e0f3d5e18088ccb3594f727f4cfc48b064706bdaaf1a0a075b6a2cff5');\nhashMap.set('jsonnet-bundler','4cedeb0394e5c38361d1868ff45b4f34747ab8c492378b6e63dcaf1f4f3c024d');\nhashMap.set('kotlin-script','95ebc844c040ca047321b207d525220e29774a2a1fe06f9639e8353c66908564');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','706cc4776ad6ec4df5bed0ac84e8324ad7328457b6743b082e444d4770756604');\nhashMap.set('leiningen','c8397e376f1717c2f771ae9ea3ba6b720d2422b133cf937e762c44e42be146a2');\nhashMap.set('maven','c110b99291c2a5bc82cf7a69330275e9bbd7dc8ba3e9e987611dfcffbe002d8d');\nhashMap.set('maven-wrapper','6e53b6e4abf1d20b75094c7a70d66b4a5ac39954f009aa401f5e55dada8be4d0');\nhashMap.set('meteor','4636a47ba4dcfff19fe662572ef7a40d17146be3c966e00ef437e1fc8de92776');\nhashMap.set('mint','248fe4f1ea5c985921c286785792c97e06fc41f402b2d45df82f6aecd17f710e');\nhashMap.set('mise','2f1cb2ace01e813051a3cc94192f696faa57847c63b252f4dbf17886018bca1f');\nhashMap.set('mix','0f79163dc2a1c896599d152be635c23beaf16812ae3d8fbfffec98c7bd0de872');\nhashMap.set('nix','9cbd96a29fe96e3df7418e422256380202f07970cf7f00b08388c181224a2b85');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','65c79e7fc01ae9c0e2edb064011045d4f69f9368232101eb2b349048afc89cc5');\nhashMap.set('nuget','b81fb0ca6cfeb86b004592b38ce176673e056d6a2ed41a9807afb0eb7ad405d2');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','d6567a733ef3983112b46fdccd7ceebfcd48411104e0c6b6e714d4310db48024');\nhashMap.set('pep621','52450676f8b0e05134b3e8947b832195ef40bcaec1ce43d71351a2f797b80d75');\nhashMap.set('pep723','77022a0eae6a3cbb74a1e6d596db1276e379768e40448192b3fa81edd14ca73f');\nhashMap.set('pip-compile','a98dc76a002e1dc21662237f009ff8fea36236bb4e24cb82ee30c6a78f57271f');\nhashMap.set('pip_requirements','bf3a407f72abf711230247bef94ba5dc84c08a35107b0f017912fad66afa716a');\nhashMap.set('pip_setup','df18fba2bdcf48f3ca12a8f7e5cd28df31e2368d5528127277038ef4206eca79');\nhashMap.set('pipenv','baf237cd77173c1a7a9c7fa2a8bfb214f3c488ba0cc27f0e8f334df192e3a398');\nhashMap.set('pixi','e31c397982ffa34222b061f23f3b3683f42523dd5dca45ecce2448b0ebc55ea2');\nhashMap.set('poetry','e9dea5d591c87956b9f018414cb3dab8f2e13580a13be00550fdce198fdf08e6');\nhashMap.set('pre-commit','760f2c291ae084db889f722390798a0e2d431ccdc3bc676e73b14901ebea19ac');\nhashMap.set('proto','412053d4550026b4ace490b46e970915b87ec1abf0b0a0c6c8c58ccf1fc16843');\nhashMap.set('pub','8e7c65dfd1999de4f7c44392e949a4d8f4701eb86df59d550e4657feb06b1872');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','40927b98dd2bac45dba60e66b5fd0e6b84b61d02db8be536fda7b14546a4feb7');\nhashMap.set('renovate-config','dfaf3f03ddaf70c332f7916106648f36dbfa6a36dd76d15dd27fa116ab3c174c');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('rust-toolchain','6ace53db02874d73620d2d872291839820a512a9529c42d174358c692e5db720');\nhashMap.set('sbt','e1eb5c7f0171a9bb1b6bd4a36a91039a31b6c84e0983d91d930be31a69506d9e');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','4a3a7c812d34739c07685691e7e64c7d3127f9d7d4aff99dc45a25df97ed9745');\nhashMap.set('smithy','9641b91d065ffb63be0dd888139a0402dba41e550f8b44c592db9daf52109100');\nhashMap.set('sveltos','60dd75bb53ace31217211100d622fdb65068c6162758b6ae7103a6ce8bdc9f90');\nhashMap.set('swift','cdf063debdbf36888523ff8cec6d2d1b0ec6f49b37b2fbcd80b0d4f6a31114e1');\nhashMap.set('tekton','33948f5bdf7553909fa63744adb26da97ddf366e9499bccab1250879570267c9');\nhashMap.set('terraform','6788a8569ba9c50c763ffa2bed952a4314ae8e696c29f93d3eb7c4a12d99ce20');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','300f8fb3c09667654412d2f5dd8ab4882e0f5d1d7a8bc39794993d2e7e58d1b7');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','f423bfa2b42a2bfc0e38a33ebd4f9d452473e7ed4e7ad6384a99eb9a35d97479');\nhashMap.set('travis','f3e2f38e699c390b00ff481be5e91dceaa81609e93caf9a4214933de759c84fc');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','7db907b3b77ef5f3465f3c4339fbab56bbcdfd1bf34b3d33e4c178d2e07e23e7');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','416bcf61144b276b3112814c6e6d261aa29608f46fbb0516c471d35c16f8f0d7');\nhashMap.set('regex','20be5247fdc164173871a051acb0527da017d0c155c653d7563601f55e7b3ff5');"],"mappings":"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"}
1
+ {"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','a52394a36ac5517f7330473c31d93aa05b2ce607c5e951b48f25a4693cd20a81');\nhashMap.set('ansible-galaxy','0a264d6be73953d801510fdeff271e4071c274339569c6dab4e2a128eaf4869f');\nhashMap.set('ant','2df5943cf0ed19a21b94df13729dbb925655548130caf37e3e22bebaed518e17');\nhashMap.set('apm','bdb6931cc03f4ac02ebfdb56c4b3483bb6c5250fa952545f1a25584d502bbffd');\nhashMap.set('argocd','cff9cd22257bc460ae4b9936570bf0ed5585f280a55d26629deaeeb0bfee8eb5');\nhashMap.set('asdf','430eb99b58171700c8a59c78b9e648575e9b176b781d90dd10a710f7b69015bb');\nhashMap.set('azure-pipelines','a051fe5e7e4fef8208b5864131a2b52b4ae319936f1dd8ee5a4e1ef11359ec09');\nhashMap.set('batect','375d39b432013bedb1330cf40a2199dd822751b28578214f219e7bab98594b8d');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c31bc0a0e23d32726bcc09aa67533ebc5058124bf89c88e09c837419f550801a');\nhashMap.set('bazel-module','9fbba0339f9f7785d52ab85c5f0f6385003093c063483c13feccba13ae438bef');\nhashMap.set('bazelisk','770f75a746dc6ba90c518788d5987d7df4243ef9eee122d1bb0556a93d6e1b11');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','b8b404f53cd5d61c39153fddf93945e621471c4ac6aa9960c881cd868922bb4c');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','5820cfb6ebe018b8c336d481ea9ae319daaee6a2e368c45196fc8bc67cb3e755');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','6e4784dd98c1f86ef64cc8cbf3128df48aebf920032d7792b54fdedd3dd9d4d5');\nhashMap.set('cake','9ebd8b481220b30a8860121d26184540a1a2fcc05ef780df9295dea39b386fad');\nhashMap.set('cargo','fe8136135c895dd08819f91a60cf105f8b951251b057092700101ace991ae1d7');\nhashMap.set('cdnurl','9a81c8e3c6ad6c788498c99fc1067ffdfcd92a427c3afaf8c0130975d83131f2');\nhashMap.set('circleci','91cbeb33ea20f9838e2c81a1195eb806f0b38fa282bc3679f62552f20575ca85');\nhashMap.set('cloudbuild','f4e40388944652c8a19f8518771ac8d3f3c4ccf81ddef0e68b463aca833cb73c');\nhashMap.set('cocoapods','f832e2beef885bb3fd697ed9bb3e8cd742926bfec37ff41212edd2dbb4edb3ba');\nhashMap.set('composer','f1294fb3866ff65a75d98fdef80b1df3d3a8856535b8c690d1799e1205e4b639');\nhashMap.set('conan','8d46e9a30ae628e26118aea10a98d1b846f7c5d96d51ce24693437d555f6d125');\nhashMap.set('copier','10ae4d7f8ff35faf3a3f9f25bf4c969ea960e19aaf8c012aee11f93f4d10533e');\nhashMap.set('cpanfile','07813fec3f3c2197056500e9266a0553b9774c02f2c74d5ca2e213188c7c12d3');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deno','05e7ab60494a20a5e7477f06a9e723e443d37643b6e1d9ba8d3d87126a051175');\nhashMap.set('deps-edn','06783dbc8b9c7bb84e162d1f75b7db56dfa021cc6f809dfd2314cee8b64af08d');\nhashMap.set('devbox','a40050cc61bd9b5d500ec111abb17bb15d5f82ab5b7699f66f628307ba8382c9');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','fba87b82cb0f2bfd66526631fbe928b8153e7ca701a5790d02b944df17417bb9');\nhashMap.set('dockerfile','995048a257692db3b48dccda029ef5230ebd2a17085e837fc4eb848aae9ba64f');\nhashMap.set('droneci','661d2a2d7295af8dd7a1234c7090c42a89306bd574c3adf1fc67782efaad3998');\nhashMap.set('fleet','ffa222820f72c4eb4cdc4c229ae8c50433bee96f3b974f0633d5a7d1f6427c97');\nhashMap.set('flux','842597c9083d82af99ef3d526101a3a53c4448414d2f53f7e969074757124811');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','df8bb92b2906d8cddda2d4b302ee503f8002e3554d32d74cef2f584fe891f38f');\nhashMap.set('github-actions','7adddc8e590786084855ffe53292bff3098ac672f91c21cc39d45bcf0af2271f');\nhashMap.set('gitlabci','a5e1e66ef461e1c1e71062f85f35a212417e23627f4b002810f9a98295d6e672');\nhashMap.set('gitlabci-include','8860a15ab516fde00694f9bd9bf56fce4addafe5a55b5ddb9a4ec477d301d351');\nhashMap.set('glasskube','93e7b9000a17efa15a1abaaf320b5af9169b1ecd828fc0c881d98570ef9d9e30');\nhashMap.set('gleam','5e9b9f5f914afe5ed7b526c06c65111e3716d2dea9b0cbe7907bbc96db1064a3');\nhashMap.set('gomod','1efadf67fd408055379311c637c676057f7c5c254046ccab2504b257658b9f51');\nhashMap.set('gradle','9e3ff52ce4ad2555929acdd4d32c417c4ef8714c23a92f2893ecc580fa4d6064');\nhashMap.set('gradle-wrapper','73ba30c34955fab7737454b5cff9aca6d1b5607d53c17c9e13d8ad96f6eaae87');\nhashMap.set('haskell-cabal','f158b7725e3143dfd2950e3de0bbccc2a61cd7eba87f7a54c5057e01252348e2');\nhashMap.set('helm-requirements','22f61344565f87ca3512c0ba8fac32627fde8ee919b7badae07b2116e285f049');\nhashMap.set('helm-values','0aa79bb0257d0d72e54dfd2653e59bfef63b97e46c035b7443593bdf6e6382aa');\nhashMap.set('helmfile','28572dd24b6746ca7065ee467aa13bbc8c3e8c0f88ae48e33bce88468c600100');\nhashMap.set('helmsman','951deeb3355da751ef39c9e932b26ea749450e32e75759e4b5fc29359e100b37');\nhashMap.set('helmv3','d4ede7d5e170dec2b63b7d14c38b83c7b0dd540a2fbf9363c41fed3dcd355447');\nhashMap.set('hermit','0fb25b7766c3a264fbb765ff75b1542b24136c4c9f933696d4a5aecfed637071');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','dffe954a4e18c2dc4bfdaa12222fe8ddc3395869afd5afa603fc2b6264747984');\nhashMap.set('html','81fa6c2bf2b868596584a48b949645207a2aa3081951ed99183ee50b70b77d5f');\nhashMap.set('jenkins','7fda0e7e0f3d5e18088ccb3594f727f4cfc48b064706bdaaf1a0a075b6a2cff5');\nhashMap.set('jsonnet-bundler','4cedeb0394e5c38361d1868ff45b4f34747ab8c492378b6e63dcaf1f4f3c024d');\nhashMap.set('kotlin-script','95ebc844c040ca047321b207d525220e29774a2a1fe06f9639e8353c66908564');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','706cc4776ad6ec4df5bed0ac84e8324ad7328457b6743b082e444d4770756604');\nhashMap.set('leiningen','c8397e376f1717c2f771ae9ea3ba6b720d2422b133cf937e762c44e42be146a2');\nhashMap.set('maven','c110b99291c2a5bc82cf7a69330275e9bbd7dc8ba3e9e987611dfcffbe002d8d');\nhashMap.set('maven-wrapper','6e53b6e4abf1d20b75094c7a70d66b4a5ac39954f009aa401f5e55dada8be4d0');\nhashMap.set('meteor','4636a47ba4dcfff19fe662572ef7a40d17146be3c966e00ef437e1fc8de92776');\nhashMap.set('mint','248fe4f1ea5c985921c286785792c97e06fc41f402b2d45df82f6aecd17f710e');\nhashMap.set('mise','2f1cb2ace01e813051a3cc94192f696faa57847c63b252f4dbf17886018bca1f');\nhashMap.set('mix','0f79163dc2a1c896599d152be635c23beaf16812ae3d8fbfffec98c7bd0de872');\nhashMap.set('nix','9cbd96a29fe96e3df7418e422256380202f07970cf7f00b08388c181224a2b85');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','65c79e7fc01ae9c0e2edb064011045d4f69f9368232101eb2b349048afc89cc5');\nhashMap.set('nuget','b81fb0ca6cfeb86b004592b38ce176673e056d6a2ed41a9807afb0eb7ad405d2');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','d6567a733ef3983112b46fdccd7ceebfcd48411104e0c6b6e714d4310db48024');\nhashMap.set('pep621','52450676f8b0e05134b3e8947b832195ef40bcaec1ce43d71351a2f797b80d75');\nhashMap.set('pep723','77022a0eae6a3cbb74a1e6d596db1276e379768e40448192b3fa81edd14ca73f');\nhashMap.set('pip-compile','a98dc76a002e1dc21662237f009ff8fea36236bb4e24cb82ee30c6a78f57271f');\nhashMap.set('pip_requirements','bf3a407f72abf711230247bef94ba5dc84c08a35107b0f017912fad66afa716a');\nhashMap.set('pip_setup','df18fba2bdcf48f3ca12a8f7e5cd28df31e2368d5528127277038ef4206eca79');\nhashMap.set('pipenv','baf237cd77173c1a7a9c7fa2a8bfb214f3c488ba0cc27f0e8f334df192e3a398');\nhashMap.set('pixi','e31c397982ffa34222b061f23f3b3683f42523dd5dca45ecce2448b0ebc55ea2');\nhashMap.set('poetry','e9dea5d591c87956b9f018414cb3dab8f2e13580a13be00550fdce198fdf08e6');\nhashMap.set('pre-commit','760f2c291ae084db889f722390798a0e2d431ccdc3bc676e73b14901ebea19ac');\nhashMap.set('proto','412053d4550026b4ace490b46e970915b87ec1abf0b0a0c6c8c58ccf1fc16843');\nhashMap.set('pub','8e7c65dfd1999de4f7c44392e949a4d8f4701eb86df59d550e4657feb06b1872');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','40927b98dd2bac45dba60e66b5fd0e6b84b61d02db8be536fda7b14546a4feb7');\nhashMap.set('renovate-config','dfaf3f03ddaf70c332f7916106648f36dbfa6a36dd76d15dd27fa116ab3c174c');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('rust-toolchain','6ace53db02874d73620d2d872291839820a512a9529c42d174358c692e5db720');\nhashMap.set('sbt','e1eb5c7f0171a9bb1b6bd4a36a91039a31b6c84e0983d91d930be31a69506d9e');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','4a3a7c812d34739c07685691e7e64c7d3127f9d7d4aff99dc45a25df97ed9745');\nhashMap.set('smithy','9641b91d065ffb63be0dd888139a0402dba41e550f8b44c592db9daf52109100');\nhashMap.set('sveltos','60dd75bb53ace31217211100d622fdb65068c6162758b6ae7103a6ce8bdc9f90');\nhashMap.set('swift','cdf063debdbf36888523ff8cec6d2d1b0ec6f49b37b2fbcd80b0d4f6a31114e1');\nhashMap.set('tekton','33948f5bdf7553909fa63744adb26da97ddf366e9499bccab1250879570267c9');\nhashMap.set('terraform','6788a8569ba9c50c763ffa2bed952a4314ae8e696c29f93d3eb7c4a12d99ce20');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','300f8fb3c09667654412d2f5dd8ab4882e0f5d1d7a8bc39794993d2e7e58d1b7');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','f423bfa2b42a2bfc0e38a33ebd4f9d452473e7ed4e7ad6384a99eb9a35d97479');\nhashMap.set('travis','f3e2f38e699c390b00ff481be5e91dceaa81609e93caf9a4214933de759c84fc');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','7db907b3b77ef5f3465f3c4339fbab56bbcdfd1bf34b3d33e4c178d2e07e23e7');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','416bcf61144b276b3112814c6e6d261aa29608f46fbb0516c471d35c16f8f0d7');\nhashMap.set('regex','20be5247fdc164173871a051acb0527da017d0c155c653d7563601f55e7b3ff5');"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { newlineRegex, regEx } from "../../../util/regex.js";
2
2
  import { logger } from "../../../logger/index.js";
3
+ import { isPseudoVersion } from "../../versioning/gomod/index.js";
3
4
  //#region lib/modules/manager/gomod/update.ts
4
5
  function getNameWithNoVersion(name) {
5
6
  let nameNoVersion = name.replace(regEx(/\/v\d+$/), "");
@@ -51,7 +52,7 @@ function updateDependency({ fileContent, upgrade }) {
51
52
  }
52
53
  let newLine;
53
54
  if (upgrade.updateType === "digest") {
54
- if (upgrade.newValue?.startsWith("v0.0.0-") && upgrade.newValue !== upgrade.currentValue) {
55
+ if (isPseudoVersion(upgrade.newValue) && upgrade.newValue !== upgrade.currentValue) {
55
56
  logger.debug({
56
57
  depName: currentName,
57
58
  lineToChange,
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","names":[],"sources":["../../../../lib/modules/manager/gomod/update.ts"],"sourcesContent":["// TODO: types (#22198)\nimport { logger } from '../../../logger/index.ts';\nimport { newlineRegex, regEx } from '../../../util/regex.ts';\nimport type { UpdateDependencyConfig } from '../types.ts';\n\nfunction getNameWithNoVersion(name: string): string {\n // remove version suffixes like /v1 or /v2\n let nameNoVersion = name.replace(regEx(/\\/v\\d+$/), '');\n // gopkg.in is a special case where the major version is added with a dot rather than a slash\n if (nameNoVersion.startsWith('gopkg.in')) {\n nameNoVersion = nameNoVersion.replace(regEx(/\\.v\\d+$/), '');\n }\n return nameNoVersion;\n}\n\nexport function updateDependency({\n fileContent,\n upgrade,\n}: UpdateDependencyConfig): string | null {\n try {\n logger.debug(`gomod.updateDependency: ${upgrade.newValue}`);\n const { depType, updateType } = upgrade;\n const currentName = upgrade.depName;\n if (updateType === 'replacement') {\n logger.warn('gomod manager does not support replacement updates yet');\n return null;\n }\n /* v8 ignore next -- should never happen */\n if (!currentName || !upgrade.managerData) {\n return null;\n }\n const currentNameNoVersion = getNameWithNoVersion(currentName);\n const lines = fileContent.split(newlineRegex);\n /* v8 ignore next -- hard to test */\n if (lines.length <= upgrade.managerData.lineNumber) {\n logger.warn('go.mod current line no longer exists after update');\n return null;\n }\n const lineToChange = lines[upgrade.managerData.lineNumber];\n logger.trace({ upgrade, lineToChange }, 'go.mod current line');\n if (\n !lineToChange.includes(currentNameNoVersion) &&\n !lineToChange.includes('rethinkdb/rethinkdb-go.v5')\n ) {\n logger.debug(\n { lineToChange, depName: currentName },\n \"go.mod current line doesn't contain dependency\",\n );\n return null;\n }\n let updateLineExp: RegExp | undefined;\n\n if (depType === 'golang' || depType === 'toolchain') {\n updateLineExp = regEx(\n /(?<depPart>(?:toolchain )?go)(?<divider>\\s*)(?:[^\\s]+|[\\w]+)/,\n );\n }\n if (depType === 'replace') {\n if (upgrade.managerData.multiLine) {\n updateLineExp = regEx(\n /^(?<depPart>\\s+[^\\s]+[\\s]+[=][>]+\\s+)(?<divider>[^\\s]+\\s+)[^\\s]+/,\n );\n } else {\n updateLineExp = regEx(\n /^(?<depPart>replace\\s+[^\\s]+[\\s]+[=][>]+\\s+)(?<divider>[^\\s]+\\s+)[^\\s]+/,\n );\n }\n } else if (depType === 'require' || depType === 'indirect') {\n if (upgrade.managerData.multiLine) {\n updateLineExp = regEx(/^(?<depPart>\\s+[^\\s]+)(?<divider>\\s+)[^\\s]+/);\n } else {\n updateLineExp = regEx(\n /^(?<depPart>require\\s+[^\\s]+)(?<divider>\\s+)[^\\s]+/,\n );\n }\n }\n if (updateLineExp && !updateLineExp.test(lineToChange)) {\n logger.debug('No line found to update');\n return null;\n }\n let newLine: string;\n if (upgrade.updateType === 'digest') {\n // Since the 2024 goproxy datasource changes, newValue and newDigest are\n // both extracted from the same proxy version string and always reference\n // the same commit, so newValue can be written directly for pseudo-versions.\n // However, for private modules (GONOPROXY / direct datasource), the proxy\n // has no data and newValue may equal currentValue. In that case, fall\n // through to the bare hash path so that gomodTidy can resolve it.\n if (\n upgrade.newValue?.startsWith('v0.0.0-') &&\n upgrade.newValue !== upgrade.currentValue\n ) {\n logger.debug(\n { depName: currentName, lineToChange, newValue: upgrade.newValue },\n 'gomod: updating pseudo-version digest',\n );\n newLine = lineToChange.replace(\n // TODO: can be undefined? (#22198)\n updateLineExp!,\n `$<depPart>$<divider>${upgrade.newValue}`,\n );\n } else {\n // Fallback for private modules where the proxy could not resolve a new\n // pseudo-version, or non-pseudo-version digest updates.\n // Writes the bare hash so that postUpdateOptions like gomodTidy can\n // normalize it into a valid pseudo-version via `go get`.\n const newDigestRightSized = upgrade.newDigest!.substring(\n 0,\n upgrade.currentDigest!.length,\n );\n if (lineToChange.includes(newDigestRightSized)) {\n return fileContent;\n }\n logger.debug(\n { depName: currentName, lineToChange, newDigestRightSized },\n 'gomod: need to update digest',\n );\n newLine = lineToChange.replace(\n // TODO: can be undefined? (#22198)\n updateLineExp!,\n `$<depPart>$<divider>${newDigestRightSized}`,\n );\n }\n } else {\n newLine = lineToChange.replace(\n // TODO: can be undefined? (#22198)\n updateLineExp!,\n `$<depPart>$<divider>${upgrade.newValue}`,\n );\n }\n if (upgrade.updateType === 'major') {\n logger.debug(`gomod: major update for ${currentName}`);\n if (currentName.startsWith('gopkg.in/')) {\n const oldV = currentName.split('.').pop();\n newLine = newLine.replace(`.${oldV}`, `.v${upgrade.newMajor}`);\n // Package renames - I couldn't think of a better place to do this\n newLine = newLine.replace(\n 'gorethink/gorethink.v5',\n 'rethinkdb/rethinkdb-go.v5',\n );\n } else if (\n upgrade.newMajor! > 1 &&\n !newLine.includes(`/v${upgrade.newMajor}`) &&\n !upgrade.newValue!.endsWith('+incompatible')\n ) {\n if (currentName === currentNameNoVersion) {\n // If package currently has no version, pin to latest one.\n newLine = newLine.replaceAll(\n currentName,\n `${currentName}/v${upgrade.newMajor}`,\n );\n } else {\n // Replace version\n const [oldV] = upgrade.currentValue!.split('.');\n newLine = newLine.replace(\n regEx(`/${oldV}(\\\\s+)`, undefined, false),\n `/v${upgrade.newMajor}$1`,\n );\n }\n }\n }\n if (\n lineToChange.endsWith('+incompatible') &&\n !upgrade.newValue?.endsWith('+incompatible')\n ) {\n let toAdd = '+incompatible';\n\n if (upgrade.updateType === 'major' && upgrade.newMajor! >= 2) {\n toAdd = '';\n }\n newLine += toAdd;\n }\n if (newLine === lineToChange) {\n logger.debug('No changes necessary');\n return fileContent;\n }\n\n if (depType === 'indirect') {\n newLine = newLine.replace(\n regEx(/\\s*(?:\\/\\/\\s*indirect(?:\\s*;)?\\s*)*$/),\n ' // indirect',\n );\n }\n\n lines[upgrade.managerData.lineNumber] = newLine;\n return lines.join('\\n');\n } catch (err) {\n logger.debug({ err }, 'Error setting new go.mod version');\n return null;\n }\n}\n"],"mappings":";;;AAKA,SAAS,qBAAqB,MAAsB;CAElD,IAAI,gBAAgB,KAAK,QAAQ,MAAM,SAAS,GAAG,EAAE;CAErD,IAAI,cAAc,WAAW,UAAU,GACrC,gBAAgB,cAAc,QAAQ,MAAM,SAAS,GAAG,EAAE;CAE5D,OAAO;AACT;AAEA,SAAgB,iBAAiB,EAC/B,aACA,WACwC;CACxC,IAAI;EACF,OAAO,MAAM,2BAA2B,QAAQ,UAAU;EAC1D,MAAM,EAAE,SAAS,eAAe;EAChC,MAAM,cAAc,QAAQ;EAC5B,IAAI,eAAe,eAAe;GAChC,OAAO,KAAK,wDAAwD;GACpE,OAAO;EACT;;EAEA,IAAI,CAAC,eAAe,CAAC,QAAQ,aAC3B,OAAO;EAET,MAAM,uBAAuB,qBAAqB,WAAW;EAC7D,MAAM,QAAQ,YAAY,MAAM,YAAY;;EAE5C,IAAI,MAAM,UAAU,QAAQ,YAAY,YAAY;GAClD,OAAO,KAAK,mDAAmD;GAC/D,OAAO;EACT;EACA,MAAM,eAAe,MAAM,QAAQ,YAAY;EAC/C,OAAO,MAAM;GAAE;GAAS;EAAa,GAAG,qBAAqB;EAC7D,IACE,CAAC,aAAa,SAAS,oBAAoB,KAC3C,CAAC,aAAa,SAAS,2BAA2B,GAClD;GACA,OAAO,MACL;IAAE;IAAc,SAAS;GAAY,GACrC,gDACF;GACA,OAAO;EACT;EACA,IAAI;EAEJ,IAAI,YAAY,YAAY,YAAY,aACtC,gBAAgB,MACd,8DACF;EAEF,IAAI,YAAY,WAAW;GACzB,IAAI,QAAQ,YAAY,WACtB,gBAAgB,MACd,kEACF;QAEA,gBAAgB,MACd,yEACF;EAEJ,OAAO,IAAI,YAAY,aAAa,YAAY,YAAY;GAC1D,IAAI,QAAQ,YAAY,WACtB,gBAAgB,MAAM,6CAA6C;QAEnE,gBAAgB,MACd,oDACF;EAEJ;EACA,IAAI,iBAAiB,CAAC,cAAc,KAAK,YAAY,GAAG;GACtD,OAAO,MAAM,yBAAyB;GACtC,OAAO;EACT;EACA,IAAI;EACJ,IAAI,QAAQ,eAAe,UAAU;GAOnC,IACE,QAAQ,UAAU,WAAW,SAAS,KACtC,QAAQ,aAAa,QAAQ,cAC7B;IACA,OAAO,MACL;KAAE,SAAS;KAAa;KAAc,UAAU,QAAQ;IAAS,GACjE,uCACF;IACA,UAAU,aAAa,QAErB,eACA,uBAAuB,QAAQ,UACjC;GACF,OAAO;IAKL,MAAM,sBAAsB,QAAQ,UAAW,UAC7C,GACA,QAAQ,cAAe,MACzB;IACA,IAAI,aAAa,SAAS,mBAAmB,GAC3C,OAAO;IAET,OAAO,MACL;KAAE,SAAS;KAAa;KAAc;IAAoB,GAC1D,8BACF;IACA,UAAU,aAAa,QAErB,eACA,uBAAuB,qBACzB;GACF;EACF,OACE,UAAU,aAAa,QAErB,eACA,uBAAuB,QAAQ,UACjC;EAEF,IAAI,QAAQ,eAAe,SAAS;GAClC,OAAO,MAAM,2BAA2B,aAAa;GACrD,IAAI,YAAY,WAAW,WAAW,GAAG;IACvC,MAAM,OAAO,YAAY,MAAM,GAAG,CAAC,CAAC,IAAI;IACxC,UAAU,QAAQ,QAAQ,IAAI,QAAQ,KAAK,QAAQ,UAAU;IAE7D,UAAU,QAAQ,QAChB,0BACA,2BACF;GACF,OAAO,IACL,QAAQ,WAAY,KACpB,CAAC,QAAQ,SAAS,KAAK,QAAQ,UAAU,KACzC,CAAC,QAAQ,SAAU,SAAS,eAAe,GAC3C;IACA,IAAI,gBAAgB,sBAElB,UAAU,QAAQ,WAChB,aACA,GAAG,YAAY,IAAI,QAAQ,UAC7B;SACK;KAEL,MAAM,CAAC,QAAQ,QAAQ,aAAc,MAAM,GAAG;KAC9C,UAAU,QAAQ,QAChB,MAAM,IAAI,KAAK,SAAS,KAAA,GAAW,KAAK,GACxC,KAAK,QAAQ,SAAS,GACxB;IACF;GACF;EACF;EACA,IACE,aAAa,SAAS,eAAe,KACrC,CAAC,QAAQ,UAAU,SAAS,eAAe,GAC3C;GACA,IAAI,QAAQ;GAEZ,IAAI,QAAQ,eAAe,WAAW,QAAQ,YAAa,GACzD,QAAQ;GAEV,WAAW;EACb;EACA,IAAI,YAAY,cAAc;GAC5B,OAAO,MAAM,sBAAsB;GACnC,OAAO;EACT;EAEA,IAAI,YAAY,YACd,UAAU,QAAQ,QAChB,MAAM,sCAAsC,GAC5C,cACF;EAGF,MAAM,QAAQ,YAAY,cAAc;EACxC,OAAO,MAAM,KAAK,IAAI;CACxB,SAAS,KAAK;EACZ,OAAO,MAAM,EAAE,IAAI,GAAG,kCAAkC;EACxD,OAAO;CACT;AACF"}
1
+ {"version":3,"file":"update.js","names":[],"sources":["../../../../lib/modules/manager/gomod/update.ts"],"sourcesContent":["// TODO: types (#22198)\nimport { logger } from '../../../logger/index.ts';\nimport { newlineRegex, regEx } from '../../../util/regex.ts';\nimport { isPseudoVersion } from '../../versioning/gomod/index.ts';\nimport type { UpdateDependencyConfig } from '../types.ts';\n\nfunction getNameWithNoVersion(name: string): string {\n // remove version suffixes like /v1 or /v2\n let nameNoVersion = name.replace(regEx(/\\/v\\d+$/), '');\n // gopkg.in is a special case where the major version is added with a dot rather than a slash\n if (nameNoVersion.startsWith('gopkg.in')) {\n nameNoVersion = nameNoVersion.replace(regEx(/\\.v\\d+$/), '');\n }\n return nameNoVersion;\n}\n\nexport function updateDependency({\n fileContent,\n upgrade,\n}: UpdateDependencyConfig): string | null {\n try {\n logger.debug(`gomod.updateDependency: ${upgrade.newValue}`);\n const { depType, updateType } = upgrade;\n const currentName = upgrade.depName;\n if (updateType === 'replacement') {\n logger.warn('gomod manager does not support replacement updates yet');\n return null;\n }\n /* v8 ignore next -- should never happen */\n if (!currentName || !upgrade.managerData) {\n return null;\n }\n const currentNameNoVersion = getNameWithNoVersion(currentName);\n const lines = fileContent.split(newlineRegex);\n /* v8 ignore next -- hard to test */\n if (lines.length <= upgrade.managerData.lineNumber) {\n logger.warn('go.mod current line no longer exists after update');\n return null;\n }\n const lineToChange = lines[upgrade.managerData.lineNumber];\n logger.trace({ upgrade, lineToChange }, 'go.mod current line');\n if (\n !lineToChange.includes(currentNameNoVersion) &&\n !lineToChange.includes('rethinkdb/rethinkdb-go.v5')\n ) {\n logger.debug(\n { lineToChange, depName: currentName },\n \"go.mod current line doesn't contain dependency\",\n );\n return null;\n }\n let updateLineExp: RegExp | undefined;\n\n if (depType === 'golang' || depType === 'toolchain') {\n updateLineExp = regEx(\n /(?<depPart>(?:toolchain )?go)(?<divider>\\s*)(?:[^\\s]+|[\\w]+)/,\n );\n }\n if (depType === 'replace') {\n if (upgrade.managerData.multiLine) {\n updateLineExp = regEx(\n /^(?<depPart>\\s+[^\\s]+[\\s]+[=][>]+\\s+)(?<divider>[^\\s]+\\s+)[^\\s]+/,\n );\n } else {\n updateLineExp = regEx(\n /^(?<depPart>replace\\s+[^\\s]+[\\s]+[=][>]+\\s+)(?<divider>[^\\s]+\\s+)[^\\s]+/,\n );\n }\n } else if (depType === 'require' || depType === 'indirect') {\n if (upgrade.managerData.multiLine) {\n updateLineExp = regEx(/^(?<depPart>\\s+[^\\s]+)(?<divider>\\s+)[^\\s]+/);\n } else {\n updateLineExp = regEx(\n /^(?<depPart>require\\s+[^\\s]+)(?<divider>\\s+)[^\\s]+/,\n );\n }\n }\n if (updateLineExp && !updateLineExp.test(lineToChange)) {\n logger.debug('No line found to update');\n return null;\n }\n let newLine: string;\n if (upgrade.updateType === 'digest') {\n // Since the 2024 goproxy datasource changes, newValue and newDigest are\n // both extracted from the same proxy version string and always reference\n // the same commit, so newValue can be written directly for pseudo-versions.\n // However, for private modules (GONOPROXY / direct datasource), the proxy\n // has no data and newValue may equal currentValue. In that case, fall\n // through to the bare hash path so that gomodTidy can resolve it.\n if (\n isPseudoVersion(upgrade.newValue) &&\n upgrade.newValue !== upgrade.currentValue\n ) {\n logger.debug(\n { depName: currentName, lineToChange, newValue: upgrade.newValue },\n 'gomod: updating pseudo-version digest',\n );\n newLine = lineToChange.replace(\n // TODO: can be undefined? (#22198)\n updateLineExp!,\n `$<depPart>$<divider>${upgrade.newValue}`,\n );\n } else {\n // Fallback for private modules where the proxy could not resolve a new\n // pseudo-version, or non-pseudo-version digest updates.\n // Writes the bare hash so that postUpdateOptions like gomodTidy can\n // normalize it into a valid pseudo-version via `go get`.\n const newDigestRightSized = upgrade.newDigest!.substring(\n 0,\n upgrade.currentDigest!.length,\n );\n if (lineToChange.includes(newDigestRightSized)) {\n return fileContent;\n }\n logger.debug(\n { depName: currentName, lineToChange, newDigestRightSized },\n 'gomod: need to update digest',\n );\n newLine = lineToChange.replace(\n // TODO: can be undefined? (#22198)\n updateLineExp!,\n `$<depPart>$<divider>${newDigestRightSized}`,\n );\n }\n } else {\n newLine = lineToChange.replace(\n // TODO: can be undefined? (#22198)\n updateLineExp!,\n `$<depPart>$<divider>${upgrade.newValue}`,\n );\n }\n if (upgrade.updateType === 'major') {\n logger.debug(`gomod: major update for ${currentName}`);\n if (currentName.startsWith('gopkg.in/')) {\n const oldV = currentName.split('.').pop();\n newLine = newLine.replace(`.${oldV}`, `.v${upgrade.newMajor}`);\n // Package renames - I couldn't think of a better place to do this\n newLine = newLine.replace(\n 'gorethink/gorethink.v5',\n 'rethinkdb/rethinkdb-go.v5',\n );\n } else if (\n upgrade.newMajor! > 1 &&\n !newLine.includes(`/v${upgrade.newMajor}`) &&\n !upgrade.newValue!.endsWith('+incompatible')\n ) {\n if (currentName === currentNameNoVersion) {\n // If package currently has no version, pin to latest one.\n newLine = newLine.replaceAll(\n currentName,\n `${currentName}/v${upgrade.newMajor}`,\n );\n } else {\n // Replace version\n const [oldV] = upgrade.currentValue!.split('.');\n newLine = newLine.replace(\n regEx(`/${oldV}(\\\\s+)`, undefined, false),\n `/v${upgrade.newMajor}$1`,\n );\n }\n }\n }\n if (\n lineToChange.endsWith('+incompatible') &&\n !upgrade.newValue?.endsWith('+incompatible')\n ) {\n let toAdd = '+incompatible';\n\n if (upgrade.updateType === 'major' && upgrade.newMajor! >= 2) {\n toAdd = '';\n }\n newLine += toAdd;\n }\n if (newLine === lineToChange) {\n logger.debug('No changes necessary');\n return fileContent;\n }\n\n if (depType === 'indirect') {\n newLine = newLine.replace(\n regEx(/\\s*(?:\\/\\/\\s*indirect(?:\\s*;)?\\s*)*$/),\n ' // indirect',\n );\n }\n\n lines[upgrade.managerData.lineNumber] = newLine;\n return lines.join('\\n');\n } catch (err) {\n logger.debug({ err }, 'Error setting new go.mod version');\n return null;\n }\n}\n"],"mappings":"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"}
@@ -23,35 +23,36 @@ import { api as api$22 } from "./git/index.js";
23
23
  import { api as api$23, id as id$17 } from "./github-actions/index.js";
24
24
  import { api as api$24, id as id$18 } from "./glasskube/index.js";
25
25
  import { api as api$25, id as id$19 } from "./go-mod-directive/index.js";
26
- import { api as api$26, id as id$20 } from "./maven/index.js";
27
- import { api as api$27, id as id$21 } from "./gradle/index.js";
28
- import { api as api$28, id as id$22 } from "./hashicorp/index.js";
29
- import { api as api$29, id as id$23 } from "./helm/index.js";
30
- import { api as api$30, id as id$24 } from "./hermit/index.js";
31
- import { api as api$31 } from "./hex/index.js";
32
- import { api as api$32 } from "./ivy/index.js";
33
- import { api as api$33, id as id$25 } from "./kubernetes-api/index.js";
34
- import { api as api$34, id as id$26 } from "./node/index.js";
35
- import { api as api$35, id as id$27 } from "./lambda-node/index.js";
36
- import { api as api$36, id as id$28 } from "./nixpkgs/index.js";
37
- import { api as api$37, id as id$29 } from "./nuget/index.js";
38
- import { api as api$38, id as id$30 } from "./paket/index.js";
39
- import { api as api$39, id as id$31 } from "./perl/index.js";
40
- import { api as api$40, id as id$32 } from "./poetry/index.js";
41
- import { api as api$41 } from "./pvp/index.js";
42
- import { api as api$42, id as id$33 } from "./python/index.js";
43
- import { api as api$43, id as id$34 } from "./redhat/index.js";
44
- import { api as api$44 } from "./rez/index.js";
45
- import { api as api$45 } from "./rpm/index.js";
46
- import { api as api$46, id as id$35 } from "./ruby/index.js";
47
- import { api as api$47, id as id$36 } from "./rust-release-channel/index.js";
48
- import { api as api$48, id as id$37 } from "./semver-coerced/index.js";
49
- import { api as api$49, id as id$38 } from "./same-major/index.js";
50
- import { api as api$50, id as id$39 } from "./semver-partial/index.js";
51
- import { api as api$51, id as id$40 } from "./swift/index.js";
52
- import { api as api$52, id as id$41 } from "./ubuntu/index.js";
53
- import { api as api$53, id as id$42 } from "./unity3d/index.js";
54
- import { api as api$54, id as id$43 } from "./unity3d-packages/index.js";
26
+ import { api as api$26, id as id$20 } from "./gomod/index.js";
27
+ import { api as api$27, id as id$21 } from "./maven/index.js";
28
+ import { api as api$28, id as id$22 } from "./gradle/index.js";
29
+ import { api as api$29, id as id$23 } from "./hashicorp/index.js";
30
+ import { api as api$30, id as id$24 } from "./helm/index.js";
31
+ import { api as api$31, id as id$25 } from "./hermit/index.js";
32
+ import { api as api$32 } from "./hex/index.js";
33
+ import { api as api$33 } from "./ivy/index.js";
34
+ import { api as api$34, id as id$26 } from "./kubernetes-api/index.js";
35
+ import { api as api$35, id as id$27 } from "./node/index.js";
36
+ import { api as api$36, id as id$28 } from "./lambda-node/index.js";
37
+ import { api as api$37, id as id$29 } from "./nixpkgs/index.js";
38
+ import { api as api$38, id as id$30 } from "./nuget/index.js";
39
+ import { api as api$39, id as id$31 } from "./paket/index.js";
40
+ import { api as api$40, id as id$32 } from "./perl/index.js";
41
+ import { api as api$41, id as id$33 } from "./poetry/index.js";
42
+ import { api as api$42 } from "./pvp/index.js";
43
+ import { api as api$43, id as id$34 } from "./python/index.js";
44
+ import { api as api$44, id as id$35 } from "./redhat/index.js";
45
+ import { api as api$45 } from "./rez/index.js";
46
+ import { api as api$46 } from "./rpm/index.js";
47
+ import { api as api$47, id as id$36 } from "./ruby/index.js";
48
+ import { api as api$48, id as id$37 } from "./rust-release-channel/index.js";
49
+ import { api as api$49, id as id$38 } from "./semver-coerced/index.js";
50
+ import { api as api$50, id as id$39 } from "./same-major/index.js";
51
+ import { api as api$51, id as id$40 } from "./semver-partial/index.js";
52
+ import { api as api$52, id as id$41 } from "./swift/index.js";
53
+ import { api as api$53, id as id$42 } from "./ubuntu/index.js";
54
+ import { api as api$54, id as id$43 } from "./unity3d/index.js";
55
+ import { api as api$55, id as id$44 } from "./unity3d-packages/index.js";
55
56
  //#region lib/modules/versioning/api.ts
56
57
  const api = /* @__PURE__ */ new Map();
57
58
  api.set("apk", api$1);
@@ -74,40 +75,41 @@ api.set("git", api$22);
74
75
  api.set(id$17, api$23);
75
76
  api.set(id$18, api$24);
76
77
  api.set(id$19, api$25);
77
- api.set(id$21, api$27);
78
+ api.set(id$20, api$26);
78
79
  api.set(id$22, api$28);
79
80
  api.set(id$23, api$29);
80
81
  api.set(id$24, api$30);
81
- api.set("hex", api$31);
82
- api.set("ivy", api$32);
83
- api.set(id$25, api$33);
84
- api.set(id$27, api$35);
85
- api.set(id$8, api$11);
86
- api.set(id$20, api$26);
87
- api.set(id$28, api$36);
82
+ api.set(id$25, api$31);
83
+ api.set("hex", api$32);
84
+ api.set("ivy", api$33);
88
85
  api.set(id$26, api$34);
89
- api.set("npm", api$8);
86
+ api.set(id$28, api$36);
87
+ api.set(id$8, api$11);
88
+ api.set(id$21, api$27);
90
89
  api.set(id$29, api$37);
90
+ api.set(id$27, api$35);
91
+ api.set("npm", api$8);
91
92
  api.set(id$30, api$38);
92
- api.set(id$10, api$13);
93
93
  api.set(id$31, api$39);
94
+ api.set(id$10, api$13);
94
95
  api.set(id$32, api$40);
95
- api.set("pvp", api$41);
96
- api.set(id$33, api$42);
96
+ api.set(id$33, api$41);
97
+ api.set("pvp", api$42);
97
98
  api.set(id$34, api$43);
99
+ api.set(id$35, api$44);
98
100
  api.set(id, api$2);
99
- api.set("rez", api$44);
100
- api.set("rpm", api$45);
101
- api.set(id$35, api$46);
101
+ api.set("rez", api$45);
102
+ api.set("rpm", api$46);
102
103
  api.set(id$36, api$47);
103
- api.set(id$38, api$49);
104
- api.set(id$5, api$7);
105
104
  api.set(id$37, api$48);
106
105
  api.set(id$39, api$50);
106
+ api.set(id$5, api$7);
107
+ api.set(id$38, api$49);
107
108
  api.set(id$40, api$51);
108
109
  api.set(id$41, api$52);
109
110
  api.set(id$42, api$53);
110
111
  api.set(id$43, api$54);
112
+ api.set(id$44, api$55);
111
113
  //#endregion
112
114
  export { api as default };
113
115
 
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","names":["apk.api","awsEksAddon.id","awsEksAddon.api","amazonMachineImage.id","amazonMachineImage.api","azureRestApi.id","azureRestApi.api","bazelModule.id","bazelModule.api","cargo.id","cargo.api","composer.id","composer.api","conan.id","conan.api","conda.id","conda.api","deb.api","debian.id","debian.api","deno.id","deno.api","devbox.id","devbox.api","docker.id","docker.api","elm.api","exact.id","exact.api","git.api","githubActions.id","githubActions.api","glasskube.id","glasskube.api","goModDirective.id","goModDirective.api","gradle.id","gradle.api","hashicorp.id","hashicorp.api","helm.id","helm.api","hermit.id","hermit.api","hex.api","ivy.api","kubernetesApi.id","kubernetesApi.api","lambdaNode.id","lambdaNode.api","loose.id","loose.api","maven.id","maven.api","nixpkgs.id","nixpkgs.api","node.id","node.api","npm.api","nuget.id","nuget.api","paket.id","paket.api","pep440.id","pep440.api","perl.id","perl.api","poetry.id","poetry.api","pvp.api","python.id","python.api","redhat.id","redhat.api","regex.id","regex.api","rez.api","rpm.api","ruby.id","ruby.api","rustReleaseChannel.id","rustReleaseChannel.api","sameMajor.id","sameMajor.api","semver.id","semver.api","semverCoerced.id","semverCoerced.api","semverPartial.id","semverPartial.api","swift.id","swift.api","ubuntu.id","ubuntu.api","unity3d.id","unity3d.api","unity3dPackages.id","unity3dPackages.api"],"sources":["../../../lib/modules/versioning/api.ts"],"sourcesContent":["import * as apk from './apk/index.ts';\nimport * as awsEksAddon from './aws-eks-addon/index.ts';\nimport * as amazonMachineImage from './aws-machine-image/index.ts';\nimport * as azureRestApi from './azure-rest-api/index.ts';\nimport * as bazelModule from './bazel-module/index.ts';\nimport * as cargo from './cargo/index.ts';\nimport * as composer from './composer/index.ts';\nimport * as conan from './conan/index.ts';\nimport * as conda from './conda/index.ts';\nimport * as deb from './deb/index.ts';\nimport * as debian from './debian/index.ts';\nimport * as deno from './deno/index.ts';\nimport * as devbox from './devbox/index.ts';\nimport * as docker from './docker/index.ts';\nimport * as elm from './elm/index.ts';\nimport * as exact from './exact/index.ts';\nimport * as git from './git/index.ts';\nimport * as githubActions from './github-actions/index.ts';\nimport * as glasskube from './glasskube/index.ts';\nimport * as goModDirective from './go-mod-directive/index.ts';\nimport * as gradle from './gradle/index.ts';\nimport * as hashicorp from './hashicorp/index.ts';\nimport * as helm from './helm/index.ts';\nimport * as hermit from './hermit/index.ts';\nimport * as hex from './hex/index.ts';\nimport * as ivy from './ivy/index.ts';\nimport * as kubernetesApi from './kubernetes-api/index.ts';\nimport * as lambdaNode from './lambda-node/index.ts';\nimport * as loose from './loose/index.ts';\nimport * as maven from './maven/index.ts';\nimport * as nixpkgs from './nixpkgs/index.ts';\nimport * as node from './node/index.ts';\nimport * as npm from './npm/index.ts';\nimport * as nuget from './nuget/index.ts';\nimport * as paket from './paket/index.ts';\nimport * as pep440 from './pep440/index.ts';\nimport * as perl from './perl/index.ts';\nimport * as poetry from './poetry/index.ts';\nimport * as pvp from './pvp/index.ts';\nimport * as python from './python/index.ts';\nimport * as redhat from './redhat/index.ts';\nimport * as regex from './regex/index.ts';\nimport * as rez from './rez/index.ts';\nimport * as rpm from './rpm/index.ts';\nimport * as ruby from './ruby/index.ts';\nimport * as rustReleaseChannel from './rust-release-channel/index.ts';\nimport * as sameMajor from './same-major/index.ts';\nimport * as semver from './semver/index.ts';\nimport * as semverCoerced from './semver-coerced/index.ts';\nimport * as semverPartial from './semver-partial/index.ts';\nimport * as swift from './swift/index.ts';\nimport type { VersioningApi, VersioningApiConstructor } from './types.ts';\nimport * as ubuntu from './ubuntu/index.ts';\nimport * as unity3d from './unity3d/index.ts';\nimport * as unity3dPackages from './unity3d-packages/index.ts';\n\nconst api = new Map<string, VersioningApi | VersioningApiConstructor>();\nexport default api;\n\napi.set(apk.id, apk.api);\napi.set(awsEksAddon.id, awsEksAddon.api);\napi.set(amazonMachineImage.id, amazonMachineImage.api);\napi.set(azureRestApi.id, azureRestApi.api);\napi.set(bazelModule.id, bazelModule.api);\napi.set(cargo.id, cargo.api);\napi.set(composer.id, composer.api);\napi.set(conan.id, conan.api);\napi.set(conda.id, conda.api);\napi.set(deb.id, deb.api);\napi.set(debian.id, debian.api);\napi.set(deno.id, deno.api);\napi.set(devbox.id, devbox.api);\napi.set(docker.id, docker.api);\napi.set(elm.id, elm.api);\napi.set(exact.id, exact.api);\napi.set(git.id, git.api);\napi.set(githubActions.id, githubActions.api);\napi.set(glasskube.id, glasskube.api);\napi.set(goModDirective.id, goModDirective.api);\napi.set(gradle.id, gradle.api);\napi.set(hashicorp.id, hashicorp.api);\napi.set(helm.id, helm.api);\napi.set(hermit.id, hermit.api);\napi.set(hex.id, hex.api);\napi.set(ivy.id, ivy.api);\napi.set(kubernetesApi.id, kubernetesApi.api);\napi.set(lambdaNode.id, lambdaNode.api);\napi.set(loose.id, loose.api);\napi.set(maven.id, maven.api);\napi.set(nixpkgs.id, nixpkgs.api);\napi.set(node.id, node.api);\napi.set(npm.id, npm.api);\napi.set(nuget.id, nuget.api);\napi.set(paket.id, paket.api);\napi.set(pep440.id, pep440.api);\napi.set(perl.id, perl.api);\napi.set(poetry.id, poetry.api);\napi.set(pvp.id, pvp.api);\napi.set(python.id, python.api);\napi.set(redhat.id, redhat.api);\napi.set(regex.id, regex.api);\napi.set(rez.id, rez.api);\napi.set(rpm.id, rpm.api);\napi.set(ruby.id, ruby.api);\napi.set(rustReleaseChannel.id, rustReleaseChannel.api);\napi.set(sameMajor.id, sameMajor.api);\napi.set(semver.id, semver.api);\napi.set(semverCoerced.id, semverCoerced.api);\napi.set(semverPartial.id, semverPartial.api);\napi.set(swift.id, swift.api);\napi.set(ubuntu.id, ubuntu.api);\napi.set(unity3d.id, unity3d.api);\napi.set(unity3dPackages.id, unity3dPackages.api);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,MAAM,sBAAM,IAAI,IAAsD;AAGtE,IAAI,IAAI,OAAQA,KAAO;AACvB,IAAI,IAAIC,MAAgBC,KAAe;AACvC,IAAI,IAAIC,MAAuBC,KAAsB;AACrD,IAAI,IAAIC,MAAiBC,KAAgB;AACzC,IAAI,IAAIC,MAAgBC,KAAe;AACvC,IAAI,IAAIC,MAAUC,KAAS;AAC3B,IAAI,IAAIC,MAAaC,MAAY;AACjC,IAAI,IAAIC,MAAUC,MAAS;AAC3B,IAAI,IAAIC,OAAUC,MAAS;AAC3B,IAAI,IAAI,OAAQC,MAAO;AACvB,IAAI,IAAIC,OAAWC,MAAU;AAC7B,IAAI,IAAIC,OAASC,MAAQ;AACzB,IAAI,IAAIC,OAAWC,MAAU;AAC7B,IAAI,IAAIC,OAAWC,MAAU;AAC7B,IAAI,IAAI,OAAQC,MAAO;AACvB,IAAI,IAAIC,OAAUC,MAAS;AAC3B,IAAI,IAAI,OAAQC,MAAO;AACvB,IAAI,IAAIC,OAAkBC,MAAiB;AAC3C,IAAI,IAAIC,OAAcC,MAAa;AACnC,IAAI,IAAIC,OAAmBC,MAAkB;AAC7C,IAAI,IAAIC,OAAWC,MAAU;AAC7B,IAAI,IAAIC,OAAcC,MAAa;AACnC,IAAI,IAAIC,OAASC,MAAQ;AACzB,IAAI,IAAIC,OAAWC,MAAU;AAC7B,IAAI,IAAI,OAAQC,MAAO;AACvB,IAAI,IAAI,OAAQC,MAAO;AACvB,IAAI,IAAIC,OAAkBC,MAAiB;AAC3C,IAAI,IAAIC,OAAeC,MAAc;AACrC,IAAI,IAAIC,MAAUC,MAAS;AAC3B,IAAI,IAAIC,OAAUC,MAAS;AAC3B,IAAI,IAAIC,OAAYC,MAAW;AAC/B,IAAI,IAAIC,OAASC,MAAQ;AACzB,IAAI,IAAI,OAAQC,KAAO;AACvB,IAAI,IAAIC,OAAUC,MAAS;AAC3B,IAAI,IAAIC,OAAUC,MAAS;AAC3B,IAAI,IAAIC,OAAWC,MAAU;AAC7B,IAAI,IAAIC,OAASC,MAAQ;AACzB,IAAI,IAAIC,OAAWC,MAAU;AAC7B,IAAI,IAAI,OAAQC,MAAO;AACvB,IAAI,IAAIC,OAAWC,MAAU;AAC7B,IAAI,IAAIC,OAAWC,MAAU;AAC7B,IAAI,IAAIC,IAAUC,KAAS;AAC3B,IAAI,IAAI,OAAQC,MAAO;AACvB,IAAI,IAAI,OAAQC,MAAO;AACvB,IAAI,IAAIC,OAASC,MAAQ;AACzB,IAAI,IAAIC,OAAuBC,MAAsB;AACrD,IAAI,IAAIC,OAAcC,MAAa;AACnC,IAAI,IAAIC,MAAWC,KAAU;AAC7B,IAAI,IAAIC,OAAkBC,MAAiB;AAC3C,IAAI,IAAIC,OAAkBC,MAAiB;AAC3C,IAAI,IAAIC,OAAUC,MAAS;AAC3B,IAAI,IAAIC,OAAWC,MAAU;AAC7B,IAAI,IAAIC,OAAYC,MAAW;AAC/B,IAAI,IAAIC,OAAoBC,MAAmB"}
1
+ {"version":3,"file":"api.js","names":["apk.api","awsEksAddon.id","awsEksAddon.api","amazonMachineImage.id","amazonMachineImage.api","azureRestApi.id","azureRestApi.api","bazelModule.id","bazelModule.api","cargo.id","cargo.api","composer.id","composer.api","conan.id","conan.api","conda.id","conda.api","deb.api","debian.id","debian.api","deno.id","deno.api","devbox.id","devbox.api","docker.id","docker.api","elm.api","exact.id","exact.api","git.api","githubActions.id","githubActions.api","glasskube.id","glasskube.api","goModDirective.id","goModDirective.api","gomod.id","gomod.api","gradle.id","gradle.api","hashicorp.id","hashicorp.api","helm.id","helm.api","hermit.id","hermit.api","hex.api","ivy.api","kubernetesApi.id","kubernetesApi.api","lambdaNode.id","lambdaNode.api","loose.id","loose.api","maven.id","maven.api","nixpkgs.id","nixpkgs.api","node.id","node.api","npm.api","nuget.id","nuget.api","paket.id","paket.api","pep440.id","pep440.api","perl.id","perl.api","poetry.id","poetry.api","pvp.api","python.id","python.api","redhat.id","redhat.api","regex.id","regex.api","rez.api","rpm.api","ruby.id","ruby.api","rustReleaseChannel.id","rustReleaseChannel.api","sameMajor.id","sameMajor.api","semver.id","semver.api","semverCoerced.id","semverCoerced.api","semverPartial.id","semverPartial.api","swift.id","swift.api","ubuntu.id","ubuntu.api","unity3d.id","unity3d.api","unity3dPackages.id","unity3dPackages.api"],"sources":["../../../lib/modules/versioning/api.ts"],"sourcesContent":["import * as apk from './apk/index.ts';\nimport * as awsEksAddon from './aws-eks-addon/index.ts';\nimport * as amazonMachineImage from './aws-machine-image/index.ts';\nimport * as azureRestApi from './azure-rest-api/index.ts';\nimport * as bazelModule from './bazel-module/index.ts';\nimport * as cargo from './cargo/index.ts';\nimport * as composer from './composer/index.ts';\nimport * as conan from './conan/index.ts';\nimport * as conda from './conda/index.ts';\nimport * as deb from './deb/index.ts';\nimport * as debian from './debian/index.ts';\nimport * as deno from './deno/index.ts';\nimport * as devbox from './devbox/index.ts';\nimport * as docker from './docker/index.ts';\nimport * as elm from './elm/index.ts';\nimport * as exact from './exact/index.ts';\nimport * as git from './git/index.ts';\nimport * as githubActions from './github-actions/index.ts';\nimport * as glasskube from './glasskube/index.ts';\nimport * as goModDirective from './go-mod-directive/index.ts';\nimport * as gomod from './gomod/index.ts';\nimport * as gradle from './gradle/index.ts';\nimport * as hashicorp from './hashicorp/index.ts';\nimport * as helm from './helm/index.ts';\nimport * as hermit from './hermit/index.ts';\nimport * as hex from './hex/index.ts';\nimport * as ivy from './ivy/index.ts';\nimport * as kubernetesApi from './kubernetes-api/index.ts';\nimport * as lambdaNode from './lambda-node/index.ts';\nimport * as loose from './loose/index.ts';\nimport * as maven from './maven/index.ts';\nimport * as nixpkgs from './nixpkgs/index.ts';\nimport * as node from './node/index.ts';\nimport * as npm from './npm/index.ts';\nimport * as nuget from './nuget/index.ts';\nimport * as paket from './paket/index.ts';\nimport * as pep440 from './pep440/index.ts';\nimport * as perl from './perl/index.ts';\nimport * as poetry from './poetry/index.ts';\nimport * as pvp from './pvp/index.ts';\nimport * as python from './python/index.ts';\nimport * as redhat from './redhat/index.ts';\nimport * as regex from './regex/index.ts';\nimport * as rez from './rez/index.ts';\nimport * as rpm from './rpm/index.ts';\nimport * as ruby from './ruby/index.ts';\nimport * as rustReleaseChannel from './rust-release-channel/index.ts';\nimport * as sameMajor from './same-major/index.ts';\nimport * as semver from './semver/index.ts';\nimport * as semverCoerced from './semver-coerced/index.ts';\nimport * as semverPartial from './semver-partial/index.ts';\nimport * as swift from './swift/index.ts';\nimport type { VersioningApi, VersioningApiConstructor } from './types.ts';\nimport * as ubuntu from './ubuntu/index.ts';\nimport * as unity3d from './unity3d/index.ts';\nimport * as unity3dPackages from './unity3d-packages/index.ts';\n\nconst api = new Map<string, VersioningApi | VersioningApiConstructor>();\nexport default api;\n\napi.set(apk.id, apk.api);\napi.set(awsEksAddon.id, awsEksAddon.api);\napi.set(amazonMachineImage.id, amazonMachineImage.api);\napi.set(azureRestApi.id, azureRestApi.api);\napi.set(bazelModule.id, bazelModule.api);\napi.set(cargo.id, cargo.api);\napi.set(composer.id, composer.api);\napi.set(conan.id, conan.api);\napi.set(conda.id, conda.api);\napi.set(deb.id, deb.api);\napi.set(debian.id, debian.api);\napi.set(deno.id, deno.api);\napi.set(devbox.id, devbox.api);\napi.set(docker.id, docker.api);\napi.set(elm.id, elm.api);\napi.set(exact.id, exact.api);\napi.set(git.id, git.api);\napi.set(githubActions.id, githubActions.api);\napi.set(glasskube.id, glasskube.api);\napi.set(goModDirective.id, goModDirective.api);\napi.set(gomod.id, gomod.api);\napi.set(gradle.id, gradle.api);\napi.set(hashicorp.id, hashicorp.api);\napi.set(helm.id, helm.api);\napi.set(hermit.id, hermit.api);\napi.set(hex.id, hex.api);\napi.set(ivy.id, ivy.api);\napi.set(kubernetesApi.id, kubernetesApi.api);\napi.set(lambdaNode.id, lambdaNode.api);\napi.set(loose.id, loose.api);\napi.set(maven.id, maven.api);\napi.set(nixpkgs.id, nixpkgs.api);\napi.set(node.id, node.api);\napi.set(npm.id, npm.api);\napi.set(nuget.id, nuget.api);\napi.set(paket.id, paket.api);\napi.set(pep440.id, pep440.api);\napi.set(perl.id, perl.api);\napi.set(poetry.id, poetry.api);\napi.set(pvp.id, pvp.api);\napi.set(python.id, python.api);\napi.set(redhat.id, redhat.api);\napi.set(regex.id, regex.api);\napi.set(rez.id, rez.api);\napi.set(rpm.id, rpm.api);\napi.set(ruby.id, ruby.api);\napi.set(rustReleaseChannel.id, rustReleaseChannel.api);\napi.set(sameMajor.id, sameMajor.api);\napi.set(semver.id, semver.api);\napi.set(semverCoerced.id, semverCoerced.api);\napi.set(semverPartial.id, semverPartial.api);\napi.set(swift.id, swift.api);\napi.set(ubuntu.id, ubuntu.api);\napi.set(unity3d.id, unity3d.api);\napi.set(unity3dPackages.id, unity3dPackages.api);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,MAAM,sBAAM,IAAI,IAAsD;AAGtE,IAAI,IAAI,OAAQA,KAAO;AACvB,IAAI,IAAIC,MAAgBC,KAAe;AACvC,IAAI,IAAIC,MAAuBC,KAAsB;AACrD,IAAI,IAAIC,MAAiBC,KAAgB;AACzC,IAAI,IAAIC,MAAgBC,KAAe;AACvC,IAAI,IAAIC,MAAUC,KAAS;AAC3B,IAAI,IAAIC,MAAaC,MAAY;AACjC,IAAI,IAAIC,MAAUC,MAAS;AAC3B,IAAI,IAAIC,OAAUC,MAAS;AAC3B,IAAI,IAAI,OAAQC,MAAO;AACvB,IAAI,IAAIC,OAAWC,MAAU;AAC7B,IAAI,IAAIC,OAASC,MAAQ;AACzB,IAAI,IAAIC,OAAWC,MAAU;AAC7B,IAAI,IAAIC,OAAWC,MAAU;AAC7B,IAAI,IAAI,OAAQC,MAAO;AACvB,IAAI,IAAIC,OAAUC,MAAS;AAC3B,IAAI,IAAI,OAAQC,MAAO;AACvB,IAAI,IAAIC,OAAkBC,MAAiB;AAC3C,IAAI,IAAIC,OAAcC,MAAa;AACnC,IAAI,IAAIC,OAAmBC,MAAkB;AAC7C,IAAI,IAAIC,OAAUC,MAAS;AAC3B,IAAI,IAAIC,OAAWC,MAAU;AAC7B,IAAI,IAAIC,OAAcC,MAAa;AACnC,IAAI,IAAIC,OAASC,MAAQ;AACzB,IAAI,IAAIC,OAAWC,MAAU;AAC7B,IAAI,IAAI,OAAQC,MAAO;AACvB,IAAI,IAAI,OAAQC,MAAO;AACvB,IAAI,IAAIC,OAAkBC,MAAiB;AAC3C,IAAI,IAAIC,OAAeC,MAAc;AACrC,IAAI,IAAIC,MAAUC,MAAS;AAC3B,IAAI,IAAIC,OAAUC,MAAS;AAC3B,IAAI,IAAIC,OAAYC,MAAW;AAC/B,IAAI,IAAIC,OAASC,MAAQ;AACzB,IAAI,IAAI,OAAQC,KAAO;AACvB,IAAI,IAAIC,OAAUC,MAAS;AAC3B,IAAI,IAAIC,OAAUC,MAAS;AAC3B,IAAI,IAAIC,OAAWC,MAAU;AAC7B,IAAI,IAAIC,OAASC,MAAQ;AACzB,IAAI,IAAIC,OAAWC,MAAU;AAC7B,IAAI,IAAI,OAAQC,MAAO;AACvB,IAAI,IAAIC,OAAWC,MAAU;AAC7B,IAAI,IAAIC,OAAWC,MAAU;AAC7B,IAAI,IAAIC,IAAUC,KAAS;AAC3B,IAAI,IAAI,OAAQC,MAAO;AACvB,IAAI,IAAI,OAAQC,MAAO;AACvB,IAAI,IAAIC,OAASC,MAAQ;AACzB,IAAI,IAAIC,OAAuBC,MAAsB;AACrD,IAAI,IAAIC,OAAcC,MAAa;AACnC,IAAI,IAAIC,MAAWC,KAAU;AAC7B,IAAI,IAAIC,OAAkBC,MAAiB;AAC3C,IAAI,IAAIC,OAAkBC,MAAiB;AAC3C,IAAI,IAAIC,OAAUC,MAAS;AAC3B,IAAI,IAAIC,OAAWC,MAAU;AAC7B,IAAI,IAAIC,OAAYC,MAAW;AAC/B,IAAI,IAAIC,OAAoBC,MAAmB"}
@@ -0,0 +1,23 @@
1
+ import { regEx } from "../../../util/regex.js";
2
+ import { api as api$1 } from "../semver/index.js";
3
+ //#region lib/modules/versioning/gomod/index.ts
4
+ const id = "gomod";
5
+ const pseudoVersionRegex = regEx(/^v\d+\.(?:0\.0-|\d+\.\d+-(?:[^+]*\.)?0\.)\d{14}-[A-Za-z0-9]+(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/);
6
+ /**
7
+ * Whether the version is a pseudo-version, which Go uses to refer to a commit
8
+ * instead of a tagged release, in any of its three forms:
9
+ * `vX.0.0-yyyymmddhhmmss-abcdefabcdef` without a base version,
10
+ * `vX.Y.Z-pre.0.yyyymmddhhmmss-abcdefabcdef` after a pre-release and
11
+ * `vX.Y.(Z+1)-0.yyyymmddhhmmss-abcdefabcdef` after a release.
12
+ *
13
+ * @see https://go.dev/ref/mod#pseudo-versions
14
+ */
15
+ function isPseudoVersion(version) {
16
+ if (!version) return false;
17
+ return api$1.isVersion(version) && pseudoVersionRegex.test(version);
18
+ }
19
+ const api = { ...api$1 };
20
+ //#endregion
21
+ export { api, api as default, id, isPseudoVersion };
22
+
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["semver"],"sources":["../../../../lib/modules/versioning/gomod/index.ts"],"sourcesContent":["import { regEx } from '../../../util/regex.ts';\nimport { api as semver } from '../semver/index.ts';\nimport type { VersioningApi } from '../types.ts';\n\nexport const id = 'gomod';\nexport const displayName = 'Go Modules';\nexport const urls = [\n '[Go Modules Reference: Versions](https://go.dev/ref/mod#versions)',\n];\nexport const supportsRanges = false;\n\n// Same pattern as `IsPseudoVersion()` in golang.org/x/mod/module\nconst pseudoVersionRegex = regEx(\n /^v\\d+\\.(?:0\\.0-|\\d+\\.\\d+-(?:[^+]*\\.)?0\\.)\\d{14}-[A-Za-z0-9]+(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$/,\n);\n\n/**\n * Whether the version is a pseudo-version, which Go uses to refer to a commit\n * instead of a tagged release, in any of its three forms:\n * `vX.0.0-yyyymmddhhmmss-abcdefabcdef` without a base version,\n * `vX.Y.Z-pre.0.yyyymmddhhmmss-abcdefabcdef` after a pre-release and\n * `vX.Y.(Z+1)-0.yyyymmddhhmmss-abcdefabcdef` after a release.\n *\n * @see https://go.dev/ref/mod#pseudo-versions\n */\nexport function isPseudoVersion(version: string | undefined): boolean {\n if (!version) {\n return false;\n }\n return semver.isVersion(version) && pseudoVersionRegex.test(version);\n}\n\nexport const api: VersioningApi = { ...semver };\n\nexport default api;\n"],"mappings":";;;AAIA,MAAa,KAAK;AAQlB,MAAM,qBAAqB,MACzB,uGACF;;;;;;;;;;AAWA,SAAgB,gBAAgB,SAAsC;CACpE,IAAI,CAAC,SACH,OAAO;CAET,OAAOA,MAAO,UAAU,OAAO,KAAK,mBAAmB,KAAK,OAAO;AACrE;AAEA,MAAa,MAAqB,EAAE,GAAGA,MAAO"}
@@ -30,11 +30,14 @@ function isGreaterThan(a, b) {
30
30
  return !!(a && b && api$2.isGreaterThan(a, b));
31
31
  }
32
32
  function isLessThanRange(version, range) {
33
+ if (!isPoetryRange(range)) return api$2.isLessThanRange(version, range);
33
34
  const semverVersion = poetry2semver(version);
34
35
  return !!(isVersion(version) && semverVersion && api$1.isLessThanRange?.(semverVersion, poetry2npm(range)));
35
36
  }
36
- function isValid(input) {
37
- if (!input) return false;
37
+ /**
38
+ * Whether the input is a range poetry's own syntax can express, which is what the npm-based implementation here understands.
39
+ */
40
+ function isPoetryRange(input) {
38
41
  try {
39
42
  return api$1.isValid(poetry2npm(input, true));
40
43
  } catch {
@@ -42,15 +45,21 @@ function isValid(input) {
42
45
  return false;
43
46
  }
44
47
  }
48
+ function isValid(input) {
49
+ if (!input) return false;
50
+ return isPoetryRange(input) || api$2.isValid(input);
51
+ }
45
52
  function isStable(version) {
46
53
  const semverVersion = poetry2semver(version);
47
54
  return !!(semverVersion && api$1.isStable(semverVersion));
48
55
  }
49
56
  function matches(version, range) {
57
+ if (!isPoetryRange(range)) return api$2.matches(version, range);
50
58
  const semverVersion = poetry2semver(version);
51
59
  return !!(isVersion(version) && semverVersion && api$1.matches(semverVersion, poetry2npm(range)));
52
60
  }
53
61
  function getSatisfyingVersion(versions, range) {
62
+ if (!isPoetryRange(range)) return api$2.getSatisfyingVersion(versions, range);
54
63
  const semverVersions = [];
55
64
  versions.forEach((version) => {
56
65
  const semverVersion = poetry2semver(version);
@@ -61,6 +70,7 @@ function getSatisfyingVersion(versions, range) {
61
70
  return satisfyingVersion ? semver2poetry(satisfyingVersion) : null;
62
71
  }
63
72
  function minSatisfyingVersion(versions, range) {
73
+ if (!isPoetryRange(range)) return api$2.minSatisfyingVersion(versions, range);
64
74
  const semverVersions = [];
65
75
  versions.forEach((version) => {
66
76
  const semverVersion = poetry2semver(version);
@@ -81,7 +91,9 @@ function handleShort(operator, currentValue, newVersion) {
81
91
  if (toVersionMajor !== null && toVersionMinor !== null && split.length === 2) return `${operator}${toVersionMajor}.${toVersionMinor}`;
82
92
  return null;
83
93
  }
84
- function getNewValue({ currentValue, rangeStrategy, currentVersion, newVersion }) {
94
+ function getNewValue(config) {
95
+ const { currentValue, rangeStrategy, currentVersion, newVersion } = config;
96
+ if (!isPoetryRange(currentValue)) return api$2.getNewValue(config);
85
97
  if (rangeStrategy === "replace") {
86
98
  const npmCurrentValue = poetry2npm(currentValue);
87
99
  try {
@@ -136,6 +148,7 @@ function sortVersions(a, b) {
136
148
  return api$2.sortVersions(a, b);
137
149
  }
138
150
  function subset(subRange, superRange) {
151
+ if (!isPoetryRange(subRange) || !isPoetryRange(superRange)) return;
139
152
  return api$1.subset(poetry2npm(subRange), poetry2npm(superRange));
140
153
  }
141
154
  const api = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["npm","pep440"],"sources":["../../../../lib/modules/versioning/poetry/index.ts"],"sourcesContent":["import { parseRange } from 'semver-utils';\nimport { logger } from '../../../logger/index.ts';\nimport type { RangeStrategy } from '../../../types/versioning.ts';\nimport { api as npm } from '../npm/index.ts';\nimport { api as pep440 } from '../pep440/index.ts';\nimport type { NewValueConfig, VersioningApi } from '../types.ts';\n\nimport { VERSION_PATTERN } from './patterns.ts';\nimport {\n npm2poetry,\n poetry2npm,\n poetry2semver,\n semver2poetry,\n} from './transform.ts';\n\nexport const id = 'poetry';\nexport const displayName = 'Poetry';\nexport const urls = [\n '[Poetry dependency specification](https://python-poetry.org/docs/dependency-specification/)',\n '[Poetry FAQ - Why does Poetry not adhere to semantic versioning?](https://python-poetry.org/docs/faq#why-does-poetry-not-adhere-to-semantic-versioning)',\n '[Poetry FAQ - Why does Poetry enforce PEP 440 versions?](https://python-poetry.org/docs/faq#why-does-poetry-enforce-pep-440-versions)',\n];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies: RangeStrategy[] = [\n 'bump',\n 'widen',\n 'replace',\n];\n\nfunction equals(a: string, b: string): boolean {\n const semverA = poetry2semver(a);\n const semverB = poetry2semver(b);\n return !!(semverA && semverB && npm.equals(semverA, semverB));\n}\n\nfunction getMajor(version: string): number | null {\n const semverVersion = poetry2semver(version);\n return semverVersion ? npm.getMajor(semverVersion) : null;\n}\n\nfunction getMinor(version: string): number | null {\n const semverVersion = poetry2semver(version);\n return semverVersion ? npm.getMinor(semverVersion) : null;\n}\n\nfunction getPatch(version: string): number | null {\n const semverVersion = poetry2semver(version);\n return semverVersion ? npm.getPatch(semverVersion) : null;\n}\n\nfunction isVersion(input: string): boolean {\n return VERSION_PATTERN.test(input);\n}\n\nfunction isGreaterThan(a: string, b: string): boolean {\n return !!(a && b && pep440.isGreaterThan(a, b));\n}\n\nfunction isLessThanRange(version: string, range: string): boolean {\n const semverVersion = poetry2semver(version);\n return !!(\n isVersion(version) &&\n semverVersion &&\n npm.isLessThanRange?.(semverVersion, poetry2npm(range))\n );\n}\n\nexport function isValid(input: string): boolean {\n if (!input) {\n return false;\n }\n\n try {\n return npm.isValid(poetry2npm(input, true));\n } catch {\n logger.once.debug(\n { version: input },\n 'Poetry version or range is not supported by current implementation',\n );\n return false;\n }\n}\n\nfunction isStable(version: string): boolean {\n const semverVersion = poetry2semver(version);\n return !!(semverVersion && npm.isStable(semverVersion));\n}\n\nfunction matches(version: string, range: string): boolean {\n const semverVersion = poetry2semver(version);\n return !!(\n isVersion(version) &&\n semverVersion &&\n npm.matches(semverVersion, poetry2npm(range))\n );\n}\n\nfunction getSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n const semverVersions: string[] = [];\n versions.forEach((version) => {\n const semverVersion = poetry2semver(version);\n if (semverVersion) {\n semverVersions.push(semverVersion);\n }\n });\n const npmRange = poetry2npm(range);\n const satisfyingVersion = npm.getSatisfyingVersion(semverVersions, npmRange);\n return satisfyingVersion ? semver2poetry(satisfyingVersion) : null;\n}\n\nfunction minSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n const semverVersions: string[] = [];\n versions.forEach((version) => {\n const semverVersion = poetry2semver(version);\n if (semverVersion) {\n semverVersions.push(semverVersion);\n }\n });\n const npmRange = poetry2npm(range);\n const satisfyingVersion = npm.minSatisfyingVersion(semverVersions, npmRange);\n return satisfyingVersion ? semver2poetry(satisfyingVersion) : null;\n}\n\nfunction isSingleVersion(constraint: string): boolean {\n return (\n (constraint.trim().startsWith('=') &&\n isVersion(constraint.trim().substring(1).trim())) ||\n isVersion(constraint.trim())\n );\n}\n\nfunction handleShort(\n operator: string,\n currentValue: string,\n newVersion: string,\n): string | null {\n const toVersionMajor = getMajor(newVersion);\n const toVersionMinor = getMinor(newVersion);\n const split = currentValue.split('.');\n if (toVersionMajor !== null && split.length === 1) {\n // [^,~]4\n return `${operator}${toVersionMajor}`;\n }\n if (\n toVersionMajor !== null &&\n toVersionMinor !== null &&\n split.length === 2\n ) {\n // [^,~]4.1\n return `${operator}${toVersionMajor}.${toVersionMinor}`;\n }\n return null;\n}\n\nfunction getNewValue({\n currentValue,\n rangeStrategy,\n currentVersion,\n newVersion,\n}: NewValueConfig): string {\n if (rangeStrategy === 'replace') {\n const npmCurrentValue = poetry2npm(currentValue);\n try {\n const massagedNewVersion = poetry2semver(newVersion);\n if (\n massagedNewVersion &&\n isVersion(massagedNewVersion) &&\n npm.matches(massagedNewVersion, npmCurrentValue)\n ) {\n return currentValue;\n }\n } catch (err) /* istanbul ignore next */ {\n logger.info(\n { err },\n 'Poetry versioning: Error caught checking if newVersion satisfies currentValue',\n );\n }\n const parsedRange = parseRange(npmCurrentValue);\n const element = parsedRange.at(-1)!;\n if (parsedRange.length === 1 && element.operator) {\n if (element.operator === '^') {\n const version = handleShort('^', npmCurrentValue, newVersion);\n if (version) {\n return npm2poetry(version);\n }\n }\n if (element.operator === '~') {\n const version = handleShort('~', npmCurrentValue, newVersion);\n if (version) {\n return npm2poetry(version);\n }\n }\n }\n }\n\n // Explicitly check whether this is a fully-qualified version\n if (\n (VERSION_PATTERN.exec(newVersion)?.groups?.release ?? '').split('.')\n .length !== 3\n ) {\n logger.debug(\n 'Cannot massage python version to npm - returning currentValue',\n );\n return currentValue;\n }\n try {\n const currentSemverVersion =\n currentVersion && poetry2semver(currentVersion);\n\n const newSemverVersion = poetry2semver(newVersion);\n\n if (currentSemverVersion && newSemverVersion) {\n const newSemver = npm.getNewValue({\n currentValue: poetry2npm(currentValue),\n rangeStrategy,\n currentVersion: currentSemverVersion,\n newVersion: newSemverVersion,\n });\n const newPoetry = newSemver && npm2poetry(newSemver);\n if (newPoetry) {\n return newPoetry;\n }\n }\n } catch (err) /* istanbul ignore next */ {\n logger.debug(\n { currentValue, rangeStrategy, currentVersion, newVersion, err },\n 'Could not generate new value using npm.getNewValue()',\n );\n }\n\n // istanbul ignore next\n return currentValue;\n}\n\nfunction sortVersions(a: string, b: string): number {\n return pep440.sortVersions(a, b);\n}\n\nfunction subset(subRange: string, superRange: string): boolean | undefined {\n return npm.subset!(poetry2npm(subRange), poetry2npm(superRange));\n}\n\nexport const api: VersioningApi = {\n equals,\n getMajor,\n getMinor,\n getPatch,\n getNewValue,\n getSatisfyingVersion,\n isCompatible: isVersion,\n isGreaterThan,\n isLessThanRange,\n isSingleVersion,\n isStable,\n isValid,\n isVersion,\n matches,\n minSatisfyingVersion,\n sortVersions,\n subset,\n};\nexport default api;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["npm","pep440"],"sources":["../../../../lib/modules/versioning/poetry/index.ts"],"sourcesContent":["import { parseRange } from 'semver-utils';\nimport { logger } from '../../../logger/index.ts';\nimport type { RangeStrategy } from '../../../types/versioning.ts';\nimport { api as npm } from '../npm/index.ts';\nimport { api as pep440 } from '../pep440/index.ts';\nimport type { NewValueConfig, VersioningApi } from '../types.ts';\n\nimport { VERSION_PATTERN } from './patterns.ts';\nimport {\n npm2poetry,\n poetry2npm,\n poetry2semver,\n semver2poetry,\n} from './transform.ts';\n\nexport const id = 'poetry';\nexport const displayName = 'Poetry';\nexport const urls = [\n '[Poetry dependency specification](https://python-poetry.org/docs/dependency-specification/)',\n '[Poetry FAQ - Why does Poetry not adhere to semantic versioning?](https://python-poetry.org/docs/faq#why-does-poetry-not-adhere-to-semantic-versioning)',\n '[Poetry FAQ - Why does Poetry enforce PEP 440 versions?](https://python-poetry.org/docs/faq#why-does-poetry-enforce-pep-440-versions)',\n];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies: RangeStrategy[] = [\n 'bump',\n 'widen',\n 'replace',\n];\n\nfunction equals(a: string, b: string): boolean {\n const semverA = poetry2semver(a);\n const semverB = poetry2semver(b);\n return !!(semverA && semverB && npm.equals(semverA, semverB));\n}\n\nfunction getMajor(version: string): number | null {\n const semverVersion = poetry2semver(version);\n return semverVersion ? npm.getMajor(semverVersion) : null;\n}\n\nfunction getMinor(version: string): number | null {\n const semverVersion = poetry2semver(version);\n return semverVersion ? npm.getMinor(semverVersion) : null;\n}\n\nfunction getPatch(version: string): number | null {\n const semverVersion = poetry2semver(version);\n return semverVersion ? npm.getPatch(semverVersion) : null;\n}\n\nfunction isVersion(input: string): boolean {\n return VERSION_PATTERN.test(input);\n}\n\nfunction isGreaterThan(a: string, b: string): boolean {\n return !!(a && b && pep440.isGreaterThan(a, b));\n}\n\nfunction isLessThanRange(version: string, range: string): boolean {\n if (!isPoetryRange(range)) {\n return pep440.isLessThanRange!(version, range);\n }\n\n const semverVersion = poetry2semver(version);\n return !!(\n isVersion(version) &&\n semverVersion &&\n npm.isLessThanRange?.(semverVersion, poetry2npm(range))\n );\n}\n\n/**\n * Whether the input is a range poetry's own syntax can express, which is what the npm-based implementation here understands.\n */\nfunction isPoetryRange(input: string): boolean {\n try {\n return npm.isValid(poetry2npm(input, true));\n } catch {\n logger.once.debug(\n { version: input },\n 'Poetry version or range is not supported by current implementation',\n );\n return false;\n }\n}\n\nexport function isValid(input: string): boolean {\n if (!input) {\n return false;\n }\n\n // Poetry accepts every PEP 440 specifier, including the ones its own syntax cannot express, such as the exclusions in `>=2.6, !=3.0.*, <4`\n return isPoetryRange(input) || pep440.isValid(input);\n}\n\nfunction isStable(version: string): boolean {\n const semverVersion = poetry2semver(version);\n return !!(semverVersion && npm.isStable(semverVersion));\n}\n\nfunction matches(version: string, range: string): boolean {\n if (!isPoetryRange(range)) {\n return pep440.matches(version, range);\n }\n\n const semverVersion = poetry2semver(version);\n return !!(\n isVersion(version) &&\n semverVersion &&\n npm.matches(semverVersion, poetry2npm(range))\n );\n}\n\nfunction getSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n if (!isPoetryRange(range)) {\n return pep440.getSatisfyingVersion(versions, range);\n }\n\n const semverVersions: string[] = [];\n versions.forEach((version) => {\n const semverVersion = poetry2semver(version);\n if (semverVersion) {\n semverVersions.push(semverVersion);\n }\n });\n const npmRange = poetry2npm(range);\n const satisfyingVersion = npm.getSatisfyingVersion(semverVersions, npmRange);\n return satisfyingVersion ? semver2poetry(satisfyingVersion) : null;\n}\n\nfunction minSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n if (!isPoetryRange(range)) {\n return pep440.minSatisfyingVersion(versions, range);\n }\n\n const semverVersions: string[] = [];\n versions.forEach((version) => {\n const semverVersion = poetry2semver(version);\n if (semverVersion) {\n semverVersions.push(semverVersion);\n }\n });\n const npmRange = poetry2npm(range);\n const satisfyingVersion = npm.minSatisfyingVersion(semverVersions, npmRange);\n return satisfyingVersion ? semver2poetry(satisfyingVersion) : null;\n}\n\nfunction isSingleVersion(constraint: string): boolean {\n return (\n (constraint.trim().startsWith('=') &&\n isVersion(constraint.trim().substring(1).trim())) ||\n isVersion(constraint.trim())\n );\n}\n\nfunction handleShort(\n operator: string,\n currentValue: string,\n newVersion: string,\n): string | null {\n const toVersionMajor = getMajor(newVersion);\n const toVersionMinor = getMinor(newVersion);\n const split = currentValue.split('.');\n if (toVersionMajor !== null && split.length === 1) {\n // [^,~]4\n return `${operator}${toVersionMajor}`;\n }\n if (\n toVersionMajor !== null &&\n toVersionMinor !== null &&\n split.length === 2\n ) {\n // [^,~]4.1\n return `${operator}${toVersionMajor}.${toVersionMinor}`;\n }\n return null;\n}\n\nfunction getNewValue(config: NewValueConfig): string | null {\n const { currentValue, rangeStrategy, currentVersion, newVersion } = config;\n if (!isPoetryRange(currentValue)) {\n return pep440.getNewValue(config);\n }\n\n if (rangeStrategy === 'replace') {\n const npmCurrentValue = poetry2npm(currentValue);\n try {\n const massagedNewVersion = poetry2semver(newVersion);\n if (\n massagedNewVersion &&\n isVersion(massagedNewVersion) &&\n npm.matches(massagedNewVersion, npmCurrentValue)\n ) {\n return currentValue;\n }\n } catch (err) /* istanbul ignore next */ {\n logger.info(\n { err },\n 'Poetry versioning: Error caught checking if newVersion satisfies currentValue',\n );\n }\n const parsedRange = parseRange(npmCurrentValue);\n const element = parsedRange.at(-1)!;\n if (parsedRange.length === 1 && element.operator) {\n if (element.operator === '^') {\n const version = handleShort('^', npmCurrentValue, newVersion);\n if (version) {\n return npm2poetry(version);\n }\n }\n if (element.operator === '~') {\n const version = handleShort('~', npmCurrentValue, newVersion);\n if (version) {\n return npm2poetry(version);\n }\n }\n }\n }\n\n // Explicitly check whether this is a fully-qualified version\n if (\n (VERSION_PATTERN.exec(newVersion)?.groups?.release ?? '').split('.')\n .length !== 3\n ) {\n logger.debug(\n 'Cannot massage python version to npm - returning currentValue',\n );\n return currentValue;\n }\n try {\n const currentSemverVersion =\n currentVersion && poetry2semver(currentVersion);\n\n const newSemverVersion = poetry2semver(newVersion);\n\n if (currentSemverVersion && newSemverVersion) {\n const newSemver = npm.getNewValue({\n currentValue: poetry2npm(currentValue),\n rangeStrategy,\n currentVersion: currentSemverVersion,\n newVersion: newSemverVersion,\n });\n const newPoetry = newSemver && npm2poetry(newSemver);\n if (newPoetry) {\n return newPoetry;\n }\n }\n } catch (err) /* istanbul ignore next */ {\n logger.debug(\n { currentValue, rangeStrategy, currentVersion, newVersion, err },\n 'Could not generate new value using npm.getNewValue()',\n );\n }\n\n // istanbul ignore next\n return currentValue;\n}\n\nfunction sortVersions(a: string, b: string): number {\n return pep440.sortVersions(a, b);\n}\n\nfunction subset(subRange: string, superRange: string): boolean | undefined {\n if (!isPoetryRange(subRange) || !isPoetryRange(superRange)) {\n return undefined;\n }\n\n return npm.subset!(poetry2npm(subRange), poetry2npm(superRange));\n}\n\nexport const api: VersioningApi = {\n equals,\n getMajor,\n getMinor,\n getPatch,\n getNewValue,\n getSatisfyingVersion,\n isCompatible: isVersion,\n isGreaterThan,\n isLessThanRange,\n isSingleVersion,\n isStable,\n isValid,\n isVersion,\n matches,\n minSatisfyingVersion,\n sortVersions,\n subset,\n};\nexport default api;\n"],"mappings":"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"}
@@ -1,45 +1,16 @@
1
- import { api as api$1 } from "../pep440/index.js";
2
- import { api as api$2 } from "../poetry/index.js";
1
+ import { api as api$1 } from "../poetry/index.js";
3
2
  //#region lib/modules/versioning/python/index.ts
4
3
  const id = "python";
5
- function isLessThanRange(version, range) {
6
- return api$2.isValid(range) ? api$2.isLessThanRange(version, range) : api$1.isLessThanRange(version, range);
7
- }
8
- function isValid(input) {
9
- return api$2.isValid(input) || api$1.isValid(input);
10
- }
11
- function matches(version, range) {
12
- return api$2.isValid(range) ? api$2.matches(version, range) : api$1.matches(version, range);
13
- }
14
- function getSatisfyingVersion(versions, range) {
15
- return api$2.isValid(range) ? api$2.getSatisfyingVersion(versions, range) : api$1.getSatisfyingVersion(versions, range);
16
- }
17
- function minSatisfyingVersion(versions, range) {
18
- return api$2.isValid(range) ? api$2.minSatisfyingVersion(versions, range) : api$1.minSatisfyingVersion(versions, range);
19
- }
20
- function getNewValue(newValue) {
21
- return api$2.getNewValue(newValue);
22
- }
23
- function subset(subRange, superRange) {
24
- return api$2.isValid(subRange) && api$2.isValid(superRange) ? api$2.subset(subRange, superRange) : void 0;
25
- }
26
4
  function isBreaking(current, version) {
27
- const currentMajor = api$2.getMajor(current);
28
- const currentMinor = api$2.getMinor(current);
29
- const newMajor = api$2.getMajor(version);
30
- const newMinor = api$2.getMinor(version);
5
+ const currentMajor = api$1.getMajor(current);
6
+ const currentMinor = api$1.getMinor(current);
7
+ const newMajor = api$1.getMajor(version);
8
+ const newMinor = api$1.getMinor(version);
31
9
  return !(currentMajor === newMajor && currentMinor === newMinor);
32
10
  }
33
11
  const api = {
34
- ...api$2,
35
- getNewValue,
36
- getSatisfyingVersion,
37
- isBreaking,
38
- isLessThanRange,
39
- isValid,
40
- matches,
41
- minSatisfyingVersion,
42
- subset
12
+ ...api$1,
13
+ isBreaking
43
14
  };
44
15
  //#endregion
45
16
  export { api, api as default, id, isBreaking };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["poetry","pep440"],"sources":["../../../../lib/modules/versioning/python/index.ts"],"sourcesContent":["import { api as pep440 } from '../pep440/index.ts';\nimport { api as poetry } from '../poetry/index.ts';\nimport type { NewValueConfig, VersioningApi } from '../types.ts';\n\nexport const id = 'python';\nexport const displayName = 'Python';\nexport const urls = [];\nexport const supportsRanges = false;\n\nfunction isLessThanRange(version: string, range: string): boolean {\n return poetry.isValid(range)\n ? poetry.isLessThanRange!(version, range)\n : pep440.isLessThanRange!(version, range);\n}\n\nfunction isValid(input: string): boolean {\n return poetry.isValid(input) || pep440.isValid(input);\n}\n\nfunction matches(version: string, range: string): boolean {\n return poetry.isValid(range)\n ? poetry.matches(version, range)\n : pep440.matches(version, range);\n}\n\nfunction getSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n return poetry.isValid(range)\n ? poetry.getSatisfyingVersion(versions, range)\n : pep440.getSatisfyingVersion(versions, range);\n}\n\nfunction minSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n return poetry.isValid(range)\n ? poetry.minSatisfyingVersion(versions, range)\n : pep440.minSatisfyingVersion(versions, range);\n}\n\nfunction getNewValue(newValue: NewValueConfig): string | null {\n return poetry.getNewValue(newValue);\n}\n\nfunction subset(subRange: string, superRange: string): boolean | undefined {\n return poetry.isValid(subRange) && poetry.isValid(superRange)\n ? poetry.subset!(subRange, superRange)\n : undefined;\n}\n\nexport function isBreaking(current: string, version: string): boolean {\n const currentMajor = poetry.getMajor(current);\n const currentMinor = poetry.getMinor(current);\n const newMajor = poetry.getMajor(version);\n const newMinor = poetry.getMinor(version);\n return !(currentMajor === newMajor && currentMinor === newMinor);\n}\n\nexport const api: VersioningApi = {\n ...poetry,\n getNewValue,\n getSatisfyingVersion,\n isBreaking,\n isLessThanRange,\n isValid,\n matches,\n minSatisfyingVersion,\n subset,\n};\nexport default api;\n"],"mappings":";;;AAIA,MAAa,KAAK;AAKlB,SAAS,gBAAgB,SAAiB,OAAwB;CAChE,OAAOA,MAAO,QAAQ,KAAK,IACvBA,MAAO,gBAAiB,SAAS,KAAK,IACtCC,MAAO,gBAAiB,SAAS,KAAK;AAC5C;AAEA,SAAS,QAAQ,OAAwB;CACvC,OAAOD,MAAO,QAAQ,KAAK,KAAKC,MAAO,QAAQ,KAAK;AACtD;AAEA,SAAS,QAAQ,SAAiB,OAAwB;CACxD,OAAOD,MAAO,QAAQ,KAAK,IACvBA,MAAO,QAAQ,SAAS,KAAK,IAC7BC,MAAO,QAAQ,SAAS,KAAK;AACnC;AAEA,SAAS,qBACP,UACA,OACe;CACf,OAAOD,MAAO,QAAQ,KAAK,IACvBA,MAAO,qBAAqB,UAAU,KAAK,IAC3CC,MAAO,qBAAqB,UAAU,KAAK;AACjD;AAEA,SAAS,qBACP,UACA,OACe;CACf,OAAOD,MAAO,QAAQ,KAAK,IACvBA,MAAO,qBAAqB,UAAU,KAAK,IAC3CC,MAAO,qBAAqB,UAAU,KAAK;AACjD;AAEA,SAAS,YAAY,UAAyC;CAC5D,OAAOD,MAAO,YAAY,QAAQ;AACpC;AAEA,SAAS,OAAO,UAAkB,YAAyC;CACzE,OAAOA,MAAO,QAAQ,QAAQ,KAAKA,MAAO,QAAQ,UAAU,IACxDA,MAAO,OAAQ,UAAU,UAAU,IACnC,KAAA;AACN;AAEA,SAAgB,WAAW,SAAiB,SAA0B;CACpE,MAAM,eAAeA,MAAO,SAAS,OAAO;CAC5C,MAAM,eAAeA,MAAO,SAAS,OAAO;CAC5C,MAAM,WAAWA,MAAO,SAAS,OAAO;CACxC,MAAM,WAAWA,MAAO,SAAS,OAAO;CACxC,OAAO,EAAE,iBAAiB,YAAY,iBAAiB;AACzD;AAEA,MAAa,MAAqB;CAChC,GAAGA;CACH;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF"}
1
+ {"version":3,"file":"index.js","names":["poetry"],"sources":["../../../../lib/modules/versioning/python/index.ts"],"sourcesContent":["import { api as poetry } from '../poetry/index.ts';\nimport type { VersioningApi } from '../types.ts';\n\nexport const id = 'python';\nexport const displayName = 'Python';\nexport const urls = [];\nexport const supportsRanges = false;\n\nexport function isBreaking(current: string, version: string): boolean {\n const currentMajor = poetry.getMajor(current);\n const currentMinor = poetry.getMinor(current);\n const newMajor = poetry.getMajor(version);\n const newMinor = poetry.getMinor(version);\n return !(currentMajor === newMajor && currentMinor === newMinor);\n}\n\nexport const api: VersioningApi = {\n ...poetry,\n isBreaking,\n};\nexport default api;\n"],"mappings":";;AAGA,MAAa,KAAK;AAKlB,SAAgB,WAAW,SAAiB,SAA0B;CACpE,MAAM,eAAeA,MAAO,SAAS,OAAO;CAC5C,MAAM,eAAeA,MAAO,SAAS,OAAO;CAC5C,MAAM,WAAWA,MAAO,SAAS,OAAO;CACxC,MAAM,WAAWA,MAAO,SAAS,OAAO;CACxC,OAAO,EAAE,iBAAiB,YAAY,iBAAiB;AACzD;AAEA,MAAa,MAAqB;CAChC,GAAGA;CACH;AACF"}
@@ -1,5 +1,5 @@
1
1
  //#region lib/versioning-list.generated.d.ts
2
- export declare const AllVersioningsListLiteral: readonly ["apk", "aws-eks-addon", "aws-machine-image", "azure-rest-api", "bazel-module", "cargo", "composer", "conan", "conda", "deb", "debian", "deno", "devbox", "docker", "elm", "exact", "git", "github-actions", "glasskube", "go-mod-directive", "gradle", "hashicorp", "helm", "hermit", "hex", "ivy", "kubernetes-api", "lambda-node", "loose", "maven", "nixpkgs", "node", "npm", "nuget", "paket", "pep440", "perl", "poetry", "pvp", "python", "redhat", "regex", "rez", "rpm", "ruby", "rust-release-channel", "same-major", "semver", "semver-coerced", "semver-partial", "swift", "ubuntu", "unity3d", "unity3d-packages"];
2
+ export declare const AllVersioningsListLiteral: readonly ["apk", "aws-eks-addon", "aws-machine-image", "azure-rest-api", "bazel-module", "cargo", "composer", "conan", "conda", "deb", "debian", "deno", "devbox", "docker", "elm", "exact", "git", "github-actions", "glasskube", "go-mod-directive", "gomod", "gradle", "hashicorp", "helm", "hermit", "hex", "ivy", "kubernetes-api", "lambda-node", "loose", "maven", "nixpkgs", "node", "npm", "nuget", "paket", "pep440", "perl", "poetry", "pvp", "python", "redhat", "regex", "rez", "rpm", "ruby", "rust-release-channel", "same-major", "semver", "semver-coerced", "semver-partial", "swift", "ubuntu", "unity3d", "unity3d-packages"];
3
3
  export type VersioningName = typeof AllVersioningsListLiteral[number];
4
4
  //#endregion
5
5
  //# sourceMappingURL=versioning-list.generated.d.ts.map
@@ -20,6 +20,7 @@ const AllVersioningsListLiteral = [
20
20
  "github-actions",
21
21
  "glasskube",
22
22
  "go-mod-directive",
23
+ "gomod",
23
24
  "gradle",
24
25
  "hashicorp",
25
26
  "helm",
@@ -1 +1 @@
1
- {"version":3,"file":"versioning-list.generated.js","names":[],"sources":["../lib/versioning-list.generated.ts"],"sourcesContent":["\nexport const AllVersioningsListLiteral = [\"apk\",\"aws-eks-addon\",\"aws-machine-image\",\"azure-rest-api\",\"bazel-module\",\"cargo\",\"composer\",\"conan\",\"conda\",\"deb\",\"debian\",\"deno\",\"devbox\",\"docker\",\"elm\",\"exact\",\"git\",\"github-actions\",\"glasskube\",\"go-mod-directive\",\"gradle\",\"hashicorp\",\"helm\",\"hermit\",\"hex\",\"ivy\",\"kubernetes-api\",\"lambda-node\",\"loose\",\"maven\",\"nixpkgs\",\"node\",\"npm\",\"nuget\",\"paket\",\"pep440\",\"perl\",\"poetry\",\"pvp\",\"python\",\"redhat\",\"regex\",\"rez\",\"rpm\",\"ruby\",\"rust-release-channel\",\"same-major\",\"semver\",\"semver-coerced\",\"semver-partial\",\"swift\",\"ubuntu\",\"unity3d\",\"unity3d-packages\"] as const;\nexport type VersioningName = typeof AllVersioningsListLiteral[number];\n"],"mappings":";AACA,MAAa,4BAA4B;CAAC;CAAM;CAAgB;CAAoB;CAAiB;CAAe;CAAQ;CAAW;CAAQ;CAAQ;CAAM;CAAS;CAAO;CAAS;CAAS;CAAM;CAAQ;CAAM;CAAiB;CAAY;CAAmB;CAAS;CAAY;CAAO;CAAS;CAAM;CAAM;CAAiB;CAAc;CAAQ;CAAQ;CAAU;CAAO;CAAM;CAAQ;CAAQ;CAAS;CAAO;CAAS;CAAM;CAAS;CAAS;CAAQ;CAAM;CAAM;CAAO;CAAuB;CAAa;CAAS;CAAiB;CAAiB;CAAQ;CAAS;CAAU;AAAkB"}
1
+ {"version":3,"file":"versioning-list.generated.js","names":[],"sources":["../lib/versioning-list.generated.ts"],"sourcesContent":["\nexport const AllVersioningsListLiteral = [\"apk\",\"aws-eks-addon\",\"aws-machine-image\",\"azure-rest-api\",\"bazel-module\",\"cargo\",\"composer\",\"conan\",\"conda\",\"deb\",\"debian\",\"deno\",\"devbox\",\"docker\",\"elm\",\"exact\",\"git\",\"github-actions\",\"glasskube\",\"go-mod-directive\",\"gomod\",\"gradle\",\"hashicorp\",\"helm\",\"hermit\",\"hex\",\"ivy\",\"kubernetes-api\",\"lambda-node\",\"loose\",\"maven\",\"nixpkgs\",\"node\",\"npm\",\"nuget\",\"paket\",\"pep440\",\"perl\",\"poetry\",\"pvp\",\"python\",\"redhat\",\"regex\",\"rez\",\"rpm\",\"ruby\",\"rust-release-channel\",\"same-major\",\"semver\",\"semver-coerced\",\"semver-partial\",\"swift\",\"ubuntu\",\"unity3d\",\"unity3d-packages\"] as const;\nexport type VersioningName = typeof AllVersioningsListLiteral[number];\n"],"mappings":";AACA,MAAa,4BAA4B;CAAC;CAAM;CAAgB;CAAoB;CAAiB;CAAe;CAAQ;CAAW;CAAQ;CAAQ;CAAM;CAAS;CAAO;CAAS;CAAS;CAAM;CAAQ;CAAM;CAAiB;CAAY;CAAmB;CAAQ;CAAS;CAAY;CAAO;CAAS;CAAM;CAAM;CAAiB;CAAc;CAAQ;CAAQ;CAAU;CAAO;CAAM;CAAQ;CAAQ;CAAS;CAAO;CAAS;CAAM;CAAS;CAAS;CAAQ;CAAM;CAAM;CAAO;CAAuB;CAAa;CAAS;CAAiB;CAAiB;CAAQ;CAAS;CAAU;AAAkB"}
@@ -2,9 +2,6 @@ import { CONFIG_VALIDATION } from "../../../../constants/error-messages.js";
2
2
  import { getRegexPredicate } from "../../../../util/string-match.js";
3
3
  import { logger } from "../../../../logger/index.js";
4
4
  import { compile } from "../../../../util/template/index.js";
5
- import "../../../../modules/versioning/npm/index.js";
6
- import { isValid, matches } from "../../../../modules/versioning/pep440/index.js";
7
- import "../../../../modules/versioning/poetry/index.js";
8
5
  import semver from "semver";
9
6
  //#region lib/workers/repository/process/lookup/filter.ts
10
7
  function isReleaseStable(release, versioningApi) {
@@ -57,16 +54,13 @@ function filterVersions(config, currentVersion, latestVersion, releases, version
57
54
  const isAllowedPred = getRegexPredicate(allowedVersions);
58
55
  if (isAllowedPred) filteredReleases = filteredReleases.filter(({ version }) => isAllowedPred(version));
59
56
  else if (versioningApi.isValid(allowedVersions)) filteredReleases = filteredReleases.filter((r) => versioningApi.matches(r.version, allowedVersions));
60
- else if (config.versioning !== "npm" && semver.validRange(allowedVersions)) {
57
+ else if (semver.validRange(allowedVersions)) {
61
58
  logger.debug({ depName: config.depName }, "Falling back to npm semver syntax for allowedVersions");
62
59
  filteredReleases = filteredReleases.filter((r) => semver.satisfies(
63
60
  semver.valid(r.version) ? r.version : /* v8 ignore start: only for a version the configured versioning accepts but semver cannot parse, e.g. a four-part docker tag, see #40625 */ semver.coerce(r.version),
64
61
  /* v8 ignore stop */
65
62
  allowedVersions
66
63
  ));
67
- } else if (config.versioning === "poetry" && isValid(allowedVersions)) {
68
- logger.debug({ depName: config.depName }, "Falling back to pypi syntax for allowedVersions");
69
- filteredReleases = filteredReleases.filter((r) => matches(r.version, allowedVersions));
70
64
  } else {
71
65
  const error = new Error(CONFIG_VALIDATION);
72
66
  error.validationSource = "config";
@@ -1 +1 @@
1
- {"version":3,"file":"filter.js","names":["template.compile","pep440.isValid","pep440.matches"],"sources":["../../../../../lib/workers/repository/process/lookup/filter.ts"],"sourcesContent":["import semver from 'semver';\nimport { CONFIG_VALIDATION } from '../../../../constants/error-messages.ts';\nimport { logger } from '../../../../logger/index.ts';\nimport type { Release } from '../../../../modules/datasource/types.ts';\nimport type { VersioningApi } from '../../../../modules/versioning/index.ts';\nimport * as npmVersioning from '../../../../modules/versioning/npm/index.ts';\nimport * as pep440 from '../../../../modules/versioning/pep440/index.ts';\nimport * as poetryVersioning from '../../../../modules/versioning/poetry/index.ts';\nimport { getRegexPredicate } from '../../../../util/string-match.ts';\nimport * as template from '../../../../util/template/index.ts';\nimport type { FilterConfig } from './types.ts';\n\nfunction isReleaseStable(\n release: Release,\n versioningApi: VersioningApi,\n): boolean {\n if (!versioningApi.isStable(release.version)) {\n return false;\n }\n\n if (release.isStable === false) {\n return false;\n }\n\n return true;\n}\n\nfunction filterByMaxMajorIncrement(\n releases: Release[],\n currentVersion: string,\n maxMajorIncrement: number,\n versioningApi: VersioningApi,\n depName: string,\n): Release[] {\n const currentMajor = versioningApi.getMajor(currentVersion);\n /* v8 ignore next -- shouldn't happen */\n if (currentMajor === null) {\n return releases;\n }\n return releases.filter((r) => {\n const releaseMajor = versioningApi.getMajor(r.version);\n /* v8 ignore next -- shouldn't happen */\n if (releaseMajor === null) {\n return true;\n }\n const majorIncrement = releaseMajor - currentMajor;\n if (majorIncrement > maxMajorIncrement) {\n logger.once.debug(\n `Skipping ${depName}@${r.version} because major increment ${majorIncrement} exceeds maxMajorIncrement ${maxMajorIncrement}`,\n );\n return false;\n }\n return true;\n });\n}\n\nexport function filterVersions(\n config: FilterConfig,\n currentVersion: string,\n latestVersion: string,\n releases: Release[],\n versioningApi: VersioningApi,\n): Release[] {\n const { ignoreUnstable, ignoreDeprecated, respectLatest, maxMajorIncrement } =\n config;\n\n /* v8 ignore next -- shouldn't happen */\n if (!currentVersion) {\n return [];\n }\n\n // Leave only versions greater than current\n const versionedReleases = releases.filter((r) =>\n versioningApi.isVersion(r.version),\n );\n let filteredReleases = versionedReleases.filter((r) =>\n versioningApi.isGreaterThan(r.version, currentVersion),\n );\n\n const currentRelease = versioningApi.isVersion(currentVersion)\n ? versionedReleases.find((r) =>\n versioningApi.equals(r.version, currentVersion),\n )\n : undefined;\n\n // Don't upgrade from non-deprecated to deprecated\n if (ignoreDeprecated && currentRelease && !currentRelease.isDeprecated) {\n filteredReleases = filteredReleases.filter((r) => {\n if (r.isDeprecated) {\n logger.trace(\n `Skipping ${config.depName!}@${r.version} because it is deprecated`,\n );\n return false;\n }\n return true;\n });\n }\n\n if (maxMajorIncrement && maxMajorIncrement > 0) {\n filteredReleases = filterByMaxMajorIncrement(\n filteredReleases,\n currentVersion,\n maxMajorIncrement,\n versioningApi,\n config.depName!,\n );\n }\n\n const currentMajor = versioningApi.getMajor(currentVersion);\n const currentMinor = versioningApi.getMinor(currentVersion);\n const currentPatch = versioningApi.getPatch(currentVersion);\n\n if (config.allowedVersions) {\n const input = {\n currentVersion,\n major: currentMajor,\n minor: currentMinor,\n patch: currentPatch,\n };\n const allowedVersions = template.compile(config.allowedVersions, input);\n const isAllowedPred = getRegexPredicate(allowedVersions);\n if (isAllowedPred) {\n filteredReleases = filteredReleases.filter(({ version }) =>\n isAllowedPred(version),\n );\n } else if (versioningApi.isValid(allowedVersions)) {\n filteredReleases = filteredReleases.filter((r) =>\n versioningApi.matches(r.version, allowedVersions),\n );\n } else if (\n config.versioning !== npmVersioning.id &&\n semver.validRange(allowedVersions)\n ) {\n logger.debug(\n { depName: config.depName },\n 'Falling back to npm semver syntax for allowedVersions',\n );\n filteredReleases = filteredReleases.filter((r) =>\n semver.satisfies(\n semver.valid(r.version)\n ? r.version\n : /* v8 ignore start: only for a version the configured versioning accepts but semver cannot parse, e.g. a four-part docker tag, see #40625 */ semver.coerce(\n r.version,\n )!,\n /* v8 ignore stop */\n allowedVersions,\n ),\n );\n } else if (\n config.versioning === poetryVersioning.id &&\n pep440.isValid(allowedVersions)\n ) {\n logger.debug(\n { depName: config.depName },\n 'Falling back to pypi syntax for allowedVersions',\n );\n filteredReleases = filteredReleases.filter((r) =>\n pep440.matches(r.version, allowedVersions),\n );\n } else {\n const error = new Error(CONFIG_VALIDATION);\n error.validationSource = 'config';\n error.validationError = 'Invalid `allowedVersions`';\n error.validationMessage = `The following allowedVersions does not parse as a valid version or range with versioning=${JSON.stringify(config.versioning)}: ${JSON.stringify(allowedVersions)}`;\n throw error;\n }\n }\n\n if (config.followTag) {\n return filteredReleases;\n }\n\n if (\n respectLatest &&\n latestVersion &&\n !versioningApi.isGreaterThan(currentVersion, latestVersion)\n ) {\n filteredReleases = filteredReleases.filter(\n (r) => !versioningApi.isGreaterThan(r.version, latestVersion),\n );\n }\n\n if (!ignoreUnstable) {\n return filteredReleases;\n }\n\n if (currentRelease && isReleaseStable(currentRelease, versioningApi)) {\n return filteredReleases.filter((r) => isReleaseStable(r, versioningApi));\n }\n\n return filteredReleases.filter((r) => {\n if (isReleaseStable(r, versioningApi)) {\n return true;\n }\n\n const major = versioningApi.getMajor(r.version);\n\n if (major !== currentMajor) {\n return false;\n }\n\n if (versioningApi.allowUnstableMajorUpgrades) {\n return true;\n }\n\n const minor = versioningApi.getMinor(r.version);\n const patch = versioningApi.getPatch(r.version);\n\n return minor === currentMinor && patch === currentPatch;\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"filter.js","names":["template.compile"],"sources":["../../../../../lib/workers/repository/process/lookup/filter.ts"],"sourcesContent":["import semver from 'semver';\nimport { CONFIG_VALIDATION } from '../../../../constants/error-messages.ts';\nimport { logger } from '../../../../logger/index.ts';\nimport type { Release } from '../../../../modules/datasource/types.ts';\nimport type { VersioningApi } from '../../../../modules/versioning/index.ts';\nimport { getRegexPredicate } from '../../../../util/string-match.ts';\nimport * as template from '../../../../util/template/index.ts';\nimport type { FilterConfig } from './types.ts';\n\nfunction isReleaseStable(\n release: Release,\n versioningApi: VersioningApi,\n): boolean {\n if (!versioningApi.isStable(release.version)) {\n return false;\n }\n\n if (release.isStable === false) {\n return false;\n }\n\n return true;\n}\n\nfunction filterByMaxMajorIncrement(\n releases: Release[],\n currentVersion: string,\n maxMajorIncrement: number,\n versioningApi: VersioningApi,\n depName: string,\n): Release[] {\n const currentMajor = versioningApi.getMajor(currentVersion);\n /* v8 ignore next -- shouldn't happen */\n if (currentMajor === null) {\n return releases;\n }\n return releases.filter((r) => {\n const releaseMajor = versioningApi.getMajor(r.version);\n /* v8 ignore next -- shouldn't happen */\n if (releaseMajor === null) {\n return true;\n }\n const majorIncrement = releaseMajor - currentMajor;\n if (majorIncrement > maxMajorIncrement) {\n logger.once.debug(\n `Skipping ${depName}@${r.version} because major increment ${majorIncrement} exceeds maxMajorIncrement ${maxMajorIncrement}`,\n );\n return false;\n }\n return true;\n });\n}\n\nexport function filterVersions(\n config: FilterConfig,\n currentVersion: string,\n latestVersion: string,\n releases: Release[],\n versioningApi: VersioningApi,\n): Release[] {\n const { ignoreUnstable, ignoreDeprecated, respectLatest, maxMajorIncrement } =\n config;\n\n /* v8 ignore next -- shouldn't happen */\n if (!currentVersion) {\n return [];\n }\n\n // Leave only versions greater than current\n const versionedReleases = releases.filter((r) =>\n versioningApi.isVersion(r.version),\n );\n let filteredReleases = versionedReleases.filter((r) =>\n versioningApi.isGreaterThan(r.version, currentVersion),\n );\n\n const currentRelease = versioningApi.isVersion(currentVersion)\n ? versionedReleases.find((r) =>\n versioningApi.equals(r.version, currentVersion),\n )\n : undefined;\n\n // Don't upgrade from non-deprecated to deprecated\n if (ignoreDeprecated && currentRelease && !currentRelease.isDeprecated) {\n filteredReleases = filteredReleases.filter((r) => {\n if (r.isDeprecated) {\n logger.trace(\n `Skipping ${config.depName!}@${r.version} because it is deprecated`,\n );\n return false;\n }\n return true;\n });\n }\n\n if (maxMajorIncrement && maxMajorIncrement > 0) {\n filteredReleases = filterByMaxMajorIncrement(\n filteredReleases,\n currentVersion,\n maxMajorIncrement,\n versioningApi,\n config.depName!,\n );\n }\n\n const currentMajor = versioningApi.getMajor(currentVersion);\n const currentMinor = versioningApi.getMinor(currentVersion);\n const currentPatch = versioningApi.getPatch(currentVersion);\n\n if (config.allowedVersions) {\n const input = {\n currentVersion,\n major: currentMajor,\n minor: currentMinor,\n patch: currentPatch,\n };\n const allowedVersions = template.compile(config.allowedVersions, input);\n const isAllowedPred = getRegexPredicate(allowedVersions);\n if (isAllowedPred) {\n filteredReleases = filteredReleases.filter(({ version }) =>\n isAllowedPred(version),\n );\n } else if (versioningApi.isValid(allowedVersions)) {\n filteredReleases = filteredReleases.filter((r) =>\n versioningApi.matches(r.version, allowedVersions),\n );\n } else if (semver.validRange(allowedVersions)) {\n logger.debug(\n { depName: config.depName },\n 'Falling back to npm semver syntax for allowedVersions',\n );\n filteredReleases = filteredReleases.filter((r) =>\n semver.satisfies(\n semver.valid(r.version)\n ? r.version\n : /* v8 ignore start: only for a version the configured versioning accepts but semver cannot parse, e.g. a four-part docker tag, see #40625 */ semver.coerce(\n r.version,\n )!,\n /* v8 ignore stop */\n allowedVersions,\n ),\n );\n } else {\n const error = new Error(CONFIG_VALIDATION);\n error.validationSource = 'config';\n error.validationError = 'Invalid `allowedVersions`';\n error.validationMessage = `The following allowedVersions does not parse as a valid version or range with versioning=${JSON.stringify(config.versioning)}: ${JSON.stringify(allowedVersions)}`;\n throw error;\n }\n }\n\n if (config.followTag) {\n return filteredReleases;\n }\n\n if (\n respectLatest &&\n latestVersion &&\n !versioningApi.isGreaterThan(currentVersion, latestVersion)\n ) {\n filteredReleases = filteredReleases.filter(\n (r) => !versioningApi.isGreaterThan(r.version, latestVersion),\n );\n }\n\n if (!ignoreUnstable) {\n return filteredReleases;\n }\n\n if (currentRelease && isReleaseStable(currentRelease, versioningApi)) {\n return filteredReleases.filter((r) => isReleaseStable(r, versioningApi));\n }\n\n return filteredReleases.filter((r) => {\n if (isReleaseStable(r, versioningApi)) {\n return true;\n }\n\n const major = versioningApi.getMajor(r.version);\n\n if (major !== currentMajor) {\n return false;\n }\n\n if (versioningApi.allowUnstableMajorUpgrades) {\n return true;\n }\n\n const minor = versioningApi.getMinor(r.version);\n const patch = versioningApi.getPatch(r.version);\n\n return minor === currentMinor && patch === currentPatch;\n });\n}\n"],"mappings":"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"}
@@ -4,7 +4,7 @@ import { safeStringify } from "../../../../util/stringify.js";
4
4
  import { logger } from "../../../../logger/index.js";
5
5
  import { mergeChildConfig } from "../../../../config/utils.js";
6
6
  import { ExternalHostError } from "../../../../types/errors/external-host-error.js";
7
- import "../../../../modules/versioning/docker/index.js";
7
+ import { isPseudoVersion } from "../../../../modules/versioning/gomod/index.js";
8
8
  import { get } from "../../../../modules/versioning/index.js";
9
9
  import { Result } from "../../../../util/result.js";
10
10
  import { assignKeys } from "../../../../util/assign-keys.js";
@@ -203,7 +203,7 @@ async function lookupUpdates(inconfig) {
203
203
  if (!release) return Result.ok(res);
204
204
  const newVersion = release.version;
205
205
  const update = await generateUpdate(config, config.isLockfileOnly ? config.currentValue : compareValue, versioningApi, rangeStrategy, config.lockedVersion ?? currentVersion, bucket, release, allReleaseVersions);
206
- if (config.manager === "gomod" && compareValue?.startsWith("v0.0.0-") && update.newValue?.startsWith("v0.0.0-") && config.currentDigest !== update.newDigest) {
206
+ if (config.manager === "gomod" && isPseudoVersion(compareValue) && isPseudoVersion(update.newValue) && config.currentDigest !== update.newDigest) {
207
207
  update.updateType = "digest";
208
208
  await applyMinimumReleaseAgeToDigestUpdate(update, config, res, true, release.releaseTimestamp);
209
209
  }
@@ -224,8 +224,7 @@ async function lookupUpdates(inconfig) {
224
224
  res.isSingleVersion = true;
225
225
  }
226
226
  res.isSingleVersion ??= isString(update.newValue) && versioningApi.isSingleVersion(update.newValue);
227
- // istanbul ignore if
228
- if (config.versioning === "docker" && update.updateType !== "rollback" && update.newValue && versioningApi.isVersion(update.newValue) && compareValue && versioningApi.isVersion(compareValue) && versioningApi.isGreaterThan(compareValue, update.newValue)) logger.warn({
227
+ if (update.updateType !== "rollback" && update.newValue && versioningApi.isVersion(update.newValue) && compareValue && versioningApi.isVersion(compareValue) && versioningApi.isGreaterThan(compareValue, update.newValue)) logger.warn({
229
228
  packageName: config.packageName,
230
229
  currentValue: config.currentValue,
231
230
  compareValue,
@@ -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 Release,\n ReleaseResult,\n} from '../../../../modules/datasource/index.ts';\nimport {\n applyDatasourceFilters,\n getRawPkgReleases,\n isGetPkgReleasesConfig,\n supportsDigests,\n} from '../../../../modules/datasource/index.ts';\nimport { postprocessRelease } from '../../../../modules/datasource/postprocess-release.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 { safeStringify } from '../../../../util/stringify.ts';\nimport type { Timestamp } from '../../../../util/timestamp.ts';\nimport { calculateAbandonment } from './abandonment.ts';\nimport { groupReleasesIntoBuckets } from './bucket.ts';\nimport { getNewestMatchingVersion, resolveCurrentVersion } from './current.ts';\nimport type { DigestLikeUpdate } from './digest.ts';\nimport {\n applyMinimumReleaseAgeToDigestUpdate,\n couldApplyMinimumReleaseAgeToDigest,\n resolveUpdateDigests,\n} from './digest.ts';\nimport { filterVersions } from './filter.ts';\nimport { filterInternalChecks } from './filter-checks.ts';\nimport { generateUpdate } from './generate.ts';\nimport { resolveRangeStrategy } from './range-strategy.ts';\nimport { getRollbackUpdate } from './rollback.ts';\nimport { calculateMostRecentTimestamp } from './timestamps.ts';\nimport type { LookupUpdateConfig, UpdateResult } from './types.ts';\nimport {\n addReplacementUpdateIfValid,\n isReplacementRulesConfigured,\n stripNoopUpdates,\n} from './utils.ts';\nimport {\n matchVersionCompatibility,\n restoreVersionCompatibility,\n} from './version-compatibility.ts';\nimport { applyVulnerabilityFixFilter } from './vulnerability.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>> {\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 // Timestamp of the release a `digest`/`pinDigest` update's current value currently resolves to (the newest version matching it, regardless of `rangeStrategy`), as opposed to `res.currentVersionTimestamp` which tracks whatever the configured rangeStrategy resolves `currentVersion` to (e.g. the oldest for `bump`)\n let newestMatchingVersionTimestamp: Timestamp | null | undefined;\n // The `digest` update for `config.currentDigest` (if one is added), so its age check can run after `newDigest` is fetched and no-op updates are stripped.\n let digestUpdate: DigestLikeUpdate | undefined;\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 logger.debug(\n `Invalid currentValue for ${config.packageName}: ${safeStringify(config.currentValue)} (${typeof config.currentValue})`,\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 =\n config.isLockfileOnly && config.lockedVersion\n ? config.lockedVersion\n : config.currentValue;\n const versionCompatibilityMatch = matchVersionCompatibility(config);\n if (versionCompatibilityMatch) {\n compareValue = versionCompatibilityMatch.compareValue;\n config.currentCompatibility =\n versionCompatibilityMatch.currentCompatibility;\n res.currentCompatibility = versionCompatibilityMatch.currentCompatibility;\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 !config.isLockfileOnly &&\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 // The datasources used in these tests always return at least one\n // version-like release, so neither this block nor the currentDigest\n // check inside it is reached. A lookup whose releases are all\n // unversioned tags does not get here either - with a digest configured\n // it takes the digest-only path above instead - see #40625\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 = resolveRangeStrategy(config);\n\n const currentVersion = resolveCurrentVersion(\n compareValue,\n config.lockedVersion,\n versioningApi,\n rangeStrategy,\n latestVersion,\n allVersions,\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\n // Use lockedVersion for the timestamp lookup when available, because\n // res.currentVersion is later overwritten to lockedVersion (see below).\n // Without this, strategies like \"replace\" would compute the timestamp\n // for the highest satisfying version (e.g. 1.4.1) while the reported\n // currentVersion ends up being the locked one (e.g. 1.0.0).\n const versionForTimestamp = config.lockedVersion ?? currentVersion;\n const currentVersionTimestamp = await getTimestamp(\n config,\n allVersions,\n versionForTimestamp,\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 config.currentDigest\n ? couldApplyMinimumReleaseAgeToDigest(config, 'digest')\n : config.pinDigests &&\n couldApplyMinimumReleaseAgeToDigest(config, 'pinDigest')\n ) {\n const newestMatchingVersion = getNewestMatchingVersion(\n compareValue,\n versioningApi,\n latestVersion,\n allVersions,\n );\n if (newestMatchingVersion) {\n newestMatchingVersionTimestamp = await getTimestamp(\n config,\n allVersions,\n newestMatchingVersion,\n versioningApi,\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 // A non-version can only get this far via a locked version under\n // rangeStrategy=pin, but the timestamp lookup above calls `equals()` on\n // it first and throws - see #40625\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((v) => {\n if (config.isLockfileOnly) {\n return true;\n }\n\n // Leave only compatible versions\n return (\n unconstrainedValue ||\n versioningApi.isCompatible(v.version, compareValue)\n );\n });\n const vulnerabilityFix = applyVulnerabilityFixFilter(\n config,\n res,\n versioningApi,\n filteredReleases,\n );\n filteredReleases = vulnerabilityFix.releases;\n const { shrinkedViaVulnerability } = vulnerabilityFix;\n\n const buckets = groupReleasesIntoBuckets(\n config,\n currentVersion,\n filteredReleases,\n versioningApi,\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 // `filterInternalChecks()` normally yields a release, falling back to\n // the newest pending one; only a datasource rejecting every candidate\n // during postprocessing leaves none - see #40625\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 config.isLockfileOnly ? config.currentValue : 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 // As this has already been processed by `filterInternalChecks()`, but we're changing the `updateType`, we need to apply the digest-scoped minimumReleaseAge rules.\n // `currentVersionWasResolved` only matters for `pinDigest`, which `update.updateType` never is here - true is a safe constant.\n await applyMinimumReleaseAgeToDigestUpdate(\n update as DigestLikeUpdate,\n config,\n res,\n true,\n release.releaseTimestamp,\n );\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 // Guards against a docker downgrade, which the datasources used in\n // these tests never produce - see #40625\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 restoreVersionCompatibility(config, compareValue, res.updates);\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 - age-checked after the strip below, once newDigest is known\n digestUpdate = {\n updateType: 'digest',\n newValue: config.currentValue,\n };\n res.updates.push(digestUpdate);\n }\n } else if (\n config.pinDigests &&\n // only update the digest in the package file if it's managed by us\n !config.digestManagedExternally &&\n // Create a pin only if one doesn't already exists\n // v8 ignore else -- TODO: add test #40625\n !res.updates.some((update) => update.updateType === 'pin')\n ) {\n // pin digest\n const pinDigestUpdate: DigestLikeUpdate = {\n isPinDigest: true,\n updateType: 'pinDigest',\n newValue: config.currentValue,\n };\n await applyMinimumReleaseAgeToDigestUpdate(\n pinDigestUpdate,\n config,\n res,\n isValid || unconstrainedValue,\n newestMatchingVersionTimestamp,\n );\n res.updates.push(pinDigestUpdate);\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 await resolveUpdateDigests(config, res, dependency);\n }\n\n if (res.updates.length) {\n delete res.skipReason;\n }\n // Strip out any non-changed ones\n res.updates = stripNoopUpdates(config, res.updates);\n\n // If there is a digest update proposed which is in the pending updates for this dependency, ensure that `minimumReleaseAge` is applied.\n // `currentVersionWasResolved` only matters for `pinDigest`, which `digestUpdate` never is - true is a safe constant.\n if (digestUpdate && res.updates.includes(digestUpdate)) {\n await applyMinimumReleaseAgeToDigestUpdate(\n digestUpdate,\n config,\n res,\n true,\n newestMatchingVersionTimestamp,\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 dependency?.releases.find(\n (r) => r.version === res.updates[0].newVersion,\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 Release,\n ReleaseResult,\n} from '../../../../modules/datasource/index.ts';\nimport {\n applyDatasourceFilters,\n getRawPkgReleases,\n isGetPkgReleasesConfig,\n supportsDigests,\n} from '../../../../modules/datasource/index.ts';\nimport { postprocessRelease } from '../../../../modules/datasource/postprocess-release.ts';\nimport { isPseudoVersion } from '../../../../modules/versioning/gomod/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 { safeStringify } from '../../../../util/stringify.ts';\nimport type { Timestamp } from '../../../../util/timestamp.ts';\nimport { calculateAbandonment } from './abandonment.ts';\nimport { groupReleasesIntoBuckets } from './bucket.ts';\nimport { getNewestMatchingVersion, resolveCurrentVersion } from './current.ts';\nimport type { DigestLikeUpdate } from './digest.ts';\nimport {\n applyMinimumReleaseAgeToDigestUpdate,\n couldApplyMinimumReleaseAgeToDigest,\n resolveUpdateDigests,\n} from './digest.ts';\nimport { filterVersions } from './filter.ts';\nimport { filterInternalChecks } from './filter-checks.ts';\nimport { generateUpdate } from './generate.ts';\nimport { resolveRangeStrategy } from './range-strategy.ts';\nimport { getRollbackUpdate } from './rollback.ts';\nimport { calculateMostRecentTimestamp } from './timestamps.ts';\nimport type { LookupUpdateConfig, UpdateResult } from './types.ts';\nimport {\n addReplacementUpdateIfValid,\n isReplacementRulesConfigured,\n stripNoopUpdates,\n} from './utils.ts';\nimport {\n matchVersionCompatibility,\n restoreVersionCompatibility,\n} from './version-compatibility.ts';\nimport { applyVulnerabilityFixFilter } from './vulnerability.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>> {\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 // Timestamp of the release a `digest`/`pinDigest` update's current value currently resolves to (the newest version matching it, regardless of `rangeStrategy`), as opposed to `res.currentVersionTimestamp` which tracks whatever the configured rangeStrategy resolves `currentVersion` to (e.g. the oldest for `bump`)\n let newestMatchingVersionTimestamp: Timestamp | null | undefined;\n // The `digest` update for `config.currentDigest` (if one is added), so its age check can run after `newDigest` is fetched and no-op updates are stripped.\n let digestUpdate: DigestLikeUpdate | undefined;\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 logger.debug(\n `Invalid currentValue for ${config.packageName}: ${safeStringify(config.currentValue)} (${typeof config.currentValue})`,\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 =\n config.isLockfileOnly && config.lockedVersion\n ? config.lockedVersion\n : config.currentValue;\n const versionCompatibilityMatch = matchVersionCompatibility(config);\n if (versionCompatibilityMatch) {\n compareValue = versionCompatibilityMatch.compareValue;\n config.currentCompatibility =\n versionCompatibilityMatch.currentCompatibility;\n res.currentCompatibility = versionCompatibilityMatch.currentCompatibility;\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 !config.isLockfileOnly &&\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 // The datasources used in these tests always return at least one\n // version-like release, so neither this block nor the currentDigest\n // check inside it is reached. A lookup whose releases are all\n // unversioned tags does not get here either - with a digest configured\n // it takes the digest-only path above instead - see #40625\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 = resolveRangeStrategy(config);\n\n const currentVersion = resolveCurrentVersion(\n compareValue,\n config.lockedVersion,\n versioningApi,\n rangeStrategy,\n latestVersion,\n allVersions,\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\n // Use lockedVersion for the timestamp lookup when available, because\n // res.currentVersion is later overwritten to lockedVersion (see below).\n // Without this, strategies like \"replace\" would compute the timestamp\n // for the highest satisfying version (e.g. 1.4.1) while the reported\n // currentVersion ends up being the locked one (e.g. 1.0.0).\n const versionForTimestamp = config.lockedVersion ?? currentVersion;\n const currentVersionTimestamp = await getTimestamp(\n config,\n allVersions,\n versionForTimestamp,\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 config.currentDigest\n ? couldApplyMinimumReleaseAgeToDigest(config, 'digest')\n : config.pinDigests &&\n couldApplyMinimumReleaseAgeToDigest(config, 'pinDigest')\n ) {\n const newestMatchingVersion = getNewestMatchingVersion(\n compareValue,\n versioningApi,\n latestVersion,\n allVersions,\n );\n if (newestMatchingVersion) {\n newestMatchingVersionTimestamp = await getTimestamp(\n config,\n allVersions,\n newestMatchingVersion,\n versioningApi,\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 // A non-version can only get this far via a locked version under\n // rangeStrategy=pin, but the timestamp lookup above calls `equals()` on\n // it first and throws - see #40625\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((v) => {\n if (config.isLockfileOnly) {\n return true;\n }\n\n // Leave only compatible versions\n return (\n unconstrainedValue ||\n versioningApi.isCompatible(v.version, compareValue)\n );\n });\n const vulnerabilityFix = applyVulnerabilityFixFilter(\n config,\n res,\n versioningApi,\n filteredReleases,\n );\n filteredReleases = vulnerabilityFix.releases;\n const { shrinkedViaVulnerability } = vulnerabilityFix;\n\n const buckets = groupReleasesIntoBuckets(\n config,\n currentVersion,\n filteredReleases,\n versioningApi,\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 // `filterInternalChecks()` normally yields a release, falling back to\n // the newest pending one; only a datasource rejecting every candidate\n // during postprocessing leaves none - see #40625\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 config.isLockfileOnly ? config.currentValue : compareValue,\n versioningApi,\n // TODO #22198\n\n rangeStrategy!,\n config.lockedVersion ?? currentVersion,\n bucket,\n release,\n allReleaseVersions,\n );\n\n // An update between two pseudo-versions of the same module changes the\n // commit and nothing else, so it is a digest update - see #29034\n if (\n config.manager === 'gomod' &&\n isPseudoVersion(compareValue) &&\n isPseudoVersion(update.newValue) &&\n config.currentDigest !== update.newDigest\n ) {\n update.updateType = 'digest';\n\n // As this has already been processed by `filterInternalChecks()`, but we're changing the `updateType`, we need to apply the digest-scoped minimumReleaseAge rules.\n // `currentVersionWasResolved` only matters for `pinDigest`, which `update.updateType` never is here - true is a safe constant.\n await applyMinimumReleaseAgeToDigestUpdate(\n update as DigestLikeUpdate,\n config,\n res,\n true,\n release.releaseTimestamp,\n );\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 // Nothing but a rollback should ever propose a lower version, so a downgrade means the lookup went wrong and the update is dropped - see #29921\n if (\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 restoreVersionCompatibility(config, compareValue, res.updates);\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 - age-checked after the strip below, once newDigest is known\n digestUpdate = {\n updateType: 'digest',\n newValue: config.currentValue,\n };\n res.updates.push(digestUpdate);\n }\n } else if (\n config.pinDigests &&\n // only update the digest in the package file if it's managed by us\n !config.digestManagedExternally &&\n // Create a pin only if one doesn't already exists\n // v8 ignore else -- TODO: add test #40625\n !res.updates.some((update) => update.updateType === 'pin')\n ) {\n // pin digest\n const pinDigestUpdate: DigestLikeUpdate = {\n isPinDigest: true,\n updateType: 'pinDigest',\n newValue: config.currentValue,\n };\n await applyMinimumReleaseAgeToDigestUpdate(\n pinDigestUpdate,\n config,\n res,\n isValid || unconstrainedValue,\n newestMatchingVersionTimestamp,\n );\n res.updates.push(pinDigestUpdate);\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 await resolveUpdateDigests(config, res, dependency);\n }\n\n if (res.updates.length) {\n delete res.skipReason;\n }\n // Strip out any non-changed ones\n res.updates = stripNoopUpdates(config, res.updates);\n\n // If there is a digest update proposed which is in the pending updates for this dependency, ensure that `minimumReleaseAge` is applied.\n // `currentVersionWasResolved` only matters for `pinDigest`, which `digestUpdate` never is - true is a safe constant.\n if (digestUpdate && res.updates.includes(digestUpdate)) {\n await applyMinimumReleaseAgeToDigestUpdate(\n digestUpdate,\n config,\n res,\n true,\n newestMatchingVersionTimestamp,\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 dependency?.releases.find(\n (r) => r.version === res.updates[0].newVersion,\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": "44.115.13",
4
+ "version": "44.116.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 44.115.13 config files (https://renovatebot.com/)",
3
+ "title": "JSON schema for Renovate 44.116.0 config files (https://renovatebot.com/)",
4
4
  "$schema": "http://json-schema.org/draft-07/schema#",
5
- "x-renovate-version": "44.115.13",
5
+ "x-renovate-version": "44.116.0",
6
6
  "allowComments": true,
7
7
  "type": "object",
8
8
  "definitions": {
@@ -10351,6 +10351,7 @@
10351
10351
  "github-actions",
10352
10352
  "glasskube",
10353
10353
  "go-mod-directive",
10354
+ "gomod",
10354
10355
  "gradle",
10355
10356
  "hashicorp",
10356
10357
  "helm",