renovate 43.105.0 → 43.106.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", "379ab2800e100ac87682b65edd43b0c3d890307581b8ffcf7817e4610daa89eb");
50
+ hashMap.set("gradle", "f430d8d768b56889ad1e5a69965841e85cc700e364d15db7bce680e8a5d6f821");
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','7d6414a195345c60a25a9d92c4b17c0b6df90be086fc5559150e2e5496976890');\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','09eb044219d74331fea135f50121b7d4d146333eb97e4ccbfa9ddf0eb4012963');\nhashMap.set('bitrise','afdb46fe37fc0307943089e18b6724065394805e628b4b6c4430a6068c494030');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','1322232bf1d0c4fa796e31a00488453bdcd00d4958431d9e424c1635e60a99bd');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','6d7e9d2018ac03e15f19e8b40ef70dd87d509d5affca24bc464d085899880a25');\nhashMap.set('cake','288c3c36a50371b26957fa71992cc335228d53563c75597b36919ac7286e96eb');\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','d3b1deb4dfcdba586cd97b4d2d2f9f1b89531bcc31b6ead0d960b990586d6058');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','b717a48c525ad6b1d434c6a9db828ddebbb85e94519e89ddc4040878e3600e84');\nhashMap.set('gomod','82e877b22c0dd0217368760bb5d38430657fff63d07c289793a866f0845d2976');\nhashMap.set('gradle','379ab2800e100ac87682b65edd43b0c3d890307581b8ffcf7817e4610daa89eb');\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','6192273014bff02a3e0c68aa8a52c3563398adb4c7d3f7141c25f8736f488748');\nhashMap.set('mix','1116e1adf1c18c866f0a9e6fa065c4fb9da055d8d150e625344899bb94095481');\nhashMap.set('nix','f3ffec2f14e7261de8068895b91392e992dcef208fbaf52110d6862e4712c031');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','a7e42b0c5668d2f066532d3a2a373725f8555d6da451957594f6250e332ee6f4');\nhashMap.set('nuget','354abfda178ad549e8ff756303def7c58fa32e4e152b7e6f738a1c1f3f5d553c');\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','b17af6eaa33e7babcc52cfc9a617c7801c0efb1125bbd6d0d4e9f6fe33afd353');\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','61f9323c91c45227da71d43120fa1eddc41685502be017118975f77b44fb1b8e');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','167a5cc79098803be3b815a28cc40ef3361c455751e1d6a7a99ba91bfce26709');\nhashMap.set('swift','79ec9a6a2a8bb4853bb78bbb3a2a6e64e3b32b0ddeb312385abb3a14366ad505');\nhashMap.set('tekton','4e35c75bba4abc9c3cf49c55da6c19db4f4e9181d1fd9583288ab55ef7c944fd');\nhashMap.set('terraform','5bd62ce12c23896b8ecb2385a60a3cb9eb72badf10f9984bfed38f50f9262266');\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('jsonata','3b5f465b586993f92c8490e70885e7eecce9b6556bcc376dd9c11db8ee9e6960');\nhashMap.set('regex','7b643b49e498465cf91b25b8b840bb1fec8c8a3a59bfa8f97a39c976675325a0');"],"mappings":";AAAA,MAAa,0BAAU,IAAI,KAAqB;AAEhD,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,kBAAiB,mEAAmE;AAChG,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,mBAAkB,mEAAmE;AACjG,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,kBAAiB,mEAAmE;AAChG,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,gBAAe,mEAAmE;AAC9F,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,uBAAsB,mEAAmE;AACrG,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,eAAc,mEAAmE;AAC7F,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,gBAAe,mEAAmE;AAC9F,QAAQ,IAAI,kBAAiB,mEAAmE;AAChG,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,kBAAiB,mEAAmE;AAChG,QAAQ,IAAI,kBAAiB,mEAAmE;AAChG,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,oBAAmB,mEAAmE;AAClG,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,kBAAiB,mEAAmE;AAChG,QAAQ,IAAI,iBAAgB,mEAAmE;AAC/F,QAAQ,IAAI,qBAAoB,mEAAmE;AACnG,QAAQ,IAAI,eAAc,mEAAmE;AAC7F,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,0BAAyB,mEAAmE;AACxG,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,mBAAkB,mEAAmE;AACjG,QAAQ,IAAI,iBAAgB,mEAAmE;AAC/F,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,iBAAgB,mEAAmE;AAC/F,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,eAAc,mEAAmE;AAC7F,QAAQ,IAAI,oBAAmB,mEAAmE;AAClG,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,QAAO,mEAAmE;AACtF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,2BAA0B,mEAAmE;AACzG,QAAQ,IAAI,gBAAe,mEAAmE;AAC9F,QAAQ,IAAI,mBAAkB,mEAAmE;AACjG,QAAQ,IAAI,OAAM,mEAAmE;AACrF,QAAQ,IAAI,YAAW,mEAAmE;AAC1F,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,aAAY,mEAAmE;AAC3F,QAAQ,IAAI,qBAAoB,mEAAmE;AACnG,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,sBAAqB,mEAAmE;AACpG,QAAQ,IAAI,iBAAgB,mEAAmE;AAC/F,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,SAAQ,mEAAmE;AACvF,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,UAAS,mEAAmE;AACxF,QAAQ,IAAI,cAAa,mEAAmE;AAC5F,QAAQ,IAAI,WAAU,mEAAmE;AACzF,QAAQ,IAAI,SAAQ,mEAAmE"}
1
+ {"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','1fbc76f78daa14a8c9ab1142e9d1e05c746c0419a9f1455e4279f476590d0c04');\nhashMap.set('ansible-galaxy','8226d47128f2018825d4d6f84794e3183eb79c706045fa7e88491edd5e64106f');\nhashMap.set('ant','7d6414a195345c60a25a9d92c4b17c0b6df90be086fc5559150e2e5496976890');\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','09eb044219d74331fea135f50121b7d4d146333eb97e4ccbfa9ddf0eb4012963');\nhashMap.set('bitrise','afdb46fe37fc0307943089e18b6724065394805e628b4b6c4430a6068c494030');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','1322232bf1d0c4fa796e31a00488453bdcd00d4958431d9e424c1635e60a99bd');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','6d7e9d2018ac03e15f19e8b40ef70dd87d509d5affca24bc464d085899880a25');\nhashMap.set('cake','288c3c36a50371b26957fa71992cc335228d53563c75597b36919ac7286e96eb');\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','d3b1deb4dfcdba586cd97b4d2d2f9f1b89531bcc31b6ead0d960b990586d6058');\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','6192273014bff02a3e0c68aa8a52c3563398adb4c7d3f7141c25f8736f488748');\nhashMap.set('mix','1116e1adf1c18c866f0a9e6fa065c4fb9da055d8d150e625344899bb94095481');\nhashMap.set('nix','f3ffec2f14e7261de8068895b91392e992dcef208fbaf52110d6862e4712c031');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','a7e42b0c5668d2f066532d3a2a373725f8555d6da451957594f6250e332ee6f4');\nhashMap.set('nuget','354abfda178ad549e8ff756303def7c58fa32e4e152b7e6f738a1c1f3f5d553c');\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','b17af6eaa33e7babcc52cfc9a617c7801c0efb1125bbd6d0d4e9f6fe33afd353');\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','61f9323c91c45227da71d43120fa1eddc41685502be017118975f77b44fb1b8e');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','167a5cc79098803be3b815a28cc40ef3361c455751e1d6a7a99ba91bfce26709');\nhashMap.set('swift','79ec9a6a2a8bb4853bb78bbb3a2a6e64e3b32b0ddeb312385abb3a14366ad505');\nhashMap.set('tekton','4e35c75bba4abc9c3cf49c55da6c19db4f4e9181d1fd9583288ab55ef7c944fd');\nhashMap.set('terraform','5bd62ce12c23896b8ecb2385a60a3cb9eb72badf10f9984bfed38f50f9262266');\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('jsonata','3b5f465b586993f92c8490e70885e7eecce9b6556bcc376dd9c11db8ee9e6960');\nhashMap.set('regex','7b643b49e498465cf91b25b8b840bb1fec8c8a3a59bfa8f97a39c976675325a0');"],"mappings":"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"}
@@ -3,7 +3,7 @@ import api from "../../versioning/gradle/index.js";
3
3
  import upath from "upath";
