metascope 0.8.3 → 0.8.4

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 (80) hide show
  1. package/dist/bin/cli.js +57 -59
  2. package/dist/bin/dns-Cz6xXkw_.js +1 -0
  3. package/dist/bin/{jiti-Bqwg645p.js → jiti-DDHyYNLW.js} +5 -5
  4. package/dist/bin/renovate-CpDMbQZd.js +1 -0
  5. package/dist/bin/rolldown-runtime-DaDcL9Zw.js +1 -0
  6. package/dist/bin/shared-Dix5HPlG.js +6 -0
  7. package/dist/bin/web-tree-sitter.wasm +0 -0
  8. package/dist/lib/file-matching.js +15 -10
  9. package/dist/lib/package.js +1 -1
  10. package/dist/lib/parsers/gemspec-parser.js +10 -7
  11. package/dist/lib/parsers/makefile-config-parser.js +1 -1
  12. package/dist/lib/parsers/rfc822-header-parser.js +1 -1
  13. package/dist/lib/parsers/setup-py-parser.js +1 -1
  14. package/dist/lib/sources/arduino-library-properties.d.ts +1 -1
  15. package/dist/lib/sources/arduino-library-properties.js +3 -3
  16. package/dist/lib/sources/cinder-cinderblock-xml.d.ts +1 -1
  17. package/dist/lib/sources/cinder-cinderblock-xml.js +1 -1
  18. package/dist/lib/sources/codemeta-json.d.ts +1 -1
  19. package/dist/lib/sources/codemeta-json.js +1 -1
  20. package/dist/lib/sources/file-stats.d.ts +1 -1
  21. package/dist/lib/sources/git-stats.d.ts +1 -1
  22. package/dist/lib/sources/github-actions.d.ts +1 -1
  23. package/dist/lib/sources/github.d.ts +1 -1
  24. package/dist/lib/sources/go-go-mod.d.ts +1 -1
  25. package/dist/lib/sources/go-go-mod.js +1 -1
  26. package/dist/lib/sources/go-goreleaser-yaml.d.ts +1 -1
  27. package/dist/lib/sources/go-goreleaser-yaml.js +1 -1
  28. package/dist/lib/sources/java-pom-xml.d.ts +1 -1
  29. package/dist/lib/sources/java-pom-xml.js +1 -1
  30. package/dist/lib/sources/license-file.d.ts +1 -1
  31. package/dist/lib/sources/metadata-file.d.ts +1 -1
  32. package/dist/lib/sources/metadata-file.js +1 -1
  33. package/dist/lib/sources/metascope.d.ts +1 -1
  34. package/dist/lib/sources/node-npm-registry.d.ts +1 -1
  35. package/dist/lib/sources/node-package-json.js +1 -1
  36. package/dist/lib/sources/obsidian-plugin-manifest-json.d.ts +1 -1
  37. package/dist/lib/sources/obsidian-plugin-registry.d.ts +1 -1
  38. package/dist/lib/sources/openframeworks-addon-config-mk.d.ts +1 -1
  39. package/dist/lib/sources/openframeworks-addon-config-mk.js +1 -1
  40. package/dist/lib/sources/openframeworks-install-xml.d.ts +1 -1
  41. package/dist/lib/sources/openframeworks-install-xml.js +1 -1
  42. package/dist/lib/sources/processing-library-properties.d.ts +1 -1
  43. package/dist/lib/sources/processing-library-properties.js +3 -3
  44. package/dist/lib/sources/processing-sketch-properties.d.ts +1 -1
  45. package/dist/lib/sources/processing-sketch-properties.js +1 -1
  46. package/dist/lib/sources/publiccode-yaml.d.ts +1 -1
  47. package/dist/lib/sources/publiccode-yaml.js +1 -1
  48. package/dist/lib/sources/python-pkg-info.d.ts +1 -1
  49. package/dist/lib/sources/python-pkg-info.js +1 -1
  50. package/dist/lib/sources/python-pypi-registry.d.ts +1 -1
  51. package/dist/lib/sources/python-pyproject-toml.js +1 -1
  52. package/dist/lib/sources/python-setup-cfg.d.ts +1 -1
  53. package/dist/lib/sources/python-setup-cfg.js +2 -2
  54. package/dist/lib/sources/python-setup-py.d.ts +1 -1
  55. package/dist/lib/sources/python-setup-py.js +1 -1
  56. package/dist/lib/sources/readme-file.d.ts +1 -1
  57. package/dist/lib/sources/readme-file.js +1 -1
  58. package/dist/lib/sources/ruby-gemspec.d.ts +1 -1
  59. package/dist/lib/sources/ruby-gemspec.js +1 -1
  60. package/dist/lib/sources/rust-cargo-toml.d.ts +1 -1
  61. package/dist/lib/sources/rust-cargo-toml.js +1 -1
  62. package/dist/lib/sources/xcode-info-plist.d.ts +1 -1
  63. package/dist/lib/sources/xcode-info-plist.js +1 -1
  64. package/dist/lib/sources/xcode-project-pbxproj.d.ts +1 -1
  65. package/dist/lib/sources/xcode-project-pbxproj.js +1 -1
  66. package/dist/lib/templates/codemeta-json.d.ts +1 -1
  67. package/dist/lib/templates/codemeta.d.ts +1 -1
  68. package/dist/lib/templates/frontmatter.d.ts +1 -1
  69. package/dist/lib/templates/metadata.d.ts +1 -1
  70. package/dist/lib/templates/project.d.ts +1 -1
  71. package/dist/lib/utilities/codemeta-helpers.d.ts +1 -1
  72. package/dist/lib/utilities/license-identification.js +1 -1
  73. package/dist/lib/utilities/template-helpers.d.ts +1 -1
  74. package/dist/lib/utilities/template-helpers.js +2 -2
  75. package/dist/lib/utilities/tree-sitter-wasm.js +1 -1
  76. package/package.json +11 -11
  77. package/dist/bin/chunk-BTyA9uPd.js +0 -1
  78. package/dist/bin/dns-CMo4lMFT.js +0 -1
  79. package/dist/bin/renovate-RGZhd1au.js +0 -1
  80. package/dist/bin/shared-DovHaiUj.js +0 -4
