renovate 43.132.3 → 43.133.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.
@@ -47,7 +47,7 @@ hashMap.set("gitlabci-include", "354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22
47
47
  hashMap.set("glasskube", "253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70");
48
48
  hashMap.set("gleam", "b717a48c525ad6b1d434c6a9db828ddebbb85e94519e89ddc4040878e3600e84");
49
49
  hashMap.set("gomod", "82e877b22c0dd0217368760bb5d38430657fff63d07c289793a866f0845d2976");
50
- hashMap.set("gradle", "f430d8d768b56889ad1e5a69965841e85cc700e364d15db7bce680e8a5d6f821");
50
+ hashMap.set("gradle", "882a835107334db9a6fe1b830d8230f020436b5152b35d87142916281639479f");
51
51
  hashMap.set("gradle-wrapper", "90d2ecb9d0b113f8e946d4ea221c040f17f91af846e1ff4f9fc1514ad4324b74");
52
52
  hashMap.set("haskell-cabal", "d796ec6859e63ab4f1b7030c4016071202c3a44c7c11d4a9131d7e2ba19b396d");
53
53
  hashMap.set("helm-requirements", "4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b");
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','1fbc76f78daa14a8c9ab1142e9d1e05c746c0419a9f1455e4279f476590d0c04');\nhashMap.set('ansible-galaxy','8226d47128f2018825d4d6f84794e3183eb79c706045fa7e88491edd5e64106f');\nhashMap.set('ant','8640868d2249c9a0fbc57680fa81cf0c8c35f170258c50ac3ffb3a4f798cc5ae');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','1f6fcf620e9c6cd35991380cb6eafb94ec60cd77cbd13335ebe3a1d9727416c9');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','ff071fcf8b53036956627d2a430ccdf256e30bee4d7e80c329379879d836a931');\nhashMap.set('bazelisk','b6ec532dfa7c8f82ad4084df864ac6276e87c27285369323902afc146d3537ac');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','1322232bf1d0c4fa796e31a00488453bdcd00d4958431d9e424c1635e60a99bd');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','6d7e9d2018ac03e15f19e8b40ef70dd87d509d5affca24bc464d085899880a25');\nhashMap.set('cake','65ad4f28c318675b9edb49dbd11d677f42c762b01b3f5a25dd3b2f345ecd387e');\nhashMap.set('cargo','308d7ab4c6d24027b050bf659dfab0e510d9a22f8134695a7c68214908ee4634');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','135937d4720718304adb0ba998516f8ce38c3220ccd18b00b8c70c62b45df4da');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','b6ac3b4a6b8a5b32daed37bf695fe177cdb1b4a94ae7f7fb2f4c4c096c0a004c');\nhashMap.set('composer','cdb6895574020cec402e0b878e4078b62f1acfd0392a861cbb523036634f6383');\nhashMap.set('conan','aecc3917d77146db4e57dd12944be1beff860e90b7ebdd2d8fbc449fc1a06574');\nhashMap.set('copier','faa3b79991256a6fc0957fdcd530a1bc8aee65913d5aff2b1b4d226dcd44d008');\nhashMap.set('cpanfile','6a1d67d9c8751123deaf0c7f3ac38a07024e960c140f8228fcbcb93954fdca01');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','bcf5334e8a21190baaa25436acf2f17fbf095504262a4e9ee7c62ffb644eb716');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','d73d5d35f10df0599a561d9c8d25f3935350407d0e3bd3a1d1545295f278912e');\nhashMap.set('flux','427e0c1a5b1d8337503a9a568a76532fbde0bab8b355fa8f47312de50eadf2f6');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','fbbf1c7b7b6f4166fa3beee96a3283d007b388e9ecb6a14f76123c8ab8c78071');\nhashMap.set('github-actions','49c1733a35ee643fbc4cbd169004c851f0f4636cc8683341bfa5266f12fb0615');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','b717a48c525ad6b1d434c6a9db828ddebbb85e94519e89ddc4040878e3600e84');\nhashMap.set('gomod','82e877b22c0dd0217368760bb5d38430657fff63d07c289793a866f0845d2976');\nhashMap.set('gradle','f430d8d768b56889ad1e5a69965841e85cc700e364d15db7bce680e8a5d6f821');\nhashMap.set('gradle-wrapper','90d2ecb9d0b113f8e946d4ea221c040f17f91af846e1ff4f9fc1514ad4324b74');\nhashMap.set('haskell-cabal','d796ec6859e63ab4f1b7030c4016071202c3a44c7c11d4a9131d7e2ba19b396d');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','e5783484b81247279563da3c835afe4002edfc412e13fb91877818ca44ae65f2');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','7724bf6cc3ff4afec1809899f619a332f4350049b9578b5c4634514b4448cf2b');\nhashMap.set('hermit','672c328e4baea3a1ccd2cde2364db01c8033a8c077bf63a5b914fc20ee1de838');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','56ef90301143874355fd2ed25dff7c646875f701f97422d02e01d45608a88f31');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','4b73c32ddc3fe45d9777106d45b116777a2960e6e631256a6553060e602f893c');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','1e44d6ef8622252dac6d9649fb04badd12d4827eb2a55f74792aa9de2b915775');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','fd6bfc21be851ed076eabea1a91a89b25eb82129734c7cb0c2e684385cf1ea69');\nhashMap.set('maven-wrapper','9a868d1328f911eb72f9e65a64d46c86ae347aab0153d1cf4e9a62ad9e0d6cb0');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','b816a49c8525716454d0a2bc9127916d5b27e5cca7b2aa2030312f218942af3e');\nhashMap.set('mise','38177382f3785cfe7cce92994bfb429b68f5165e6eef1bdcd2c7a3d8d5414da2');\nhashMap.set('mix','1116e1adf1c18c866f0a9e6fa065c4fb9da055d8d150e625344899bb94095481');\nhashMap.set('nix','f3ffec2f14e7261de8068895b91392e992dcef208fbaf52110d6862e4712c031');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','eaf9fe4981de8f7504227f3be88445f60f87ba74f9b9c7e54284bc2bb41320b3');\nhashMap.set('nuget','42175b1906e8e91ae0731a13d92d0df065108063665f8a36150aeae73aafdc78');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','f503497a4adef31b29572176e9a69d52fa9b0bfe3477b6e228c906aeb4861de5');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','89152ad6c89f278395f32d289dc3890823c233366547d228e97dd1319aa144b5');\nhashMap.set('pip_requirements','d5c474c524bc7adc1aae065da0531bd22d9f7f52523b018f2461f6c29e12fdf3');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','50f5a54ed714fd3d738c1aa9a353cf3aab767899acdcb763088d4bd04f3a737b');\nhashMap.set('pixi','395114828787d8fcc3b3bd9f6df9507eafecacdd9061c1ad10f9ecf803e7fc30');\nhashMap.set('poetry','7f227b8b912b405df7735e9dc7c178f03021844f0c027d4b321c023c330c390a');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('pub','0fbad9f77579fcec3a623c6feab56e71934c67a79bb8f4f0f847452051d2a0ba');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e355e13e104351a8b3516a8e272fc5f7e625c9f39b0c492ba27283a36227c2d4');\nhashMap.set('renovate-config-presets','a394fe55f8b6ba356f29f76efd9f0d34b56baceb111e6d92f95b29b5ca50ac67');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('sbt','74125bd9c76a5724092258cd1dee1ea99fc0d735b463a2b64fedc5d950efde2a');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','167a5cc79098803be3b815a28cc40ef3361c455751e1d6a7a99ba91bfce26709');\nhashMap.set('swift','79ec9a6a2a8bb4853bb78bbb3a2a6e64e3b32b0ddeb312385abb3a14366ad505');\nhashMap.set('tekton','4e35c75bba4abc9c3cf49c55da6c19db4f4e9181d1fd9583288ab55ef7c944fd');\nhashMap.set('terraform','51aa6b0a49001494e7ee718d01312961c7fbd244831b42ceefd690d75404e795');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','b8474c65383a702602eee432cc1434f9a49a1ef886d1213de92d7a84fb98b9cd');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','4a975f0cc1aa22cd258aa835de3dc98d7a5c0d1cee0a1092324338968e08a827');\nhashMap.set('travis','bb482a0195cd009ec3896a6227bb95617f5c84bedb518c7d971e50c62235d9ca');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','4627230d3b7698c41aac192d57b65b091c860c8f858c89d6af4b06ed6a32fae6');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','3b5f465b586993f92c8490e70885e7eecce9b6556bcc376dd9c11db8ee9e6960');\nhashMap.set('regex','7b643b49e498465cf91b25b8b840bb1fec8c8a3a59bfa8f97a39c976675325a0');"],"mappings":"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"}
1
+ {"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','1fbc76f78daa14a8c9ab1142e9d1e05c746c0419a9f1455e4279f476590d0c04');\nhashMap.set('ansible-galaxy','8226d47128f2018825d4d6f84794e3183eb79c706045fa7e88491edd5e64106f');\nhashMap.set('ant','8640868d2249c9a0fbc57680fa81cf0c8c35f170258c50ac3ffb3a4f798cc5ae');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','1f6fcf620e9c6cd35991380cb6eafb94ec60cd77cbd13335ebe3a1d9727416c9');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','ff071fcf8b53036956627d2a430ccdf256e30bee4d7e80c329379879d836a931');\nhashMap.set('bazelisk','b6ec532dfa7c8f82ad4084df864ac6276e87c27285369323902afc146d3537ac');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','1322232bf1d0c4fa796e31a00488453bdcd00d4958431d9e424c1635e60a99bd');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','6d7e9d2018ac03e15f19e8b40ef70dd87d509d5affca24bc464d085899880a25');\nhashMap.set('cake','65ad4f28c318675b9edb49dbd11d677f42c762b01b3f5a25dd3b2f345ecd387e');\nhashMap.set('cargo','308d7ab4c6d24027b050bf659dfab0e510d9a22f8134695a7c68214908ee4634');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','135937d4720718304adb0ba998516f8ce38c3220ccd18b00b8c70c62b45df4da');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','b6ac3b4a6b8a5b32daed37bf695fe177cdb1b4a94ae7f7fb2f4c4c096c0a004c');\nhashMap.set('composer','cdb6895574020cec402e0b878e4078b62f1acfd0392a861cbb523036634f6383');\nhashMap.set('conan','aecc3917d77146db4e57dd12944be1beff860e90b7ebdd2d8fbc449fc1a06574');\nhashMap.set('copier','faa3b79991256a6fc0957fdcd530a1bc8aee65913d5aff2b1b4d226dcd44d008');\nhashMap.set('cpanfile','6a1d67d9c8751123deaf0c7f3ac38a07024e960c140f8228fcbcb93954fdca01');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','bcf5334e8a21190baaa25436acf2f17fbf095504262a4e9ee7c62ffb644eb716');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','d73d5d35f10df0599a561d9c8d25f3935350407d0e3bd3a1d1545295f278912e');\nhashMap.set('flux','427e0c1a5b1d8337503a9a568a76532fbde0bab8b355fa8f47312de50eadf2f6');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','fbbf1c7b7b6f4166fa3beee96a3283d007b388e9ecb6a14f76123c8ab8c78071');\nhashMap.set('github-actions','49c1733a35ee643fbc4cbd169004c851f0f4636cc8683341bfa5266f12fb0615');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','b717a48c525ad6b1d434c6a9db828ddebbb85e94519e89ddc4040878e3600e84');\nhashMap.set('gomod','82e877b22c0dd0217368760bb5d38430657fff63d07c289793a866f0845d2976');\nhashMap.set('gradle','882a835107334db9a6fe1b830d8230f020436b5152b35d87142916281639479f');\nhashMap.set('gradle-wrapper','90d2ecb9d0b113f8e946d4ea221c040f17f91af846e1ff4f9fc1514ad4324b74');\nhashMap.set('haskell-cabal','d796ec6859e63ab4f1b7030c4016071202c3a44c7c11d4a9131d7e2ba19b396d');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','e5783484b81247279563da3c835afe4002edfc412e13fb91877818ca44ae65f2');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','7724bf6cc3ff4afec1809899f619a332f4350049b9578b5c4634514b4448cf2b');\nhashMap.set('hermit','672c328e4baea3a1ccd2cde2364db01c8033a8c077bf63a5b914fc20ee1de838');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','56ef90301143874355fd2ed25dff7c646875f701f97422d02e01d45608a88f31');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','4b73c32ddc3fe45d9777106d45b116777a2960e6e631256a6553060e602f893c');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','1e44d6ef8622252dac6d9649fb04badd12d4827eb2a55f74792aa9de2b915775');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','fd6bfc21be851ed076eabea1a91a89b25eb82129734c7cb0c2e684385cf1ea69');\nhashMap.set('maven-wrapper','9a868d1328f911eb72f9e65a64d46c86ae347aab0153d1cf4e9a62ad9e0d6cb0');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','b816a49c8525716454d0a2bc9127916d5b27e5cca7b2aa2030312f218942af3e');\nhashMap.set('mise','38177382f3785cfe7cce92994bfb429b68f5165e6eef1bdcd2c7a3d8d5414da2');\nhashMap.set('mix','1116e1adf1c18c866f0a9e6fa065c4fb9da055d8d150e625344899bb94095481');\nhashMap.set('nix','f3ffec2f14e7261de8068895b91392e992dcef208fbaf52110d6862e4712c031');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','eaf9fe4981de8f7504227f3be88445f60f87ba74f9b9c7e54284bc2bb41320b3');\nhashMap.set('nuget','42175b1906e8e91ae0731a13d92d0df065108063665f8a36150aeae73aafdc78');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','f503497a4adef31b29572176e9a69d52fa9b0bfe3477b6e228c906aeb4861de5');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','89152ad6c89f278395f32d289dc3890823c233366547d228e97dd1319aa144b5');\nhashMap.set('pip_requirements','d5c474c524bc7adc1aae065da0531bd22d9f7f52523b018f2461f6c29e12fdf3');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','50f5a54ed714fd3d738c1aa9a353cf3aab767899acdcb763088d4bd04f3a737b');\nhashMap.set('pixi','395114828787d8fcc3b3bd9f6df9507eafecacdd9061c1ad10f9ecf803e7fc30');\nhashMap.set('poetry','7f227b8b912b405df7735e9dc7c178f03021844f0c027d4b321c023c330c390a');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('pub','0fbad9f77579fcec3a623c6feab56e71934c67a79bb8f4f0f847452051d2a0ba');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e355e13e104351a8b3516a8e272fc5f7e625c9f39b0c492ba27283a36227c2d4');\nhashMap.set('renovate-config-presets','a394fe55f8b6ba356f29f76efd9f0d34b56baceb111e6d92f95b29b5ca50ac67');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('sbt','74125bd9c76a5724092258cd1dee1ea99fc0d735b463a2b64fedc5d950efde2a');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','167a5cc79098803be3b815a28cc40ef3361c455751e1d6a7a99ba91bfce26709');\nhashMap.set('swift','79ec9a6a2a8bb4853bb78bbb3a2a6e64e3b32b0ddeb312385abb3a14366ad505');\nhashMap.set('tekton','4e35c75bba4abc9c3cf49c55da6c19db4f4e9181d1fd9583288ab55ef7c944fd');\nhashMap.set('terraform','51aa6b0a49001494e7ee718d01312961c7fbd244831b42ceefd690d75404e795');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','b8474c65383a702602eee432cc1434f9a49a1ef886d1213de92d7a84fb98b9cd');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','4a975f0cc1aa22cd258aa835de3dc98d7a5c0d1cee0a1092324338968e08a827');\nhashMap.set('travis','bb482a0195cd009ec3896a6227bb95617f5c84bedb518c7d971e50c62235d9ca');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','4627230d3b7698c41aac192d57b65b091c860c8f858c89d6af4b06ed6a32fae6');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','3b5f465b586993f92c8490e70885e7eecce9b6556bcc376dd9c11db8ee9e6960');\nhashMap.set('regex','7b643b49e498465cf91b25b8b840bb1fec8c8a3a59bfa8f97a39c976675325a0');"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { escapeRegExp, regEx } from "../../../../util/regex.js";
2
2
  import { massage, parse } from "../../../../util/toml.js";
3
3
  import { hasKey } from "../../../../util/object.js";
4
+ import { isTOMLFile } from "../utils.js";
4
5
  import { isPlainObject, isString } from "@sindresorhus/is";
5
6
  import merge from "deepmerge";
6
7
  //#region lib/modules/manager/gradle/extract/catalog.ts
@@ -122,6 +123,21 @@ function parseCatalog(packageFile, content) {
122
123
  const versionStartIndex = content.indexOf("versions");
123
124
  const versionSubContent = content.slice(versionStartIndex);
124
125
  const extractedDeps = [];
126
+ const vars = {};
127
+ for (const [key, version] of Object.entries(versions)) {
128
+ const { currentValue, fileReplacePosition } = extractLiteralVersion({
129
+ version,
130
+ depStartIndex: versionStartIndex,
131
+ depSubContent: versionSubContent,
132
+ sectionKey: key
133
+ });
134
+ if (currentValue && fileReplacePosition !== void 0) vars[normalizeAlias(key)] = {
135
+ key: normalizeAlias(key),
136
+ value: currentValue,
137
+ fileReplacePosition,
138
+ packageFile
139
+ };
140
+ }
125
141
  for (const libraryName of Object.keys(libs)) {
126
142
  const libDescriptor = libs[libraryName];
127
143
  const dependency = extractDependency({
@@ -165,11 +181,33 @@ function parseCatalog(packageFile, content) {
165
181
  }
166
182
  extractedDeps.push(dependency);
167
183
  }
168
- return extractedDeps.map((dep) => {
169
- return merge(dep, { managerData: { packageFile } });
170
- });
184
+ return {
185
+ vars,
186
+ deps: extractedDeps.map((dep) => {
187
+ return merge(dep, { managerData: { packageFile } });
188
+ })
189
+ };
190
+ }
191
+ function makeCatalogGroupKey(dep) {
192
+ return `${dep.managerData.packageFile}:${dep.managerData.fileReplacePosition}`;
193
+ }
194
+ function unifyCatalogSharedVariableNames(deps) {
195
+ const aliasMap = {};
196
+ const catalogDeps = [];
197
+ for (const dep of deps) {
198
+ const packageFile = dep.managerData?.packageFile;
199
+ if (packageFile && dep.managerData?.fileReplacePosition !== void 0 && dep.sharedVariableName && isTOMLFile(packageFile)) {
200
+ catalogDeps.push(dep);
201
+ const key = makeCatalogGroupKey(dep);
202
+ (aliasMap[key] ??= []).push(dep.sharedVariableName);
203
+ }
204
+ }
205
+ for (const dep of catalogDeps) {
206
+ const aliases = aliasMap[makeCatalogGroupKey(dep)];
207
+ if (aliases.length > 1) dep.sharedVariableName = aliases[0].replace(regEx(/^[^.]+\.versions\./), "");
208
+ }
171
209
  }
172
210
  //#endregion
173
- export { parseCatalog };
211
+ export { parseCatalog, unifyCatalogSharedVariableNames };
174
212
 
175
213
  //# sourceMappingURL=catalog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","names":["parseToml","deepmerge"],"sources":["../../../../../lib/modules/manager/gradle/extract/catalog.ts"],"sourcesContent":["import { isPlainObject, isString } from '@sindresorhus/is';\nimport deepmerge from 'deepmerge';\nimport type { SkipReason } from '../../../../types/index.ts';\nimport { hasKey } from '../../../../util/object.ts';\nimport { escapeRegExp, regEx } from '../../../../util/regex.ts';\nimport { massage, parse as parseToml } from '../../../../util/toml.ts';\nimport type { PackageDependency } from '../../types.ts';\nimport type {\n GradleCatalog,\n GradleCatalogArtifactDescriptor,\n GradleCatalogModuleDescriptor,\n GradleManagerData,\n GradleVersionCatalogVersion,\n GradleVersionPointerTarget,\n VersionPointer,\n} from '../types.ts';\n\nfunction findVersionIndex(\n content: string,\n depName: string,\n version: string,\n): number {\n const eDn = escapeRegExp(depName);\n const eVer = escapeRegExp(version);\n const re = regEx(\n `(?:id\\\\s*=\\\\s*)?['\"]?${eDn}[\"']?(?:(?:\\\\s*=\\\\s*)|:|,\\\\s*)(?:.*version(?:\\\\.ref)?(?:\\\\s*\\\\=\\\\s*))?[\"']?${eVer}['\"]?`,\n );\n const match = re.exec(content);\n if (match) {\n return match.index + content.slice(match.index).indexOf(version);\n }\n // ignoring Fallback because I can't reach it in tests, and code is not supposed to reach it but just in case.\n /* istanbul ignore next */\n return findIndexAfter(content, depName, version);\n}\n\nfunction findIndexAfter(\n content: string,\n sliceAfter: string,\n find: string,\n): number {\n const slicePoint = content.indexOf(sliceAfter) + sliceAfter.length;\n return slicePoint + content.slice(slicePoint).indexOf(find);\n}\n\nfunction isArtifactDescriptor(\n obj: GradleCatalogArtifactDescriptor | GradleCatalogModuleDescriptor,\n): obj is GradleCatalogArtifactDescriptor {\n return hasKey('group', obj);\n}\n\nfunction isVersionPointer(\n obj: GradleVersionCatalogVersion | undefined,\n): obj is VersionPointer {\n return hasKey('ref', obj);\n}\n\nfunction normalizeAlias(alias: string): string {\n return alias.replace(regEx(/[-_]/g), '.');\n}\n\nfunction findOriginalAlias(\n versions: Record<string, GradleVersionPointerTarget>,\n alias: string,\n): string {\n const normalizedAlias = normalizeAlias(alias);\n for (const sectionKey of Object.keys(versions)) {\n if (normalizeAlias(sectionKey) === normalizedAlias) {\n return sectionKey;\n }\n }\n\n return alias;\n}\n\ninterface VersionExtract {\n currentValue?: string;\n fileReplacePosition?: number;\n skipReason?: SkipReason;\n}\n\nfunction extractVersion({\n version,\n versions,\n depStartIndex,\n depSubContent,\n depName,\n versionStartIndex,\n versionSubContent,\n}: {\n version: GradleVersionCatalogVersion | undefined;\n versions: Record<string, GradleVersionPointerTarget>;\n depStartIndex: number;\n depSubContent: string;\n depName: string;\n versionStartIndex: number;\n versionSubContent: string;\n}): VersionExtract {\n if (isVersionPointer(version)) {\n const originalAlias = findOriginalAlias(versions, version.ref);\n return extractLiteralVersion({\n version: versions[originalAlias],\n depStartIndex: versionStartIndex,\n depSubContent: versionSubContent,\n sectionKey: originalAlias,\n });\n } else {\n return extractLiteralVersion({\n version,\n depStartIndex,\n depSubContent,\n sectionKey: depName,\n });\n }\n}\n\nfunction extractLiteralVersion({\n version,\n depStartIndex,\n depSubContent,\n sectionKey,\n}: {\n version: GradleVersionPointerTarget | undefined;\n depStartIndex: number;\n depSubContent: string;\n sectionKey: string;\n}): VersionExtract {\n if (!version) {\n return { skipReason: 'unspecified-version' };\n } else if (isString(version)) {\n const fileReplacePosition =\n depStartIndex + findVersionIndex(depSubContent, sectionKey, version);\n return { currentValue: version, fileReplacePosition };\n } else if (isPlainObject(version)) {\n // https://github.com/gradle/gradle/blob/d9adf33a57925582988fc512002dcc0e8ce4db95/subprojects/core/src/main/java/org/gradle/api/internal/catalog/parser/TomlCatalogFileParser.java#L368\n // https://docs.gradle.org/current/userguide/rich_versions.html\n // https://docs.gradle.org/current/userguide/platforms.html#sub::toml-dependencies-format\n const versionKeys = ['require', 'prefer', 'strictly'];\n let found = false;\n let currentValue: string | undefined;\n let fileReplacePosition: number | undefined;\n\n if (version.reject || version.rejectAll) {\n return { skipReason: 'unsupported-version' };\n }\n\n for (const key of versionKeys) {\n if (key in version) {\n if (found) {\n // Currently, we only support one version constraint at a time\n return { skipReason: 'multiple-constraint-dep' };\n }\n found = true;\n\n currentValue = version[key] as string;\n fileReplacePosition =\n depStartIndex +\n findIndexAfter(depSubContent, sectionKey, currentValue);\n }\n }\n\n if (found) {\n return { currentValue, fileReplacePosition };\n }\n }\n\n return { skipReason: 'unspecified-version' };\n}\n\nfunction extractDependency({\n descriptor,\n versions,\n depStartIndex,\n depSubContent,\n depName,\n versionStartIndex,\n versionSubContent,\n}: {\n descriptor:\n | string\n | GradleCatalogModuleDescriptor\n | GradleCatalogArtifactDescriptor;\n versions: Record<string, GradleVersionPointerTarget>;\n depStartIndex: number;\n depSubContent: string;\n depName: string;\n versionStartIndex: number;\n versionSubContent: string;\n}): PackageDependency<GradleManagerData> {\n if (isString(descriptor)) {\n const [group, name, currentValue] = descriptor.split(':');\n if (!currentValue) {\n return {\n depName,\n skipReason: 'unspecified-version',\n };\n }\n return {\n depName: `${group}:${name}`,\n currentValue,\n managerData: {\n fileReplacePosition:\n depStartIndex + findIndexAfter(depSubContent, depName, currentValue),\n },\n };\n }\n\n const { currentValue, fileReplacePosition, skipReason } = extractVersion({\n version: descriptor.version,\n versions,\n depStartIndex,\n depSubContent,\n depName,\n versionStartIndex,\n versionSubContent,\n });\n\n if (skipReason) {\n return {\n depName,\n skipReason,\n };\n }\n\n const dependency: PackageDependency<GradleManagerData> = {\n currentValue,\n managerData: { fileReplacePosition },\n };\n\n if (isArtifactDescriptor(descriptor)) {\n const { group, name } = descriptor;\n dependency.depName = `${group}:${name}`;\n } else {\n const [depGroupName, name] = descriptor.module.split(':');\n dependency.depName = `${depGroupName}:${name}`;\n }\n\n if (isVersionPointer(descriptor.version)) {\n dependency.sharedVariableName = normalizeAlias(descriptor.version.ref);\n }\n\n return dependency;\n}\n\nexport function parseCatalog(\n packageFile: string,\n content: string,\n): PackageDependency<GradleManagerData>[] {\n const tomlContent = parseToml(massage(content)) as GradleCatalog;\n const versions = tomlContent.versions ?? {};\n const libs = tomlContent.libraries ?? {};\n const libStartIndex = content.indexOf('libraries');\n const libSubContent = content.slice(libStartIndex);\n const versionStartIndex = content.indexOf('versions');\n const versionSubContent = content.slice(versionStartIndex);\n const extractedDeps: PackageDependency<GradleManagerData>[] = [];\n for (const libraryName of Object.keys(libs)) {\n const libDescriptor = libs[libraryName];\n const dependency = extractDependency({\n descriptor: libDescriptor,\n versions,\n depStartIndex: libStartIndex,\n depSubContent: libSubContent,\n depName: libraryName,\n versionStartIndex,\n versionSubContent,\n });\n extractedDeps.push(dependency);\n }\n\n const plugins = tomlContent.plugins ?? {};\n const pluginsStartIndex = content.indexOf('[plugins]');\n const pluginsSubContent = content.slice(pluginsStartIndex);\n for (const pluginName of Object.keys(plugins)) {\n const pluginDescriptor = plugins[pluginName];\n const [depName, version] = isString(pluginDescriptor)\n ? pluginDescriptor.split(':')\n : [pluginDescriptor.id, pluginDescriptor.version];\n const { currentValue, fileReplacePosition, skipReason } = extractVersion({\n version,\n versions,\n depStartIndex: pluginsStartIndex,\n depSubContent: pluginsSubContent,\n depName,\n versionStartIndex,\n versionSubContent,\n });\n\n const dependency: PackageDependency<GradleManagerData> = {\n depType: 'plugin',\n depName,\n packageName: `${depName}:${depName}.gradle.plugin`,\n currentValue,\n commitMessageTopic: `plugin ${pluginName}`,\n managerData: { fileReplacePosition },\n };\n if (skipReason) {\n dependency.skipReason = skipReason;\n }\n if (isVersionPointer(version) && dependency.commitMessageTopic) {\n dependency.sharedVariableName = normalizeAlias(version.ref);\n delete dependency.commitMessageTopic;\n }\n\n extractedDeps.push(dependency);\n }\n\n const deps = extractedDeps.map((dep) => {\n return deepmerge(dep, { managerData: { packageFile } });\n });\n return deps;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","names":["parseToml","deepmerge"],"sources":["../../../../../lib/modules/manager/gradle/extract/catalog.ts"],"sourcesContent":["import { isPlainObject, isString } from '@sindresorhus/is';\nimport deepmerge from 'deepmerge';\nimport type { SkipReason } from '../../../../types/index.ts';\nimport { hasKey } from '../../../../util/object.ts';\nimport { escapeRegExp, regEx } from '../../../../util/regex.ts';\nimport { massage, parse as parseToml } from '../../../../util/toml.ts';\nimport type { PackageDependency } from '../../types.ts';\nimport type {\n GradleCatalog,\n GradleCatalogArtifactDescriptor,\n GradleCatalogModuleDescriptor,\n GradleManagerData,\n GradleVersionCatalogVersion,\n GradleVersionPointerTarget,\n PackageVariables,\n VersionPointer,\n} from '../types.ts';\nimport { isTOMLFile } from '../utils.ts';\n\nfunction findVersionIndex(\n content: string,\n depName: string,\n version: string,\n): number {\n const eDn = escapeRegExp(depName);\n const eVer = escapeRegExp(version);\n const re = regEx(\n `(?:id\\\\s*=\\\\s*)?['\"]?${eDn}[\"']?(?:(?:\\\\s*=\\\\s*)|:|,\\\\s*)(?:.*version(?:\\\\.ref)?(?:\\\\s*\\\\=\\\\s*))?[\"']?${eVer}['\"]?`,\n );\n const match = re.exec(content);\n if (match) {\n return match.index + content.slice(match.index).indexOf(version);\n }\n // ignoring Fallback because I can't reach it in tests, and code is not supposed to reach it but just in case.\n /* istanbul ignore next */\n return findIndexAfter(content, depName, version);\n}\n\nfunction findIndexAfter(\n content: string,\n sliceAfter: string,\n find: string,\n): number {\n const slicePoint = content.indexOf(sliceAfter) + sliceAfter.length;\n return slicePoint + content.slice(slicePoint).indexOf(find);\n}\n\nfunction isArtifactDescriptor(\n obj: GradleCatalogArtifactDescriptor | GradleCatalogModuleDescriptor,\n): obj is GradleCatalogArtifactDescriptor {\n return hasKey('group', obj);\n}\n\nfunction isVersionPointer(\n obj: GradleVersionCatalogVersion | undefined,\n): obj is VersionPointer {\n return hasKey('ref', obj);\n}\n\nfunction normalizeAlias(alias: string): string {\n return alias.replace(regEx(/[-_]/g), '.');\n}\n\nfunction findOriginalAlias(\n versions: Record<string, GradleVersionPointerTarget>,\n alias: string,\n): string {\n const normalizedAlias = normalizeAlias(alias);\n for (const sectionKey of Object.keys(versions)) {\n if (normalizeAlias(sectionKey) === normalizedAlias) {\n return sectionKey;\n }\n }\n\n return alias;\n}\n\ninterface VersionExtract {\n currentValue?: string;\n fileReplacePosition?: number;\n skipReason?: SkipReason;\n}\n\nfunction extractVersion({\n version,\n versions,\n depStartIndex,\n depSubContent,\n depName,\n versionStartIndex,\n versionSubContent,\n}: {\n version: GradleVersionCatalogVersion | undefined;\n versions: Record<string, GradleVersionPointerTarget>;\n depStartIndex: number;\n depSubContent: string;\n depName: string;\n versionStartIndex: number;\n versionSubContent: string;\n}): VersionExtract {\n if (isVersionPointer(version)) {\n const originalAlias = findOriginalAlias(versions, version.ref);\n return extractLiteralVersion({\n version: versions[originalAlias],\n depStartIndex: versionStartIndex,\n depSubContent: versionSubContent,\n sectionKey: originalAlias,\n });\n } else {\n return extractLiteralVersion({\n version,\n depStartIndex,\n depSubContent,\n sectionKey: depName,\n });\n }\n}\n\nfunction extractLiteralVersion({\n version,\n depStartIndex,\n depSubContent,\n sectionKey,\n}: {\n version: GradleVersionPointerTarget | undefined;\n depStartIndex: number;\n depSubContent: string;\n sectionKey: string;\n}): VersionExtract {\n if (!version) {\n return { skipReason: 'unspecified-version' };\n } else if (isString(version)) {\n const fileReplacePosition =\n depStartIndex + findVersionIndex(depSubContent, sectionKey, version);\n return { currentValue: version, fileReplacePosition };\n } else if (isPlainObject(version)) {\n // https://github.com/gradle/gradle/blob/d9adf33a57925582988fc512002dcc0e8ce4db95/subprojects/core/src/main/java/org/gradle/api/internal/catalog/parser/TomlCatalogFileParser.java#L368\n // https://docs.gradle.org/current/userguide/rich_versions.html\n // https://docs.gradle.org/current/userguide/platforms.html#sub::toml-dependencies-format\n const versionKeys = ['require', 'prefer', 'strictly'];\n let found = false;\n let currentValue: string | undefined;\n let fileReplacePosition: number | undefined;\n\n if (version.reject || version.rejectAll) {\n return { skipReason: 'unsupported-version' };\n }\n\n for (const key of versionKeys) {\n if (key in version) {\n if (found) {\n // Currently, we only support one version constraint at a time\n return { skipReason: 'multiple-constraint-dep' };\n }\n found = true;\n\n currentValue = version[key] as string;\n fileReplacePosition =\n depStartIndex +\n findIndexAfter(depSubContent, sectionKey, currentValue);\n }\n }\n\n if (found) {\n return { currentValue, fileReplacePosition };\n }\n }\n\n return { skipReason: 'unspecified-version' };\n}\n\nfunction extractDependency({\n descriptor,\n versions,\n depStartIndex,\n depSubContent,\n depName,\n versionStartIndex,\n versionSubContent,\n}: {\n descriptor:\n | string\n | GradleCatalogModuleDescriptor\n | GradleCatalogArtifactDescriptor;\n versions: Record<string, GradleVersionPointerTarget>;\n depStartIndex: number;\n depSubContent: string;\n depName: string;\n versionStartIndex: number;\n versionSubContent: string;\n}): PackageDependency<GradleManagerData> {\n if (isString(descriptor)) {\n const [group, name, currentValue] = descriptor.split(':');\n if (!currentValue) {\n return {\n depName,\n skipReason: 'unspecified-version',\n };\n }\n return {\n depName: `${group}:${name}`,\n currentValue,\n managerData: {\n fileReplacePosition:\n depStartIndex + findIndexAfter(depSubContent, depName, currentValue),\n },\n };\n }\n\n const { currentValue, fileReplacePosition, skipReason } = extractVersion({\n version: descriptor.version,\n versions,\n depStartIndex,\n depSubContent,\n depName,\n versionStartIndex,\n versionSubContent,\n });\n\n if (skipReason) {\n return {\n depName,\n skipReason,\n };\n }\n\n const dependency: PackageDependency<GradleManagerData> = {\n currentValue,\n managerData: { fileReplacePosition },\n };\n\n if (isArtifactDescriptor(descriptor)) {\n const { group, name } = descriptor;\n dependency.depName = `${group}:${name}`;\n } else {\n const [depGroupName, name] = descriptor.module.split(':');\n dependency.depName = `${depGroupName}:${name}`;\n }\n\n if (isVersionPointer(descriptor.version)) {\n dependency.sharedVariableName = normalizeAlias(descriptor.version.ref);\n }\n\n return dependency;\n}\n\nexport function parseCatalog(\n packageFile: string,\n content: string,\n): { vars: PackageVariables; deps: PackageDependency<GradleManagerData>[] } {\n const tomlContent = parseToml(massage(content)) as GradleCatalog;\n const versions = tomlContent.versions ?? {};\n const libs = tomlContent.libraries ?? {};\n const libStartIndex = content.indexOf('libraries');\n const libSubContent = content.slice(libStartIndex);\n const versionStartIndex = content.indexOf('versions');\n const versionSubContent = content.slice(versionStartIndex);\n const extractedDeps: PackageDependency<GradleManagerData>[] = [];\n const vars: PackageVariables = {};\n\n for (const [key, version] of Object.entries(versions)) {\n const { currentValue, fileReplacePosition } = extractLiteralVersion({\n version,\n depStartIndex: versionStartIndex,\n depSubContent: versionSubContent,\n sectionKey: key,\n });\n if (currentValue && fileReplacePosition !== undefined) {\n vars[normalizeAlias(key)] = {\n key: normalizeAlias(key),\n value: currentValue,\n fileReplacePosition,\n packageFile,\n };\n }\n }\n\n for (const libraryName of Object.keys(libs)) {\n const libDescriptor = libs[libraryName];\n const dependency = extractDependency({\n descriptor: libDescriptor,\n versions,\n depStartIndex: libStartIndex,\n depSubContent: libSubContent,\n depName: libraryName,\n versionStartIndex,\n versionSubContent,\n });\n extractedDeps.push(dependency);\n }\n\n const plugins = tomlContent.plugins ?? {};\n const pluginsStartIndex = content.indexOf('[plugins]');\n const pluginsSubContent = content.slice(pluginsStartIndex);\n for (const pluginName of Object.keys(plugins)) {\n const pluginDescriptor = plugins[pluginName];\n const [depName, version] = isString(pluginDescriptor)\n ? pluginDescriptor.split(':')\n : [pluginDescriptor.id, pluginDescriptor.version];\n const { currentValue, fileReplacePosition, skipReason } = extractVersion({\n version,\n versions,\n depStartIndex: pluginsStartIndex,\n depSubContent: pluginsSubContent,\n depName,\n versionStartIndex,\n versionSubContent,\n });\n\n const dependency: PackageDependency<GradleManagerData> = {\n depType: 'plugin',\n depName,\n packageName: `${depName}:${depName}.gradle.plugin`,\n currentValue,\n commitMessageTopic: `plugin ${pluginName}`,\n managerData: { fileReplacePosition },\n };\n if (skipReason) {\n dependency.skipReason = skipReason;\n }\n if (isVersionPointer(version) && dependency.commitMessageTopic) {\n dependency.sharedVariableName = normalizeAlias(version.ref);\n delete dependency.commitMessageTopic;\n }\n\n extractedDeps.push(dependency);\n }\n\n const deps = extractedDeps.map((dep) => {\n return deepmerge(dep, { managerData: { packageFile } });\n });\n return { vars, deps };\n}\n\nfunction makeCatalogGroupKey(\n dep: PackageDependency<GradleManagerData>,\n): string {\n return `${dep.managerData!.packageFile}:${dep.managerData!.fileReplacePosition}`;\n}\n\nexport function unifyCatalogSharedVariableNames(\n deps: PackageDependency<GradleManagerData>[],\n): void {\n const aliasMap: Record<string, string[]> = {};\n const catalogDeps: PackageDependency<GradleManagerData>[] = [];\n\n for (const dep of deps) {\n const packageFile = dep.managerData?.packageFile;\n if (\n packageFile &&\n dep.managerData?.fileReplacePosition !== undefined &&\n dep.sharedVariableName &&\n isTOMLFile(packageFile)\n ) {\n catalogDeps.push(dep);\n\n const key = makeCatalogGroupKey(dep);\n (aliasMap[key] ??= []).push(dep.sharedVariableName);\n }\n }\n\n for (const dep of catalogDeps) {\n const key = makeCatalogGroupKey(dep);\n const aliases = aliasMap[key];\n if (aliases.length > 1) {\n const name = aliases[0];\n dep.sharedVariableName = name.replace(regEx(/^[^.]+\\.versions\\./), '');\n }\n }\n}\n"],"mappings":"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"}
@@ -5,10 +5,10 @@ import { getLocalFiles } from "../../../util/fs/index.js";
5
5
  import { MavenDatasource } from "../../datasource/maven/index.js";
6
6
  import api from "../../versioning/gradle/index.js";
7
7
  import { REGISTRY_URLS } from "./parser/common.js";
8
- import { getVars, isGradleScriptFile, isKotlinSourceFile, isPropsFile, isTOMLFile, reorderFiles, toAbsolutePath, updateVars } from "./utils.js";
8
+ import { getVars, isGradleScriptFile, isKotlinSourceFile, isPropsFile, isTOMLFile, reorderFiles, toAbsolutePath, updateVars, updateVarsFromDefaultCatalog } from "./utils.js";
9
9
  import { parseGradle, parseKotlinSource, parseProps } from "./parser.js";
10
10
  import { isGcvPropsFile, parseGcv, usesGcv } from "./extract/consistent-versions-plugin.js";
11
- import { parseCatalog } from "./extract/catalog.js";
11
+ import { parseCatalog, unifyCatalogSharedVariableNames } from "./extract/catalog.js";
12
12
  import upath from "upath";
13
13
  //#region lib/modules/manager/gradle/extract.ts
14
14
  const mavenDatasource = MavenDatasource.id;
@@ -72,7 +72,8 @@ async function parsePackageFiles(config, packageFiles, extractedDeps, packageFil
72
72
  updateVars(varRegistry, packageFileDir, vars);
73
73
  extractedDeps.push(...deps);
74
74
  } else if (isTOMLFile(packageFile)) {
75
- const deps = parseCatalog(packageFile, content);
75
+ const { vars, deps } = parseCatalog(packageFile, content);
76
+ updateVarsFromDefaultCatalog(varRegistry, packageFileDir, packageFile, vars);
76
77
  extractedDeps.push(...deps);
77
78
  } else if (isGcvPropsFile(packageFile) && usesGcv(packageFile, fileContents)) {
78
79
  const deps = parseGcv(packageFile, fileContents);
@@ -109,6 +110,7 @@ async function extractAllPackageFiles(config, packageFiles) {
109
110
  ...gradleFiles
110
111
  ], extractedDeps, packageFilesByName, packageRegistries);
111
112
  if (!extractedDeps.length) return null;
113
+ unifyCatalogSharedVariableNames(extractedDeps);
112
114
  for (const dep of extractedDeps) {
113
115
  dep.fileReplacePosition = dep?.managerData?.fileReplacePosition;
114
116
  const key = dep.managerData?.packageFile;
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","names":["gradleVersioning"],"sources":["../../../../lib/modules/manager/gradle/extract.ts"],"sourcesContent":["import upath from 'upath';\nimport { logger } from '../../../logger/index.ts';\nimport { coerceArray } from '../../../util/array.ts';\nimport { getLocalFiles } from '../../../util/fs/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { MavenDatasource } from '../../datasource/maven/index.ts';\nimport gradleVersioning from '../../versioning/gradle/index.ts';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFile,\n} from '../types.ts';\nimport { parseCatalog } from './extract/catalog.ts';\nimport {\n isGcvPropsFile,\n parseGcv,\n usesGcv,\n} from './extract/consistent-versions-plugin.ts';\nimport { REGISTRY_URLS } from './parser/common.ts';\nimport { parseGradle, parseKotlinSource, parseProps } from './parser.ts';\nimport type {\n ContentDescriptorSpec,\n GradleManagerData,\n PackageRegistry,\n VariableRegistry,\n} from './types.ts';\nimport {\n getVars,\n isGradleScriptFile,\n isKotlinSourceFile,\n isPropsFile,\n isTOMLFile,\n reorderFiles,\n toAbsolutePath,\n updateVars,\n} from './utils.ts';\n\nconst mavenDatasource = MavenDatasource.id;\n\nfunction updatePackageRegistries(\n packageRegistries: PackageRegistry[],\n urls: PackageRegistry[],\n): void {\n for (const url of urls) {\n const registryAlreadyKnown = packageRegistries.some(\n (item) =>\n item.registryUrl === url.registryUrl &&\n item.scope === url.scope &&\n item.registryType === url.registryType &&\n item.content === url.content,\n );\n if (!registryAlreadyKnown) {\n packageRegistries.push(url);\n }\n }\n}\n\nexport function matchesContentDescriptor(\n dep: PackageDependency<GradleManagerData>,\n contentDescriptors?: ContentDescriptorSpec[],\n): boolean {\n const [groupId, artifactId] = (dep.packageName ?? dep.depName!).split(':');\n let hasIncludes = false;\n let hasExcludes = false;\n let matchesInclude = false;\n let matchesExclude = false;\n\n for (const content of coerceArray(contentDescriptors)) {\n const {\n mode,\n matcher,\n groupId: contentGroupId,\n artifactId: contentArtifactId,\n version: contentVersion,\n } = content;\n\n // group matching\n let groupMatch = false;\n if (matcher === 'regex') {\n groupMatch = regEx(contentGroupId).test(groupId);\n } else if (matcher === 'subgroup') {\n groupMatch =\n groupId === contentGroupId || `${groupId}.`.startsWith(contentGroupId);\n } else {\n groupMatch = groupId === contentGroupId;\n }\n\n // artifact matching (optional)\n let artifactMatch = true;\n if (groupMatch && contentArtifactId) {\n if (matcher === 'regex') {\n artifactMatch = regEx(contentArtifactId).test(artifactId);\n } else {\n artifactMatch = artifactId === contentArtifactId;\n }\n }\n\n // version matching (optional)\n let versionMatch = true;\n if (groupMatch && artifactMatch && contentVersion && dep.currentValue) {\n if (matcher === 'regex') {\n versionMatch = regEx(contentVersion).test(dep.currentValue);\n } else {\n // contentVersion can be an exact version or a gradle-supported version range\n versionMatch = gradleVersioning.matches(\n dep.currentValue,\n contentVersion,\n );\n }\n }\n\n const isMatch = groupMatch && artifactMatch && versionMatch;\n if (mode === 'include') {\n hasIncludes = true;\n if (isMatch) {\n matchesInclude = true;\n }\n } else if (mode === 'exclude') {\n hasExcludes = true;\n if (isMatch) {\n matchesExclude = true;\n }\n }\n }\n\n if (hasIncludes && hasExcludes) {\n // if both includes and excludes exist, dep must match include and not match exclude\n return matchesInclude && !matchesExclude;\n } else if (hasIncludes) {\n // if only includes exist, dep must match at least one include\n return matchesInclude;\n } else if (hasExcludes) {\n // if only excludes exist, dep must not match any exclude\n return !matchesExclude;\n }\n\n // by default, repositories include everything and exclude nothing\n return true;\n}\n\nfunction getRegistryUrlsForDep(\n packageRegistries: PackageRegistry[],\n dep: PackageDependency<GradleManagerData>,\n): string[] {\n const scope = dep.depType === 'plugin' ? 'plugin' : 'dep';\n\n const matchingRegistries = packageRegistries.filter(\n (item) =>\n item.scope === scope && matchesContentDescriptor(dep, item.content),\n );\n\n const exclusiveRegistries = matchingRegistries.filter(\n (item) => item.registryType === 'exclusive',\n );\n\n const registryUrls = (\n exclusiveRegistries.length ? exclusiveRegistries : matchingRegistries\n ).map((item) => item.registryUrl);\n\n if (!registryUrls.length && scope === 'plugin') {\n registryUrls.push(REGISTRY_URLS.gradlePluginPortal);\n }\n\n return [...new Set(registryUrls)];\n}\n\nasync function parsePackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n extractedDeps: PackageDependency<GradleManagerData>[],\n packageFilesByName: Record<string, PackageFile>,\n packageRegistries: PackageRegistry[],\n): Promise<PackageDependency<GradleManagerData>[]> {\n const varRegistry: VariableRegistry = {};\n const fileContents = await getLocalFiles(packageFiles);\n\n for (const packageFile of packageFiles) {\n packageFilesByName[packageFile] = {\n packageFile,\n datasource: mavenDatasource,\n deps: [],\n };\n\n try {\n // TODO #22198\n const content = fileContents[packageFile]!;\n const packageFileDir = upath.dirname(toAbsolutePath(packageFile));\n\n if (isPropsFile(packageFile)) {\n const { vars, deps } = parseProps(content, packageFile);\n updateVars(varRegistry, packageFileDir, vars);\n extractedDeps.push(...deps);\n } else if (isTOMLFile(packageFile)) {\n const deps = parseCatalog(packageFile, content);\n extractedDeps.push(...deps);\n } else if (\n isGcvPropsFile(packageFile) &&\n usesGcv(packageFile, fileContents)\n ) {\n const deps = parseGcv(packageFile, fileContents);\n extractedDeps.push(...deps);\n } else if (isKotlinSourceFile(packageFile)) {\n const vars = getVars(varRegistry, packageFileDir);\n const { vars: gradleVars, deps } = parseKotlinSource(\n content,\n vars,\n packageFile,\n );\n updateVars(varRegistry, '/', gradleVars);\n extractedDeps.push(...deps);\n } else if (isGradleScriptFile(packageFile)) {\n const vars = getVars(varRegistry, packageFileDir);\n const {\n deps,\n urls,\n vars: gradleVars,\n } = parseGradle(content, vars, packageFile, fileContents);\n updatePackageRegistries(packageRegistries, urls);\n updateVars(varRegistry, packageFileDir, gradleVars);\n extractedDeps.push(...deps);\n }\n } catch (err) {\n logger.debug(\n { err, config, packageFile },\n `Failed to process Gradle file`,\n );\n }\n }\n\n return extractedDeps;\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile[] | null> {\n const packageFilesByName: Record<string, PackageFile> = {};\n const packageRegistries: PackageRegistry[] = [];\n const extractedDeps: PackageDependency<GradleManagerData>[] = [];\n const kotlinSourceFiles = packageFiles.filter(isKotlinSourceFile);\n const gradleFiles = reorderFiles(\n packageFiles.filter((e) => !kotlinSourceFiles.includes(e)),\n );\n\n await parsePackageFiles(\n config,\n [...kotlinSourceFiles, ...kotlinSourceFiles, ...gradleFiles],\n extractedDeps,\n packageFilesByName,\n packageRegistries,\n );\n\n if (!extractedDeps.length) {\n return null;\n }\n\n for (const dep of extractedDeps) {\n dep.fileReplacePosition = dep?.managerData?.fileReplacePosition; // #8224\n\n const key = dep.managerData?.packageFile;\n // istanbul ignore else\n if (key) {\n let pkgFile: PackageFile = packageFilesByName[key];\n // istanbul ignore if: won't happen if \"apply from\" processes only initially known files\n if (!pkgFile) {\n pkgFile = {\n packageFile: key,\n datasource: mavenDatasource,\n deps: [],\n };\n }\n\n dep.datasource ??= mavenDatasource;\n\n if (dep.datasource === mavenDatasource) {\n dep.registryUrls = getRegistryUrlsForDep(packageRegistries, dep);\n\n dep.depType ??=\n key.startsWith('buildSrc') && !kotlinSourceFiles.length\n ? 'devDependencies'\n : 'dependencies';\n }\n\n const depAlreadyInPkgFile = pkgFile.deps.some(\n (item) =>\n item.depName === dep.depName &&\n item.managerData?.fileReplacePosition ===\n dep.managerData?.fileReplacePosition,\n );\n if (!depAlreadyInPkgFile) {\n pkgFile.deps.push(dep);\n }\n\n packageFilesByName[key] = pkgFile;\n } else {\n logger.debug({ dep }, `Failed to process Gradle dependency`);\n }\n }\n\n return Object.values(packageFilesByName);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"extract.js","names":["gradleVersioning"],"sources":["../../../../lib/modules/manager/gradle/extract.ts"],"sourcesContent":["import upath from 'upath';\nimport { logger } from '../../../logger/index.ts';\nimport { coerceArray } from '../../../util/array.ts';\nimport { getLocalFiles } from '../../../util/fs/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { MavenDatasource } from '../../datasource/maven/index.ts';\nimport gradleVersioning from '../../versioning/gradle/index.ts';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFile,\n} from '../types.ts';\nimport {\n parseCatalog,\n unifyCatalogSharedVariableNames,\n} from './extract/catalog.ts';\nimport {\n isGcvPropsFile,\n parseGcv,\n usesGcv,\n} from './extract/consistent-versions-plugin.ts';\nimport { REGISTRY_URLS } from './parser/common.ts';\nimport { parseGradle, parseKotlinSource, parseProps } from './parser.ts';\nimport type {\n ContentDescriptorSpec,\n GradleManagerData,\n PackageRegistry,\n VariableRegistry,\n} from './types.ts';\nimport {\n getVars,\n isGradleScriptFile,\n isKotlinSourceFile,\n isPropsFile,\n isTOMLFile,\n reorderFiles,\n toAbsolutePath,\n updateVars,\n updateVarsFromDefaultCatalog,\n} from './utils.ts';\n\nconst mavenDatasource = MavenDatasource.id;\n\nfunction updatePackageRegistries(\n packageRegistries: PackageRegistry[],\n urls: PackageRegistry[],\n): void {\n for (const url of urls) {\n const registryAlreadyKnown = packageRegistries.some(\n (item) =>\n item.registryUrl === url.registryUrl &&\n item.scope === url.scope &&\n item.registryType === url.registryType &&\n item.content === url.content,\n );\n if (!registryAlreadyKnown) {\n packageRegistries.push(url);\n }\n }\n}\n\nexport function matchesContentDescriptor(\n dep: PackageDependency<GradleManagerData>,\n contentDescriptors?: ContentDescriptorSpec[],\n): boolean {\n const [groupId, artifactId] = (dep.packageName ?? dep.depName!).split(':');\n let hasIncludes = false;\n let hasExcludes = false;\n let matchesInclude = false;\n let matchesExclude = false;\n\n for (const content of coerceArray(contentDescriptors)) {\n const {\n mode,\n matcher,\n groupId: contentGroupId,\n artifactId: contentArtifactId,\n version: contentVersion,\n } = content;\n\n // group matching\n let groupMatch = false;\n if (matcher === 'regex') {\n groupMatch = regEx(contentGroupId).test(groupId);\n } else if (matcher === 'subgroup') {\n groupMatch =\n groupId === contentGroupId || `${groupId}.`.startsWith(contentGroupId);\n } else {\n groupMatch = groupId === contentGroupId;\n }\n\n // artifact matching (optional)\n let artifactMatch = true;\n if (groupMatch && contentArtifactId) {\n if (matcher === 'regex') {\n artifactMatch = regEx(contentArtifactId).test(artifactId);\n } else {\n artifactMatch = artifactId === contentArtifactId;\n }\n }\n\n // version matching (optional)\n let versionMatch = true;\n if (groupMatch && artifactMatch && contentVersion && dep.currentValue) {\n if (matcher === 'regex') {\n versionMatch = regEx(contentVersion).test(dep.currentValue);\n } else {\n // contentVersion can be an exact version or a gradle-supported version range\n versionMatch = gradleVersioning.matches(\n dep.currentValue,\n contentVersion,\n );\n }\n }\n\n const isMatch = groupMatch && artifactMatch && versionMatch;\n if (mode === 'include') {\n hasIncludes = true;\n if (isMatch) {\n matchesInclude = true;\n }\n } else if (mode === 'exclude') {\n hasExcludes = true;\n if (isMatch) {\n matchesExclude = true;\n }\n }\n }\n\n if (hasIncludes && hasExcludes) {\n // if both includes and excludes exist, dep must match include and not match exclude\n return matchesInclude && !matchesExclude;\n } else if (hasIncludes) {\n // if only includes exist, dep must match at least one include\n return matchesInclude;\n } else if (hasExcludes) {\n // if only excludes exist, dep must not match any exclude\n return !matchesExclude;\n }\n\n // by default, repositories include everything and exclude nothing\n return true;\n}\n\nfunction getRegistryUrlsForDep(\n packageRegistries: PackageRegistry[],\n dep: PackageDependency<GradleManagerData>,\n): string[] {\n const scope = dep.depType === 'plugin' ? 'plugin' : 'dep';\n\n const matchingRegistries = packageRegistries.filter(\n (item) =>\n item.scope === scope && matchesContentDescriptor(dep, item.content),\n );\n\n const exclusiveRegistries = matchingRegistries.filter(\n (item) => item.registryType === 'exclusive',\n );\n\n const registryUrls = (\n exclusiveRegistries.length ? exclusiveRegistries : matchingRegistries\n ).map((item) => item.registryUrl);\n\n if (!registryUrls.length && scope === 'plugin') {\n registryUrls.push(REGISTRY_URLS.gradlePluginPortal);\n }\n\n return [...new Set(registryUrls)];\n}\n\nasync function parsePackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n extractedDeps: PackageDependency<GradleManagerData>[],\n packageFilesByName: Record<string, PackageFile>,\n packageRegistries: PackageRegistry[],\n): Promise<PackageDependency<GradleManagerData>[]> {\n const varRegistry: VariableRegistry = {};\n const fileContents = await getLocalFiles(packageFiles);\n\n for (const packageFile of packageFiles) {\n packageFilesByName[packageFile] = {\n packageFile,\n datasource: mavenDatasource,\n deps: [],\n };\n\n try {\n // TODO #22198\n const content = fileContents[packageFile]!;\n const packageFileDir = upath.dirname(toAbsolutePath(packageFile));\n\n if (isPropsFile(packageFile)) {\n const { vars, deps } = parseProps(content, packageFile);\n updateVars(varRegistry, packageFileDir, vars);\n extractedDeps.push(...deps);\n } else if (isTOMLFile(packageFile)) {\n const { vars, deps } = parseCatalog(packageFile, content);\n updateVarsFromDefaultCatalog(\n varRegistry,\n packageFileDir,\n packageFile,\n vars,\n );\n extractedDeps.push(...deps);\n } else if (\n isGcvPropsFile(packageFile) &&\n usesGcv(packageFile, fileContents)\n ) {\n const deps = parseGcv(packageFile, fileContents);\n extractedDeps.push(...deps);\n } else if (isKotlinSourceFile(packageFile)) {\n const vars = getVars(varRegistry, packageFileDir);\n const { vars: gradleVars, deps } = parseKotlinSource(\n content,\n vars,\n packageFile,\n );\n updateVars(varRegistry, '/', gradleVars);\n extractedDeps.push(...deps);\n } else if (isGradleScriptFile(packageFile)) {\n const vars = getVars(varRegistry, packageFileDir);\n const {\n deps,\n urls,\n vars: gradleVars,\n } = parseGradle(content, vars, packageFile, fileContents);\n updatePackageRegistries(packageRegistries, urls);\n updateVars(varRegistry, packageFileDir, gradleVars);\n extractedDeps.push(...deps);\n }\n } catch (err) {\n logger.debug(\n { err, config, packageFile },\n `Failed to process Gradle file`,\n );\n }\n }\n\n return extractedDeps;\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile[] | null> {\n const packageFilesByName: Record<string, PackageFile> = {};\n const packageRegistries: PackageRegistry[] = [];\n const extractedDeps: PackageDependency<GradleManagerData>[] = [];\n const kotlinSourceFiles = packageFiles.filter(isKotlinSourceFile);\n const gradleFiles = reorderFiles(\n packageFiles.filter((e) => !kotlinSourceFiles.includes(e)),\n );\n\n await parsePackageFiles(\n config,\n [...kotlinSourceFiles, ...kotlinSourceFiles, ...gradleFiles],\n extractedDeps,\n packageFilesByName,\n packageRegistries,\n );\n\n if (!extractedDeps.length) {\n return null;\n }\n\n unifyCatalogSharedVariableNames(extractedDeps);\n\n for (const dep of extractedDeps) {\n dep.fileReplacePosition = dep?.managerData?.fileReplacePosition; // #8224\n\n const key = dep.managerData?.packageFile;\n // istanbul ignore else\n if (key) {\n let pkgFile: PackageFile = packageFilesByName[key];\n // istanbul ignore if: won't happen if \"apply from\" processes only initially known files\n if (!pkgFile) {\n pkgFile = {\n packageFile: key,\n datasource: mavenDatasource,\n deps: [],\n };\n }\n\n dep.datasource ??= mavenDatasource;\n\n if (dep.datasource === mavenDatasource) {\n dep.registryUrls = getRegistryUrlsForDep(packageRegistries, dep);\n\n dep.depType ??=\n key.startsWith('buildSrc') && !kotlinSourceFiles.length\n ? 'devDependencies'\n : 'dependencies';\n }\n\n const depAlreadyInPkgFile = pkgFile.deps.some(\n (item) =>\n item.depName === dep.depName &&\n item.managerData?.fileReplacePosition ===\n dep.managerData?.fileReplacePosition,\n );\n if (!depAlreadyInPkgFile) {\n pkgFile.deps.push(dep);\n }\n\n packageFilesByName[key] = pkgFile;\n } else {\n logger.debug({ dep }, `Failed to process Gradle dependency`);\n }\n }\n\n return Object.values(packageFilesByName);\n}\n"],"mappings":"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"}
@@ -123,6 +123,16 @@ const qStringValueAsSymbol = query.str((ctx, node) => {
123
123
  });
124
124
  return ctx;
125
125
  });
