metascope 0.8.5 → 0.9.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.
Files changed (103) hide show
  1. package/dist/bin/cli.js +30426 -29237
  2. package/dist/bin/{jiti-DDHyYNLW.js → jiti-B26uDQuv.js} +2 -2
  3. package/dist/bin/renovate-CEC0BhMB.js +1 -0
  4. package/dist/bin/shared-Ch5JsD6s.js +8 -0
  5. package/dist/bin/shared2-Dhjk_Okb.js +1 -0
  6. package/dist/bin/web-tree-sitter.wasm +0 -0
  7. package/dist/lib/data/license-urls.js +2904 -0
  8. package/dist/lib/file-matching.js +5 -2
  9. package/dist/lib/log.d.ts +0 -1
  10. package/dist/lib/metadata-types.d.ts +16 -9
  11. package/dist/lib/metadata.d.ts +0 -1
  12. package/dist/lib/metadata.js +5 -5
  13. package/dist/lib/package.js +1 -1
  14. package/dist/lib/parsers/configparser-parser.js +14 -12
  15. package/dist/lib/parsers/gemspec-parser.js +41 -42
  16. package/dist/lib/parsers/go-mod-parser.js +51 -45
  17. package/dist/lib/parsers/makefile-config-parser.js +7 -6
  18. package/dist/lib/parsers/properties-parser.js +1 -1
  19. package/dist/lib/parsers/rfc822-header-parser.js +8 -6
  20. package/dist/lib/parsers/setup-py-parser.js +28 -24
  21. package/dist/lib/source.d.ts +6 -2
  22. package/dist/lib/sources/arduino-library-properties.d.ts +0 -1
  23. package/dist/lib/sources/arduino-library-properties.js +6 -7
  24. package/dist/lib/sources/cinder-cinderblock-xml.d.ts +0 -1
  25. package/dist/lib/sources/cinder-cinderblock-xml.js +5 -5
  26. package/dist/lib/sources/code-stats.d.ts +3 -2
  27. package/dist/lib/sources/codemeta-json.d.ts +0 -1
  28. package/dist/lib/sources/codemeta-json.js +21 -20
  29. package/dist/lib/sources/dependency-updates.d.ts +17 -8
  30. package/dist/lib/sources/dependency-updates.js +38 -34
  31. package/dist/lib/sources/file-stats.d.ts +7 -4
  32. package/dist/lib/sources/git-config.d.ts +0 -1
  33. package/dist/lib/sources/git-stats.d.ts +47 -24
  34. package/dist/lib/sources/git-stats.js +51 -33
  35. package/dist/lib/sources/github-actions.d.ts +0 -1
  36. package/dist/lib/sources/github-actions.js +4 -3
  37. package/dist/lib/sources/github.d.ts +156 -78
  38. package/dist/lib/sources/github.js +11 -8
  39. package/dist/lib/sources/go-go-mod.d.ts +0 -1
  40. package/dist/lib/sources/go-goreleaser-yaml.d.ts +0 -1
  41. package/dist/lib/sources/go-goreleaser-yaml.js +5 -3
  42. package/dist/lib/sources/java-pom-xml.d.ts +0 -1
  43. package/dist/lib/sources/java-pom-xml.js +12 -12
  44. package/dist/lib/sources/license-file.d.ts +0 -1
  45. package/dist/lib/sources/metadata-file.d.ts +0 -1
  46. package/dist/lib/sources/metadata-file.js +9 -10
  47. package/dist/lib/sources/metascope.d.ts +9 -5
  48. package/dist/lib/sources/node-npm-registry.d.ts +21 -11
  49. package/dist/lib/sources/node-npm-registry.js +12 -6
  50. package/dist/lib/sources/node-package-json.d.ts +0 -1
  51. package/dist/lib/sources/obsidian-plugin-manifest-json.d.ts +17 -9
  52. package/dist/lib/sources/obsidian-plugin-manifest-json.js +2 -2
  53. package/dist/lib/sources/obsidian-plugin-registry.d.ts +3 -2
  54. package/dist/lib/sources/obsidian-plugin-registry.js +2 -1
  55. package/dist/lib/sources/openframeworks-addon-config-mk.d.ts +0 -1
  56. package/dist/lib/sources/openframeworks-install-xml.d.ts +0 -1
  57. package/dist/lib/sources/openframeworks-install-xml.js +3 -3
  58. package/dist/lib/sources/processing-library-properties.d.ts +0 -1
  59. package/dist/lib/sources/processing-library-properties.js +9 -10
  60. package/dist/lib/sources/processing-sketch-properties.d.ts +0 -1
  61. package/dist/lib/sources/processing-sketch-properties.js +13 -20
  62. package/dist/lib/sources/publiccode-yaml.d.ts +0 -1
  63. package/dist/lib/sources/publiccode-yaml.js +61 -58
  64. package/dist/lib/sources/python-pkg-info.d.ts +0 -1
  65. package/dist/lib/sources/python-pkg-info.js +6 -5
  66. package/dist/lib/sources/python-pypi-registry.d.ts +21 -11
  67. package/dist/lib/sources/python-pypi-registry.js +23 -16
  68. package/dist/lib/sources/python-pyproject-toml.d.ts +0 -1
  69. package/dist/lib/sources/python-setup-cfg.d.ts +2 -3
  70. package/dist/lib/sources/python-setup-cfg.js +10 -9
  71. package/dist/lib/sources/python-setup-py.d.ts +0 -1
  72. package/dist/lib/sources/readme-file.d.ts +0 -1
  73. package/dist/lib/sources/readme-file.js +4 -3
  74. package/dist/lib/sources/ruby-gemspec.d.ts +0 -1
  75. package/dist/lib/sources/rust-cargo-toml.d.ts +0 -1
  76. package/dist/lib/sources/rust-cargo-toml.js +1 -1
  77. package/dist/lib/sources/xcode-info-plist.d.ts +0 -1
  78. package/dist/lib/sources/xcode-info-plist.js +29 -31
  79. package/dist/lib/sources/xcode-project-pbxproj.d.ts +0 -1
  80. package/dist/lib/sources/xcode-project-pbxproj.js +17 -16
  81. package/dist/lib/templates/codemeta-json.d.ts +1 -0
  82. package/dist/lib/templates/codemeta.d.ts +1 -0
  83. package/dist/lib/templates/codemeta.js +98 -89
  84. package/dist/lib/templates/frontmatter.d.ts +2 -1
  85. package/dist/lib/templates/frontmatter.js +1 -1
  86. package/dist/lib/templates/index.d.ts +2 -1
  87. package/dist/lib/templates/index.js +1 -1
  88. package/dist/lib/templates/metadata.d.ts +1 -0
  89. package/dist/lib/templates/project.d.ts +1 -0
  90. package/dist/lib/utilities/codemeta-helpers.js +14 -13
  91. package/dist/lib/utilities/fetch.js +5 -3
  92. package/dist/lib/utilities/formatting.js +1 -1
  93. package/dist/lib/utilities/github.js +2 -2
  94. package/dist/lib/utilities/license-identification.d.ts +9 -4
  95. package/dist/lib/utilities/license-identification.js +37 -23
  96. package/dist/lib/utilities/template-helpers.d.ts +7 -5
  97. package/dist/lib/utilities/template-helpers.js +15 -14
  98. package/dist/lib/utilities/tree-sitter-wasm.d.ts +0 -1
  99. package/dist/lib/utilities/tree-sitter-wasm.js +1 -1
  100. package/package.json +18 -17
  101. package/readme.md +13 -11
  102. package/dist/bin/renovate-CpDMbQZd.js +0 -1
  103. package/dist/bin/shared-Dix5HPlG.js +0 -6