4
4
  //#region lib/modules/manager/gradle/utils.ts
5
5
  const artifactRegex = regEx("^[a-zA-Z][-_a-zA-Z0-9]*(?:\\.[a-zA-Z0-9][-_a-zA-Z0-9]*?)*$");
6
- const versionLikeRegex = regEx("^(?<version>[-_.\\[\\](),a-zA-Z0-9+ ]+)");
6
+ const versionLikeRegex = regEx("^(?<version>[-_.\\[\\](),a-zA-Z0-9+! ]+)");
7
7
  function versionLikeSubstring(input) {
8
8
  if (!input) return null;
9
9
  const version = versionLikeRegex.exec(input)?.groups?.version?.trim();
@@ -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');\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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"}
@@ -137,34 +137,29 @@ function parsePrefixRange(input) {
137
137
  }
138
138
  return null;
139
139
  }
140
- const mavenBasedRangeRegex = regEx(/^(?<leftBoundStr>[[\](]\s*)(?<leftVal>[-._+a-zA-Z0-9]*?)(?<separator>\s*,\s*)(?<rightVal>[-._+a-zA-Z0-9]*?)(?<rightBoundStr>\s*[[\])])$/);
140
+ const mavenBasedRangeRegex = regEx(/^(?<leftBoundStr>[[\](]\s*)(?<leftVal>[-._+a-zA-Z0-9]*?)(?<separator>\s*,\s*)(?<rightVal>[-._+a-zA-Z0-9]*?)(?<rightBoundStr>\s*[[\])])(?:!!(?<preferredVal>[-._+a-zA-Z0-9]+))?$/);
141
141
  function parseMavenBasedRange(input) {
142
142
  if (!input) return null;
143
143
  const matchGroups = mavenBasedRangeRegex.exec(input)?.groups;
144
- if (matchGroups) {
145
- const { leftBoundStr, separator, rightBoundStr } = matchGroups;
146
- let leftVal = matchGroups.leftVal;
147
- let rightVal = matchGroups.rightVal;
148
- if (!leftVal) leftVal = null;
149
- if (!rightVal) rightVal = null;
150
- const isVersionLeft = isString(leftVal) && isVersion(leftVal);
151
- const isVersionRight = isString(rightVal) && isVersion(rightVal);
152
- if ((leftVal === null || isVersionLeft) && (rightVal === null || isVersionRight)) {
153
- if (isVersionLeft && isVersionRight && leftVal && rightVal && compare(leftVal, rightVal) === 1) return null;
154
- const leftBound = leftBoundStr.trim() === "[" ? "inclusive" : "exclusive";
155
- const rightBound = rightBoundStr.trim() === "]" ? "inclusive" : "exclusive";
156
- return {
157
- leftBound,
158
- leftBoundStr,
159
- leftVal,
160
- separator,
161
- rightBound,
162
- rightBoundStr,
163
- rightVal
164
- };
165
- }
166
- }
167
- return null;
144
+ if (!matchGroups) return null;
145
+ const { leftBoundStr, separator, rightBoundStr } = matchGroups;
146
+ const leftVal = matchGroups.leftVal || null;
147
+ const rightVal = matchGroups.rightVal || null;
148
+ const preferredVal = matchGroups.preferredVal || null;
149
+ const isVersionLeft = isString(leftVal) && isVersion(leftVal);
150
+ const isVersionRight = isString(rightVal) && isVersion(rightVal);
151
+ if (leftVal !== null && !isVersionLeft || rightVal !== null && !isVersionRight) return null;
152
+ if (isVersionLeft && isVersionRight && leftVal && rightVal && compare(leftVal, rightVal) === 1) return null;
153
+ return {
154
+ leftBound: leftBoundStr.trim() === "[" ? "inclusive" : "exclusive",
155
+ leftBoundStr,
156
+ leftVal,
157
+ separator,
158
+ rightBound: rightBoundStr.trim() === "]" ? "inclusive" : "exclusive",
159
+ rightBoundStr,
160
+ rightVal,
161
+ preferredVal
162
+ };
168
163
  }
