renovate 43.19.2 → 43.20.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.
@@ -84,7 +84,7 @@ hashMap.set("pip_setup", "0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164
84
84
  hashMap.set("pipenv", "a63361766d23f3688cc50903ca335854f72a951c182b39261c5ec7ea3506d55f");
85
85
  hashMap.set("pixi", "0223374aadaeaff1532b77663e0c6d88a54902d4f6740ab0c6c57868d661f25c");
86
86
  hashMap.set("poetry", "c7e9443739418742c5d8fc80cb0905537d0a804133bf792da21a7e6c12edc336");
87
- hashMap.set("pre-commit", "b2d864c0a881ca22b2d32b3745ef5c117cc4ba057321aa1c91f5f99272e12936");
87
+ hashMap.set("pre-commit", "a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da");
88
88
  hashMap.set("pub", "01ac02ee8d07ede5fe93045c04176a2dcc402e28378d4b696cb069eb3dad28c4");
89
89
  hashMap.set("puppet", "ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45");
90
90
  hashMap.set("pyenv", "9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182");
@@ -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('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','1f6fcf620e9c6cd35991380cb6eafb94ec60cd77cbd13335ebe3a1d9727416c9');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','0a13df03d359e50cb0bd8ae7b57e8e93424b3733ccf98ece0719efaa343f782d');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','3240f148b71c7567f784df3adc6937afbd69d7c7f8a40553bb64f5c767f26907');\nhashMap.set('bazelisk','c4c8561ff5857a14db68d70867dcc3cf63605380966b1132c295336e5cef5604');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','09eb044219d74331fea135f50121b7d4d146333eb97e4ccbfa9ddf0eb4012963');\nhashMap.set('bitrise','afdb46fe37fc0307943089e18b6724065394805e628b4b6c4430a6068c494030');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','c0121f5ade7e3b5c379dda48cedf9e3f1a87b3e743b1a3d89d934cd2e317ed45');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','b04522e682849d52d0389e1bae31d784b89e7aac1788bf76575bf41fc16d1ec0');\nhashMap.set('cake','73eca16006bb82cfe63405b32d1072050fd33c9baa7fda2ec1ea7536ecb6ec4f');\nhashMap.set('cargo','e4577a23fb5750443c6813afec57108b21e61e208af5023b8c06f12bcaa49c81');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','135937d4720718304adb0ba998516f8ce38c3220ccd18b00b8c70c62b45df4da');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','04ad0bd9744b4a369444ac1a2c417bbc9b941d029d921e0bd8fbe1dcd0e655ad');\nhashMap.set('composer','0e9d4516e440e5bbf22e141d5e2353cdb1ae59c3be2f26abff9e5d2235779027');\nhashMap.set('conan','16b128910a5c855128f5e63f9540fa0c9c6c1a790ec651703268224264cc2234');\nhashMap.set('copier','c2243ee99dee6c667ea087a8d97ce4ff56413768f6b26d4b7699af3bb95df6fc');\nhashMap.set('cpanfile','6a1d67d9c8751123deaf0c7f3ac38a07024e960c140f8228fcbcb93954fdca01');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','c853d5f943fe7bce7578063b25f8bb1597252726395fedeffc029a78f6321ed7');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','fe2b132bd17f9c0a46ea5877bdaa6671c6452391219c9441e367d44deabd7a9a');\nhashMap.set('flux','bffacf477a9f1a24c7d1964cefcfcf67c34337b6966a52024396cc273e27dc17');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','a286e097a5fcc6c946e792b812871147b39ad93f9ad041b5b3216b100f972e95');\nhashMap.set('github-actions','67d6a125f4b7711a3f9a853ffd09f48fe2db9e650b3430b5501ca304f46c10b8');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','e43a4427261082876bf6b648da34f76349055bee8ad09ab020ef9a5085d7b4e5');\nhashMap.set('gomod','81504c337a01a33da767c9e7509e318ba324cb07c51023a24dffe548bbb69f47');\nhashMap.set('gradle','89a5f64d6eac944e3b4de83d7b1c5d0d1b7985998fd7c3b5d0a8eabbfd2b80b1');\nhashMap.set('gradle-wrapper','f647673f40861f7aae9c92a933b015909ae1306438623b47c880786602de6eb6');\nhashMap.set('haskell-cabal','d796ec6859e63ab4f1b7030c4016071202c3a44c7c11d4a9131d7e2ba19b396d');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','2baa991e43f8c38e85051d12749e17c333be488b1b3af7ccb8ac3e97e134272c');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','d91b78dd3648e3acda92ba61c6b867f295176862588957635853cb4274d949a7');\nhashMap.set('hermit','0322c7489c79e76c85ebd802b11f0f55332c40fdfc82eea9ca8b300fef61dc52');\nhashMap.set('homebrew','3cd972c03dc6333a12fd26413150ffe18c0305aa61a16b490e3306fcec9f0000');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','0c15736494cd1e598985f0d49fc39e3cecc7ebeefa2101ccfab98605f92860e2');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','87d87b2c410facdd0400691e87080a3e1ffe83158f51f52cd784442713122f30');\nhashMap.set('kustomize','1e44d6ef8622252dac6d9649fb04badd12d4827eb2a55f74792aa9de2b915775');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','6faa1a3a70542bc7e84683c31b2fb86468fdf82a25c264cf2f7fc45dbc98b1d8');\nhashMap.set('maven-wrapper','ff10b7b3c33deda4e51a0904aed299522c9ab4d9deb8696faac37672419ba08c');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','b816a49c8525716454d0a2bc9127916d5b27e5cca7b2aa2030312f218942af3e');\nhashMap.set('mise','2af97573f0705892e3728ea131499d70d0353ed8a82db4cba8f66c1d7515b3fb');\nhashMap.set('mix','7c215ea50304c1269aa324f642ab9cf9a44174497cf451d8060ec09e2446b2a5');\nhashMap.set('nix','9c523d1a3e3e313aa8f278942be6556f3134d2fc979edf210f5722543e558245');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','1bd3420cdef6ed9cb2eb3bf65709d82932cafdc4642cf5ede04080fc0a55cb80');\nhashMap.set('nuget','0d1da22aed5f8364417d75aa0a8ee95d579dde39b164770576e072fb28a1b1f3');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','4c39cffc02e67b96d8c259f1384ea055f2cc1680f1611c1ae239bb5bb84830c7');\nhashMap.set('pep723','105cdc1674da67d48174457bea670c95d8a023e4263d1efc002f02c7f232b5eb');\nhashMap.set('pip-compile','ba65a1188370e4031c1554f4df2b32c513afe4da2f8c151ec008b2de1da3161d');\nhashMap.set('pip_requirements','e3cbe0e891deeeee05bb2f76020dc0c9f24ff4d964ba662267dd2080adfaa511');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','a63361766d23f3688cc50903ca335854f72a951c182b39261c5ec7ea3506d55f');\nhashMap.set('pixi','0223374aadaeaff1532b77663e0c6d88a54902d4f6740ab0c6c57868d661f25c');\nhashMap.set('poetry','c7e9443739418742c5d8fc80cb0905537d0a804133bf792da21a7e6c12edc336');\nhashMap.set('pre-commit','b2d864c0a881ca22b2d32b3745ef5c117cc4ba057321aa1c91f5f99272e12936');\nhashMap.set('pub','01ac02ee8d07ede5fe93045c04176a2dcc402e28378d4b696cb069eb3dad28c4');\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','9dd5ea9db9a7719e857cb6c07d8052e7cadaf42bcdcc422b8c567b207bc7e8e4');\nhashMap.set('tekton','4e35c75bba4abc9c3cf49c55da6c19db4f4e9181d1fd9583288ab55ef7c944fd');\nhashMap.set('terraform','970e707239d270362ce1a8f390cda5dc6a78aee39e6b299a529eaaf7577f73d6');\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','fba1cfdcaf185d9dacb681d81cf08d73437ea278e92f0bdd6f3d635852fecaf0');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\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('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','1f6fcf620e9c6cd35991380cb6eafb94ec60cd77cbd13335ebe3a1d9727416c9');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','0a13df03d359e50cb0bd8ae7b57e8e93424b3733ccf98ece0719efaa343f782d');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','3240f148b71c7567f784df3adc6937afbd69d7c7f8a40553bb64f5c767f26907');\nhashMap.set('bazelisk','c4c8561ff5857a14db68d70867dcc3cf63605380966b1132c295336e5cef5604');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','09eb044219d74331fea135f50121b7d4d146333eb97e4ccbfa9ddf0eb4012963');\nhashMap.set('bitrise','afdb46fe37fc0307943089e18b6724065394805e628b4b6c4430a6068c494030');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','c0121f5ade7e3b5c379dda48cedf9e3f1a87b3e743b1a3d89d934cd2e317ed45');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','b04522e682849d52d0389e1bae31d784b89e7aac1788bf76575bf41fc16d1ec0');\nhashMap.set('cake','73eca16006bb82cfe63405b32d1072050fd33c9baa7fda2ec1ea7536ecb6ec4f');\nhashMap.set('cargo','e4577a23fb5750443c6813afec57108b21e61e208af5023b8c06f12bcaa49c81');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','135937d4720718304adb0ba998516f8ce38c3220ccd18b00b8c70c62b45df4da');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','04ad0bd9744b4a369444ac1a2c417bbc9b941d029d921e0bd8fbe1dcd0e655ad');\nhashMap.set('composer','0e9d4516e440e5bbf22e141d5e2353cdb1ae59c3be2f26abff9e5d2235779027');\nhashMap.set('conan','16b128910a5c855128f5e63f9540fa0c9c6c1a790ec651703268224264cc2234');\nhashMap.set('copier','c2243ee99dee6c667ea087a8d97ce4ff56413768f6b26d4b7699af3bb95df6fc');\nhashMap.set('cpanfile','6a1d67d9c8751123deaf0c7f3ac38a07024e960c140f8228fcbcb93954fdca01');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','c853d5f943fe7bce7578063b25f8bb1597252726395fedeffc029a78f6321ed7');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','fe2b132bd17f9c0a46ea5877bdaa6671c6452391219c9441e367d44deabd7a9a');\nhashMap.set('flux','bffacf477a9f1a24c7d1964cefcfcf67c34337b6966a52024396cc273e27dc17');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','a286e097a5fcc6c946e792b812871147b39ad93f9ad041b5b3216b100f972e95');\nhashMap.set('github-actions','67d6a125f4b7711a3f9a853ffd09f48fe2db9e650b3430b5501ca304f46c10b8');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','e43a4427261082876bf6b648da34f76349055bee8ad09ab020ef9a5085d7b4e5');\nhashMap.set('gomod','81504c337a01a33da767c9e7509e318ba324cb07c51023a24dffe548bbb69f47');\nhashMap.set('gradle','89a5f64d6eac944e3b4de83d7b1c5d0d1b7985998fd7c3b5d0a8eabbfd2b80b1');\nhashMap.set('gradle-wrapper','f647673f40861f7aae9c92a933b015909ae1306438623b47c880786602de6eb6');\nhashMap.set('haskell-cabal','d796ec6859e63ab4f1b7030c4016071202c3a44c7c11d4a9131d7e2ba19b396d');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','2baa991e43f8c38e85051d12749e17c333be488b1b3af7ccb8ac3e97e134272c');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','d91b78dd3648e3acda92ba61c6b867f295176862588957635853cb4274d949a7');\nhashMap.set('hermit','0322c7489c79e76c85ebd802b11f0f55332c40fdfc82eea9ca8b300fef61dc52');\nhashMap.set('homebrew','3cd972c03dc6333a12fd26413150ffe18c0305aa61a16b490e3306fcec9f0000');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','0c15736494cd1e598985f0d49fc39e3cecc7ebeefa2101ccfab98605f92860e2');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','87d87b2c410facdd0400691e87080a3e1ffe83158f51f52cd784442713122f30');\nhashMap.set('kustomize','1e44d6ef8622252dac6d9649fb04badd12d4827eb2a55f74792aa9de2b915775');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','6faa1a3a70542bc7e84683c31b2fb86468fdf82a25c264cf2f7fc45dbc98b1d8');\nhashMap.set('maven-wrapper','ff10b7b3c33deda4e51a0904aed299522c9ab4d9deb8696faac37672419ba08c');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','b816a49c8525716454d0a2bc9127916d5b27e5cca7b2aa2030312f218942af3e');\nhashMap.set('mise','2af97573f0705892e3728ea131499d70d0353ed8a82db4cba8f66c1d7515b3fb');\nhashMap.set('mix','7c215ea50304c1269aa324f642ab9cf9a44174497cf451d8060ec09e2446b2a5');\nhashMap.set('nix','9c523d1a3e3e313aa8f278942be6556f3134d2fc979edf210f5722543e558245');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','1bd3420cdef6ed9cb2eb3bf65709d82932cafdc4642cf5ede04080fc0a55cb80');\nhashMap.set('nuget','0d1da22aed5f8364417d75aa0a8ee95d579dde39b164770576e072fb28a1b1f3');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','4c39cffc02e67b96d8c259f1384ea055f2cc1680f1611c1ae239bb5bb84830c7');\nhashMap.set('pep723','105cdc1674da67d48174457bea670c95d8a023e4263d1efc002f02c7f232b5eb');\nhashMap.set('pip-compile','ba65a1188370e4031c1554f4df2b32c513afe4da2f8c151ec008b2de1da3161d');\nhashMap.set('pip_requirements','e3cbe0e891deeeee05bb2f76020dc0c9f24ff4d964ba662267dd2080adfaa511');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','a63361766d23f3688cc50903ca335854f72a951c182b39261c5ec7ea3506d55f');\nhashMap.set('pixi','0223374aadaeaff1532b77663e0c6d88a54902d4f6740ab0c6c57868d661f25c');\nhashMap.set('poetry','c7e9443739418742c5d8fc80cb0905537d0a804133bf792da21a7e6c12edc336');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('pub','01ac02ee8d07ede5fe93045c04176a2dcc402e28378d4b696cb069eb3dad28c4');\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','9dd5ea9db9a7719e857cb6c07d8052e7cadaf42bcdcc422b8c567b207bc7e8e4');\nhashMap.set('tekton','4e35c75bba4abc9c3cf49c55da6c19db4f4e9181d1fd9583288ab55ef7c944fd');\nhashMap.set('terraform','970e707239d270362ce1a8f390cda5dc6a78aee39e6b299a529eaaf7577f73d6');\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','fba1cfdcaf185d9dacb681d81cf08d73437ea278e92f0bdd6f3d635852fecaf0');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('jsonata','3b5f465b586993f92c8490e70885e7eecce9b6556bcc376dd9c11db8ee9e6960');\nhashMap.set('regex','7b643b49e498465cf91b25b8b840bb1fec8c8a3a59bfa8f97a39c976675325a0');"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { regEx } from "../../../util/regex.js";
1
+ import { newlineRegex, regEx } from "../../../util/regex.js";
2
2
  import { logger } from "../../../logger/index.js";