@@ -0,0 +1,8 @@
1
+ import{basename as e,dirname as t,join as n,relative as r,resolve as i}from"node:path";import{homedir as a}from"node:os";import{cwd as o,env as s,pid as c,platform as l,stderr as u}from"node:process";import{styleText as d}from"node:util";import{access as f,mkdir as p,readFile as m,rename as h,writeFile as g}from"node:fs/promises";import{pathToFileURL as _}from"node:url";import{accessSync as v,globSync as y,lstatSync as b,readFileSync as x,readdirSync as S,statSync as C,truncateSync as w,writeFileSync as ee}from"node:fs";import{createHash as te}from"node:crypto";function T(e){let t={},n=t,r=e.split(/\r?\n/);for(let e=0;e<r.length;e++){let i=r[e],a=se(i).trim();if(!a)continue;let o=/^\[\[([^\]]+)\]\]$/.exec(a);if(o){let e=t,r=oe(o[1]);for(let t=0;t<r.length-1;t++){let n=e[r[t]];Array.isArray(n)?e=n[n.length-1]:((!n||typeof n!=`object`)&&(e[r[t]]={}),e=e[r[t]])}let i=r[r.length-1];Array.isArray(e[i])||(e[i]=[]);let a={};e[i].push(a),n=a;continue}let s=/^\[([^[\]]+)\]$/.exec(a);if(s){n=ue(t,oe(s[1]));continue}let c=ce(a,`=`);if(c<0)continue;let l=a.slice(0,c).trim(),u=a.slice(c+1).trim(),d=oe(l),f=ue(n,d.slice(0,-1)),p=d[d.length-1],m=D(u);if(u.startsWith(`[`)&&!ie(u)){let t=u,n=e+1;for(;n<r.length&&(t+=`\n${se(r[n])}`,!ie(t));n++);e=n,f[p]=ne(t)}else if(u.startsWith(`{`)&&!ie(u)){let t=u,n=e+1;for(;n<r.length&&(t+=`\n${se(r[n])}`,!ie(t));n++);e=n,f[p]=O(t)}else if(m){let t=u.slice(3),n=e+1;for(;n<r.length;n++){let e=r[n].indexOf(m);if(e>=0){t+=(t?`
2
+ `:``)+r[n].slice(0,e);break}t+=(t?`
3
+ `:``)+r[n]}e=n,f[p]=ne(m+t+m)}else f[p]=ne(u)}return t}function E(e,t){let n=e.trim();if(n)for(let e of ae(n)){let n=e.trim();n&&t.push(ne(n))}}function D(e){let t=e.slice(0,3);return t!==`"""`&&t!==`'''`||e.includes(t,3)?``:t}function ne(e){if(e.startsWith(`[`)){let t=[],n=le(e,`]`);return E(e.slice(1,n<0?e.length:n),t),t}return e.startsWith(`{`)?O(e):e.startsWith(`"""`)?A(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?A(e.slice(1,e.lastIndexOf(`"`))):e.startsWith(`'`)?e.slice(1,e.lastIndexOf(`'`)):re(e)}function re(e){return e===`true`?!0:e===`false`?!1:/^[+-]?\d+(\.\d+)?$/.test(e)?Number(e):e}function O(e){let t={},n=e.slice(1,e.lastIndexOf(`}`)).trim();if(!n)return t;for(let e of ae(n)){let n=e.indexOf(`=`);if(n<0)continue;let r=e.slice(0,n).trim().replace(/^["']|["']$/g,``);t[r]=ne(e.slice(n+1).trim())}return t}function ie(e){let t=0,n=null;for(let r=0;r<e.length;r++){let i=e[r];if(n){if(i===`\\`&&n===`"`){r++;continue}i===n&&(n=null)}else if(i===`"`||i===`'`)n=i;else if(i===`{`||i===`[`)t++;else if((i===`}`||i===`]`)&&(t--,t===0))return!0}return!1}function ae(e){let t=[],n=0,r=null,i=0;for(let a=0;a<e.length;a++){let o=e[a];if(r){if(o===`\\`&&r===`"`){a++;continue}o===r&&(r=null)}else o===`"`||o===`'`?r=o:o===`[`||o===`{`?n++:o===`]`||o===`}`?n--:o===`,`&&n===0&&(t.push(e.slice(i,a)),i=a+1)}return i<e.length&&t.push(e.slice(i)),t}function oe(e){let t=[],n=``,r=null;for(let i of e)if(r){if(i===r){r=null;continue}n+=i}else i===`"`||i===`'`?r=i:i===`.`?(t.push(n.trim()),n=``):n+=i;return n.trim()&&t.push(n.trim()),t}function se(e){let t=ce(e,`#`);return t<0?e:e.slice(0,t)}function*k(e,t){let n=null;for(let r=0;r<e.length;r++){let i=e[r];if(n){if(i===`\\`&&n===`"`){r++;continue}i===n&&(n=null)}else i===`"`||i===`'`?n=i:i===t&&(yield r)}}function ce(e,t){return k(e,t).next().value??-1}function le(e,t){let n=-1;for(let r of k(e,t))n=r;return n}function ue(e,t){for(let n of t)(!(n in e)||typeof e[n]!=`object`||Array.isArray(e[n]))&&(e[n]={}),e=e[n];return e}function A(e){return e.replace(/\\(["\\bfnrt]|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/g,(e,t)=>{switch(t[0]){case`"`:return`"`;case`\\`:return`\\`;case`b`:return`\b`;case`f`:return`\f`;case`n`:return`
4
+ `;case`r`:return`\r`;case`t`:return` `;case`u`:case`U`:return String.fromCodePoint(Number.parseInt(t.slice(1),16));default:return t}})}const j=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,M=new Map;function N(e){if(typeof e!=`string`)return null;let t=M.get(e);if(t!==void 0)return t;let n=j.exec(e.trim());if(!n)return M.set(e,null),null;let r=Number(n[1]),i=Number(n[2]),a=Number(n[3]),o=n[4]?n[4].split(`.`).map(e=>/^\d+$/.test(e)?Number(e):e):[],s={major:r,minor:i,patch:a,prerelease:o,version:`${r}.${i}.${a}${o.length?`-${o.join(`.`)}`:``}`};return M.set(e,s),s}function de(e,t){let n=typeof e==`number`,r=typeof t==`number`;return n&&r?e-t:n?-1:r?1:e<t?-1:+(e>t)}function fe(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function P(e,t){let n=fe(e,t);if(n!==0)return n;let r=e.prerelease.length>0,i=t.prerelease.length>0;if(!r&&!i)return 0;if(r&&!i)return-1;if(!r&&i)return 1;let a=Math.max(e.prerelease.length,t.prerelease.length);for(let n=0;n<a;n++){if(e.prerelease[n]===void 0)return-1;if(t.prerelease[n]===void 0)return 1;let r=de(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function pe(e){return N(e)?.version??null}function F(e){return N(e)}const I=new Map,me=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function L(e){if(typeof e!=`string`)return null;let t=I.get(e);if(t!==void 0)return t;let n=me.exec(e);if(!n)return I.set(e,null),null;let r={version:`${n[1]}.${n[2]||`0`}.${n[3]||`0`}`};return I.set(e,r),r}function he(e,t){let n=N(e),r=N(t);return!n||!r?null:ge(n,r)}function ge(e,t){if(e.version===t.version)return null;let n=P(e,t),r=n>0?e:t,i=n>0?t:e,a=r.prerelease.length>0;if(i.prerelease.length>0&&!a){if(!i.patch&&!i.minor)return`major`;if(fe(i,r)===0)return i.minor&&!i.patch?`minor`:`patch`}let o=a?`pre`:``;return e.major===t.major?e.minor===t.minor?e.patch===t.patch?`prerelease`:`${o}patch`:`${o}minor`:`${o}major`}function _e(e,t){let n=N(e),r=N(t);return n&&r?P(n,r):null}function R(e,t){return(_e(e,t)??-1)>0}function ve(e,t){return(_e(e,t)??-1)>=0}function ye(e,t){return(_e(e,t)??1)<0}function be(e){let t=/^(>=|<=|>|<|=)?\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*)?)$/.exec(e.trim());if(!t)return null;let n=t[2],r=N(`${n}.${t[3]??`0`}.${t[4]??`0`}${t[5]||``}`);return r?{op:t[1]||`=`,semver:r}:null}function xe(e,t){let n=P(e,t.semver);switch(t.op){case`>=`:return n>=0;case`<=`:return n<=0;case`>`:return n>0;case`<`:return n<0;case`=`:return n===0;default:return n===0}}function z(e,t,n){return`${e}.${t}.${n}-0`}function Se(e){return e.replace(/~\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:\.[xX*])*((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i)=>{let a=Number(t);if(n===void 0)return`>=${a}.0.0 <${z(a+1,0,0)}`;let o=Number(n);return`>=${a}.${o}.${r===void 0?0:Number(r)}${i||``} <${z(a,o+1,0)}`})}function Ce(e){return e.replace(/\^\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:\.[xX*])*((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i)=>{let a=Number(t),o=i||``;if(n===void 0)return`>=${a}.0.0 <${z(a+1,0,0)}`;let s=Number(n);if(r===void 0)return a===0?`>=${a}.${s}.0 <${z(a,s+1,0)}`:`>=${a}.${s}.0 <${z(a+1,0,0)}`;let c=Number(r);return a===0?s===0?`>=${a}.${s}.${c}${o} <${z(a,s,c+1)}`:`>=${a}.${s}.${c}${o} <${z(a,s+1,0)}`:`>=${a}.${s}.${c}${o} <${z(a+1,0,0)}`})}function we(e){return e.replace(/v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)\s+-\s+v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i,a,o,s,c)=>{let l=Number(t),u=n===void 0?0:Number(n),d=r===void 0?0:Number(r),f=i||``,p=Number(a),m;return m=s===void 0?o===void 0?`<${z(p+1,0,0)}`:`<${z(p,Number(o)+1,0)}`:`<=${p}.${Number(o)}.${Number(s)}${c||``}`,`>=${l}.${u}.${d}${f} ${m}`})}function B(e,t,n,r){return!e||e===`=`?r?`>=${t}.0.0 <${z(t+1,0,0)}`:`>=${t}.${n}.0 <${z(t,n+1,0)}`:e===`>`?r?`>=${t+1}.0.0`:`>=${t}.${n+1}.0`:e===`<=`?r?`<${z(t+1,0,0)}`:`<${z(t,n+1,0)}`:e===`<`?r?`<${t}.0.0-0`:`<${t}.${n}.0-0`:r?`>=${t}.0.0`:`>=${t}.${n}.0`}function Te(e){return/^\s*[*xX]\s*$/.test(e)?`>=0.0.0`:(e=e.replace(/(>=|<=|>|<|=)?\s*v?(\d+)\.(\d+)\.[xX*]/g,(e,t,n,r)=>B(t,Number(n),Number(r),!1)),e=e.replace(/(>=|<=|>|<|=)?\s*v?(\d+)\.[xX*](?:\.[xX*])?/g,(e,t,n)=>B(t,Number(n),0,!0)),e=e.replace(/(^|[\s|])(>=|<=|>|<|=)?\s*v?(\d+)\.(\d+)(?=\s|$)/g,(e,t,n,r,i)=>`${t}${B(n,Number(r),Number(i),!1)}`),e=e.replace(/(^|[\s|])(>=|<=|>|<|=)?\s*v?(\d+)(?=\s|$)/g,(e,t,n,r)=>`${t}${B(n,Number(r),0,!0)}`),e)}const V=new Map;function Ee(e){let t=V.get(e);if(t!==void 0)return t;let n=e.split(`||`).map(e=>e.trim()),r=[];for(let t of n){if(!t){r.push([]);continue}t=we(t),t=Ce(t),t=Se(t),t=Te(t),t=t.replace(/(>=|<=|>|<|=)\s+/g,`$1`),t=t.replace(/(^|[\s])v?(\d+\.\d+\.\d+(?:-[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*)?)\b/g,(e,t,n)=>`${t}=${n}`);let n=t.split(/\s+/).filter(Boolean),i=[];for(let t of n){let n=be(t);if(!n)return V.set(e,null),null;i.push(n)}if(i.length===0)return V.set(e,null),null;r.push(i)}let i=r.length?r:null;return V.set(e,i),i}function De(e,t){return t.some(t=>!xe(e,t))?!1:e.prerelease.length>0?t.some(t=>t.semver.prerelease.length>0&&t.semver.major===e.major&&t.semver.minor===e.minor&&t.semver.patch===e.patch):!0}function H(e,t){let n=N(e);if(!n)return!1;let r=Ee(t);if(!r)return!1;for(let e of r)if(e.length===0||De(n,e))return!0;return!1}function Oe(e){return typeof e==`string`&&Ee(e)?e:null}const ke=[[1e3,6e4,`sec`],[6e4,36e5,`min`],[36e5,864e5,`hour`],[864e5,6048e5,`day`],[6048e5,2628e6,`week`],[2628e6,31536e6,`month`],[31536e6,1/0,`year`]],Ae={"1 day ago":`yesterday`,"1 week ago":`last week`,"1 month ago":`last month`,"1 year ago":`last year`,"in 1 day":`tomorrow`,"in 1 week":`next week`,"in 1 month":`next month`,"in 1 year":`next year`},je={sec:`second`,min:`minute`};function Me(e){return e instanceof Date?e.getTime():typeof e==`string`?Date.parse(e):e}function Ne(e,{now:t,noAffix:n=!1,times:r=ke,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=Ae,longUnits:l=!1}={}){let u=Me(e),d=t===void 0?Date.now():Me(t);if(u!==u)return o||String(e);let f=d-u,p=f<0;if(p&&(f=-f),f<i)return a;let m=0,h=``;for(let e=0,t=r.length;e<t;e++){let t=r[e];if(!(f>=t[1])){m=f/t[0]|0,h=(l&&je[t[2]]||t[2])+(m>1?`s`:``);break}}let g=`${m} ${h}`,_;return _=n?g:p?`in ${g}`:`${g} ago`,s?c[_]??_:_}function Pe(e){let t=[];for(let n of e){let e=/^([^<>=~!]+)(?:==|>=?|<=?|~=)([0-9.a-z]+)$/.exec(n.replaceAll(/\s+/g,``));if(!e)continue;let r=e[1].replace(/\[.*?\]$/,``);r&&t.push({name:r,version:e[2]})}return t}const Fe=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`packageManager`],Ie=[`node`,`deno`,`bun`],Le=[`project.dependencies`,`project.optional-dependencies`,`dependency-groups.dev`,`dependency-groups.lint`,`dependency-groups.test`],Re=[`deps`,`indirect`,`replace`,`tool`],ze=[`dependencies`,`dev-dependencies`,`build-dependencies`,`workspace.dependencies`];function U(e,t){if(t===!0)return!0;if(!(t instanceof Set))return!1;for(let n of t)if(n.test(e))return!0;return!1}function Be(e,t){return t.split(`.`).reduce((e,t)=>e?.[t]??null,e)}function Ve(){let e=new Date,t=String(e.getMonth()+1).padStart(2,`0`),n=String(e.getDate()).padStart(2,`0`),r=String(e.getHours()).padStart(2,`0`),i=String(e.getMinutes()).padStart(2,`0`),a=String(e.getSeconds()).padStart(2,`0`),o=String(e.getMilliseconds()).padStart(3,`0`);return`${e.getFullYear()}-${t}-${n} ${r}:${i}:${a}.${o}`}const He={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Ue(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=He[n.toLowerCase()];if(r)return Number(e)*r}if(!/^\d+(?:\.\d+)?$/.test(e))throw Error(`Invalid cooldown value: ${e}`);return Number(e)}function We(e,t){let n=Math.round(Number(e));if(!Number.isFinite(n)||n<1)throw Error(`Invalid ${t}: ${e}`);return n}async function W(e,t,{concurrency:n=1/0}={}){let r=Array.from(e);if(!Number.isFinite(n))return Promise.all(r.map(t));let i=Array(r.length),a=0;return await Promise.all(Array.from({length:Math.min(Math.max(n,1),r.length)},async()=>{for(;a<r.length;){let e=a++;i[e]=await t(r[e])}})),i}async function Ge(e){try{return await e}catch{return null}}const G=e=>RegExp.escape?RegExp.escape(e):e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);async function Ke(e,n){let r=e;for(;;){let e=await n(r);if(e)return e;let i=t(r);if(i===r)return null;r=i}}function qe(e){let t=new Map;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const Je=n(l===`win32`?s.LOCALAPPDATA||n(a(),`AppData`,`Local`):s.XDG_CACHE_HOME||n(a(),`.cache`),`updates`);let Ye=null;const Xe=new Map;function Ze(e){let t=Xe.get(e);return t===void 0&&(t=te(`sha256`).update(e).digest(`hex`).substring(0,16),Xe.set(e,t)),t}async function Qe(e){try{let t=await m(n(Je,`${Ze(e)}.cache`),`utf8`),r=t.indexOf(`
5
+ `);if(r===-1)return null;let i=t.substring(0,r),a=t.substring(r+1);return i&&a?{etag:i,body:a}:null}catch{return null}}const $e=new Set;let et=0;function tt(e,t,r){let i=(async()=>{try{await(Ye??=p(Je,{recursive:!0}))}catch{Ye=null;return}try{let i=n(Je,`${Ze(e)}.cache`),a=`${i}.${c}-${et++}.tmp`;await g(a,`${t}\n${r}`),await h(a,i)}catch{}})();$e.add(i),(async()=>{await i,$e.delete(i)})()}async function nt(){for(;$e.size;)await Promise.all($e)}var rt=`17.19.1`;function it(e,t,n){if(!t||!n||!e)return!0;let r=Date.parse(e);return Number.isNaN(r)?!0:(n-r)/(24*3600*1e3)>=t}const at=rt,K=e=>e[0]===`v`?e.substring(1):e,ot=e=>e.endsWith(`/`)?e.slice(0,-1):e;function st(e,t){return{headers:{"user-agent":`updates/${at}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}const ct=new Set([`ECONNRESET`,`ECONNREFUSED`,`ETIMEDOUT`,`EAI_AGAIN`,`EPIPE`,`UND_ERR_SOCKET`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`]);function lt(e){if(e?.name===`TimeoutError`||e?.name===`AbortError`)return!0;let t=e?.code??e?.cause?.code;return typeof t==`string`&&ct.has(t)}async function ut(e,t){try{return await fetch(e,t)}catch(t){let n=Error(`Failed to fetch ${e}${t?.message?`: ${t.message}`:``}`,{cause:t});throw n.transient=lt(t),n}}async function q(e,t,n={}){for(let r=0;;r++)try{return await e.doFetch(t,{...n,signal:AbortSignal.timeout(e.fetchTimeout)})}catch(e){if(r>=2||!e?.transient)throw e}}async function dt(e){return typeof e.text==`function`?e.text():JSON.stringify(await e.json())}function ft(e,t){if(!t||e.length<16384)return e;try{return JSON.stringify(t(JSON.parse(e)))}catch{return e}}async function pt(e,t,n={},r){let i=t.noCache?null:await Qe(e),a=n.headers,o=i?{...a,"if-none-match":i.etag}:a,s=await q(t,e,{...n,headers:o});if(!s)return{res:void 0};if(s.status===304&&i)return{body:i.body,res:s};if(!s.ok)return{res:s};let c=ft(await dt(s),r),l=s.headers?.get?.(`etag`);return l&&!t.noCache&&tt(e,l,c),{body:c,res:s}}async function mt(e,t,n={},r){if(!t.noCache){let t=await Qe(e);if(t)return{body:t.body}}let i=await q(t,e,n);if(!i)return{res:void 0};if(!i.ok)return{res:i};let a=ft(await dt(i),r);return t.noCache||tt(e,`immutable`,a),{body:a,res:i}}function ht(e){return(F(e)?.prerelease.length??0)>0}function gt(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}const _t=new WeakMap;function vt(e){let t=_t.get(e);if(t)return t;let n=new Set(e);return n.add(`prerelease`),e.has(`patch`)&&n.add(`prepatch`),e.has(`minor`)&&n.add(`preminor`),e.has(`major`)&&n.add(`premajor`),_t.set(e,n),n}function yt(e,t,{useRel:n,allowDowngrade:r,name:i,matchesAny:a}){let o=J(e),s=J(t);if(!o||!s)return!0;let c=gt(e)||ht(e),l=ht(t);return c&&!l?ve(s,o)||n:!l&&ye(s,o)?a(i,r):!0}function J(e){return L(e)?.version??``}function bt(e,t,{range:n,semvers:r,usePre:i,useRel:a,useGreatest:o,pinnedRange:s,cooldownDays:c,now:l,getVersionDate:u}){let d=J(n);if(!d)return d;let f=gt(n)||i,p=f?vt(r):r,m=e?.time,h=!!m,g=o||!h,_=!!(c&&l),v=0,y=!1,b=d,x=F(d);for(let e of t){let t=F(e);if(!t?.version||t.prerelease.length&&(!f||a))continue;let n=t.version;if(s&&!H(n,s))continue;let r;if(_&&(r=u?u(e):h?m[e]:void 0,!it(r,c,l)))continue;let i=ge(x,t);if(!(!i||!p.has(i)))if(g)((y?P(t,x)>0:fe(t,x)>=0)||s&&!H(b,s))&&(b=n,x=t,y=!0);else{let i=Date.parse(r??m[e]);i>=0&&i>v&&(b=n,x=t,v=i)}}return b||null}function xt(e,{mode:t,range:n,useGreatest:r,useRel:i,usePre:a,semvers:o,pinnedRange:s,cooldownDays:c,now:l},{allowDowngrade:u,matchesAny:d,isGoPseudoVersion:f}){if(n===`*`||n.includes(`||`)||/\d\s/.test(n))return null;let p=[],m;if(t===`pypi`){let t=e.releases;p=Object.keys(t),m=e=>t?.[e]?.[0]?.upload_time_iso_8601}else if(t===`npm`||t===`cargo`)p=Object.keys(e.versions);else if(t===`go`){let t=J(n);if(!t)return null;let r=a||gt(n),p=e=>ht(e)&&(!r||i),m={useRel:i,allowDowngrade:u,name:e.name,matchesAny:d},h=e.old||n,g=J(e.new);if(g&&!f(e.new)&&!p(e.new)){let n=he(t,g);if(n&&o.has(n)&&yt(h,e.new,m)&&it(e.Time,c,l)&&(!s||H(g,s)))return e.new}let _=J(e.sameMajorNew);if(_&&!f(e.sameMajorNew)&&!p(e.sameMajorNew)){let n=he(t,_);if(n&&o.has(n)&&yt(h,e.sameMajorNew,m)&&it(e.sameMajorTime,c,l)&&(!s||H(_,s)))return e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew}if(c&&l&&e.olderEligible&&!p(e.olderEligible.version)){let n=J(e.olderEligible.version);if(n){let r=he(t,n);if(r&&o.has(r)&&yt(h,e.olderEligible.version,m)&&(!s||H(n,s)))return e.Time=e.olderEligible.time,delete e.newPath,e.olderEligible.version}}return null}let h=bt(e,p,{range:n,semvers:o,usePre:a,useRel:i,useGreatest:r,pinnedRange:s,cooldownDays:c,now:l,getVersionDate:m});if(!h)return null;if(r)return h;{let r=``,f=``,p=!1;t===`pypi`?(f=e.info.version,r=J(e.info.version),p=ht(f)):(r=e[`dist-tags`].latest,p=ht(r));let m=J(n),g=gt(n),_=ht(h),v={useRel:i,allowDowngrade:u,name:e.name,matchesAny:d};if(!i&&a||g&&_)return h;if(g&&!_)return yt(n,h,v)?h:null;let y=he(m,r);return y&&y!==`prerelease`&&!o.has(y.replace(/^pre/,``))||i&&p?h:ye(r,m)&&!p?yt(n,r,v)?r:R(h,m)?h:null:!g&&p&&!a||s&&!H(r,s)||c&&l&&!it(t===`pypi`?e.releases?.[f||r]?.[0]?.upload_time_iso_8601:e.time?.[r],c,l)?h:f||r}}const St=new Map;if(s.UPDATES_FORGE_TOKENS)for(let e of s.UPDATES_FORGE_TOKENS.split(`,`)){let t=e.indexOf(`:`);t>0&&St.set(e.substring(0,t),e.substring(t+1))}const Ct=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`];function wt(){return Array.from(new Set(Ct.map(e=>s[e]).filter(Boolean)))}let Tt;function Et(){let e=wt();return e.length?Promise.resolve(e):Tt??=(async()=>{try{let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]),{stdout:n}=await t(e)(`gh`,[`auth`,`token`],{encoding:`utf8`,timeout:5e3}),r=n.trim();return r?[r]:[]}catch{return[]}})()}const Dt=new Map;async function Ot(e,t){if(!e)return[];let n=St.get(e);if(n)return[n];let r=``;try{r=new URL(t).hostname}catch{}return e===`api.github.com`||e===`github.com`||e===r?Et():[]}async function kt(e,t,n){let r;try{r=new URL(e).hostname}catch{r=``}let i=await Ot(r,t.forgeApiUrl),a=e=>{let t=st(`Bearer`,e);return n&&(t.headers={...t.headers,...n}),t};if(!i.length)return q(t,e,a());let o=r?Dt.get(r):void 0;if(o)return q(t,e,a(o));for(let n of i){let i=await q(t,e,a(n));if(i.status!==401&&i.status!==403)return r&&Dt.set(r,n),i}return q(t,e,a())}function At(e,t){let n=K(t);if(!pe(n))return null;let r=``,i=``;for(let t of e){let e=K(t);pe(e)&&(!r||R(e,i))&&(r=t,i=e)}return r&&R(i,n)?r:null}function jt(e){let t=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``);return/^[a-z]+:[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?t.replace(/^(.+?):/,(e,t)=>`https://${t}.com/`):/^[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?`https://github.com/${t}`:t}const Mt=/^[0-9a-f]{7,}$/i;function Nt(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function Pt(e,t){let n=t.noCache?null:await Qe(e),r=await kt(e,t,n?{"if-none-match":n.etag}:void 0);if(r?.status===304&&n)try{let e=JSON.parse(n.body);return{tags:e.tags||[],link:e.link||``}}catch{return null}if(!r?.ok)return null;let i=Nt(await r.json()),a=r.headers.get(`link`)||``,o=r.headers.get(`etag`);return o&&!t.noCache&&tt(e,o,JSON.stringify({link:a,tags:i})),{tags:i,link:a}}async function Ft(e,t,n,r){let i=r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`;try{let e=await Pt(i(1),r);if(!e)return[];let t=e.tags,n=/<([^>]+)>;\s*rel="last"/.exec(e.link);if(!n)return t;let a=Math.min(Number(new URL(n[1]).searchParams.get(`page`)),10);if(a<2)return t;let o=await Promise.all(Array.from({length:a-1},(e,t)=>Pt(i(t+2),r)));for(let e of o)e&&t.push(...e.tags);return t}catch{return[]}}function It(e,t,n,r){throw e?.status&&e.statusText?Error(`Received ${e.status} ${e.statusText} from ${t}`):Error(`Unable to fetch ${n} from ${r}`)}function Lt(e,t,n=``){let r=t.startsWith(`v`),i=K(e),a=K(t).split(`.`).length,o=i.split(`.`),s;return s=a===1?o[0]:a===2?`${o[0]}.${o[1]||`0`}`:i,`${r?`v`:``}${s}${n}`}function Rt(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}function zt({repository:e,homepage:t,info:n},r,i){if(n){let t=n.project_urls;for(let n of[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`])if(t?.[n]){e=t[n];break}e??=`https://pypi.org/project/${i}/`}let a=``;return r===`https://npm.pkg.github.com`?`https://github.com/${i.replace(/^@/,``)}`:(e&&(a=jt(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a+=`/${Rt(a)}/${e.directory}`)),a||t||``)}function Bt(e,t){return RegExp(`^${G(e).replaceAll(`\\*`,`.*`)}$`,t?`i`:``)}function Vt(e,t,n){if(t&&typeof e==`string`)return/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):Bt(e,n);{let t=e instanceof RegExp?e:Bt(e,n);return/[gy]/.test(t.flags)?new RegExp(t.source,t.flags.replace(/[gy]/g,``)):t}}function Y(e){return new Set(e.map(e=>Vt(e,!1,!0)))}function Ht(e){return typeof e==`boolean`?e:!Array.isArray(e)||!e.length?!1:Y(e)}async function Ut(e){let t=await Promise.all([`js`,`ts`,`mjs`,`mts`].map(async t=>{let r=`updates.config.${t}`,i=n(e,r);try{await f(i)}catch{return null}try{return{configDir:e,filename:r,default:(await import(_(i).href)).default??{}}}catch(e){return Error(`Unable to parse config file ${r}: ${e?.message??e}`)}}));for(let e of t)if(e&&!(e instanceof Error))return e;for(let e of t)if(e instanceof Error)throw e;return null}const Wt=qe(e=>Ke(e,Ut));async function Gt(e,t={}){let n=await Wt(e),r=n?.default??{},{loadRenovateConfig:i,makePresetFetcher:a}=await import(`./renovate-CEC0BhMB.js`),o=a(t);return{...await i(n?.configDir??e,r.inherit?.renovate,o),...r}}function Kt(e){if(/^\s*\{/.test(e))return JSON.parse(e);let t={};for(let n of e.split(/\r?\n/)){let e=n.trim();if(!e||e.startsWith(`#`)||e.startsWith(`;`))continue;let r=e.indexOf(`=`);if(r===-1)continue;let i=e.slice(r+1).trim();i.length>=2&&(i.startsWith(`"`)&&i.endsWith(`"`)||i.startsWith(`'`)&&i.endsWith(`'`))&&(i=i.slice(1,-1)),t[e.slice(0,r).trim()]=i}return t}function qt(e){try{return Kt(x(e,`utf-8`))}catch{return}}function Jt(e){let r=o();for(;;){let i=n(r,e);try{if(C(i).isFile())return i}catch{}let a=t(r);if(a===r)break;r=a}}function Yt(e){let t={},n=e.toLowerCase();for(let[r,i]of Object.entries(s)){if(!r.toLowerCase().startsWith(n))continue;let a=r.substring(e.length).split(`__`).filter(Boolean);if(a.length===0)continue;let o=t;for(let e=0;e<a.length;e++){let t=a[e];if(e===a.length-1)o[t]=i;else if(o[t]===void 0&&(o[t]={}),typeof o[t]==`object`)o=o[t];else break}}return t}function Xt(e,t={}){let r=l===`win32`,i=r?s.USERPROFILE:s.HOME,a=[{...t}],o=[];function c(e){if(!e||o.includes(e))return;let t=qt(e);t&&(a.push(t),o.push(e))}r||(c(n(`/etc`,e,`config`)),c(n(`/etc`,`${e}rc`))),i&&(c(n(i,`.config`,e,`config`)),c(n(i,`.config`,e)),c(n(i,`.${e}`,`config`)),c(n(i,`.${e}rc`))),c(Jt(`.${e}rc`));let u=Yt(`${e}_`);return u.config&&c(u.config),Object.assign({},...a,u,o.length?{configs:o,config:o[o.length-1]}:void 0)}const Zt=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,Qt=/^([^/]+)\/([^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,$t=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,en=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,tn=/(@[^/]+\/)?([^/]+)/g;function nn(e){let t=e.match(tn);return t?t[t.length-1]:e}const rn=`https://registry.npmjs.org`;let an=null;const on=new Map;function sn(){return an??=Xt(`npm`,{registry:rn})}function cn(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,t)=>s[t]||``)}function ln(e,t){let n=n=>t[`${e}:${n}`]||t[`${e}/:${n}`],r=n(`_authToken`);if(r)return{token:cn(r),type:`Bearer`};let i=n(`username`),a=n(`_password`);if(i&&a){let e=Buffer.from(cn(a),`base64`).toString(`utf8`);return{token:Buffer.from(`${i}:${e}`).toString(`base64`),type:`Basic`,username:i,password:e}}let o=n(`_auth`);if(o)return{token:cn(o),type:`Basic`}}function un(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=ln(`//${n.host}${r.replace(/\/$/,``)}`,t);if(e)return e;let i=r.endsWith(`/`)?r:`${r}/`;n.pathname=new URL(`..`,new URL(i,`http://x`)).pathname}let i=t._auth;if(i)return{token:cn(i),type:`Basic`}}function dn(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function fn(e,t){an||=sn();let n=e.startsWith(`@`)?e.split(`/`)[0]:``,r=`${n}:${t}`,i=on.get(r);if(i)return i;let a=()=>({auth:un(t,an),registry:t}),o;if(!e.startsWith(`@`))o=a();else{let e=ot(dn(n,an));if(e!==t)try{let t=un(e,an);o=t?.token?{auth:t,registry:e}:a()}catch{o=a()}else o=a()}return on.set(r,o),o}function pn(e,t,n){an||=sn();let r=ot(typeof n.registry==`string`&&n.registry||t.registry||an.registry||rn);return{...fn(e,r),originalRegistry:r}}function mn(e,t,n){let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r}const hn=new Map,gn=new Map,_n=new Map;function vn(e){let t={};for(let n of Object.keys(e.versions??{}))t[n]={};return{name:e.name,"dist-tags":e[`dist-tags`],versions:t,time:e.time,error:e.error}}async function yn(e,t,n,r,i){let{auth:a,registry:o}=pn(e,n,r),s=mn(o,t===`resolutions`?nn(e):e),c=hn.get(s);if(!c){let t=st(a?.type,a?.token);t.headers={...t.headers,accept:`application/vnd.npm.install-v1+json`},c=(async()=>{try{let n=await pt(s,i,t,vn);return`body`in n||It(n.res,s,e,o),JSON.parse(n.body)}catch(e){throw hn.delete(s),e}})(),hn.set(s,c)}return[await c,t,o,e]}async function bn(e,t,n,r,i){let{auth:a,registry:o}=pn(e,n,r),s=mn(o,e,t),c=gn.get(s);if(c)return c;let l=(async()=>{try{let n=st(a?.type,a?.token),r=await mt(s,i,n,e=>({repository:e.repository,homepage:e.homepage,_npmOperationalInternal:e._npmOperationalInternal?.tmp?{tmp:e._npmOperationalInternal.tmp}:void 0}));if(!(`body`in r))return{};let c=JSON.parse(r.body),l=``,u=c?._npmOperationalInternal?.tmp;if(u){let e=/(\d{13})/.exec(u);e&&(l=new Date(Number(e[1])).toISOString())}if(!l){let r=mn(o,e),a=_n.get(r);a||(a=(async()=>{try{let e=await q(i,r,n);return e?.ok?await e.json():null}catch{return _n.delete(r),null}})(),_n.set(r,a)),l=(await a)?.time?.[t]||``}return{repository:c.repository,homepage:c.homepage,date:l}}catch{return{}}})();return gn.set(s,l),l}function xn(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function Sn(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function Cn(e,t){if(e.startsWith(`npm:@jsr/`)){let t=/^npm:@jsr\/([^_]+)__([^@]+)@(.+)$/.exec(e);if(t)return{scope:t[1],name:t[2],version:t[3]}}else if(e.startsWith(`jsr:@`)){let t=/^jsr:@([^/]+)\/([^@]+)@(.+)$/.exec(e);if(t)return{scope:t[1],name:t[2],version:t[3]}}else if(e.startsWith(`jsr:`)){let n=e.substring(4);if(t?.startsWith(`@`)){let e=/^@([^/]+)\/(.+)$/.exec(t);if(e)return{scope:e[1],name:e[2],version:n}}}return{scope:null,name:null,version:``}}async function wn(e,t,n){let r=/^@([^/]+)\/(.+)$/.exec(e);if(!r)throw Error(`Invalid JSR package name: ${e}`);let[,i,a]=r,o=`${n.jsrApiUrl}/@${i}/${a}/meta.json`,s=await pt(o,n,{headers:{"accept-encoding":`gzip, deflate, br`}},e=>({latest:e.latest,versions:Object.fromEntries(Object.entries(e.versions??{}).map(([e,t])=>[e,{createdAt:t?.createdAt}]))}));if(`body`in s){let r=JSON.parse(s.body),i={},a={};for(let[e,t]of Object.entries(r.versions??{}))i[e]={version:e,time:t.createdAt},a[e]=t.createdAt;return[{name:e,"dist-tags":{latest:r.latest},versions:i,time:a},t,n.jsrApiUrl,e]}It(s.res,o,e,`JSR`)}function Tn(e,t){let n=new Map;for(let[e,{old:r,oldOrig:i,new:a}]of Object.entries(t)){let[t,o]=e.split(`\0`),s=i||r;t===`packageManager`?n.set(`${t}\0${o}@${s}`,`"${t}": "${o}@${a}"`):n.set(`${o}\0${s}`,`"${o}": "${a}"`)}return n.size?e.replace(/"((?:[^"\\]|\\.)*)": *"((?:[^"\\]|\\.)*)"/g,(e,t,r)=>n.get(`${t}\0${r}`)??e):e}function En(e,t,n){let r=e.replace(en,t);if(!n||n===e)return r;let i=/^([\^~]|>=\s*)([\d.]+)$/.exec(n);if(!i)return r;let[,a,o]=i,s=t.split(/[-+]/)[0];if(s!==t)return r;let c=o.split(`.`).length,l=s.split(`.`);return l.length===c?r:`${a}${l.slice(0,c).join(`.`)}`}function X(e){if(/[xX*]/.test(e))return e;let t=e.match($t);return t?.length===1?e.replace($t,J(t[0])):e}async function Dn(e,t,n){let r=`${n.forgeApiUrl}/repos/${e}/${t}/commits`;try{let e=n.noCache?null:await Qe(r),t=await kt(r,n,e?{"if-none-match":e.etag}:void 0),i;if(t?.status===304&&e)i=e.body;else if(t?.ok){let{sha:e,commit:a}=JSON.parse(await t.text())[0];i=JSON.stringify([{sha:e,commit:{committer:a?.committer,author:a?.author}}]);let o=t.headers.get(`etag`);o&&!n.noCache&&tt(r,o,i)}else return{hash:``,commit:{}};let{sha:a,commit:o}=JSON.parse(i)[0];return{hash:a,commit:o}}catch{return{hash:``,commit:{}}}}async function On(e,t,n){return(await Ft(n.forgeApiUrl,e,t,n)).map(e=>e.name)}async function kn(e,t,n){let r=t.old.replace(Zt,``),[,i,a,o]=Qt.exec(r)||[];if(!i||!a||!o)return null;let s=e=>{let n=t.old.lastIndexOf(o);return t.old.slice(0,n)+e+t.old.slice(n+o.length)};if(Mt.test(o)){let{hash:t,commit:r}=await Dn(i,a,n);if(!t)return null;let c=r?.committer?.date??r?.author?.date,l=t.substring(0,o.length);if(o.toLowerCase()!==l.toLowerCase())return{key:e,newRange:s(l),user:i,repo:a,oldRef:o,newRef:l,newDate:c}}else{let t=At(await On(i,a,n),o);if(t)return{key:e,newRange:s(t),user:i,repo:a,oldRef:o,newRef:t}}return null}function An(e){let t={};for(let[n,r]of Object.entries(e.releases??{}))t[n]=(r??[]).slice(0,1).map(e=>e.upload_time_iso_8601?{upload_time_iso_8601:e.upload_time_iso_8601}:{});let{name:n,version:r,project_urls:i}=e.info??{};return{info:{name:n,version:r,project_urls:i},releases:t}}async function jn(e,t,n){let r=`${n.pypiApiUrl}/pypi/${e}/json`,i=await pt(r,n,{headers:{"accept-encoding":`gzip, deflate, br`}},An);if(`body`in i)return[JSON.parse(i.body),t,null,e];It(i.res,r,e,n.pypiApiUrl)}function Mn(e,t){let n=e;for(let[e,{old:r,oldOrig:i}]of Object.entries(t)){let a=e.split(`\0`)[1],o=i||r;n=n.replace(RegExp(`(['"])(${G(a)} *(?:\\[[^\\]]+\\])? *[<>=~]+ *)${G(o)}\\1`,`g`),(n,r,i)=>`${r}${i}${t[e].new}${r}`)}return n}let Nn;async function Pn(){let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)}function Fn(){return Nn??=Pn()}function In(){let e=s.GOPROXY||`https://proxy.golang.org,direct`;for(let t of e.split(/[,|]/)){let e=t.trim();if(e&&e!==`direct`&&e!==`off`)return ot(e)}return`https://proxy.golang.org`}function Ln(){return(s.GONOPROXY||s.GOPRIVATE||``).split(`,`).map(e=>e.trim()).filter(Boolean)}function Rn(e,t){return t.some(t=>e===t||e.startsWith(`${t}/`))}function zn(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}const Bn=/\/v(\d+)$/;function Vn(e){let t=Bn.exec(e);return t?Number.parseInt(t[1]):1}function Hn(e,t){let n=e.replace(Bn,``);return t<=1?n:`${n}/v${t}`}function Un(e,t){if(t.includes(`+incompatible`))return e;let n=Number.parseInt(K(t).split(`.`)[0]);return Number.isNaN(n)||n<=1||n===Vn(e)?e:Hn(e,n)}function Wn(e,t){let n=t?/^(\S+)(?:\s+v\S+)?\s+=>\s+(\S+)\s+(v\S+)/.exec(e):/^replace\s+(\S+)(?:\s+v\S+)?\s+=>\s+(\S+)\s+(v\S+)/.exec(e);if(!n)return null;let[,r,i,a]=n;return i.startsWith(`./`)||i.startsWith(`/`)||i.startsWith(`../`)?null:{origModule:r,targetModule:i,targetVersion:a}}function Gn(e,t,n){return t===`indirect`||e.startsWith(`golang.org/x/`)||Kn(n)}function Kn(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function qn(e,t,n){return[{name:e,old:t,new:t},n,null,e]}async function Jn(e,t,n){if(!t)return null;let r=t,i=e+101,a=e+2,o=7;for(;a<=i;){let e=Math.min(a+o-1,i),t=await Promise.all(Array.from({length:e-a+1},(e,t)=>n(a+t))),s=t.indexOf(null),c=s===-1?t:t.slice(0,s);if(c.length&&(r=c.at(-1)),s!==-1)break;a=e+1,o*=2}return r}function Yn(e,t,n,r,i,a){let o=r?.Version??i,s=r?.Time??a,c=r?.path??e;return[{name:e,old:n,new:K(o),Time:s,...c!==e&&{newPath:c},sameMajorNew:K(i),sameMajorTime:a},t,null,e]}function Xn(e){let t={},n={},r={},i={},a=new Set,o=[],s=e.split(/\r?\n/),c=!1,l=!1,u=!1;for(let e of s){let i=e.trim();if(/^require\s*\(/.test(i)){c=!0;continue}if(/^replace\s*\(/.test(i)){l=!0;continue}if(/^tool\s*\(/.test(i)){u=!0;continue}if(i===`)`){c=!1,l=!1,u=!1;continue}if(i.startsWith(`//`))continue;if(u){i&&!i.startsWith(`//`)&&o.push(i);continue}let s=/^tool\s+(\S+)/.exec(i);if(s){o.push(s[1]);continue}let d=i.includes(`// indirect`);if(l||/^replace\s+/.test(i)){let e=Wn(i,l);e&&(r[e.targetModule]=e.targetVersion,a.add(e.origModule));continue}let f=c?/^(\S+)\s+(v\S+)/.exec(i):/^require\s+(\S+)\s+(v\S+)/.exec(i);f&&((d?n:t)[f[1]]=f[2])}for(let e of a)delete t[e],delete n[e];if(o.length){let e=[...Object.keys(n),...Object.keys(t)];for(let r of o){let a=``;for(let t of e)(r===t||r.startsWith(`${t}/`))&&t.length>a.length&&(a=t);let o=n[a]?n:t[a]?t:null;o&&(i[a]=o[a],delete o[a])}}return{deps:t,indirect:n,replace:r,tool:i}}async function Zn(e,t,n,r,i){let a=Vn(e),o=async(e,t)=>{try{let{stdout:n}=await(await Fn())(`go`,[`list`,`-m`,`-json`,`${e}@latest`],{timeout:t,cwd:r,env:s}),i=JSON.parse(n);return{Version:i.Version,Time:i.Time||``,path:e}}catch{return null}},c=Gn(e,t,n),[l,u]=await Promise.all([o(e,i.fetchTimeout),c?null:o(Hn(e,a+1),i.goProbeTimeout)]);return l?Yn(e,t,n,await Jn(a,u,t=>o(Hn(e,t),i.goProbeTimeout)),l.Version,l.Time):qn(e,n,t)}async function Qn(e,t,n,r,i,a){if(Rn(e,a))return Zn(e,t,n,r,i);let o=zn(e),s=Vn(e),c=async t=>{let n=Hn(e,t);try{let e=await i.doFetch(`${i.goProxyUrl}/${zn(n)}/@latest`,{signal:AbortSignal.timeout(i.goProbeTimeout),headers:{"accept-encoding":`gzip, deflate, br`}});return e.ok?{...await e.json(),path:n}:null}catch{return null}},l=Gn(e,t,n),[u,d]=await Promise.all([q(i,`${i.goProxyUrl}/${o}/@latest`,{headers:{"accept-encoding":`gzip, deflate, br`}}),l?null:c(s+1)]);if(!u.ok)return qn(e,n,t);let f,p;try{let e=await u.json();f=e.Version,p=e.Time}catch{return qn(e,n,t)}return Yn(e,t,n,await Jn(s,d,c),f,p)}function $n(e,t){if(!e.includes(`replace`))return e;let n=G(t);return e=e.replace(RegExp(`^replace\\s+${n}(\\s+v\\S+)?\\s+=>\\s+\\S+(\\s+v\\S+)?\\s*\\n`,`gm`),``),e=e.replace(RegExp(`^\\s+${n}(\\s+v\\S+)?\\s+=>\\s+\\S+(\\s+v\\S+)?\\s*\\n`,`gm`),``),e=e.replace(/^replace\s*\(\s*\)\s*\n/gm,``),e}function er(e,t){let n=e,r={};for(let[e,{old:i,oldOrig:a}]of Object.entries(t)){let[o,s]=e.split(`\0`),c=a||i,l=t[e].new;if(o===`replace`){n=n.replace(RegExp(`(=>\\s+${G(s)}\\s+)v${G(c)}`,`g`),`$1v${l}`);continue}if(o===`indirect`){n=n.replace(RegExp(`(${G(s)}) +v${G(c)}`,`g`),`$1 v${l}`);continue}let u=Un(s,l);u===s?n=n.replace(RegExp(`(${G(s)}) +v${G(c)}`,`g`),`$1 v${l}`):(n=n.replace(RegExp(`${G(s)} +v${G(c)}`,`g`),`${u} v${l}`),o===`tool`&&(n=n.replace(RegExp(`(^\\s+|^tool\\s+)${G(s)}(/\\S+)?\\s*$`,`gm`),`$1${u}$2`)),r[s]=u),o!==`tool`&&(n=$n(n,s))}return[n,r]}function tr(e,t,r){let i=Object.entries(t);if(!i.length)return;let a=new Map(i),o=i.map(([e])=>e).sort((e,t)=>t.length-e.length),s=RegExp(`"(${o.map(G).join(`|`)})(/|")`,`g`),c=y(`**/*.go`,{cwd:e});for(let t of c){let i=n(e,t),o=x(i,`utf8`),c=o.replace(s,(e,t,n)=>`"${a.get(t)}${n}`);c!==o&&r(i,c)}}function nr(e){let t=[],n={},r=e.split(/\r?\n/),i=!1,a=!1;for(let e of r){let r=e.trim();if(/^use\s*\(/.test(r)){i=!0;continue}if(/^replace\s*\(/.test(r)){a=!0;continue}if(r===`)`){i=!1,a=!1;continue}if(i){let e=/^(\S+)/.exec(r);e&&!r.startsWith(`//`)&&t.push(e[1]);continue}let o=/^use\s+(\S+)/.exec(r);if(o){t.push(o[1]);continue}if(a||/^replace\s+/.test(r)){let e=Wn(r,a);e&&(n[e.targetModule]=e.targetVersion)}}return{use:t,replace:n}}function rr(e){let t=`https://${ir(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[,e,i,...a]=r;return n.pathname=`/${e}/${i}/${Rt(t)}/${a.join(`/`)}`,n.href}else return t}function ir(e){return Bn.test(e)?t(e):e}function ar(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}const or=/^\s*(?:-\s*)?uses:\s*['"]?([^'"#\s]+)['"]?/gm;function sr(e){if(e.startsWith(`docker://`)||e.startsWith(`./`))return null;let t=/^https?:\/\/([^/]+)\/(.+)$/.exec(e),n=t?.[1]??null,r=t?.[2]??e,i=r.indexOf(`@`);if(i===-1)return null;let a=r.substring(0,i),o=r.substring(i+1);if(!o)return null;let s=a.split(`/`);if(s.length<2)return null;let c=n?`${n}/${a}`:a;return{host:n,owner:s[0],repo:s[1],ref:o,name:c,isHash:Mt.test(o)}}function cr(e,t){return e?e===`github.com`?`https://api.github.com`:`https://${e}/api/v1`:t}async function lr(e,t,n,r,i){let a=`${e}/repos/${t}/${n}/git/commits/${r}`;if(!i.noCache){let e=await Qe(a);if(e)return e.body}try{let e=await kt(a,i);if(!e.ok)return``;let t=await e.json(),n=t?.committer?.date||t?.author?.date||``;return n&&!i.noCache&&tt(a,`immutable`,n),n}catch{return``}}function ur(e,t){return Lt(F(K(e))?.version??K(e),t)}function dr(e,t){let n=e;for(let{name:e,oldRef:r,newRef:i}of t){let t=RegExp(`(uses:\\s*['"]?(?:https?:\\/\\/)?)${G(e)}@${G(r)}(?![\\w.-])`,`g`);n=n.replace(t,`$1${e}@${i}`)}return n}const fr=[`.github`,`.gitea`,`.forgejo`],pr=RegExp(`(?:^|/)(?:${fr.map(G).join(`|`)})\\/(?:workflows\\/[^/]+|(?:[^/]+\\/)*action)\\.ya?ml$`);function mr(e){return pr.test(e.replace(/\\/g,`/`))}function hr(e){let t=new Set;try{for(let r of S(n(e,`workflows`)))/\.ya?ml$/.test(r)&&t.add(i(n(e,`workflows`,r)))}catch{}try{for(let r of S(e,{recursive:!0,withFileTypes:!0}))!r.isFile()||!/^action\.ya?ml$/.test(r.name)||t.add(i(n(r.parentPath,r.name)))}catch{}return Array.from(t)}const gr=/^(v?\d+(?:\.\d+){0,2})(-.+)?$/,_r=/^\s*FROM\s+(?:--platform=\S+\s+)?(\S+)/gm,vr=/^\s*image:\s*['"]?([^\s'"#]+)['"]?/gm,yr=/^\s*container:\s*['"]?([^\s'"#{}]+:[^\s'"#{}:]+)['"]?\s*$/gm,br=/^\s*(?:-\s*)?uses:\s*['"]?docker:\/\/([^'"#\s]+)['"]?/gm;function xr(e){let t=e.split(`/`);return t.length===1?{registry:null,namespace:`library`,repo:t[0]}:t.length===2&&!t[0].includes(`.`)&&!t[0].includes(`:`)?{registry:null,namespace:t[0],repo:t[1]}:{registry:t[0],namespace:t.slice(1,-1).join(`/`),repo:t[t.length-1]}}function Sr(e){if(e=e.replace(/^docker:\/\//,``),e.includes(`@`))return null;let t=e.lastIndexOf(`:`);if(t===-1||e.lastIndexOf(`/`)>t)return null;let n=e.substring(0,t),r=e.substring(t+1);if(!r||!gr.test(r))return null;let{registry:i,namespace:a,repo:o}=xr(n);return{registry:i,namespace:a,repo:o,tag:r,fullImage:n}}function Cr(e){let t=gr.exec(e);return t?{version:t[1],suffix:t[2]||``}:null}function wr(e,t){let n=Cr(t);return n?Lt(e,n.version,n.suffix):t}function Tr(e,t){let n=[];for(let r of e.matchAll(t)){let e=Sr(r[1]);e&&n.push({ref:e,match:r[1]})}return n}const Er=new WeakMap;function Dr(e,t,n){let r=Er.get(n);r||Er.set(n,r=new Map);let i=`${e}/${t}`,a=r.get(i);return a||r.set(i,a=Or(e,t,n)),a}async function Or(e,t,n){let r={},i=`${n.dockerApiUrl}/v2/repositories/${e}/${t}/tags`,a=e=>`${i}?page_size=100&ordering=last_updated&page=${e}`,o={headers:{"accept-encoding":`gzip, deflate, br`}},s=e=>({count:e.count,results:(e.results||[]).map(e=>({name:e.name,tag_last_pushed:e.tag_last_pushed,last_updated:e.last_updated}))}),c=async e=>{try{let t=await pt(a(e),n,o,s);return`body`in t?JSON.parse(t.body):null}catch{return null}},l=await c(1);if(!l)return r;for(let e of l.results||[])r[e.name]=e.tag_last_pushed||e.last_updated||``;let u=Math.min(Math.ceil((l.count||0)/100),10);if(u<2)return r;let d=await Promise.all(Array.from({length:u-1},(e,t)=>c(t+2)));for(let e of d)if(e)for(let t of e.results||[])r[t.name]=t.tag_last_pushed||t.last_updated||``;return r}async function kr(e,t,n,r){let i=`${r.dockerApiUrl}/v2/repositories/${e}/${t}/tags/${n}`;try{let e=await pt(i,r,{headers:{"accept-encoding":`gzip, deflate, br`}},e=>({digest:e.digest}));if(!(`body`in e))return null;let t=JSON.parse(e.body).digest;return typeof t==`string`?t:null}catch{return null}}async function Ar(e,t,n){let{registry:r,namespace:i,repo:a}=xr(e);if(r)throw Error(`Non-Docker-Hub registries are not yet supported: ${r}`);return[{tags:await Dr(i,a,n),name:e},t,null,e]}function jr(e,t,n,r,i,a){let o=Cr(t);if(!o)return null;let s=L(K(o.version))?.version;if(!s)return null;let c=s,l=``,u=``;for(let[t,s]of Object.entries(e)){let e=Cr(t);if(!e||e.suffix!==o.suffix)continue;let d=L(K(e.version))?.version;if(!d||a&&!H(d,a)||!it(s,r,i))continue;if(d===c){l&&Date.parse(s)>Date.parse(u)&&(l=t,u=s);continue}let f=he(c,d);!f||!n.has(f)||R(d,c)&&(c=d,l=t,u=s)}if(!l||c===s)return null;let d=wr(c,t);return d===t?null:{newTag:d,hubTag:l,date:u}}function Mr(e,t,n){let r=e;for(let[e,i]of Object.entries(t)){let t=e.split(`\0`)[1],a=i.oldOrig||i.old;for(let e of n)r=r.replace(e(G(t),G(a)),`$1${t}:${i.new}`)}return r}function Nr(e,t){return Mr(e,t,[(e,t)=>RegExp(`(FROM\\s+(?:--platform=\\S+\\s+)?)${e}:${t}(?![\\w.-])`,`g`)])}function Pr(e,t){return Mr(e,t,[(e,t)=>RegExp(`(image:\\s*['"]?)${e}:${t}(?![\\w.-])`,`g`)])}function Fr(e,t){return Mr(e,t,[(e,t)=>RegExp(`((?:container|image):\\s*['"]?)${e}:${t}(?![\\w.-])`,`g`),(e,t)=>RegExp(`(uses:\\s*['"]?docker://)${e}:${t}(?![\\w.-])`,`g`)])}const Ir=[`Dockerfile`,`docker-compose.yml`,`docker-compose.yaml`];function Lr(e){return/^docker-.+\.ya?ml$/.test(e)}function Rr(e){return/^Dockerfile(\..+)?$/.test(e)}function zr(e){return Rr(e)||Lr(e)}function Br(e){return Rr(e)?_r:vr}function Vr(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const Hr=[`Makefile`,`makefile`,`GNUmakefile`];function Ur(e){return Hr.includes(e)||e.endsWith(`.mk`)}const Wr=String.raw`^\s*[A-Za-z_][\w.]*\s*(?:::=|:=|\?=|\+=|=)\s*`,Gr=RegExp(`${Wr}${String.raw`(\S+)@(v\d\S*)\s*$`}`),Kr=/^[^/\s]+\.[^/\s]+\//;function qr(e){let t=e.indexOf(`#`);return t===-1?e:e.slice(0,t)}function Jr(e){let t=[];for(let n of e.split(/\r?\n/)){let e=qr(n),r=Gr.exec(e);if(!r)continue;let[,i,a]=r;Kr.test(i)&&t.push({installPath:i,version:a})}return t}const Yr=RegExp(`${Wr}${String.raw`(\S+)\s*$`}`),Xr=/@(sha256:[0-9a-f]{64})$/;function Zr(e,t,n){return`${e}:${t}${n?`@${n}`:``}`}function Qr(e){let t=null,n=e,r=Xr.exec(e);r&&(t=r[1],n=e.slice(0,r.index));let i=Sr(n.replace(/^docker\.io\//,``));return!i||i.registry||i.namespace===`library`?null:{writtenImage:n.slice(0,n.lastIndexOf(`:`)),ref:i,digest:t}}function $r(e){let t=[];for(let n of e.split(/\r?\n/)){let e=Yr.exec(qr(n));if(!e)continue;let r=Qr(e[1]);r&&t.push(r)}return t}const ei=/\/v(?:[2-9]|[1-9]\d+)(?=\/|$)/;function ti(e){let t=ei.exec(e);return t?e.slice(0,t.index+t[0].length):null}function ni(e){let t=e.split(`/`),n=[];for(let e=t.length;e>=2;e--)n.push(t.slice(0,e).join(`/`));return n}async function ri(e,t){let n=ti(e);if(n)return n;let r=ni(e);return(await Promise.all(r.map(async e=>{try{return(await t.doFetch(`${t.goProxyUrl}/${zn(e)}/@latest`,{signal:AbortSignal.timeout(t.goProbeTimeout)})).ok?e:null}catch{return null}}))).find(Boolean)??null}async function ii(e,t,n,r,i,a){let o=await ri(e,r);if(!o)return null;let[s]=await Qn(o,`tool`,K(t),n,r,i),c=xt(s,{mode:`go`,range:K(t),semvers:a.semvers,useGreatest:a.useGreatest,usePre:a.usePre,useRel:a.useRel,pinnedRange:a.pinnedRange,cooldownDays:a.cooldownDays,now:a.now},{allowDowngrade:a.allowDowngrade,matchesAny:U,isGoPseudoVersion:Kn});if(!c)return null;let l=s.newPath??Un(o,c),u=`${l}${e.slice(o.length)}`,d=Lt(c,t);return u===e&&d===t?null:{newInstallPath:u,newVersion:d,date:s.Time??``,info:rr(l)}}async function ai(e,t,n){let{namespace:r,repo:i,fullImage:a,tag:o}=e.ref,[s]=await Ar(a,`docker`,t),c=jr(s.tags,o,n.semvers,n.cooldownDays,n.now,n.pinnedRange);if(!c)return null;let l=null;return e.digest&&(l=await kr(r,i,c.hubTag,t),!l)?null:{newTag:c.newTag,newDigest:l,date:c.date,info:Vr(e.ref)}}function oi(e,t){for(let{oldSpec:n,newSpec:r}of t){let t=RegExp(`^([^#\\n]*?)${G(n)}(?=[\\s#]|$)`,`gm`);e=e.replace(t,`$1${r}`)}return e}const si=new Map,ci=e=>({versions:(e.versions||[]).filter(e=>!e.yanked).map(e=>({num:e.num,created_at:e.created_at}))});async function li(e,t,n){let r=`${ot(n.cratesIoUrl)}/api/v1/crates/${encodeURIComponent(e)}/versions?per_page=100`,i=si.get(r);return i||(i=(async()=>{try{let t=await pt(r,n,st(),ci);`body`in t||It(t.res,r,e,n.cratesIoUrl);let i;try{i=JSON.parse(t.body)}catch{throw Error(`Invalid JSON from ${r}`)}let a=(i.versions||[]).filter(e=>!e.yanked),o={},s={};for(let e of a)e.num&&(o[e.num]={},s[e.num]=e.created_at||``);return{name:e,versions:o,time:s,"dist-tags":{latest:a[0]?.num??``}}}catch(e){throw si.delete(r),e}})(),si.set(r,i)),[await i,t,null,e]}function ui(e){let t=new Map;for(let n of e.split(`[[package]]`)){let e=/\bname\s*=\s*"([^"]+)"/.exec(n),r=/\bversion\s*=\s*"([^"]+)"/.exec(n);if(!e||!r)continue;let i=e[1],a=r[1];if(!pe(a))continue;let o=t.get(i);o||t.set(i,o=[]),o.push(a)}return t}const di=/^\d/;function fi(e,t){return di.test(e)?En(X(`^${e}`),t,`^${e}`).replace(/^\^/,``):En(X(e),t,e)}function pi(e,t,n){let r=e.get(t);if(!r)return;let i=di.test(n)?`^${n}`:n,a;for(let e of r)H(e,i)&&(!a||R(e,a))&&(a=e);return a}const mi=ze.map(G).join(`|`);function hi(e,t){let n=e;for(let[e,r]of Object.entries(t)){let[,t]=e.split(`\0`),i=r.oldOrig||r.old,a=r.new,o=G(t),s=G(i);n=n.replace(RegExp(`^(\\s*${o}\\s*=\\s*["'])${s}(["'].*)$`,`gm`),`$1${a}$2`),n=n.replace(RegExp(`^(\\s*${o}\\s*=\\s*\\{(?:"[^"]*"|'[^']*'|[^}\\n])*?\\bversion\\s*=\\s*["'])${s}(["'])`,`gm`),`$1${a}$2`),n=n.replace(RegExp(`(\\[(?:${mi})\\.${o}\\](?:(?!\\n\\[)[\\s\\S])*?version\\s*=\\s*["'])${s}(["'])`,`g`),`$1${a}$2`)}return n}function gi(e){return e.split(`|`)[0]}function _i(e,t){let n=t===`.`?``:`|${t}`,r={};for(let[t,i]of Object.entries(e)){let[e,a]=t.split(`\0`),o=gi(e);e===`${o}${n}`&&(r[`${o}${a}`]=i)}return r}const vi=/[*?{[]/;async function yi(e,t,a,o=32){let s=e.filter(e=>!e.startsWith(`!`)),c=e.filter(e=>e.startsWith(`!`)).map(e=>e.slice(1)),l=new Set(c.flatMap(e=>y(e,{cwd:t})).map(e=>e.replace(/\\/g,`/`))),u=new Set,d=[];for(let e of s){let o=vi.test(e)?y(e,{cwd:t}).map(e=>i(n(t,e))):[i(n(t,e))];for(let e of o){let i=r(t,e).replace(/\\/g,`/`);if(l.has(i))continue;let o=n(e,a);u.has(o)||(u.add(o),d.push({absPath:o,memberPath:`./${i}`}))}}return(await W(d,async({absPath:e,memberPath:t})=>{try{return{absPath:e,content:await m(e,`utf8`),memberPath:t}}catch{return null}},{concurrency:o})).filter(e=>e!==null)}function bi(e){let t=[],n=e.split(/\r?\n/),r=!1;for(let e of n){if(/^packages\s*:/.test(e)){r=!0;continue}if(r){let n=e.trim();if(!n||n.startsWith(`#`))continue;if(!n.startsWith(`-`))break;let r=/^\s*-\s+['"]?([^'"#\s]+)['"]?/.exec(e);r&&t.push(r[1])}}return t}const xi={"pnpm-workspace.yaml":`npm`,"package.json":`npm`,"pyproject.toml":`pypi`,"go.work":`go`,"go.mod":`go`,"Cargo.toml":`cargo`},Si=new Set([`npm`,`pypi`,`go`,`cargo`,`actions`,`docker`,`make`]),Ci=(e,t)=>typeof e==`string`?ot(e):typeof t==`function`?t():t;function wi(e,r){let i=new Map,a=new Set(e),o=r;for(;a.size;){for(let e of a){let t=n(o,e);try{v(t),i.set(e,t),a.delete(e)}catch{}}let e=t(o);if(e===o)break;o=e}return i}async function Ti(e,t){let n=await W(e,async e=>{try{return[e,await m(e,`utf8`)]}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}},{concurrency:t});return new Map(n)}function Z(e,t){t&&(e.date=t,e.age=Ne(t,{noAffix:!0}))}function Ei(e){let t=0;for(let n of Object.values(e))t+=Object.keys(n).length;return t}function Di(e){console.error(`${Ve()} ${e}`)}function Q(e,t,n,r,i){if(i===`engines`&&Ie.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let a=t===`go`?ir(e):e;for(let t of r)if(t.test(e)||t.test(a))return!1;for(let t of n)if(t.test(e)||t.test(a))return!0;return!n.size}function Oi(r){let a=new Set;if(r)for(let e of r){let r;try{r=b(e)}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}if(r.isFile())a.add(i(e));else if(r.isDirectory()){for(let t of Object.keys(xi)){let r=n(e,t),o=null;try{o=b(r)}catch{}o?.isFile()&&a.add(i(r))}try{for(let t of S(e,{withFileTypes:!0}))t.isFile()&&(zr(t.name)||Ur(t.name))&&a.add(i(n(e,t.name)))}catch{}let r=i(e).replace(/\\/g,`/`),o=fr.some(e=>r.endsWith(`/${e}/workflows`)),s=!o&&fr.some(e=>r.endsWith(`/${e}`)),c=o?[t(r)]:s?[r]:fr.map(e=>n(r,e));for(let e of c)for(let t of hr(e))a.add(t)}else throw Error(`${e} is neither a file nor directory`)}else{let e=new Set(fr),t=[...Object.keys(xi),...Ir,...Hr,...fr];for(let[n,r]of wi(t,o()))if(e.has(n))for(let e of hr(r))a.add(e);else a.add(i(r));try{for(let e of S(o(),{withFileTypes:!0})){let t=zr(e.name)&&!Ir.includes(e.name),r=Ur(e.name)&&!Hr.includes(e.name);e.isFile()&&(t||r)&&a.add(i(n(o(),e.name)))}}catch{}}for(let r of Array.from(a))e(r)===`go.work`&&a.delete(n(t(r),`go.mod`));for(let r of Array.from(a))e(r)===`pnpm-workspace.yaml`&&a.delete(n(t(r),`package.json`));return a}function $(e,t){l===`win32`&&w(e,0),ee(e,t,l===`win32`?{flag:`r+`}:void 0)}function ki(e){let t={results:{}};for(let[n,r]of Object.entries(e))for(let[e,i]of Object.entries(r)){typeof i.oldPrint==`string`&&(i.old=i.oldPrint),typeof i.newPrint==`string`&&(i.new=i.newPrint),typeof i.oldOrig==`string`&&!xn(i.oldOrig)&&(i.old=n===`go`?ar(i.oldOrig):i.oldOrig),n===`go`?i.new=ar(i.new):n===`actions`&&(i.old=K(i.old),i.new=K(i.new)),delete i.oldPrint,delete i.newPrint,delete i.oldOrig,delete i.date;let[r,a]=e.split(`\0`),o=t.results[n]??={};(o[r]??={})[a]=i}return t}let Ai=!1;async function ji(r={}){if(!Ai){let{enableDnsCache:e}=await import(`./dns-Cz6xXkw_.js`);e(),Ai=!0}let a={...r};typeof a.timeout==`number`&&(a.timeout=We(a.timeout,`timeout`));let s=a.sockets??25,c=a.timeout??0,l=Ci(r.forgeapi,`https://api.github.com`),f=Ci(r.pypiapi,`https://pypi.org`),p=Ci(r.jsrapi,`https://jsr.io`),h=Ci(r.goproxy,In),g=Ci(r.cargoapi,`https://crates.io`),_=Ci(r.dockerapi,`https://hub.docker.com`),v=Ln(),y=a.color||!a.noColor&&u.isTTY,b=e=>y?t=>d(e,String(t)):String,x=b(`magenta`),S=b(`green`),C=b(`red`),w={fetchTimeout:c||5e3,goProbeTimeout:c?Math.max(1,Math.floor(c/2)):2500,forgeApiUrl:l,pypiApiUrl:f,jsrApiUrl:p,goProxyUrl:h,cratesIoUrl:g,dockerApiUrl:_,doFetch:async(e,t)=>{a.verbose&&Di(`${x(t?.method||`GET`)} ${e}`);let n=await ut(e,t);return a.verbose&&Di(`${n.ok?S(n.status):C(n.status)} ${e}`),n},noCache:!!a.noCache},ee=Ht(a.greatest),te=Ht(a.prerelease),E=Ht(a.release),D=Ht(a.patch),ne=Ht(a.minor),re=Ht(a.allowDowngrade),O=a.modes?.length?new Set(a.modes):Si,ie=(a.overrides??[]).map(e=>({include:e.include?.length?Y(e.include):void 0,exclude:e.exclude?.length?Y(e.exclude):void 0,greatest:e.greatest,prerelease:e.prerelease,release:e.release,patch:e.patch,minor:e.minor,allowDowngrade:e.allowDowngrade,cooldownDays:e.cooldown===void 0?void 0:Ue(String(e.cooldown))})),ae=(e,t)=>e.include&&!U(t,e.include)?!1:!e.exclude||!U(t,e.exclude),oe=ie.some(e=>e.cooldownDays);O.has(`actions`)&&Et();let se=new Map;function k(e){let t=se.get(e);if(!t){let n=U(e,ee),r=U(e,te),i=U(e,E),a=U(e,D),o=U(e,ne),s=U(e,re),c;for(let t of ie)ae(t,e)&&(t.greatest!==void 0&&(n=t.greatest),t.prerelease!==void 0&&(r=t.prerelease),t.release!==void 0&&(i=t.release),t.patch!==void 0&&(a=t.patch),t.minor!==void 0&&(o=t.minor),t.allowDowngrade!==void 0&&(s=t.allowDowngrade),t.cooldownDays!==void 0&&(c=t.cooldownDays));let l=new Set(a?[`patch`]:o?[`patch`,`minor`]:[`patch`,`minor`,`major`]);t={useGreatest:n,usePre:r,useRel:i,semvers:l,allowDowngrade:s,cooldownOverride:c},se.set(e,t)}return t}let ce=Y(a.include??[]),le=Y(a.exclude??[]),ue=a.pin??{},A={},j={},M={},N=Date.now(),de=e=>{let t=a.cooldown??e;return t?Ue(String(t)):0},fe=o(),P=e=>e.replace(`${fe}/`,``).replace(`${fe}\\`,``),F=0,I=(e,t,n,r,i,a)=>{A[e][`${t}${n}${r}`]={old:i,oldOrig:a}},me=Oi(a.files?.length?new Set(a.files):!1),L=await Ti(Array.from(me).filter(t=>{if(mr(t))return O.has(`actions`)||O.has(`docker`);let n=e(t);if(zr(n))return O.has(`docker`);if(Ur(n))return O.has(`make`);let r=xi[n];return!!r&&O.has(r)}),s),he={},ge={},_e={},R=[],ve=null,ye=[],be=!1,xe=[],z=!1,Se=[],Ce=[],we=[],B={},Te={noCache:a.noCache,timeout:a.timeout||5e3};async function V(e){let t=await Gt(e,Te);return{modeConfig:t,modeInclude:t.include?.length?Y([...a.include??[],...t.include]):ce,modeExclude:t.exclude?.length?Y([...a.exclude??[],...t.exclude]):le,pin:{...t.pin,...ue}}}function Ee(e,t){return a.types?.length?a.types:t?.types?.length?t.types:e===`npm`?Fe:e===`pypi`?Le:e===`go`?a.indirect?Re:Re.filter(e=>e!==`indirect`):e===`cargo`?ze:[]}function De(e,t,n,r){A.docker??={};for(let i of n)for(let{ref:n}of Tr(e,i)){if(!Q(n.fullImage,`docker`,r.include,r.exclude,`docker`))continue;let e=`${t}${n.fullImage}`;if(A.docker[e])continue;let i=Cr(n.tag);i&&(A.docker[e]={old:i.version,oldOrig:n.tag},Ce.push({key:e,fullImage:n.fullImage,ref:n,filePin:r.pin,fileCooldownDays:r.cooldownDays}))}}async function H(e){let t=await Gt(e,Te);return{include:t.include?.length?Y([...a.include??[],...t.include]):ce,exclude:t.exclude?.length?Y([...a.exclude??[],...t.exclude]):le,pin:t.pin??{},cooldownDays:de(t.cooldown)}}let ke=new Set,Ae=new Map;for(let t of me){let n=e(t);if(n===`go.work`)ke.add(`go`);else if(n===`pnpm-workspace.yaml`)ke.add(`npm`);else if(n===`Cargo.toml`){let e=L.get(t);if(!e)continue;try{let n=T(e);Ae.set(t,n);let r=n.workspace?.members;Array.isArray(r)&&r.length&&ke.add(`cargo`)}catch{}}}for(let r of me){if(mr(r)){let e=O.has(`actions`),n=O.has(`docker`);if(!e&&!n)continue;let i=L.get(r),a=P(r),o=await H(t(r));if(he[a]={absPath:r,content:i},e){A.actions??={};let e=Array.from(i.matchAll(or),e=>sr(e[1])).filter(e=>e!==null);for(let t of e){if(!Q(t.name,`actions`,o.include,o.exclude,`actions`))continue;let e=`${a}${t.name}`;A.actions[e]||(A.actions[e]={old:t.ref},Se.push({...t,key:e,apiUrl:cr(t.host,l),filePin:o.pin,fileCooldownDays:o.cooldownDays}))}}n&&(ge[a]={absPath:r,content:i,fileType:`workflow`},De(i,a,[vr,yr,br],o));continue}let a=e(r);if(zr(a)){if(!O.has(`docker`))continue;let e=L.get(r),n=P(r),i=Rr(a)?`dockerfile`:`compose`,o=await H(t(r));ge[n]={absPath:r,content:e,fileType:i},De(e,n,[Br(a)],o);continue}if(Ur(a)){if(!O.has(`make`))continue;let e=L.get(r),n=P(r),i=await H(t(r));_e[n]={absPath:r,content:e},A.make??={};let a={projectDir:t(r),filePin:i.pin,fileCooldownDays:i.cooldownDays};for(let{installPath:t,version:r}of Jr(e)){if(!Q(t,`make`,i.include,i.exclude,`make`))continue;let e=`${n}${t}`;A.make[e]||(A.make[e]={old:K(r),oldOrig:r},we.push({kind:`go`,key:e,name:t,oldSpec:`${t}@${r}`,installPath:t,version:r,...a}))}for(let t of $r(e)){if(!Q(t.writtenImage,`make`,i.include,i.exclude,`make`))continue;let e=`${n}${t.writtenImage}`;if(A.make[e])continue;let r=Cr(t.ref.tag);if(!r)continue;let o=Zr(t.writtenImage,t.ref.tag,t.digest);A.make[e]={old:r.version,oldOrig:t.ref.tag},we.push({kind:`docker`,key:e,name:t.writtenImage,oldSpec:o,image:t,...a})}continue}let o=xi[a];if(!O.has(o))continue;if(a===`go.work`){A[o]??={};let e=t(i(r)),a=L.get(r);ve={file:r,content:a};let c=nr(a),[l,u]=await Promise.all([V(e),W(c.use,async t=>{let r=i(n(e,t,`go.mod`));try{return{usePath:t,modPath:r,content:await m(r,`utf8`)}}catch{return null}},{concurrency:s})]),{modeConfig:d,modeInclude:f,modeExclude:p,pin:h}=l,g=Ee(o,d);B[o]={modeConfig:d,projectDir:e,pin:h};for(let e of u){if(!e)continue;let{usePath:n,modPath:r,content:i}=e,a=Xn(i),s=t(r);R.push({absPath:r,content:i,projectDir:s,usePath:n});let c=n===`.`?``:`|${n}`;for(let e of g){let t=a[e]||{};for(let[n,r]of Object.entries(t))Q(n,o,f,p,e)&&I(o,e,c,n,ar(r),K(r))}}for(let[e,t]of Object.entries(c.replace))Q(e,o,f,p,`replace`)&&I(o,`replace`,``,e,ar(t),K(t));F+=Object.keys(A[o]).length;continue}if(a===`go.mod`&&R.some(e=>e.absPath===i(r))||a===`package.json`&&xe.some(e=>e.absPath===i(r)))continue;if(a===`Cargo.toml`){A[o]??={};let e=Object.keys(A[o]).length,n=L.get(r),a=Ae.get(r)??T(n),c=t(i(r)),l=wi([`Cargo.lock`],c).get(`Cargo.lock`),u=a.workspace?.members,d=Array.isArray(u)&&u.length,[f,p,h]=await Promise.all([V(c),l?m(l,`utf8`):Promise.resolve(null),d?yi(u,c,`Cargo.toml`,s):Promise.resolve([])]),{modeConfig:g,modeInclude:_,modeExclude:v,pin:y}=f,b=Ee(o,g),x=p?ui(p):new Map,S=(e,t)=>{for(let n of b){let r=Be(e,n)||{};if(!(typeof r!=`object`||Array.isArray(r))){for(let[e,i]of Object.entries(r))if(Q(e,o,_,v,n))if(typeof i==`object`&&i&&`version`in i&&!(`git`in i)&&!(`path`in i)){let r=i.version;Oe(r)&&I(o,n,t,e,pi(x,e,r)??X(r),r)}else typeof i==`string`&&Oe(i)&&I(o,n,t,e,pi(x,e,i)??X(i),i)}}};if(d){be=!0,B[o]={modeConfig:g,projectDir:c,pin:y},S(a,``),ye.push({absPath:i(r),content:n,memberPath:`.`});for(let e of h){ye.push(e);try{S(T(e.content),`|${e.memberPath}`)}catch(t){throw Error(`Error parsing ${e.absPath}: ${t.message}`)}}}else{let e=M[o]??=[],t=!e.length&&!ke.has(o),s=t?`.`:P(r);e.push({absPath:i(r),content:n,memberPath:s,projectDir:c,modeConfig:g,pin:y,modeCooldownDays:de(g.cooldown)}),t&&(B[o]={modeConfig:g,projectDir:c,pin:y}),S(a,s===`.`?``:`|${s}`)}F+=Object.keys(A[o]).length-e;continue}if(a===`pnpm-workspace.yaml`){A[o]??={};let e=t(i(r)),a=L.get(r);z=!0;let c=bi(a),l=n(e,`package.json`),[u,d,f]=await Promise.all([V(e),Ge(m(l,`utf8`)),yi(c,e,`package.json`,s)]),{modeConfig:p,modeInclude:h,modeExclude:g,pin:_}=u,v=Ee(o,p);B[o]={modeConfig:p,projectDir:e,pin:_};let y=(e,t)=>{for(let n of v){let r=e[n]||{};if(typeof r==`string`){let[e,i]=r.split(`@`);Q(e,o,h,g,n)&&I(o,n,t,e,X(i),i)}else if(typeof r==`object`&&!Array.isArray(r))for(let[e,i]of Object.entries(r))Q(e,o,h,g,n)&&(xn(i)?I(o,n,t,e,Cn(i,e).version,i):Oe(i)?I(o,n,t,e,X(i),i):Sn(i)?I(o,n,t,e,`0.0.0`,i):j[`${n}${t}${e}`]={old:i})}};if(d!==null){let e;try{e=JSON.parse(d)}catch(e){throw Error(`Error parsing ${l}: ${e.message}`)}xe.push({absPath:i(l),content:d,memberPath:`.`}),y(e,``)}for(let e of f){let t;try{t=JSON.parse(e.content)}catch(t){throw Error(`Error parsing ${e.absPath}: ${t.message}`)}xe.push(e),y(t,`|${e.memberPath}`)}F+=Object.keys(A[o]).length+Object.keys(j).length;continue}A[o]??={};let c=t(i(r)),{modeConfig:u,modeInclude:d,modeExclude:f,pin:p}=await V(c),h=Ee(o,u),g=M[o]??=[],_=!g.length&&!ke.has(o),v=_?`.`:P(r),y=v===`.`?``:`|${v}`,b=L.get(r);g.push({absPath:i(r),content:b,memberPath:v,projectDir:c,modeConfig:u,pin:p,modeCooldownDays:de(u.cooldown)});let x={};try{o===`npm`?x=JSON.parse(b):o===`pypi`?x=T(b):o===`go`&&(x=Xn(b))}catch(e){throw Error(`Error parsing ${r}: ${e.message}`)}let S=Object.keys(A[o]).length,C=Object.keys(j).length;for(let e of h){let t;if(t=o===`npm`||o===`go`?x[e]||{}:Be(x,e)||{},Array.isArray(t)&&o===`pypi`)for(let{name:n,version:r}of Pe(t))Q(n,o,d,f,e)&&I(o,e,y,n,X(r),r);else if(typeof t==`string`){let[n,r]=t.split(`@`);Q(n,o,d,f,e)&&I(o,e,y,n,X(r),r)}else for(let[n,r]of Object.entries(t))Q(n,o,d,f,e)&&(o===`npm`&&xn(r)?I(o,e,y,n,Cn(r,n).version,r):o!==`go`&&Oe(r)?I(o,e,y,n,X(r),r):o===`npm`&&Sn(r)?I(o,e,y,n,`0.0.0`,r):o===`npm`?j[`${e}${y}${n}`]={old:r}:o===`go`&&I(o,e,y,n,ar(r),K(r)))}F+=Object.keys(A[o]).length-S+(Object.keys(j).length-C),_&&(B[o]={modeConfig:u,projectDir:c,pin:p})}if(A.actions&&(F+=Object.keys(A.actions).length),A.docker&&(F+=Object.keys(A.docker).length),A.make&&(F+=Object.keys(A.make).length),F===0)return{results:{},message:`No dependencies found, nothing to do.`};let je=[],Me={registry:a.registry};for(let[e,t]of Object.entries(B)){let n=A[e]&&Object.keys(A[e]).length>0,r=e===`npm`&&Object.keys(j).length>0;if(!n&&!r)continue;let{modeConfig:i,projectDir:a,pin:o}=t,c=de(i.cooldown);je.push((async()=>{let t=new Map;for(let n of M[e]??[])n.memberPath!==`.`&&t.set(`|${n.memberPath}`,n);let n={modeConfig:i,projectDir:a,pin:o,modeCooldownDays:c},r=e=>{let r=e.slice(gi(e).length);return r&&t.get(r)||n},l=new Map,u=e=>{for(let[t,{date:n}]of Object.entries(e)){if(!n)continue;let{modeCooldownDays:i}=r(t.split(`\0`)[0]);if(!i&&!oe)continue;let[,a]=t.split(`\0`),o=k(a).cooldownOverride??i;o&&!it(n,o,N)&&delete e[t]}};if(await W(Object.keys(A[e]),async t=>{let[n,i]=t.split(`\0`),a=gi(n),{modeConfig:o,projectDir:s,pin:c,modeCooldownDays:u}=r(n),d=A[e][t],f=null;if(e===`npm`){let{oldOrig:n}=d;if(n&&xn(n))f=await wn(i,a,w);else if(n&&Sn(n))try{f=await yn(i,a,o,Me,w)}catch{delete A[e][t];return}else f=await yn(i,a,o,Me,w)}else f=e===`go`?await Qn(i,a,d.oldOrig||d.old,s,w,v):e===`cargo`?await li(i,a,w):await jn(i,a,w);if(!f)return;let[p,,m]=f;if(p.error)throw Error(p.error);let{useGreatest:h,usePre:g,useRel:_,semvers:y,allowDowngrade:b,cooldownOverride:x}=k(p.name),S=d.old,C=d.oldOrig,ee=c[i],te=x??u,T=xt(p,{usePre:g,useRel:_,useGreatest:h,semvers:y,range:S,mode:e,pinnedRange:ee,cooldownDays:te||void 0,now:te?N:void 0},{allowDowngrade:b,matchesAny:U,isGoPseudoVersion:Kn}),E=``;if([`go`,`pypi`].includes(e)&&T)E=T;else if(e===`cargo`&&T&&C)E=fi(C,T);else if(T)if(C&&Sn(C))E=String(sn()[`save-exact`])===`true`?T:`^${T}`;else if(C&&xn(C)){let e=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/.exec(C);e?E=`${e[1]}${T}`:C.startsWith(`jsr:`)&&(E=`jsr:${T}`)}else E=En(S,T,C);if(!T||T===S||C&&C===E){delete A[e][t];return}let D=``;e===`pypi`&&p.releases?.[T]?.[0]?.upload_time_iso_8601?D=p.releases[T][0].upload_time_iso_8601:e===`go`&&p.Time?D=p.Time:e===`cargo`&&p.time?.[T]&&(D=p.time[T]),d.new=E,C&&xn(C)&&(d.newPrint=T),e===`npm`?l.set(t,{name:i,promise:bn(p.name,T,o,Me,w)}):e===`pypi`?d.info=zt(p,m,p.info.name):e===`go`?d.info=rr(p.newPath||i):e===`cargo`&&(d.info=`https://crates.io/crates/${i}`),D&&Z(d,D)},{concurrency:s}),await Promise.all(Array.from(l,async([t,{name:n,promise:r}])=>{let i=await r,a=A[e][t];a&&(a.info=zt({repository:i.repository,homepage:i.homepage},null,n),i.date&&Z(a,i.date))})),e===`npm`&&Object.keys(j).length){let t=(await W(Object.entries(j),([e,t])=>kn(e,t,w),{concurrency:s})).filter(e=>e!==null);for(let n of t){let{key:t,newRange:r,user:i,repo:a,oldRef:o,newRef:s,newDate:c}=n;A[e][t]={old:j[t].old,new:r,oldPrint:Mt.test(o)?o.substring(0,7):o,newPrint:Mt.test(s)?s.substring(0,7):s,info:`https://github.com/${i}/${a}`},c&&Z(A[e][t],c)}}u(A[e])})())}Se.length&&je.push((async()=>{let e=new Map;for(let t of Se){let n=`${t.apiUrl}/${t.owner}/${t.repo}`,r=e.get(n);r||e.set(n,r={apiUrl:t.apiUrl,owner:t.owner,repo:t.repo,infos:[]}),r.infos.push(t)}await W(e.values(),async({apiUrl:e,owner:t,repo:n,infos:r})=>{let i=await Ft(e,t,n,w),a=[],o=new Map,c=new Map,l=new Map;for(let e of i){c.set(e.name,e);let t=K(e.name);pe(t)&&(a.push(t),o.has(t)||o.set(t,e.name)),e.commitSha&&l.set(e.commitSha,e.name)}let u=new Map;async function d(r){if(u.has(r))return u.get(r);let i=await lr(e,t,n,r,w);return u.set(r,i),i}async function f(e){let t=new Set;for(let n=0;n<20;n++){let n=bt({},t.size?a.filter(e=>!t.has(e)):a,e);if(!n||n===e.range)return null;let r=o.get(n);if(!r){t.add(n);continue}let i=c.get(r)?.commitSha||``;if(!e.cooldownDays)return{version:n,tag:r,commitSha:i,date:``};let s=i?await d(i):``;if(it(s,e.cooldownDays,e.now))return{version:n,tag:r,commitSha:i,date:s};t.add(n)}return null}await W(r,async({key:e,host:r,ref:i,name:a,isHash:o,filePin:s,fileCooldownDays:u})=>{let p=A.actions[e],m=`https://${r||`github.com`}/${t}/${n}`,h=ue[a]??s[a];if(o){let{usePre:t,useRel:n,cooldownOverride:r}=k(a),o=r??u,s=await f({range:`0.0.0`,semvers:new Set([`patch`,`minor`,`major`]),usePre:t,useRel:n,useGreatest:!0,pinnedRange:h,cooldownDays:o||void 0,now:o?N:void 0});if(!s){delete A.actions[e];return}let{tag:c,commitSha:d,date:g}=s;if(!d||d===i||d.startsWith(i)||i.startsWith(d)){delete A.actions[e];return}let _=l.get(i);if(!_){for(let[e,t]of l)if(e.startsWith(i)){_=t;break}}p.old=i,p.new=d.substring(0,i.length),p.oldPrint=_||i.substring(0,7),p.newPrint=c,p.info=m,g&&Z(p,g)}else{let t=J(K(i));if(!t){delete A.actions[e];return}let{usePre:n,useRel:r,semvers:o,cooldownOverride:s}=k(a),l=s??u,g=await f({range:t,semvers:o,usePre:n,useRel:r,useGreatest:!0,pinnedRange:h,cooldownDays:l||void 0,now:l?N:void 0});if(!g){delete A.actions[e];return}let{tag:_,commitSha:v,date:y}=g,b=ur(_,i);if(b===i){delete A.actions[e];return}if(p.new=c.has(b)?b:_,p.info=m,v&&y)Z(p,y);else if(v){let e=await d(v);e&&Z(p,e)}}},{concurrency:s})},{concurrency:s}),Object.keys(A.actions).length||delete A.actions})()),Ce.length&&je.push((async()=>{let e=new Map;for(let t of Ce){let n=e.get(t.fullImage);n||e.set(t.fullImage,n=[]),n.push(t)}await W(e.entries(),async([e,t])=>{let n;try{let[t]=await Ar(e,`docker`,w);n=t}catch{for(let e of t)delete A.docker[e.key];return}for(let e of t){let t=A.docker[e.key],r=t.oldOrig||t.old,{semvers:i,cooldownOverride:a}=k(e.fullImage),o=ue[e.fullImage]??e.filePin[e.fullImage],s=a??e.fileCooldownDays,c=jr(n.tags,r,i,s||void 0,s?N:void 0,o);if(!c){delete A.docker[e.key];continue}t.new=c.newTag,t.info=Vr(e.ref),Z(t,c.date)}},{concurrency:s}),Object.keys(A.docker).length||delete A.docker})()),we.length&&je.push((async()=>{await W(we,async e=>{let{useGreatest:t,usePre:n,useRel:r,semvers:i,allowDowngrade:a,cooldownOverride:o}=k(e.name),s=ue[e.name]??e.filePin[e.name],c=o??e.fileCooldownDays,l={semvers:i,useGreatest:t,usePre:n,useRel:r,allowDowngrade:a,pinnedRange:s,cooldownDays:c||void 0,now:c?N:void 0},u=A.make[e.key],d;if(e.kind===`go`){let t=await Ge(ii(e.installPath,e.version,e.projectDir,w,v,l));if(!t){delete A.make[e.key];return}e.newSpec=`${t.newInstallPath}@${t.newVersion}`,u.new=t.newVersion,d=t}else{let t=await Ge(ai(e.image,w,l));if(!t){delete A.make[e.key];return}e.newSpec=Zr(e.image.writtenImage,t.newTag,e.image.digest?t.newDigest:null),u.new=t.newTag,d=t}u.info=d.info,d.date&&Z(u,d.date)},{concurrency:s}),Object.keys(A.make).length||delete A.make})());try{await Promise.all(je)}finally{await nt()}if(!Ei(A))return{results:{},message:`All dependencies are up to date.`};if(a.update){let e=(e,t,n)=>{for(let r of t){let t=_i(A[e],r.memberPath);Object.keys(t).length&&$(r.absPath,n(r.content,t))}},t=new Map;if(A.actions)for(let[e,n]of Object.entries(A.actions)){let[r,i]=e.split(`\0`),a=t.get(r);a||t.set(r,a=[]),a.push({name:i,oldRef:n.old,newRef:n.new})}let n=new Map;if(A.docker)for(let[e,t]of Object.entries(A.docker)){let[r]=e.split(`\0`),i=n.get(r);i||n.set(r,i={}),i[e]=t}let r=new Map;if(A.make)for(let e of we){if(!e.newSpec||!A.make[e.key])continue;let t=e.key.split(`\0`)[0],n=r.get(t);n||r.set(t,n=[]),n.push({oldSpec:e.oldSpec,newSpec:e.newSpec})}let i=Object.keys(A).sort((e,t)=>(e===`docker`)-+(t===`docker`));for(let a of i)if(Object.keys(A[a]).length){if(a===`actions`){for(let[e,n]of t){let{absPath:t,content:r}=he[e]||{};if(!t)continue;let i=dr(r,n);$(t,i),ge[e]&&(ge[e].content=i)}continue}if(a===`docker`){for(let[e,t]of n){let n=ge[e];if(!n)continue;let{absPath:r,content:i,fileType:a}=n;$(r,(a===`dockerfile`?Nr:a===`compose`?Pr:Fr)(i,t))}continue}if(a===`make`){for(let[e,t]of r){let n=_e[e];n&&$(n.absPath,oi(n.content,t))}continue}if(a===`go`){if(ve){for(let e of R){let t=_i(A[a],e.usePath);if(!Object.keys(t).length)continue;let[n,r]=er(e.content,t);n!==e.content&&$(e.absPath,n),tr(e.projectDir,r,$)}let e={};for(let[t,n]of Object.entries(A[a]))t.split(`\0`)[0]===`replace`&&(e[t]=n);if(Object.keys(e).length){let[t]=er(ve.content,e);t!==ve.content&&$(ve.file,t)}}for(let e of M.go??[]){let t=_i(A[a],e.memberPath);if(!Object.keys(t).length)continue;let[n,r]=er(e.content,t);$(e.absPath,n),tr(e.projectDir,r,$)}}else a===`cargo`?(be&&e(a,ye,hi),e(a,M.cargo??[],hi)):a===`npm`?(z&&e(a,xe,Tn),e(a,M.npm??[],Tn)):e(a,M[a]??[],Mn)}}return ki(A)}const Mi=/[A-Za-z_$]/,Ni=/[A-Za-z0-9_$]/;function Pi(e){let t=``,n=0,r=e.length,i=-1;function a(t){for(;t<r;){if(/\s/.test(e[t])){t++;continue}if(e[t]===`/`&&e[t+1]===`/`){for(t+=2;t<r&&e[t]!==`
6
+ `;)t++;continue}if(e[t]===`/`&&e[t+1]===`*`){for(t+=2;t<r&&(e[t]!==`*`||e[t+1]!==`/`);)t++;t+=2;continue}break}return t}for(;n<r;){let o=e[n];if(o===`"`){for(i=-1,t+=o,n++;n<r;){let i=e[n];if(t+=i,n++,i===`\\`&&n<r){t+=e[n],n++;continue}if(i===`"`)break}continue}if(o===`'`){for(i=-1,t+=`"`,n++;n<r;){let i=e[n];if(i===`\\`){let a=e[n+1];if(a===`'`){t+=`'`,n+=2;continue}if(a===`
7
+ `){n+=2;continue}t+=i,n+1<r?(t+=a,n+=2):n++;continue}if(i===`"`){t+=`\\"`,n++;continue}if(i===`'`){t+=`"`,n++;break}t+=i,n++}continue}if(o===`/`&&n+1<r&&e[n+1]===`/`){for(n+=2;n<r&&e[n]!==`
8
+ `;)n++;continue}if(o===`/`&&n+1<r&&e[n+1]===`*`){for(n+=2;n<r&&(e[n]!==`*`||e[n+1]!==`/`);)n++;n+=2;continue}if(o===`,`){i=t.length,t+=o,n++;continue}if(o===`}`||o===`]`){i>=0&&(t=t.slice(0,i)+t.slice(i+1)),i=-1,t+=o,n++;continue}if(Mi.test(o)){i=-1;let o=``;for(;n<r&&Ni.test(e[n]);)o+=e[n],n++;t+=e[a(n)]===`:`?JSON.stringify(o):o;continue}/\s/.test(o)||(i=-1),t+=o,n++}return JSON.parse(t)}export{qe as a,st as c,Ot as i,Qe as l,ji as n,Ke as o,Pi as r,tt as s,Oe as t};
@@ -0,0 +1 @@
1
+ import{c as e,i as t}from"./shared-Ch5JsD6s.js";export{e as getFetchOpts,t as getForgeTokens};
Binary file