renovate 43.265.4 → 43.265.5
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.
- package/dist/modules/manager/fingerprint.generated.js +1 -1
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/terraform/lockfile/index.js +3 -3
- package/dist/modules/manager/terraform/lockfile/index.js.map +1 -1
- package/dist/modules/manager/terraform/lockfile/util.js +72 -1
- package/dist/modules/manager/terraform/lockfile/util.js.map +1 -1
- package/package.json +1 -1
- package/renovate-schema.json +2 -2
|
@@ -103,7 +103,7 @@ hashMap.set("setup-cfg", "7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21
|
|
|
103
103
|
hashMap.set("sveltos", "05b3158e88771ed4629e171592cf4f1bf0ff342f8aeae89be0b340c630cc6d8e");
|
|
104
104
|
hashMap.set("swift", "56cdc6fe4cd00519f953459f94323c71677f6bde007537eef891154fb8696db1");
|
|
105
105
|
hashMap.set("tekton", "fdc5b9b5edec2a90cda2f858f3ebc532aa8efb1187d1e0b7c89b07796e9cb6cd");
|
|
106
|
-
hashMap.set("terraform", "
|
|
106
|
+
hashMap.set("terraform", "374c6e681a1b2a40c6d914a94485f15e68051f651972cd2dd3415ed4725eb74c");
|
|
107
107
|
hashMap.set("terraform-version", "ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa");
|
|
108
108
|
hashMap.set("terragrunt", "142c3f0549c4152297615b5bbf3a78ba8f7ce6a0cebcea63b81e9815dca40494");
|
|
109
109
|
hashMap.set("terragrunt-version", "eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d");
|
|
@@ -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','1d3568f42393d697f8f96d461b72077ee7a1044b654e87667a12f861b3083111');\nhashMap.set('ansible-galaxy','8226d47128f2018825d4d6f84794e3183eb79c706045fa7e88491edd5e64106f');\nhashMap.set('ant','2df5943cf0ed19a21b94df13729dbb925655548130caf37e3e22bebaed518e17');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','0407066010ebb3d7ad4c1afe6b9a3615a3c11d64dc3cf0674cb9dfc3ea272273');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','b1324dc15e77012a667d33c48c14dec90aa25832593c6c47c219d57931bd1def');\nhashMap.set('bazelisk','49e6bd1fc8f03facd06e517dc64596833b90ee0a079a45cff78f0eeb3c3566f8');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','2df1756b14b3d690e5ad1295bc1e78d8a8d7b967a552fd7b8e3274866a5acf3e');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','a2fbfa9f12971e70e740b362d0cd488f6489e7c65bc9617b52b2ac67e6040551');\nhashMap.set('cake','65ad4f28c318675b9edb49dbd11d677f42c762b01b3f5a25dd3b2f345ecd387e');\nhashMap.set('cargo','23fcc425ccd3a50559210e0ab8c84c1d47cf5c617cd5d58afdcf258ab862bafa');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','91cbeb33ea20f9838e2c81a1195eb806f0b38fa282bc3679f62552f20575ca85');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','08310c39254947632d42058f74f755e9d3f3019c2edeeaf52b5142917085e2df');\nhashMap.set('composer','991a845be7ede562df4abfb005caf5e22cded077cec46711f8c008e468fbd633');\nhashMap.set('conan','b846e8812d65d4201dc0bf7c1d5c344e3a1edaaff6441010875171028be2f0fb');\nhashMap.set('copier','3ff250122cf49d52f23fcd3686274b0e86a99d0cb8bfa7e3e2ee3dd3b3babd56');\nhashMap.set('cpanfile','07813fec3f3c2197056500e9266a0553b9774c02f2c74d5ca2e213188c7c12d3');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deno','9fbc30b9ee7b8eb6ccbc1ef459b3c983bdb1dff38f43b51013056ce7b94ceced');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','ac472ae4897dc1df85326dbd89a8c3488579ae2b180014ffcf085ce422e19dbd');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','d73d5d35f10df0599a561d9c8d25f3935350407d0e3bd3a1d1545295f278912e');\nhashMap.set('flux','22de4afb277e579dcbc7ec765eca2ddc5e4b1bb39d49e762e8af026fa062c53f');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','4b633aedb8a792727f5e5d0b123a6b5a1b01429ea3153c567e2258523816205c');\nhashMap.set('github-actions','100d3ecacf720978aef32ec929d879b6392485ecaab0cb395d497f24a0ab3850');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','ef696c478c2ac1723b3aca070ba9779be0e702fff0844054251ba0029523d0eb');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','e7ee3392d1f900fc1299308c8e930db9288790c6d0b6c35f1a62e55683090d34');\nhashMap.set('gomod','9ab033fb37fbf3b212232019ba2d36e247acc9831f7c17818a40cb155606abfe');\nhashMap.set('gradle','65487851c4592d9f6b7889137576c4e2dd6a98b8bee6db9c999d67bfc13d5247');\nhashMap.set('gradle-wrapper','f85031e7feb4e811aa5f29c589a30f8076a078e5bbf366fb65fb28b5a47d2c44');\nhashMap.set('haskell-cabal','f232d0e883235f74ed71fd9de4a7468e5fcbda9a1af5beb56c24657f7bf2e891');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','5bbc18bf059640191e2237408ca3b442556834e5c1c05d3317e82e7e097ae1f2');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','86799a6d3fba17b1f4c8017d308cba44a1efcf6d6290371263b8cf14be9e16ae');\nhashMap.set('hermit','f30ba5fe8ee46997c1f3d15235e6ff64c96d7ce5e439ee99f8008580348fe0da');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','56ef90301143874355fd2ed25dff7c646875f701f97422d02e01d45608a88f31');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','f918a7f378dc207cadf291e7481006008c69623f690902ed921e1e33db270b78');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','c6ee547378d5c5619a0fe94be35f9838e0f006b4807a896e9caefefa20efacf7');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','2bf7b65d51718daf3eec4f30c0fc7f2f045f4f8f24862bebe17c2174abb606b9');\nhashMap.set('maven-wrapper','976ed8a59cf43b0c765b1a49ebc5669478e78278cf48f4ce3d0deb49647d10e3');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','248fe4f1ea5c985921c286785792c97e06fc41f402b2d45df82f6aecd17f710e');\nhashMap.set('mise','633e7e325055c9a39413dbce346c32cda6dec83ed9f20d6cdfc7d1255b94bafb');\nhashMap.set('mix','ead2078c33550ec8695298c053f549866e1701fa096440d4228e3e51f8f1e49c');\nhashMap.set('nix','95f0827f7ec9a3bfd5119534f129aad6cf26b28e99d55aec0945f08bbfff9fb1');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','8c173b17fcce19d1be44d0d548809de5fb3d7e45adf3ce5fd6d7ebe699e94d6c');\nhashMap.set('nuget','54c1e149b47e4f588e99857e3e62b420f50649a868a28944a0c82a7b7fb530e7');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','fffd093eaf6de3cab7b2f6b57e57715aa240fcd958954f31fbc47f18e1730a4d');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','fd26981e4e865b8fece492ff78faf34701af62bb8f39397445780eb81b66b7db');\nhashMap.set('pip_requirements','edaf5ec21e63fd252e6737b294f215d59068b0bba1dea92b9d4510dbb872c837');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','1d0af710667f6dce377feae9aa238b21fe5e0e75e75758a70f5e9758c6cb6678');\nhashMap.set('pixi','7d183aaae4370a0c62496bbff60ad12fd4dd46822630541f712f437dcea021e1');\nhashMap.set('poetry','0211739556f8193c70fa69cbf66c60e688042fd7dc7a2fe08f9f328b35ad1f82');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('proto','412053d4550026b4ace490b46e970915b87ec1abf0b0a0c6c8c58ccf1fc16843');\nhashMap.set('pub','aad0dd6524158fda5345d75662f337b275c6c46b29f051ba94201d42c22b0da8');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e355e13e104351a8b3516a8e272fc5f7e625c9f39b0c492ba27283a36227c2d4');\nhashMap.set('renovate-config','2a4e4fb671aed5d0c900b8d54c31bfef46ca36d0f4e16b00ff73377b9c09fb69');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('rust-toolchain','e957f1f1563af4e5fbd1c552ca15632b7808d9d2e51ec0da6022a1f84372caec');\nhashMap.set('sbt','74125bd9c76a5724092258cd1dee1ea99fc0d735b463a2b64fedc5d950efde2a');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','05b3158e88771ed4629e171592cf4f1bf0ff342f8aeae89be0b340c630cc6d8e');\nhashMap.set('swift','56cdc6fe4cd00519f953459f94323c71677f6bde007537eef891154fb8696db1');\nhashMap.set('tekton','fdc5b9b5edec2a90cda2f858f3ebc532aa8efb1187d1e0b7c89b07796e9cb6cd');\nhashMap.set('terraform','045931e1d5ae5607fb7fbcdfe6d2cd9cf45020432de7c78fbb3432579c8b3310');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','142c3f0549c4152297615b5bbf3a78ba8f7ce6a0cebcea63b81e9815dca40494');\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','dfd7b905577b362093ce72e6ee597308f97c83678ddb15d6455a1627969b8b7d');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','46efac5bda6737cccacf2d89ce1d384ee410876c5557b4c02be2275b7c1d862d');\nhashMap.set('regex','dbe6889ea021a05127fed06226d73366fdada2ae577147a5c027996fd325416e');"],"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','1d3568f42393d697f8f96d461b72077ee7a1044b654e87667a12f861b3083111');\nhashMap.set('ansible-galaxy','8226d47128f2018825d4d6f84794e3183eb79c706045fa7e88491edd5e64106f');\nhashMap.set('ant','2df5943cf0ed19a21b94df13729dbb925655548130caf37e3e22bebaed518e17');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','0407066010ebb3d7ad4c1afe6b9a3615a3c11d64dc3cf0674cb9dfc3ea272273');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','b1324dc15e77012a667d33c48c14dec90aa25832593c6c47c219d57931bd1def');\nhashMap.set('bazelisk','49e6bd1fc8f03facd06e517dc64596833b90ee0a079a45cff78f0eeb3c3566f8');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','2df1756b14b3d690e5ad1295bc1e78d8a8d7b967a552fd7b8e3274866a5acf3e');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','a2fbfa9f12971e70e740b362d0cd488f6489e7c65bc9617b52b2ac67e6040551');\nhashMap.set('cake','65ad4f28c318675b9edb49dbd11d677f42c762b01b3f5a25dd3b2f345ecd387e');\nhashMap.set('cargo','23fcc425ccd3a50559210e0ab8c84c1d47cf5c617cd5d58afdcf258ab862bafa');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','91cbeb33ea20f9838e2c81a1195eb806f0b38fa282bc3679f62552f20575ca85');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','08310c39254947632d42058f74f755e9d3f3019c2edeeaf52b5142917085e2df');\nhashMap.set('composer','991a845be7ede562df4abfb005caf5e22cded077cec46711f8c008e468fbd633');\nhashMap.set('conan','b846e8812d65d4201dc0bf7c1d5c344e3a1edaaff6441010875171028be2f0fb');\nhashMap.set('copier','3ff250122cf49d52f23fcd3686274b0e86a99d0cb8bfa7e3e2ee3dd3b3babd56');\nhashMap.set('cpanfile','07813fec3f3c2197056500e9266a0553b9774c02f2c74d5ca2e213188c7c12d3');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deno','9fbc30b9ee7b8eb6ccbc1ef459b3c983bdb1dff38f43b51013056ce7b94ceced');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','ac472ae4897dc1df85326dbd89a8c3488579ae2b180014ffcf085ce422e19dbd');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','d73d5d35f10df0599a561d9c8d25f3935350407d0e3bd3a1d1545295f278912e');\nhashMap.set('flux','22de4afb277e579dcbc7ec765eca2ddc5e4b1bb39d49e762e8af026fa062c53f');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','4b633aedb8a792727f5e5d0b123a6b5a1b01429ea3153c567e2258523816205c');\nhashMap.set('github-actions','100d3ecacf720978aef32ec929d879b6392485ecaab0cb395d497f24a0ab3850');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','ef696c478c2ac1723b3aca070ba9779be0e702fff0844054251ba0029523d0eb');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','e7ee3392d1f900fc1299308c8e930db9288790c6d0b6c35f1a62e55683090d34');\nhashMap.set('gomod','9ab033fb37fbf3b212232019ba2d36e247acc9831f7c17818a40cb155606abfe');\nhashMap.set('gradle','65487851c4592d9f6b7889137576c4e2dd6a98b8bee6db9c999d67bfc13d5247');\nhashMap.set('gradle-wrapper','f85031e7feb4e811aa5f29c589a30f8076a078e5bbf366fb65fb28b5a47d2c44');\nhashMap.set('haskell-cabal','f232d0e883235f74ed71fd9de4a7468e5fcbda9a1af5beb56c24657f7bf2e891');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','5bbc18bf059640191e2237408ca3b442556834e5c1c05d3317e82e7e097ae1f2');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','86799a6d3fba17b1f4c8017d308cba44a1efcf6d6290371263b8cf14be9e16ae');\nhashMap.set('hermit','f30ba5fe8ee46997c1f3d15235e6ff64c96d7ce5e439ee99f8008580348fe0da');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','56ef90301143874355fd2ed25dff7c646875f701f97422d02e01d45608a88f31');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','f918a7f378dc207cadf291e7481006008c69623f690902ed921e1e33db270b78');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','c6ee547378d5c5619a0fe94be35f9838e0f006b4807a896e9caefefa20efacf7');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','2bf7b65d51718daf3eec4f30c0fc7f2f045f4f8f24862bebe17c2174abb606b9');\nhashMap.set('maven-wrapper','976ed8a59cf43b0c765b1a49ebc5669478e78278cf48f4ce3d0deb49647d10e3');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','248fe4f1ea5c985921c286785792c97e06fc41f402b2d45df82f6aecd17f710e');\nhashMap.set('mise','633e7e325055c9a39413dbce346c32cda6dec83ed9f20d6cdfc7d1255b94bafb');\nhashMap.set('mix','ead2078c33550ec8695298c053f549866e1701fa096440d4228e3e51f8f1e49c');\nhashMap.set('nix','95f0827f7ec9a3bfd5119534f129aad6cf26b28e99d55aec0945f08bbfff9fb1');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','8c173b17fcce19d1be44d0d548809de5fb3d7e45adf3ce5fd6d7ebe699e94d6c');\nhashMap.set('nuget','54c1e149b47e4f588e99857e3e62b420f50649a868a28944a0c82a7b7fb530e7');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','fffd093eaf6de3cab7b2f6b57e57715aa240fcd958954f31fbc47f18e1730a4d');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','fd26981e4e865b8fece492ff78faf34701af62bb8f39397445780eb81b66b7db');\nhashMap.set('pip_requirements','edaf5ec21e63fd252e6737b294f215d59068b0bba1dea92b9d4510dbb872c837');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','1d0af710667f6dce377feae9aa238b21fe5e0e75e75758a70f5e9758c6cb6678');\nhashMap.set('pixi','7d183aaae4370a0c62496bbff60ad12fd4dd46822630541f712f437dcea021e1');\nhashMap.set('poetry','0211739556f8193c70fa69cbf66c60e688042fd7dc7a2fe08f9f328b35ad1f82');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('proto','412053d4550026b4ace490b46e970915b87ec1abf0b0a0c6c8c58ccf1fc16843');\nhashMap.set('pub','aad0dd6524158fda5345d75662f337b275c6c46b29f051ba94201d42c22b0da8');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e355e13e104351a8b3516a8e272fc5f7e625c9f39b0c492ba27283a36227c2d4');\nhashMap.set('renovate-config','2a4e4fb671aed5d0c900b8d54c31bfef46ca36d0f4e16b00ff73377b9c09fb69');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('rust-toolchain','e957f1f1563af4e5fbd1c552ca15632b7808d9d2e51ec0da6022a1f84372caec');\nhashMap.set('sbt','74125bd9c76a5724092258cd1dee1ea99fc0d735b463a2b64fedc5d950efde2a');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','05b3158e88771ed4629e171592cf4f1bf0ff342f8aeae89be0b340c630cc6d8e');\nhashMap.set('swift','56cdc6fe4cd00519f953459f94323c71677f6bde007537eef891154fb8696db1');\nhashMap.set('tekton','fdc5b9b5edec2a90cda2f858f3ebc532aa8efb1187d1e0b7c89b07796e9cb6cd');\nhashMap.set('terraform','374c6e681a1b2a40c6d914a94485f15e68051f651972cd2dd3415ed4725eb74c');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','142c3f0549c4152297615b5bbf3a78ba8f7ce6a0cebcea63b81e9815dca40494');\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','dfd7b905577b362093ce72e6ee597308f97c83678ddb15d6455a1627969b8b7d');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','46efac5bda6737cccacf2d89ce1d384ee410876c5557b4c02be2275b7c1d862d');\nhashMap.set('regex','dbe6889ea021a05127fed06226d73366fdada2ae577147a5c027996fd325416e');"],"mappings":";AAAA,MAAa,0BAAU,IAAI,IAAoB;AAE/C,QAAQ,IAAI,WAAU,kEAAkE;AACxF,QAAQ,IAAI,kBAAiB,kEAAkE;AAC/F,QAAQ,IAAI,OAAM,kEAAkE;AACpF,QAAQ,IAAI,UAAS,kEAAkE;AACvF,QAAQ,IAAI,QAAO,kEAAkE;AACrF,QAAQ,IAAI,mBAAkB,kEAAkE;AAChG,QAAQ,IAAI,UAAS,kEAAkE;AACvF,QAAQ,IAAI,kBAAiB,kEAAkE;AAC/F,QAAQ,IAAI,SAAQ,kEAAkE;AACtF,QAAQ,IAAI,gBAAe,kEAAkE;AAC7F,QAAQ,IAAI,YAAW,kEAAkE;AACzF,QAAQ,IAAI,SAAQ,kEAAkE;AACtF,QAAQ,IAAI,uBAAsB,kEAAkE;AACpG,QAAQ,IAAI,WAAU,kEAAkE;AACxF,QAAQ,IAAI,aAAY,kEAAkE;AAC1F,QAAQ,IAAI,cAAa,kEAAkE;AAC3F,QAAQ,IAAI,OAAM,kEAAkE;AACpF,QAAQ,IAAI,eAAc,kEAAkE;AAC5F,QAAQ,IAAI,WAAU,kEAAkE;AACxF,QAAQ,IAAI,QAAO,kEAAkE;AACrF,QAAQ,IAAI,SAAQ,kEAAkE;AACtF,QAAQ,IAAI,UAAS,kEAAkE;AACvF,QAAQ,IAAI,YAAW,kEAAkE;AACzF,QAAQ,IAAI,cAAa,kEAAkE;AAC3F,QAAQ,IAAI,aAAY,kEAAkE;AAC1F,QAAQ,IAAI,YAAW,kEAAkE;AACzF,QAAQ,IAAI,SAAQ,kEAAkE;AACtF,QAAQ,IAAI,UAAS,kEAAkE;AACvF,QAAQ,IAAI,YAAW,kEAAkE;AACzF,QAAQ,IAAI,cAAa,kEAAkE;AAC3F,QAAQ,IAAI,QAAO,kEAAkE;AACrF,QAAQ,IAAI,QAAO,kEAAkE;AACrF,QAAQ,IAAI,YAAW,kEAAkE;AACzF,QAAQ,IAAI,UAAS,kEAAkE;AACvF,QAAQ,IAAI,gBAAe,kEAAkE;AAC7F,QAAQ,IAAI,kBAAiB,kEAAkE;AAC/F,QAAQ,IAAI,cAAa,kEAAkE;AAC3F,QAAQ,IAAI,WAAU,kEAAkE;AACxF,QAAQ,IAAI,SAAQ,kEAAkE;AACtF,QAAQ,IAAI,QAAO,kEAAkE;AACrF,QAAQ,IAAI,OAAM,kEAAkE;AACpF,QAAQ,IAAI,kBAAiB,kEAAkE;AAC/F,QAAQ,IAAI,kBAAiB,kEAAkE;AAC/F,QAAQ,IAAI,YAAW,kEAAkE;AACzF,QAAQ,IAAI,oBAAmB,kEAAkE;AACjG,QAAQ,IAAI,aAAY,kEAAkE;AAC1F,QAAQ,IAAI,SAAQ,kEAAkE;AACtF,QAAQ,IAAI,SAAQ,kEAAkE;AACtF,QAAQ,IAAI,UAAS,kEAAkE;AACvF,QAAQ,IAAI,kBAAiB,kEAAkE;AAC/F,QAAQ,IAAI,iBAAgB,kEAAkE;AAC9F,QAAQ,IAAI,qBAAoB,kEAAkE;AAClG,QAAQ,IAAI,eAAc,kEAAkE;AAC5F,QAAQ,IAAI,YAAW,kEAAkE;AACzF,QAAQ,IAAI,YAAW,kEAAkE;AACzF,QAAQ,IAAI,UAAS,kEAAkE;AACvF,QAAQ,IAAI,UAAS,kEAAkE;AACvF,QAAQ,IAAI,0BAAyB,kEAAkE;AACvG,QAAQ,IAAI,YAAW,kEAAkE;AACzF,QAAQ,IAAI,QAAO,kEAAkE;AACrF,QAAQ,IAAI,WAAU,kEAAkE;AACxF,QAAQ,IAAI,mBAAkB,kEAAkE;AAChG,QAAQ,IAAI,iBAAgB,kEAAkE;AAC9F,QAAQ,IAAI,cAAa,kEAAkE;AAC3F,QAAQ,IAAI,aAAY,kEAAkE;AAC1F,QAAQ,IAAI,aAAY,kEAAkE;AAC1F,QAAQ,IAAI,SAAQ,kEAAkE;AACtF,QAAQ,IAAI,iBAAgB,kEAAkE;AAC9F,QAAQ,IAAI,UAAS,kEAAkE;AACvF,QAAQ,IAAI,QAAO,kEAAkE;AACrF,QAAQ,IAAI,QAAO,kEAAkE;AACrF,QAAQ,IAAI,OAAM,kEAAkE;AACpF,QAAQ,IAAI,OAAM,kEAAkE;AACpF,QAAQ,IAAI,UAAS,kEAAkE;AACvF,QAAQ,IAAI,OAAM,kEAAkE;AACpF,QAAQ,IAAI,SAAQ,kEAAkE;AACtF,QAAQ,IAAI,OAAM,kEAAkE;AACpF,QAAQ,IAAI,OAAM,kEAAkE;AACpF,QAAQ,IAAI,QAAO,kEAAkE;AACrF,QAAQ,IAAI,UAAS,kEAAkE;AACvF,QAAQ,IAAI,UAAS,kEAAkE;AACvF,QAAQ,IAAI,eAAc,kEAAkE;AAC5F,QAAQ,IAAI,oBAAmB,kEAAkE;AACjG,QAAQ,IAAI,aAAY,kEAAkE;AAC1F,QAAQ,IAAI,UAAS,kEAAkE;AACvF,QAAQ,IAAI,QAAO,kEAAkE;AACrF,QAAQ,IAAI,UAAS,kEAAkE;AACvF,QAAQ,IAAI,cAAa,kEAAkE;AAC3F,QAAQ,IAAI,SAAQ,kEAAkE;AACtF,QAAQ,IAAI,OAAM,kEAAkE;AACpF,QAAQ,IAAI,UAAS,kEAAkE;AACvF,QAAQ,IAAI,SAAQ,kEAAkE;AACtF,QAAQ,IAAI,WAAU,kEAAkE;AACxF,QAAQ,IAAI,mBAAkB,kEAAkE;AAChG,QAAQ,IAAI,gBAAe,kEAAkE;AAC7F,QAAQ,IAAI,mBAAkB,kEAAkE;AAChG,QAAQ,IAAI,kBAAiB,kEAAkE;AAC/F,QAAQ,IAAI,OAAM,kEAAkE;AACpF,QAAQ,IAAI,YAAW,kEAAkE;AACzF,QAAQ,IAAI,aAAY,kEAAkE;AAC1F,QAAQ,IAAI,WAAU,kEAAkE;AACxF,QAAQ,IAAI,SAAQ,kEAAkE;AACtF,QAAQ,IAAI,UAAS,kEAAkE;AACvF,QAAQ,IAAI,aAAY,kEAAkE;AAC1F,QAAQ,IAAI,qBAAoB,kEAAkE;AAClG,QAAQ,IAAI,cAAa,kEAAkE;AAC3F,QAAQ,IAAI,sBAAqB,kEAAkE;AACnG,QAAQ,IAAI,iBAAgB,kEAAkE;AAC9F,QAAQ,IAAI,UAAS,kEAAkE;AACvF,QAAQ,IAAI,SAAQ,kEAAkE;AACtF,QAAQ,IAAI,WAAU,kEAAkE;AACxF,QAAQ,IAAI,UAAS,kEAAkE;AACvF,QAAQ,IAAI,UAAS,kEAAkE;AACvF,QAAQ,IAAI,cAAa,kEAAkE;AAC3F,QAAQ,IAAI,YAAW,kEAAkE;AACzF,QAAQ,IAAI,WAAU,kEAAkE;AACxF,QAAQ,IAAI,SAAQ,kEAAkE"}
|
|
@@ -4,7 +4,7 @@ import { get } from "../../../versioning/index.js";
|
|
|
4
4
|
import { map } from "../../../../util/promises.js";
|
|
5
5
|
import { getDefaultVersioning } from "../../../datasource/common.js";
|
|
6
6
|
import { getPkgReleases } from "../../../datasource/index.js";
|
|
7
|
-
import { extractLocks, findLockFile, isPinnedVersion, massageNewValue, readLockFile, writeLockUpdates } from "./util.js";
|
|
7
|
+
import { extractLocks, findLockFile, isPinnedVersion, massageNewValue, readLockFile, sortConstraints, writeLockUpdates } from "./util.js";
|
|
8
8
|
import { massageProviderLookupName } from "../util.js";
|
|
9
9
|
import { TerraformProviderHash } from "./hash.js";
|
|
10
10
|
import { isTruthy } from "@sindresorhus/is";
|
|
@@ -38,11 +38,11 @@ function getNewConstraint(dep, oldConstraint) {
|
|
|
38
38
|
}
|
|
39
39
|
if (oldConstraint && currentValue && newValue && oldConstraint.includes(currentValue)) {
|
|
40
40
|
logger.debug(`Updating constraint "${oldConstraint}" to replace "${currentValue}" with "${newValue}" for "${packageName}"`);
|
|
41
|
-
return oldConstraint.replace(regEx(`(,\\s|^)${escapeRegExp(currentValue)}(\\.0)*`), `$1${newValue}`);
|
|
41
|
+
return sortConstraints(oldConstraint.replace(regEx(`(,\\s|^)${escapeRegExp(currentValue)}(\\.0)*`), `$1${newValue}`));
|
|
42
42
|
}
|
|
43
43
|
if (oldConstraint && currentVersion && newVersion && oldConstraint.includes(currentVersion)) {
|
|
44
44
|
logger.debug(`Updating constraint "${oldConstraint}" to replace "${currentVersion}" with "${newVersion}" for "${packageName}"`);
|
|
45
|
-
return oldConstraint.replace(currentVersion, newVersion);
|
|
45
|
+
return sortConstraints(oldConstraint.replace(currentVersion, newVersion));
|
|
46
46
|
}
|
|
47
47
|
if (isPinnedVersion(newValue)) {
|
|
48
48
|
logger.debug(`Pinning constraint for "${packageName}" to "${newVersion}"`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["p.map","getVersioning"],"sources":["../../../../../lib/modules/manager/terraform/lockfile/index.ts"],"sourcesContent":["import { isTruthy } from '@sindresorhus/is';\nimport { logger } from '../../../../logger/index.ts';\nimport * as p from '../../../../util/promises.ts';\nimport { escapeRegExp, regEx } from '../../../../util/regex.ts';\nimport { getDefaultVersioning } from '../../../datasource/common.ts';\nimport type { GetPkgReleasesConfig } from '../../../datasource/index.ts';\nimport { getPkgReleases } from '../../../datasource/index.ts';\nimport { get as getVersioning } from '../../../versioning/index.ts';\nimport type {\n UpdateArtifact,\n UpdateArtifactsResult,\n Upgrade,\n} from '../../types.ts';\nimport { massageProviderLookupName } from '../util.ts';\nimport { TerraformProviderHash } from './hash.ts';\nimport type { ProviderLock, ProviderLockUpdate } from './types.ts';\nimport {\n extractLocks,\n findLockFile,\n isPinnedVersion,\n massageNewValue,\n readLockFile,\n writeLockUpdates,\n} from './util.ts';\n\nasync function updateAllLocks(\n locks: ProviderLock[],\n): Promise<ProviderLockUpdate[]> {\n const updates = await p.map(\n locks,\n async (lock) => {\n const updateConfig: GetPkgReleasesConfig = {\n datasource: 'terraform-provider',\n packageName: lock.packageName,\n registryUrls: [lock.registryUrl],\n };\n const { releases } = (await getPkgReleases(updateConfig)) ?? {};\n if (!releases) {\n return null;\n }\n const versioning = getVersioning(\n getDefaultVersioning('terraform-provider'),\n );\n const versionsList = releases.map((release) => release.version);\n const newVersion = versioning.getSatisfyingVersion(\n versionsList,\n lock.constraints,\n );\n\n // if the new version is the same as the last, signal that no update is needed\n if (!newVersion || newVersion === lock.version) {\n return null;\n }\n const update: ProviderLockUpdate = {\n newVersion,\n newConstraint: lock.constraints,\n newHashes:\n (await TerraformProviderHash.createHashes(\n lock.registryUrl,\n lock.packageName,\n newVersion,\n )) ?? [],\n ...lock,\n };\n return update;\n },\n { concurrency: 4 },\n );\n\n return updates.filter(isTruthy);\n}\n\nexport function getNewConstraint(\n dep: Upgrade<Record<string, unknown>>,\n oldConstraint: string | undefined,\n): string | undefined {\n const {\n currentValue,\n currentVersion,\n newValue: rawNewValue,\n newVersion,\n packageName,\n } = dep;\n\n const newValue = massageNewValue(rawNewValue);\n\n if (oldConstraint && currentValue && newValue && currentValue === newValue) {\n logger.debug(\n `Leaving constraints \"${oldConstraint}\" unchanged for \"${packageName}\" as current and new values are the same`,\n );\n return oldConstraint;\n }\n\n if (\n oldConstraint &&\n currentValue &&\n newValue &&\n oldConstraint.includes(currentValue)\n ) {\n logger.debug(\n `Updating constraint \"${oldConstraint}\" to replace \"${currentValue}\" with \"${newValue}\" for \"${packageName}\"`,\n );\n //remove surplus .0 version\n return oldConstraint.replace(\n regEx(`(,\\\\s|^)${escapeRegExp(currentValue)}(\\\\.0)*`),\n `$1${newValue}`,\n );\n }\n\n if (\n oldConstraint &&\n currentVersion &&\n newVersion &&\n oldConstraint.includes(currentVersion)\n ) {\n logger.debug(\n `Updating constraint \"${oldConstraint}\" to replace \"${currentVersion}\" with \"${newVersion}\" for \"${packageName}\"`,\n );\n return oldConstraint.replace(currentVersion, newVersion);\n }\n\n if (isPinnedVersion(newValue)) {\n logger.debug(`Pinning constraint for \"${packageName}\" to \"${newVersion}\"`);\n return newVersion;\n }\n\n logger.debug(\n `Could not detect constraint to update for \"${packageName}\" so setting to newValue \"${newValue}\"`,\n );\n return newValue;\n}\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`terraform.updateArtifacts(${packageFileName})`);\n\n const lockFilePath = await findLockFile(packageFileName);\n\n if (!lockFilePath) {\n logger.debug('No .terraform.lock.hcl found');\n return null;\n }\n\n try {\n const lockFileContent = await readLockFile(lockFilePath);\n if (!lockFileContent) {\n logger.debug('No .terraform.lock.hcl found');\n return null;\n }\n const locks = extractLocks(lockFileContent);\n if (!locks) {\n logger.debug('No Locks in .terraform.lock.hcl found');\n return null;\n }\n\n const updates: ProviderLockUpdate[] = [];\n if (config.isLockFileMaintenance) {\n // update all locks in the file during maintenance --> only update version in constraints\n const maintenanceUpdates = await updateAllLocks(locks);\n updates.push(...maintenanceUpdates);\n } else {\n const providerDeps = updatedDeps.filter((dep) =>\n // TODO #22198\n ['provider', 'required_provider'].includes(dep.depType!),\n );\n logger.debug(`Found ${providerDeps.length} provider deps`);\n for (const dep of providerDeps) {\n massageProviderLookupName(dep);\n const { registryUrls, newVersion, packageName } = dep;\n\n const updateLock = locks.find(\n (value) => value.packageName === packageName,\n );\n /* v8 ignore next 4 -- needs test */\n if (!updateLock) {\n logger.debug(`Skipping. No lock found for \"${packageName}\"`);\n continue;\n }\n if (dep.isLockfileUpdate) {\n const versioning = getVersioning(dep.versioning);\n const satisfyingVersion = versioning.getSatisfyingVersion(\n [dep.newVersion!],\n updateLock.constraints,\n );\n\n if (!satisfyingVersion) {\n logger.debug(\n `Skipping. Lockfile update with \"${newVersion}\" does not statisfy constraints \"${updateLock.constraints}\" for \"${packageName}\"`,\n );\n continue;\n }\n }\n\n // use registryURL defined in the update and fall back to the one defined in the lockfile\n const registryUrl = registryUrls?.[0] ?? updateLock.registryUrl;\n\n const newConstraint = getNewConstraint(dep, updateLock.constraints);\n const update: ProviderLockUpdate = {\n // TODO #22198\n newVersion: newVersion!,\n newConstraint: newConstraint!,\n newHashes:\n (await TerraformProviderHash.createHashes(\n registryUrl,\n updateLock.packageName,\n newVersion!,\n )) ?? /* v8 ignore next: needs test */ [],\n ...updateLock,\n };\n updates.push(update);\n }\n }\n // if no updates have been found or there are failed hashes abort\n if (\n updates.length === 0 ||\n updates.some((value) => !value.newHashes?.length)\n ) {\n logger.debug('No updates found or hash creation failed');\n return null;\n }\n logger.debug(`Writing updates to ${lockFilePath}`);\n const res = writeLockUpdates(updates, lockFilePath, lockFileContent);\n return [res];\n } catch (err) {\n return [\n {\n artifactError: {\n fileName: lockFilePath,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["p.map","getVersioning"],"sources":["../../../../../lib/modules/manager/terraform/lockfile/index.ts"],"sourcesContent":["import { isTruthy } from '@sindresorhus/is';\nimport { logger } from '../../../../logger/index.ts';\nimport * as p from '../../../../util/promises.ts';\nimport { escapeRegExp, regEx } from '../../../../util/regex.ts';\nimport { getDefaultVersioning } from '../../../datasource/common.ts';\nimport type { GetPkgReleasesConfig } from '../../../datasource/index.ts';\nimport { getPkgReleases } from '../../../datasource/index.ts';\nimport { get as getVersioning } from '../../../versioning/index.ts';\nimport type {\n UpdateArtifact,\n UpdateArtifactsResult,\n Upgrade,\n} from '../../types.ts';\nimport { massageProviderLookupName } from '../util.ts';\nimport { TerraformProviderHash } from './hash.ts';\nimport type { ProviderLock, ProviderLockUpdate } from './types.ts';\nimport {\n extractLocks,\n findLockFile,\n isPinnedVersion,\n massageNewValue,\n readLockFile,\n sortConstraints,\n writeLockUpdates,\n} from './util.ts';\n\nasync function updateAllLocks(\n locks: ProviderLock[],\n): Promise<ProviderLockUpdate[]> {\n const updates = await p.map(\n locks,\n async (lock) => {\n const updateConfig: GetPkgReleasesConfig = {\n datasource: 'terraform-provider',\n packageName: lock.packageName,\n registryUrls: [lock.registryUrl],\n };\n const { releases } = (await getPkgReleases(updateConfig)) ?? {};\n if (!releases) {\n return null;\n }\n const versioning = getVersioning(\n getDefaultVersioning('terraform-provider'),\n );\n const versionsList = releases.map((release) => release.version);\n const newVersion = versioning.getSatisfyingVersion(\n versionsList,\n lock.constraints,\n );\n\n // if the new version is the same as the last, signal that no update is needed\n if (!newVersion || newVersion === lock.version) {\n return null;\n }\n const update: ProviderLockUpdate = {\n newVersion,\n newConstraint: lock.constraints,\n newHashes:\n (await TerraformProviderHash.createHashes(\n lock.registryUrl,\n lock.packageName,\n newVersion,\n )) ?? [],\n ...lock,\n };\n return update;\n },\n { concurrency: 4 },\n );\n\n return updates.filter(isTruthy);\n}\n\nexport function getNewConstraint(\n dep: Upgrade<Record<string, unknown>>,\n oldConstraint: string | undefined,\n): string | undefined {\n const {\n currentValue,\n currentVersion,\n newValue: rawNewValue,\n newVersion,\n packageName,\n } = dep;\n\n const newValue = massageNewValue(rawNewValue);\n\n if (oldConstraint && currentValue && newValue && currentValue === newValue) {\n logger.debug(\n `Leaving constraints \"${oldConstraint}\" unchanged for \"${packageName}\" as current and new values are the same`,\n );\n return oldConstraint;\n }\n\n if (\n oldConstraint &&\n currentValue &&\n newValue &&\n oldConstraint.includes(currentValue)\n ) {\n logger.debug(\n `Updating constraint \"${oldConstraint}\" to replace \"${currentValue}\" with \"${newValue}\" for \"${packageName}\"`,\n );\n //remove surplus .0 version\n return sortConstraints(\n oldConstraint.replace(\n regEx(`(,\\\\s|^)${escapeRegExp(currentValue)}(\\\\.0)*`),\n `$1${newValue}`,\n ),\n );\n }\n\n if (\n oldConstraint &&\n currentVersion &&\n newVersion &&\n oldConstraint.includes(currentVersion)\n ) {\n logger.debug(\n `Updating constraint \"${oldConstraint}\" to replace \"${currentVersion}\" with \"${newVersion}\" for \"${packageName}\"`,\n );\n return sortConstraints(oldConstraint.replace(currentVersion, newVersion));\n }\n\n if (isPinnedVersion(newValue)) {\n logger.debug(`Pinning constraint for \"${packageName}\" to \"${newVersion}\"`);\n return newVersion;\n }\n\n logger.debug(\n `Could not detect constraint to update for \"${packageName}\" so setting to newValue \"${newValue}\"`,\n );\n return newValue;\n}\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`terraform.updateArtifacts(${packageFileName})`);\n\n const lockFilePath = await findLockFile(packageFileName);\n\n if (!lockFilePath) {\n logger.debug('No .terraform.lock.hcl found');\n return null;\n }\n\n try {\n const lockFileContent = await readLockFile(lockFilePath);\n if (!lockFileContent) {\n logger.debug('No .terraform.lock.hcl found');\n return null;\n }\n const locks = extractLocks(lockFileContent);\n if (!locks) {\n logger.debug('No Locks in .terraform.lock.hcl found');\n return null;\n }\n\n const updates: ProviderLockUpdate[] = [];\n if (config.isLockFileMaintenance) {\n // update all locks in the file during maintenance --> only update version in constraints\n const maintenanceUpdates = await updateAllLocks(locks);\n updates.push(...maintenanceUpdates);\n } else {\n const providerDeps = updatedDeps.filter((dep) =>\n // TODO #22198\n ['provider', 'required_provider'].includes(dep.depType!),\n );\n logger.debug(`Found ${providerDeps.length} provider deps`);\n for (const dep of providerDeps) {\n massageProviderLookupName(dep);\n const { registryUrls, newVersion, packageName } = dep;\n\n const updateLock = locks.find(\n (value) => value.packageName === packageName,\n );\n /* v8 ignore next 4 -- needs test */\n if (!updateLock) {\n logger.debug(`Skipping. No lock found for \"${packageName}\"`);\n continue;\n }\n if (dep.isLockfileUpdate) {\n const versioning = getVersioning(dep.versioning);\n const satisfyingVersion = versioning.getSatisfyingVersion(\n [dep.newVersion!],\n updateLock.constraints,\n );\n\n if (!satisfyingVersion) {\n logger.debug(\n `Skipping. Lockfile update with \"${newVersion}\" does not statisfy constraints \"${updateLock.constraints}\" for \"${packageName}\"`,\n );\n continue;\n }\n }\n\n // use registryURL defined in the update and fall back to the one defined in the lockfile\n const registryUrl = registryUrls?.[0] ?? updateLock.registryUrl;\n\n const newConstraint = getNewConstraint(dep, updateLock.constraints);\n const update: ProviderLockUpdate = {\n // TODO #22198\n newVersion: newVersion!,\n newConstraint: newConstraint!,\n newHashes:\n (await TerraformProviderHash.createHashes(\n registryUrl,\n updateLock.packageName,\n newVersion!,\n )) ?? /* v8 ignore next: needs test */ [],\n ...updateLock,\n };\n updates.push(update);\n }\n }\n // if no updates have been found or there are failed hashes abort\n if (\n updates.length === 0 ||\n updates.some((value) => !value.newHashes?.length)\n ) {\n logger.debug('No updates found or hash creation failed');\n return null;\n }\n logger.debug(`Writing updates to ${lockFilePath}`);\n const res = writeLockUpdates(updates, lockFilePath, lockFileContent);\n return [res];\n } catch (err) {\n return [\n {\n artifactError: {\n fileName: lockFilePath,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"],"mappings":"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"}
|
|
@@ -130,6 +130,77 @@ function writeLockUpdates(updates, lockFilePath, oldLockFileContent) {
|
|
|
130
130
|
contents: sections.reduce((previousValue, currentValue) => previousValue.concat(currentValue)).join("\n")
|
|
131
131
|
} };
|
|
132
132
|
}
|
|
133
|
+
const hashicorpVersioning = get("hashicorp");
|
|
134
|
+
const constraintOperators = [
|
|
135
|
+
">=",
|
|
136
|
+
"<=",
|
|
137
|
+
"!=",
|
|
138
|
+
"~>",
|
|
139
|
+
"=",
|
|
140
|
+
">",
|
|
141
|
+
"<"
|
|
142
|
+
];
|
|
143
|
+
function operatorPriority(operator, rawVersion) {
|
|
144
|
+
switch (operator) {
|
|
145
|
+
case ">": return 1;
|
|
146
|
+
case ">=": return 2;
|
|
147
|
+
case "": return 3;
|
|
148
|
+
case "~>": return rawVersion.split(".").length > 2 ? 4 : 5;
|
|
149
|
+
case "<=": return 6;
|
|
150
|
+
case "<": return 7;
|
|
151
|
+
case "!=": return 8;
|
|
152
|
+
/* v8 ignore next -- unreachable for constraints that parsed successfully */
|
|
153
|
+
default: return 0;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
function constrainToZero(version) {
|
|
157
|
+
const sep = version.search(regEx(/[-+]/));
|
|
158
|
+
const core = sep === -1 ? version : version.slice(0, sep);
|
|
159
|
+
const extra = sep === -1 ? "" : version.slice(sep);
|
|
160
|
+
const segments = core.split(".");
|
|
161
|
+
while (segments.length < 3) segments.push("0");
|
|
162
|
+
return segments.join(".") + extra;
|
|
163
|
+
}
|
|
164
|
+
function parseConstraint(token) {
|
|
165
|
+
const raw = token.trim();
|
|
166
|
+
for (const operator of constraintOperators) if (raw.startsWith(operator)) {
|
|
167
|
+
const rawVersion = raw.slice(operator.length).trim();
|
|
168
|
+
return {
|
|
169
|
+
raw,
|
|
170
|
+
operator: operator === "=" ? "" : operator,
|
|
171
|
+
rawVersion,
|
|
172
|
+
cmpVersion: constrainToZero(rawVersion)
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
return {
|
|
176
|
+
raw,
|
|
177
|
+
operator: "",
|
|
178
|
+
rawVersion: raw,
|
|
179
|
+
cmpVersion: constrainToZero(raw)
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Reorder the sub-constraints of a Terraform lock `constraints` string into the
|
|
184
|
+
* normalized form Terraform/OpenTofu require: boundary version ascending, ties
|
|
185
|
+
* broken by operator priority. Renovate updates a version in place without
|
|
186
|
+
* re-sorting, which produces strings Terraform rejects with "must be written in
|
|
187
|
+
* normalized form" once a bumped exact pin overtakes an inherited `~>` range.
|
|
188
|
+
* See https://github.com/renovatebot/renovate/issues/37273.
|
|
189
|
+
*/
|
|
190
|
+
function sortConstraints(constraint) {
|
|
191
|
+
if (!constraint?.includes(",")) return constraint;
|
|
192
|
+
const parsed = [];
|
|
193
|
+
for (const token of constraint.split(",")) {
|
|
194
|
+
const entry = parseConstraint(token);
|
|
195
|
+
if (!hashicorpVersioning.isValid(entry.cmpVersion)) return constraint;
|
|
196
|
+
parsed.push(entry);
|
|
197
|
+
}
|
|
198
|
+
parsed.sort((a, b) => {
|
|
199
|
+
if (!hashicorpVersioning.equals(a.cmpVersion, b.cmpVersion)) return hashicorpVersioning.isGreaterThan(a.cmpVersion, b.cmpVersion) ? 1 : -1;
|
|
200
|
+
return operatorPriority(a.operator, a.rawVersion) - operatorPriority(b.operator, b.rawVersion);
|
|
201
|
+
});
|
|
202
|
+
return parsed.map((entry) => entry.raw).join(", ");
|
|
203
|
+
}
|
|
133
204
|
function massageNewValue(value) {
|
|
134
205
|
if (isNullOrUndefined(value)) return value;
|
|
135
206
|
const elements = value.split(",");
|
|
@@ -147,6 +218,6 @@ function massageNewValue(value) {
|
|
|
147
218
|
return massagedElements.join(",");
|
|
148
219
|
}
|
|
149
220
|
//#endregion
|
|
150
|
-
export { extractLocks, findLockFile, isPinnedVersion, massageNewValue, readLockFile, writeLockUpdates };
|
|
221
|
+
export { extractLocks, findLockFile, isPinnedVersion, massageNewValue, readLockFile, sortConstraints, writeLockUpdates };
|
|
151
222
|
|
|
152
223
|
//# sourceMappingURL=util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","names":["getVersioning"],"sources":["../../../../../lib/modules/manager/terraform/lockfile/util.ts"],"sourcesContent":["import { isNullOrUndefined } from '@sindresorhus/is';\nimport {\n findLocalSiblingOrParent,\n readLocalFile,\n} from '../../../../util/fs/index.ts';\nimport { newlineRegex, regEx } from '../../../../util/regex.ts';\nimport { get as getVersioning } from '../../../versioning/index.ts';\nimport type { UpdateArtifactsResult } from '../../types.ts';\nimport type {\n LineNumbers,\n ProviderLock,\n ProviderLockUpdate,\n ProviderSlice,\n} from './types.ts';\n\nconst providerStartLineRegex = regEx(\n `^provider \"(?<registryUrl>[^/]*)/(?<namespace>[^/]*)/(?<depName>[^/]*)\"`,\n);\nconst versionLineRegex = regEx(\n `^(?<prefix>[\\\\s]*version[\\\\s]*=[\\\\s]*\")(?<version>[^\"']+)(?<suffix>\".*)$`,\n);\nconst constraintLineRegex = regEx(\n `^(?<prefix>[\\\\s]*constraints[\\\\s]*=[\\\\s]*\")(?<constraint>[^\"']+)(?<suffix>\".*)$`,\n);\nconst hashLineRegex = regEx(`^(?<prefix>\\\\s*\")(?<hash>[^\"]+)(?<suffix>\",.*)$`);\n\nconst lockFile = '.terraform.lock.hcl';\n\nexport function findLockFile(packageFilePath: string): Promise<string | null> {\n return findLocalSiblingOrParent(packageFilePath, lockFile);\n}\n\nexport function readLockFile(lockFilePath: string): Promise<string | null> {\n return readLocalFile(lockFilePath, 'utf8');\n}\n\nexport function extractLocks(lockFileContent: string): ProviderLock[] | null {\n const lines = lockFileContent.split(newlineRegex);\n const blockStarts: number[] = [];\n // get first lines of blocks\n lines.forEach((line, index) => {\n if (line.startsWith('provider \"')) {\n blockStarts.push(index);\n }\n });\n\n // sort ascending\n const sortedStarts = blockStarts.sort((a, b) => a - b);\n const contentSlices = sortedStarts.map((start, index, array) => {\n let end: number;\n if (index < array.length - 1) {\n end = array[index + 1];\n } else {\n end = lines.length - 1;\n }\n const slice: ProviderSlice = {\n lines: lines.slice(start, end),\n block: {\n start,\n end,\n },\n };\n return slice;\n });\n\n // generate Lock objects from slices\n const locks = contentSlices.map((slice) => {\n let packageName = '';\n let registryUrl = '';\n let version = '';\n let constraints = '';\n const relativeLineNumbers: LineNumbers = {\n block: slice.block,\n hashes: {\n start: -1,\n end: -1,\n },\n };\n const hashes: string[] = [];\n\n slice.lines.forEach((line, index) => {\n const hashLineResult = hashLineRegex.exec(line);\n if (hashLineResult?.groups) {\n hashes.push(hashLineResult.groups.hash);\n relativeLineNumbers.hashes.start =\n relativeLineNumbers.hashes.start === -1\n ? index\n : relativeLineNumbers.hashes.start;\n relativeLineNumbers.hashes.end = index;\n return;\n }\n\n const providerStartLineResult = providerStartLineRegex.exec(line);\n if (providerStartLineResult?.groups) {\n packageName = `${providerStartLineResult.groups.namespace}/${providerStartLineResult.groups.depName}`;\n registryUrl = providerStartLineResult.groups.registryUrl;\n return;\n }\n\n const versionLineResult = versionLineRegex.exec(line);\n if (versionLineResult?.groups) {\n version = versionLineResult.groups.version;\n relativeLineNumbers.version = index;\n return;\n }\n\n const constraintLineResult = constraintLineRegex.exec(line);\n if (constraintLineResult?.groups) {\n constraints = constraintLineResult.groups.constraint;\n relativeLineNumbers.constraint = index;\n }\n });\n\n const lock: ProviderLock = {\n packageName,\n registryUrl: `https://${registryUrl}`,\n version,\n constraints,\n hashes,\n lineNumbers: relativeLineNumbers,\n };\n return lock;\n });\n\n if (locks.length === 0) {\n return null;\n }\n return locks;\n}\n\nexport function isPinnedVersion(value: string | undefined): boolean {\n const versioning = getVersioning('hashicorp');\n return !!value && !!versioning.isSingleVersion(value);\n}\n\nexport function writeLockUpdates(\n updates: ProviderLockUpdate[],\n lockFilePath: string,\n oldLockFileContent: string,\n): UpdateArtifactsResult {\n const lines = oldLockFileContent.split(newlineRegex);\n\n const sections: string[][] = [];\n\n // sort updates in order of appearance in the lockfile\n // TODO #22198\n updates.sort(\n (a, b) => a.lineNumbers.block!.start - b.lineNumbers.block!.start,\n );\n updates.forEach((update, index, array) => {\n // re add leading whitespace\n let startWhitespace: number | undefined;\n if (index > 0) {\n // get end of the\n // TODO #22198\n startWhitespace = array[index - 1].lineNumbers.block!.end;\n }\n const leadingNonRelevantLines = lines.slice(\n startWhitespace,\n // TODO #22198\n update.lineNumbers.block!.start,\n );\n sections.push(leadingNonRelevantLines);\n\n const providerBlockLines = lines.slice(\n // TODO #22198\n update.lineNumbers.block!.start,\n update.lineNumbers.block!.end,\n );\n const newProviderBlockLines: string[] = [];\n let hashLinePrefix = '';\n let hashLineSuffix = '';\n providerBlockLines.forEach((providerBlockLine) => {\n const versionLine = providerBlockLine.replace(\n versionLineRegex,\n `$<prefix>${update.newVersion}$<suffix>`,\n );\n if (versionLine !== providerBlockLine) {\n newProviderBlockLines.push(versionLine);\n return;\n }\n\n const constraintLine = providerBlockLine.replace(\n constraintLineRegex,\n `$<prefix>${update.newConstraint}$<suffix>`,\n );\n if (constraintLine !== providerBlockLine) {\n newProviderBlockLines.push(constraintLine);\n return;\n }\n\n const hashLineRegexResult = hashLineRegex.exec(providerBlockLine);\n if (hashLineRegexResult?.groups) {\n // skip hash line but safe the whitespace\n hashLinePrefix = hashLineRegexResult.groups.prefix;\n hashLineSuffix = hashLineRegexResult.groups.suffix;\n return;\n }\n newProviderBlockLines.push(providerBlockLine);\n });\n\n const hashesWithWhitespace = update.newHashes.map(\n (value) => `${hashLinePrefix}${value}${hashLineSuffix}`,\n );\n newProviderBlockLines.splice(\n // TODO #22198\n update.lineNumbers.hashes.start!,\n 0,\n ...hashesWithWhitespace,\n );\n sections.push(newProviderBlockLines);\n });\n\n const trailingNotUpdatedLines = lines.slice(\n updates.at(-1)!.lineNumbers.block?.end,\n );\n sections.push(trailingNotUpdatedLines);\n\n const newLines = sections.reduce((previousValue, currentValue) =>\n previousValue.concat(currentValue),\n );\n const newContent = newLines.join('\\n');\n\n return {\n file: {\n type: 'addition',\n path: lockFilePath,\n contents: newContent,\n },\n };\n}\n\nexport function massageNewValue(value: string | undefined): string | undefined {\n if (isNullOrUndefined(value)) {\n return value;\n }\n\n const elements = value.split(',');\n const massagedElements: string[] = [];\n for (const element of elements) {\n // these constraints are allowed to miss precision\n if (element.includes('~>')) {\n massagedElements.push(element);\n continue;\n }\n\n const missing0s = 3 - element.split('.').length;\n\n let massagedElement = element;\n\n for (let i = 0; i < missing0s; i++) {\n massagedElement = `${massagedElement}.0`;\n }\n massagedElements.push(massagedElement);\n }\n\n return massagedElements.join(',');\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"util.js","names":["getVersioning"],"sources":["../../../../../lib/modules/manager/terraform/lockfile/util.ts"],"sourcesContent":["import { isNullOrUndefined } from '@sindresorhus/is';\nimport {\n findLocalSiblingOrParent,\n readLocalFile,\n} from '../../../../util/fs/index.ts';\nimport { newlineRegex, regEx } from '../../../../util/regex.ts';\nimport { get as getVersioning } from '../../../versioning/index.ts';\nimport type { UpdateArtifactsResult } from '../../types.ts';\nimport type {\n LineNumbers,\n ProviderLock,\n ProviderLockUpdate,\n ProviderSlice,\n} from './types.ts';\n\nconst providerStartLineRegex = regEx(\n `^provider \"(?<registryUrl>[^/]*)/(?<namespace>[^/]*)/(?<depName>[^/]*)\"`,\n);\nconst versionLineRegex = regEx(\n `^(?<prefix>[\\\\s]*version[\\\\s]*=[\\\\s]*\")(?<version>[^\"']+)(?<suffix>\".*)$`,\n);\nconst constraintLineRegex = regEx(\n `^(?<prefix>[\\\\s]*constraints[\\\\s]*=[\\\\s]*\")(?<constraint>[^\"']+)(?<suffix>\".*)$`,\n);\nconst hashLineRegex = regEx(`^(?<prefix>\\\\s*\")(?<hash>[^\"]+)(?<suffix>\",.*)$`);\n\nconst lockFile = '.terraform.lock.hcl';\n\nexport function findLockFile(packageFilePath: string): Promise<string | null> {\n return findLocalSiblingOrParent(packageFilePath, lockFile);\n}\n\nexport function readLockFile(lockFilePath: string): Promise<string | null> {\n return readLocalFile(lockFilePath, 'utf8');\n}\n\nexport function extractLocks(lockFileContent: string): ProviderLock[] | null {\n const lines = lockFileContent.split(newlineRegex);\n const blockStarts: number[] = [];\n // get first lines of blocks\n lines.forEach((line, index) => {\n if (line.startsWith('provider \"')) {\n blockStarts.push(index);\n }\n });\n\n // sort ascending\n const sortedStarts = blockStarts.sort((a, b) => a - b);\n const contentSlices = sortedStarts.map((start, index, array) => {\n let end: number;\n if (index < array.length - 1) {\n end = array[index + 1];\n } else {\n end = lines.length - 1;\n }\n const slice: ProviderSlice = {\n lines: lines.slice(start, end),\n block: {\n start,\n end,\n },\n };\n return slice;\n });\n\n // generate Lock objects from slices\n const locks = contentSlices.map((slice) => {\n let packageName = '';\n let registryUrl = '';\n let version = '';\n let constraints = '';\n const relativeLineNumbers: LineNumbers = {\n block: slice.block,\n hashes: {\n start: -1,\n end: -1,\n },\n };\n const hashes: string[] = [];\n\n slice.lines.forEach((line, index) => {\n const hashLineResult = hashLineRegex.exec(line);\n if (hashLineResult?.groups) {\n hashes.push(hashLineResult.groups.hash);\n relativeLineNumbers.hashes.start =\n relativeLineNumbers.hashes.start === -1\n ? index\n : relativeLineNumbers.hashes.start;\n relativeLineNumbers.hashes.end = index;\n return;\n }\n\n const providerStartLineResult = providerStartLineRegex.exec(line);\n if (providerStartLineResult?.groups) {\n packageName = `${providerStartLineResult.groups.namespace}/${providerStartLineResult.groups.depName}`;\n registryUrl = providerStartLineResult.groups.registryUrl;\n return;\n }\n\n const versionLineResult = versionLineRegex.exec(line);\n if (versionLineResult?.groups) {\n version = versionLineResult.groups.version;\n relativeLineNumbers.version = index;\n return;\n }\n\n const constraintLineResult = constraintLineRegex.exec(line);\n if (constraintLineResult?.groups) {\n constraints = constraintLineResult.groups.constraint;\n relativeLineNumbers.constraint = index;\n }\n });\n\n const lock: ProviderLock = {\n packageName,\n registryUrl: `https://${registryUrl}`,\n version,\n constraints,\n hashes,\n lineNumbers: relativeLineNumbers,\n };\n return lock;\n });\n\n if (locks.length === 0) {\n return null;\n }\n return locks;\n}\n\nexport function isPinnedVersion(value: string | undefined): boolean {\n const versioning = getVersioning('hashicorp');\n return !!value && !!versioning.isSingleVersion(value);\n}\n\nexport function writeLockUpdates(\n updates: ProviderLockUpdate[],\n lockFilePath: string,\n oldLockFileContent: string,\n): UpdateArtifactsResult {\n const lines = oldLockFileContent.split(newlineRegex);\n\n const sections: string[][] = [];\n\n // sort updates in order of appearance in the lockfile\n // TODO #22198\n updates.sort(\n (a, b) => a.lineNumbers.block!.start - b.lineNumbers.block!.start,\n );\n updates.forEach((update, index, array) => {\n // re add leading whitespace\n let startWhitespace: number | undefined;\n if (index > 0) {\n // get end of the\n // TODO #22198\n startWhitespace = array[index - 1].lineNumbers.block!.end;\n }\n const leadingNonRelevantLines = lines.slice(\n startWhitespace,\n // TODO #22198\n update.lineNumbers.block!.start,\n );\n sections.push(leadingNonRelevantLines);\n\n const providerBlockLines = lines.slice(\n // TODO #22198\n update.lineNumbers.block!.start,\n update.lineNumbers.block!.end,\n );\n const newProviderBlockLines: string[] = [];\n let hashLinePrefix = '';\n let hashLineSuffix = '';\n providerBlockLines.forEach((providerBlockLine) => {\n const versionLine = providerBlockLine.replace(\n versionLineRegex,\n `$<prefix>${update.newVersion}$<suffix>`,\n );\n if (versionLine !== providerBlockLine) {\n newProviderBlockLines.push(versionLine);\n return;\n }\n\n const constraintLine = providerBlockLine.replace(\n constraintLineRegex,\n `$<prefix>${update.newConstraint}$<suffix>`,\n );\n if (constraintLine !== providerBlockLine) {\n newProviderBlockLines.push(constraintLine);\n return;\n }\n\n const hashLineRegexResult = hashLineRegex.exec(providerBlockLine);\n if (hashLineRegexResult?.groups) {\n // skip hash line but safe the whitespace\n hashLinePrefix = hashLineRegexResult.groups.prefix;\n hashLineSuffix = hashLineRegexResult.groups.suffix;\n return;\n }\n newProviderBlockLines.push(providerBlockLine);\n });\n\n const hashesWithWhitespace = update.newHashes.map(\n (value) => `${hashLinePrefix}${value}${hashLineSuffix}`,\n );\n newProviderBlockLines.splice(\n // TODO #22198\n update.lineNumbers.hashes.start!,\n 0,\n ...hashesWithWhitespace,\n );\n sections.push(newProviderBlockLines);\n });\n\n const trailingNotUpdatedLines = lines.slice(\n updates.at(-1)!.lineNumbers.block?.end,\n );\n sections.push(trailingNotUpdatedLines);\n\n const newLines = sections.reduce((previousValue, currentValue) =>\n previousValue.concat(currentValue),\n );\n const newContent = newLines.join('\\n');\n\n return {\n file: {\n type: 'addition',\n path: lockFilePath,\n contents: newContent,\n },\n };\n}\n\nconst hashicorpVersioning = getVersioning('hashicorp');\n\n// Operators Terraform allows in a version constraint, matched longest-first so\n// \">=\" wins over \">\" and \"<=\" over \"<\". The normalization implemented below\n// (operator set, boundary-version sort, priority tie-break) mirrors Terraform's\n// getproviders.VersionConstraintsString and versionSelectionsBoundaryPriority:\n// https://github.com/hashicorp/terraform/blob/main/internal/getproviders/providerreqs/version.go\nconst constraintOperators = ['>=', '<=', '!=', '~>', '=', '>', '<'];\n\ninterface ParsedConstraint {\n raw: string;\n operator: string;\n rawVersion: string;\n cmpVersion: string;\n}\n\n// Mirrors Terraform's getproviders.versionSelectionsBoundaryPriority: when two\n// constraints share the same boundary version, this decides their relative\n// order in the normalized string.\nfunction operatorPriority(operator: string, rawVersion: string): number {\n switch (operator) {\n case '>':\n return 1;\n case '>=':\n return 2;\n case '': // exact pin, serialized without an operator\n return 3;\n case '~>':\n // patch-only (~> x.y.z) sorts before minor-only (~> x.y)\n return rawVersion.split('.').length > 2 ? 4 : 5;\n case '<=':\n return 6;\n case '<':\n return 7;\n case '!=':\n return 8;\n /* v8 ignore next -- unreachable for constraints that parsed successfully */\n default:\n return 0;\n }\n}\n\n// Pad the numeric core to three components, matching Terraform's\n// VersionSpec.ConstrainToZero so \"5.0\" and \"5.0.0\" compare (and dedupe) equal.\nfunction constrainToZero(version: string): string {\n const sep = version.search(regEx(/[-+]/)); // start of prerelease/build metadata, -1 if none\n const core = sep === -1 ? version : version.slice(0, sep);\n const extra = sep === -1 ? '' : version.slice(sep);\n const segments = core.split('.');\n while (segments.length < 3) {\n segments.push('0');\n }\n return segments.join('.') + extra;\n}\n\nfunction parseConstraint(token: string): ParsedConstraint {\n const raw = token.trim();\n for (const operator of constraintOperators) {\n if (raw.startsWith(operator)) {\n const rawVersion = raw.slice(operator.length).trim();\n return {\n raw,\n // Terraform serializes an exact pin without an operator, so treat \"=\"\n // the same as a bare version.\n operator: operator === '=' ? '' : operator,\n rawVersion,\n cmpVersion: constrainToZero(rawVersion),\n };\n }\n }\n return {\n raw,\n operator: '',\n rawVersion: raw,\n cmpVersion: constrainToZero(raw),\n };\n}\n\n/**\n * Reorder the sub-constraints of a Terraform lock `constraints` string into the\n * normalized form Terraform/OpenTofu require: boundary version ascending, ties\n * broken by operator priority. Renovate updates a version in place without\n * re-sorting, which produces strings Terraform rejects with \"must be written in\n * normalized form\" once a bumped exact pin overtakes an inherited `~>` range.\n * See https://github.com/renovatebot/renovate/issues/37273.\n */\nexport function sortConstraints(\n constraint: string | undefined,\n): string | undefined {\n if (!constraint?.includes(',')) {\n return constraint;\n }\n const parsed: ParsedConstraint[] = [];\n for (const token of constraint.split(',')) {\n const entry = parseConstraint(token);\n // Leave the constraint untouched if any token is unrecognizable, rather\n // than risk corrupting it.\n if (!hashicorpVersioning.isValid(entry.cmpVersion)) {\n return constraint;\n }\n parsed.push(entry);\n }\n parsed.sort((a, b) => {\n if (!hashicorpVersioning.equals(a.cmpVersion, b.cmpVersion)) {\n return hashicorpVersioning.isGreaterThan(a.cmpVersion, b.cmpVersion)\n ? 1\n : -1;\n }\n return (\n operatorPriority(a.operator, a.rawVersion) -\n operatorPriority(b.operator, b.rawVersion)\n );\n });\n return parsed.map((entry) => entry.raw).join(', ');\n}\n\nexport function massageNewValue(value: string | undefined): string | undefined {\n if (isNullOrUndefined(value)) {\n return value;\n }\n\n const elements = value.split(',');\n const massagedElements: string[] = [];\n for (const element of elements) {\n // these constraints are allowed to miss precision\n if (element.includes('~>')) {\n massagedElements.push(element);\n continue;\n }\n\n const missing0s = 3 - element.split('.').length;\n\n let massagedElement = element;\n\n for (let i = 0; i < missing0s; i++) {\n massagedElement = `${massagedElement}.0`;\n }\n massagedElements.push(massagedElement);\n }\n\n return massagedElements.join(',');\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
package/renovate-schema.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$id": "https://docs.renovatebot.com/renovate-schema.json",
|
|
3
|
-
"title": "JSON schema for Renovate 43.265.
|
|
3
|
+
"title": "JSON schema for Renovate 43.265.5 config files (https://renovatebot.com/)",
|
|
4
4
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
5
|
-
"x-renovate-version": "43.265.
|
|
5
|
+
"x-renovate-version": "43.265.5",
|
|
6
6
|
"allowComments": true,
|
|
7
7
|
"type": "object",
|
|
8
8
|
"definitions": {
|