@@ -0,0 +1 @@
1
+ import{a as e,i as t,n,r}from"./shared-Dix5HPlG.js";import{join as i}from"node:path";import{readFile as a}from"node:fs/promises";const o=[`renovate.json`,`renovate.json5`,...[`.github`,`.gitea`,`.forgejo`,`.gitlab`].flatMap(e=>[`${e}/renovate.json`,`${e}/renovate.json5`]),`.renovaterc`,`.renovaterc.json`,`.renovaterc.json5`],s={y:365,year:365,years:365,mo:30,month:30,months:30,w:7,week:7,weeks:7,d:1,day:1,days:1,h:1/24,hour:1/24,hours:1/24,min:1/1440,minute:1/1440,minutes:1/1440,s:1/86400,second:1/86400,seconds:1/86400};function c(e){let t=0,n=!1,r=/(\d+(?:\.\d+)?)\s*([a-z]+)/gi,i;for(;(i=r.exec(e))!==null;){let e=s[i[2].toLowerCase()];if(e===void 0)return;t+=Number(i[1])*e,n=!0}return n?t:void 0}function l(e){return!Array.isArray(e.matchPackageNames)||!e.matchPackageNames.length?!1:Object.keys(e).every(e=>!e.startsWith(`match`)||e===`matchPackageNames`)}async function u(e){for(let t of o){let n=i(e,...t.split(`/`));try{return{path:n,text:await a(n,`utf8`)}}catch{}}try{let t=await a(i(e,`package.json`),`utf8`),n=JSON.parse(t);if(n&&typeof n==`object`&&n.renovate&&typeof n.renovate==`object`)return{path:`package.json`,text:JSON.stringify(n.renovate)}}catch{}}function d(e){let t=/^\/(.+)\/([a-z]*)$/.exec(e);if(!t)return e;try{return new RegExp(t[1],t[2])}catch{return e}}function f(e){return/[*?[\]{}!()|+]/.test(e)}function p(t,n){let r={};if(n.cooldown&&typeof t.minimumReleaseAge==`string`){let e=c(t.minimumReleaseAge);e!==void 0&&e>0&&(r.cooldown=e)}let i=[],a={};if(Array.isArray(t.ignoreDeps))for(let e of t.ignoreDeps)typeof e==`string`&&e&&i.push(e);if(Array.isArray(t.packageRules))for(let n of t.packageRules){if(!n||typeof n!=`object`||!l(n))continue;let t=n.matchPackageNames.filter(e=>typeof e==`string`&&!!e);if(n.enabled===!1)for(let e of t)i.push(d(e));if(typeof n.allowedVersions==`string`&&e(n.allowedVersions))for(let e of t)!f(e)&&typeof d(e)==`string`&&(a[e]=n.allowedVersions)}return i.length&&(r.exclude=i),Object.keys(a).length&&(r.pin=a),r}const m=r(e=>t(e,async e=>{let t=await u(e);if(!t)return null;let r;try{r=n(t.text)}catch(e){throw Error(`Unable to parse renovate config ${t.path}: ${e.message}`)}return!r||typeof r!=`object`?null:{parsed:r,path:t.path}}));async function h(e,t={}){let n=await m(e);return n?p(n.parsed,t):{}}export{h as loadRenovateConfig};
@@ -0,0 +1 @@
1
+ import{createRequire as e}from"node:module";var t=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,s=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},c=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),l=(e,t)=>{let r={};for(var i in e)n(r,i,{get:e[i],enumerable:!0});return t||n(r,Symbol.toStringTag,{value:`Module`}),r},u=(e,t,a,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=i(t),l=0,u=c.length,d;l<u;l++)d=c[l],!o.call(e,d)&&d!==a&&n(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(s=r(t,d))||s.enumerable});return e},d=(e,r,i)=>(i=e==null?{}:t(a(e)),u(r||!e||!e.__esModule?n(i,`default`,{value:e,enumerable:!0}):i,e)),f=e=>o.call(e,`module.exports`)?e[`module.exports`]:u(n({},`__esModule`,{value:!0}),e),p=e(import.meta.url);export{f as a,p as i,s as n,d as o,l as r,c as t};
@@ -0,0 +1,6 @@
1
+ import{accessSync as e,globSync as t,lstatSync as n,readFileSync as r,readdirSync as i,statSync as a,truncateSync as o,writeFileSync as s}from"node:fs";import{basename as c,dirname as l,join as u,relative as d,resolve as f}from"node:path";import{homedir as p}from"node:os";import{cwd as m,env as h,pid as g,platform as _,stderr as v}from"node:process";import{styleText as y}from"node:util";import{access as b,mkdir as x,readFile as S,rename as C,writeFile as w}from"node:fs/promises";import{pathToFileURL as ee}from"node:url";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=ce(i).trim();if(!a)continue;let o=/^\[\[([^\]]+)\]\]$/.exec(a);if(o){let e=t,r=se(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=de(t,se(s[1]));continue}let c=le(a,`=`);if(c<0)continue;let l=a.slice(0,c).trim(),u=a.slice(c+1).trim(),d=se(l),f=de(n,d.slice(0,-1)),p=d[d.length-1],m=ne(u);if(u.startsWith(`[`)&&!ae(u)){let t=u,n=e+1;for(;n<r.length&&(t+=`\n${ce(r[n])}`,!ae(t));n++);e=n,f[p]=re(t)}else if(u.startsWith(`{`)&&!ae(u)){let t=u,n=e+1;for(;n<r.length&&(t+=`\n${ce(r[n])}`,!ae(t));n++);e=n,f[p]=D(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]=re(m+t+m)}else f[p]=re(u)}return t}function E(e,t){let n=e.trim();if(n)for(let e of oe(n)){let n=e.trim();n&&t.push(re(n))}}function ne(e){let t=e.slice(0,3);return t!==`"""`&&t!==`'''`||e.includes(t,3)?``:t}function re(e){if(e.startsWith(`[`)){let t=[],n=ue(e,`]`);return E(e.slice(1,n<0?e.length:n),t),t}return e.startsWith(`{`)?D(e):e.startsWith(`"""`)?k(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?k(e.slice(1,e.lastIndexOf(`"`))):e.startsWith(`'`)?e.slice(1,e.lastIndexOf(`'`)):ie(e)}function ie(e){return e===`true`?!0:e===`false`?!1:/^[+-]?\d+(\.\d+)?$/.test(e)?Number(e):e}function D(e){let t={},n=e.slice(1,e.lastIndexOf(`}`)).trim();if(!n)return t;for(let e of oe(n)){let n=e.indexOf(`=`);if(n<0)continue;let r=e.slice(0,n).trim().replace(/^["']|["']$/g,``);t[r]=re(e.slice(n+1).trim())}return t}function ae(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 oe(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 se(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 ce(e){let t=le(e,`#`);return t<0?e:e.slice(0,t)}function*O(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 le(e,t){return O(e,t).next().value??-1}function ue(e,t){let n=-1;for(let r of O(e,t))n=r;return n}function de(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 k(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 A=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,j=new Map;function M(e){if(typeof e!=`string`)return null;let t=j.get(e);if(t!==void 0)return t;let n=A.exec(e.trim());if(!n)return j.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 j.set(e,s),s}function fe(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 pe(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function N(e,t){let n=pe(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=fe(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function me(e){return M(e)?.version??null}function P(e){return M(e)}const F=new Map,he=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function I(e){if(typeof e!=`string`)return null;let t=F.get(e);if(t!==void 0)return t;let n=he.exec(e);if(!n)return F.set(e,null),null;let r={version:`${n[1]}.${n[2]||`0`}.${n[3]||`0`}`};return F.set(e,r),r}function L(e,t){let n=M(e),r=M(t);return!n||!r?null:ge(n,r)}function ge(e,t){if(e.version===t.version)return null;let n=N(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(pe(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=M(e),r=M(t);return n&&r?N(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=M(`${n}.${t[3]??`0`}.${t[4]??`0`}${t[5]||``}`);return r?{op:t[1]||`=`,semver:r}:null}function xe(e,t){let n=N(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=M(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)}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 We(e){try{return await e}catch{return null}}const G=e=>RegExp.escape?RegExp.escape(e):e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);async function Ge(e,t){let n=e;for(;;){let e=await t(n);if(e)return e;let r=l(n);if(r===n)return null;n=r}}function Ke(e){let t=new Map;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const qe=u(_===`win32`?h.LOCALAPPDATA||u(p(),`AppData`,`Local`):h.XDG_CACHE_HOME||u(p(),`.cache`),`updates`);let Je=null;const Ye=new Map;function Xe(e){let t=Ye.get(e);return t===void 0&&(t=te(`sha256`).update(e).digest(`hex`).substring(0,16),Ye.set(e,t)),t}async function Ze(e){try{let t=await S(u(qe,`${Xe(e)}.cache`),`utf8`),n=t.indexOf(`
5
+ `);if(n===-1)return null;let r=t.substring(0,n),i=t.substring(n+1);return r&&i?{etag:r,body:i}:null}catch{return null}}const Qe=new Set;let $e=0;function et(e,t,n){let r=(async()=>{try{await(Je??=x(qe,{recursive:!0}))}catch{Je=null;return}try{let r=u(qe,`${Xe(e)}.cache`),i=`${r}.${g}-${$e++}.tmp`;await w(i,`${t}\n${n}`),await C(i,r)}catch{}})();Qe.add(r),(async()=>{await r,Qe.delete(r)})()}async function tt(){for(;Qe.size;)await Promise.all(Qe)}var nt=`17.18.2`;function rt(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 it=nt,K=e=>e[0]===`v`?e.substring(1):e,at=e=>e.endsWith(`/`)?e.slice(0,-1):e;function ot(e,t){return{headers:{"user-agent":`updates/${it}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}const st=new Set([`ECONNRESET`,`ECONNREFUSED`,`ETIMEDOUT`,`EAI_AGAIN`,`EPIPE`,`UND_ERR_SOCKET`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`]);function ct(e){if(e?.name===`TimeoutError`||e?.name===`AbortError`)return!0;let t=e?.code??e?.cause?.code;return typeof t==`string`&&st.has(t)}async function lt(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=ct(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 ut(e){return typeof e.text==`function`?e.text():JSON.stringify(await e.json())}function dt(e,t){if(!t||e.length<16384)return e;try{return JSON.stringify(t(JSON.parse(e)))}catch{return e}}async function ft(e,t,n={},r){let i=t.noCache?null:await Ze(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=dt(await ut(s),r),l=s.headers?.get?.(`etag`);return l&&!t.noCache&&et(e,l,c),{body:c,res:s}}async function pt(e,t,n={},r){if(!t.noCache){let t=await Ze(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=dt(await ut(i),r);return t.noCache||et(e,`immutable`,a),{body:a,res:i}}function mt(e){return(P(e)?.prerelease.length??0)>0}function ht(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}const gt=new WeakMap;function _t(e){let t=gt.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`),gt.set(e,n),n}function vt(e,t,{useRel:n,allowDowngrade:r,name:i,matchesAny:a}){let o=J(e),s=J(t);if(!o||!s)return!0;let c=ht(e)||mt(e),l=mt(t);return c&&!l?ve(s,o)||n:!l&&ye(s,o)?a(i,r):!0}function J(e){return I(e)?.version??``}function yt(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=ht(n)||i,p=f?_t(r):r,m=e?.time,h=!!m,g=o||!h,_=!!(c&&l),v=0,y=!1,b=d,x=P(d);for(let e of t){let t=P(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,!rt(r,c,l)))continue;let i=ge(x,t);if(!(!i||!p.has(i)))if(g)((y?N(t,x)>0:pe(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 bt(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||ht(n),p=e=>mt(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=L(t,g);if(n&&o.has(n)&&vt(h,e.new,m)&&rt(e.Time,c,l)&&(!s||H(g,s)))return e.new}let _=J(e.sameMajorNew);if(_&&!f(e.sameMajorNew)&&!p(e.sameMajorNew)){let n=L(t,_);if(n&&o.has(n)&&vt(h,e.sameMajorNew,m)&&rt(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=L(t,n);if(r&&o.has(r)&&vt(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=yt(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=mt(f)):(r=e[`dist-tags`].latest,p=mt(r));let m=J(n),g=ht(n),_=mt(h),v={useRel:i,allowDowngrade:u,name:e.name,matchesAny:d};if(!i&&a||g&&_)return h;if(g&&!_)return vt(n,h,v)?h:null;let y=L(m,r);return y&&y!==`prerelease`&&!o.has(y.replace(/^pre/,``))||i&&p?h:ye(r,m)&&!p?vt(n,r,v)?r:R(h,m)?h:null:!g&&p&&!a||s&&!H(r,s)||c&&l&&!rt(t===`pypi`?e.releases?.[f||r]?.[0]?.upload_time_iso_8601:e.time?.[r],c,l)?h:f||r}}const xt=new Map;if(h.UPDATES_FORGE_TOKENS)for(let e of h.UPDATES_FORGE_TOKENS.split(`,`)){let t=e.indexOf(`:`);t>0&&xt.set(e.substring(0,t),e.substring(t+1))}const St=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`];function Ct(){return Array.from(new Set(St.map(e=>h[e]).filter(Boolean)))}let wt;function Tt(){let e=Ct();return e.length?Promise.resolve(e):wt??=(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 Et=new Map;async function Dt(e,t){if(!e)return[];let n=xt.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?Tt():[]}async function Ot(e,t,n){let r;try{r=new URL(e).hostname}catch{r=``}let i=await Dt(r,t.forgeApiUrl),a=e=>{let t=ot(`Bearer`,e);return n&&(t.headers={...t.headers,...n}),t};if(!i.length)return q(t,e,a());let o=r?Et.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&&Et.set(r,n),i}return q(t,e,a())}function kt(e,t){let n=K(t);if(!me(n))return null;let r=``,i=``;for(let t of e){let e=K(t);me(e)&&(!r||R(e,i))&&(r=t,i=e)}return r&&R(i,n)?r:null}function At(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 jt=/^[0-9a-f]{7,}$/i;function Mt(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function Nt(e,t){let n=t.noCache?null:await Ze(e),r=await Ot(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=Mt(await r.json()),a=r.headers.get(`link`)||``,o=r.headers.get(`etag`);return o&&!t.noCache&&et(e,o,JSON.stringify({link:a,tags:i})),{tags:i,link:a}}async function Pt(e,t,n,r){let i=r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`;try{let e=await Nt(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)=>Nt(i(t+2),r)));for(let e of o)e&&t.push(...e.tags);return t}catch{return[]}}function Ft(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 It(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 Lt(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}function Rt({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=At(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a+=`/${Lt(a)}/${e.directory}`)),a||t||``)}function zt(e,t){return RegExp(`^${G(e).replaceAll(`\\*`,`.*`)}$`,t?`i`:``)}function Bt(e,t,n){if(t&&typeof e==`string`)return/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):zt(e,n);{let t=e instanceof RegExp?e:zt(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=>Bt(e,!1,!0)))}function Vt(e){return typeof e==`boolean`?e:!Array.isArray(e)||!e.length?!1:Y(e)}async function Ht(e){let t=await Promise.all([`js`,`ts`,`mjs`,`mts`].map(async t=>{let n=`updates.config.${t}`,r=u(e,n);try{await b(r)}catch{return null}try{return{configDir:e,filename:n,default:(await import(ee(r).href)).default??{}}}catch(e){return Error(`Unable to parse config file ${n}: ${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 Ut=Ke(e=>Ge(e,Ht));async function Wt(e){let t=await Ut(e),n=t?.default??{},{loadRenovateConfig:r}=await import(`./renovate-CpDMbQZd.js`);return{...await r(t?.configDir??e,n.inherit?.renovate),...n}}function Gt(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 Kt(e){try{return Gt(r(e,`utf-8`))}catch{return}}function qt(e){let t=m();for(;;){let n=u(t,e);try{if(a(n).isFile())return n}catch{}let r=l(t);if(r===t)break;t=r}}function Jt(e){let t={},n=e.toLowerCase();for(let[r,i]of Object.entries(h)){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 Yt(e,t={}){let n=_===`win32`,r=n?h.USERPROFILE:h.HOME,i=[{...t}],a=[];function o(e){if(!e||a.includes(e))return;let t=Kt(e);t&&(i.push(t),a.push(e))}n||(o(u(`/etc`,e,`config`)),o(u(`/etc`,`${e}rc`))),r&&(o(u(r,`.config`,e,`config`)),o(u(r,`.config`,e)),o(u(r,`.${e}`,`config`)),o(u(r,`.${e}rc`))),o(qt(`.${e}rc`));let s=Jt(`${e}_`);return s.config&&o(s.config),Object.assign({},...i,s,a.length?{configs:a,config:a[a.length-1]}:void 0)}const Xt=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,Zt=/^([^/]+)\/([^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,Qt=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,$t=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,en=/(@[^/]+\/)?([^/]+)/g;function tn(e){let t=e.match(en);return t?t[t.length-1]:e}const nn=`https://registry.npmjs.org`;let rn=null;const an=new Map;function on(){return rn??=Yt(`npm`,{registry:nn})}function sn(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,t)=>h[t]||``)}function cn(e,t){let n=n=>t[`${e}:${n}`]||t[`${e}/:${n}`],r=n(`_authToken`);if(r)return{token:sn(r),type:`Bearer`};let i=n(`username`),a=n(`_password`);if(i&&a){let e=Buffer.from(sn(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:sn(o),type:`Basic`}}function ln(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=cn(`//${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:sn(i),type:`Basic`}}function un(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function dn(e,t){rn||=on();let n=e.startsWith(`@`)?e.split(`/`)[0]:``,r=`${n}:${t}`,i=an.get(r);if(i)return i;let a=()=>({auth:ln(t,rn),registry:t}),o;if(!e.startsWith(`@`))o=a();else{let e=at(un(n,rn));if(e!==t)try{let t=ln(e,rn);o=t?.token?{auth:t,registry:e}:a()}catch{o=a()}else o=a()}return an.set(r,o),o}function fn(e,t,n){rn||=on();let r=at((typeof n.registry==`string`?n.registry:!1)||t.registry||rn.registry||nn);return{...dn(e,r),originalRegistry:r}}function pn(e,t,n){let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r}const mn=new Map,hn=new Map,gn=new Map;function _n(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 vn(e,t,n,r,i){let{auth:a,registry:o}=fn(e,n,r),s=pn(o,t===`resolutions`?tn(e):e),c=mn.get(s);if(!c){let t=ot(a?.type,a?.token);t.headers={...t.headers,accept:`application/vnd.npm.install-v1+json`},c=(async()=>{try{let n=await ft(s,i,t,_n);return`body`in n||Ft(n.res,s,e,o),JSON.parse(n.body)}catch(e){throw mn.delete(s),e}})(),mn.set(s,c)}return[await c,t,o,e]}async function yn(e,t,n,r,i){let{auth:a,registry:o}=fn(e,n,r),s=pn(o,e,t),c=hn.get(s);if(c)return c;let l=(async()=>{try{let n=ot(a?.type,a?.token),r=await pt(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=pn(o,e),a=gn.get(r);a||(a=(async()=>{try{let e=await q(i,r,n);return e?.ok?await e.json():null}catch{return gn.delete(r),null}})(),gn.set(r,a)),l=(await a)?.time?.[t]||``}return{repository:c.repository,homepage:c.homepage,date:l}}catch{return{}}})();return hn.set(s,l),l}function bn(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function xn(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function Sn(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 Cn(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 ft(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]}Ft(s.res,o,e,`JSR`)}function wn(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 Tn(e,t,n){let r=e.replace($t,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(Qt);return t?.length===1?e.replace(Qt,J(t[0])):e}async function En(e,t,n){let r=`${n.forgeApiUrl}/repos/${e}/${t}/commits`;try{let e=n.noCache?null:await Ze(r),t=await Ot(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&&et(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 Dn(e,t,n){return(await Pt(n.forgeApiUrl,e,t,n)).map(e=>e.name)}async function On(e,t,n){let r=t.old.replace(Xt,``),[,i,a,o]=Zt.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(jt.test(o)){let{hash:t,commit:r}=await En(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=kt(await Dn(i,a,n),o);if(t)return{key:e,newRange:s(t),user:i,repo:a,oldRef:o,newRef:t}}return null}function kn(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 An(e,t,n){let r=`${n.pypiApiUrl}/pypi/${e}/json`,i=await ft(r,n,{headers:{"accept-encoding":`gzip, deflate, br`}},kn);if(`body`in i)return[JSON.parse(i.body),t,null,e];Ft(i.res,r,e,n.pypiApiUrl)}function jn(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 Mn;async function Nn(){let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)}function Pn(){return Mn??=Nn()}function Fn(){let e=h.GOPROXY||`https://proxy.golang.org,direct`;for(let t of e.split(/[,|]/)){let e=t.trim();if(e&&e!==`direct`&&e!==`off`)return at(e)}return`https://proxy.golang.org`}function In(){return(h.GONOPROXY||h.GOPRIVATE||``).split(`,`).map(e=>e.trim()).filter(Boolean)}function Ln(e,t){return t.some(t=>e===t||e.startsWith(`${t}/`))}function Rn(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}const zn=/\/v(\d+)$/;function Bn(e){let t=zn.exec(e);return t?Number.parseInt(t[1]):1}function Vn(e,t){let n=e.replace(zn,``);return t<=1?n:`${n}/v${t}`}function Hn(e,t){if(t.includes(`+incompatible`))return e;let n=Number.parseInt(K(t).split(`.`)[0]);return Number.isNaN(n)||n<=1||n===Bn(e)?e:Vn(e,n)}function Un(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 Wn(e,t,n){return t===`indirect`||e.startsWith(`golang.org/x/`)||Gn(n)}function Gn(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function Kn(e,t,n){return[{name:e,old:t,new:t},n,null,e]}async function qn(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 Jn(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 Yn(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=Un(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 Xn(e,t,n,r,i){let a=Bn(e),o=async(e,t)=>{try{let{stdout:n}=await(await Pn())(`go`,[`list`,`-m`,`-json`,`${e}@latest`],{timeout:t,cwd:r,env:h}),i=JSON.parse(n);return{Version:i.Version,Time:i.Time||``,path:e}}catch{return null}},s=Wn(e,t,n),[c,l]=await Promise.all([o(e,i.fetchTimeout),s?null:o(Vn(e,a+1),i.goProbeTimeout)]);return c?Jn(e,t,n,await qn(a,l,t=>o(Vn(e,t),i.goProbeTimeout)),c.Version,c.Time):Kn(e,n,t)}async function Zn(e,t,n,r,i,a){if(Ln(e,a))return Xn(e,t,n,r,i);let o=Rn(e),s=Bn(e),c=async t=>{let n=Vn(e,t);try{let e=await i.doFetch(`${i.goProxyUrl}/${Rn(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=Wn(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 Kn(e,n,t);let f,p;try{let e=await u.json();f=e.Version,p=e.Time}catch{return Kn(e,n,t)}return Jn(e,t,n,await qn(s,d,c),f,p)}function Qn(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 $n(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=Hn(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=Qn(n,s))}return[n,r]}function er(e,n,i){let a=Object.entries(n);if(!a.length)return;let o=new Map(a),s=a.map(([e])=>e).sort((e,t)=>t.length-e.length),c=RegExp(`"(${s.map(G).join(`|`)})(/|")`,`g`),l=t(`**/*.go`,{cwd:e});for(let t of l){let n=u(e,t),a=r(n,`utf8`),s=a.replace(c,(e,t,n)=>`"${o.get(t)}${n}`);s!==a&&i(n,s)}}function tr(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=Un(r,a);e&&(n[e.targetModule]=e.targetVersion)}}return{use:t,replace:n}}function nr(e){let t=`https://${rr(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[,e,i,...a]=r;return n.pathname=`/${e}/${i}/${Lt(t)}/${a.join(`/`)}`,n.href}else return t}function rr(e){return zn.test(e)?l(e):e}function ir(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}const ar=/^\s*(?:-\s*)?uses:\s*['"]?([^'"#\s]+)['"]?/gm;function or(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:jt.test(o)}}function sr(e,t){return e?e===`github.com`?`https://api.github.com`:`https://${e}/api/v1`:t}async function cr(e,t,n,r,i){let a=`${e}/repos/${t}/${n}/git/commits/${r}`;if(!i.noCache){let e=await Ze(a);if(e)return e.body}try{let e=await Ot(a,i);if(!e.ok)return``;let t=await e.json(),n=t?.committer?.date||t?.author?.date||``;return n&&!i.noCache&&et(a,`immutable`,n),n}catch{return``}}function lr(e,t){return It(P(K(e))?.version??K(e),t)}function ur(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 dr=[`.github`,`.gitea`,`.forgejo`],fr=RegExp(`(?:^|/)(?:${dr.map(G).join(`|`)})\\/(?:workflows\\/[^/]+|(?:[^/]+\\/)*action)\\.ya?ml$`);function pr(e){return fr.test(e.replace(/\\/g,`/`))}function mr(e){let t=new Set;try{for(let n of i(u(e,`workflows`)))/\.ya?ml$/.test(n)&&t.add(f(u(e,`workflows`,n)))}catch{}try{for(let n of i(e,{recursive:!0,withFileTypes:!0}))!n.isFile()||!/^action\.ya?ml$/.test(n.name)||t.add(f(u(n.parentPath,n.name)))}catch{}return Array.from(t)}const hr=/^(v?\d+(?:\.\d+){0,2})(-.+)?$/,gr=/^\s*FROM\s+(?:--platform=\S+\s+)?(\S+)/gm,_r=/^\s*image:\s*['"]?([^\s'"#]+)['"]?/gm,vr=/^\s*container:\s*['"]?([^\s'"#{}]+:[^\s'"#{}:]+)['"]?\s*$/gm,yr=/^\s*(?:-\s*)?uses:\s*['"]?docker:\/\/([^'"#\s]+)['"]?/gm;function br(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 xr(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||!hr.test(r))return null;let{registry:i,namespace:a,repo:o}=br(n);return{registry:i,namespace:a,repo:o,tag:r,fullImage:n}}function Sr(e){let t=hr.exec(e);return t?{version:t[1],suffix:t[2]||``}:null}function Cr(e,t){let n=Sr(t);return n?It(e,n.version,n.suffix):t}function wr(e,t){let n=[];for(let r of e.matchAll(t)){let e=xr(r[1]);e&&n.push({ref:e,match:r[1]})}return n}const Tr=new WeakMap;function Er(e,t,n){let r=Tr.get(n);r||Tr.set(n,r=new Map);let i=`${e}/${t}`,a=r.get(i);return a||r.set(i,a=Dr(e,t,n)),a}async function Dr(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 ft(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 Or(e,t,n,r){let i=`${r.dockerApiUrl}/v2/repositories/${e}/${t}/tags/${n}`;try{let e=await ft(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 kr(e,t,n){let{registry:r,namespace:i,repo:a}=br(e);if(r)throw Error(`Non-Docker-Hub registries are not yet supported: ${r}`);return[{tags:await Er(i,a,n),name:e},t,null,e]}function Ar(e,t,n,r,i,a){let o=Sr(t);if(!o)return null;let s=I(K(o.version))?.version;if(!s)return null;let c=s,l=``,u=``;for(let[t,s]of Object.entries(e)){let e=Sr(t);if(!e||e.suffix!==o.suffix)continue;let d=I(K(e.version))?.version;if(!d||a&&!H(d,a)||!rt(s,r,i))continue;if(d===c){l&&Date.parse(s)>Date.parse(u)&&(l=t,u=s);continue}let f=L(c,d);!f||!n.has(f)||R(d,c)&&(c=d,l=t,u=s)}if(!l||c===s)return null;let d=Cr(c,t);return d===t?null:{newTag:d,hubTag:l,date:u}}function jr(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 Mr(e,t){return jr(e,t,[(e,t)=>RegExp(`(FROM\\s+(?:--platform=\\S+\\s+)?)${e}:${t}(?![\\w.-])`,`g`)])}function Nr(e,t){return jr(e,t,[(e,t)=>RegExp(`(image:\\s*['"]?)${e}:${t}(?![\\w.-])`,`g`)])}function Pr(e,t){return jr(e,t,[(e,t)=>RegExp(`((?:container|image):\\s*['"]?)${e}:${t}(?![\\w.-])`,`g`),(e,t)=>RegExp(`(uses:\\s*['"]?docker://)${e}:${t}(?![\\w.-])`,`g`)])}const Fr=[`Dockerfile`,`docker-compose.yml`,`docker-compose.yaml`];function Ir(e){return/^docker-.+\.ya?ml$/.test(e)}function Lr(e){return/^Dockerfile(\..+)?$/.test(e)}function Rr(e){return Lr(e)||Ir(e)}function zr(e){return Lr(e)?gr:_r}function Br(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const Vr=[`Makefile`,`makefile`,`GNUmakefile`];function Hr(e){return Vr.includes(e)||e.endsWith(`.mk`)}const Ur=String.raw`^\s*[A-Za-z_][\w.]*\s*(?:::=|:=|\?=|\+=|=)\s*`,Wr=RegExp(`${Ur}${String.raw`(\S+)@(v\d\S*)\s*$`}`),Gr=/^[^/\s]+\.[^/\s]+\//;function Kr(e){let t=e.indexOf(`#`);return t===-1?e:e.slice(0,t)}function qr(e){let t=[];for(let n of e.split(/\r?\n/)){let e=Kr(n),r=Wr.exec(e);if(!r)continue;let[,i,a]=r;Gr.test(i)&&t.push({installPath:i,version:a})}return t}const Jr=RegExp(`${Ur}${String.raw`(\S+)\s*$`}`),Yr=/@(sha256:[0-9a-f]{64})$/;function Xr(e,t,n){return`${e}:${t}${n?`@${n}`:``}`}function Zr(e){let t=null,n=e,r=Yr.exec(e);r&&(t=r[1],n=e.slice(0,r.index));let i=xr(n.replace(/^docker\.io\//,``));return!i||i.registry||i.namespace===`library`?null:{writtenImage:n.slice(0,n.lastIndexOf(`:`)),ref:i,digest:t}}function Qr(e){let t=[];for(let n of e.split(/\r?\n/)){let e=Jr.exec(Kr(n));if(!e)continue;let r=Zr(e[1]);r&&t.push(r)}return t}const $r=/\/v(?:[2-9]|[1-9]\d+)(?=\/|$)/;function ei(e){let t=$r.exec(e);return t?e.slice(0,t.index+t[0].length):null}function ti(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 ni(e,t){let n=ei(e);if(n)return n;let r=ti(e);return(await Promise.all(r.map(async e=>{try{return(await t.doFetch(`${t.goProxyUrl}/${Rn(e)}/@latest`,{signal:AbortSignal.timeout(t.goProbeTimeout)})).ok?e:null}catch{return null}}))).find(Boolean)??null}async function ri(e,t,n,r,i,a){let o=await ni(e,r);if(!o)return null;let[s]=await Zn(o,`tool`,K(t),n,r,i),c=bt(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:Gn});if(!c)return null;let l=s.newPath??Hn(o,c),u=`${l}${e.slice(o.length)}`,d=It(c,t);return u===e&&d===t?null:{newInstallPath:u,newVersion:d,date:s.Time??``,info:nr(l)}}async function ii(e,t,n){let{namespace:r,repo:i,fullImage:a,tag:o}=e.ref,[s]=await kr(a,`docker`,t),c=Ar(s.tags,o,n.semvers,n.cooldownDays,n.now,n.pinnedRange);if(!c)return null;let l=null;return e.digest&&(l=await Or(r,i,c.hubTag,t),!l)?null:{newTag:c.newTag,newDigest:l,date:c.date,info:Br(e.ref)}}function ai(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 oi=new Map,si=e=>({versions:(e.versions||[]).filter(e=>!e.yanked).map(e=>({num:e.num,created_at:e.created_at}))});async function ci(e,t,n){let r=`${at(n.cratesIoUrl)}/api/v1/crates/${encodeURIComponent(e)}/versions?per_page=100`,i=oi.get(r);return i||(i=(async()=>{try{let t=await ft(r,n,ot(),si);`body`in t||Ft(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 oi.delete(r),e}})(),oi.set(r,i)),[await i,t,null,e]}function li(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(!me(a))continue;let o=t.get(i);o||t.set(i,o=[]),o.push(a)}return t}const ui=/^\d/;function di(e,t){return ui.test(e)?Tn(X(`^${e}`),t,`^${e}`).replace(/^\^/,``):Tn(X(e),t,e)}function fi(e,t,n){let r=e.get(t);if(!r)return;let i=ui.test(n)?`^${n}`:n,a;for(let e of r)H(e,i)&&(!a||R(e,a))&&(a=e);return a}const pi=ze.map(G).join(`|`);function mi(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(`(\\[(?:${pi})\\.${o}\\](?:(?!\\n\\[)[\\s\\S])*?version\\s*=\\s*["'])${s}(["'])`,`g`),`$1${a}$2`)}return n}function hi(e){return e.split(`|`)[0]}function gi(e,t){let n=t===`.`?``:`|${t}`,r={};for(let[t,i]of Object.entries(e)){let[e,a]=t.split(`\0`),o=hi(e);e===`${o}${n}`&&(r[`${o}${a}`]=i)}return r}const _i=/[*?{[]/;async function vi(e,n,r,i=32){let a=e.filter(e=>!e.startsWith(`!`)),o=e.filter(e=>e.startsWith(`!`)).map(e=>e.slice(1)),s=new Set(o.flatMap(e=>t(e,{cwd:n})).map(e=>e.replace(/\\/g,`/`))),c=new Set,l=[];for(let e of a){let i=_i.test(e)?t(e,{cwd:n}).map(e=>f(u(n,e))):[f(u(n,e))];for(let e of i){let t=d(n,e).replace(/\\/g,`/`);if(s.has(t))continue;let i=u(e,r);c.has(i)||(c.add(i),l.push({absPath:i,memberPath:`./${t}`}))}}return(await W(l,async({absPath:e,memberPath:t})=>{try{return{absPath:e,content:await S(e,`utf8`),memberPath:t}}catch{return null}},{concurrency:i})).filter(e=>e!==null)}function yi(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 bi={"pnpm-workspace.yaml":`npm`,"package.json":`npm`,"pyproject.toml":`pypi`,"go.work":`go`,"go.mod":`go`,"Cargo.toml":`cargo`},xi=new Set([`npm`,`pypi`,`go`,`cargo`,`actions`,`docker`,`make`]),Si=(e,t)=>typeof e==`string`?at(e):typeof t==`function`?t():t;function Ci(t,n){let r=new Map,i=new Set(t),a=n;for(;i.size;){for(let t of i){let n=u(a,t);try{e(n),r.set(t,n),i.delete(t)}catch{}}let t=l(a);if(t===a)break;a=t}return r}async function wi(e,t){let n=await W(e,async e=>{try{return[e,await S(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 Ti(e){let t=0;for(let n of Object.values(e))t+=Object.keys(n).length;return t}function Ei(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`?rr(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 Di(e){let t=new Set;if(e)for(let r of e){let e;try{e=n(r)}catch(e){throw Error(`Unable to open ${r}: ${e.message}`)}if(e.isFile())t.add(f(r));else if(e.isDirectory()){for(let e of Object.keys(bi)){let i=u(r,e),a=null;try{a=n(i)}catch{}a?.isFile()&&t.add(f(i))}try{for(let e of i(r,{withFileTypes:!0}))e.isFile()&&(Rr(e.name)||Hr(e.name))&&t.add(f(u(r,e.name)))}catch{}let e=f(r).replace(/\\/g,`/`),a=dr.some(t=>e.endsWith(`/${t}/workflows`)),o=!a&&dr.some(t=>e.endsWith(`/${t}`)),s=a?[l(e)]:o?[e]:dr.map(t=>u(e,t));for(let e of s)for(let n of mr(e))t.add(n)}else throw Error(`${r} is neither a file nor directory`)}else{let e=new Set(dr),n=[...Object.keys(bi),...Fr,...Vr,...dr];for(let[r,i]of Ci(n,m()))if(e.has(r))for(let e of mr(i))t.add(e);else t.add(f(i));try{for(let e of i(m(),{withFileTypes:!0})){let n=Rr(e.name)&&!Fr.includes(e.name),r=Hr(e.name)&&!Vr.includes(e.name);e.isFile()&&(n||r)&&t.add(f(u(m(),e.name)))}}catch{}}for(let e of Array.from(t))c(e)===`go.work`&&t.delete(u(l(e),`go.mod`));for(let e of Array.from(t))c(e)===`pnpm-workspace.yaml`&&t.delete(u(l(e),`package.json`));return t}function $(e,t){_===`win32`&&o(e,0),s(e,t,_===`win32`?{flag:`r+`}:void 0)}function Oi(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`&&!bn(i.oldOrig)&&(i.old=n===`go`?ir(i.oldOrig):i.oldOrig),n===`go`?i.new=ir(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 ki=!1;async function Ai(e={}){if(!ki){let{enableDnsCache:e}=await import(`./dns-Cz6xXkw_.js`);e(),ki=!0}let t={...e},n=t.sockets??25,r=t.timeout??0,i=Si(e.forgeapi,`https://api.github.com`),a=Si(e.pypiapi,`https://pypi.org`),o=Si(e.jsrapi,`https://jsr.io`),s=Si(e.goproxy,Fn),d=Si(e.cargoapi,`https://crates.io`),p=Si(e.dockerapi,`https://hub.docker.com`),h=In(),g=t.color||!t.noColor&&v.isTTY,_=e=>g?t=>y(e,String(t)):String,b=_(`magenta`),x=_(`green`),C=_(`red`),w={fetchTimeout:r||5e3,goProbeTimeout:r?r/2:2500,forgeApiUrl:i,pypiApiUrl:a,jsrApiUrl:o,goProxyUrl:s,cratesIoUrl:d,dockerApiUrl:p,doFetch:async(e,n)=>{t.verbose&&Ei(`${b(n?.method||`GET`)} ${e}`);let r=await lt(e,n);return t.verbose&&Ei(`${r.ok?x(r.status):C(r.status)} ${e}`),r},noCache:!!t.noCache},ee=Vt(t.greatest),te=Vt(t.prerelease),E=Vt(t.release),ne=Vt(t.patch),re=Vt(t.minor),ie=Vt(t.allowDowngrade),D=t.modes?.length?new Set(t.modes):xi,ae=(t.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))})),oe=(e,t)=>e.include&&!U(t,e.include)?!1:!e.exclude||!U(t,e.exclude),se=ae.some(e=>e.cooldownDays);D.has(`actions`)&&Tt();let ce=new Map;function O(e){let t=ce.get(e);if(!t){let n=U(e,ee),r=U(e,te),i=U(e,E),a=U(e,ne),o=U(e,re),s=U(e,ie),c;for(let t of ae)oe(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},ce.set(e,t)}return t}let le=Y(t.include??[]),ue=Y(t.exclude??[]),de=t.pin??{},k={},A={},j={},M=Date.now(),fe=e=>{let n=t.cooldown??e;return n?Ue(String(n)):0},pe=m(),N=e=>e.replace(`${pe}/`,``).replace(`${pe}\\`,``),P=0,F=(e,t,n,r,i,a)=>{k[e][`${t}${n}${r}`]={old:i,oldOrig:a}},he=Di(t.files?.length?new Set(t.files):!1),I=await wi(Array.from(he).filter(e=>{if(pr(e))return D.has(`actions`)||D.has(`docker`);let t=c(e);if(Rr(t))return D.has(`docker`);if(Hr(t))return D.has(`make`);let n=bi[t];return!!n&&D.has(n)}),n),L={},ge={},_e={},R=[],ve=null,ye=[],be=!1,xe=[],z=!1,Se=[],Ce=[],we=[],B={};async function Te(e){let n=await Wt(e);return{modeConfig:n,modeInclude:n.include?.length?Y([...t.include??[],...n.include]):le,modeExclude:n.exclude?.length?Y([...t.exclude??[],...n.exclude]):ue,pin:{...n.pin,...de}}}function V(e,n){return t.types?.length?t.types:n?.types?.length?n.types:e===`npm`?Fe:e===`pypi`?Le:e===`go`?t.indirect?Re:Re.filter(e=>e!==`indirect`):e===`cargo`?ze:[]}function Ee(e,t,n,r){k.docker??={};for(let i of n)for(let{ref:n}of wr(e,i)){if(!Q(n.fullImage,`docker`,r.include,r.exclude,`docker`))continue;let e=`${t}${n.fullImage}`;if(k.docker[e])continue;let i=Sr(n.tag);i&&(k.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 De(e){let n=await Wt(e);return{include:n.include?.length?Y([...t.include??[],...n.include]):le,exclude:n.exclude?.length?Y([...t.exclude??[],...n.exclude]):ue,pin:n.pin??{},cooldownDays:fe(n.cooldown)}}let H=new Set,ke=new Map;for(let e of he){let t=c(e);if(t===`go.work`)H.add(`go`);else if(t===`pnpm-workspace.yaml`)H.add(`npm`);else if(t===`Cargo.toml`){let t=I.get(e);if(!t)continue;try{let n=T(t);ke.set(e,n);let r=n.workspace?.members;Array.isArray(r)&&r.length&&H.add(`cargo`)}catch{}}}for(let e of he){if(pr(e)){let t=D.has(`actions`),n=D.has(`docker`);if(!t&&!n)continue;let r=I.get(e),a=N(e),o=await De(l(e));if(L[a]={absPath:e,content:r},t){k.actions??={};let e=Array.from(r.matchAll(ar),e=>or(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}`;k.actions[e]||(k.actions[e]={old:t.ref},Se.push({...t,key:e,apiUrl:sr(t.host,i),filePin:o.pin,fileCooldownDays:o.cooldownDays}))}}n&&(ge[a]={absPath:e,content:r,fileType:`workflow`},Ee(r,a,[_r,vr,yr],o));continue}let t=c(e);if(Rr(t)){if(!D.has(`docker`))continue;let n=I.get(e),r=N(e),i=Lr(t)?`dockerfile`:`compose`,a=await De(l(e));ge[r]={absPath:e,content:n,fileType:i},Ee(n,r,[zr(t)],a);continue}if(Hr(t)){if(!D.has(`make`))continue;let t=I.get(e),n=N(e),r=await De(l(e));_e[n]={absPath:e,content:t},k.make??={};let i={projectDir:l(e),filePin:r.pin,fileCooldownDays:r.cooldownDays};for(let{installPath:e,version:a}of qr(t)){if(!Q(e,`make`,r.include,r.exclude,`make`))continue;let t=`${n}${e}`;k.make[t]||(k.make[t]={old:K(a),oldOrig:a},we.push({kind:`go`,key:t,name:e,oldSpec:`${e}@${a}`,installPath:e,version:a,...i}))}for(let e of Qr(t)){if(!Q(e.writtenImage,`make`,r.include,r.exclude,`make`))continue;let t=`${n}${e.writtenImage}`;if(k.make[t])continue;let a=Sr(e.ref.tag);if(!a)continue;let o=Xr(e.writtenImage,e.ref.tag,e.digest);k.make[t]={old:a.version,oldOrig:e.ref.tag},we.push({kind:`docker`,key:t,name:e.writtenImage,oldSpec:o,image:e,...i})}continue}let r=bi[t];if(!D.has(r))continue;if(t===`go.work`){k[r]??={};let t=l(f(e)),i=I.get(e);ve={file:e,content:i};let a=tr(i),[o,s]=await Promise.all([Te(t),W(a.use,async e=>{let n=f(u(t,e,`go.mod`));try{return{usePath:e,modPath:n,content:await S(n,`utf8`)}}catch{return null}},{concurrency:n})]),{modeConfig:c,modeInclude:d,modeExclude:p,pin:m}=o,h=V(r,c);B[r]={modeConfig:c,projectDir:t,pin:m};for(let e of s){if(!e)continue;let{usePath:t,modPath:n,content:i}=e,a=Yn(i),o=l(n);R.push({absPath:n,content:i,projectDir:o,usePath:t});let s=t===`.`?``:`|${t}`;for(let e of h){let t=a[e]||{};for(let[n,i]of Object.entries(t))Q(n,r,d,p,e)&&F(r,e,s,n,ir(i),K(i))}}for(let[e,t]of Object.entries(a.replace))Q(e,r,d,p,`replace`)&&F(r,`replace`,``,e,ir(t),K(t));P+=Object.keys(k[r]).length;continue}if(t===`go.mod`&&R.some(t=>t.absPath===f(e))||t===`package.json`&&xe.some(t=>t.absPath===f(e)))continue;if(t===`Cargo.toml`){k[r]??={};let t=Object.keys(k[r]).length,i=I.get(e),a=ke.get(e)??T(i),o=l(f(e)),s=Ci([`Cargo.lock`],o).get(`Cargo.lock`),c=a.workspace?.members,u=Array.isArray(c)&&c.length,[d,p,m]=await Promise.all([Te(o),s?S(s,`utf8`):Promise.resolve(null),u?vi(c,o,`Cargo.toml`,n):Promise.resolve([])]),{modeConfig:h,modeInclude:g,modeExclude:_,pin:v}=d,y=V(r,h),b=p?li(p):new Map,x=(e,t)=>{for(let n of y){let i=Be(e,n)||{};if(!(typeof i!=`object`||Array.isArray(i))){for(let[e,a]of Object.entries(i))if(Q(e,r,g,_,n))if(typeof a==`object`&&a&&`version`in a&&!(`git`in a)&&!(`path`in a)){let i=a.version;Oe(i)&&F(r,n,t,e,fi(b,e,i)??X(i),i)}else typeof a==`string`&&Oe(a)&&F(r,n,t,e,fi(b,e,a)??X(a),a)}}};if(u){be=!0,B[r]={modeConfig:h,projectDir:o,pin:v},x(a,``),ye.push({absPath:f(e),content:i,memberPath:`.`});for(let e of m){ye.push(e);try{x(T(e.content),`|${e.memberPath}`)}catch(t){throw Error(`Error parsing ${e.absPath}: ${t.message}`)}}}else{let t=j[r]??=[],n=!t.length&&!H.has(r),s=n?`.`:N(e);t.push({absPath:f(e),content:i,memberPath:s,projectDir:o,modeConfig:h,pin:v,modeCooldownDays:fe(h.cooldown)}),n&&(B[r]={modeConfig:h,projectDir:o,pin:v}),x(a,s===`.`?``:`|${s}`)}P+=Object.keys(k[r]).length-t;continue}if(t===`pnpm-workspace.yaml`){k[r]??={};let t=l(f(e)),i=I.get(e);z=!0;let a=yi(i),o=u(t,`package.json`),[s,c,d]=await Promise.all([Te(t),We(S(o,`utf8`)),vi(a,t,`package.json`,n)]),{modeConfig:p,modeInclude:m,modeExclude:h,pin:g}=s,_=V(r,p);B[r]={modeConfig:p,projectDir:t,pin:g};let v=(e,t)=>{for(let n of _){let i=e[n]||{};if(typeof i==`string`){let[e,a]=i.split(`@`);Q(e,r,m,h,n)&&F(r,n,t,e,X(a),a)}else if(typeof i==`object`&&!Array.isArray(i))for(let[e,a]of Object.entries(i))Q(e,r,m,h,n)&&(bn(a)?F(r,n,t,e,Sn(a,e).version,a):Oe(a)?F(r,n,t,e,X(a),a):xn(a)?F(r,n,t,e,`0.0.0`,a):A[`${n}${t}${e}`]={old:a})}};if(c!==null){let e;try{e=JSON.parse(c)}catch(e){throw Error(`Error parsing ${o}: ${e.message}`)}xe.push({absPath:f(o),content:c,memberPath:`.`}),v(e,``)}for(let e of d){let t;try{t=JSON.parse(e.content)}catch(t){throw Error(`Error parsing ${e.absPath}: ${t.message}`)}xe.push(e),v(t,`|${e.memberPath}`)}P+=Object.keys(k[r]).length+Object.keys(A).length;continue}k[r]??={};let a=l(f(e)),{modeConfig:o,modeInclude:s,modeExclude:d,pin:p}=await Te(a),m=V(r,o),h=j[r]??=[],g=!h.length&&!H.has(r),_=g?`.`:N(e),v=_===`.`?``:`|${_}`,y=I.get(e);h.push({absPath:f(e),content:y,memberPath:_,projectDir:a,modeConfig:o,pin:p,modeCooldownDays:fe(o.cooldown)});let b={};try{r===`npm`?b=JSON.parse(y):r===`pypi`?b=T(y):r===`go`&&(b=Yn(y))}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}let x=Object.keys(k[r]).length,C=Object.keys(A).length;for(let e of m){let t;if(t=r===`npm`||r===`go`?b[e]||{}:Be(b,e)||{},Array.isArray(t)&&r===`pypi`)for(let{name:n,version:i}of Pe(t))Q(n,r,s,d,e)&&F(r,e,v,n,X(i),i);else if(typeof t==`string`){let[n,i]=t.split(`@`);Q(n,r,s,d,e)&&F(r,e,v,n,X(i),i)}else for(let[n,i]of Object.entries(t))Q(n,r,s,d,e)&&(r===`npm`&&bn(i)?F(r,e,v,n,Sn(i,n).version,i):r!==`go`&&Oe(i)?F(r,e,v,n,X(i),i):r===`npm`&&xn(i)?F(r,e,v,n,`0.0.0`,i):r===`npm`?A[`${e}${v}${n}`]={old:i}:r===`go`&&F(r,e,v,n,ir(i),K(i)))}P+=Object.keys(k[r]).length-x+(Object.keys(A).length-C),g&&(B[r]={modeConfig:o,projectDir:a,pin:p})}if(k.actions&&(P+=Object.keys(k.actions).length),k.docker&&(P+=Object.keys(k.docker).length),k.make&&(P+=Object.keys(k.make).length),P===0)return{results:{},message:`No dependencies found, nothing to do.`};let Ae=[],je={registry:t.registry};for(let[e,t]of Object.entries(B)){let r=k[e]&&Object.keys(k[e]).length>0,i=e===`npm`&&Object.keys(A).length>0;if(!r&&!i)continue;let{modeConfig:a,projectDir:o,pin:s}=t,c=fe(a.cooldown);Ae.push((async()=>{let t=new Map;for(let n of j[e]??[])n.memberPath!==`.`&&t.set(`|${n.memberPath}`,n);let r={modeConfig:a,projectDir:o,pin:s,modeCooldownDays:c},i=e=>{let n=e.slice(hi(e).length);return n&&t.get(n)||r},l=new Map,u=e=>{for(let[t,{date:n}]of Object.entries(e)){if(!n)continue;let{modeCooldownDays:r}=i(t.split(`\0`)[0]);if(!r&&!se)continue;let[,a]=t.split(`\0`),o=O(a).cooldownOverride??r;o&&!rt(n,o,M)&&delete e[t]}};if(await W(Object.keys(k[e]),async t=>{let[n,r]=t.split(`\0`),a=hi(n),{modeConfig:o,projectDir:s,pin:c,modeCooldownDays:u}=i(n),d=k[e][t],f=null;if(e===`npm`){let{oldOrig:n}=d;if(n&&bn(n))f=await Cn(r,a,w);else if(n&&xn(n))try{f=await vn(r,a,o,je,w)}catch{delete k[e][t];return}else f=await vn(r,a,o,je,w)}else f=e===`go`?await Zn(r,a,d.oldOrig||d.old,s,w,h):e===`cargo`?await ci(r,a,w):await An(r,a,w);if(!f)return;let[p,,m]=f;if(p.error)throw Error(p.error);let{useGreatest:g,usePre:_,useRel:v,semvers:y,allowDowngrade:b,cooldownOverride:x}=O(p.name),S=d.old,C=d.oldOrig,ee=c[r],te=x??u,T=bt(p,{usePre:_,useRel:v,useGreatest:g,semvers:y,range:S,mode:e,pinnedRange:ee,cooldownDays:te||void 0,now:te?M:void 0},{allowDowngrade:b,matchesAny:U,isGoPseudoVersion:Gn}),E=``;if([`go`,`pypi`].includes(e)&&T)E=T;else if(e===`cargo`&&T&&C)E=di(C,T);else if(T)if(C&&xn(C))E=String(on()[`save-exact`])===`true`?T:`^${T}`;else if(C&&bn(C)){let e=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/.exec(C);e?E=`${e[1]}${T}`:C.startsWith(`jsr:`)&&(E=`jsr:${T}`)}else E=Tn(S,T,C);if(!T||T===S||C&&C===E){delete k[e][t];return}let ne=``;e===`pypi`&&p.releases?.[T]?.[0]?.upload_time_iso_8601?ne=p.releases[T][0].upload_time_iso_8601:e===`go`&&p.Time?ne=p.Time:e===`cargo`&&p.time?.[T]&&(ne=p.time[T]),d.new=E,C&&bn(C)&&(d.newPrint=T),e===`npm`?l.set(t,{name:r,promise:yn(p.name,T,o,je,w)}):e===`pypi`?d.info=Rt(p,m,p.info.name):e===`go`?d.info=nr(p.newPath||r):e===`cargo`&&(d.info=`https://crates.io/crates/${r}`),ne&&Z(d,ne)},{concurrency:n}),await Promise.all(Array.from(l,async([t,{name:n,promise:r}])=>{let i=await r,a=k[e][t];a&&(a.info=Rt({repository:i.repository,homepage:i.homepage},null,n),i.date&&Z(a,i.date))})),e===`npm`&&Object.keys(A).length){let t=(await W(Object.entries(A),([e,t])=>On(e,t,w),{concurrency:n})).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;k[e][t]={old:A[t].old,new:r,oldPrint:jt.test(o)?o.substring(0,7):o,newPrint:jt.test(s)?s.substring(0,7):s,info:`https://github.com/${i}/${a}`},c&&Z(k[e][t],c)}}u(k[e])})())}Se.length&&Ae.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:r,infos:i})=>{let a=await Pt(e,t,r,w),o=[],s=new Map,c=new Map,l=new Map;for(let e of a){c.set(e.name,e);let t=K(e.name);me(t)&&(o.push(t),s.has(t)||s.set(t,e.name)),e.commitSha&&l.set(e.commitSha,e.name)}let u=new Map;async function d(n){if(u.has(n))return u.get(n);let i=await cr(e,t,r,n,w);return u.set(n,i),i}async function f(e){let t=new Set;for(let n=0;n<20;n++){let n=yt({},t.size?o.filter(e=>!t.has(e)):o,e);if(!n||n===e.range)return null;let r=s.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 a=i?await d(i):``;if(rt(a,e.cooldownDays,e.now))return{version:n,tag:r,commitSha:i,date:a};t.add(n)}return null}await W(i,async({key:e,host:n,ref:i,name:a,isHash:o,filePin:s,fileCooldownDays:u})=>{let p=k.actions[e],m=`https://${n||`github.com`}/${t}/${r}`,h=de[a]??s[a];if(o){let{usePre:t,useRel:n,cooldownOverride:r}=O(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?M:void 0});if(!s){delete k.actions[e];return}let{tag:c,commitSha:d,date:g}=s;if(!d||d===i||d.startsWith(i)||i.startsWith(d)){delete k.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 k.actions[e];return}let{usePre:n,useRel:r,semvers:o,cooldownOverride:s}=O(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?M:void 0});if(!g){delete k.actions[e];return}let{tag:_,commitSha:v,date:y}=g,b=lr(_,i);if(b===i){delete k.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:n})},{concurrency:n}),Object.keys(k.actions).length||delete k.actions})()),Ce.length&&Ae.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 kr(e,`docker`,w);n=t}catch{for(let e of t)delete k.docker[e.key];return}for(let e of t){let t=k.docker[e.key],r=t.oldOrig||t.old,{semvers:i,cooldownOverride:a}=O(e.fullImage),o=de[e.fullImage]??e.filePin[e.fullImage],s=a??e.fileCooldownDays,c=Ar(n.tags,r,i,s||void 0,s?M:void 0,o);if(!c){delete k.docker[e.key];continue}t.new=c.newTag,t.info=Br(e.ref),Z(t,c.date)}},{concurrency:n}),Object.keys(k.docker).length||delete k.docker})()),we.length&&Ae.push((async()=>{await W(we,async e=>{let{useGreatest:t,usePre:n,useRel:r,semvers:i,allowDowngrade:a,cooldownOverride:o}=O(e.name),s=de[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?M:void 0},u=k.make[e.key],d;if(e.kind===`go`){let t=await We(ri(e.installPath,e.version,e.projectDir,w,h,l));if(!t){delete k.make[e.key];return}e.newSpec=`${t.newInstallPath}@${t.newVersion}`,u.new=t.newVersion,d=t}else{let t=await We(ii(e.image,w,l));if(!t){delete k.make[e.key];return}e.newSpec=Xr(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:n}),Object.keys(k.make).length||delete k.make})());try{await Promise.all(Ae)}finally{await tt()}if(!Ti(k))return{results:{},message:`All dependencies are up to date.`};if(t.update){let e=(e,t,n)=>{for(let r of t){let t=gi(k[e],r.memberPath);Object.keys(t).length&&$(r.absPath,n(r.content,t))}},t=new Map;if(k.actions)for(let[e,n]of Object.entries(k.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(k.docker)for(let[e,t]of Object.entries(k.docker)){let[r]=e.split(`\0`),i=n.get(r);i||n.set(r,i={}),i[e]=t}let r=new Map;if(k.make)for(let e of we){if(!e.newSpec||!k.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(k).sort((e,t)=>(e===`docker`)-+(t===`docker`));for(let a of i)if(Object.keys(k[a]).length){if(a===`actions`){for(let[e,n]of t){let{absPath:t,content:r}=L[e]||{};if(!t)continue;let i=ur(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`?Mr:a===`compose`?Nr:Pr)(i,t))}continue}if(a===`make`){for(let[e,t]of r){let n=_e[e];n&&$(n.absPath,ai(n.content,t))}continue}if(a===`go`){if(ve){for(let e of R){let t=gi(k[a],e.usePath);if(!Object.keys(t).length)continue;let[n,r]=$n(e.content,t);n!==e.content&&$(e.absPath,n),er(e.projectDir,r,$)}let e={};for(let[t,n]of Object.entries(k[a]))t.split(`\0`)[0]===`replace`&&(e[t]=n);if(Object.keys(e).length){let[t]=$n(ve.content,e);t!==ve.content&&$(ve.file,t)}}for(let e of j.go??[]){let t=gi(k[a],e.memberPath);if(!Object.keys(t).length)continue;let[n,r]=$n(e.content,t);$(e.absPath,n),er(e.projectDir,r,$)}}else a===`cargo`?(be&&e(a,ye,mi),e(a,j.cargo??[],mi)):a===`npm`?(z&&e(a,xe,wn),e(a,j.npm??[],wn)):e(a,j[a]??[],jn)}}return Oi(k)}function ji(e){let t=``,n=0,r=e.length,i=-1;for(;n<r;){let a=e[n];if(a===`"`){for(i=-1,t+=a,n++;n<r;){let i=e[n];if(t+=i,n++,i===`\\`&&n<r){t+=e[n],n++;continue}if(i===`"`)break}continue}if(a===`/`&&n+1<r&&e[n+1]===`/`){for(n+=2;n<r&&e[n]!==`
6
+ `;)n++;continue}if(a===`/`&&n+1<r&&e[n+1]===`*`){for(n+=2;n<r&&(e[n]!==`*`||e[n+1]!==`/`);)n++;n+=2;continue}if(a===`,`){i=t.length,t+=a,n++;continue}if(a===`}`||a===`]`){i>=0&&(t=t.slice(0,i)+t.slice(i+1)),i=-1,t+=a,n++;continue}/\s/.test(a)||(i=-1),t+=a,n++}return JSON.parse(t)}export{Oe as a,Ge as i,ji as n,Ke as r,Ai as t};
Binary file
@@ -41,16 +41,20 @@ async function getTree(path, respectIgnored) {
41
41
  "--others",
42
42
  "--ignored",
43
43
  "--exclude-standard",
44
- "--directory"
45
- ], { nodeOptions: {
46
- cwd: path,
47
- stdio: [
48
- "ignore",
49
- "pipe",
50
- "ignore"
51
- ]
52
- } });
53
- ignore = stdout.split("\n").filter(Boolean).map((p) => {
44
+ "--directory",
45
+ "-z"
46
+ ], {
47
+ nodeOptions: {
48
+ cwd: path,
49
+ stdio: [
50
+ "ignore",
51
+ "pipe",
52
+ "ignore"
53
+ ]
54
+ },
55
+ throwOnError: true
56
+ });
57
+ ignore = stdout.split("\0").filter(Boolean).map((p) => {
54
58
  const escaped = escapePath(p);
55
59
  return escaped.endsWith("/") ? `${escaped}**` : escaped;
56
60
  });
@@ -60,6 +64,7 @@ async function getTree(path, respectIgnored) {
60
64
  tree = await glob("**", {
61
65
  cwd: path,
62
66
  dot: true,
67
+ followSymbolicLinks: false,
63
68
  ignore
64
69
  });
65
70
  matchCache.set(key, tree);
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
2
  var name = "metascope";
3
- var version = "0.8.3";
3
+ var version = "0.8.4";
4
4
  //#endregion
5
5
  export { name, version };
@@ -37,7 +37,7 @@ function children(node) {
37
37
  return node.namedChildren.filter((c) => c !== null);
38
38
  }
39
39
  /** Methods that return the receiver unchanged — safe to unwrap. */
40
- const IDENTITY_METHODS = new Set([
40
+ const IDENTITY_METHODS = /* @__PURE__ */ new Set([
41
41
  "-@",
42
42
  "dup",
43
43
  "freeze"
@@ -174,7 +174,7 @@ async function parseGemspec(source) {
174
174
  if (!tree) throw new Error("Failed to parse gemspec source");
175
175
  const spec = emptySpec();
176
176
  /** Map of simple attribute names → setter logic */
177
- const STRING_ATTRS = new Set([
177
+ const STRING_ATTRS = /* @__PURE__ */ new Set([
178
178
  "bindir",
179
179
  "description",
180
180
  "homepage",
@@ -188,7 +188,7 @@ async function parseGemspec(source) {
188
188
  "summary",
189
189
  "version"
190
190
  ]);
191
- const ARRAY_ATTRS = new Set([
191
+ const ARRAY_ATTRS = /* @__PURE__ */ new Set([
192
192
  "authors",
193
193
  "cert_chain",
194
194
  "executables",
@@ -219,10 +219,13 @@ async function parseGemspec(source) {
219
219
  return;
220
220
  }
221
221
  if (attribute === "metadata") {
222
- if (rhs.type === "hash") spec.metadata = {
223
- ...is.plainObject(spec.metadata) ? spec.metadata : {},
224
- ...extractHash(rhs)
225
- };
222
+ if (rhs.type === "hash") {
223
+ const existing = is.plainObject(spec.metadata) ? spec.metadata : {};
224
+ spec.metadata = {
225
+ ...existing,
226
+ ...extractHash(rhs)
227
+ };
228
+ }
226
229
  return;
227
230
  }
228
231
  if (STRING_ATTRS.has(attribute)) {
@@ -23,7 +23,7 @@ const ASSIGNMENT_RE = /^(\w+)\s*(\+?=)\s*(.*)/;
23
23
  * Sections that are not platform-specific and should be excluded from
24
24
  * operatingSystem inference.
25
25
  */
26
- const NON_PLATFORM_SECTIONS = new Set([
26
+ const NON_PLATFORM_SECTIONS = /* @__PURE__ */ new Set([
27
27
  "all",
28
28
  "common",
29
29
  "meta"
@@ -1,7 +1,7 @@
1
1
  //#region src/lib/parsers/rfc822-header-parser.ts
2
2
  const LEADING_WHITESPACE_REGEX = /^\s/;
3
3
  /** Multi-value headers that can appear multiple times. */
4
- const MULTI_VALUE_HEADERS = new Set([
4
+ const MULTI_VALUE_HEADERS = /* @__PURE__ */ new Set([
5
5
  "Classifier",
6
6
  "Platform",
7
7
  "Project-URL",
@@ -84,7 +84,7 @@ function extractStringListDict(node) {
84
84
  return result;
85
85
  }
86
86
  /** Simple string attributes to extract from setup() keyword arguments. */
87
- const STRING_ATTRS = new Set([
87
+ const STRING_ATTRS = /* @__PURE__ */ new Set([
88
88
  "author",
89
89
  "author_email",
90
90
  "description",
@@ -42,4 +42,4 @@ declare const arduinoLibraryPropertiesSchema: z.ZodObject<{
42
42
  type ArduinoLibraryProperties = z.infer<typeof arduinoLibraryPropertiesSchema>;
43
43
  type ArduinoLibraryPropertiesData = OneOrMany<SourceRecord<ArduinoLibraryProperties>> | undefined;
44
44
  //#endregion
45
- export { ArduinoLibraryPropertiesData };
45
+ export { ArduinoLibraryProperties, ArduinoLibraryPropertiesData };
@@ -182,14 +182,14 @@ function parseDependencies(value) {
182
182
  * Arduino-specific fields that distinguish library.properties from Processing's
183
183
  * identically-named format.
184
184
  */
185
- const ARDUINO_SPECIFIC_FIELDS = new Set([
185
+ const ARDUINO_SPECIFIC_FIELDS = /* @__PURE__ */ new Set([
186
186
  "architectures",
187
187
  "depends",
188
188
  "dot_a_linkage",
189
189
  "maintainer"
190
190
  ]);
191
191
  /** Processing-exclusive fields that rule out Arduino. */
192
- const PROCESSING_EXCLUSIVE_FIELDS = new Set([
192
+ const PROCESSING_EXCLUSIVE_FIELDS = /* @__PURE__ */ new Set([
193
193
  "authors",
194
194
  "minrevision",
195
195
  "prettyversion"
@@ -222,4 +222,4 @@ const arduinoLibraryPropertiesSource = defineSource({
222
222
  phase: 1
223
223
  });
224
224
  //#endregion
225
- export { arduinoLibraryPropertiesSource };
225
+ export { arduinoLibraryPropertiesSource, parse };
@@ -18,4 +18,4 @@ declare const cinderCinderblockSchema: z.ZodObject<{
18
18
  type CinderCinderblock = z.infer<typeof cinderCinderblockSchema>;
19
19
  type CinderCinderblockXmlData = OneOrMany<SourceRecord<CinderCinderblock>> | undefined;
20
20
  //#endregion
21
- export { CinderCinderblockXmlData };
21
+ export { CinderCinderblock, CinderCinderblockXmlData };
@@ -143,4 +143,4 @@ const cinderCinderblockXmlSource = defineSource({
143
143
  phase: 1
144
144
  });
145
145
  //#endregion
146
- export { cinderCinderblockXmlSource };
146
+ export { cinderCinderblockXmlSource, parse };
@@ -114,4 +114,4 @@ declare const codeMetaJsonDataSchema: z.ZodObject<{
114
114
  type CodeMetaJson = z.infer<typeof codeMetaJsonDataSchema>;
115
115
  type CodeMetaJsonData = OneOrMany<SourceRecord<CodeMetaJson>> | undefined;
116
116
  //#endregion
117
- export { CodeMetaJson, CodeMetaJsonData };
117
+ export { CodeMetaJson, CodeMetaJsonData, codeMetaJsonDataSchema };
@@ -227,4 +227,4 @@ const codemetaJsonSource = defineSource({
227
227
  phase: 1
228
228
  });
229
229
  //#endregion
230
- export { codeMetaJsonDataSchema, codemetaJsonSource };
230
+ export { codeMetaJsonDataSchema, codemetaJsonSource, parse };
@@ -9,4 +9,4 @@ type FileStats = {
9
9
  };
10
10
  type FileStatsData = OneOrMany<SourceRecord<FileStats>> | undefined;
11
11
  //#endregion
12
- export { FileStatsData };
12
+ export { FileStats, FileStatsData };
@@ -32,4 +32,4 @@ type GitStatsInfo = {
32
32
  };
33
33
  type GitStatsData = OneOrMany<SourceRecord<GitStatsInfo>> | undefined;
34
34
  //#endregion
35
- export { GitStatsData };
35
+ export { GitStatsData, GitStatsInfo };
@@ -31,4 +31,4 @@ declare const githubActionSchema: z.ZodObject<{
31
31
  type GitHubAction = z.infer<typeof githubActionSchema>;
32
32
  type GitHubActionsData = OneOrMany<SourceRecord<GitHubAction>> | undefined;
33
33
  //#endregion
34
- export { GitHubActionsData };
34
+ export { GitHubAction, GitHubActionsData };
@@ -91,4 +91,4 @@ type GitHubInfo = {
91
91
  };
92
92
  type GitHubData = OneOrMany<SourceRecord<GitHubInfo>> | undefined;
93
93
  //#endregion
94
- export { GitHubData };
94
+ export { GitHubData, GitHubInfo };
@@ -16,4 +16,4 @@ declare const goModDataSchema: z.ZodObject<{
16
16
  type GoMod = z.infer<typeof goModDataSchema>;
17
17
  type GoGoModData = OneOrMany<SourceRecord<GoMod>> | undefined;
18
18
  //#endregion
19
- export { GoGoModData };
19
+ export { GoGoModData, GoMod };
@@ -35,4 +35,4 @@ const goGoModSource = defineSource({
35
35
  phase: 1
36
36
  });
37
37
  //#endregion
38
- export { goGoModSource };
38
+ export { goGoModSource, parse };
@@ -16,4 +16,4 @@ declare const goreleaserDataSchema: z.ZodObject<{
16
16
  type Goreleaser = z.infer<typeof goreleaserDataSchema>;
17
17
  type GoGoreleaserYamlData = OneOrMany<SourceRecord<Goreleaser>> | undefined;
18
18
  //#endregion
19
- export { GoGoreleaserYamlData };
19
+ export { GoGoreleaserYamlData, Goreleaser };
@@ -150,4 +150,4 @@ const goGoreleaserYamlSource = defineSource({
150
150
  phase: 1
151
151
  });
152
152
  //#endregion
153
- export { goGoreleaserYamlSource };
153
+ export { goGoreleaserYamlSource, parse$1 as parse };
@@ -49,4 +49,4 @@ declare const pomXmlSchema: z.ZodObject<{
49
49
  type PomXml = z.infer<typeof pomXmlSchema>;
50
50
  type JavaPomXmlData = OneOrMany<SourceRecord<PomXml>> | undefined;
51
51
  //#endregion
52
- export { JavaPomXmlData };
52
+ export { JavaPomXmlData, PomXml };
@@ -264,4 +264,4 @@ const javaPomXmlSource = defineSource({
264
264
  phase: 1
265
265
  });
266
266
  //#endregion
267
- export { javaPomXmlSource };
267
+ export { javaPomXmlSource, parse };
@@ -21,4 +21,4 @@ type LicenseFileRecord = {
21
21
  };
22
22
  type LicenseFileData = OneOrMany<SourceRecord<LicenseFileRecord>> | undefined;
23
23
  //#endregion
24
- export { LicenseFileData };
24
+ export { LicenseFileData, LicenseFileRecord };
@@ -11,4 +11,4 @@ declare const metadataSchema: z.ZodObject<{
11
11
  type Metadata = z.infer<typeof metadataSchema>;
12
12
  type MetadataFileData = OneOrMany<SourceRecord<Metadata>> | undefined;
13
13
  //#endregion
14
- export { MetadataFileData };
14
+ export { Metadata, MetadataFileData };
@@ -109,4 +109,4 @@ const metadataFileSource = defineSource({
109
109
  phase: 1
110
110
  });
111
111
  //#endregion
112
- export { metadataFileSource };
112
+ export { metadataFileSource, parse$1 as parse };
@@ -11,4 +11,4 @@ type MetascopeInfo = {
11
11
  };
12
12
  type MetascopeData = SourceRecord<MetascopeInfo> | undefined;
13
13
  //#endregion
14
- export { MetascopeData };
14
+ export { MetascopeData, MetascopeInfo };
@@ -16,4 +16,4 @@ type NodeNpmRegistryInfo = {
16
16
  };
17
17
  type NodeNpmRegistryData = OneOrMany<SourceRecord<NodeNpmRegistryInfo>> | undefined;
18
18
  //#endregion
19
- export { NodeNpmRegistryData };
19
+ export { NodeNpmRegistryData, NodeNpmRegistryInfo };
@@ -24,4 +24,4 @@ const nodePackageJsonSource = defineSource({
24
24
  phase: 1
25
25
  });
26
26
  //#endregion
27
- export { nodePackageJsonSource };
27
+ export { nodePackageJsonSource, parse };
@@ -14,4 +14,4 @@ type ObsidianManifest = {
14
14
  };
15
15
  type ObsidianPluginManifestJsonData = OneOrMany<SourceRecord<ObsidianManifest>> | undefined;
16
16
  //#endregion
17
- export { ObsidianPluginManifestJsonData };
17
+ export { ObsidianManifest, ObsidianPluginManifestJsonData };
@@ -7,4 +7,4 @@ type ObsidianPluginRegistryInfo = {
7
7
  };
8
8
  type ObsidianPluginRegistryData = OneOrMany<SourceRecord<ObsidianPluginRegistryInfo>> | undefined;
9
9
  //#endregion
10
- export { ObsidianPluginRegistryData };
10
+ export { ObsidianPluginRegistryData, ObsidianPluginRegistryInfo };
@@ -14,4 +14,4 @@ declare const openframeworksAddonConfigSchema: z.ZodObject<{
14
14
  type OpenframeworksAddonConfig = z.infer<typeof openframeworksAddonConfigSchema>;
15
15
  type OpenframeworksAddonConfigMkData = OneOrMany<SourceRecord<OpenframeworksAddonConfig>> | undefined;
16
16
  //#endregion
17
- export { OpenframeworksAddonConfigMkData };
17
+ export { OpenframeworksAddonConfig, OpenframeworksAddonConfigMkData };
@@ -43,4 +43,4 @@ const openframeworksAddonConfigMkSource = defineSource({
43
43
  phase: 1
44
44
  });
45
45
  //#endregion
46
- export { openframeworksAddonConfigMkSource };
46
+ export { openframeworksAddonConfigMkSource, parse };
@@ -17,4 +17,4 @@ declare const openframeworksInstallXmlSchema: z.ZodObject<{
17
17
  type OpenframeworksInstallXml = z.infer<typeof openframeworksInstallXmlSchema>;
18
18
  type OpenframeworksInstallXmlData = OneOrMany<SourceRecord<OpenframeworksInstallXml>> | undefined;
19
19
  //#endregion
20
- export { OpenframeworksInstallXmlData };
20
+ export { OpenframeworksInstallXml, OpenframeworksInstallXmlData };
@@ -160,4 +160,4 @@ const openframeworksInstallXmlSource = defineSource({
160
160
  phase: 1
161
161
  });
162
162
  //#endregion
163
- export { openframeworksInstallXmlSource };
163
+ export { openframeworksInstallXmlSource, parse };
@@ -41,4 +41,4 @@ declare const processingLibraryPropertiesSchema: z.ZodObject<{
41
41
  type ProcessingLibraryProperties = z.infer<typeof processingLibraryPropertiesSchema>;
42
42
  type ProcessingLibraryPropertiesData = OneOrMany<SourceRecord<ProcessingLibraryProperties>> | undefined;
43
43
  //#endregion
44
- export { ProcessingLibraryPropertiesData };
44
+ export { ProcessingLibraryProperties, ProcessingLibraryPropertiesData };
@@ -192,7 +192,7 @@ function parseCategories(value) {
192
192
  return results;
193
193
  }
194
194
  /** Processing-specific fields that distinguish from Arduino. */
195
- const PROCESSING_SPECIFIC_FIELDS = new Set([
195
+ const PROCESSING_SPECIFIC_FIELDS = /* @__PURE__ */ new Set([
196
196
  "authorList",
197
197
  "authors",
198
198
  "dependencies",
@@ -200,7 +200,7 @@ const PROCESSING_SPECIFIC_FIELDS = new Set([
200
200
  "prettyversion"
201
201
  ]);
202
202
  /** Arduino-exclusive fields that rule out Processing. */
203
- const ARDUINO_EXCLUSIVE_FIELDS = new Set([
203
+ const ARDUINO_EXCLUSIVE_FIELDS = /* @__PURE__ */ new Set([
204
204
  "architectures",
205
205
  "depends",
206
206
  "maintainer"
@@ -232,4 +232,4 @@ const processingLibraryPropertiesSource = defineSource({
232
232
  phase: 1
233
233
  });
234
234
  //#endregion
235
- export { processingLibraryPropertiesSource };
235
+ export { parse, processingLibraryPropertiesSource };
@@ -35,4 +35,4 @@ declare const processingSketchPropertiesSchema: z.ZodObject<{
35
35
  type ProcessingSketchProperties = z.infer<typeof processingSketchPropertiesSchema>;
36
36
  type ProcessingSketchPropertiesData = OneOrMany<SourceRecord<ProcessingSketchProperties>> | undefined;
37
37
  //#endregion
38
- export { ProcessingSketchPropertiesData };
38
+ export { ProcessingSketchProperties, ProcessingSketchPropertiesData };
@@ -227,4 +227,4 @@ const processingSketchPropertiesSource = defineSource({
227
227
  phase: 1
228
228
  });
229
229
  //#endregion
230
- export { processingSketchPropertiesSource };
230
+ export { parse, processingSketchPropertiesSource };
@@ -70,4 +70,4 @@ declare const publiccodeSchema: z.ZodObject<{
70
70
  type Publiccode = z.infer<typeof publiccodeSchema>;
71
71
  type PubliccodeYamlData = OneOrMany<SourceRecord<Publiccode>> | undefined;
72
72
  //#endregion
73
- export { PubliccodeYamlData };
73
+ export { Publiccode, PubliccodeYamlData };
@@ -285,4 +285,4 @@ const publiccodeYamlSource = defineSource({
285
285
  phase: 1
286
286
  });
287
287
  //#endregion
288
- export { publiccodeYamlSource };
288
+ export { parse$1 as parse, publiccodeYamlSource };
@@ -28,4 +28,4 @@ declare const pkgInfoDataSchema: z.ZodObject<{
28
28
  type PkgInfo = z.infer<typeof pkgInfoDataSchema>;
29
29
  type PythonPkgInfoData = OneOrMany<SourceRecord<PkgInfo>> | undefined;
30
30
  //#endregion
31
- export { PythonPkgInfoData };
31
+ export { PkgInfo, PythonPkgInfoData };
@@ -112,4 +112,4 @@ const pythonPkgInfoSource = defineSource({
112
112
  phase: 1
113
113
  });
114
114
  //#endregion
115
- export { pythonPkgInfoSource };
115
+ export { parse, pythonPkgInfoSource };
@@ -16,4 +16,4 @@ type PythonPypiRegistryInfo = {
16
16
  };
17
17
  type PythonPypiRegistryData = OneOrMany<SourceRecord<PythonPypiRegistryInfo>> | undefined;
18
18
  //#endregion
19
- export { PythonPypiRegistryData };
19
+ export { PythonPypiRegistryData, PythonPypiRegistryInfo };