126
+ const qProviderValue = query.tree({
127
+ maxDepth: 1,
128
+ type: "wrapped-tree",
129
+ startsWith: "(",
130
+ endsWith: ")",
131
+ search: query.begin().end()
132
+ }).handler((ctx) => {
133
+ if (ctx.varTokens.length > 1 && ctx.varTokens.at(-1)?.value === "get") ctx.varTokens.pop();
134
+ return ctx;
135
+ });
126
136
  const qVariableAssignmentIdentifier = query.sym(storeVarToken).many(query.alt(query.op(".").sym(storeVarToken), query.tree({
127
137
  type: "wrapped-tree",
128
138
  maxDepth: 1,
@@ -134,7 +144,7 @@ const qVariableAccessIdentifier = query.handler((ctx) => {
134
144
  ctx.tmpTokenStore.backupVarAccessTokens = ctx.varTokens;
135
145
  ctx.varTokens = [];
136
146
  return ctx;
137
- }).join(qVariableAssignmentIdentifier).handler(coalesceVariable).handler((ctx) => {
147
+ }).join(qVariableAssignmentIdentifier).opt(qProviderValue).handler(coalesceVariable).handler((ctx) => {
138
148
  ctx.varTokens = [...ctx.tmpTokenStore.backupVarAccessTokens, ...ctx.varTokens];
139
149
  delete ctx.tmpTokenStore.backupVarAccessTokens;
140
150
  return ctx;
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","names":["q"],"sources":["../../../../../lib/modules/manager/gradle/parser/common.ts"],"sourcesContent":["import type { lexer, parser } from '@renovatebot/good-enough-parser';\nimport { query as q } from '@renovatebot/good-enough-parser';\nimport { clone } from '../../../../util/clone.ts';\nimport { regEx } from '../../../../util/regex.ts';\nimport type {\n Ctx,\n NonEmptyArray,\n PackageVariables,\n VariableData,\n} from '../types.ts';\n\nexport const REGISTRY_URLS = {\n google: 'https://dl.google.com/android/maven2/',\n gradlePluginPortal: 'https://plugins.gradle.org/m2/',\n jcenter: 'https://jcenter.bintray.com/',\n mavenCentral: 'https://repo.maven.apache.org/maven2',\n};\n\nexport const GRADLE_PLUGINS = {\n checkstyle: ['toolVersion', 'com.puppycrawl.tools:checkstyle'],\n codenarc: ['toolVersion', 'org.codenarc:CodeNarc'],\n composeOptions: [\n 'kotlinCompilerExtensionVersion',\n 'androidx.compose.compiler:compiler',\n ],\n detekt: ['toolVersion', 'io.gitlab.arturbosch.detekt:detekt-core'],\n findbugs: ['toolVersion', 'com.google.code.findbugs:findbugs'],\n googleJavaFormat: [\n 'toolVersion',\n 'com.google.googlejavaformat:google-java-format',\n ],\n jacoco: ['toolVersion', 'org.jacoco:jacoco'],\n jmh: ['jmhVersion', 'org.openjdk.jmh:jmh-core'],\n lombok: ['version', 'org.projectlombok:lombok'],\n micronaut: ['version', 'io.micronaut.platform:micronaut-platform'],\n pmd: ['toolVersion', 'net.sourceforge.pmd:pmd-java'],\n spotbugs: ['toolVersion', 'com.github.spotbugs:spotbugs'],\n};\n\nexport const GRADLE_TEST_SUITES = {\n useJunit: 'junit:junit',\n useJUnitJupiter: 'org.junit.jupiter:junit-jupiter',\n useKotlinTest: 'org.jetbrains.kotlin:kotlin-test-junit',\n useSpock: 'org.spockframework:spock-core',\n useTestNG: 'org.testng:testng',\n};\n\nexport function storeVarToken(ctx: Ctx, node: lexer.Token): Ctx {\n ctx.varTokens.push(node);\n return ctx;\n}\n\nexport function increaseNestingDepth(ctx: Ctx): Ctx {\n ctx.tmpNestingDepth.push(...ctx.varTokens);\n ctx.varTokens = [];\n return ctx;\n}\n\nexport function reduceNestingDepth(ctx: Ctx): Ctx {\n ctx.tmpNestingDepth.pop();\n return ctx;\n}\n\nexport function prependNestingDepth(ctx: Ctx): Ctx {\n ctx.varTokens = [...clone(ctx.tmpNestingDepth), ...ctx.varTokens];\n return ctx;\n}\n\nexport function storeInTokenMap(ctx: Ctx, tokenMapKey: string): Ctx {\n ctx.tokenMap[tokenMapKey] = ctx.varTokens;\n ctx.varTokens = [];\n\n return ctx;\n}\n\nexport function loadFromTokenMap(\n ctx: Ctx,\n tokenMapKey: string,\n): NonEmptyArray<lexer.Token> {\n const tokens = ctx.tokenMap[tokenMapKey];\n if (!tokens) {\n throw new Error(`Expected token ${tokenMapKey} not found`);\n }\n\n return tokens as NonEmptyArray<lexer.Token>;\n}\n\nexport function cleanupTempVars(ctx: Ctx): Ctx {\n ctx.tokenMap = {};\n ctx.varTokens = [];\n\n return ctx;\n}\n\nexport function stripReservedPrefixFromKeyTokens(ctx: Ctx): Ctx {\n const unwantedPrefixes = [\n 'ext',\n 'extra',\n 'project',\n 'rootProject',\n 'properties',\n ];\n while (\n ctx.varTokens.length > 1 && // ensures there will be always at least one token\n ctx.varTokens[0] &&\n unwantedPrefixes.includes(ctx.varTokens[0].value)\n ) {\n ctx.varTokens.shift();\n }\n\n return ctx;\n}\n\nexport function coalesceVariable(ctx: Ctx): Ctx {\n if (ctx.varTokens.length > 1) {\n ctx.varTokens[0].value = ctx.varTokens\n .map((token) => token.value)\n .join('.');\n ctx.varTokens.length = 1;\n }\n\n return ctx;\n}\n\nexport function findVariableInKotlinImport(\n name: string,\n ctx: Ctx,\n variables: PackageVariables,\n): VariableData | undefined {\n if (ctx.tmpKotlinImportStore.length && name.includes('.')) {\n for (const tokens of ctx.tmpKotlinImportStore) {\n const lastToken = tokens[tokens.length - 1];\n if (lastToken && name.startsWith(`${lastToken.value}.`)) {\n const prefix = tokens\n .slice(0, -1)\n .map((token) => token.value)\n .join('.');\n const identifier = `${prefix}.${name}`;\n\n if (variables[identifier]) {\n return variables[identifier];\n }\n }\n }\n }\n\n return undefined;\n}\n\nexport function findVariable(\n name: string,\n ctx: Ctx,\n variables: PackageVariables = ctx.globalVars,\n): VariableData | undefined {\n if (ctx.tmpNestingDepth.length) {\n const prefixParts = ctx.tmpNestingDepth.map((token) => token.value);\n for (let idx = ctx.tmpNestingDepth.length; idx > 0; idx -= 1) {\n const prefix = prefixParts.slice(0, idx).join('.');\n const identifier = `${prefix}.${name}`;\n\n if (variables[identifier]) {\n return variables[identifier];\n }\n }\n }\n\n if (variables[name]) {\n return variables[name];\n }\n\n return findVariableInKotlinImport(name, ctx, variables);\n}\n\nexport function interpolateString(\n childTokens: lexer.Token[],\n ctx: Ctx,\n variables: PackageVariables = ctx.globalVars,\n): string | null {\n const resolvedSubstrings: string[] = [];\n for (const childToken of childTokens) {\n const type = childToken.type;\n if (type === 'string-value') {\n resolvedSubstrings.push(childToken.value);\n } else if (type === 'symbol') {\n const varData = findVariable(childToken.value, ctx, variables);\n if (varData) {\n resolvedSubstrings.push(varData.value);\n } else {\n return null;\n }\n } else {\n return null;\n }\n }\n\n return resolvedSubstrings.join('');\n}\n\nexport const qStringValue = q.str((ctx: Ctx, node: lexer.Token) => {\n storeVarToken(ctx, node);\n return ctx;\n});\n\nexport const qStringValueAsSymbol = q.str((ctx: Ctx, node: lexer.Token) => {\n const nodeTransformed: lexer.SymbolToken = {\n ...node,\n type: 'symbol',\n };\n storeVarToken(ctx, nodeTransformed);\n return ctx;\n});\n\n// foo.bar[\"baz\"] = \"1.2.3\"\nexport const qVariableAssignmentIdentifier = q\n .sym(storeVarToken)\n .many(\n q.alt(\n q.op<Ctx>('.').sym(storeVarToken),\n q.tree<Ctx>({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '[',\n endsWith: ']',\n search: q.begin<Ctx>().join(qStringValueAsSymbol).end(),\n }),\n ),\n 0,\n 32,\n )\n .handler(stripReservedPrefixFromKeyTokens);\n\n// foo.bar[\"baz\"] -> \"foo.bar.baz\"\nexport const qVariableAccessIdentifier = q\n .handler<Ctx>((ctx) => {\n ctx.tmpTokenStore.backupVarAccessTokens = ctx.varTokens;\n ctx.varTokens = [];\n return ctx;\n })\n .join(qVariableAssignmentIdentifier)\n .handler(coalesceVariable)\n .handler((ctx) => {\n ctx.varTokens = [\n ...ctx.tmpTokenStore.backupVarAccessTokens,\n ...ctx.varTokens,\n ];\n delete ctx.tmpTokenStore.backupVarAccessTokens;\n return ctx;\n });\n\n// project.ext.getProperty(...)\n// extra.get(...)\nexport const qPropertyAccessIdentifier = q\n .opt(q.sym<Ctx>(regEx(/^(?:rootProject|project)$/)).op('.'))\n .alt(\n q.opt(q.sym<Ctx>('ext').op('.')).sym(regEx(/^(?:property|getProperty)$/)),\n q\n .sym<Ctx>(regEx(/^(?:extra|ext)$/))\n .op('.')\n .sym('get'),\n )\n .tree({\n maxDepth: 1,\n startsWith: '(',\n endsWith: ')',\n search: q.begin<Ctx>().join(qStringValueAsSymbol).end(),\n })\n .opt(q.sym<Ctx>('as').sym('String'));\n\n// \"foo${bar}baz\"\nexport const qTemplateString = q\n .tree({\n type: 'string-tree',\n maxDepth: 2,\n preHandler: (ctx) => {\n ctx.tmpTokenStore.templateTokens = [];\n return ctx;\n },\n search: q\n .alt(qStringValue, qPropertyAccessIdentifier, qVariableAccessIdentifier)\n .handler((ctx) => {\n ctx.tmpTokenStore.templateTokens?.push(...ctx.varTokens);\n ctx.varTokens = [];\n return ctx;\n }),\n })\n .handler((ctx) => {\n ctx.varTokens = ctx.tmpTokenStore.templateTokens!;\n return ctx;\n });\n\n// foo = \"bar\"\n// foo + foo + \"${foo}\" + \"foo\" => \"barbarbarfoo\"\nexport const qConcatExpr = (\n ...matchers: q.QueryBuilder<Ctx, parser.Node>[]\n): q.QueryBuilder<Ctx, parser.Node> =>\n q.alt(...matchers).many(q.op<Ctx>('+').alt(...matchers), 0, 32);\n\nexport const qValueMatcher = qConcatExpr(\n qTemplateString,\n qPropertyAccessIdentifier,\n qVariableAccessIdentifier,\n);\n\n// import foo.bar\n// runtimeOnly(\"some:foo:${bar.bazVersion}\")\nexport const qKotlinImport = q\n .sym<Ctx>('import')\n .join(qVariableAssignmentIdentifier)\n .handler((ctx) => {\n ctx.tmpKotlinImportStore.push(ctx.varTokens);\n return ctx;\n })\n .handler(cleanupTempVars);\n\n// foo { bar { baz } }\n// foo.bar { baz }\nexport const qDotOrBraceExpr = (\n symValue: q.SymMatcherValue,\n matcher: q.QueryBuilder<Ctx, parser.Node>,\n): q.QueryBuilder<Ctx, parser.Node> =>\n q.sym<Ctx>(symValue).alt(\n q.op<Ctx>('.').join(matcher),\n q.tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '{',\n endsWith: '}',\n search: matcher,\n }),\n );\n\nexport const qGroupId = qValueMatcher.handler((ctx) =>\n storeInTokenMap(ctx, 'groupId'),\n);\n\nexport const qArtifactId = qValueMatcher.handler((ctx) =>\n storeInTokenMap(ctx, 'artifactId'),\n);\n\nexport const qVersion = qValueMatcher.handler((ctx) =>\n storeInTokenMap(ctx, 'version'),\n);\n"],"mappings":"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"}
1
+ {"version":3,"file":"common.js","names":["q"],"sources":["../../../../../lib/modules/manager/gradle/parser/common.ts"],"sourcesContent":["import type { lexer, parser } from '@renovatebot/good-enough-parser';\nimport { query as q } from '@renovatebot/good-enough-parser';\nimport { clone } from '../../../../util/clone.ts';\nimport { regEx } from '../../../../util/regex.ts';\nimport type {\n Ctx,\n NonEmptyArray,\n PackageVariables,\n VariableData,\n} from '../types.ts';\n\nexport const REGISTRY_URLS = {\n google: 'https://dl.google.com/android/maven2/',\n gradlePluginPortal: 'https://plugins.gradle.org/m2/',\n jcenter: 'https://jcenter.bintray.com/',\n mavenCentral: 'https://repo.maven.apache.org/maven2',\n};\n\nexport const GRADLE_PLUGINS = {\n checkstyle: ['toolVersion', 'com.puppycrawl.tools:checkstyle'],\n codenarc: ['toolVersion', 'org.codenarc:CodeNarc'],\n composeOptions: [\n 'kotlinCompilerExtensionVersion',\n 'androidx.compose.compiler:compiler',\n ],\n detekt: ['toolVersion', 'io.gitlab.arturbosch.detekt:detekt-core'],\n findbugs: ['toolVersion', 'com.google.code.findbugs:findbugs'],\n googleJavaFormat: [\n 'toolVersion',\n 'com.google.googlejavaformat:google-java-format',\n ],\n jacoco: ['toolVersion', 'org.jacoco:jacoco'],\n jmh: ['jmhVersion', 'org.openjdk.jmh:jmh-core'],\n lombok: ['version', 'org.projectlombok:lombok'],\n micronaut: ['version', 'io.micronaut.platform:micronaut-platform'],\n pmd: ['toolVersion', 'net.sourceforge.pmd:pmd-java'],\n spotbugs: ['toolVersion', 'com.github.spotbugs:spotbugs'],\n};\n\nexport const GRADLE_TEST_SUITES = {\n useJunit: 'junit:junit',\n useJUnitJupiter: 'org.junit.jupiter:junit-jupiter',\n useKotlinTest: 'org.jetbrains.kotlin:kotlin-test-junit',\n useSpock: 'org.spockframework:spock-core',\n useTestNG: 'org.testng:testng',\n};\n\nexport function storeVarToken(ctx: Ctx, node: lexer.Token): Ctx {\n ctx.varTokens.push(node);\n return ctx;\n}\n\nexport function increaseNestingDepth(ctx: Ctx): Ctx {\n ctx.tmpNestingDepth.push(...ctx.varTokens);\n ctx.varTokens = [];\n return ctx;\n}\n\nexport function reduceNestingDepth(ctx: Ctx): Ctx {\n ctx.tmpNestingDepth.pop();\n return ctx;\n}\n\nexport function prependNestingDepth(ctx: Ctx): Ctx {\n ctx.varTokens = [...clone(ctx.tmpNestingDepth), ...ctx.varTokens];\n return ctx;\n}\n\nexport function storeInTokenMap(ctx: Ctx, tokenMapKey: string): Ctx {\n ctx.tokenMap[tokenMapKey] = ctx.varTokens;\n ctx.varTokens = [];\n\n return ctx;\n}\n\nexport function loadFromTokenMap(\n ctx: Ctx,\n tokenMapKey: string,\n): NonEmptyArray<lexer.Token> {\n const tokens = ctx.tokenMap[tokenMapKey];\n if (!tokens) {\n throw new Error(`Expected token ${tokenMapKey} not found`);\n }\n\n return tokens as NonEmptyArray<lexer.Token>;\n}\n\nexport function cleanupTempVars(ctx: Ctx): Ctx {\n ctx.tokenMap = {};\n ctx.varTokens = [];\n\n return ctx;\n}\n\nexport function stripReservedPrefixFromKeyTokens(ctx: Ctx): Ctx {\n const unwantedPrefixes = [\n 'ext',\n 'extra',\n 'project',\n 'rootProject',\n 'properties',\n ];\n while (\n ctx.varTokens.length > 1 && // ensures there will be always at least one token\n ctx.varTokens[0] &&\n unwantedPrefixes.includes(ctx.varTokens[0].value)\n ) {\n ctx.varTokens.shift();\n }\n\n return ctx;\n}\n\nexport function coalesceVariable(ctx: Ctx): Ctx {\n if (ctx.varTokens.length > 1) {\n ctx.varTokens[0].value = ctx.varTokens\n .map((token) => token.value)\n .join('.');\n ctx.varTokens.length = 1;\n }\n\n return ctx;\n}\n\nexport function findVariableInKotlinImport(\n name: string,\n ctx: Ctx,\n variables: PackageVariables,\n): VariableData | undefined {\n if (ctx.tmpKotlinImportStore.length && name.includes('.')) {\n for (const tokens of ctx.tmpKotlinImportStore) {\n const lastToken = tokens[tokens.length - 1];\n if (lastToken && name.startsWith(`${lastToken.value}.`)) {\n const prefix = tokens\n .slice(0, -1)\n .map((token) => token.value)\n .join('.');\n const identifier = `${prefix}.${name}`;\n\n if (variables[identifier]) {\n return variables[identifier];\n }\n }\n }\n }\n\n return undefined;\n}\n\nexport function findVariable(\n name: string,\n ctx: Ctx,\n variables: PackageVariables = ctx.globalVars,\n): VariableData | undefined {\n if (ctx.tmpNestingDepth.length) {\n const prefixParts = ctx.tmpNestingDepth.map((token) => token.value);\n for (let idx = ctx.tmpNestingDepth.length; idx > 0; idx -= 1) {\n const prefix = prefixParts.slice(0, idx).join('.');\n const identifier = `${prefix}.${name}`;\n\n if (variables[identifier]) {\n return variables[identifier];\n }\n }\n }\n\n if (variables[name]) {\n return variables[name];\n }\n\n return findVariableInKotlinImport(name, ctx, variables);\n}\n\nexport function interpolateString(\n childTokens: lexer.Token[],\n ctx: Ctx,\n variables: PackageVariables = ctx.globalVars,\n): string | null {\n const resolvedSubstrings: string[] = [];\n for (const childToken of childTokens) {\n const type = childToken.type;\n if (type === 'string-value') {\n resolvedSubstrings.push(childToken.value);\n } else if (type === 'symbol') {\n const varData = findVariable(childToken.value, ctx, variables);\n if (varData) {\n resolvedSubstrings.push(varData.value);\n } else {\n return null;\n }\n } else {\n return null;\n }\n }\n\n return resolvedSubstrings.join('');\n}\n\nexport const qStringValue = q.str((ctx: Ctx, node: lexer.Token) => {\n storeVarToken(ctx, node);\n return ctx;\n});\n\nexport const qStringValueAsSymbol = q.str((ctx: Ctx, node: lexer.Token) => {\n const nodeTransformed: lexer.SymbolToken = {\n ...node,\n type: 'symbol',\n };\n storeVarToken(ctx, nodeTransformed);\n return ctx;\n});\n\n// https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Provider.html#get()\nexport const qProviderValue = q\n .tree({\n maxDepth: 1,\n type: 'wrapped-tree',\n startsWith: '(',\n endsWith: ')',\n search: q.begin<Ctx>().end(),\n })\n .handler((ctx) => {\n if (ctx.varTokens.length > 1 && ctx.varTokens.at(-1)?.value === 'get') {\n ctx.varTokens.pop();\n }\n return ctx;\n });\n\n// foo.bar[\"baz\"] = \"1.2.3\"\nexport const qVariableAssignmentIdentifier = q\n .sym(storeVarToken)\n .many(\n q.alt(\n q.op<Ctx>('.').sym(storeVarToken),\n q.tree<Ctx>({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '[',\n endsWith: ']',\n search: q.begin<Ctx>().join(qStringValueAsSymbol).end(),\n }),\n ),\n 0,\n 32,\n )\n .handler(stripReservedPrefixFromKeyTokens);\n\n// foo.bar[\"baz\"] -> \"foo.bar.baz\"\nexport const qVariableAccessIdentifier = q\n .handler<Ctx>((ctx) => {\n ctx.tmpTokenStore.backupVarAccessTokens = ctx.varTokens;\n ctx.varTokens = [];\n return ctx;\n })\n .join(qVariableAssignmentIdentifier)\n .opt(qProviderValue)\n .handler(coalesceVariable)\n .handler((ctx) => {\n ctx.varTokens = [\n ...ctx.tmpTokenStore.backupVarAccessTokens,\n ...ctx.varTokens,\n ];\n delete ctx.tmpTokenStore.backupVarAccessTokens;\n return ctx;\n });\n\n// project.ext.getProperty(...)\n// extra.get(...)\nexport const qPropertyAccessIdentifier = q\n .opt(q.sym<Ctx>(regEx(/^(?:rootProject|project)$/)).op('.'))\n .alt(\n q.opt(q.sym<Ctx>('ext').op('.')).sym(regEx(/^(?:property|getProperty)$/)),\n q\n .sym<Ctx>(regEx(/^(?:extra|ext)$/))\n .op('.')\n .sym('get'),\n )\n .tree({\n maxDepth: 1,\n startsWith: '(',\n endsWith: ')',\n search: q.begin<Ctx>().join(qStringValueAsSymbol).end(),\n })\n .opt(q.sym<Ctx>('as').sym('String'));\n\n// \"foo${bar}baz\"\nexport const qTemplateString = q\n .tree({\n type: 'string-tree',\n maxDepth: 2,\n preHandler: (ctx) => {\n ctx.tmpTokenStore.templateTokens = [];\n return ctx;\n },\n search: q\n .alt(qStringValue, qPropertyAccessIdentifier, qVariableAccessIdentifier)\n .handler((ctx) => {\n ctx.tmpTokenStore.templateTokens?.push(...ctx.varTokens);\n ctx.varTokens = [];\n return ctx;\n }),\n })\n .handler((ctx) => {\n ctx.varTokens = ctx.tmpTokenStore.templateTokens!;\n return ctx;\n });\n\n// foo = \"bar\"\n// foo + foo + \"${foo}\" + \"foo\" => \"barbarbarfoo\"\nexport const qConcatExpr = (\n ...matchers: q.QueryBuilder<Ctx, parser.Node>[]\n): q.QueryBuilder<Ctx, parser.Node> =>\n q.alt(...matchers).many(q.op<Ctx>('+').alt(...matchers), 0, 32);\n\nexport const qValueMatcher = qConcatExpr(\n qTemplateString,\n qPropertyAccessIdentifier,\n qVariableAccessIdentifier,\n);\n\n// import foo.bar\n// runtimeOnly(\"some:foo:${bar.bazVersion}\")\nexport const qKotlinImport = q\n .sym<Ctx>('import')\n .join(qVariableAssignmentIdentifier)\n .handler((ctx) => {\n ctx.tmpKotlinImportStore.push(ctx.varTokens);\n return ctx;\n })\n .handler(cleanupTempVars);\n\n// foo { bar { baz } }\n// foo.bar { baz }\nexport const qDotOrBraceExpr = (\n symValue: q.SymMatcherValue,\n matcher: q.QueryBuilder<Ctx, parser.Node>,\n): q.QueryBuilder<Ctx, parser.Node> =>\n q.sym<Ctx>(symValue).alt(\n q.op<Ctx>('.').join(matcher),\n q.tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '{',\n endsWith: '}',\n search: matcher,\n }),\n );\n\nexport const qGroupId = qValueMatcher.handler((ctx) =>\n storeInTokenMap(ctx, 'groupId'),\n);\n\nexport const qArtifactId = qValueMatcher.handler((ctx) =>\n storeInTokenMap(ctx, 'artifactId'),\n);\n\nexport const qVersion = qValueMatcher.handler((ctx) =>\n storeInTokenMap(ctx, 'version'),\n);\n"],"mappings":"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"}
@@ -31,6 +31,7 @@ function parseDependencyString(input) {
31
31
  }
32
32
  const gradleVersionsFileRegex = regEx("^versions\\.gradle(?:\\.kts)?$", "i");
33
33
  const gradleBuildFileRegex = regEx("^build\\.gradle(?:\\.kts)?$", "i");
34
+ const gradleSettingsFileRegex = regEx("^settings\\.gradle(?:\\.kts)?$", "i");
34
35
  function isGradleScriptFile(path) {
35
36
  const filename = upath.basename(path).toLowerCase();
36
37
  return filename.endsWith(".gradle.kts") || filename.endsWith(".gradle");
@@ -43,6 +44,13 @@ function isGradleBuildFile(path) {
43
44
  const filename = upath.basename(path);
44
45
  return gradleBuildFileRegex.test(filename);
45
46
  }
47
+ function isGradleSettingsFile(path) {
48
+ const filename = upath.basename(path);
49
+ return gradleSettingsFileRegex.test(filename);
50
+ }
51
+ function isGradleDefaultCatalogFile(path) {
52
+ return path.endsWith("/gradle/libs.versions.toml");
53
+ }
46
54
  function isPropsFile(path) {
47
55
  return upath.basename(path).toLowerCase() === "gradle.properties";
48
56
  }
@@ -57,17 +65,20 @@ function toAbsolutePath(packageFile) {
57
65
  }
58
66
  function getFileRank(filename) {
59
67
  if (isPropsFile(filename)) return 0;
60
- if (isGradleVersionsFile(filename)) return 1;
61
- if (isGradleBuildFile(filename)) return 3;
62
- return 2;
68
+ if (isGradleSettingsFile(filename)) return 1;
69
+ if (isGradleDefaultCatalogFile(filename)) return 2;
70
+ if (isGradleVersionsFile(filename)) return 3;
71
+ if (isGradleBuildFile(filename)) return 5;
72
+ return 4;
63
73
  }
64
74
  function reorderFiles(packageFiles) {
65
75
  return packageFiles.map((path) => {
66
76
  const absPath = toAbsolutePath(path);
77
+ const currentDir = upath.dirname(absPath);
67
78
  return {
68
79
  path,
69
80
  absPath,
70
- dir: upath.dirname(absPath),
81
+ dir: isGradleDefaultCatalogFile(absPath) ? upath.dirname(currentDir) : currentDir,
71
82
  rank: getFileRank(absPath)
72
83
  };
73
84
  }).sort((a, b) => {
@@ -94,7 +105,26 @@ function updateVars(registry, dir, newVars) {
94
105
  ...newVars
95
106
  };
96
107
  }
108
+ function updateVarsFromDefaultCatalog(registry, dir, packageFile, newVars) {
109
+ if (!isGradleDefaultCatalogFile(toAbsolutePath(packageFile))) return;
110
+ const rootDir = upath.dirname(dir);
111
+ const oldVars = registry[rootDir] ?? {};
112
+ let defaultLibsExtName = "libs";
113
+ if (oldVars.defaultLibrariesExtensionName?.packageFile && isGradleSettingsFile(oldVars.defaultLibrariesExtensionName.packageFile)) defaultLibsExtName = oldVars.defaultLibrariesExtensionName.value;
114
+ const newVarsRemapped = {};
115
+ for (const [oldKey, variableData] of Object.entries(newVars)) {
116
+ const key = `${defaultLibsExtName}.versions.${oldKey}`;
117
+ newVarsRemapped[key] = {
118
+ ...variableData,
119
+ key
120
+ };
121
+ }
122
+ registry[rootDir] = {
123
+ ...oldVars,
124
+ ...newVarsRemapped
125
+ };
126
+ }
97
127
  //#endregion
98
- export { getVars, isDependencyString, isGradleBuildFile, isGradleScriptFile, isKotlinSourceFile, isPropsFile, isTOMLFile, parseDependencyString, reorderFiles, toAbsolutePath, updateVars, versionLikeSubstring };
128
+ export { getVars, isDependencyString, isGradleBuildFile, isGradleScriptFile, isKotlinSourceFile, isPropsFile, isTOMLFile, parseDependencyString, reorderFiles, toAbsolutePath, updateVars, updateVarsFromDefaultCatalog, versionLikeSubstring };
99
129
 
100
130
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["gradleVersioning"],"sources":["../../../../lib/modules/manager/gradle/utils.ts"],"sourcesContent":["import upath from 'upath';\nimport { regEx } from '../../../util/regex.ts';\nimport { api as gradleVersioning } from '../../versioning/gradle/index.ts';\nimport type { PackageDependency } from '../types.ts';\nimport type {\n GradleManagerData,\n PackageVariables,\n VariableRegistry,\n} from './types.ts';\n\nconst artifactRegex = regEx(\n '^[a-zA-Z][-_a-zA-Z0-9]*(?:\\\\.[a-zA-Z0-9][-_a-zA-Z0-9]*?)*$',\n);\n\nconst versionLikeRegex = regEx('^(?<version>[-_.\\\\[\\\\](),a-zA-Z0-9+! ]+)');\n\n// Extracts version-like and range-like strings from the beginning of input\nexport function versionLikeSubstring(\n input: string | null | undefined,\n): string | null {\n if (!input) {\n return null;\n }\n\n const match = versionLikeRegex.exec(input);\n const version = match?.groups?.version?.trim();\n if (!version || !regEx(/\\d/).test(version)) {\n return null;\n }\n\n if (!gradleVersioning.isValid(version)) {\n return null;\n }\n\n return version;\n}\n\nexport function isDependencyString(input: string): boolean {\n const [depNotation, ...extra] = input.split('@');\n if (extra.length > 1) {\n return false;\n }\n\n const parts = depNotation.split(':');\n if (parts.length !== 3 && parts.length !== 4) {\n return false;\n }\n\n const [groupId, artifactId, version, classifier] = parts;\n\n return !!(\n groupId &&\n artifactId &&\n version &&\n artifactRegex.test(groupId) &&\n artifactRegex.test(artifactId) &&\n (!classifier || artifactRegex.test(classifier)) &&\n version === versionLikeSubstring(version)\n );\n}\n\nexport function parseDependencyString(\n input: string,\n): PackageDependency<GradleManagerData> | null {\n if (!isDependencyString(input)) {\n return null;\n }\n\n const [depNotation, dataType] = input.split('@');\n const [groupId, artifactId, currentValue] = depNotation.split(':');\n\n return {\n depName: `${groupId}:${artifactId}`,\n currentValue,\n ...(dataType && { dataType }),\n };\n}\n\nconst gradleVersionsFileRegex = regEx('^versions\\\\.gradle(?:\\\\.kts)?$', 'i');\nconst gradleBuildFileRegex = regEx('^build\\\\.gradle(?:\\\\.kts)?$', 'i');\n\nexport function isGradleScriptFile(path: string): boolean {\n const filename = upath.basename(path).toLowerCase();\n return filename.endsWith('.gradle.kts') || filename.endsWith('.gradle');\n}\n\nexport function isGradleVersionsFile(path: string): boolean {\n const filename = upath.basename(path);\n return gradleVersionsFileRegex.test(filename);\n}\n\nexport function isGradleBuildFile(path: string): boolean {\n const filename = upath.basename(path);\n return gradleBuildFileRegex.test(filename);\n}\n\nexport function isPropsFile(path: string): boolean {\n const filename = upath.basename(path).toLowerCase();\n return filename === 'gradle.properties';\n}\n\nexport function isKotlinSourceFile(path: string): boolean {\n const filename = upath.basename(path).toLowerCase();\n return filename.endsWith('.kt');\n}\n\nexport function isTOMLFile(path: string): boolean {\n const filename = upath.basename(path).toLowerCase();\n return filename.endsWith('.toml');\n}\n\nexport function toAbsolutePath(packageFile: string): string {\n return upath.join(packageFile.replace(regEx(/^[/\\\\]*/), '/'));\n}\n\nfunction getFileRank(filename: string): number {\n if (isPropsFile(filename)) {\n return 0;\n }\n if (isGradleVersionsFile(filename)) {\n return 1;\n }\n if (isGradleBuildFile(filename)) {\n return 3;\n }\n return 2;\n}\n\nexport function reorderFiles(packageFiles: string[]): string[] {\n return packageFiles\n .map((path) => {\n const absPath = toAbsolutePath(path);\n return {\n path,\n absPath,\n dir: upath.dirname(absPath),\n rank: getFileRank(absPath),\n };\n })\n .sort((a, b) => {\n // Different directories: check parent-child relationship\n if (a.dir !== b.dir) {\n if (a.dir.startsWith(b.dir + '/')) {\n return 1;\n }\n if (b.dir.startsWith(a.dir + '/')) {\n return -1;\n }\n return a.dir.localeCompare(b.dir);\n }\n\n // Same effective directory: rank, if equal sort alphabetically\n return a.rank - b.rank || a.absPath.localeCompare(b.absPath);\n })\n .map((entry) => entry.path);\n}\n\nexport function getVars(\n registry: VariableRegistry,\n dir: string,\n vars: PackageVariables = registry[dir] || {},\n): PackageVariables {\n const dirAbs = toAbsolutePath(dir);\n const parentDir = upath.dirname(dirAbs);\n if (parentDir === dirAbs) {\n return vars;\n }\n const parentVars = registry[parentDir] || {};\n return getVars(registry, parentDir, { ...parentVars, ...vars });\n}\n\nexport function updateVars(\n registry: VariableRegistry,\n dir: string,\n newVars: PackageVariables,\n): void {\n const oldVars = registry[dir] ?? {};\n registry[dir] = { ...oldVars, ...newVars };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","names":["gradleVersioning"],"sources":["../../../../lib/modules/manager/gradle/utils.ts"],"sourcesContent":["import upath from 'upath';\nimport { regEx } from '../../../util/regex.ts';\nimport { api as gradleVersioning } from '../../versioning/gradle/index.ts';\nimport type { PackageDependency } from '../types.ts';\nimport type {\n GradleManagerData,\n PackageVariables,\n VariableRegistry,\n} from './types.ts';\n\nconst artifactRegex = regEx(\n '^[a-zA-Z][-_a-zA-Z0-9]*(?:\\\\.[a-zA-Z0-9][-_a-zA-Z0-9]*?)*$',\n);\n\nconst versionLikeRegex = regEx('^(?<version>[-_.\\\\[\\\\](),a-zA-Z0-9+! ]+)');\n\n// Extracts version-like and range-like strings from the beginning of input\nexport function versionLikeSubstring(\n input: string | null | undefined,\n): string | null {\n if (!input) {\n return null;\n }\n\n const match = versionLikeRegex.exec(input);\n const version = match?.groups?.version?.trim();\n if (!version || !regEx(/\\d/).test(version)) {\n return null;\n }\n\n if (!gradleVersioning.isValid(version)) {\n return null;\n }\n\n return version;\n}\n\nexport function isDependencyString(input: string): boolean {\n const [depNotation, ...extra] = input.split('@');\n if (extra.length > 1) {\n return false;\n }\n\n const parts = depNotation.split(':');\n if (parts.length !== 3 && parts.length !== 4) {\n return false;\n }\n\n const [groupId, artifactId, version, classifier] = parts;\n\n return !!(\n groupId &&\n artifactId &&\n version &&\n artifactRegex.test(groupId) &&\n artifactRegex.test(artifactId) &&\n (!classifier || artifactRegex.test(classifier)) &&\n version === versionLikeSubstring(version)\n );\n}\n\nexport function parseDependencyString(\n input: string,\n): PackageDependency<GradleManagerData> | null {\n if (!isDependencyString(input)) {\n return null;\n }\n\n const [depNotation, dataType] = input.split('@');\n const [groupId, artifactId, currentValue] = depNotation.split(':');\n\n return {\n depName: `${groupId}:${artifactId}`,\n currentValue,\n ...(dataType && { dataType }),\n };\n}\n\nconst gradleVersionsFileRegex = regEx('^versions\\\\.gradle(?:\\\\.kts)?$', 'i');\nconst gradleBuildFileRegex = regEx('^build\\\\.gradle(?:\\\\.kts)?$', 'i');\nconst gradleSettingsFileRegex = regEx('^settings\\\\.gradle(?:\\\\.kts)?$', 'i');\n\nexport function isGradleScriptFile(path: string): boolean {\n const filename = upath.basename(path).toLowerCase();\n return filename.endsWith('.gradle.kts') || filename.endsWith('.gradle');\n}\n\nexport function isGradleVersionsFile(path: string): boolean {\n const filename = upath.basename(path);\n return gradleVersionsFileRegex.test(filename);\n}\n\nexport function isGradleBuildFile(path: string): boolean {\n const filename = upath.basename(path);\n return gradleBuildFileRegex.test(filename);\n}\n\nexport function isGradleSettingsFile(path: string): boolean {\n const filename = upath.basename(path);\n return gradleSettingsFileRegex.test(filename);\n}\n\nexport function isGradleDefaultCatalogFile(path: string): boolean {\n return path.endsWith('/gradle/libs.versions.toml');\n}\n\nexport function isPropsFile(path: string): boolean {\n const filename = upath.basename(path).toLowerCase();\n return filename === 'gradle.properties';\n}\n\nexport function isKotlinSourceFile(path: string): boolean {\n const filename = upath.basename(path).toLowerCase();\n return filename.endsWith('.kt');\n}\n\nexport function isTOMLFile(path: string): boolean {\n const filename = upath.basename(path).toLowerCase();\n return filename.endsWith('.toml');\n}\n\nexport function toAbsolutePath(packageFile: string): string {\n return upath.join(packageFile.replace(regEx(/^[/\\\\]*/), '/'));\n}\n\nfunction getFileRank(filename: string): number {\n if (isPropsFile(filename)) {\n return 0;\n }\n if (isGradleSettingsFile(filename)) {\n return 1;\n }\n if (isGradleDefaultCatalogFile(filename)) {\n return 2;\n }\n if (isGradleVersionsFile(filename)) {\n return 3;\n }\n if (isGradleBuildFile(filename)) {\n return 5;\n }\n return 4;\n}\n\nexport function reorderFiles(packageFiles: string[]): string[] {\n return packageFiles\n .map((path) => {\n const absPath = toAbsolutePath(path);\n const currentDir = upath.dirname(absPath);\n\n return {\n path,\n absPath,\n dir: isGradleDefaultCatalogFile(absPath)\n ? upath.dirname(currentDir)\n : currentDir,\n rank: getFileRank(absPath),\n };\n })\n .sort((a, b) => {\n // Different directories: check parent-child relationship\n if (a.dir !== b.dir) {\n if (a.dir.startsWith(b.dir + '/')) {\n return 1;\n }\n if (b.dir.startsWith(a.dir + '/')) {\n return -1;\n }\n return a.dir.localeCompare(b.dir);\n }\n\n // Same effective directory: rank, if equal sort alphabetically\n return a.rank - b.rank || a.absPath.localeCompare(b.absPath);\n })\n .map((entry) => entry.path);\n}\n\nexport function getVars(\n registry: VariableRegistry,\n dir: string,\n vars: PackageVariables = registry[dir] || {},\n): PackageVariables {\n const dirAbs = toAbsolutePath(dir);\n const parentDir = upath.dirname(dirAbs);\n if (parentDir === dirAbs) {\n return vars;\n }\n const parentVars = registry[parentDir] || {};\n return getVars(registry, parentDir, { ...parentVars, ...vars });\n}\n\nexport function updateVars(\n registry: VariableRegistry,\n dir: string,\n newVars: PackageVariables,\n): void {\n const oldVars = registry[dir] ?? {};\n registry[dir] = { ...oldVars, ...newVars };\n}\n\nexport function updateVarsFromDefaultCatalog(\n registry: VariableRegistry,\n dir: string,\n packageFile: string,\n newVars: PackageVariables,\n): void {\n if (!isGradleDefaultCatalogFile(toAbsolutePath(packageFile))) {\n return;\n }\n\n const rootDir = upath.dirname(dir);\n const oldVars = registry[rootDir] ?? {};\n let defaultLibsExtName = 'libs';\n if (\n oldVars.defaultLibrariesExtensionName?.packageFile &&\n isGradleSettingsFile(oldVars.defaultLibrariesExtensionName.packageFile)\n ) {\n defaultLibsExtName = oldVars.defaultLibrariesExtensionName.value;\n }\n\n const newVarsRemapped: PackageVariables = {};\n for (const [oldKey, variableData] of Object.entries(newVars)) {\n const key = `${defaultLibsExtName}.versions.${oldKey}`;\n newVarsRemapped[key] = { ...variableData, key };\n }\n\n registry[rootDir] = { ...oldVars, ...newVarsRemapped };\n}\n"],"mappings":";;;;AAUA,MAAM,gBAAgB,MACpB,6DACD;AAED,MAAM,mBAAmB,MAAM,2CAA2C;AAG1E,SAAgB,qBACd,OACe;AACf,KAAI,CAAC,MACH,QAAO;CAIT,MAAM,UADQ,iBAAiB,KAAK,MAAM,EACnB,QAAQ,SAAS,MAAM;AAC9C,KAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,KAAK,QAAQ,CACxC,QAAO;AAGT,KAAI,CAACA,IAAiB,QAAQ,QAAQ,CACpC,QAAO;AAGT,QAAO;;AAGT,SAAgB,mBAAmB,OAAwB;CACzD,MAAM,CAAC,aAAa,GAAG,SAAS,MAAM,MAAM,IAAI;AAChD,KAAI,MAAM,SAAS,EACjB,QAAO;CAGT,MAAM,QAAQ,YAAY,MAAM,IAAI;AACpC,KAAI,MAAM,WAAW,KAAK,MAAM,WAAW,EACzC,QAAO;CAGT,MAAM,CAAC,SAAS,YAAY,SAAS,cAAc;AAEnD,QAAO,CAAC,EACN,WACA,cACA,WACA,cAAc,KAAK,QAAQ,IAC3B,cAAc,KAAK,WAAW,KAC7B,CAAC,cAAc,cAAc,KAAK,WAAW,KAC9C,YAAY,qBAAqB,QAAQ;;AAI7C,SAAgB,sBACd,OAC6C;AAC7C,KAAI,CAAC,mBAAmB,MAAM,CAC5B,QAAO;CAGT,MAAM,CAAC,aAAa,YAAY,MAAM,MAAM,IAAI;CAChD,MAAM,CAAC,SAAS,YAAY,gBAAgB,YAAY,MAAM,IAAI;AAElE,QAAO;EACL,SAAS,GAAG,QAAQ,GAAG;EACvB;EACA,GAAI,YAAY,EAAE,UAAU;EAC7B;;AAGH,MAAM,0BAA0B,MAAM,kCAAkC,IAAI;AAC5E,MAAM,uBAAuB,MAAM,+BAA+B,IAAI;AACtE,MAAM,0BAA0B,MAAM,kCAAkC,IAAI;AAE5E,SAAgB,mBAAmB,MAAuB;CACxD,MAAM,WAAW,MAAM,SAAS,KAAK,CAAC,aAAa;AACnD,QAAO,SAAS,SAAS,cAAc,IAAI,SAAS,SAAS,UAAU;;AAGzE,SAAgB,qBAAqB,MAAuB;CAC1D,MAAM,WAAW,MAAM,SAAS,KAAK;AACrC,QAAO,wBAAwB,KAAK,SAAS;;AAG/C,SAAgB,kBAAkB,MAAuB;CACvD,MAAM,WAAW,MAAM,SAAS,KAAK;AACrC,QAAO,qBAAqB,KAAK,SAAS;;AAG5C,SAAgB,qBAAqB,MAAuB;CAC1D,MAAM,WAAW,MAAM,SAAS,KAAK;AACrC,QAAO,wBAAwB,KAAK,SAAS;;AAG/C,SAAgB,2BAA2B,MAAuB;AAChE,QAAO,KAAK,SAAS,6BAA6B;;AAGpD,SAAgB,YAAY,MAAuB;AAEjD,QADiB,MAAM,SAAS,KAAK,CAAC,aAAa,KAC/B;;AAGtB,SAAgB,mBAAmB,MAAuB;AAExD,QADiB,MAAM,SAAS,KAAK,CAAC,aAAa,CACnC,SAAS,MAAM;;AAGjC,SAAgB,WAAW,MAAuB;AAEhD,QADiB,MAAM,SAAS,KAAK,CAAC,aAAa,CACnC,SAAS,QAAQ;;AAGnC,SAAgB,eAAe,aAA6B;AAC1D,QAAO,MAAM,KAAK,YAAY,QAAQ,MAAM,UAAU,EAAE,IAAI,CAAC;;AAG/D,SAAS,YAAY,UAA0B;AAC7C,KAAI,YAAY,SAAS,CACvB,QAAO;AAET,KAAI,qBAAqB,SAAS,CAChC,QAAO;AAET,KAAI,2BAA2B,SAAS,CACtC,QAAO;AAET,KAAI,qBAAqB,SAAS,CAChC,QAAO;AAET,KAAI,kBAAkB,SAAS,CAC7B,QAAO;AAET,QAAO;;AAGT,SAAgB,aAAa,cAAkC;AAC7D,QAAO,aACJ,KAAK,SAAS;EACb,MAAM,UAAU,eAAe,KAAK;EACpC,MAAM,aAAa,MAAM,QAAQ,QAAQ;AAEzC,SAAO;GACL;GACA;GACA,KAAK,2BAA2B,QAAQ,GACpC,MAAM,QAAQ,WAAW,GACzB;GACJ,MAAM,YAAY,QAAQ;GAC3B;GACD,CACD,MAAM,GAAG,MAAM;AAEd,MAAI,EAAE,QAAQ,EAAE,KAAK;AACnB,OAAI,EAAE,IAAI,WAAW,EAAE,MAAM,IAAI,CAC/B,QAAO;AAET,OAAI,EAAE,IAAI,WAAW,EAAE,MAAM,IAAI,CAC/B,QAAO;AAET,UAAO,EAAE,IAAI,cAAc,EAAE,IAAI;;AAInC,SAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,cAAc,EAAE,QAAQ;GAC5D,CACD,KAAK,UAAU,MAAM,KAAK;;AAG/B,SAAgB,QACd,UACA,KACA,OAAyB,SAAS,QAAQ,EAAE,EAC1B;CAClB,MAAM,SAAS,eAAe,IAAI;CAClC,MAAM,YAAY,MAAM,QAAQ,OAAO;AACvC,KAAI,cAAc,OAChB,QAAO;AAGT,QAAO,QAAQ,UAAU,WAAW;EAAE,GADnB,SAAS,cAAc,EAAE;EACS,GAAG;EAAM,CAAC;;AAGjE,SAAgB,WACd,UACA,KACA,SACM;AAEN,UAAS,OAAO;EAAE,GADF,SAAS,QAAQ,EAAE;EACL,GAAG;EAAS;;AAG5C,SAAgB,6BACd,UACA,KACA,aACA,SACM;AACN,KAAI,CAAC,2BAA2B,eAAe,YAAY,CAAC,CAC1D;CAGF,MAAM,UAAU,MAAM,QAAQ,IAAI;CAClC,MAAM,UAAU,SAAS,YAAY,EAAE;CACvC,IAAI,qBAAqB;AACzB,KACE,QAAQ,+BAA+B,eACvC,qBAAqB,QAAQ,8BAA8B,YAAY,CAEvE,sBAAqB,QAAQ,8BAA8B;CAG7D,MAAM,kBAAoC,EAAE;AAC5C,MAAK,MAAM,CAAC,QAAQ,iBAAiB,OAAO,QAAQ,QAAQ,EAAE;EAC5D,MAAM,MAAM,GAAG,mBAAmB,YAAY;AAC9C,kBAAgB,OAAO;GAAE,GAAG;GAAc;GAAK;;AAGjD,UAAS,WAAW;EAAE,GAAG;EAAS,GAAG;EAAiB"}
@@ -3,9 +3,9 @@ import { z } from "zod/v3";
3
3
  //#region lib/modules/platform/github/schema.d.ts
4
4
  declare const GithubVulnerabilityAlerts: z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodAny, "many">, {
5
5
  security_advisory: {
6
- description: string;
7
6
  ghsa_id: string;
8
7
  summary: string;
8
+ description: string;
9
9
  identifiers: {
10
10
  value: string;
11
11
  type: string;
@@ -28,7 +28,7 @@ declare const GithubVulnerabilityAlerts: z.ZodEffects<z.ZodEffects<z.ZodArray<z.
28
28
  security_vulnerability: {
29
29
  severity: "low" | "medium" | "high" | "critical";
30
30
  package: {
31
- ecosystem: "composer" | "maven" | "npm" | "rust" | "go" | "nuget" | "actions" | "pip" | "rubygems";
31
+ ecosystem: "composer" | "maven" | "npm" | "rust" | "go" | "actions" | "nuget" | "pip" | "rubygems";
32
32
  name: string;
33
33
  };
34
34
  vulnerable_version_range: string;
@@ -42,9 +42,9 @@ declare const GithubVulnerabilityAlerts: z.ZodEffects<z.ZodEffects<z.ZodArray<z.
42
42
  dismissed_reason?: string | null | undefined;
43
43
  }[], any[]>, {
44
44
  security_advisory: {
45
- description: string;
46
45
  ghsa_id: string;
47
46
  summary: string;
47
+ description: string;
48
48
  identifiers: {
49
49
  value: string;
50
50
  type: string;
@@ -67,7 +67,7 @@ declare const GithubVulnerabilityAlerts: z.ZodEffects<z.ZodEffects<z.ZodArray<z.
67
67
  security_vulnerability: {
68
68
  severity: "low" | "medium" | "high" | "critical";
69
69
  package: {
70
- ecosystem: "composer" | "maven" | "npm" | "rust" | "go" | "nuget" | "actions" | "pip" | "rubygems";
70
+ ecosystem: "composer" | "maven" | "npm" | "rust" | "go" | "actions" | "nuget" | "pip" | "rubygems";
71
71
  name: string;
72
72
  };
73
73
  vulnerable_version_range: string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "renovate",
3
3
  "description": "Automated dependency updates. Flexible so you don't need to be.",
4
- "version": "43.132.3",
4
+ "version": "43.133.0",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$id": "https://docs.renovatebot.com/renovate-schema.json",
3
- "title": "JSON schema for Renovate 43.132.3 config files (https://renovatebot.com/)",
3
+ "title": "JSON schema for Renovate 43.133.0 config files (https://renovatebot.com/)",
4
4
  "$schema": "http://json-schema.org/draft-07/schema#",
5
- "x-renovate-version": "43.132.3",
5
+ "x-renovate-version": "43.133.0",
6
6
  "allowComments": true,
7
7
  "type": "object",
8
8
  "properties": {