3
3
  import { find } from "../../../util/host-rules.js";
4
4
  import { detectPlatform } from "../../../util/common.js";
@@ -82,6 +82,25 @@ function determineDatasource(repository, hostname) {
82
82
  };
83
83
  }
84
84
  const gitUrlRegex = regEx(/\.git$/i);
85
+ const revLineWithFrozenCommentRegex = regEx(/^\s*rev:\s*(?<replaceString>(?<currentDigest>[a-f0-9]{40})(?<commentWhiteSpaces>\s+)#\s*frozen:\s*(?<currentValue>\S+))/);
86
+ function extractWithRegex(content) {
87
+ logger.trace("pre-commit.extractWithRegex()");
88
+ const regexDeps = /* @__PURE__ */ new Map();
89
+ for (const line of content.split(newlineRegex)) {
90
+ if (line.trim().startsWith("#")) continue;
91
+ const match = revLineWithFrozenCommentRegex.exec(line);
92
+ if (match?.groups) {
93
+ const { currentDigest, currentValue, replaceString, commentWhiteSpaces } = match.groups;
94
+ regexDeps.set(currentDigest, {
95
+ currentDigest,
96
+ currentValue,
97
+ replaceString,
98
+ autoReplaceStringTemplate: `{{newDigest}}${commentWhiteSpaces}# frozen: {{newValue}}`
99
+ });
100
+ }
101
+ }
102
+ return regexDeps;
103
+ }
85
104
  function extractDependency(tag, repository) {
86
105
  logger.debug(`Found version ${tag}`);
87
106
  const urlMatchers = [
@@ -118,16 +137,17 @@ function extractDependency(tag, repository) {
118
137
  * Find all supported dependencies in the pre-commit yaml object.
119
138
  *
120
139
  * @param precommitFile the parsed yaml config file
140
+ * @param regexDeps Map of regex-extracted deps keyed by digest for enrichment
121
141
  */
122
- function findDependencies(precommitFile) {
142
+ function findDependencies(precommitFile, regexDeps) {
123
143
  if (!precommitFile.repos) {
124
144
  logger.debug(`No repos section found, skipping file`);
125
145
  return [];
126
146
  }
127
147
  const packageDependencies = [];
128
- precommitFile.repos.forEach((item) => {
129
- if (item.repo !== "meta") item.hooks?.forEach((hook) => {
130
- if (hook.language === "node") hook.additional_dependencies?.map((req) => {
148
+ for (const item of precommitFile.repos) {
149
+ if (item.repo !== "meta") {
150
+ for (const hook of item.hooks ?? []) if (hook.language === "node") hook.additional_dependencies?.map((req) => {
131
151
  const match = regEx("^(?<name>.+)@(?<range>.+)$").exec(req);
132
152
  if (!match?.groups) return;
133
153
  const depType = "pre-commit-node";
@@ -153,14 +173,22 @@ function findDependencies(precommitFile) {
153
173
  });
154
174
  }
155
175
  });
156
- });
176
+ }
157
177
  if (matchesPrecommitDependencyHeuristic(item)) {
158
178
  logger.trace(item, "Matched pre-commit dependency spec");
159
179
  const repository = String(item.repo);
160
- const dep = extractDependency(String(item.rev), repository);
180
+ const tag = String(item.rev);
181
+ const dep = extractDependency(tag, repository);
182
+ const regexDep = regexDeps.get(tag);
183
+ if (regexDep) {
184
+ dep.currentDigest = regexDep.currentDigest;
185
+ dep.currentValue = regexDep.currentValue;
186
+ dep.replaceString = regexDep.replaceString;
187
+ dep.autoReplaceStringTemplate = regexDep.autoReplaceStringTemplate;
188
+ }
161
189
  packageDependencies.push(dep);
162
190
  } else logger.trace(item, "Did not find pre-commit repo spec");
163
- });
191
+ }
164
192
  return packageDependencies;
165
193
  }
166
194
  function extractPackageFile(content, packageFile) {
@@ -183,7 +211,8 @@ function extractPackageFile(content, packageFile) {
183
211
  return null;
184
212
  }
185
213
  try {
186
- const deps = findDependencies(parsedContent);
214
+ const regexDeps = extractWithRegex(content);
215
+ const deps = findDependencies(parsedContent, regexDeps);
187
216
  if (deps.length) {
188
217
  logger.trace({ deps }, "Found dependencies in pre-commit config");
189
218
  return { deps };
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","names":["npmExtractDependency"],"sources":["../../../../lib/modules/manager/pre-commit/extract.ts"],"sourcesContent":["import {\n isEmptyObject,\n isNonEmptyObject,\n isPlainObject,\n} from '@sindresorhus/is';\nimport { logger } from '../../../logger/index.ts';\nimport type { SkipReason } from '../../../types/index.ts';\nimport { detectPlatform } from '../../../util/common.ts';\nimport { find } from '../../../util/host-rules.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { parseSingleYaml } from '../../../util/yaml.ts';\nimport { GithubTagsDatasource } from '../../datasource/github-tags/index.ts';\nimport { GitlabTagsDatasource } from '../../datasource/gitlab-tags/index.ts';\nimport { parseLine } from '../gomod/line-parser.ts';\nimport { extractDependency as npmExtractDependency } from '../npm/extract/common/dependency.ts';\nimport { pep508ToPackageDependency } from '../pep621/utils.ts';\nimport type { PackageDependency, PackageFileContent } from '../types.ts';\nimport {\n matchesPrecommitConfigHeuristic,\n matchesPrecommitDependencyHeuristic,\n} from './parsing.ts';\nimport type { PreCommitConfig } from './types.ts';\n\n/**\n * Determines the datasource(id) to be used for this dependency\n * @param repository the full git url, ie git@github.com/user/project.\n * Used in debug statements to clearly indicate the related dependency.\n * @param hostname the hostname (ie github.com)\n * Used to determine which renovate datasource should be used.\n * Is matched literally against `github.com` and `gitlab.com`.\n * If that doesn't match, `hostRules.find()` is used to find related sources.\n * In that case, the hostname is passed on as registryUrl to the corresponding datasource.\n */\nfunction determineDatasource(\n repository: string,\n hostname: string,\n): { datasource?: string; registryUrls?: string[]; skipReason?: SkipReason } {\n if (hostname === 'github.com' || detectPlatform(repository) === 'github') {\n logger.debug({ repository, hostname }, 'Found github dependency');\n return { datasource: GithubTagsDatasource.id };\n }\n if (hostname === 'gitlab.com') {\n logger.debug({ repository, hostname }, 'Found gitlab dependency');\n return { datasource: GitlabTagsDatasource.id };\n }\n if (detectPlatform(repository) === 'gitlab') {\n logger.debug(\n { repository, hostname },\n 'Found gitlab dependency with custom registryUrl',\n );\n return {\n datasource: GitlabTagsDatasource.id,\n registryUrls: ['https://' + hostname],\n };\n }\n const hostUrl = 'https://' + hostname;\n const res = find({ url: hostUrl });\n if (isEmptyObject(res)) {\n // 1 check, to possibly prevent 3 failures in combined query of hostType & url.\n logger.debug(\n { repository, hostUrl },\n 'Provided hostname does not match any hostRules. Ignoring',\n );\n return { skipReason: 'unknown-registry', registryUrls: [hostname] };\n }\n for (const [hostType, sourceId] of [\n ['github', GithubTagsDatasource.id],\n ['gitlab', GitlabTagsDatasource.id],\n ]) {\n if (isNonEmptyObject(find({ hostType, url: hostUrl }))) {\n logger.debug(\n { repository, hostUrl, hostType },\n `Provided hostname matches a ${hostType} hostrule.`,\n );\n return { datasource: sourceId, registryUrls: [hostname] };\n }\n }\n logger.debug(\n { repository, registry: hostUrl },\n 'Provided hostname did not match any of the hostRules of hostType github nor gitlab',\n );\n return { skipReason: 'unknown-registry', registryUrls: [hostname] };\n}\n\nconst gitUrlRegex = regEx(/\\.git$/i);\n\nfunction extractDependency(\n tag: string,\n repository: string,\n): {\n depName?: string;\n depType?: string;\n datasource?: string;\n packageName?: string;\n skipReason?: SkipReason;\n currentValue?: string;\n} {\n logger.debug(`Found version ${tag}`);\n\n const urlMatchers = [\n // This splits \"http://my.github.com/user/repo\" -> \"my.github.com\" \"user/repo\n regEx('^https?://(?<hostname>[^/]+)/(?<depName>\\\\S*)'),\n // This splits \"git@private.registry.com:user/repo\" -> \"private.registry.com\" \"user/repo\n regEx('^git@(?<hostname>[^:]+):(?<depName>\\\\S*)'),\n // This split \"git://github.com/pre-commit/pre-commit-hooks\" -> \"github.com\" \"pre-commit/pre-commit-hooks\"\n regEx(/^git:\\/\\/(?<hostname>[^/]+)\\/(?<depName>\\S*)/),\n // This splits \"ssh://git@github.com/pre-commit/pre-commit-hooks\" -> \"github.com\" \"pre-commit/pre-commit-hooks\"\n regEx(/^ssh:\\/\\/git@(?<hostname>[^/]+)\\/(?<depName>\\S*)/),\n ];\n for (const urlMatcher of urlMatchers) {\n const match = urlMatcher.exec(repository);\n if (match?.groups) {\n const hostname = match.groups.hostname;\n const depName = match.groups.depName.replace(gitUrlRegex, '');\n const sourceDef = determineDatasource(repository, hostname);\n return {\n ...sourceDef,\n depName,\n depType: 'repository',\n packageName: depName,\n currentValue: tag,\n };\n }\n }\n logger.info(\n { repository },\n 'Could not separate hostname from full dependency url.',\n );\n return {\n depName: undefined,\n depType: 'repository',\n datasource: undefined,\n packageName: undefined,\n skipReason: 'invalid-url',\n currentValue: tag,\n };\n}\n\n/**\n * Find all supported dependencies in the pre-commit yaml object.\n *\n * @param precommitFile the parsed yaml config file\n */\nfunction findDependencies(precommitFile: PreCommitConfig): PackageDependency[] {\n if (!precommitFile.repos) {\n logger.debug(`No repos section found, skipping file`);\n return [];\n }\n const packageDependencies: PackageDependency[] = [];\n precommitFile.repos.forEach((item) => {\n // meta hooks is defined from pre-commit and doesn't support `additional_dependencies`\n if (item.repo !== 'meta') {\n item.hooks?.forEach((hook) => {\n // normally language are not defined in yaml\n // only support it when it's explicitly defined.\n // this avoid to parse hooks from pre-commit-hooks.yaml from git repo\n if (hook.language === 'node') {\n hook.additional_dependencies?.map((req) => {\n const match = regEx('^(?<name>.+)@(?<range>.+)$').exec(req);\n if (!match?.groups) {\n return;\n }\n\n const depType = 'pre-commit-node';\n const dep = npmExtractDependency(\n depType,\n match.groups.name,\n match.groups.range,\n );\n packageDependencies.push({\n depType,\n depName: match.groups.name,\n packageName: match.groups.name,\n ...dep,\n });\n });\n } else if (hook.language === 'python') {\n hook.additional_dependencies?.map((req) => {\n const dep = pep508ToPackageDependency('pre-commit-python', req);\n if (dep) {\n packageDependencies.push(dep);\n }\n });\n } else if (hook.language === 'golang') {\n hook.additional_dependencies?.map((req) => {\n // Convert dependency into a gomod require line to use the gomod line parser\n const requireLine = `require ${req.replace('@', ' ')}`;\n const dep = parseLine(requireLine);\n if (dep) {\n const depType = 'pre-commit-golang';\n packageDependencies.push({\n ...dep,\n depType,\n });\n }\n });\n }\n });\n }\n\n if (matchesPrecommitDependencyHeuristic(item)) {\n logger.trace(item, 'Matched pre-commit dependency spec');\n const repository = String(item.repo);\n const tag = String(item.rev);\n const dep = extractDependency(tag, repository);\n\n packageDependencies.push(dep);\n } else {\n logger.trace(item, 'Did not find pre-commit repo spec');\n }\n });\n return packageDependencies;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n): PackageFileContent | null {\n type ParsedContent = Record<string, unknown> | PreCommitConfig;\n let parsedContent: ParsedContent;\n try {\n // TODO: use schema (#9610)\n parsedContent = parseSingleYaml(content);\n } catch (err) {\n logger.debug(\n { filename: packageFile, err },\n 'Failed to parse pre-commit config YAML',\n );\n return null;\n }\n if (!isPlainObject<Record<string, unknown>>(parsedContent)) {\n logger.debug(\n { packageFile },\n `Parsing of pre-commit config YAML returned invalid result`,\n );\n return null;\n }\n if (!matchesPrecommitConfigHeuristic(parsedContent)) {\n logger.debug(\n { packageFile },\n `File does not look like a pre-commit config file`,\n );\n return null;\n }\n try {\n const deps = findDependencies(parsedContent);\n if (deps.length) {\n logger.trace({ deps }, 'Found dependencies in pre-commit config');\n return { deps };\n }\n } catch (err) /* istanbul ignore next */ {\n logger.debug(\n { packageFile, err },\n 'Error scanning parsed pre-commit config',\n );\n }\n return null;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"extract.js","names":["npmExtractDependency"],"sources":["../../../../lib/modules/manager/pre-commit/extract.ts"],"sourcesContent":["import {\n isEmptyObject,\n isNonEmptyObject,\n isPlainObject,\n} from '@sindresorhus/is';\nimport { logger } from '../../../logger/index.ts';\nimport type { SkipReason } from '../../../types/index.ts';\nimport { detectPlatform } from '../../../util/common.ts';\nimport { find } from '../../../util/host-rules.ts';\nimport { newlineRegex, regEx } from '../../../util/regex.ts';\nimport { parseSingleYaml } from '../../../util/yaml.ts';\nimport { GithubTagsDatasource } from '../../datasource/github-tags/index.ts';\nimport { GitlabTagsDatasource } from '../../datasource/gitlab-tags/index.ts';\nimport { parseLine } from '../gomod/line-parser.ts';\nimport { extractDependency as npmExtractDependency } from '../npm/extract/common/dependency.ts';\nimport { pep508ToPackageDependency } from '../pep621/utils.ts';\nimport type { PackageDependency, PackageFileContent } from '../types.ts';\nimport {\n matchesPrecommitConfigHeuristic,\n matchesPrecommitDependencyHeuristic,\n} from './parsing.ts';\nimport type { PreCommitConfig } from './types.ts';\n\n/**\n * Determines the datasource(id) to be used for this dependency\n * @param repository the full git url, ie git@github.com/user/project.\n * Used in debug statements to clearly indicate the related dependency.\n * @param hostname the hostname (ie github.com)\n * Used to determine which renovate datasource should be used.\n * Is matched literally against `github.com` and `gitlab.com`.\n * If that doesn't match, `hostRules.find()` is used to find related sources.\n * In that case, the hostname is passed on as registryUrl to the corresponding datasource.\n */\nfunction determineDatasource(\n repository: string,\n hostname: string,\n): { datasource?: string; registryUrls?: string[]; skipReason?: SkipReason } {\n if (hostname === 'github.com' || detectPlatform(repository) === 'github') {\n logger.debug({ repository, hostname }, 'Found github dependency');\n return { datasource: GithubTagsDatasource.id };\n }\n if (hostname === 'gitlab.com') {\n logger.debug({ repository, hostname }, 'Found gitlab dependency');\n return { datasource: GitlabTagsDatasource.id };\n }\n if (detectPlatform(repository) === 'gitlab') {\n logger.debug(\n { repository, hostname },\n 'Found gitlab dependency with custom registryUrl',\n );\n return {\n datasource: GitlabTagsDatasource.id,\n registryUrls: ['https://' + hostname],\n };\n }\n const hostUrl = 'https://' + hostname;\n const res = find({ url: hostUrl });\n if (isEmptyObject(res)) {\n // 1 check, to possibly prevent 3 failures in combined query of hostType & url.\n logger.debug(\n { repository, hostUrl },\n 'Provided hostname does not match any hostRules. Ignoring',\n );\n return { skipReason: 'unknown-registry', registryUrls: [hostname] };\n }\n for (const [hostType, sourceId] of [\n ['github', GithubTagsDatasource.id],\n ['gitlab', GitlabTagsDatasource.id],\n ]) {\n if (isNonEmptyObject(find({ hostType, url: hostUrl }))) {\n logger.debug(\n { repository, hostUrl, hostType },\n `Provided hostname matches a ${hostType} hostrule.`,\n );\n return { datasource: sourceId, registryUrls: [hostname] };\n }\n }\n logger.debug(\n { repository, registry: hostUrl },\n 'Provided hostname did not match any of the hostRules of hostType github nor gitlab',\n );\n return { skipReason: 'unknown-registry', registryUrls: [hostname] };\n}\n\nconst gitUrlRegex = regEx(/\\.git$/i);\n\n// Matches: rev: <digest><whitespace># frozen: <version>\nconst revLineWithFrozenCommentRegex = regEx(\n /^\\s*rev:\\s*(?<replaceString>(?<currentDigest>[a-f0-9]{40})(?<commentWhiteSpaces>\\s+)#\\s*frozen:\\s*(?<currentValue>\\S+))/,\n);\n\ninterface RegexDep {\n currentDigest: string;\n currentValue: string;\n replaceString: string;\n autoReplaceStringTemplate: string;\n}\n\nfunction extractWithRegex(content: string): Map<string, RegexDep> {\n logger.trace('pre-commit.extractWithRegex()');\n const regexDeps = new Map<string, RegexDep>();\n\n for (const line of content.split(newlineRegex)) {\n if (line.trim().startsWith('#')) {\n continue;\n }\n\n const match = revLineWithFrozenCommentRegex.exec(line);\n if (match?.groups) {\n const { currentDigest, currentValue, replaceString, commentWhiteSpaces } =\n match.groups;\n\n // Store by digest to correlate with YAML-extracted deps later\n regexDeps.set(currentDigest, {\n currentDigest,\n currentValue,\n replaceString,\n autoReplaceStringTemplate: `{{newDigest}}${commentWhiteSpaces}# frozen: {{newValue}}`,\n });\n }\n }\n\n return regexDeps;\n}\n\nfunction extractDependency(tag: string, repository: string): PackageDependency {\n logger.debug(`Found version ${tag}`);\n\n const urlMatchers = [\n // This splits \"http://my.github.com/user/repo\" -> \"my.github.com\" \"user/repo\n regEx('^https?://(?<hostname>[^/]+)/(?<depName>\\\\S*)'),\n // This splits \"git@private.registry.com:user/repo\" -> \"private.registry.com\" \"user/repo\n regEx('^git@(?<hostname>[^:]+):(?<depName>\\\\S*)'),\n // This split \"git://github.com/pre-commit/pre-commit-hooks\" -> \"github.com\" \"pre-commit/pre-commit-hooks\"\n regEx(/^git:\\/\\/(?<hostname>[^/]+)\\/(?<depName>\\S*)/),\n // This splits \"ssh://git@github.com/pre-commit/pre-commit-hooks\" -> \"github.com\" \"pre-commit/pre-commit-hooks\"\n regEx(/^ssh:\\/\\/git@(?<hostname>[^/]+)\\/(?<depName>\\S*)/),\n ];\n for (const urlMatcher of urlMatchers) {\n const match = urlMatcher.exec(repository);\n if (match?.groups) {\n const hostname = match.groups.hostname;\n const depName = match.groups.depName.replace(gitUrlRegex, '');\n const sourceDef = determineDatasource(repository, hostname);\n return {\n ...sourceDef,\n depName,\n depType: 'repository',\n packageName: depName,\n currentValue: tag,\n };\n }\n }\n logger.info(\n { repository },\n 'Could not separate hostname from full dependency url.',\n );\n return {\n depName: undefined,\n depType: 'repository',\n datasource: undefined,\n packageName: undefined,\n skipReason: 'invalid-url',\n currentValue: tag,\n };\n}\n\n/**\n * Find all supported dependencies in the pre-commit yaml object.\n *\n * @param precommitFile the parsed yaml config file\n * @param regexDeps Map of regex-extracted deps keyed by digest for enrichment\n */\nfunction findDependencies(\n precommitFile: PreCommitConfig,\n regexDeps: Map<string, RegexDep>,\n): PackageDependency[] {\n if (!precommitFile.repos) {\n logger.debug(`No repos section found, skipping file`);\n return [];\n }\n const packageDependencies: PackageDependency[] = [];\n\n for (const item of precommitFile.repos) {\n // meta hooks is defined from pre-commit and doesn't support `additional_dependencies`\n if (item.repo !== 'meta') {\n for (const hook of item.hooks ?? []) {\n // normally language are not defined in yaml\n // only support it when it's explicitly defined.\n // this avoid to parse hooks from pre-commit-hooks.yaml from git repo\n if (hook.language === 'node') {\n hook.additional_dependencies?.map((req) => {\n const match = regEx('^(?<name>.+)@(?<range>.+)$').exec(req);\n if (!match?.groups) {\n return;\n }\n\n const depType = 'pre-commit-node';\n const dep = npmExtractDependency(\n depType,\n match.groups.name,\n match.groups.range,\n );\n packageDependencies.push({\n depType,\n depName: match.groups.name,\n packageName: match.groups.name,\n ...dep,\n });\n });\n } else if (hook.language === 'python') {\n hook.additional_dependencies?.map((req) => {\n const dep = pep508ToPackageDependency('pre-commit-python', req);\n if (dep) {\n packageDependencies.push(dep);\n }\n });\n } else if (hook.language === 'golang') {\n hook.additional_dependencies?.map((req) => {\n // Convert dependency into a gomod require line to use the gomod line parser\n const requireLine = `require ${req.replace('@', ' ')}`;\n const dep = parseLine(requireLine);\n if (dep) {\n const depType = 'pre-commit-golang';\n packageDependencies.push({\n ...dep,\n depType,\n });\n }\n });\n }\n }\n }\n\n if (matchesPrecommitDependencyHeuristic(item)) {\n logger.trace(item, 'Matched pre-commit dependency spec');\n const repository = String(item.repo);\n const tag = String(item.rev);\n const dep = extractDependency(tag, repository);\n\n // Check if this rev has regex-extracted formatting info\n const regexDep = regexDeps.get(tag);\n if (regexDep) {\n // Enrich with formatting info from regex extraction\n dep.currentDigest = regexDep.currentDigest;\n dep.currentValue = regexDep.currentValue;\n dep.replaceString = regexDep.replaceString;\n dep.autoReplaceStringTemplate = regexDep.autoReplaceStringTemplate;\n }\n\n packageDependencies.push(dep);\n } else {\n logger.trace(item, 'Did not find pre-commit repo spec');\n }\n }\n return packageDependencies;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n): PackageFileContent | null {\n type ParsedContent = Record<string, unknown> | PreCommitConfig;\n let parsedContent: ParsedContent;\n try {\n // TODO: use schema (#9610)\n parsedContent = parseSingleYaml(content);\n } catch (err) {\n logger.debug(\n { filename: packageFile, err },\n 'Failed to parse pre-commit config YAML',\n );\n return null;\n }\n if (!isPlainObject<Record<string, unknown>>(parsedContent)) {\n logger.debug(\n { packageFile },\n `Parsing of pre-commit config YAML returned invalid result`,\n );\n return null;\n }\n if (!matchesPrecommitConfigHeuristic(parsedContent)) {\n logger.debug(\n { packageFile },\n `File does not look like a pre-commit config file`,\n );\n return null;\n }\n try {\n const regexDeps = extractWithRegex(content);\n const deps = findDependencies(parsedContent, regexDeps);\n if (deps.length) {\n logger.trace({ deps }, 'Found dependencies in pre-commit config');\n return { deps };\n }\n } catch (err) /* istanbul ignore next */ {\n logger.debug(\n { packageFile, err },\n 'Error scanning parsed pre-commit config',\n );\n }\n return null;\n}\n"],"mappings":"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"}
@@ -22,31 +22,32 @@ import api$21, { id as id$20 } from "./cargo/index.js";
22
22
  import api$22, { id as id$21 } from "./conan/index.js";
23
23
  import api$23, { id as id$22 } from "./deb/index.js";
24
24
  import api$24, { id as id$23 } from "./devbox/index.js";
25
- import api$25, { id as id$24 } from "./exact/index.js";
26
- import api$26, { id as id$25 } from "./git/index.js";
27
- import api$27, { id as id$26 } from "./glasskube/index.js";
28
- import api$28, { id as id$27 } from "./hashicorp/index.js";
29
- import api$29, { id as id$28 } from "./hermit/index.js";
30
- import api$30, { id as id$29 } from "./hex/index.js";
31
- import api$31, { id as id$30 } from "./ivy/index.js";
32
- import api$32, { id as id$31 } from "./kubernetes-api/index.js";
33
- import api$33, { id as id$32 } from "./lambda-node/index.js";
34
- import api$34, { id as id$33 } from "./nixpkgs/index.js";
35
- import api$35, { id as id$34 } from "./nuget/index.js";
36
- import api$36, { id as id$35 } from "./perl/index.js";
37
- import api$37, { id as id$36 } from "./poetry/index.js";
38
- import api$38, { id as id$37 } from "./pvp/index.js";
39
- import api$39, { id as id$38 } from "./python/index.js";
40
- import api$40, { id as id$39 } from "./redhat/index.js";
41
- import api$41, { id as id$40 } from "./rez/index.js";
42
- import api$42, { id as id$41 } from "./rpm/index.js";
43
- import api$43, { id as id$42 } from "./rust-release-channel/index.js";
44
- import api$44, { id as id$43 } from "./semver-coerced/index.js";
45
- import api$45, { id as id$44 } from "./same-major/index.js";
46
- import api$46, { id as id$45 } from "./semver-partial/index.js";
47
- import api$47, { id as id$46 } from "./swift/index.js";
48
- import api$48, { id as id$47 } from "./unity3d/index.js";
49
- import api$49, { id as id$48 } from "./unity3d-packages/index.js";
25
+ import api$25, { id as id$24 } from "./elm/index.js";
26
+ import api$26, { id as id$25 } from "./exact/index.js";
27
+ import api$27, { id as id$26 } from "./git/index.js";
28
+ import api$28, { id as id$27 } from "./glasskube/index.js";
29
+ import api$29, { id as id$28 } from "./hashicorp/index.js";
30
+ import api$30, { id as id$29 } from "./hermit/index.js";
31
+ import api$31, { id as id$30 } from "./hex/index.js";
32
+ import api$32, { id as id$31 } from "./ivy/index.js";
33
+ import api$33, { id as id$32 } from "./kubernetes-api/index.js";
34
+ import api$34, { id as id$33 } from "./lambda-node/index.js";
35
+ import api$35, { id as id$34 } from "./nixpkgs/index.js";
36
+ import api$36, { id as id$35 } from "./nuget/index.js";
37
+ import api$37, { id as id$36 } from "./perl/index.js";
38
+ import api$38, { id as id$37 } from "./poetry/index.js";
39
+ import api$39, { id as id$38 } from "./pvp/index.js";
40
+ import api$40, { id as id$39 } from "./python/index.js";
41
+ import api$41, { id as id$40 } from "./redhat/index.js";
42
+ import api$42, { id as id$41 } from "./rez/index.js";
43
+ import api$43, { id as id$42 } from "./rpm/index.js";
44
+ import api$44, { id as id$43 } from "./rust-release-channel/index.js";
45
+ import api$45, { id as id$44 } from "./semver-coerced/index.js";
46
+ import api$46, { id as id$45 } from "./same-major/index.js";
47
+ import api$47, { id as id$46 } from "./semver-partial/index.js";
48
+ import api$48, { id as id$47 } from "./swift/index.js";
49
+ import api$49, { id as id$48 } from "./unity3d/index.js";
50
+ import api$50, { id as id$49 } from "./unity3d-packages/index.js";
50
51
 
51
52
  //#region lib/modules/versioning/api.ts
52
53
  const api = /* @__PURE__ */ new Map();
@@ -65,40 +66,41 @@ api.set(id, api$1);
65
66
  api.set(id$24, api$25);
66
67
  api.set(id$25, api$26);
67
68
  api.set(id$26, api$27);
69
+ api.set(id$27, api$28);
68
70
  api.set(id$11, api$12);
69
71
  api.set(id$13, api$14);
70
- api.set(id$27, api$28);
71
- api.set(id$6, api$7);
72
72
  api.set(id$28, api$29);
73
+ api.set(id$6, api$7);
73
74
  api.set(id$29, api$30);
74
75
  api.set(id$30, api$31);
75
76
  api.set(id$31, api$32);
76
77
  api.set(id$32, api$33);
78
+ api.set(id$33, api$34);
77
79
  api.set(id$10, api$11);
78
80
  api.set(id$12, api$13);
79
- api.set(id$33, api$34);
81
+ api.set(id$34, api$35);
80
82
  api.set(id$7, api$8);
81
83
  api.set(id$5, api$6);
82
- api.set(id$34, api$35);
83
- api.set(id$3, api$4);
84
84
  api.set(id$35, api$36);
85
+ api.set(id$3, api$4);
85
86
  api.set(id$36, api$37);
86
87
  api.set(id$37, api$38);
87
88
  api.set(id$38, api$39);
88
89
  api.set(id$39, api$40);
89
- api.set(id$9, api$10);
90
90
  api.set(id$40, api$41);
91
+ api.set(id$9, api$10);
91
92
  api.set(id$41, api$42);
92
- api.set(id$8, api$9);
93
93
  api.set(id$42, api$43);
94
- api.set(id$44, api$45);
95
- api.set(id$4, api$5);
94
+ api.set(id$8, api$9);
96
95
  api.set(id$43, api$44);
97
96
  api.set(id$45, api$46);
97
+ api.set(id$4, api$5);
98
+ api.set(id$44, api$45);
98
99
  api.set(id$46, api$47);
99
- api.set(id$2, api$3);
100
100
  api.set(id$47, api$48);
101
+ api.set(id$2, api$3);
101
102
  api.set(id$48, api$49);
103
+ api.set(id$49, api$50);
102
104
 
103
105
  //#endregion
104
106
  export { api as default };
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","names":["awsEksAddon.id","awsEksAddon.api","amazonMachineImage.id","amazonMachineImage.api","azureRestApi.id","azureRestApi.api","bazelModule.id","bazelModule.api","cargo.id","cargo.api","composer.id","composer.api","conan.id","conan.api","conda.id","conda.api","deb.id","deb.api","debian.id","debian.api","devbox.id","devbox.api","docker.id","docker.api","exact.id","exact.api","git.id","git.api","glasskube.id","glasskube.api","goModDirective.id","goModDirective.api","gradle.id","gradle.api","hashicorp.id","hashicorp.api","helm.id","helm.api","hermit.id","hermit.api","hex.id","hex.api","ivy.id","ivy.api","kubernetesApi.id","kubernetesApi.api","lambdaNode.id","lambdaNode.api","loose.id","loose.api","maven.id","maven.api","nixpkgs.id","nixpkgs.api","node.id","node.api","npm.id","npm.api","nuget.id","nuget.api","pep440.id","pep440.api","perl.id","perl.api","poetry.id","poetry.api","pvp.id","pvp.api","python.id","python.api","redhat.id","redhat.api","regex.id","regex.api","rez.id","rez.api","rpm.id","rpm.api","ruby.id","ruby.api","rustReleaseChannel.id","rustReleaseChannel.api","sameMajor.id","sameMajor.api","semver.id","semver.api","semverCoerced.id","semverCoerced.api","semverPartial.id","semverPartial.api","swift.id","swift.api","ubuntu.id","ubuntu.api","unity3d.id","unity3d.api","unity3dPackages.id","unity3dPackages.api"],"sources":["../../../lib/modules/versioning/api.ts"],"sourcesContent":["import * as awsEksAddon from './aws-eks-addon/index.ts';\nimport * as amazonMachineImage from './aws-machine-image/index.ts';\nimport * as azureRestApi from './azure-rest-api/index.ts';\nimport * as bazelModule from './bazel-module/index.ts';\nimport * as cargo from './cargo/index.ts';\nimport * as composer from './composer/index.ts';\nimport * as conan from './conan/index.ts';\nimport * as conda from './conda/index.ts';\nimport * as deb from './deb/index.ts';\nimport * as debian from './debian/index.ts';\nimport * as devbox from './devbox/index.ts';\nimport * as docker from './docker/index.ts';\nimport * as exact from './exact/index.ts';\nimport * as git from './git/index.ts';\nimport * as glasskube from './glasskube/index.ts';\nimport * as goModDirective from './go-mod-directive/index.ts';\nimport * as gradle from './gradle/index.ts';\nimport * as hashicorp from './hashicorp/index.ts';\nimport * as helm from './helm/index.ts';\nimport * as hermit from './hermit/index.ts';\nimport * as hex from './hex/index.ts';\nimport * as ivy from './ivy/index.ts';\nimport * as kubernetesApi from './kubernetes-api/index.ts';\nimport * as lambdaNode from './lambda-node/index.ts';\nimport * as loose from './loose/index.ts';\nimport * as maven from './maven/index.ts';\nimport * as nixpkgs from './nixpkgs/index.ts';\nimport * as node from './node/index.ts';\nimport * as npm from './npm/index.ts';\nimport * as nuget from './nuget/index.ts';\nimport * as pep440 from './pep440/index.ts';\nimport * as perl from './perl/index.ts';\nimport * as poetry from './poetry/index.ts';\nimport * as pvp from './pvp/index.ts';\nimport * as python from './python/index.ts';\nimport * as redhat from './redhat/index.ts';\nimport * as regex from './regex/index.ts';\nimport * as rez from './rez/index.ts';\nimport * as rpm from './rpm/index.ts';\nimport * as ruby from './ruby/index.ts';\nimport * as rustReleaseChannel from './rust-release-channel/index.ts';\nimport * as sameMajor from './same-major/index.ts';\nimport * as semver from './semver/index.ts';\nimport * as semverCoerced from './semver-coerced/index.ts';\nimport * as semverPartial from './semver-partial/index.ts';\nimport * as swift from './swift/index.ts';\nimport type { VersioningApi, VersioningApiConstructor } from './types.ts';\nimport * as ubuntu from './ubuntu/index.ts';\nimport * as unity3d from './unity3d/index.ts';\nimport * as unity3dPackages from './unity3d-packages/index.ts';\n\nconst api = new Map<string, VersioningApi | VersioningApiConstructor>();\nexport default api;\n\napi.set(awsEksAddon.id, awsEksAddon.api);\napi.set(amazonMachineImage.id, amazonMachineImage.api);\napi.set(azureRestApi.id, azureRestApi.api);\napi.set(bazelModule.id, bazelModule.api);\napi.set(cargo.id, cargo.api);\napi.set(composer.id, composer.api);\napi.set(conan.id, conan.api);\napi.set(conda.id, conda.api);\napi.set(deb.id, deb.api);\napi.set(debian.id, debian.api);\napi.set(devbox.id, devbox.api);\napi.set(docker.id, docker.api);\napi.set(exact.id, exact.api);\napi.set(git.id, git.api);\napi.set(glasskube.id, glasskube.api);\napi.set(goModDirective.id, goModDirective.api);\napi.set(gradle.id, gradle.api);\napi.set(hashicorp.id, hashicorp.api);\napi.set(helm.id, helm.api);\napi.set(hermit.id, hermit.api);\napi.set(hex.id, hex.api);\napi.set(ivy.id, ivy.api);\napi.set(kubernetesApi.id, kubernetesApi.api);\napi.set(lambdaNode.id, lambdaNode.api);\napi.set(loose.id, loose.api);\napi.set(maven.id, maven.api);\napi.set(nixpkgs.id, nixpkgs.api);\napi.set(node.id, node.api);\napi.set(npm.id, npm.api);\napi.set(nuget.id, nuget.api);\napi.set(pep440.id, pep440.api);\napi.set(perl.id, perl.api);\napi.set(poetry.id, poetry.api);\napi.set(pvp.id, pvp.api);\napi.set(python.id, python.api);\napi.set(redhat.id, redhat.api);\napi.set(regex.id, regex.api);\napi.set(rez.id, rez.api);\napi.set(rpm.id, rpm.api);\napi.set(ruby.id, ruby.api);\napi.set(rustReleaseChannel.id, rustReleaseChannel.api);\napi.set(sameMajor.id, sameMajor.api);\napi.set(semver.id, semver.api);\napi.set(semverCoerced.id, semverCoerced.api);\napi.set(semverPartial.id, semverPartial.api);\napi.set(swift.id, swift.api);\napi.set(ubuntu.id, ubuntu.api);\napi.set(unity3d.id, unity3d.api);\napi.set(unity3dPackages.id, unity3dPackages.api);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDA,MAAM,sBAAM,IAAI,KAAuD;AAGvE,IAAI,IAAIA,OAAgBC,OAAgB;AACxC,IAAI,IAAIC,OAAuBC,OAAuB;AACtD,IAAI,IAAIC,OAAiBC,OAAiB;AAC1C,IAAI,IAAIC,OAAgBC,OAAgB;AACxC,IAAI,IAAIC,OAAUC,OAAU;AAC5B,IAAI,IAAIC,OAAaC,OAAa;AAClC,IAAI,IAAIC,OAAUC,OAAU;AAC5B,IAAI,IAAIC,OAAUC,OAAU;AAC5B,IAAI,IAAIC,OAAQC,OAAQ;AACxB,IAAI,IAAIC,MAAWC,MAAW;AAC9B,IAAI,IAAIC,OAAWC,OAAW;AAC9B,IAAI,IAAIC,IAAWC,MAAW;AAC9B,IAAI,IAAIC,OAAUC,OAAU;AAC5B,IAAI,IAAIC,OAAQC,OAAQ;AACxB,IAAI,IAAIC,OAAcC,OAAc;AACpC,IAAI,IAAIC,OAAmBC,OAAmB;AAC9C,IAAI,IAAIC,OAAWC,OAAW;AAC9B,IAAI,IAAIC,OAAcC,OAAc;AACpC,IAAI,IAAIC,MAASC,MAAS;AAC1B,IAAI,IAAIC,OAAWC,OAAW;AAC9B,IAAI,IAAIC,OAAQC,OAAQ;AACxB,IAAI,IAAIC,OAAQC,OAAQ;AACxB,IAAI,IAAIC,OAAkBC,OAAkB;AAC5C,IAAI,IAAIC,OAAeC,OAAe;AACtC,IAAI,IAAIC,OAAUC,OAAU;AAC5B,IAAI,IAAIC,OAAUC,OAAU;AAC5B,IAAI,IAAIC,OAAYC,OAAY;AAChC,IAAI,IAAIC,MAASC,MAAS;AAC1B,IAAI,IAAIC,MAAQC,MAAQ;AACxB,IAAI,IAAIC,OAAUC,OAAU;AAC5B,IAAI,IAAIC,MAAWC,MAAW;AAC9B,IAAI,IAAIC,OAASC,OAAS;AAC1B,IAAI,IAAIC,OAAWC,OAAW;AAC9B,IAAI,IAAIC,OAAQC,OAAQ;AACxB,IAAI,IAAIC,OAAWC,OAAW;AAC9B,IAAI,IAAIC,OAAWC,OAAW;AAC9B,IAAI,IAAIC,MAAUC,OAAU;AAC5B,IAAI,IAAIC,OAAQC,OAAQ;AACxB,IAAI,IAAIC,OAAQC,OAAQ;AACxB,IAAI,IAAIC,MAASC,MAAS;AAC1B,IAAI,IAAIC,OAAuBC,OAAuB;AACtD,IAAI,IAAIC,OAAcC,OAAc;AACpC,IAAI,IAAIC,MAAWC,MAAW;AAC9B,IAAI,IAAIC,OAAkBC,OAAkB;AAC5C,IAAI,IAAIC,OAAkBC,OAAkB;AAC5C,IAAI,IAAIC,OAAUC,OAAU;AAC5B,IAAI,IAAIC,MAAWC,MAAW;AAC9B,IAAI,IAAIC,OAAYC,OAAY;AAChC,IAAI,IAAIC,OAAoBC,OAAoB"}
1
+ {"version":3,"file":"api.js","names":["awsEksAddon.id","awsEksAddon.api","amazonMachineImage.id","amazonMachineImage.api","azureRestApi.id","azureRestApi.api","bazelModule.id","bazelModule.api","cargo.id","cargo.api","composer.id","composer.api","conan.id","conan.api","conda.id","conda.api","deb.id","deb.api","debian.id","debian.api","devbox.id","devbox.api","docker.id","docker.api","elm.id","elm.api","exact.id","exact.api","git.id","git.api","glasskube.id","glasskube.api","goModDirective.id","goModDirective.api","gradle.id","gradle.api","hashicorp.id","hashicorp.api","helm.id","helm.api","hermit.id","hermit.api","hex.id","hex.api","ivy.id","ivy.api","kubernetesApi.id","kubernetesApi.api","lambdaNode.id","lambdaNode.api","loose.id","loose.api","maven.id","maven.api","nixpkgs.id","nixpkgs.api","node.id","node.api","npm.id","npm.api","nuget.id","nuget.api","pep440.id","pep440.api","perl.id","perl.api","poetry.id","poetry.api","pvp.id","pvp.api","python.id","python.api","redhat.id","redhat.api","regex.id","regex.api","rez.id","rez.api","rpm.id","rpm.api","ruby.id","ruby.api","rustReleaseChannel.id","rustReleaseChannel.api","sameMajor.id","sameMajor.api","semver.id","semver.api","semverCoerced.id","semverCoerced.api","semverPartial.id","semverPartial.api","swift.id","swift.api","ubuntu.id","ubuntu.api","unity3d.id","unity3d.api","unity3dPackages.id","unity3dPackages.api"],"sources":["../../../lib/modules/versioning/api.ts"],"sourcesContent":["import * as awsEksAddon from './aws-eks-addon/index.ts';\nimport * as amazonMachineImage from './aws-machine-image/index.ts';\nimport * as azureRestApi from './azure-rest-api/index.ts';\nimport * as bazelModule from './bazel-module/index.ts';\nimport * as cargo from './cargo/index.ts';\nimport * as composer from './composer/index.ts';\nimport * as conan from './conan/index.ts';\nimport * as conda from './conda/index.ts';\nimport * as deb from './deb/index.ts';\nimport * as debian from './debian/index.ts';\nimport * as devbox from './devbox/index.ts';\nimport * as docker from './docker/index.ts';\nimport * as elm from './elm/index.ts';\nimport * as exact from './exact/index.ts';\nimport * as git from './git/index.ts';\nimport * as glasskube from './glasskube/index.ts';\nimport * as goModDirective from './go-mod-directive/index.ts';\nimport * as gradle from './gradle/index.ts';\nimport * as hashicorp from './hashicorp/index.ts';\nimport * as helm from './helm/index.ts';\nimport * as hermit from './hermit/index.ts';\nimport * as hex from './hex/index.ts';\nimport * as ivy from './ivy/index.ts';\nimport * as kubernetesApi from './kubernetes-api/index.ts';\nimport * as lambdaNode from './lambda-node/index.ts';\nimport * as loose from './loose/index.ts';\nimport * as maven from './maven/index.ts';\nimport * as nixpkgs from './nixpkgs/index.ts';\nimport * as node from './node/index.ts';\nimport * as npm from './npm/index.ts';\nimport * as nuget from './nuget/index.ts';\nimport * as pep440 from './pep440/index.ts';\nimport * as perl from './perl/index.ts';\nimport * as poetry from './poetry/index.ts';\nimport * as pvp from './pvp/index.ts';\nimport * as python from './python/index.ts';\nimport * as redhat from './redhat/index.ts';\nimport * as regex from './regex/index.ts';\nimport * as rez from './rez/index.ts';\nimport * as rpm from './rpm/index.ts';\nimport * as ruby from './ruby/index.ts';\nimport * as rustReleaseChannel from './rust-release-channel/index.ts';\nimport * as sameMajor from './same-major/index.ts';\nimport * as semver from './semver/index.ts';\nimport * as semverCoerced from './semver-coerced/index.ts';\nimport * as semverPartial from './semver-partial/index.ts';\nimport * as swift from './swift/index.ts';\nimport type { VersioningApi, VersioningApiConstructor } from './types.ts';\nimport * as ubuntu from './ubuntu/index.ts';\nimport * as unity3d from './unity3d/index.ts';\nimport * as unity3dPackages from './unity3d-packages/index.ts';\n\nconst api = new Map<string, VersioningApi | VersioningApiConstructor>();\nexport default api;\n\napi.set(awsEksAddon.id, awsEksAddon.api);\napi.set(amazonMachineImage.id, amazonMachineImage.api);\napi.set(azureRestApi.id, azureRestApi.api);\napi.set(bazelModule.id, bazelModule.api);\napi.set(cargo.id, cargo.api);\napi.set(composer.id, composer.api);\napi.set(conan.id, conan.api);\napi.set(conda.id, conda.api);\napi.set(deb.id, deb.api);\napi.set(debian.id, debian.api);\napi.set(devbox.id, devbox.api);\napi.set(docker.id, docker.api);\napi.set(elm.id, elm.api);\napi.set(exact.id, exact.api);\napi.set(git.id, git.api);\napi.set(glasskube.id, glasskube.api);\napi.set(goModDirective.id, goModDirective.api);\napi.set(gradle.id, gradle.api);\napi.set(hashicorp.id, hashicorp.api);\napi.set(helm.id, helm.api);\napi.set(hermit.id, hermit.api);\napi.set(hex.id, hex.api);\napi.set(ivy.id, ivy.api);\napi.set(kubernetesApi.id, kubernetesApi.api);\napi.set(lambdaNode.id, lambdaNode.api);\napi.set(loose.id, loose.api);\napi.set(maven.id, maven.api);\napi.set(nixpkgs.id, nixpkgs.api);\napi.set(node.id, node.api);\napi.set(npm.id, npm.api);\napi.set(nuget.id, nuget.api);\napi.set(pep440.id, pep440.api);\napi.set(perl.id, perl.api);\napi.set(poetry.id, poetry.api);\napi.set(pvp.id, pvp.api);\napi.set(python.id, python.api);\napi.set(redhat.id, redhat.api);\napi.set(regex.id, regex.api);\napi.set(rez.id, rez.api);\napi.set(rpm.id, rpm.api);\napi.set(ruby.id, ruby.api);\napi.set(rustReleaseChannel.id, rustReleaseChannel.api);\napi.set(sameMajor.id, sameMajor.api);\napi.set(semver.id, semver.api);\napi.set(semverCoerced.id, semverCoerced.api);\napi.set(semverPartial.id, semverPartial.api);\napi.set(swift.id, swift.api);\napi.set(ubuntu.id, ubuntu.api);\napi.set(unity3d.id, unity3d.api);\napi.set(unity3dPackages.id, unity3dPackages.api);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDA,MAAM,sBAAM,IAAI,KAAuD;AAGvE,IAAI,IAAIA,OAAgBC,OAAgB;AACxC,IAAI,IAAIC,OAAuBC,OAAuB;AACtD,IAAI,IAAIC,OAAiBC,OAAiB;AAC1C,IAAI,IAAIC,OAAgBC,OAAgB;AACxC,IAAI,IAAIC,OAAUC,OAAU;AAC5B,IAAI,IAAIC,OAAaC,OAAa;AAClC,IAAI,IAAIC,OAAUC,OAAU;AAC5B,IAAI,IAAIC,OAAUC,OAAU;AAC5B,IAAI,IAAIC,OAAQC,OAAQ;AACxB,IAAI,IAAIC,MAAWC,MAAW;AAC9B,IAAI,IAAIC,OAAWC,OAAW;AAC9B,IAAI,IAAIC,IAAWC,MAAW;AAC9B,IAAI,IAAIC,OAAQC,OAAQ;AACxB,IAAI,IAAIC,OAAUC,OAAU;AAC5B,IAAI,IAAIC,OAAQC,OAAQ;AACxB,IAAI,IAAIC,OAAcC,OAAc;AACpC,IAAI,IAAIC,OAAmBC,OAAmB;AAC9C,IAAI,IAAIC,OAAWC,OAAW;AAC9B,IAAI,IAAIC,OAAcC,OAAc;AACpC,IAAI,IAAIC,MAASC,MAAS;AAC1B,IAAI,IAAIC,OAAWC,OAAW;AAC9B,IAAI,IAAIC,OAAQC,OAAQ;AACxB,IAAI,IAAIC,OAAQC,OAAQ;AACxB,IAAI,IAAIC,OAAkBC,OAAkB;AAC5C,IAAI,IAAIC,OAAeC,OAAe;AACtC,IAAI,IAAIC,OAAUC,OAAU;AAC5B,IAAI,IAAIC,OAAUC,OAAU;AAC5B,IAAI,IAAIC,OAAYC,OAAY;AAChC,IAAI,IAAIC,MAASC,MAAS;AAC1B,IAAI,IAAIC,MAAQC,MAAQ;AACxB,IAAI,IAAIC,OAAUC,OAAU;AAC5B,IAAI,IAAIC,MAAWC,MAAW;AAC9B,IAAI,IAAIC,OAASC,OAAS;AAC1B,IAAI,IAAIC,OAAWC,OAAW;AAC9B,IAAI,IAAIC,OAAQC,OAAQ;AACxB,IAAI,IAAIC,OAAWC,OAAW;AAC9B,IAAI,IAAIC,OAAWC,OAAW;AAC9B,IAAI,IAAIC,MAAUC,OAAU;AAC5B,IAAI,IAAIC,OAAQC,OAAQ;AACxB,IAAI,IAAIC,OAAQC,OAAQ;AACxB,IAAI,IAAIC,MAASC,MAAS;AAC1B,IAAI,IAAIC,OAAuBC,OAAuB;AACtD,IAAI,IAAIC,OAAcC,OAAc;AACpC,IAAI,IAAIC,MAAWC,MAAW;AAC9B,IAAI,IAAIC,OAAkBC,OAAkB;AAC5C,IAAI,IAAIC,OAAkBC,OAAkB;AAC5C,IAAI,IAAIC,OAAUC,OAAU;AAC5B,IAAI,IAAIC,MAAWC,MAAW;AAC9B,IAAI,IAAIC,OAAYC,OAAY;AAChC,IAAI,IAAIC,OAAoBC,OAAoB"}
@@ -0,0 +1,148 @@
1
+ import { regEx } from "../../../util/regex.js";
2
+ import semver from "semver";
3
+ import stable from "semver-stable";
4
+
5
+ //#region lib/modules/versioning/elm/index.ts
6
+ const id = "elm";
7
+ const { is: isStable } = stable;
8
+ const { compare: sortVersions, major: getMajor, minor: getMinor, patch: getPatch, valid: valid$1, gt: isGreaterThan, gte: isGreaterThanOrEqual, eq: equals } = semver;
9
+ /**
10
+ * Elm range format: "1.0.0 <= v < 2.0.0"
11
+ * - Lower bound is inclusive (<=)
12
+ * - Upper bound is exclusive (<)
13
+ */
14
+ const elmRangeRegex = regEx(/^(?<lower>\d+\.\d+\.\d+)\s*<=\s*v\s*<\s*(?<upper>\d+\.\d+\.\d+)$/);
15
+ /**
16
+ * Parse Elm range constraint into lower and upper bounds
17
+ * Returns null if the range is invalid or malformed (e.g., lower > upper)
18
+ */
19
+ function parseElmRange(input) {
20
+ const groups = elmRangeRegex.exec(input.trim())?.groups;
21
+ if (!groups) return null;
22
+ const { lower, upper } = groups;
23
+ if (isGreaterThan(lower, upper)) return null;
24
+ return {
25
+ lower,
26
+ upper
27
+ };
28
+ }
29
+ /**
30
+ * Check if input is a valid semver version
31
+ */
32
+ function isVersion(input) {
33
+ if (!input) return false;
34
+ return !!valid$1(input);
35
+ }
36
+ /**
37
+ * Check if input is a valid Elm version or range
38
+ */
39
+ function isValid(input) {
40
+ if (isVersion(input)) return true;
41
+ const range = parseElmRange(input);
42
+ if (!range) return false;
43
+ return isVersion(range.lower) && isVersion(range.upper);
44
+ }
45
+ /**
46
+ * Check if version matches the range constraint
47
+ */
48
+ function matches(version, range) {
49
+ if (!isVersion(version)) return false;
50
+ if (isVersion(range)) return equals(version, range);
51
+ const parsed = parseElmRange(range);
52
+ if (!parsed) return false;
53
+ const { lower, upper } = parsed;
54
+ return isGreaterThanOrEqual(version, lower) && isGreaterThan(upper, version);
55
+ }
56
+ /**
57
+ * Check if version is less than the range's lower bound
58
+ */
59
+ function isLessThanRange(version, range) {
60
+ if (!isVersion(version)) return false;
61
+ if (isVersion(range)) return isGreaterThan(range, version);
62
+ const parsed = parseElmRange(range);
63
+ if (!parsed) return false;
64
+ return isGreaterThan(parsed.lower, version);
65
+ }
66
+ /**
67
+ * Select the highest version from versions that matches the range
68
+ */
69
+ function getSatisfyingVersion(versions, range) {
70
+ return versions.filter((v) => isVersion(v) && matches(v, range)).sort((a, b) => sortVersions(b, a))[0] ?? null;
71
+ }
72
+ /**
73
+ * Select the lowest version from versions that matches the range
74
+ */
75
+ function minSatisfyingVersion(versions, range) {
76
+ return versions.filter((v) => isVersion(v) && matches(v, range)).sort((a, b) => sortVersions(a, b))[0] ?? null;
77
+ }
78
+ /**
79
+ * Check if input represents exactly one version (no range)
80
+ */
81
+ function isSingleVersion(input) {
82
+ return isVersion(input);
83
+ }
84
+ /**
85
+ * Check if version is stable (not prerelease)
86
+ */
87
+ function isStableVersion(version) {
88
+ if (!isVersion(version)) return false;
89
+ return isStable(version);
90
+ }
91
+ /**
92
+ * Check if version is compatible
93
+ */
94
+ function isCompatible(version) {
95
+ return isVersion(version);
96
+ }
97
+ /**
98
+ * Calculate the next major version (e.g., "1.2.3" -> "2.0.0")
99
+ */
100
+ function nextMajor(version) {
101
+ return `${getMajor(version) + 1}.0.0`;
102
+ }
103
+ /**
104
+ * Calculate a new range/version based on the range strategy
105
+ */
106
+ function getNewValue({ currentValue, rangeStrategy, newVersion }) {
107
+ if (!isVersion(newVersion)) return null;
108
+ if (isVersion(currentValue)) return newVersion;
109
+ const parsed = parseElmRange(currentValue);
110
+ if (!parsed) return null;
111
+ const { lower, upper } = parsed;
112
+ switch (rangeStrategy) {
113
+ case "pin": return newVersion;
114
+ case "bump":
115
+ if (matches(newVersion, currentValue)) return `${newVersion} <= v < ${upper}`;
116
+ return `${newVersion} <= v < ${nextMajor(newVersion)}`;
117
+ case "widen":
118
+ if (matches(newVersion, currentValue)) return currentValue;
119
+ return `${lower} <= v < ${isGreaterThanOrEqual(newVersion, upper) ? nextMajor(newVersion) : upper}`;
120
+ case "replace": return `${newVersion} <= v < ${nextMajor(newVersion)}`;
121
+ case "update-lockfile":
122
+ if (matches(newVersion, currentValue)) return currentValue;
123
+ return `${newVersion} <= v < ${nextMajor(newVersion)}`;
124
+ default: return null;
125
+ }
126
+ }
127
+ const api = {
128
+ equals,
129
+ getMajor,
130
+ getMinor,
131
+ getNewValue,
132
+ getPatch,
133
+ isCompatible,
134
+ isGreaterThan,
135
+ isLessThanRange,
136
+ isSingleVersion,
137
+ isStable: isStableVersion,
138
+ isValid,
139
+ isVersion,
140
+ matches,
141
+ getSatisfyingVersion,
142
+ minSatisfyingVersion,
143
+ sortVersions
144
+ };
145
+
146
+ //#endregion
147
+ export { api as default, id };
148
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["valid"],"sources":["../../../../lib/modules/versioning/elm/index.ts"],"sourcesContent":["import semver from 'semver';\nimport stable from 'semver-stable';\nimport type { RangeStrategy } from '../../../types/versioning.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport type { NewValueConfig, VersioningApi } from '../types.ts';\n\nexport const id = 'elm';\nexport const displayName = 'Elm';\nexport const urls = ['https://elm-lang.org'];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies: RangeStrategy[] = [\n 'bump',\n 'widen',\n 'replace',\n];\n\nconst { is: isStable } = stable;\n\nconst {\n compare: sortVersions,\n major: getMajor,\n minor: getMinor,\n patch: getPatch,\n valid,\n gt: isGreaterThan,\n gte: isGreaterThanOrEqual,\n eq: equals,\n} = semver;\n\n/**\n * Elm range format: \"1.0.0 <= v < 2.0.0\"\n * - Lower bound is inclusive (<=)\n * - Upper bound is exclusive (<)\n */\nconst elmRangeRegex = regEx(\n /^(?<lower>\\d+\\.\\d+\\.\\d+)\\s*<=\\s*v\\s*<\\s*(?<upper>\\d+\\.\\d+\\.\\d+)$/,\n);\n\n/**\n * Parse Elm range constraint into lower and upper bounds\n * Returns null if the range is invalid or malformed (e.g., lower > upper)\n */\nfunction parseElmRange(input: string): { lower: string; upper: string } | null {\n const groups = elmRangeRegex.exec(input.trim())?.groups;\n if (!groups) {\n return null;\n }\n const { lower, upper } = groups;\n if (isGreaterThan(lower, upper)) {\n return null;\n }\n return { lower, upper };\n}\n\n/**\n * Check if input is a valid semver version\n */\nexport function isVersion(input: string | undefined | null): boolean {\n if (!input) {\n return false;\n }\n return !!valid(input);\n}\n\n/**\n * Check if input is a valid Elm version or range\n */\nexport function isValid(input: string): boolean {\n if (isVersion(input)) {\n return true;\n }\n const range = parseElmRange(input);\n if (!range) {\n return false;\n }\n return isVersion(range.lower) && isVersion(range.upper);\n}\n\n/**\n * Check if version matches the range constraint\n */\nfunction matches(version: string, range: string): boolean {\n if (!isVersion(version)) {\n return false;\n }\n if (isVersion(range)) {\n return equals(version, range);\n }\n const parsed = parseElmRange(range);\n if (!parsed) {\n return false;\n }\n const { lower, upper } = parsed;\n // version >= lower && version < upper\n return isGreaterThanOrEqual(version, lower) && isGreaterThan(upper, version);\n}\n\n/**\n * Check if version is less than the range's lower bound\n */\nfunction isLessThanRange(version: string, range: string): boolean {\n if (!isVersion(version)) {\n return false;\n }\n if (isVersion(range)) {\n return isGreaterThan(range, version);\n }\n const parsed = parseElmRange(range);\n if (!parsed) {\n return false;\n }\n return isGreaterThan(parsed.lower, version);\n}\n\n/**\n * Select the highest version from versions that matches the range\n */\nfunction getSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n const validVersions = versions\n .filter((v) => isVersion(v) && matches(v, range))\n .sort((a, b) => sortVersions(b, a));\n return validVersions[0] ?? null;\n}\n\n/**\n * Select the lowest version from versions that matches the range\n */\nfunction minSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n const validVersions = versions\n .filter((v) => isVersion(v) && matches(v, range))\n .sort((a, b) => sortVersions(a, b));\n return validVersions[0] ?? null;\n}\n\n/**\n * Check if input represents exactly one version (no range)\n */\nfunction isSingleVersion(input: string): boolean {\n return isVersion(input);\n}\n\n/**\n * Check if version is stable (not prerelease)\n */\nfunction isStableVersion(version: string): boolean {\n if (!isVersion(version)) {\n return false;\n }\n return isStable(version);\n}\n\n/**\n * Check if version is compatible\n */\nfunction isCompatible(version: string): boolean {\n return isVersion(version);\n}\n\n/**\n * Calculate the next major version (e.g., \"1.2.3\" -> \"2.0.0\")\n */\nfunction nextMajor(version: string): string {\n return `${getMajor(version) + 1}.0.0`;\n}\n\n/**\n * Calculate a new range/version based on the range strategy\n */\nfunction getNewValue({\n currentValue,\n rangeStrategy,\n newVersion,\n}: NewValueConfig): string | null {\n if (!isVersion(newVersion)) {\n return null;\n }\n\n // If current value is an exact version, return new exact version\n if (isVersion(currentValue)) {\n return newVersion;\n }\n\n const parsed = parseElmRange(currentValue);\n if (!parsed) {\n return null;\n }\n\n const { lower, upper } = parsed;\n\n switch (rangeStrategy) {\n case 'pin':\n return newVersion;\n\n case 'bump': {\n // Bump the lower bound to the new version, keep upper if it still contains newVersion\n // Otherwise bump upper to next major of newVersion\n if (matches(newVersion, currentValue)) {\n return `${newVersion} <= v < ${upper}`;\n }\n return `${newVersion} <= v < ${nextMajor(newVersion)}`;\n }\n\n case 'widen': {\n // Widen the range to include the new version\n if (matches(newVersion, currentValue)) {\n return currentValue;\n }\n // Extend upper bound if newVersion is greater than or equal to upper\n const newUpper = isGreaterThanOrEqual(newVersion, upper)\n ? nextMajor(newVersion)\n : upper;\n return `${lower} <= v < ${newUpper}`;\n }\n\n case 'replace': {\n // Replace with a new range starting at newVersion\n return `${newVersion} <= v < ${nextMajor(newVersion)}`;\n }\n\n case 'update-lockfile': {\n // Keep the range as-is if it still matches\n if (matches(newVersion, currentValue)) {\n return currentValue;\n }\n // Otherwise use replace strategy\n return `${newVersion} <= v < ${nextMajor(newVersion)}`;\n }\n\n default:\n return null;\n }\n}\n\nexport const api: VersioningApi = {\n equals,\n getMajor,\n getMinor,\n getNewValue,\n getPatch,\n isCompatible,\n isGreaterThan,\n isLessThanRange,\n isSingleVersion,\n isStable: isStableVersion,\n isValid,\n isVersion,\n matches,\n getSatisfyingVersion,\n minSatisfyingVersion,\n sortVersions,\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.19.2",
4
+ "version": "43.20.0",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -263,7 +263,7 @@
263
263
  "@types/tmp": "0.2.6",
264
264
  "@types/validate-npm-package-name": "4.0.2",
265
265
  "@vitest/coverage-v8": "4.0.18",
266
- "@vitest/eslint-plugin": "1.6.6",
266
+ "@vitest/eslint-plugin": "1.6.7",
267
267
  "ajv": "8.17.1",
268
268
  "ajv-formats": "3.0.1",
269
269
  "aws-sdk-client-mock": "4.1.0",
@@ -299,7 +299,7 @@
299
299
  "tsdown": "0.20.3",
300
300
  "type-fest": "5.4.4",
301
301
  "typescript": "5.9.3",
302
- "typescript-eslint": "8.54.0",
302
+ "typescript-eslint": "8.55.0",
303
303
  "unified": "11.0.5",
304
304
  "vite": "8.0.0-beta.13",
305
305
  "vite-tsconfig-paths": "6.1.0",
@@ -1,7 +1,7 @@
1
1
  {
2
- "title": "JSON schema for Renovate 43.19.2 config files (https://renovatebot.com/)",
2
+ "title": "JSON schema for Renovate 43.20.0 config files (https://renovatebot.com/)",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
- "x-renovate-version": "43.19.2",
4
+ "x-renovate-version": "43.20.0",
5
5
  "allowComments": true,
6
6
  "type": "object",
7
7
  "properties": {
@@ -8208,6 +8208,7 @@
8208
8208
  "debian",
8209
8209
  "devbox",
8210
8210
  "docker",
8211
+ "elm",
8211
8212
  "exact",
8212
8213
  "git",
8213
8214
  "glasskube",