169
164
  const singleVersionRangeRegex = regEx(/^\[\s*(?<val>[-._+a-zA-Z0-9]*?)\s*\]$/);
170
165
  function parseSingleVersionRange(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"compare.js","names":[],"sources":["../../../../lib/modules/versioning/gradle/compare.ts"],"sourcesContent":["import { isString } from '@sindresorhus/is';\nimport { regEx } from '../../../util/regex.ts';\n\nexport const TokenType = {\n Number: 1,\n String: 2,\n};\n\ninterface Token {\n type: number;\n val: string | number;\n}\n\nfunction iterateChars(\n str: string,\n cb: (p: string | null, n: string | null) => void,\n): void {\n let prev = null;\n let next = null;\n for (let i = 0; i < str.length; i += 1) {\n next = str.charAt(i);\n cb(prev, next);\n prev = next;\n }\n cb(prev, null);\n}\n\nfunction isSeparator(char: string): boolean {\n return regEx(/^[-._+]$/i).test(char);\n}\n\nfunction isDigit(char: string): boolean {\n return regEx(/^\\d$/).test(char);\n}\n\nfunction isLetter(char: string): boolean {\n return !isSeparator(char) && !isDigit(char);\n}\n\nfunction isTransition(prevChar: string, nextChar: string): boolean {\n return (\n (isDigit(prevChar) && isLetter(nextChar)) ||\n (isLetter(prevChar) && isDigit(nextChar))\n );\n}\n\nexport function tokenize(versionStr: string): Token[] | null {\n let result: Token[] | null = [];\n let currentVal = '';\n\n function yieldToken(): void {\n if (result) {\n const val = currentVal;\n if (regEx(/^\\d+$/).test(val)) {\n result.push({\n type: TokenType.Number,\n val: parseInt(val, 10),\n });\n } else {\n result.push({\n type: TokenType.String,\n val,\n });\n }\n }\n }\n\n iterateChars(versionStr, (prevChar, nextChar) => {\n if (nextChar === null) {\n yieldToken();\n } else if (isSeparator(nextChar)) {\n if (prevChar && !isSeparator(prevChar)) {\n yieldToken();\n currentVal = '';\n } else {\n result = null;\n }\n } else if (prevChar !== null && isTransition(prevChar, nextChar)) {\n yieldToken();\n currentVal = nextChar;\n } else {\n currentVal = currentVal.concat(nextChar);\n }\n });\n\n return result;\n}\n\nexport const QualifierRank = {\n Dev: -1,\n Default: 0,\n RC: 1,\n Snapshot: 2,\n Final: 3,\n GA: 4,\n Release: 5,\n SP: 6,\n} as const;\n\nexport function qualifierRank(input: string): number {\n const val = input.toLowerCase();\n if (val === 'dev') {\n return QualifierRank.Dev;\n }\n if (val === 'rc' || val === 'cr') {\n return QualifierRank.RC;\n }\n if (val === 'snapshot') {\n return QualifierRank.Snapshot;\n }\n if (val === 'ga') {\n return QualifierRank.GA;\n }\n if (val === 'final') {\n return QualifierRank.Final;\n }\n if (val === 'release' || val === 'latest' || val === 'sr') {\n return QualifierRank.Release;\n }\n if (val === 'sp') {\n return QualifierRank.SP;\n }\n return QualifierRank.Default;\n}\n\nfunction stringTokenCmp(left: string, right: string): number {\n const leftRank = qualifierRank(left);\n const rightRank = qualifierRank(right);\n if (leftRank === 0 && rightRank === 0) {\n if (left < right) {\n return -1;\n }\n\n if (left > right) {\n return 1;\n }\n } else {\n if (leftRank < rightRank) {\n return -1;\n }\n if (leftRank > rightRank) {\n return 1;\n }\n }\n return 0;\n}\n\nfunction tokenCmp(left: Token | null, right: Token | null): number {\n if (left === null) {\n if (right?.type === TokenType.String) {\n return 1;\n }\n return -1;\n }\n\n if (right === null) {\n if (left.type === TokenType.String) {\n return -1;\n }\n return 1;\n }\n\n if (left.type === TokenType.Number && right.type === TokenType.Number) {\n if (left.val < right.val) {\n return -1;\n }\n if (left.val > right.val) {\n return 1;\n }\n } else if (typeof left.val === 'string' && typeof right.val === 'string') {\n return stringTokenCmp(left.val, right.val);\n } else if (right.type === TokenType.Number) {\n return -1;\n } else if (left.type === TokenType.Number) {\n return 1;\n }\n\n return 0;\n}\n\nexport function compare(left: string, right: string): number {\n const leftTokens = tokenize(left) ?? [];\n const rightTokens = tokenize(right) ?? [];\n const length = Math.max(leftTokens.length, rightTokens.length);\n for (let idx = 0; idx < length; idx += 1) {\n const leftToken = leftTokens[idx] || null;\n const rightToken = rightTokens[idx] || null;\n const cmpResult = tokenCmp(leftToken, rightToken);\n if (cmpResult !== 0) {\n return cmpResult;\n }\n }\n return 0;\n}\n\nexport function parse(input: string): Token[] | null {\n if (!input) {\n return null;\n }\n\n if (!regEx(/^[-._+a-zA-Z0-9]+$/i).test(input)) {\n return null;\n }\n\n if (regEx(/^latest\\.?/i).test(input)) {\n return null;\n }\n\n const tokens = tokenize(input);\n // istanbul ignore if: should not happen\n if (!tokens?.length) {\n return null;\n }\n return tokens;\n}\n\nexport function isVersion(input: string): boolean {\n return !!parse(input);\n}\n\ninterface PrefixRange {\n tokens: Token[];\n}\n\nexport type RangeBound = 'inclusive' | 'exclusive';\n\ninterface MavenBasedRange {\n leftBound: RangeBound;\n leftBoundStr: string;\n leftVal: string | null;\n separator: string;\n rightBound: RangeBound;\n rightBoundStr: string;\n rightVal: string | null;\n}\n\nexport function parsePrefixRange(input: string): PrefixRange | null {\n if (!input) {\n return null;\n }\n\n if (input.trim() === '+') {\n return { tokens: [] };\n }\n\n const postfixRegex = regEx(/[^-._+][-._]\\+$/);\n if (postfixRegex.test(input)) {\n const prefixValue = input.replace(regEx(/[-._]\\+$/), '');\n const tokens = tokenize(prefixValue);\n if (tokens) {\n return { tokens };\n }\n }\n\n return null;\n}\n\nconst mavenBasedRangeRegex = regEx(\n /^(?<leftBoundStr>[[\\](]\\s*)(?<leftVal>[-._+a-zA-Z0-9]*?)(?<separator>\\s*,\\s*)(?<rightVal>[-._+a-zA-Z0-9]*?)(?<rightBoundStr>\\s*[[\\])])$/,\n);\n\nexport function parseMavenBasedRange(input: string): MavenBasedRange | null {\n if (!input) {\n return null;\n }\n\n const matchGroups = mavenBasedRangeRegex.exec(input)?.groups;\n if (matchGroups) {\n const { leftBoundStr, separator, rightBoundStr } = matchGroups;\n let leftVal: string | null = matchGroups.leftVal;\n let rightVal: string | null = matchGroups.rightVal;\n if (!leftVal) {\n leftVal = null;\n }\n if (!rightVal) {\n rightVal = null;\n }\n const isVersionLeft = isString(leftVal) && isVersion(leftVal);\n const isVersionRight = isString(rightVal) && isVersion(rightVal);\n if (\n (leftVal === null || isVersionLeft) &&\n (rightVal === null || isVersionRight)\n ) {\n if (\n isVersionLeft &&\n isVersionRight &&\n leftVal &&\n rightVal &&\n compare(leftVal, rightVal) === 1\n ) {\n return null;\n }\n const leftBound = leftBoundStr.trim() === '[' ? 'inclusive' : 'exclusive';\n const rightBound =\n rightBoundStr.trim() === ']' ? 'inclusive' : 'exclusive';\n return {\n leftBound,\n leftBoundStr,\n leftVal,\n separator,\n rightBound,\n rightBoundStr,\n rightVal,\n };\n }\n }\n\n return null;\n}\n\ninterface SingleVersionRange {\n val: string;\n}\n\nconst singleVersionRangeRegex = regEx(/^\\[\\s*(?<val>[-._+a-zA-Z0-9]*?)\\s*\\]$/);\n\nexport function parseSingleVersionRange(\n input: string,\n): SingleVersionRange | null {\n const matchGroups = singleVersionRangeRegex.exec(input)?.groups;\n if (!matchGroups) {\n return null;\n }\n\n const { val } = matchGroups;\n if (!isVersion(val)) {\n return null;\n }\n\n return { val };\n}\n\nexport function isValid(str: string): boolean {\n if (!str) {\n return false;\n }\n\n return (\n isVersion(str) ||\n !!parsePrefixRange(str) ||\n !!parseMavenBasedRange(str) ||\n !!parseSingleVersionRange(str)\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"compare.js","names":[],"sources":["../../../../lib/modules/versioning/gradle/compare.ts"],"sourcesContent":["import { isString } from '@sindresorhus/is';\nimport { regEx } from '../../../util/regex.ts';\n\nexport const TokenType = {\n Number: 1,\n String: 2,\n};\n\ninterface Token {\n type: number;\n val: string | number;\n}\n\nfunction iterateChars(\n str: string,\n cb: (p: string | null, n: string | null) => void,\n): void {\n let prev = null;\n let next = null;\n for (let i = 0; i < str.length; i += 1) {\n next = str.charAt(i);\n cb(prev, next);\n prev = next;\n }\n cb(prev, null);\n}\n\nfunction isSeparator(char: string): boolean {\n return regEx(/^[-._+]$/i).test(char);\n}\n\nfunction isDigit(char: string): boolean {\n return regEx(/^\\d$/).test(char);\n}\n\nfunction isLetter(char: string): boolean {\n return !isSeparator(char) && !isDigit(char);\n}\n\nfunction isTransition(prevChar: string, nextChar: string): boolean {\n return (\n (isDigit(prevChar) && isLetter(nextChar)) ||\n (isLetter(prevChar) && isDigit(nextChar))\n );\n}\n\nexport function tokenize(versionStr: string): Token[] | null {\n let result: Token[] | null = [];\n let currentVal = '';\n\n function yieldToken(): void {\n if (result) {\n const val = currentVal;\n if (regEx(/^\\d+$/).test(val)) {\n result.push({\n type: TokenType.Number,\n val: parseInt(val, 10),\n });\n } else {\n result.push({\n type: TokenType.String,\n val,\n });\n }\n }\n }\n\n iterateChars(versionStr, (prevChar, nextChar) => {\n if (nextChar === null) {\n yieldToken();\n } else if (isSeparator(nextChar)) {\n if (prevChar && !isSeparator(prevChar)) {\n yieldToken();\n currentVal = '';\n } else {\n result = null;\n }\n } else if (prevChar !== null && isTransition(prevChar, nextChar)) {\n yieldToken();\n currentVal = nextChar;\n } else {\n currentVal = currentVal.concat(nextChar);\n }\n });\n\n return result;\n}\n\nexport const QualifierRank = {\n Dev: -1,\n Default: 0,\n RC: 1,\n Snapshot: 2,\n Final: 3,\n GA: 4,\n Release: 5,\n SP: 6,\n} as const;\n\nexport function qualifierRank(input: string): number {\n const val = input.toLowerCase();\n if (val === 'dev') {\n return QualifierRank.Dev;\n }\n if (val === 'rc' || val === 'cr') {\n return QualifierRank.RC;\n }\n if (val === 'snapshot') {\n return QualifierRank.Snapshot;\n }\n if (val === 'ga') {\n return QualifierRank.GA;\n }\n if (val === 'final') {\n return QualifierRank.Final;\n }\n if (val === 'release' || val === 'latest' || val === 'sr') {\n return QualifierRank.Release;\n }\n if (val === 'sp') {\n return QualifierRank.SP;\n }\n return QualifierRank.Default;\n}\n\nfunction stringTokenCmp(left: string, right: string): number {\n const leftRank = qualifierRank(left);\n const rightRank = qualifierRank(right);\n if (leftRank === 0 && rightRank === 0) {\n if (left < right) {\n return -1;\n }\n\n if (left > right) {\n return 1;\n }\n } else {\n if (leftRank < rightRank) {\n return -1;\n }\n if (leftRank > rightRank) {\n return 1;\n }\n }\n return 0;\n}\n\nfunction tokenCmp(left: Token | null, right: Token | null): number {\n if (left === null) {\n if (right?.type === TokenType.String) {\n return 1;\n }\n return -1;\n }\n\n if (right === null) {\n if (left.type === TokenType.String) {\n return -1;\n }\n return 1;\n }\n\n if (left.type === TokenType.Number && right.type === TokenType.Number) {\n if (left.val < right.val) {\n return -1;\n }\n if (left.val > right.val) {\n return 1;\n }\n } else if (typeof left.val === 'string' && typeof right.val === 'string') {\n return stringTokenCmp(left.val, right.val);\n } else if (right.type === TokenType.Number) {\n return -1;\n } else if (left.type === TokenType.Number) {\n return 1;\n }\n\n return 0;\n}\n\nexport function compare(left: string, right: string): number {\n const leftTokens = tokenize(left) ?? [];\n const rightTokens = tokenize(right) ?? [];\n const length = Math.max(leftTokens.length, rightTokens.length);\n for (let idx = 0; idx < length; idx += 1) {\n const leftToken = leftTokens[idx] || null;\n const rightToken = rightTokens[idx] || null;\n const cmpResult = tokenCmp(leftToken, rightToken);\n if (cmpResult !== 0) {\n return cmpResult;\n }\n }\n return 0;\n}\n\nexport function parse(input: string): Token[] | null {\n if (!input) {\n return null;\n }\n\n if (!regEx(/^[-._+a-zA-Z0-9]+$/i).test(input)) {\n return null;\n }\n\n if (regEx(/^latest\\.?/i).test(input)) {\n return null;\n }\n\n const tokens = tokenize(input);\n // istanbul ignore if: should not happen\n if (!tokens?.length) {\n return null;\n }\n return tokens;\n}\n\nexport function isVersion(input: string): boolean {\n return !!parse(input);\n}\n\ninterface PrefixRange {\n tokens: Token[];\n}\n\nexport type RangeBound = 'inclusive' | 'exclusive';\n\ninterface MavenBasedRange {\n leftBound: RangeBound;\n leftBoundStr: string;\n leftVal: string | null;\n separator: string;\n rightBound: RangeBound;\n rightBoundStr: string;\n rightVal: string | null;\n // The existence of preferredVal implies the \"strictly\" keyword \"!!\"\n // leading up to preferredVal: \"!![preferred version]\"\n preferredVal: string | null;\n}\n\nexport function parsePrefixRange(input: string): PrefixRange | null {\n if (!input) {\n return null;\n }\n\n if (input.trim() === '+') {\n return { tokens: [] };\n }\n\n const postfixRegex = regEx(/[^-._+][-._]\\+$/);\n if (postfixRegex.test(input)) {\n const prefixValue = input.replace(regEx(/[-._]\\+$/), '');\n const tokens = tokenize(prefixValue);\n if (tokens) {\n return { tokens };\n }\n }\n\n return null;\n}\n\nconst mavenBasedRangeRegex = regEx(\n /^(?<leftBoundStr>[[\\](]\\s*)(?<leftVal>[-._+a-zA-Z0-9]*?)(?<separator>\\s*,\\s*)(?<rightVal>[-._+a-zA-Z0-9]*?)(?<rightBoundStr>\\s*[[\\])])(?:!!(?<preferredVal>[-._+a-zA-Z0-9]+))?$/,\n);\n\nexport function parseMavenBasedRange(input: string): MavenBasedRange | null {\n if (!input) {\n return null;\n }\n\n const matchGroups = mavenBasedRangeRegex.exec(input)?.groups;\n if (!matchGroups) {\n return null;\n }\n\n const { leftBoundStr, separator, rightBoundStr } = matchGroups;\n const leftVal = matchGroups.leftVal || null;\n const rightVal = matchGroups.rightVal || null;\n const preferredVal = matchGroups.preferredVal || null;\n const isVersionLeft = isString(leftVal) && isVersion(leftVal);\n const isVersionRight = isString(rightVal) && isVersion(rightVal);\n if (\n (leftVal !== null && !isVersionLeft) ||\n (rightVal !== null && !isVersionRight)\n ) {\n return null;\n }\n\n if (\n isVersionLeft &&\n isVersionRight &&\n leftVal &&\n rightVal &&\n compare(leftVal, rightVal) === 1\n ) {\n return null;\n }\n\n const leftBound = leftBoundStr.trim() === '[' ? 'inclusive' : 'exclusive';\n const rightBound = rightBoundStr.trim() === ']' ? 'inclusive' : 'exclusive';\n\n return {\n leftBound,\n leftBoundStr,\n leftVal,\n separator,\n rightBound,\n rightBoundStr,\n rightVal,\n preferredVal,\n };\n}\n\ninterface SingleVersionRange {\n val: string;\n}\n\nconst singleVersionRangeRegex = regEx(/^\\[\\s*(?<val>[-._+a-zA-Z0-9]*?)\\s*\\]$/);\n\nexport function parseSingleVersionRange(\n input: string,\n): SingleVersionRange | null {\n const matchGroups = singleVersionRangeRegex.exec(input)?.groups;\n if (!matchGroups) {\n return null;\n }\n\n const { val } = matchGroups;\n if (!isVersion(val)) {\n return null;\n }\n\n return { val };\n}\n\nexport function isValid(str: string): boolean {\n if (!str) {\n return false;\n }\n\n return (\n isVersion(str) ||\n !!parsePrefixRange(str) ||\n !!parseMavenBasedRange(str) ||\n !!parseSingleVersionRange(str)\n );\n}\n"],"mappings":"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"}
@@ -108,6 +108,22 @@ function getNewValue({ currentValue, rangeStrategy, newVersion }) {
108
108
  if (prefixRange && parsedNewVersion) if (prefixRange.tokens.length > 0) if (prefixRange.tokens.length <= parsedNewVersion.length) return `${prefixRange.tokens.map((_, i) => parsedNewVersion[i].val).join(".")}.+`;
109
109
  else return newVersion;
110
110
  else return null;
111
+ const mavenRange = parseMavenBasedRange(currentValue);
112
+ if (mavenRange?.preferredVal) {
113
+ const { leftVal, rightVal, preferredVal } = mavenRange;
114
+ const baseRange = currentValue.slice(0, currentValue.lastIndexOf(`!!${preferredVal}`));
115
+ const newBaseRange = api$1.getNewValue({
116
+ currentValue: baseRange,
117
+ rangeStrategy,
118
+ newVersion
119
+ });
120
+ // v8 ignore if: the implementation has a non-null return type
121
+ if (newBaseRange === null) return null;
122
+ const preferredIsBoundary = preferredVal === leftVal || preferredVal === rightVal;
123
+ const newParsed = parseMavenBasedRange(newBaseRange);
124
+ const preferredStillPresent = newParsed?.leftVal === preferredVal || newParsed?.rightVal === preferredVal;
125
+ return `${newBaseRange}!!${preferredIsBoundary && !preferredStillPresent ? newVersion : preferredVal}`;
126
+ }
111
127
  return api$1.getNewValue({
112
128
  currentValue,
113
129
  rangeStrategy,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["mavenVersion"],"sources":["../../../../lib/modules/versioning/gradle/index.ts"],"sourcesContent":["import type { RangeStrategy } from '../../../types/versioning.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport mavenVersion from '../maven/index.ts';\nimport type { NewValueConfig, VersioningApi } from '../types.ts';\nimport {\n TokenType,\n compare,\n isValid,\n isVersion,\n parse,\n parseMavenBasedRange,\n parsePrefixRange,\n parseSingleVersionRange,\n} from './compare.ts';\n\nexport const id = 'gradle';\nexport const displayName = 'Gradle';\nexport const urls = [\n 'https://docs.gradle.org/current/userguide/single_versions.html#version_ordering',\n];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies: RangeStrategy[] = ['bump'];\n\nconst equals = (a: string, b: string): boolean => compare(a, b) === 0;\n\nconst getMajor = (version: string): number | null => {\n const tokens = parse(version?.replace(regEx(/^v/i), ''));\n if (tokens) {\n const majorToken = tokens?.[0];\n if (majorToken?.type === TokenType.Number) {\n return majorToken.val as number;\n }\n }\n return null;\n};\n\nconst getMinor = (version: string): number | null => {\n const tokens = parse(version?.replace(regEx(/^v/i), ''));\n if (tokens) {\n const majorToken = tokens[0];\n const minorToken = tokens[1];\n if (\n majorToken?.type === TokenType.Number &&\n minorToken?.type === TokenType.Number\n ) {\n return minorToken.val as number;\n }\n return 0;\n }\n return null;\n};\n\nconst getPatch = (version: string): number | null => {\n const tokens = parse(version?.replace(regEx(/^v/i), ''));\n if (tokens) {\n const majorToken = tokens[0];\n const minorToken = tokens[1];\n const patchToken = tokens[2];\n if (\n majorToken?.type === TokenType.Number &&\n minorToken?.type === TokenType.Number &&\n patchToken?.type === TokenType.Number\n ) {\n return patchToken.val as number;\n }\n return 0;\n }\n return null;\n};\n\nconst isGreaterThan = (a: string, b: string): boolean => compare(a, b) === 1;\n\nconst unstable = new Set([\n 'dev',\n 'a',\n 'alpha',\n 'b',\n 'beta',\n 'm',\n 'mt',\n 'milestone',\n 'rc',\n 'cr',\n 'preview',\n 'snapshot',\n]);\n\nconst isStable = (version: string): boolean => {\n const tokens = parse(version);\n if (tokens) {\n for (const token of tokens) {\n if (token.type === TokenType.String) {\n const val = token.val.toString().toLowerCase();\n if (unstable.has(val)) {\n return false;\n }\n }\n }\n return true;\n }\n return false;\n};\n\nconst matches = (a: string, b: string): boolean => {\n const versionTokens = parse(a);\n if (!a || !versionTokens || !b) {\n return false;\n }\n if (isVersion(b)) {\n return equals(a, b);\n }\n\n const singleVersionRange = parseSingleVersionRange(b);\n if (singleVersionRange) {\n const { val } = singleVersionRange;\n return equals(a, val);\n }\n\n const prefixRange = parsePrefixRange(b);\n if (prefixRange) {\n const tokens = prefixRange.tokens;\n if (tokens.length === 0) {\n return true;\n }\n const x = versionTokens\n .slice(0, tokens.length)\n .map(({ val }) => val)\n .join('.');\n const y = tokens.map(({ val }) => val).join('.');\n return equals(x, y);\n }\n\n const mavenBasedRange = parseMavenBasedRange(b);\n if (!mavenBasedRange) {\n return false;\n }\n\n const { leftBound, leftVal, rightBound, rightVal } = mavenBasedRange;\n let leftResult = true;\n let rightResult = true;\n\n if (leftVal) {\n leftResult =\n leftBound === 'exclusive'\n ? compare(leftVal, a) === -1\n : compare(leftVal, a) !== 1;\n }\n\n if (rightVal) {\n rightResult =\n rightBound === 'exclusive'\n ? compare(a, rightVal) === -1\n : compare(a, rightVal) !== 1;\n }\n\n return leftResult && rightResult;\n};\n\nfunction getSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n return versions.reduce((result: string | null, version) => {\n if (matches(version, range)) {\n if (!result) {\n return version;\n }\n if (isGreaterThan(version, result)) {\n return version;\n }\n }\n return result;\n }, null);\n}\n\nfunction minSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n return versions.reduce((result: string | null, version) => {\n if (matches(version, range)) {\n if (!result) {\n return version;\n }\n if (compare(version, result) === -1) {\n return version;\n }\n }\n return result;\n }, null);\n}\n\nfunction getNewValue({\n currentValue,\n rangeStrategy,\n newVersion,\n}: NewValueConfig): string | null {\n if (isVersion(currentValue)) {\n return newVersion;\n }\n\n // Check if our version is of the form \"1.2.+\"\n const prefixRange = parsePrefixRange(currentValue);\n const parsedNewVersion = parse(newVersion);\n if (prefixRange && parsedNewVersion) {\n if (prefixRange.tokens.length > 0) {\n if (prefixRange.tokens.length <= parsedNewVersion.length) {\n const newPrefixed = prefixRange.tokens\n .map((_, i) => parsedNewVersion[i].val)\n .join('.');\n\n return `${newPrefixed}.+`;\n } else {\n // our new version is shorter than our prefix range so drop our prefix range\n return newVersion;\n }\n } else {\n // our version is already \"+\" which includes ever version\n return null;\n }\n }\n\n return mavenVersion.getNewValue({ currentValue, rangeStrategy, newVersion });\n}\n\nexport const api: VersioningApi = {\n equals,\n getMajor,\n getMinor,\n getPatch,\n isCompatible: isVersion,\n isGreaterThan,\n isSingleVersion: isVersion,\n isStable,\n isValid,\n isVersion,\n matches,\n getSatisfyingVersion,\n minSatisfyingVersion,\n getNewValue,\n sortVersions: compare,\n};\n\nexport default api;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["mavenVersion"],"sources":["../../../../lib/modules/versioning/gradle/index.ts"],"sourcesContent":["import type { RangeStrategy } from '../../../types/versioning.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport mavenVersion from '../maven/index.ts';\nimport type { NewValueConfig, VersioningApi } from '../types.ts';\nimport {\n TokenType,\n compare,\n isValid,\n isVersion,\n parse,\n parseMavenBasedRange,\n parsePrefixRange,\n parseSingleVersionRange,\n} from './compare.ts';\n\nexport const id = 'gradle';\nexport const displayName = 'Gradle';\nexport const urls = [\n 'https://docs.gradle.org/current/userguide/single_versions.html#version_ordering',\n];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies: RangeStrategy[] = ['bump'];\n\nconst equals = (a: string, b: string): boolean => compare(a, b) === 0;\n\nconst getMajor = (version: string): number | null => {\n const tokens = parse(version?.replace(regEx(/^v/i), ''));\n if (tokens) {\n const majorToken = tokens?.[0];\n if (majorToken?.type === TokenType.Number) {\n return majorToken.val as number;\n }\n }\n return null;\n};\n\nconst getMinor = (version: string): number | null => {\n const tokens = parse(version?.replace(regEx(/^v/i), ''));\n if (tokens) {\n const majorToken = tokens[0];\n const minorToken = tokens[1];\n if (\n majorToken?.type === TokenType.Number &&\n minorToken?.type === TokenType.Number\n ) {\n return minorToken.val as number;\n }\n return 0;\n }\n return null;\n};\n\nconst getPatch = (version: string): number | null => {\n const tokens = parse(version?.replace(regEx(/^v/i), ''));\n if (tokens) {\n const majorToken = tokens[0];\n const minorToken = tokens[1];\n const patchToken = tokens[2];\n if (\n majorToken?.type === TokenType.Number &&\n minorToken?.type === TokenType.Number &&\n patchToken?.type === TokenType.Number\n ) {\n return patchToken.val as number;\n }\n return 0;\n }\n return null;\n};\n\nconst isGreaterThan = (a: string, b: string): boolean => compare(a, b) === 1;\n\nconst unstable = new Set([\n 'dev',\n 'a',\n 'alpha',\n 'b',\n 'beta',\n 'm',\n 'mt',\n 'milestone',\n 'rc',\n 'cr',\n 'preview',\n 'snapshot',\n]);\n\nconst isStable = (version: string): boolean => {\n const tokens = parse(version);\n if (tokens) {\n for (const token of tokens) {\n if (token.type === TokenType.String) {\n const val = token.val.toString().toLowerCase();\n if (unstable.has(val)) {\n return false;\n }\n }\n }\n return true;\n }\n return false;\n};\n\nconst matches = (a: string, b: string): boolean => {\n const versionTokens = parse(a);\n if (!a || !versionTokens || !b) {\n return false;\n }\n if (isVersion(b)) {\n return equals(a, b);\n }\n\n const singleVersionRange = parseSingleVersionRange(b);\n if (singleVersionRange) {\n const { val } = singleVersionRange;\n return equals(a, val);\n }\n\n const prefixRange = parsePrefixRange(b);\n if (prefixRange) {\n const tokens = prefixRange.tokens;\n if (tokens.length === 0) {\n return true;\n }\n const x = versionTokens\n .slice(0, tokens.length)\n .map(({ val }) => val)\n .join('.');\n const y = tokens.map(({ val }) => val).join('.');\n return equals(x, y);\n }\n\n const mavenBasedRange = parseMavenBasedRange(b);\n if (!mavenBasedRange) {\n return false;\n }\n\n const { leftBound, leftVal, rightBound, rightVal } = mavenBasedRange;\n let leftResult = true;\n let rightResult = true;\n\n if (leftVal) {\n leftResult =\n leftBound === 'exclusive'\n ? compare(leftVal, a) === -1\n : compare(leftVal, a) !== 1;\n }\n\n if (rightVal) {\n rightResult =\n rightBound === 'exclusive'\n ? compare(a, rightVal) === -1\n : compare(a, rightVal) !== 1;\n }\n\n return leftResult && rightResult;\n};\n\nfunction getSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n return versions.reduce((result: string | null, version) => {\n if (matches(version, range)) {\n if (!result) {\n return version;\n }\n if (isGreaterThan(version, result)) {\n return version;\n }\n }\n return result;\n }, null);\n}\n\nfunction minSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n return versions.reduce((result: string | null, version) => {\n if (matches(version, range)) {\n if (!result) {\n return version;\n }\n if (compare(version, result) === -1) {\n return version;\n }\n }\n return result;\n }, null);\n}\n\nfunction getNewValue({\n currentValue,\n rangeStrategy,\n newVersion,\n}: NewValueConfig): string | null {\n if (isVersion(currentValue)) {\n return newVersion;\n }\n\n // Check if our version is of the form \"1.2.+\"\n const prefixRange = parsePrefixRange(currentValue);\n const parsedNewVersion = parse(newVersion);\n if (prefixRange && parsedNewVersion) {\n if (prefixRange.tokens.length > 0) {\n if (prefixRange.tokens.length <= parsedNewVersion.length) {\n const newPrefixed = prefixRange.tokens\n .map((_, i) => parsedNewVersion[i].val)\n .join('.');\n\n return `${newPrefixed}.+`;\n } else {\n // our new version is shorter than our prefix range so drop our prefix range\n return newVersion;\n }\n } else {\n // our version is already \"+\" which includes ever version\n return null;\n }\n }\n\n const mavenRange = parseMavenBasedRange(currentValue);\n if (mavenRange?.preferredVal) {\n const { leftVal, rightVal, preferredVal } = mavenRange;\n const baseRange = currentValue.slice(\n 0,\n currentValue.lastIndexOf(`!!${preferredVal}`),\n );\n const newBaseRange = mavenVersion.getNewValue({\n currentValue: baseRange,\n rangeStrategy,\n newVersion,\n });\n // v8 ignore if: the implementation has a non-null return type\n if (newBaseRange === null) {\n return null;\n }\n\n const preferredIsBoundary =\n preferredVal === leftVal || preferredVal === rightVal;\n const newParsed = parseMavenBasedRange(newBaseRange);\n const preferredStillPresent =\n newParsed?.leftVal === preferredVal ||\n newParsed?.rightVal === preferredVal;\n const newPreferredVal =\n preferredIsBoundary && !preferredStillPresent ? newVersion : preferredVal;\n\n return `${newBaseRange}!!${newPreferredVal}`;\n }\n\n return mavenVersion.getNewValue({ currentValue, rangeStrategy, newVersion });\n}\n\nexport const api: VersioningApi = {\n equals,\n getMajor,\n getMinor,\n getPatch,\n isCompatible: isVersion,\n isGreaterThan,\n isSingleVersion: isVersion,\n isStable,\n isValid,\n isVersion,\n matches,\n getSatisfyingVersion,\n minSatisfyingVersion,\n getNewValue,\n sortVersions: compare,\n};\n\nexport default api;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "renovate",
3
3
  "description": "Automated dependency updates. Flexible so you don't need to be.",
4
- "version": "43.105.0",
4
+ "version": "43.106.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.105.0 config files (https://renovatebot.com/)",
3
+ "title": "JSON schema for Renovate 43.106.0 config files (https://renovatebot.com/)",
4
4
  "$schema": "http://json-schema.org/draft-07/schema#",
5
- "x-renovate-version": "43.105.0",
5
+ "x-renovate-version": "43.106.0",
6
6
  "allowComments": true,
7
7
  "type": "object",
8
8
  "properties": {