@visulima/vis 1.0.0-alpha.42 → 1.0.0-alpha.44

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 (195) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/LICENSE.md +256 -0
  3. package/bin/resolve-binary.mjs +85 -0
  4. package/bin/vis.mjs +76 -0
  5. package/dist/bin.d.ts +1 -0
  6. package/dist/bin.js +1 -2
  7. package/dist/binx.js +1 -1
  8. package/dist/config/index.js +1 -1
  9. package/dist/packem_chunks/CONFIG_FILES.js +8 -0
  10. package/dist/packem_chunks/bloom-status.js +1 -1
  11. package/dist/packem_chunks/bloom-sync.js +1 -1
  12. package/dist/packem_chunks/catalog.js +113 -0
  13. package/dist/packem_chunks/cli-exec.js +1 -1
  14. package/dist/packem_chunks/cli-main.js +297 -434
  15. package/dist/packem_chunks/detect.js +3 -3
  16. package/dist/packem_chunks/dispatch.js +1 -1
  17. package/dist/packem_chunks/fix.js +1 -1
  18. package/dist/packem_chunks/handler.js +1 -1
  19. package/dist/packem_chunks/handler10.js +5 -1
  20. package/dist/packem_chunks/handler11.js +1 -5
  21. package/dist/packem_chunks/handler12.js +27 -1
  22. package/dist/packem_chunks/handler13.js +5 -27
  23. package/dist/packem_chunks/handler14.js +1 -5
  24. package/dist/packem_chunks/handler15.js +1 -1
  25. package/dist/packem_chunks/handler16.js +1 -1
  26. package/dist/packem_chunks/handler17.js +1 -1
  27. package/dist/packem_chunks/handler18.js +1 -1
  28. package/dist/packem_chunks/handler19.js +5 -1
  29. package/dist/packem_chunks/handler2.js +1 -1
  30. package/dist/packem_chunks/handler20.js +2 -5
  31. package/dist/packem_chunks/handler21.js +2 -2
  32. package/dist/packem_chunks/handler22.js +14 -2
  33. package/dist/packem_chunks/handler23.js +1 -5
  34. package/dist/packem_chunks/handler24.js +1 -1
  35. package/dist/packem_chunks/handler25.js +1 -1
  36. package/dist/packem_chunks/handler26.js +5 -1
  37. package/dist/packem_chunks/handler27.js +1 -5
  38. package/dist/packem_chunks/handler28.js +3 -1
  39. package/dist/packem_chunks/handler29.js +1 -3
  40. package/dist/packem_chunks/handler3.js +4 -1
  41. package/dist/packem_chunks/handler30.js +1 -1
  42. package/dist/packem_chunks/handler31.js +2 -1
  43. package/dist/packem_chunks/handler32.js +2 -2
  44. package/dist/packem_chunks/handler33.js +2 -2
  45. package/dist/packem_chunks/handler34.js +3 -2
  46. package/dist/packem_chunks/handler35.js +6 -3
  47. package/dist/packem_chunks/handler36.js +1 -6
  48. package/dist/packem_chunks/handler37.js +42 -1
  49. package/dist/packem_chunks/handler38.js +8 -42
  50. package/dist/packem_chunks/handler39.js +9 -8
  51. package/dist/packem_chunks/handler4.js +4 -4
  52. package/dist/packem_chunks/handler40.js +75 -9
  53. package/dist/packem_chunks/handler41.js +5 -75
  54. package/dist/packem_chunks/handler42.js +4 -5
  55. package/dist/packem_chunks/handler43.js +3 -4
  56. package/dist/packem_chunks/handler44.js +2 -3
  57. package/dist/packem_chunks/handler45.js +1 -2
  58. package/dist/packem_chunks/handler46.js +1 -1
  59. package/dist/packem_chunks/handler47.js +1 -1
  60. package/dist/packem_chunks/handler48.js +3 -1
  61. package/dist/packem_chunks/handler49.js +1 -3
  62. package/dist/packem_chunks/handler5.js +6 -4
  63. package/dist/packem_chunks/handler50.js +7 -1
  64. package/dist/packem_chunks/handler51.js +32 -6
  65. package/dist/packem_chunks/handler52.js +3 -33
  66. package/dist/packem_chunks/handler53.js +8 -3
  67. package/dist/packem_chunks/handler54.js +2 -6
  68. package/dist/packem_chunks/handler55.js +1 -4
  69. package/dist/packem_chunks/handler56.js +12 -1
  70. package/dist/packem_chunks/handler57.js +5 -12
  71. package/dist/packem_chunks/handler58.js +11 -5
  72. package/dist/packem_chunks/handler59.js +3 -11
  73. package/dist/packem_chunks/handler6.js +8 -6
  74. package/dist/packem_chunks/handler60.js +22 -3
  75. package/dist/packem_chunks/handler61.js +60 -21
  76. package/dist/packem_chunks/handler62.js +3 -61
  77. package/dist/packem_chunks/handler63.js +6 -3
  78. package/dist/packem_chunks/handler64.js +9 -6
  79. package/dist/packem_chunks/handler65.js +2 -9
  80. package/dist/packem_chunks/handler66.js +13 -13
  81. package/dist/packem_chunks/handler67.js +5 -5
  82. package/dist/packem_chunks/handler68.js +1 -1
  83. package/dist/packem_chunks/handler69.js +4 -4
  84. package/dist/packem_chunks/handler7.js +1 -8
  85. package/dist/packem_chunks/handler70.js +16 -17
  86. package/dist/packem_chunks/handler71.js +12 -12
  87. package/dist/packem_chunks/handler72.js +5 -5
  88. package/dist/packem_chunks/handler73.js +7 -7
  89. package/dist/packem_chunks/handler74.js +3 -3
  90. package/dist/packem_chunks/handler75.js +3 -3
  91. package/dist/packem_chunks/handler76.js +63 -63
  92. package/dist/packem_chunks/handler77.js +1 -1
  93. package/dist/packem_chunks/handler8.js +1 -1
  94. package/dist/packem_chunks/handler9.js +1 -1
  95. package/dist/packem_chunks/heal-accept.js +1 -1
  96. package/dist/packem_chunks/heal.js +1 -1
  97. package/dist/packem_chunks/help-command.js +1 -1
  98. package/dist/packem_chunks/index2.js +2 -2
  99. package/dist/packem_chunks/keys-refresh.js +1 -1
  100. package/dist/packem_chunks/lean.js +3 -3
  101. package/dist/packem_chunks/list.js +1 -1
  102. package/dist/packem_chunks/loader.js +1 -1
  103. package/dist/packem_chunks/loader2.js +1 -1
  104. package/dist/packem_chunks/orchestrator.js +19 -19
  105. package/dist/packem_chunks/prune.js +1 -1
  106. package/dist/packem_chunks/run.js +1 -1
  107. package/dist/packem_chunks/status.js +1 -1
  108. package/dist/packem_chunks/sync.js +1 -1
  109. package/dist/packem_chunks/sync2.js +1 -1
  110. package/dist/packem_chunks/tripwire.js +1 -1
  111. package/dist/packem_chunks/ts-loader.js +22 -2
  112. package/dist/packem_chunks/verify-lockfile.js +1 -1
  113. package/dist/packem_chunks/version-resolver.js +1 -1
  114. package/dist/packem_shared/{advisories-aiDtubZQ.js → advisories-CefYKEPe.js} +1 -1
  115. package/dist/packem_shared/{affected-shas-C1XuRlvo.js → affected-shas-CwRY5aoc.js} +1 -1
  116. package/dist/packem_shared/{ai-analysis-CubpCxZJ.js → ai-analysis-CO6S0afy.js} +7 -7
  117. package/dist/packem_shared/{ai-fix-Btd5AnSr.js → ai-fix-CI0Vvqld.js} +9 -9
  118. package/dist/packem_shared/augment-DaSS2Lgs.js +4 -0
  119. package/dist/packem_shared/bin-P6Q5tKrP.js +1 -0
  120. package/dist/packem_shared/{build-scripts-Doxce2VM.js → build-scripts-MTSK6TNr.js} +1 -1
  121. package/dist/packem_shared/{command-runtime-RiCMa2C8.js → command-runtime-BE-vKsGH.js} +1 -1
  122. package/dist/packem_shared/{cyclonedx-NUJ9R2GQ.js → cyclonedx-BeUmPgfO.js} +1 -1
  123. package/dist/packem_shared/dependency-scan-DpOFiZuI.js +1 -0
  124. package/dist/packem_shared/{docker-DKlF-gk3.js → docker-CViFYtmM.js} +1 -1
  125. package/dist/packem_shared/env-C2ZCnfP_.js +27 -0
  126. package/dist/packem_shared/failure-log-jFfZRJK9.js +2 -0
  127. package/dist/packem_shared/glob-fqg4KepW-1S3z30c8.js +1 -0
  128. package/dist/packem_shared/index-B0EsgdzO.js +1 -0
  129. package/dist/packem_shared/index-CE6MsgcV.js +22 -0
  130. package/dist/packem_shared/index-CQjzW7m8.js +1 -0
  131. package/dist/packem_shared/{index-Cb4x6lWY.js → index-Cg0IHaFI.js} +1 -1
  132. package/dist/packem_shared/{index-CPhv-r4c.js → index-D7EZ612R.js} +13 -13
  133. package/dist/packem_shared/{lifecycle-D5roTh0a.js → lifecycle-Dyb47wbD.js} +1 -1
  134. package/dist/packem_shared/{lockfile-DIGyLfmF.js → lockfile-C1qCKGH6.js} +1 -1
  135. package/dist/packem_shared/{manifests-pLwnVmCN.js → manifests-WBnsV_Eb.js} +1 -1
  136. package/dist/packem_shared/{min-release-age-pUAqTiv3.js → min-release-age-C71MO72F.js} +1 -1
  137. package/dist/packem_shared/missing-package-json-CTF71tE5.js +1 -0
  138. package/dist/packem_shared/{native-config-sync-4K9wWTj5.js → native-config-sync-BFDVK9LH.js} +4 -4
  139. package/dist/packem_shared/{osv-bloom-OuTfu_LE.js → osv-bloom-BsQ-aFiM.js} +1 -1
  140. package/dist/packem_shared/packument-DquNPIq9.js +1 -0
  141. package/dist/packem_shared/{pm-runner-Dws_Bw1y.js → pm-runner-D4jM58Oz.js} +1 -1
  142. package/dist/packem_shared/prompt-DjXHVgYU.js +1 -0
  143. package/dist/packem_shared/provenance-DIq8KyBV.js +1 -0
  144. package/dist/packem_shared/readJsonSync-CvkZyKmL-ihoybKvs.js +1 -0
  145. package/dist/packem_shared/registry-keys-C8K11ets.js +1 -0
  146. package/dist/packem_shared/resolve-explicit-Dr4kIybR.js +5 -0
  147. package/dist/packem_shared/{resolve-runtime-CJSWV-K8.js → resolve-runtime-Tx0bvg0h.js} +1 -1
  148. package/dist/packem_shared/run-file-DD7Ne23Z.js +1 -0
  149. package/dist/packem_shared/{runtime-check-0lUJvgKt.js → runtime-check-BXehSP06.js} +1 -1
  150. package/dist/packem_shared/s1ngularity-CtMmtXJo.js +1 -0
  151. package/dist/packem_shared/scan-progress-D4yywI6P.js +2 -0
  152. package/dist/packem_shared/{selectors-UmnAuc26.js → selectors-D4iCvITE.js} +1 -1
  153. package/dist/packem_shared/{signatures-BOUhghTv.js → signatures-CE8OAK-i.js} +2 -2
  154. package/dist/packem_shared/spinner-DuJJvFTl.js +1 -0
  155. package/dist/packem_shared/tabs-CgxCvjCY.js +1 -0
  156. package/dist/packem_shared/target-merge-DOm6h6tW.js +11 -0
  157. package/dist/packem_shared/target-options-CR0OuYJr.js +1 -0
  158. package/dist/packem_shared/toolchain-C44mPKPu.js +5 -0
  159. package/dist/packem_shared/{typosquats-DBOvXwph.js → typosquats-CQz-1Y6K.js} +1 -1
  160. package/dist/packem_shared/use-measured-height-XK9YSwtv.js +1 -0
  161. package/dist/packem_shared/utils-CRueU43T.js +1 -0
  162. package/dist/packem_shared/verify-DStfg3nb.js +1 -0
  163. package/dist/packem_shared/vis-update-app-Cpme_3Du.js +1 -0
  164. package/dist/packem_shared/{watch-Bkp_AAbc.js → watch-BXNI7dC6.js} +1 -1
  165. package/dist/packem_shared/watch-loop-JfGKIgKB.js +11 -0
  166. package/dist/packem_shared/window-ops-DDePlWLV.js +2 -0
  167. package/dist/runtime/preload.js +1 -1
  168. package/index.js +52 -52
  169. package/package.json +17 -13
  170. package/dist/packem_chunks/config.js +0 -18
  171. package/dist/packem_shared/CONFIG_FILES-MsOntfYT.js +0 -1
  172. package/dist/packem_shared/augment-8fIWWGSc.js +0 -3
  173. package/dist/packem_shared/bin-CnDBuLh3.js +0 -2
  174. package/dist/packem_shared/dependency-scan-B0HV_qeB.js +0 -1
  175. package/dist/packem_shared/failure-log-C7r6UZLP.js +0 -2
  176. package/dist/packem_shared/glob-fqg4KepW-7Bs2kZuM.js +0 -1
  177. package/dist/packem_shared/index-BKFEWXU_.js +0 -1
  178. package/dist/packem_shared/index-OQZQyN5R.js +0 -19
  179. package/dist/packem_shared/missing-package-json-DhYzuKhD.js +0 -1
  180. package/dist/packem_shared/provenance-C0P-UYOM.js +0 -1
  181. package/dist/packem_shared/readJsonSync-CvkZyKmL-CY7PZob_.js +0 -4
  182. package/dist/packem_shared/registry-keys-D4chF-Wj.js +0 -1
  183. package/dist/packem_shared/resolve-explicit-Cgheka3B.js +0 -5
  184. package/dist/packem_shared/run-file-B4TqKa0X.js +0 -1
  185. package/dist/packem_shared/s1ngularity-Du1NnSFP.js +0 -1
  186. package/dist/packem_shared/scan-progress-CN9ONR0y.js +0 -2
  187. package/dist/packem_shared/spinner-lhXugSx3.js +0 -1
  188. package/dist/packem_shared/tabs-DTiU3usb.js +0 -1
  189. package/dist/packem_shared/target-options-ChWcK60i.js +0 -1
  190. package/dist/packem_shared/toolchain-DyCKnGch.js +0 -5
  191. package/dist/packem_shared/use-measured-height-CK2Co3XI.js +0 -1
  192. package/dist/packem_shared/utils-Cxree603.js +0 -1
  193. package/dist/packem_shared/verify-CVPYlUrF.js +0 -1
  194. package/dist/packem_shared/vis-update-app-DtHkwBca.js +0 -1
  195. package/dist/packem_shared/watch-loop-D9zbXzRd.js +0 -11
@@ -1 +1 @@
1
- import{createRequire as L}from"node:module";import{f as R,m as $,H as S,j as x,v as N}from"./index-OQZQyN5R.js";import{s as y}from"./index-Cb4x6lWY.js";import{resolveDlx as J,whichBin as z,detectPackageManager as H,execPmCommandInteractive as F,resolveAdd as V,resolveRemove as Y,resolveInstall as G,resolveDedupe as K,resolveWhy as Q,resolveLink as X,resolveUnlink as Z,resolveExec as ee,resolvePmCommand as ne}from"#native";const T=L(import.meta.url),b=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,U=e=>{if(typeof b<"u"&&b.versions&&b.versions.node){const[n,s]=b.versions.node.split(".").map(Number);if(n>22||n===22&&s>=3||n===20&&s>=16)return b.getBuiltinModule(e)}return T(e)},{spawn:q,spawnSync:B}=U("node:child_process"),h=(e,n,s,r)=>{for(const a of n)e.push("--filter",a);s&&e.push("--recursive"),r&&e.push("--workspace-root")},se=e=>{const n=[],s=[];return h(n,e.filter,e.recursive,e.workspaceRoot),e.silent&&n.push("--silent"),e.frozenLockfile&&n.push("--frozen-lockfile"),n.push("install"),e.dev&&n.push("--dev"),e.prod&&n.push("--prod"),e.force&&n.push("--force"),e.ignoreScripts&&n.push("--ignore-scripts"),e.lockfileOnly&&n.push("--lockfile-only"),e.noOptional&&n.push("--no-optional"),e.offline&&n.push("--offline"),{args:n,bin:"aube",warnings:s}},re=e=>{const n=[],s=[];return h(n,e.filter,!1,!1),n.push("add"),e.saveDev&&n.push("--save-dev"),e.exact&&n.push("--save-exact"),e.global&&n.push("--global"),e.optional&&n.push("--save-optional"),e.peer&&n.push("--save-peer"),e.workspace&&s.push("aube has no flag for the `workspace:` protocol; it auto-detects local workspace members during add. Ignoring --workspace."),e.workspaceRoot&&n.push("--workspace"),n.push(...e.packages),{args:n,bin:"aube",warnings:s}},ae=e=>{const n=[];return h(n,e.filter,e.recursive,!1),n.push("remove"),e.saveDev&&n.push("--save-dev"),e.global&&n.push("--global"),e.workspaceRoot&&n.push("--workspace"),n.push(...e.packages),{args:n,bin:"aube",warnings:[]}},oe=e=>{const n=["dedupe"];return e&&n.push("--check"),{args:n,bin:"aube",warnings:[]}},ie=e=>{const n=[],s=[];h(n,e.filter,e.recursive,!1),n.push("why"),e.dev&&n.push("--dev"),e.prod&&n.push("--prod"),e.json&&n.push("--json"),e.long&&n.push("--long"),e.parseable&&n.push("--parseable"),e.depth!==void 0&&s.push("aube why does not accept --depth; ignoring."),e.noOptional&&s.push("aube why does not accept --no-optional; ignoring."),e.global&&s.push("aube why does not accept --global; ignoring.");const[r,...a]=e.packages;return r===void 0?s.push("aube why requires a package name; none provided."):(a.length>0&&s.push("aube why takes a single package; using the first."),n.push(r)),{args:n,bin:"aube",warnings:s}},te=e=>{const n=[];e.silent&&n.push("--silent"),n.push("dlx");for(const s of e.additionalPackages)n.push("--package",s);return e.shellMode&&n.push("--shell-mode"),n.push(e.package),n.push(...e.args),{args:n,bin:"aube",warnings:[]}},pe=e=>{const n=[];return h(n,e.filter,e.recursive,e.workspaceRoot),n.push("exec"),e.parallel&&n.push("--parallel"),e.reverse&&n.push("--reverse"),e.shellMode&&n.push("--shell-mode"),n.push(e.command),n.push(...e.args),{args:n,bin:"aube",warnings:[]}},ue=e=>{const n=["link"];return e!==null&&n.push(e),{args:n,bin:"aube",warnings:[]}},ce=(e,n)=>{const s=[],r=[];return n&&s.push("--recursive"),s.push("unlink"),e.length>1&&r.push("aube unlink takes a single package; using the first."),e.length>0&&s.push(e[0]),{args:s,bin:"aube",warnings:r}},le=e=>{const n=["view","--",e.package],s=[],[r,...a]=e.fields;return r!==void 0?(a.length>0&&s.push("aube view only supports a single field; using the first."),e.json&&s.push("aube view does not support --json with a field selector; printing the field without --json."),n.push(r)):e.json&&n.push("--json"),{args:n,bin:"aube",warnings:s}},Le=e=>{const n=[],s=[];return h(n,e.filters,e.recursive,e.workspaceRoot),n.push("update"),e.dev&&n.push("--dev"),e.prod&&n.push("--prod"),e.global&&n.push("--global"),e.interactive&&n.push("--interactive"),e.latest&&n.push("--latest"),e.noOptional&&n.push("--no-optional"),e.noSave&&n.push("--no-save"),n.push(...e.packages),{args:n,bin:"aube",warnings:s}},ge=new Set(["fund","ping","search","token"]),de=(e,n)=>ge.has(e)?{args:[e,...n],bin:"npm",warnings:[`'${e}' is not natively supported by aube. Delegating to npm.`]}:{args:[e,...n],bin:"aube",warnings:[]},k=256*1024,he=e=>{const n=e?{...process.env,...e}:{...process.env};return process.stderr.isTTY&&n.FORCE_COLOR===void 0&&n.NO_COLOR===void 0&&(n.FORCE_COLOR="1"),n},_=e=>e!==""&&!/[\s"&()<>^|%!]/u.test(e)?e:`"${e.replaceAll(/(\\*)"/gu,String.raw`$1$1\"`).replace(/(\\+)$/u,"$1$1").replaceAll(/[&()<>^|%!]/gu,String.raw`^$&`)}"`,fe=async(e,n,s)=>new Promise((r,a)=>{const o=process.platform==="win32",i=q(o?_(e):e,o?n.map(t=>_(t)):[...n],{cwd:s.cwd,env:he(s.env),shell:o,stdio:["inherit","pipe","pipe"],windowsHide:!0});let u=[],l=0;const g=t=>{if(u.push(t),l+=t.length,!(l<=k)){for(;u.length>1&&l-u[0].length>k;)l-=u.shift().length;if(u.length===1&&l>k){const d=u[0];u[0]=d.subarray(d.length-k),l=k}}},m=()=>Buffer.concat(u).toString("utf8");i.stdout?.on("data",t=>{process.stdout.write(t),g(t)}),i.stderr?.on("data",t=>{process.stderr.write(t),g(t)}),i.on("error",a),i.on("close",t=>{const d=m();u=[],r({code:t??1,output:d})})}),w=e=>{const n=y.coerce(e);return n?y.gte(n,"11.0.0"):!1},c=e=>e.name==="yarn"&&!e.version.startsWith("1."),j=e=>e.name==="yarn"&&e.version.startsWith("1."),me=e=>e[0]==="rm"?["remove",...e.slice(1)]:e,be=(e,n,s)=>{switch(n){case"audit":return c(e)?{args:["npm","audit",...s],bin:"yarn",kind:"rewrite"}:{kind:"passthrough"};case"config":{if(c(e)){const[r,...a]=s;return r==="delete"?{args:["config","unset",...a],bin:"yarn",kind:"rewrite",warning:"yarn berry uses `config unset`, not `config delete`."}:{kind:"passthrough"}}return e.name==="bun"?{kind:"skip",warning:"bun has no `config` CLI. Edit bunfig.toml or .npmrc directly."}:e.name==="deno"?{kind:"skip",warning:"deno has no registry-config CLI. Edit deno.json directly."}:{kind:"passthrough"}}case"dist-tag":return j(e)?{args:["tag",...s],bin:"yarn",kind:"rewrite",warning:"yarn 1 has no `dist-tag`; using `yarn tag`."}:c(e)?{args:["npm","tag",...me(s)],bin:"yarn",kind:"rewrite"}:e.name==="bun"||e.name==="deno"?{kind:"skip",warning:`${e.name} has no \`dist-tag\`. Use \`npm dist-tag\` instead.`}:{kind:"passthrough"};case"login":case"logout":return c(e)?{args:["npm",n,...s],bin:"yarn",kind:"rewrite"}:e.name==="bun"?{args:[n,...s],bin:"npm",kind:"rewrite",warning:`bun has no \`${n}\`; falling back to \`npm ${n}\` (writes ~/.npmrc, which bun reads).`}:e.name==="deno"?{kind:"skip",warning:`deno has no \`${n}\`. JSR uses browser OAuth via \`deno publish\`.`}:{kind:"passthrough"};case"owner":return e.name==="pnpm"&&w(e.version)?{args:["owner",...s],bin:"npm",kind:"rewrite",warning:"pnpm 11 removed `owner`; falling back to `npm owner`."}:c(e)?{args:["owner",...s],bin:"npm",kind:"rewrite",warning:"yarn berry has no `owner` (not in `yarn npm`); falling back to `npm owner`."}:e.name==="bun"?{args:["owner",...s],bin:"npm",kind:"rewrite",warning:"bun has no `owner`; falling back to `npm owner`."}:e.name==="deno"?{kind:"skip",warning:"deno has no `owner`. JSR uses scope-member roles via the web UI."}:{kind:"passthrough"};case"ping":return e.name==="pnpm"&&w(e.version)?{args:["ping",...s],bin:"npm",kind:"rewrite",warning:"pnpm 11 removed `ping`; falling back to `npm ping`."}:{kind:"passthrough"};case"plugin":return c(e)?{kind:"passthrough"}:{kind:"skip",warning:`${e.name} does not support yarn-style plugins. Skipping (no-op).`};case"prune":return j(e)?{kind:"skip",warning:"yarn 1 has no `prune`. Use `yarn install --production` for a prod-only tree."}:c(e)?{kind:"skip",warning:"yarn berry has no `prune`. Use `yarn workspaces focus --production` instead."}:e.name==="bun"||e.name==="deno"?{kind:"skip",warning:`${e.name} has no \`prune\`. Pruning happens automatically on install.`}:{kind:"passthrough"};case"publish":return c(e)?{args:["npm","publish",...s],bin:"yarn",kind:"rewrite"}:{kind:"passthrough"};case"rebuild":return j(e)?{kind:"skip",warning:"yarn 1 has no `rebuild`. Re-install instead."}:e.name==="bun"?{kind:"skip",warning:"bun has no `rebuild`. Use `bun install --force` instead."}:e.name==="deno"?{kind:"skip",warning:"deno has no `rebuild`."}:{kind:"passthrough"};case"search":return e.name==="pnpm"&&w(e.version)?{args:["search",...s],bin:"npm",kind:"rewrite",warning:"pnpm 11 removed `search`; falling back to `npm search`."}:{kind:"passthrough"};case"token":return e.name==="pnpm"&&w(e.version)?{args:["token",...s],bin:"npm",kind:"rewrite",warning:"pnpm 11 removed `token`; falling back to `npm token`."}:{kind:"passthrough"};case"whoami":return e.name==="pnpm"&&w(e.version)?{args:["whoami",...s],bin:"npm",kind:"rewrite",warning:"pnpm 11 removed `whoami`; falling back to `npm whoami`."}:c(e)?{args:["npm","whoami",...s],bin:"yarn",kind:"rewrite"}:e.name==="bun"?{args:["pm","whoami",...s],bin:"bun",kind:"rewrite"}:e.name==="deno"?{kind:"skip",warning:"deno has no `whoami`. JSR uses browser auth."}:{kind:"passthrough"};default:return{kind:"passthrough"}}},O=e=>z(e)!==null,ke=e=>{const n=[["pnpm-lock.yaml","pnpm"],["yarn.lock","yarn"],["package-lock.json","npm"],["npm-shrinkwrap.json","npm"],["bun.lock","bun"],["bun.lockb","bun"],["deno.lock","deno"]];let s=e;for(;;){for(const[a,o]of n)if(R($(s,a)))return o;const r=S(s);if(r===s||x(s).root===s)return;s=r}},Te=(e,n)=>{if(n.name!=="aube")return;const s=ke(e);if(s!==void 0)return`Resolved installer is aube but the workspace has a ${s} lockfile. Aube reads and writes ${s}'s lockfile format in place, but its byte output may differ subtly — expect a one-time churn diff on the first install, and ongoing drift if your team mixes tools on the same lockfile. To pin the choice across the team, set \`install.backend\` in vis.config; to bypass aube for this run, pass --no-aube.`},C=e=>{if(R(e))try{return JSON.parse(N(e,{buffer:!1}))}catch{return}},we=e=>{let n=e;for(;;){const s=$(n,"package.json"),r=C(s);if(r&&typeof r.packageManager=="string"&&r.packageManager.length>0)return r.packageManager;const a=S(n);if(a===n||x(n).root===n)return;n=a}},E=new Set(["npm","pnpm","yarn"]),W=(e,n,s)=>s===!1||!E.has(n)||!O("corepack")?!1:s===!0?!0:we(e)!==void 0,Ue=(e,n)=>{const s=n.backend,r=process.env.VIS_INSTALLER,a=s??r??n.configBackend,o=n.configCorepack??"auto";if(a&&a!=="auto"){if(a==="aube"&&!O("aube"))throw new Error('install.backend is set to "aube" but the `aube` binary is not on PATH. Install it via `npm i -g @endevco/aube`, `mise use -g aube`, or `brew install endevco/tap/aube`.');return{name:a,useCorepack:W(e,a,o),version:"latest"}}if(O("aube"))return{name:"aube",useCorepack:!1,version:"latest"};const i=ve(e);return{...i,useCorepack:W(e,i.name,o)}},ve=e=>{if(!R(e))throw new Error(`Could not detect package manager in ${e}. Directory does not exist.`);const n=H(e);return{name:n.name,version:n.version||"latest"}},M=(e,n)=>n.useCorepack!==!0||!E.has(n.name)||e.bin==="corepack"||e.bin!==n.name?e:{...e,args:[n.name,...e.args],bin:"corepack"},ye=(e,n,s)=>{if(s===void 0)return F(e.bin,e.args,n);const r=B(e.bin,e.args,{cwd:n,env:{...process.env,...s},stdio:"inherit"});if(r.error)throw r.error;return r.status??1},p=(e,n,s,r,a={})=>{const o=M(n,e);for(const i of o.warnings)r.warn(`warning: ${i}`);return a.dry?(r.log(`[dry-run] ${o.bin} ${o.args.join(" ")}`),0):ye(o,s,a.env)},f=(e,n,s,r,a={})=>p(e,n(),s,r,a),$e=(e,n)=>n==="aube"||n==="deno"?e:{...e,args:[...e.args,"--prefer-offline"]},je=(e,n,s)=>n!=="yarn"||s.startsWith("1.")||!e.args.includes("--immutable")||e.args.includes("--immutable-cache")?e:{...e,args:[...e.args,"--immutable-cache"]},P=(e,n,s)=>{let r=e.name==="aube"?se(n):G(e.name,e.version,{...n,silent:n.silent||s.silent===!0});return s.preferOffline&&(r=$e(r,e.name)),s.ciMode&&(r=je(r,e.name,e.version)),r},qe=(e,n,s,r,a={})=>{const o=P(e,n,a);return D(e,o,s,r,{dry:a.dry,env:a.env})},Be=async(e,n,s,r,a={})=>{const o=M(P(e,n,a),e);for(const i of o.warnings)r.warn(`warning: ${i}`);return a.dry?(r.log(`[dry-run] ${o.bin} ${o.args.join(" ")}`),{code:0,output:""}):fe(o.bin,o.args,{cwd:s,env:a.env?{...process.env,...a.env}:process.env})},I=(e,n)=>{const s=n==="deno"?"--quiet":"--silent";return{...e,args:[...e.args,s]}},Oe=(e,n)=>n==="yarn"||n==="aube"?null:{...e,args:[...e.args,"--dry-run"]},D=(e,n,s,r,a)=>{if(a.dry!==!0)return p(e,n,s,r,a);const o=Oe(n,e.name);return o===null?p(e,n,s,r,a):p(e,o,s,r,{env:a.env})},Re=(e,n)=>n==="aube"?{...e,args:[...e.args,"--ignore-scripts"]}:n==="deno"?e:{...e,args:[...e.args,"--ignore-scripts"]},Se=(e,n,s,r,a={})=>{let o=e.name==="aube"?re(n):V(e.name,e.version,n);a.ignoreScripts&&(o=Re(o,e.name)),a.silent&&(o=I(o,e.name));const i=D(e,o,s,r,{dry:a.dry,env:a.env});return i===0&&a.autoInstallPeers&&_e(e,n,s,r,a),i},xe=e=>{if(e.startsWith("@")){const s=e.indexOf("/");if(s===-1)return e;const r=e.indexOf("@",s);return r===-1?e:e.slice(0,r)}const n=e.indexOf("@");return n===-1?e:e.slice(0,n)},Ce=(e,n)=>{let s=e;for(;;){const r=$(s,"node_modules",n,"package.json"),a=C(r);if(a)return a;const o=S(s);if(o===s||x(s).root===s)return;s=o}},De=e=>{const n=C($(e,"package.json")),s=new Set;if(!n)return s;for(const r of["dependencies","devDependencies","peerDependencies","optionalDependencies"]){const a=n[r];if(a)for(const o of Object.keys(a))s.add(o)}return s},_e=(e,n,s,r,a)=>{if(e.name==="deno")return;const o=De(s),i=new Map;for(const g of n.packages){const m=xe(g),t=Ce(s,m);if(!t?.peerDependencies)continue;const d=t.peerDependenciesMeta??{};for(const[v,A]of Object.entries(t.peerDependencies))d[v]?.optional||o.has(v)||i.has(v)||i.set(v,A)}if(i.size===0)return;const u=[...i.entries()].map(([g,m])=>`${g}@${m}`);r.log(`auto-installing peer dependencies: ${u.join(", ")}`);const l={exact:!1,filter:n.filter,global:!1,optional:!1,packages:u,peer:!1,saveDev:n.saveDev,workspace:!1,workspaceRoot:n.workspaceRoot};Se(e,l,s,r,{ignoreScripts:a.ignoreScripts})},Ne=(e,n,s,r,a={})=>{let o=e.name==="aube"?ae(n):Y(e.name,e.version,n);return a.silent&&(o=I(o,e.name)),D(e,o,s,r,{dry:a.dry,env:a.env})},Je=(e,n,s,r,a={})=>e.name==="aube"?p(e,oe(n),s,r,a):f(e,()=>K(e.name,e.version,n),s,r,a),ze=(e,n,s,r,a={})=>e.name==="aube"?p(e,ie(n),s,r,a):f(e,()=>Q(e.name,e.version,n),s,r,a),We=(e,n)=>{if(e.name==="aube")return le(n);const s=[],r=[],a=e.name;switch(e.name){case"bun":{const o=y.coerce(e.version);o&&y.lt(o,"1.3.0")&&r.push(`bun ${e.version} does not support \`bun pm view\` (added in bun 1.3). Upgrade bun, or run \`npm view ${n.package}\` instead.`),s.push("pm","view","--",n.package,...n.fields),n.json&&s.push("--json");break}case"deno":{const o=n.package.startsWith("npm:")||n.package.startsWith("jsr:")||n.package.startsWith("https://")||n.package.startsWith("http://")||n.package.startsWith("file:")?n.package:`npm:${n.package}`;s.push("info","--",o),n.json&&s.push("--json"),n.fields.length>0&&r.push("deno info does not accept field selectors; ignoring.");break}case"npm":case"pnpm":{s.push("view","--",n.package,...n.fields),n.json&&s.push("--json");break}case"yarn":{if(e.version.startsWith("1.")){s.push("info","--",n.package);const[o,...i]=n.fields;o!==void 0&&(i.length>0&&r.push("yarn v1 only supports querying one field at a time; using the first."),s.push(o)),n.json&&s.push("--json")}else s.push("npm","info","--",n.package),n.fields.length>0&&r.push("yarn berry does not support field arguments to 'npm info'; ignoring."),n.json&&s.push("--json");break}default:{const o=e.name;throw new Error(`Unsupported package manager: ${o}`)}}return{args:s,bin:a,warnings:r}},He=(e,n,s,r,a={})=>p(e,We(e,n),s,r,a),Fe=(e,n,s,r,a={})=>e.name==="aube"?p(e,ue(n),s,r,a):f(e,()=>X(e.name,e.version,n),s,r,a),Ve=(e,n,s,r,a,o={})=>e.name==="aube"?p(e,ce(n,s),r,a,o):f(e,()=>Z(e.name,e.version,n,s),r,a,o),Ee=(e,n,s)=>{if(e.args.includes("--offline")||e.args.includes("--cached-only"))return e;const r=(a,o)=>{const i=[...e.args];return i.splice(o,0,a),{...e,args:i}};switch(n){case"aube":case"pnpm":return r("--offline",1);case"bun":return{...e,warnings:[...e.warnings,"bun x does not support --offline. Pre-install the package via `vis install` so bun x resolves from the local cache."]};case"deno":return r("--cached-only",1);case"npm":return r("--offline",1);case"yarn":return s.startsWith("1.")?r("--offline",0):{...e,warnings:[...e.warnings,"yarn berry has no --offline flag for dlx. Configure `enableNetwork: false` in .yarnrc.yml or set `enableMirror: true` for offline-first behavior."]};default:{const a=n;return{...e,warnings:[...e.warnings,`applyDlxOffline: unsupported pm ${String(a)}`]}}}},Ye=(e,n,s,r,a={})=>{let o=e.name==="aube"?te(n):J(e.name,e.version,n);return a.offline&&(o=Ee(o,e.name,e.version)),p(e,o,s,r,{dry:a.dry,env:a.env})},Ge=(e,n,s,r,a={})=>e.name==="aube"?p(e,pe(n),s,r,a):f(e,()=>ee(e.name,e.version,n),s,r,a),Ke=(e,n,s,r,a,o={})=>{if(e.name==="aube")return p(e,de(n,s),r,a,o);const i=be(e,n,s);return i.kind==="skip"?(a.warn(`warning: ${i.warning}`),0):i.kind==="rewrite"?p(e,{args:i.args,bin:i.bin,warnings:i.warning?[i.warning]:[]},r,a,o):f(e,()=>ne(e.name,e.version,n,s),r,a,o)};export{Ye as $,Ke as B,Ne as D,ze as E,Ue as I,Se as M,He as P,qe as R,Ve as S,Ge as W,Be as h,Fe as j,Te as p,fe as s,Le as v,ve as w,Je as x};
1
+ import{createRequire as L}from"node:module";import{f as R,m as $,H as S,j as x,v as N}from"./index-CE6MsgcV.js";import{s as y}from"./index-Cg0IHaFI.js";import{resolveDlx as J,whichBin as z,detectPackageManager as H,execPmCommandInteractive as F,resolveAdd as V,resolveRemove as Y,resolveInstall as G,resolveDedupe as K,resolveWhy as Q,resolveLink as X,resolveUnlink as Z,resolveExec as ee,resolvePmCommand as ne}from"#native";const T=L(import.meta.url),b=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,U=e=>{if(typeof b<"u"&&b.versions&&b.versions.node){const[n,s]=b.versions.node.split(".").map(Number);if(n>22||n===22&&s>=3||n===20&&s>=16)return b.getBuiltinModule(e)}return T(e)},{spawn:q,spawnSync:B}=U("node:child_process"),h=(e,n,s,r)=>{for(const a of n)e.push("--filter",a);s&&e.push("--recursive"),r&&e.push("--workspace-root")},se=e=>{const n=[],s=[];return h(n,e.filter,e.recursive,e.workspaceRoot),e.silent&&n.push("--silent"),e.frozenLockfile&&n.push("--frozen-lockfile"),n.push("install"),e.dev&&n.push("--dev"),e.prod&&n.push("--prod"),e.force&&n.push("--force"),e.ignoreScripts&&n.push("--ignore-scripts"),e.lockfileOnly&&n.push("--lockfile-only"),e.noOptional&&n.push("--no-optional"),e.offline&&n.push("--offline"),{args:n,bin:"aube",warnings:s}},re=e=>{const n=[],s=[];return h(n,e.filter,!1,!1),n.push("add"),e.saveDev&&n.push("--save-dev"),e.exact&&n.push("--save-exact"),e.global&&n.push("--global"),e.optional&&n.push("--save-optional"),e.peer&&n.push("--save-peer"),e.workspace&&s.push("aube has no flag for the `workspace:` protocol; it auto-detects local workspace members during add. Ignoring --workspace."),e.workspaceRoot&&n.push("--workspace"),n.push(...e.packages),{args:n,bin:"aube",warnings:s}},ae=e=>{const n=[];return h(n,e.filter,e.recursive,!1),n.push("remove"),e.saveDev&&n.push("--save-dev"),e.global&&n.push("--global"),e.workspaceRoot&&n.push("--workspace"),n.push(...e.packages),{args:n,bin:"aube",warnings:[]}},oe=e=>{const n=["dedupe"];return e&&n.push("--check"),{args:n,bin:"aube",warnings:[]}},ie=e=>{const n=[],s=[];h(n,e.filter,e.recursive,!1),n.push("why"),e.dev&&n.push("--dev"),e.prod&&n.push("--prod"),e.json&&n.push("--json"),e.long&&n.push("--long"),e.parseable&&n.push("--parseable"),e.depth!==void 0&&s.push("aube why does not accept --depth; ignoring."),e.noOptional&&s.push("aube why does not accept --no-optional; ignoring."),e.global&&s.push("aube why does not accept --global; ignoring.");const[r,...a]=e.packages;return r===void 0?s.push("aube why requires a package name; none provided."):(a.length>0&&s.push("aube why takes a single package; using the first."),n.push(r)),{args:n,bin:"aube",warnings:s}},te=e=>{const n=[];e.silent&&n.push("--silent"),n.push("dlx");for(const s of e.additionalPackages)n.push("--package",s);return e.shellMode&&n.push("--shell-mode"),n.push(e.package),n.push(...e.args),{args:n,bin:"aube",warnings:[]}},pe=e=>{const n=[];return h(n,e.filter,e.recursive,e.workspaceRoot),n.push("exec"),e.parallel&&n.push("--parallel"),e.reverse&&n.push("--reverse"),e.shellMode&&n.push("--shell-mode"),n.push(e.command),n.push(...e.args),{args:n,bin:"aube",warnings:[]}},ue=e=>{const n=["link"];return e!==null&&n.push(e),{args:n,bin:"aube",warnings:[]}},ce=(e,n)=>{const s=[],r=[];return n&&s.push("--recursive"),s.push("unlink"),e.length>1&&r.push("aube unlink takes a single package; using the first."),e.length>0&&s.push(e[0]),{args:s,bin:"aube",warnings:r}},le=e=>{const n=["view","--",e.package],s=[],[r,...a]=e.fields;return r!==void 0?(a.length>0&&s.push("aube view only supports a single field; using the first."),e.json&&s.push("aube view does not support --json with a field selector; printing the field without --json."),n.push(r)):e.json&&n.push("--json"),{args:n,bin:"aube",warnings:s}},Le=e=>{const n=[],s=[];return h(n,e.filters,e.recursive,e.workspaceRoot),n.push("update"),e.dev&&n.push("--dev"),e.prod&&n.push("--prod"),e.global&&n.push("--global"),e.interactive&&n.push("--interactive"),e.latest&&n.push("--latest"),e.noOptional&&n.push("--no-optional"),e.noSave&&n.push("--no-save"),n.push(...e.packages),{args:n,bin:"aube",warnings:s}},ge=new Set(["fund","ping","search","token"]),de=(e,n)=>ge.has(e)?{args:[e,...n],bin:"npm",warnings:[`'${e}' is not natively supported by aube. Delegating to npm.`]}:{args:[e,...n],bin:"aube",warnings:[]},k=256*1024,he=e=>{const n=e?{...process.env,...e}:{...process.env};return process.stderr.isTTY&&n.FORCE_COLOR===void 0&&n.NO_COLOR===void 0&&(n.FORCE_COLOR="1"),n},_=e=>e!==""&&!/[\s"&()<>^|%!]/u.test(e)?e:`"${e.replaceAll(/(\\*)"/gu,String.raw`$1$1\"`).replace(/(\\+)$/u,"$1$1").replaceAll(/[&()<>^|%!]/gu,String.raw`^$&`)}"`,fe=async(e,n,s)=>new Promise((r,a)=>{const o=process.platform==="win32",i=q(o?_(e):e,o?n.map(t=>_(t)):[...n],{cwd:s.cwd,env:he(s.env),shell:o,stdio:["inherit","pipe","pipe"],windowsHide:!0});let u=[],l=0;const g=t=>{if(u.push(t),l+=t.length,!(l<=k)){for(;u.length>1&&l-u[0].length>k;)l-=u.shift().length;if(u.length===1&&l>k){const d=u[0];u[0]=d.subarray(d.length-k),l=k}}},m=()=>Buffer.concat(u).toString("utf8");i.stdout?.on("data",t=>{process.stdout.write(t),g(t)}),i.stderr?.on("data",t=>{process.stderr.write(t),g(t)}),i.on("error",a),i.on("close",t=>{const d=m();u=[],r({code:t??1,output:d})})}),w=e=>{const n=y.coerce(e);return n?y.gte(n,"11.0.0"):!1},c=e=>e.name==="yarn"&&!e.version.startsWith("1."),j=e=>e.name==="yarn"&&e.version.startsWith("1."),me=e=>e[0]==="rm"?["remove",...e.slice(1)]:e,be=(e,n,s)=>{switch(n){case"audit":return c(e)?{args:["npm","audit",...s],bin:"yarn",kind:"rewrite"}:{kind:"passthrough"};case"config":{if(c(e)){const[r,...a]=s;return r==="delete"?{args:["config","unset",...a],bin:"yarn",kind:"rewrite",warning:"yarn berry uses `config unset`, not `config delete`."}:{kind:"passthrough"}}return e.name==="bun"?{kind:"skip",warning:"bun has no `config` CLI. Edit bunfig.toml or .npmrc directly."}:e.name==="deno"?{kind:"skip",warning:"deno has no registry-config CLI. Edit deno.json directly."}:{kind:"passthrough"}}case"dist-tag":return j(e)?{args:["tag",...s],bin:"yarn",kind:"rewrite",warning:"yarn 1 has no `dist-tag`; using `yarn tag`."}:c(e)?{args:["npm","tag",...me(s)],bin:"yarn",kind:"rewrite"}:e.name==="bun"||e.name==="deno"?{kind:"skip",warning:`${e.name} has no \`dist-tag\`. Use \`npm dist-tag\` instead.`}:{kind:"passthrough"};case"login":case"logout":return c(e)?{args:["npm",n,...s],bin:"yarn",kind:"rewrite"}:e.name==="bun"?{args:[n,...s],bin:"npm",kind:"rewrite",warning:`bun has no \`${n}\`; falling back to \`npm ${n}\` (writes ~/.npmrc, which bun reads).`}:e.name==="deno"?{kind:"skip",warning:`deno has no \`${n}\`. JSR uses browser OAuth via \`deno publish\`.`}:{kind:"passthrough"};case"owner":return e.name==="pnpm"&&w(e.version)?{args:["owner",...s],bin:"npm",kind:"rewrite",warning:"pnpm 11 removed `owner`; falling back to `npm owner`."}:c(e)?{args:["owner",...s],bin:"npm",kind:"rewrite",warning:"yarn berry has no `owner` (not in `yarn npm`); falling back to `npm owner`."}:e.name==="bun"?{args:["owner",...s],bin:"npm",kind:"rewrite",warning:"bun has no `owner`; falling back to `npm owner`."}:e.name==="deno"?{kind:"skip",warning:"deno has no `owner`. JSR uses scope-member roles via the web UI."}:{kind:"passthrough"};case"ping":return e.name==="pnpm"&&w(e.version)?{args:["ping",...s],bin:"npm",kind:"rewrite",warning:"pnpm 11 removed `ping`; falling back to `npm ping`."}:{kind:"passthrough"};case"plugin":return c(e)?{kind:"passthrough"}:{kind:"skip",warning:`${e.name} does not support yarn-style plugins. Skipping (no-op).`};case"prune":return j(e)?{kind:"skip",warning:"yarn 1 has no `prune`. Use `yarn install --production` for a prod-only tree."}:c(e)?{kind:"skip",warning:"yarn berry has no `prune`. Use `yarn workspaces focus --production` instead."}:e.name==="bun"||e.name==="deno"?{kind:"skip",warning:`${e.name} has no \`prune\`. Pruning happens automatically on install.`}:{kind:"passthrough"};case"publish":return c(e)?{args:["npm","publish",...s],bin:"yarn",kind:"rewrite"}:{kind:"passthrough"};case"rebuild":return j(e)?{kind:"skip",warning:"yarn 1 has no `rebuild`. Re-install instead."}:e.name==="bun"?{kind:"skip",warning:"bun has no `rebuild`. Use `bun install --force` instead."}:e.name==="deno"?{kind:"skip",warning:"deno has no `rebuild`."}:{kind:"passthrough"};case"search":return e.name==="pnpm"&&w(e.version)?{args:["search",...s],bin:"npm",kind:"rewrite",warning:"pnpm 11 removed `search`; falling back to `npm search`."}:{kind:"passthrough"};case"token":return e.name==="pnpm"&&w(e.version)?{args:["token",...s],bin:"npm",kind:"rewrite",warning:"pnpm 11 removed `token`; falling back to `npm token`."}:{kind:"passthrough"};case"whoami":return e.name==="pnpm"&&w(e.version)?{args:["whoami",...s],bin:"npm",kind:"rewrite",warning:"pnpm 11 removed `whoami`; falling back to `npm whoami`."}:c(e)?{args:["npm","whoami",...s],bin:"yarn",kind:"rewrite"}:e.name==="bun"?{args:["pm","whoami",...s],bin:"bun",kind:"rewrite"}:e.name==="deno"?{kind:"skip",warning:"deno has no `whoami`. JSR uses browser auth."}:{kind:"passthrough"};default:return{kind:"passthrough"}}},O=e=>z(e)!==null,ke=e=>{const n=[["pnpm-lock.yaml","pnpm"],["yarn.lock","yarn"],["package-lock.json","npm"],["npm-shrinkwrap.json","npm"],["bun.lock","bun"],["bun.lockb","bun"],["deno.lock","deno"]];let s=e;for(;;){for(const[a,o]of n)if(R($(s,a)))return o;const r=S(s);if(r===s||x(s).root===s)return;s=r}},Te=(e,n)=>{if(n.name!=="aube")return;const s=ke(e);if(s!==void 0)return`Resolved installer is aube but the workspace has a ${s} lockfile. Aube reads and writes ${s}'s lockfile format in place, but its byte output may differ subtly — expect a one-time churn diff on the first install, and ongoing drift if your team mixes tools on the same lockfile. To pin the choice across the team, set \`install.backend\` in vis.config; to bypass aube for this run, pass --no-aube.`},C=e=>{if(R(e))try{return JSON.parse(N(e,{buffer:!1}))}catch{return}},we=e=>{let n=e;for(;;){const s=$(n,"package.json"),r=C(s);if(r&&typeof r.packageManager=="string"&&r.packageManager.length>0)return r.packageManager;const a=S(n);if(a===n||x(n).root===n)return;n=a}},E=new Set(["npm","pnpm","yarn"]),W=(e,n,s)=>s===!1||!E.has(n)||!O("corepack")?!1:s===!0?!0:we(e)!==void 0,Ue=(e,n)=>{const s=n.backend,r=process.env.VIS_INSTALLER,a=s??r??n.configBackend,o=n.configCorepack??"auto";if(a&&a!=="auto"){if(a==="aube"&&!O("aube"))throw new Error('install.backend is set to "aube" but the `aube` binary is not on PATH. Install it via `npm i -g @endevco/aube`, `mise use -g aube`, or `brew install endevco/tap/aube`.');return{name:a,useCorepack:W(e,a,o),version:"latest"}}if(O("aube"))return{name:"aube",useCorepack:!1,version:"latest"};const i=ve(e);return{...i,useCorepack:W(e,i.name,o)}},ve=e=>{if(!R(e))throw new Error(`Could not detect package manager in ${e}. Directory does not exist.`);const n=H(e);return{name:n.name,version:n.version||"latest"}},M=(e,n)=>n.useCorepack!==!0||!E.has(n.name)||e.bin==="corepack"||e.bin!==n.name?e:{...e,args:[n.name,...e.args],bin:"corepack"},ye=(e,n,s)=>{if(s===void 0)return F(e.bin,e.args,n);const r=B(e.bin,e.args,{cwd:n,env:{...process.env,...s},stdio:"inherit"});if(r.error)throw r.error;return r.status??1},p=(e,n,s,r,a={})=>{const o=M(n,e);for(const i of o.warnings)r.warn(`warning: ${i}`);return a.dry?(r.log(`[dry-run] ${o.bin} ${o.args.join(" ")}`),0):ye(o,s,a.env)},f=(e,n,s,r,a={})=>p(e,n(),s,r,a),$e=(e,n)=>n==="aube"||n==="deno"?e:{...e,args:[...e.args,"--prefer-offline"]},je=(e,n,s)=>n!=="yarn"||s.startsWith("1.")||!e.args.includes("--immutable")||e.args.includes("--immutable-cache")?e:{...e,args:[...e.args,"--immutable-cache"]},P=(e,n,s)=>{let r=e.name==="aube"?se(n):G(e.name,e.version,{...n,silent:n.silent||s.silent===!0});return s.preferOffline&&(r=$e(r,e.name)),s.ciMode&&(r=je(r,e.name,e.version)),r},qe=(e,n,s,r,a={})=>{const o=P(e,n,a);return D(e,o,s,r,{dry:a.dry,env:a.env})},Be=async(e,n,s,r,a={})=>{const o=M(P(e,n,a),e);for(const i of o.warnings)r.warn(`warning: ${i}`);return a.dry?(r.log(`[dry-run] ${o.bin} ${o.args.join(" ")}`),{code:0,output:""}):fe(o.bin,o.args,{cwd:s,env:a.env?{...process.env,...a.env}:process.env})},I=(e,n)=>{const s=n==="deno"?"--quiet":"--silent";return{...e,args:[...e.args,s]}},Oe=(e,n)=>n==="yarn"||n==="aube"?null:{...e,args:[...e.args,"--dry-run"]},D=(e,n,s,r,a)=>{if(a.dry!==!0)return p(e,n,s,r,a);const o=Oe(n,e.name);return o===null?p(e,n,s,r,a):p(e,o,s,r,{env:a.env})},Re=(e,n)=>n==="aube"?{...e,args:[...e.args,"--ignore-scripts"]}:n==="deno"?e:{...e,args:[...e.args,"--ignore-scripts"]},Se=(e,n,s,r,a={})=>{let o=e.name==="aube"?re(n):V(e.name,e.version,n);a.ignoreScripts&&(o=Re(o,e.name)),a.silent&&(o=I(o,e.name));const i=D(e,o,s,r,{dry:a.dry,env:a.env});return i===0&&a.autoInstallPeers&&_e(e,n,s,r,a),i},xe=e=>{if(e.startsWith("@")){const s=e.indexOf("/");if(s===-1)return e;const r=e.indexOf("@",s);return r===-1?e:e.slice(0,r)}const n=e.indexOf("@");return n===-1?e:e.slice(0,n)},Ce=(e,n)=>{let s=e;for(;;){const r=$(s,"node_modules",n,"package.json"),a=C(r);if(a)return a;const o=S(s);if(o===s||x(s).root===s)return;s=o}},De=e=>{const n=C($(e,"package.json")),s=new Set;if(!n)return s;for(const r of["dependencies","devDependencies","peerDependencies","optionalDependencies"]){const a=n[r];if(a)for(const o of Object.keys(a))s.add(o)}return s},_e=(e,n,s,r,a)=>{if(e.name==="deno")return;const o=De(s),i=new Map;for(const g of n.packages){const m=xe(g),t=Ce(s,m);if(!t?.peerDependencies)continue;const d=t.peerDependenciesMeta??{};for(const[v,A]of Object.entries(t.peerDependencies))d[v]?.optional||o.has(v)||i.has(v)||i.set(v,A)}if(i.size===0)return;const u=[...i.entries()].map(([g,m])=>`${g}@${m}`);r.log(`auto-installing peer dependencies: ${u.join(", ")}`);const l={exact:!1,filter:n.filter,global:!1,optional:!1,packages:u,peer:!1,saveDev:n.saveDev,workspace:!1,workspaceRoot:n.workspaceRoot};Se(e,l,s,r,{ignoreScripts:a.ignoreScripts})},Ne=(e,n,s,r,a={})=>{let o=e.name==="aube"?ae(n):Y(e.name,e.version,n);return a.silent&&(o=I(o,e.name)),D(e,o,s,r,{dry:a.dry,env:a.env})},Je=(e,n,s,r,a={})=>e.name==="aube"?p(e,oe(n),s,r,a):f(e,()=>K(e.name,e.version,n),s,r,a),ze=(e,n,s,r,a={})=>e.name==="aube"?p(e,ie(n),s,r,a):f(e,()=>Q(e.name,e.version,n),s,r,a),We=(e,n)=>{if(e.name==="aube")return le(n);const s=[],r=[],a=e.name;switch(e.name){case"bun":{const o=y.coerce(e.version);o&&y.lt(o,"1.3.0")&&r.push(`bun ${e.version} does not support \`bun pm view\` (added in bun 1.3). Upgrade bun, or run \`npm view ${n.package}\` instead.`),s.push("pm","view","--",n.package,...n.fields),n.json&&s.push("--json");break}case"deno":{const o=n.package.startsWith("npm:")||n.package.startsWith("jsr:")||n.package.startsWith("https://")||n.package.startsWith("http://")||n.package.startsWith("file:")?n.package:`npm:${n.package}`;s.push("info","--",o),n.json&&s.push("--json"),n.fields.length>0&&r.push("deno info does not accept field selectors; ignoring.");break}case"npm":case"pnpm":{s.push("view","--",n.package,...n.fields),n.json&&s.push("--json");break}case"yarn":{if(e.version.startsWith("1.")){s.push("info","--",n.package);const[o,...i]=n.fields;o!==void 0&&(i.length>0&&r.push("yarn v1 only supports querying one field at a time; using the first."),s.push(o)),n.json&&s.push("--json")}else s.push("npm","info","--",n.package),n.fields.length>0&&r.push("yarn berry does not support field arguments to 'npm info'; ignoring."),n.json&&s.push("--json");break}default:{const o=e.name;throw new Error(`Unsupported package manager: ${o}`)}}return{args:s,bin:a,warnings:r}},He=(e,n,s,r,a={})=>p(e,We(e,n),s,r,a),Fe=(e,n,s,r,a={})=>e.name==="aube"?p(e,ue(n),s,r,a):f(e,()=>X(e.name,e.version,n),s,r,a),Ve=(e,n,s,r,a,o={})=>e.name==="aube"?p(e,ce(n,s),r,a,o):f(e,()=>Z(e.name,e.version,n,s),r,a,o),Ee=(e,n,s)=>{if(e.args.includes("--offline")||e.args.includes("--cached-only"))return e;const r=(a,o)=>{const i=[...e.args];return i.splice(o,0,a),{...e,args:i}};switch(n){case"aube":case"pnpm":return r("--offline",1);case"bun":return{...e,warnings:[...e.warnings,"bun x does not support --offline. Pre-install the package via `vis install` so bun x resolves from the local cache."]};case"deno":return r("--cached-only",1);case"npm":return r("--offline",1);case"yarn":return s.startsWith("1.")?r("--offline",0):{...e,warnings:[...e.warnings,"yarn berry has no --offline flag for dlx. Configure `enableNetwork: false` in .yarnrc.yml or set `enableMirror: true` for offline-first behavior."]};default:{const a=n;return{...e,warnings:[...e.warnings,`applyDlxOffline: unsupported pm ${String(a)}`]}}}},Ye=(e,n,s,r,a={})=>{let o=e.name==="aube"?te(n):J(e.name,e.version,n);return a.offline&&(o=Ee(o,e.name,e.version)),p(e,o,s,r,{dry:a.dry,env:a.env})},Ge=(e,n,s,r,a={})=>e.name==="aube"?p(e,pe(n),s,r,a):f(e,()=>ee(e.name,e.version,n),s,r,a),Ke=(e,n,s,r,a,o={})=>{if(e.name==="aube")return p(e,de(n,s),r,a,o);const i=be(e,n,s);return i.kind==="skip"?(a.warn(`warning: ${i.warning}`),0):i.kind==="rewrite"?p(e,{args:i.args,bin:i.bin,warnings:i.warning?[i.warning]:[]},r,a,o):f(e,()=>ne(e.name,e.version,n,s),r,a,o)};export{Ye as $,Ke as B,Ne as D,ze as E,Ue as I,Se as M,He as P,qe as R,Ve as S,Ge as W,Be as h,Fe as j,Te as p,fe as s,Le as v,ve as w,Je as x};
@@ -0,0 +1 @@
1
+ import{createRequire as n}from"node:module";const i=n(import.meta.url),o=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,a=t=>{if(typeof o<"u"&&o.versions&&o.versions.node){const[e,s]=o.versions.node.split(".").map(Number);if(e>22||e===22&&s>=3||e===20&&s>=16)return o.getBuiltinModule(t)}return i(t)},{createInterface:c}=a("node:readline"),u=async t=>{const e=c({input:process.stdin,output:process.stdout});try{return await new Promise(s=>{e.question(t,r=>{s(r.trim().toLowerCase())})})}finally{e.close()}},l=async(t,e=u)=>{const s=(await e(t)).trim().toLowerCase();return s==="y"||s==="yes"};export{u as d,l as p};
@@ -0,0 +1 @@
1
+ import{s as c}from"./index-Cg0IHaFI.js";import{g as m}from"./packument-DquNPIq9.js";import{i as v}from"../packem_chunks/cli-main.js";const h=8,u=async(t,r,e)=>{if(t.length===0)return[];const o=Math.max(1,Math.min(r,t.length)),s=Array.from({length:t.length});let n=0;const i=async()=>{for(;n<t.length;){const a=n;n+=1;const f=t[a];s[a]=await e(f,a)}};return await Promise.all(Array.from({length:o},()=>i())),s},l=(t,r)=>t.versions[r]?.dist?.attestations?.provenance!==void 0,p=(t,r)=>c.valid(r)?Object.keys(t.versions).filter(e=>c.valid(e)!==null&&c.lt(e,r)).filter(e=>c.satisfies(e,"*",{includePrerelease:!1})).filter(e=>l(t,e)).sort((e,o)=>c.lt(e,o)?1:-1)[0]:void 0,y=async(t,r={})=>{if(v("provenance"))return[];const e=new Set(r.allowlist),o=r.concurrency??h;return(await u(t,o,async({name:s,version:n})=>{if(e.has(s))return;const i=await m(s,{workspaceRoot:r.workspaceRoot});if(i===void 0||l(i,n))return;const a=p(i,n);if(a!==void 0)return{packageName:s,priorVersionWithProvenance:a,version:n}})).filter(s=>s!==void 0)};export{h as D,p as f,u as m,y as r};
@@ -0,0 +1 @@
1
+ import{s as a,z as l,U as s,v as f,L as d}from"./index-CE6MsgcV.js";const m=e=>String.raw`\u{${e.codePointAt(0).toString(16)}}`,p=(e,o,c)=>s(e,{start:o},{tabWidth:!1,...c}),g=/in JSON at position (\d+)(?: \(line (\d+) column (\d+)\))?$/,h=(e,o)=>{const c=g.exec(o);if(!c)return;const[,i,t,n]=c;if(t&&n)return{column:Number(n),line:Number(t)};let r=Number(i);return r===e.length&&(r=e.length-1),l(e,r)},N=/(?<=^Unexpected token )(?<quote>')?(.)\k<quote>/,b=e=>e.replace(N,(o,c,i)=>`"${i}"(${m(i)})`);function w(e,o,c,i){let t;try{return JSON.parse(e,o)}catch(u){t=u.message}let n;e?(n=h(e,t),t=b(t)):t+=" while parsing empty string";const r=new a(t);throw r.fileName=c,n&&(r.codeFrame=p(e,n,i)),r}function S(e,o,c){const i=f(e,{buffer:!0,encoding:void 0});let t=new TextDecoder().decode(i);const{beforeParse:n,color:r}={};return typeof n=="function"&&(t=n(t)),w(t,o,d(e),{color:r})}export{w as N,S as a};
@@ -0,0 +1 @@
1
+ import{createRequire as g}from"node:module";import{f as l,m,a as v}from"./index-CE6MsgcV.js";import{g as b}from"./env-C2ZCnfP_.js";import{a as j}from"./readJsonSync-CvkZyKmL-ihoybKvs.js";const h=g(import.meta.url),o=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,_=e=>{if(typeof o<"u"&&o.versions&&o.versions.node){const[t,r]=o.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return o.getBuiltinModule(e)}return h(e)},{rmSync:u,writeFileSync:k}=_("node:fs"),C=1440*60*1e3,R=15e3,w="https://registry.npmjs.org/-/npm/v1/keys",p=()=>m(b(),"registry-keys"),i=()=>m(p(),"npmjs.json"),A=()=>{const e=i();if(l(e))try{const t=j(e),r=Date.now()-t.createdAt>t.ttlMs;return{entry:t,expired:r}}catch{u(e,{force:!0});return}},M=(e,t)=>{v(p());const r={createdAt:Date.now(),keys:e,ttlMs:t};k(i(),JSON.stringify(r),"utf8")},q=async(e={})=>{const t=e.ttlMs??C,r=e.keysUrl??process.env.VIS_NPM_KEYS_URL??w,s=A();if(s!==void 0&&!s.expired&&e.forceRefresh!==!0)return{fromCache:!0,keys:s.entry.keys};const n=new AbortController,d=setTimeout(()=>{n.abort()},R),a=()=>{n.abort()};e.signal?.addEventListener("abort",a,{once:!0});try{const c=await fetch(r,{headers:{Accept:"application/json"},signal:n.signal});if(!c.ok)return s!==void 0?{fromCache:!0,keys:s.entry.keys,stale:!0}:void 0;const y=await c.json(),f=Array.isArray(y.keys)?y.keys:[];return M(f,t),{fromCache:!1,keys:f}}catch{return s!==void 0?{fromCache:!0,keys:s.entry.keys,stale:!0}:void 0}finally{clearTimeout(d),e.signal?.removeEventListener("abort",a)}},x=()=>{const e=i();return l(e)?(u(e,{force:!0}),!0):!1};export{x as c,q as f};
@@ -0,0 +1,5 @@
1
+ import{I as N}from"./index-B0EsgdzO.js";import{i as D}from"./env-C2ZCnfP_.js";import{p as y,d as R}from"./prompt-DjXHVgYU.js";import{h as M,M as T,r as A,a as S,b as E,c as C,d as P,e as x,f as V}from"./s1ngularity-CtMmtXJo.js";import{m as u,D as g,r as j}from"./provenance-DIq8KyBV.js";import{g as w}from"./packument-DquNPIq9.js";import{i as b,p as m}from"../packem_chunks/cli-main.js";import{r as I}from"./signatures-CE8OAK-i.js";import{s as L}from"./index-Cg0IHaFI.js";import{f as O}from"./utils-CRueU43T.js";const W=15,B=e=>{const a=(e.TERM??"").toLowerCase();return a!=="dumb"&&a!=="unknown"&&a!==""},U=async(e,a,n,s)=>new Promise(c=>{if(s?.aborted){c(!1);return}const o=B(n)&&a.isTTY!==!1;let r=e;const i=()=>{o?a.write(`\rContinuing in ${String(r)}s... press Ctrl-C to abort. `):r===e&&a.write(`Warnings present; proceeding in ${String(e)}s.
2
+ `)};i();const d=setInterval(()=>{if(r-=1,r<=0){clearInterval(d),s?.removeEventListener("abort",l),o&&a.write(`\rContinuing now.
3
+ `),c(!0);return}i()},1e3),l=()=>{clearInterval(d),o&&a.write(`\rAborted.
4
+ `),c(!1)};s?.addEventListener("abort",l,{once:!0})}),Y=async(e,a={})=>{if(e.length===0)return{proceed:!0};const n=a.env??process.env,s=a.isTty??!!process.stdin.isTTY,c=a.isCi??N,o=a.strict??!1,r=a.readline??R,i=a.output??{isTTY:!!process.stdout.isTTY,write:p=>process.stdout.write(p)},d=D(n.VIS_DISABLE_AUTO_CONTINUE),l=Number.parseInt(n.VIS_AUTO_CONTINUE_SECONDS??"",10),t=a.countdownSeconds??(Number.isFinite(l)&&l>0?l:W);return e.some(p=>p.severity==="error")?o?{proceed:!1,reason:"errors-present"}:c?{proceed:!1,reason:"errors-present"}:s?await y("Proceed despite errors? [y/N] ",r)?{proceed:!0}:{proceed:!1,reason:"user-aborted"}:{proceed:!1,reason:"non-tty"}:o?{proceed:!1,reason:"ci-strict"}:s?d?await y("Proceed despite warnings? [y/N] ",r)?{proceed:!0}:{proceed:!1,reason:"user-aborted"}:await U(t,i,n,a.signal)?{proceed:!0}:{proceed:!1,reason:"user-aborted"}:{proceed:!0}},be=async(e,a={})=>{if(e.isEmpty())return!0;const n=e.all(),s=a.output??{isTTY:!!process.stdout.isTTY,write:c=>process.stdout.write(c)};for(const c of M(n))s.write(`${c}
5
+ `);return(await Y(n,{countdownSeconds:a.countdownSeconds,isCi:a.isCi,isTty:a.isTty,output:s,readline:a.readline,signal:a.signal,strict:a.strict})).proceed},v=300,_=e=>{const a=e.replaceAll(new RegExp("\\p{Cc}","gu")," ").replaceAll(/\s+/gu," ").trim();return a.length>v?`${a.slice(0,v-1)}…`:a},F=e=>{const a=e["dist-tags"]?.latest;return a!==void 0&&Object.hasOwn(e.versions,a)?a:Object.keys(e.versions).at(-1)},H=async(e,a={})=>{if(b("deprecation"))return[];const n=new Set(a.allowlist),s=a.concurrency??g;return(await u(e,s,async({name:c,version:o})=>{if(n.has(c))return;const r=await w(c,{workspaceRoot:a.workspaceRoot});if(r===void 0)return;const i=Object.hasOwn(r.versions,o)?o:F(r);if(i===void 0)return;const d=r.versions[i];if(d===void 0)return;const l=typeof d.deprecated=="string"?_(d.deprecated):"";if(l!=="")return{packageName:c,reason:l,version:i}})).filter(c=>c!==void 0)},k={newPackageDays:22,unmaintainedDays:365},f=1440*60*1e3,h=e=>{if(e===void 0)return;const a=Date.parse(e);return Number.isNaN(a)?void 0:a},$=e=>{const a=e.time??{};return Object.entries(a).filter(([n])=>n!=="created"&&n!=="modified").map(([,n])=>h(n)).filter(n=>n!==void 0)},q=e=>{const a=h(e.time?.created);if(a!==void 0)return a;const n=$(e);return n.length>0?Math.min(...n):void 0},G=e=>{const a=h(e.time?.modified);if(a!==void 0)return a;const n=$(e);return n.length>0?Math.max(...n):void 0},z=async(e,a={})=>{if(b("packageAge"))return[];const n=new Set(a.allowlist),s=a.concurrency??g,c=(a.now??Date.now)(),o=a.thresholds?.newPackageDays??k.newPackageDays,r=a.thresholds?.unmaintainedDays??k.unmaintainedDays;return(await u(e,s,async({name:i})=>{if(n.has(i))return;const d=await w(i,{workspaceRoot:a.workspaceRoot});if(d===void 0)return;const l=q(d);if(l!==void 0){const p=(c-l)/f;if(p<o)return{days:Math.max(0,Math.floor(p)),kind:"new-package",packageName:i,severity:"error"}}const t=G(d);if(t!==void 0){const p=(c-t)/f;if(p>r)return{days:Math.floor(p),kind:"unmaintained",packageName:i,severity:"warning"}}})).filter(i=>i!==void 0)},J=e=>({marshall:"author",message:e.message,packageName:e.packageName,severity:e.severity}),K=e=>({marshall:"provenance",message:`Prior version ${e.priorVersionWithProvenance} had provenance but ${e.version} does not.`,packageName:e.packageName,severity:"error",suggestedAction:`Investigate why ${e.version} dropped sigstore attestations.`}),Q=e=>{const a=e.hookChanges.map(n=>`${n.hook} (${n.kind})`).join(", ");return{marshall:"s1ngularity",message:`${e.version} ${e.hookChanges.length===1?"has an":"has"} install-script ${e.hookChanges.length===1?"change":"changes"} [${a}] AND dropped the provenance attestation that ${e.priorVersion} carried — this is the s1ngularity compromised-publish shape.`,packageName:e.packageName,severity:"error",suggestedAction:`Do not install ${e.packageName}@${e.version}. Verify the publish against the project's release CI; pin to ${e.priorVersion} until confirmed. Allowlist via security.marshalls.s1ngularity.allowlist only if the conjunction is explained.`}},X=e=>({marshall:"deprecation",message:`${e.packageName}@${e.version} is deprecated: ${e.reason}`,packageName:e.packageName,severity:"error",suggestedAction:`Migrate off ${e.packageName} or add it to security.marshalls.deprecation.allowlist if the deprecation is acceptable.`}),Z=e=>({marshall:"packageAge",message:e.kind==="new-package"?`Package first published ${String(e.days)} day${e.days===1?"":"s"} ago — brand-new package names are a common typosquat/dependency-confusion signature.`:`No new release in ${String(e.days)} days — package may be unmaintained.`,packageName:e.packageName,severity:e.severity}),ee=e=>{const a=e.newBins.map(n=>n.command).join(", ");return{marshall:"newBin",message:`${e.toVersion} adds new bin script${e.newBins.length===1?"":"s"}: ${a} (prior: ${e.fromVersion}).`,packageName:e.packageName,severity:"warning"}},ae=e=>({marshall:"metadata",message:`Missing/invalid metadata: ${e.issues.join(", ")}.`,packageName:e.packageName,severity:"warning"}),se=e=>e.kind==="no-data"?{marshall:"downloads",message:"npm stats API returned no monthly download data.",packageName:e.packageName,severity:e.severity}:{marshall:"downloads",message:`Only ${String(e.downloadsLastMonth??0)} downloads in the past month.`,packageName:e.packageName,severity:e.severity},re=e=>({marshall:"expiredDomains",message:e.kind==="expired"?`Maintainer email domain ${e.domain} (${e.maintainer}) is unregistered — potential hijack risk.`:`Could not verify maintainer email domain ${e.domain} (${e.maintainer}).`,packageName:e.packageName,severity:e.severity}),ne=e=>({marshall:"signatures",message:e.message,packageName:e.packageName,severity:e.severity}),te=e=>({marshall:"archivedRepo",message:e.kind==="archived"?`Source repo ${e.owner}/${e.repo} is archived${e.archivedAt===void 0?"":` (since ${e.archivedAt})`}.`:`Source repo ${e.owner}/${e.repo} returned 404 from GitHub.`,packageName:e.packageName,severity:"warning"}),oe=["author","provenance","s1ngularity","newBin","metadata","deprecation","packageAge","expiredDomains","signatures","archivedRepo"],ie=e=>oe.some(a=>a==="signatures"?e.signatures?.enabled===!0:e[a]?.enabled!==!1),ce=async(e,a,n,s)=>{const c=[...new Set(e.map(o=>o.name))];await u(c,a,async o=>{try{await w(o,{signal:s,workspaceRoot:n})}catch{}})},$e=async(e,a={})=>{const n=new T;if(e.length===0)return n;const s=a.config??{},c=e.map(t=>t.name),o=a.signal,r=a.concurrency??g;ie(s)&&await ce(e,r,a.workspaceRoot,o);const i=[],d=[],l=t=>{const p=i.length;i.push([]),d.push((async()=>{try{i[p]=await t()}catch{}})())};s.author?.enabled!==!1&&l(async()=>(await A(e,{allowlist:s.author?.allowlist,concurrency:r,signal:o,thresholds:{dormantErrorDays:s.author?.dormantErrorDays,dormantWarnDays:s.author?.dormantWarnDays,newPublisherWindowDays:s.author?.newPublisherWindowDays,recentVersionErrorDays:s.author?.recentVersionErrorDays,recentVersionWarnDays:s.author?.recentVersionWarnDays},workspaceRoot:a.workspaceRoot})).map(t=>J(t))),s.provenance?.enabled!==!1&&l(async()=>(await j(e,{allowlist:s.provenance?.allowlist,concurrency:r,workspaceRoot:a.workspaceRoot})).map(t=>K(t))),s.s1ngularity?.enabled!==!1&&l(async()=>(await S(e,{allowlist:s.s1ngularity?.allowlist,concurrency:r,workspaceRoot:a.workspaceRoot})).map(t=>Q(t))),s.newBin?.enabled!==!1&&l(async()=>(await E(e,{allowlist:s.newBin?.allowlist,concurrency:r,workspaceRoot:a.workspaceRoot})).map(t=>ee(t))),s.metadata?.enabled!==!1&&l(async()=>(await C(e,{allowlist:s.metadata?.allowlist,checks:s.metadata?.checks,concurrency:r,workspaceRoot:a.workspaceRoot})).map(t=>ae(t))),s.deprecation?.enabled!==!1&&l(async()=>(await H(e,{allowlist:s.deprecation?.allowlist,concurrency:r,workspaceRoot:a.workspaceRoot})).map(t=>X(t))),s.packageAge?.enabled!==!1&&l(async()=>(await z(e,{allowlist:s.packageAge?.allowlist,concurrency:r,thresholds:{newPackageDays:s.packageAge?.newPackageDays,unmaintainedDays:s.packageAge?.unmaintainedDays},workspaceRoot:a.workspaceRoot})).map(t=>Z(t))),s.downloads?.enabled!==!1&&l(async()=>(await P(c,{allowlist:s.downloads?.allowlist,concurrency:r,errorThreshold:s.downloads?.errorThreshold,signal:o,warnThreshold:s.downloads?.warnThreshold})).map(t=>se(t))),s.expiredDomains?.enabled!==!1&&l(async()=>(await x(e,{allowDomains:s.expiredDomains?.allowDomains,allowlist:s.expiredDomains?.allowlist,concurrency:r,dnsServers:s.expiredDomains?.dnsServers,perDomainTimeoutMs:s.expiredDomains?.timeoutMs,signal:o,workspaceRoot:a.workspaceRoot})).map(t=>re(t))),s.signatures?.enabled===!0&&l(async()=>(await I(e,{allowlist:s.signatures?.allowlist,concurrency:r,keysUrl:s.signatures?.keysUrl,signal:o,treatExpiredAs:s.signatures?.treatExpiredAs,workspaceRoot:a.workspaceRoot})).map(t=>ne(t))),s.archivedRepo?.enabled!==!1&&l(async()=>(await V(e,{allowlist:s.archivedRepo?.allowlist,concurrency:r,githubToken:s.archivedRepo?.githubToken,signal:o,workspaceRoot:a.workspaceRoot})).map(t=>te(t))),await Promise.all(d);for(const t of i)n.addMany(t);return n},le=1e4,de=async(e,a=le)=>{const n=new Map;if(e.length===0)return n;const s=new AbortController,c=setTimeout(()=>{s.abort()},a);try{await Promise.all(e.map(async o=>{try{const r=await fetch(`https://registry.npmjs.org/${o}/latest`,{headers:{Accept:"application/json"},signal:s.signal});if(r.ok){const i=await r.json();i.version?n.set(o,i.version):m.debug(`resolveLatestVersions: ${o} returned 200 but no version field; dropping.`)}else m.debug(`resolveLatestVersions: ${o} returned ${String(r.status)}; dropping.`)}catch(r){m.debug(`resolveLatestVersions: ${o} fetch failed (${r instanceof Error?r.message:String(r)}); dropping.`)}}))}finally{clearTimeout(c)}return n},Ne=async e=>{const a=e.map(r=>O(r)),n=new Map;for(const r of a)if(r.versionSpec){const i=L.coerce(r.versionSpec);i&&n.set(r.name,i.version)}const s=a.filter(r=>!n.has(r.name)).map(r=>r.name),c=await de(s),o=[];for(const r of a){const i=n.get(r.name)??c.get(r.name);i?o.push({name:r.name,version:i}):m.debug(`resolveExplicitPackages: dropping ${r.name}${r.versionSpec?`@${r.versionSpec}`:""} — neither semver-coerce nor /latest resolved a version.`)}return o};export{$e as a,de as b,be as p,Ne as r};
@@ -1 +1 @@
1
- import{f,m as s,H as b,j as g}from"./index-OQZQyN5R.js";const j={id:"bun",label:"Bun",lockfiles:["bun.lock","bun.lockb"],scriptSource:"package.json"},v={id:"node",label:"Node.js",lockfiles:["pnpm-lock.yaml","yarn.lock","package-lock.json","npm-shrinkwrap.json"],scriptSource:"package.json"},a={bun:j,node:v},l=["node","bun"],c={"deno.lock":"deno"},$=l.flatMap(o=>a[o].lockfiles.map(e=>[e,o])),p="Deno is not supported yet (deferred — see rfc/design-runtime-multitool.md).",d=(o,e)=>{if(o==="node"||o==="bun")return o;throw o in c||o==="deno"?new Error(`${e} requested runtime "${o}", but ${p}`):new Error(`${e} requested unknown runtime "${o}". Supported: ${l.join(", ")}.`)},S=o=>{let e=o;for(;;){for(const[r,n]of $)if(f(s(e,r)))return{runtime:n};for(const r of Object.keys(c))if(f(s(e,r)))return{deferred:c[r]};const t=b(e);if(t===e||g(e).root===e)return{};e=t}},y=(o,e={})=>{const t=e.env??process.env,r=(u,m,k)=>({adapter:a[u],deferredNotice:k,runtime:u,source:m});if(e.flag!==void 0&&e.flag!=="")return r(d(e.flag,"--runtime"),"flag");const n=t.VIS_RUNTIME;if(n!==void 0&&n!=="")return r(d(n,"VIS_RUNTIME"),"env");if(e.config!==void 0)return r(d(e.config,"config runtime:"),"config");const i=S(o);return i.runtime!==void 0?r(i.runtime,"lockfile"):i.deferred!==void 0?r("node","default",`Detected a ${i.deferred} project but ${p} Falling back to node.`):r("node","default")};export{y as r};
1
+ import{f,m as s,H as b,j as g}from"./index-CE6MsgcV.js";const j={id:"bun",label:"Bun",lockfiles:["bun.lock","bun.lockb"],scriptSource:"package.json"},v={id:"node",label:"Node.js",lockfiles:["pnpm-lock.yaml","yarn.lock","package-lock.json","npm-shrinkwrap.json"],scriptSource:"package.json"},a={bun:j,node:v},l=["node","bun"],c={"deno.lock":"deno"},$=l.flatMap(o=>a[o].lockfiles.map(e=>[e,o])),p="Deno is not supported yet (deferred — see rfc/design-runtime-multitool.md).",d=(o,e)=>{if(o==="node"||o==="bun")return o;throw o in c||o==="deno"?new Error(`${e} requested runtime "${o}", but ${p}`):new Error(`${e} requested unknown runtime "${o}". Supported: ${l.join(", ")}.`)},S=o=>{let e=o;for(;;){for(const[r,n]of $)if(f(s(e,r)))return{runtime:n};for(const r of Object.keys(c))if(f(s(e,r)))return{deferred:c[r]};const t=b(e);if(t===e||g(e).root===e)return{};e=t}},y=(o,e={})=>{const t=e.env??process.env,r=(u,m,k)=>({adapter:a[u],deferredNotice:k,runtime:u,source:m});if(e.flag!==void 0&&e.flag!=="")return r(d(e.flag,"--runtime"),"flag");const n=t.VIS_RUNTIME;if(n!==void 0&&n!=="")return r(d(n,"VIS_RUNTIME"),"env");if(e.config!==void 0)return r(d(e.config,"config runtime:"),"config");const i=S(o);return i.runtime!==void 0?r(i.runtime,"lockfile"):i.deferred!==void 0?r("node","default",`Detected a ${i.deferred} project but ${p} Falling back to node.`):r("node","default")};export{y as r};
@@ -0,0 +1 @@
1
+ import{createRequire as S}from"node:module";import{m as i,H as l}from"./index-CE6MsgcV.js";import{p as h}from"./augment-DaSS2Lgs.js";const b=S(import.meta.url),a=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,d=s=>{if(typeof a<"u"&&a.versions&&a.versions.node){const[e,r]=a.versions.node.split(".").map(Number);if(e>22||e===22&&r>=3||e===20&&r>=16)return a.getBuiltinModule(s)}return b(s)},{spawnSync:u}=d("node:child_process"),{existsSync:p}=d("node:fs"),y=s=>{let e=s;for(;;){const r=i(e,".pnp.cjs");if(p(r)){const t=i(e,".pnp.loader.mjs");return{esmLoader:p(t)?t:void 0,pnpCjs:r}}const o=l(e);if(o===e)return;e=o}},w=s=>{const e=y(s);if(e===void 0)return[];const r=["--require",e.pnpCjs];return e.esmLoader!==void 0&&r.push("--import",e.esmLoader),r},x=[{flag:"--enable-source-maps",key:"sourcemaps",min:[22,0]},{flag:"--experimental-sqlite",key:"sqlite",min:[22,5]},{flag:"--experimental-webstorage",key:"webstorage",min:[22,4]},{flag:"--experimental-eventsource",key:"eventsource",min:[22,3]},{flag:"--experimental-websocket",key:"websocket",max:[21,999],min:[20,10]},{flag:"--experimental-vm-modules",key:"vm-modules",min:[22,0]}],E=[22,4],I=s=>{const[e,r]=s.split(".").map(o=>Number.parseInt(o,10));return[e??0,r??0]},f=(s,e)=>s[0]>e[0]||s[0]===e[0]&&s[1]>=e[1],P=(s,e)=>s[0]<e[0]||s[0]===e[0]&&s[1]<=e[1],j=(s,e)=>f(s,e.min)&&(e.max===void 0||P(s,e.max)),T=s=>{const e=s.trim().toLowerCase();return e===""||e==="all"||e==="1"||e==="true"},m=(s,e)=>T(s)||s.split(",").some(r=>r.trim().toLowerCase()===e),g=(s,e,r)=>{const o=I(e),t=[];for(const n of x)m(s,n.key)&&j(o,n)&&t.push(n.flag);return m(s,"localstorage")&&f(o,E)&&(t.includes("--experimental-webstorage")||t.push("--experimental-webstorage"),t.push(`--localstorage-file=${r}`)),t},v="VIS_X_REEXEC",L=(s,e,r)=>{const o={...process.env},t=i(l(process.argv[1]),"runtime","preload.js");if(o.NODE_OPTIONS){const c=o.NODE_OPTIONS.replace(`--import ${JSON.stringify(t)}`,"").replace(`--import ${t}`,"").replaceAll(/\s+/gu," ").trim();c===""?delete o.NODE_OPTIONS:o.NODE_OPTIONS=c}delete o.VIS_AUGMENT_SUBPROCESS,delete o.VIS_UNFLAG,delete o.VIS_POLYFILL;const n=u(process.execPath,[s,...e],{cwd:r,env:o,stdio:"inherit"});if(n.error)throw n.error;return n.status??(n.signal===null?0:1)},_=s=>{let e=s;for(;;){if(p(i(e,"package.json"))||p(i(e,".pnp.cjs")))return i(e,".vis","localstorage");const r=l(e);if(r===e)return i(s,".vis","localstorage");e=r}},k=s=>{const e=process.env.VIS_UNFLAG;return[...e===void 0?[]:g(e,process.versions.node,_(s)),...w(s)]},A=(s,e,r)=>{const o=u("bun",["run",s,...e],{cwd:r,stdio:"inherit"});if(o.error)throw o.error.code==="ENOENT"?new Error("Runtime is set to bun but the `bun` binary is not on PATH. Install it from https://bun.sh."):o.error;return o.status??(o.signal===null?0:1)},C=(s,e,r,o)=>{const t=u(process.execPath,[...s,process.argv[1],"x",e,...r],{cwd:o,env:{...process.env,[v]:"1"},stdio:"inherit"});return t.status??(t.signal===null?0:1)},R=async(s,e,r)=>{if(process.env[v]===void 0){const n=k(r);if(n.length>0)return C(n,s,e,r)}if(process.env.VIS_AUGMENT_SUBPROCESS!==void 0){const n=i(l(process.argv[1]),"runtime","preload.js"),c=process.env.VIS_UNFLAG,O=c===void 0?[]:g(c,process.versions.node,_(r)),N=[process.env.NODE_OPTIONS??"",...O,`--import ${JSON.stringify(n)}`].filter(Boolean);process.env.NODE_OPTIONS=N.join(" ").trim()}const{importTs:o}=await import("../packem_chunks/ts-loader.js").then(n=>n.t);await h(r);const t=process.argv;process.argv=[process.execPath,s,...e];try{await o(s)}finally{process.argv=t}return typeof process.exitCode=="number"?process.exitCode:0},D=async(s,e,r,o,t={})=>t.node?L(s,e,o):r==="bun"?A(s,e,o):R(s,e,o);export{D as r};
@@ -1 +1 @@
1
- import{m as g,f as m,v as h}from"./index-OQZQyN5R.js";import{whichBin as d}from"#native";import{a as k}from"./readJsonSync-CvkZyKmL-CY7PZob_.js";const v=r=>{for(const s of[".nvmrc",".node-version"]){const i=g(r,s);if(m(i))try{return h(i).trim().replace(/^v/,"")}catch{}}},l=(r,s)=>{const i=r.split(/[.\-+]/).map(n=>Number.parseInt(n,10)||0),c=s.split(/[.\-+]/).map(n=>Number.parseInt(n,10)||0),e=Math.max(i.length,c.length);for(let n=0;n<e;n++){const t=i[n]??0,a=c[n]??0;if(t!==a)return t-a}return 0},$=(r,s)=>{const i=s.trim();if(i===""||i==="*")return!0;const c=i.split(/\s+/).filter(Boolean);for(const e of c)if(e.startsWith(">=")){if(l(r,e.slice(2).trim())<0)return!1}else if(e.startsWith("<=")){if(l(r,e.slice(2).trim())>0)return!1}else if(e.startsWith(">")){if(l(r,e.slice(1).trim())<=0)return!1}else if(e.startsWith("<")){if(l(r,e.slice(1).trim())>=0)return!1}else if(/^\d/.test(e)){const n=r.split("."),t=e.split(".");for(const[a,o]of t.entries())if(o!==n[a])return!1}return!0},x=r=>{const s=[],i=g(r,"package.json");let c;try{c=k(i)}catch{return s}const e=process.versions.node;if(c.engines?.node){const t=c.engines.node;$(e,t)||s.push({actual:e,expected:t,kind:"node",message:`package.json engines.node requires ${t}, but the current Node.js is ${e}.`,severity:"error"})}const n=v(r);if(n){const[t,a]=n.split("."),[o,p]=e.split(".");(t!==o||a!==void 0&&a!==p)&&s.push({actual:e,expected:n,kind:"node",message:`.nvmrc pins Node ${n} but the current Node.js is ${e}. Run \`nvm use\` or switch runtimes.`,severity:"warning"})}if(c.packageManager){const[t,a]=c.packageManager.split("@"),o=(process.env.npm_config_user_agent??"").split(" ")[0]??"",[p,u]=o.split("/"),f=t==="aube"&&d("aube")!==null;p&&t&&p!==t?s.push({actual:p,expected:t,kind:"packageManager",message:`package.json packageManager pins ${c.packageManager} but the current invocation is ${o}. Install the correct package manager.`,severity:f?"warning":"error"}):u&&a&&u!==a&&s.push({actual:u,expected:a,kind:"packageManager",message:`package.json packageManager pins ${t}@${a} but the current invocation uses ${t}@${u}.`,severity:"warning"})}return s};export{x as c};
1
+ import{m as g,f as m,v as h}from"./index-CE6MsgcV.js";import{whichBin as d}from"#native";import{a as k}from"./readJsonSync-CvkZyKmL-ihoybKvs.js";const v=r=>{for(const s of[".nvmrc",".node-version"]){const i=g(r,s);if(m(i))try{return h(i).trim().replace(/^v/,"")}catch{}}},l=(r,s)=>{const i=r.split(/[.\-+]/).map(n=>Number.parseInt(n,10)||0),c=s.split(/[.\-+]/).map(n=>Number.parseInt(n,10)||0),e=Math.max(i.length,c.length);for(let n=0;n<e;n++){const t=i[n]??0,a=c[n]??0;if(t!==a)return t-a}return 0},$=(r,s)=>{const i=s.trim();if(i===""||i==="*")return!0;const c=i.split(/\s+/).filter(Boolean);for(const e of c)if(e.startsWith(">=")){if(l(r,e.slice(2).trim())<0)return!1}else if(e.startsWith("<=")){if(l(r,e.slice(2).trim())>0)return!1}else if(e.startsWith(">")){if(l(r,e.slice(1).trim())<=0)return!1}else if(e.startsWith("<")){if(l(r,e.slice(1).trim())>=0)return!1}else if(/^\d/.test(e)){const n=r.split("."),t=e.split(".");for(const[a,o]of t.entries())if(o!==n[a])return!1}return!0},x=r=>{const s=[],i=g(r,"package.json");let c;try{c=k(i)}catch{return s}const e=process.versions.node;if(c.engines?.node){const t=c.engines.node;$(e,t)||s.push({actual:e,expected:t,kind:"node",message:`package.json engines.node requires ${t}, but the current Node.js is ${e}.`,severity:"error"})}const n=v(r);if(n){const[t,a]=n.split("."),[o,p]=e.split(".");(t!==o||a!==void 0&&a!==p)&&s.push({actual:e,expected:n,kind:"node",message:`.nvmrc pins Node ${n} but the current Node.js is ${e}. Run \`nvm use\` or switch runtimes.`,severity:"warning"})}if(c.packageManager){const[t,a]=c.packageManager.split("@"),o=(process.env.npm_config_user_agent??"").split(" ")[0]??"",[p,u]=o.split("/"),f=t==="aube"&&d("aube")!==null;p&&t&&p!==t?s.push({actual:p,expected:t,kind:"packageManager",message:`package.json packageManager pins ${c.packageManager} but the current invocation is ${o}. Install the correct package manager.`,severity:f?"warning":"error"}):u&&a&&u!==a&&s.push({actual:u,expected:a,kind:"packageManager",message:`package.json packageManager pins ${t}@${a} but the current invocation uses ${t}@${u}.`,severity:"warning"})}return s};export{x as c};
@@ -0,0 +1 @@
1
+ import{createRequire as K}from"node:module";import{V,s as A}from"./index.server-J83sowC4.js";import{f as _,a as j,m as $}from"./index-CE6MsgcV.js";import{g as x}from"./env-C2ZCnfP_.js";import{m as p,D as g}from"./provenance-DIq8KyBV.js";import{g as b}from"./packument-DquNPIq9.js";import{i as w}from"../packem_chunks/cli-main.js";import{a as O}from"./readJsonSync-CvkZyKmL-ihoybKvs.js";import{s as v}from"./index-Cg0IHaFI.js";const X=K(import.meta.url),M=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,T=r=>{if(typeof M<"u"&&M.versions&&M.versions.node){const[e,t]=M.versions.node.split(".").map(Number);if(e>22||e===22&&t>=3||e===20&&t>=16)return M.getBuiltinModule(r)}return X(r)},{rmSync:k,writeFileSync:E}=T("node:fs"),{createHash:Y}=T("node:crypto"),{Resolver:Q}=T("node:dns/promises");class Ye{entries=[];add(e){this.entries.push(e)}addMany(e){for(const t of e)this.entries.push(t)}all(){return this.entries}errors(){return this.entries.filter(e=>e.severity==="error")}warnings(){return this.entries.filter(e=>e.severity==="warning")}hasErrors(){return this.entries.some(e=>e.severity==="error")}hasWarnings(){return this.entries.some(e=>e.severity==="warning")}isEmpty(){return this.entries.length===0}size(){return this.entries.length}}const Qe=r=>{if(r.length===0)return[];const e=[],t=r.filter(s=>s.severity==="error"),n=r.filter(s=>s.severity==="warning");if(t.length>0){e.push(V(`${String(t.length)} error${t.length===1?"":"s"}:`));for(const s of t)e.push(` ${V("✗")} [${s.marshall}] ${s.packageName}: ${s.message}`),s.suggestedAction!==void 0&&e.push(` ${A("→")} ${s.suggestedAction}`)}if(n.length>0){t.length>0&&e.push(""),e.push(A(`${String(n.length)} warning${n.length===1?"":"s"}:`));for(const s of n)e.push(` ${A("⚠")} [${s.marshall}] ${s.packageName}: ${s.message}`),s.suggestedAction!==void 0&&e.push(` ${A("→")} ${s.suggestedAction}`)}return e},Ze=r=>({errors:r.filter(e=>e.severity==="error"),findings:[...r],summary:{errorCount:r.filter(e=>e.severity==="error").length,warningCount:r.filter(e=>e.severity==="warning").length},warnings:r.filter(e=>e.severity==="warning")}),Z=1440*60*1e3,ee=15e3,re="https://api.github.com/repos",B=()=>$(x(),"archived-repo"),H=(r,e)=>$(B(),`${encodeURIComponent(r)}__${encodeURIComponent(e)}.json`),te=(r,e)=>{const t=H(r,e);if(_(t))try{const n=O(t);if(Date.now()-n.createdAt>n.ttlMs){k(t,{force:!0});return}return n}catch{k(t,{force:!0});return}},W=(r,e,t,n)=>{j(B());const s={createdAt:Date.now(),ttlMs:n,...t};E(H(r,e),JSON.stringify(s),"utf8")},ne=r=>{if(typeof r!="string"||r.trim()==="")return;const e=r.trim().replace(/^git\+/,""),t=/^git@github\.com:([^/]+)\/(.+?)(?:\.git)?\/?$/i.exec(e);if(t)return{owner:t[1],repo:t[2]};const n=/^ssh:\/\/git@github\.com\/([^/]+)\/(.+?)(?:\.git)?\/?$/i.exec(e);if(n)return{owner:n[1],repo:n[2]};const s=/^https?:\/\/(?:www\.)?github\.com\/([^/]+)\/([^/?#]+?)(?:\.git)?\/?$/i.exec(e);if(s)return{owner:s[1],repo:s[2]}},se=async(r,e,t,n)=>{const s=`${re}/${encodeURIComponent(r)}/${encodeURIComponent(e)}`,c=new AbortController,o=setTimeout(()=>{c.abort()},ee),i=()=>{c.abort()};n?.addEventListener("abort",i,{once:!0});const a={Accept:"application/vnd.github+json","User-Agent":"visulima-vis-marshall"};t!==void 0&&t!==""&&(a.Authorization=`Bearer ${t}`);try{const d=await fetch(s,{headers:a,signal:c.signal});if(d.status===404)return{kind:"missing"};if(!d.ok)return{kind:"transient-error"};const l=await d.json(),u=l.archived===!0,f=typeof l.archived_at=="string"?l.archived_at:void 0;return{archived:u,archivedAt:f,kind:"ok"}}catch{return{kind:"transient-error"}}finally{clearTimeout(o),n?.removeEventListener("abort",i)}},ie=(r,e)=>e!==void 0&&r.includes(e)?e:r.at(-1),er=async(r,e={})=>{if(w("archivedRepo"))return[];const t=new Set(e.allowlist),n=e.cacheTtlMs??Z,s=e.githubToken??process.env.GITHUB_TOKEN,c=e.concurrency??g,o=new Map,i=async(a,d)=>{const l=`${a}/${d}`;let u=o.get(l);return u===void 0&&(u=(async()=>{const f=te(a,d);if(f!==void 0)return f.missing===!0?{archived:!1,kind:"missing"}:{archived:f.archived,archivedAt:f.archivedAt,kind:"ok"};const m=await se(a,d,s,e.signal);return m.kind==="missing"?W(a,d,{archived:!1,missing:!0},n):m.kind==="ok"&&W(a,d,{archived:m.archived===!0,archivedAt:m.archivedAt},n),m})(),o.set(l,u)),u};return(await p(r,c,async({name:a,version:d})=>{if(t.has(a))return;const l=await b(a,{workspaceRoot:e.workspaceRoot});if(l===void 0)return;const u=l.versions[d]??l.versions[ie(Object.keys(l.versions),l["dist-tags"]?.latest)??""];if(u===void 0)return;const f=ne(u.repository?.url);if(f===void 0)return;const m=await i(f.owner,f.repo);if(m.kind!=="transient-error"){if(m.kind==="missing")return{kind:"missing-repo",owner:f.owner,packageName:a,repo:f.repo};if(m.archived===!0)return{...m.archivedAt===void 0?{}:{archivedAt:m.archivedAt},kind:"archived",owner:f.owner,packageName:a,repo:f.repo}}})).filter(a=>a!==void 0)},oe={dormantErrorDays:274,dormantWarnDays:183,newPublisherWindowDays:21,recentVersionErrorDays:7,recentVersionWarnDays:30},ae=1440*60*1e3,U=(r,e)=>(r-e)/ae,R=r=>{if(r!==void 0)return r.email??r.name},ce=(r,e,t,n,s)=>{const c=r.time?.[t];if(c===void 0)return;const o=new Date(c).getTime();if(!Number.isFinite(o))return;const i=U(n,o);if(i<s.recentVersionErrorDays)return{kind:"recent-version",message:`published ${i.toFixed(1)} days ago (error threshold: ${String(s.recentVersionErrorDays)})`,packageName:e,severity:"error",version:t};if(i<s.recentVersionWarnDays)return{kind:"recent-version",message:`published ${i.toFixed(1)} days ago (warn threshold: ${String(s.recentVersionWarnDays)})`,packageName:e,severity:"warning",version:t}},de=(r,e,t,n,s)=>{const c=r.versions[t],o=R(c?._npmUser);if(o===void 0)return;const i=Object.keys(r.versions).filter(u=>v.valid(u)!==null).filter(u=>v.lt(u,t));if(i.length===0||i.some(u=>R(r.versions[u]?._npmUser)===o))return;const a=r.time?.[i[0]??""];if(a===void 0)return;const d=new Date(a).getTime();if(!Number.isFinite(d))return;const l=U(n,d);if(!(l<=s.newPublisherWindowDays))return{kind:"new-publisher",message:`first publish by ${o} on a ${l.toFixed(0)}-day-old package`,packageName:e,severity:"error",version:t}},le=(r,e,t,n,s)=>{const c=r.versions[t],o=R(c?._npmUser);if(o===void 0)return;const i=[];for(const[l,u]of Object.entries(r.versions)){if(l===t||R(u._npmUser)!==o)continue;const f=r.time?.[l];if(f===void 0)continue;const m=new Date(f).getTime();Number.isFinite(m)&&i.push(m)}if(i.length===0)return;const a=Math.max(...i),d=U(n,a);if(d>=s.dormantErrorDays)return{kind:"dormant-maintainer",message:`previous release by ${o} was ${d.toFixed(0)} days ago (error threshold: ${String(s.dormantErrorDays)})`,packageName:e,severity:"error",version:t};if(d>=s.dormantWarnDays)return{kind:"dormant-maintainer",message:`previous release by ${o} was ${d.toFixed(0)} days ago (warn threshold: ${String(s.dormantWarnDays)})`,packageName:e,severity:"warning",version:t}},rr=async(r,e={})=>{if(w("author"))return[];const t=new Set(e.allowlist),n={...oe,...e.thresholds},s=e.now??(()=>Date.now()),c=e.concurrency??g;return(await p(r,c,async({name:o,version:i})=>{if(t.has(o))return[];const a=await b(o,{cacheTtlMs:e.cacheTtlMs,signal:e.signal,workspaceRoot:e.workspaceRoot});if(a===void 0)return[];const d=s(),l=[],u=ce(a,o,i,d,n);u!==void 0&&l.push(u);const f=de(a,o,i,d,n);f!==void 0&&l.push(f);const m=le(a,o,i,d,n);return m!==void 0&&l.push(m),l})).flat()},ue=1440*60*1e3,fe=15e3,me=20,he=1e4,ve="https://api.npmjs.org/downloads/point/last-month",J=()=>$(x(),"downloads"),q=r=>$(J(),`${encodeURIComponent(r)}.json`),pe=r=>{const e=q(r);if(_(e))try{const t=O(e);if(Date.now()-t.createdAt>t.ttlMs){k(e,{force:!0});return}return t.downloads}catch{k(e,{force:!0});return}},ge=(r,e,t)=>{j(J());const n={createdAt:Date.now(),downloads:e,observedAt:new Date().toISOString(),ttlMs:t};E(q(r),JSON.stringify(n),"utf8")},we=async(r,e)=>{const t=`${ve}/${encodeURIComponent(r)}`,n=new AbortController,s=setTimeout(()=>{n.abort()},fe),c=()=>{n.abort()};e?.addEventListener("abort",c,{once:!0});try{const o=await fetch(t,{signal:n.signal});if(o.status===404)return{kind:"no-data"};if(!o.ok)return{kind:"error"};const i=await o.json();return typeof i.downloads=="number"?{downloads:i.downloads,kind:"ok"}:{kind:"no-data"}}catch{return{kind:"error"}}finally{clearTimeout(s),e?.removeEventListener("abort",c)}},tr=async(r,e={})=>{if(w("downloads"))return[];const t=new Set(e.allowlist),n=e.errorThreshold??me,s=e.warnThreshold??he,c=e.cacheTtlMs??ue,o=e.concurrency??g;return(await p(r,o,async i=>{if(t.has(i))return;let a=pe(i);if(a===void 0){const d=await we(i,e.signal);if(d.kind==="no-data"||d.kind==="error")return{downloadsLastMonth:void 0,kind:"no-data",packageName:i,severity:"warning"};a=d.downloads??0,ge(i,a,c)}if(a<n)return{downloadsLastMonth:a,kind:"below-error",packageName:i,severity:"error"};if(a<s)return{downloadsLastMonth:a,kind:"below-warning",packageName:i,severity:"warning"}})).filter(i=>i!==void 0)},ye=1440*60*1e3,ke=4e3,$e=["1.1.1.1","8.8.8.8"],z=()=>$(x(),"expired-domains"),G=r=>{const e=Y("sha256").update(r).digest("hex").slice(0,12);return $(z(),`${e}.json`)},be=r=>{const e=G(r);if(_(e))try{const t=O(e);if(Date.now()-t.createdAt>t.ttlMs){k(e,{force:!0});return}return t}catch{k(e,{force:!0});return}},Me=(r,e,t)=>{j(z());const n={createdAt:Date.now(),outcome:e,ttlMs:t};E(G(r),JSON.stringify(n),"utf8")},De=r=>{if(typeof r!="string")return;const e=r.lastIndexOf("@");if(e===-1||e===r.length-1)return;const t=r.slice(e+1).trim().toLowerCase();return t===""?void 0:t},Ae=(r,e)=>{const t=[];e!==void 0&&t.push(e);for(const n of r??[])t.push(n);return t},Re=async(r,e)=>{let t;try{return await Promise.race([r,new Promise((n,s)=>{t=setTimeout(()=>{s(new Error("ETIMEDOUT"))},e)})])}finally{t!==void 0&&clearTimeout(t)}},Ne=r=>{if(r===null||typeof r!="object")return!1;const{code:e}=r;return e==="ENOTFOUND"||e==="ENODATA"||e==="NXDOMAIN"},Se=async(r,e,t)=>{try{const n=await Re(r.resolveNs(e),t);return Array.isArray(n)&&n.length>0?{kind:"ok"}:{kind:"expired"}}catch(n){return Ne(n)?{kind:"expired"}:{kind:"transient-error"}}},Te=(r,e)=>e!==void 0&&r.includes(e)?e:r.at(-1),nr=async(r,e={})=>{if(w("expiredDomains"))return[];const t=new Set(e.allowlist),n=new Set((e.allowDomains??[]).map(u=>u.toLowerCase())),s=e.cacheTtlMs??ye,c=e.perDomainTimeoutMs??ke,o=e.dnsServers??$e,i=e.concurrency??g,a=e.createResolver===void 0?new Q:e.createResolver();typeof a.setServers=="function"&&a.setServers(o);const d=new Map,l=async u=>{let f=d.get(u);return f===void 0&&(f=(async()=>{const m=be(u);if(m!==void 0)return{kind:m.outcome==="ok"?"ok":"expired"};const h=await Se(a,u,c);return h.kind!=="transient-error"&&Me(u,h.kind,s),h})(),d.set(u,f)),f};return(await p(r,i,async({name:u,version:f})=>{if(t.has(u))return[];const m=await b(u,{workspaceRoot:e.workspaceRoot});if(m===void 0)return[];const h=m.versions[f]??m.versions[Te(Object.keys(m.versions),m["dist-tags"]?.latest)??""];if(h===void 0)return[];const N=Ae(h.maintainers,h._npmUser),C=new Set,S=[];for(const D of N){const y=De(D.email);if(y===void 0||n.has(y))continue;const F=`${y}:${D.email??""}`;if(C.has(F))continue;C.add(F);const L=await l(y);L.kind==="expired"?S.push({domain:y,kind:"expired",maintainer:D.email??"",packageName:u,severity:"error"}):L.kind==="transient-error"&&S.push({domain:y,kind:"unresolved",maintainer:D.email??"",packageName:u,severity:"warning"})}return S})).flat()},Ee=["readme","license","repo"],_e=["ERROR: No README data found!","# Security holding package"],je=r=>{const e=r.trim();return e===""?!0:_e.some(t=>e.startsWith(t))},xe=(r,e)=>{if(typeof e.readme=="string")return e.readme;if(typeof r.readme=="string")return r.readme},Oe=(r,e)=>{const t=xe(r,e);if(t===void 0)return"missing-readme";if(je(t))return"placeholder-readme"},Ue=r=>{const{license:e}=r;return e===void 0?"missing-license":typeof e=="string"?e.trim()===""?"missing-license":void 0:typeof e.type=="string"&&e.type.trim()!==""?void 0:"missing-license"},Ce=r=>{const{repository:e}=r;if(e===void 0)return"missing-repo";const t=typeof e.url=="string"?e.url.trim():"";if(t==="")return"missing-repo";let n=t.replace(/^git\+/,"");const s=/^git@([^:]+):(.+?)(?:\.git)?$/.exec(n);return s&&(n=`https://${s[1]}/${s[2]}`),URL.canParse(n)?void 0:"invalid-repo-url"},Fe=r=>{const e=r["dist-tags"]?.latest;return e!==void 0&&Object.hasOwn(r.versions,e)?e:Object.keys(r.versions).at(-1)},sr=async(r,e={})=>{if(w("metadata"))return[];const t=new Set(e.allowlist),n=new Set(e.checks??Ee),s=e.concurrency??g;return(await p(r,s,async({name:c,version:o})=>{if(t.has(c))return;const i=await b(c,{workspaceRoot:e.workspaceRoot});if(i===void 0)return;const a=i.versions[o]??i.versions[Fe(i)??""];if(a===void 0||a.private===!0)return;const d=[];if(n.has("readme")){const l=Oe(i,a);l!==void 0&&d.push(l)}if(n.has("license")){const l=Ue(a);l!==void 0&&d.push(l)}if(n.has("repo")){const l=Ce(a);l!==void 0&&d.push(l)}if(d.length!==0)return{issues:d,packageName:c,version:o}})).filter(c=>c!==void 0)},I=(r,e)=>r===void 0?{}:typeof r=="string"?{[e.startsWith("@")?e.split("/").at(1)??e:e]:r}:{...r},Le=(r,e)=>v.valid(e)?Object.keys(r.versions).filter(t=>v.valid(t)!==null&&v.lt(t,e)).sort((t,n)=>v.lt(t,n)?1:-1)[0]:void 0,ir=async(r,e={})=>{if(w("newBin"))return[];const t=new Set(e.allowlist),n=new Set(e.allowBins),s=e.concurrency??g;return(await p(r,s,async({name:c,version:o})=>{if(t.has(c))return;const i=await b(c,{workspaceRoot:e.workspaceRoot});if(i===void 0)return;const a=i.versions[o];if(a===void 0)return;const d=Le(i,o);if(d===void 0)return;const l=i.versions[d];if(l===void 0)return;const u=I(a.bin,c),f=I(l.bin,c),m=Object.entries(u).filter(([h])=>!(h in f)).filter(([h])=>!n.has(h)).map(([h,N])=>({command:N,name:h}));if(m.length!==0)return{fromVersion:d,newBins:m,packageName:c,toVersion:o}})).filter(c=>c!==void 0)},Ve=["preinstall","install","postinstall"],P=(r,e)=>r.versions[e]?.dist?.attestations?.provenance!==void 0,We=(r,e)=>{if(v.valid(e)!==null)return Object.keys(r.versions).filter(t=>v.valid(t)!==null&&v.prerelease(t)===null&&v.lt(t,e)).sort((t,n)=>v.lt(t,n)?1:-1)[0]},Ie=(r,e)=>{const t=r??{},n=e??{},s=[];for(const c of Ve){const o=t[c];if(o===void 0||o==="")continue;const i=n[c];i===void 0||i===""?s.push({command:o,hook:c,kind:"introduced"}):i!==o&&s.push({command:o,hook:c,kind:"changed"})}return s},or=async(r,e={})=>{if(w("s1ngularity"))return[];const t=new Set(e.allowlist),n=e.concurrency??g;return(await p(r,n,async({name:s,version:c})=>{if(t.has(s))return;const o=await b(s,{workspaceRoot:e.workspaceRoot});if(o?.versions[c]===void 0)return;const i=We(o,c);if(i===void 0||!P(o,i)||P(o,c))return;const a=Ie(o.versions[c]?.scripts,o.versions[i]?.scripts);if(a.length!==0)return{hookChanges:a,packageName:s,priorVersion:i,trustSignal:"provenance-dropped",version:c}})).filter(s=>s!==void 0)};export{Ye as M,or as a,ir as b,sr as c,tr as d,nr as e,er as f,Ze as g,Qe as h,rr as r};
@@ -0,0 +1,2 @@
1
+ import{createRequire as _}from"node:module";import{E as h,s as y,I as $,V as T}from"./index.server-J83sowC4.js";import{m as r,n as l,i as a,$ as k,c as j}from"../packem_chunks/catalog.js";import"./env-C2ZCnfP_.js";import"./window-ops-DDePlWLV.js";import{I as S}from"./index-B0EsgdzO.js";import{S as m}from"../packem_chunks/cli-main.js";import{o as v}from"./spinner-DuJJvFTl.js";import{D as x,W as C,T as R,C as I}from"./symbols-DPTlrJ3B.js";const B=_(import.meta.url),D=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process;const b=({rows:i})=>r.jsx(l,{flexDirection:"column",children:i.map(t=>{let s;switch(t.status){case"error":{s=r.jsx(a,{color:"red",children:I});break}case"ok":{s=r.jsx(a,{color:"green",children:R});break}case"running":{s=r.jsx(a,{color:"white",children:r.jsx(v,{type:"dots"})});break}case"warn":{s=r.jsx(a,{color:"yellow",children:C});break}default:{s=r.jsx(a,{dimColor:!0,children:x});break}}return r.jsxs(l,{children:[r.jsx(l,{width:3,children:s}),r.jsx(l,{flexGrow:1,children:r.jsx(a,{children:t.label})}),t.summary?r.jsx(l,{children:r.jsxs(a,{dimColor:!0,children:[x," ",t.summary]})}):null]},t.id)})}),E={error:T(m.failure),ok:$(m.success),pending:h(m.dash),skip:h(m.dash),warn:y(m.warning)},M=(i,t,s)=>{const p=s?`${i} ${h(`— ${s}`)}`:i;return` ${E[t]} ${p}
2
+ `},K=(i,t={})=>{const s=t.stream??process.stderr,p=typeof s.isTTY=="boolean"&&s.isTTY&&!S,w=t.live??p,o=new Map;for(const e of i)o.set(e.id,{id:e.id,label:e.label,status:"pending"});if(!w||i.length===0)return{finish:(e,n,d)=>{const c=o.get(e);c&&(o.set(e,{...c,status:n,summary:d}),s.write(M(c.label,n,d)))},start:e=>{const n=o.get(e);n&&o.set(e,{...n,status:"running"})},stop:()=>{}};const g=()=>i.map(e=>o.get(e.id));let u=k(j.createElement(b,{rows:g()}),{interactive:!0,patchConsole:!1});const f=()=>{u?.rerender(j.createElement(b,{rows:g()}))};return{finish:(e,n,d)=>{const c=o.get(e);c&&(o.set(e,{...c,status:n,summary:d}),f())},start:e=>{const n=o.get(e);n&&(o.set(e,{...n,status:"running"}),f())},stop:()=>{u&&(f(),u.unmount(),u=void 0)}}};export{K as s};
@@ -1,3 +1,3 @@
1
- import{createRequire as y}from"node:module";import{y as v}from"./index-OQZQyN5R.js";const h=y(import.meta.url),d=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,w=t=>{if(typeof d<"u"&&d.versions&&d.versions.node){const[r,e]=d.versions.node.split(".").map(Number);if(r>22||r===22&&e>=3||r===20&&e>=16)return d.getBuiltinModule(t)}return h(t)},{createInterface:k}=w("node:readline"),_=/^#([\w\-/]+):(.+)$/,$=/^([@\w\-/]+):(.+)$/,b=t=>{if(t==="")return;if(t.startsWith(":"))return{kind:"all",target:t.slice(1)};if(t.startsWith("~:"))return{kind:"closest",target:t.slice(2)};const r=_.exec(t);if(r?.[1]&&r[2])return{kind:"tag",tag:r[1],target:r[2]};const e=$.exec(t);return e?.[1]&&e[2]&&(e[1].startsWith("@")||e[1].includes("/")||e[1].includes("-"))?{kind:"project",projects:[e[1]],target:e[2]}:{kind:"all",target:t}},P=async(t,r,e,a)=>{const s=b(t);if(!s)throw new Error(`Invalid target selector: "${t}"`);const c=Object.keys(r.projects);if(s.kind==="all")return{projects:c,target:s.target};if(s.kind==="project")return{projects:s.projects??[],target:s.target};if(s.kind==="tag"){const o=s.tag;return{projects:c.filter(i=>r.projects[i]?.tags?.includes(o)??!1),target:s.target}}const n=v(a,e)||".";let p,l=-1;for(const[o,i]of Object.entries(r.projects)){const u=i.root;u&&(n===u||n.startsWith(`${u}/`))&&u.length>l&&(l=u.length,p=o)}if(!p){if(process.stdout.isTTY){const o=k({input:process.stdin,output:process.stderr}),i=Object.keys(r.projects).sort();process.stderr.write(`No project found at ${n}. Pick one:
1
+ import{createRequire as y}from"node:module";import{y as v}from"./index-CE6MsgcV.js";const h=y(import.meta.url),d=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,w=t=>{if(typeof d<"u"&&d.versions&&d.versions.node){const[r,e]=d.versions.node.split(".").map(Number);if(r>22||r===22&&e>=3||r===20&&e>=16)return d.getBuiltinModule(t)}return h(t)},{createInterface:k}=w("node:readline"),_=/^#([\w\-/]+):(.+)$/,$=/^([@\w\-/]+):(.+)$/,b=t=>{if(t==="")return;if(t.startsWith(":"))return{kind:"all",target:t.slice(1)};if(t.startsWith("~:"))return{kind:"closest",target:t.slice(2)};const r=_.exec(t);if(r?.[1]&&r[2])return{kind:"tag",tag:r[1],target:r[2]};const e=$.exec(t);return e?.[1]&&e[2]&&(e[1].startsWith("@")||e[1].includes("/")||e[1].includes("-"))?{kind:"project",projects:[e[1]],target:e[2]}:{kind:"all",target:t}},P=async(t,r,e,a)=>{const s=b(t);if(!s)throw new Error(`Invalid target selector: "${t}"`);const c=Object.keys(r.projects);if(s.kind==="all")return{projects:c,target:s.target};if(s.kind==="project")return{projects:s.projects??[],target:s.target};if(s.kind==="tag"){const o=s.tag;return{projects:c.filter(i=>r.projects[i]?.tags?.includes(o)??!1),target:s.target}}const n=v(a,e)||".";let p,l=-1;for(const[o,i]of Object.entries(r.projects)){const u=i.root;u&&(n===u||n.startsWith(`${u}/`))&&u.length>l&&(l=u.length,p=o)}if(!p){if(process.stdout.isTTY){const o=k({input:process.stdin,output:process.stderr}),i=Object.keys(r.projects).sort();process.stderr.write(`No project found at ${n}. Pick one:
2
2
  `);for(const[g,m]of i.entries())process.stderr.write(` ${String(g+1)}) ${m}
3
3
  `);const u=await new Promise(g=>{o.question("> ",g)});o.close();const f=Number.parseInt(u,10)-1;if(f>=0&&f<i.length)return{projects:[i[f]],target:s.target}}throw new Error(`No project found at or above ${n} for selector "${t}".`)}return{projects:[p],target:s.target}},T=/^(\w+)\s*(!?=)\s*(.+)$/,q=t=>{const r=t.trim();if(r==="")return;const e=r.split("&&").map(o=>o.trim()),a=r.split("||").map(o=>o.trim()),s=e.length>1,c=a.length>1;if(s&&c)throw new Error("Query language does not support mixed && / || — split into multiple --query flags or simplify.");const n=c?a:e,p=c?"||":"&&",l=[];for(const o of n){const i=T.exec(o);if(!i)throw new Error(`Invalid query clause: "${o}". Expected <field>=<value> or <field>!=<value>.`);const[,u,f,g]=i;l.push({field:u,op:f==="!="?"!=":"=",value:g.trim().replaceAll(/^["']|["']$/g,"")})}return{clauses:l,op:p}},j=(t,r,e)=>{const{field:a,op:s,value:c}=t,n=l=>{const o=l===c;return s==="="?o:!o},p=l=>{const o=(l??[]).includes(c);return s==="="?o:!o};switch(a){case"id":case"project":return n(r);case"language":return n(e.language);case"layer":return n(e.layer);case"projectType":case"type":return n(e.projectType);case"stack":return n(e.stack);case"tag":case"tags":return p(e.tags);default:return!1}},I=(t,r,e)=>{if(!e||e.trim()==="")return t;const a=q(e);return a?t.filter(s=>{const c=r.projects[s];return c?a.op==="&&"?a.clauses.every(n=>j(n,s,c)):a.clauses.some(n=>j(n,s,c)):!1}):t};export{I as f,b as p,P as r};
@@ -1,2 +1,2 @@
1
- import{createRequire as h}from"node:module";import{m as N,g as _,D as b}from"./provenance-C0P-UYOM.js";import{l as B}from"../packem_chunks/cli-main.js";import{f as P}from"./registry-keys-D4chF-Wj.js";const w=h(import.meta.url),g=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,$=i=>{if(typeof g<"u"&&g.versions&&g.versions.node){const[e,t]=g.versions.node.split(".").map(Number);if(e>22||e===22&&t>=3||e===20&&t>=16)return g.getBuiltinModule(i)}return w(i)},{createPublicKey:x,createVerify:M}=$("node:crypto"),E=i=>{const e=["-----BEGIN PUBLIC KEY-----"],t=i.replaceAll(/\s+/g,"");for(let a=0;a<t.length;a+=64)e.push(t.slice(a,a+64));return e.push("-----END PUBLIC KEY-----"),e.join(`
2
- `)},R=({keyBase64:i,message:e,signatureBase64:t})=>{try{const a=x({format:"pem",key:E(i)}),o=M("SHA256");return o.update(e),o.end(),o.verify(a,Buffer.from(t,"base64"))}catch{return!1}},j=(i,e)=>{if(i.expires===void 0||i.expires==="")return!1;const t=Date.parse(i.expires);return Number.isNaN(t)?!1:t<=e},C=(i,e,t)=>`${i}@${e}:${t}`,A=(i,e)=>e!==void 0&&i.includes(e)?e:i.at(-1),T=async(i,e={})=>{if(B("signatures"))return[];const t=new Set(e.allowlist),a=e.treatExpiredAs??"warning",o=e.concurrency??b,p=await P({keysUrl:e.keysUrl,signal:e.signal,ttlMs:e.keysTtlMs});if(p===void 0)return i.filter(({name:s})=>!t.has(s)).map(({name:s,version:r})=>({code:"fetch-failed",message:"Could not fetch registry signing keys.",packageName:s,severity:"warning",version:r}));const k=new Map;for(const s of p.keys)k.set(s.keyid,s);const m=Date.now();return(await N(i,o,async({name:s,version:r})=>{if(t.has(s))return[];const c=await _(s,{workspaceRoot:e.workspaceRoot});if(c===void 0)return[];const y=c.versions[r]??c.versions[A(Object.keys(c.versions),c["dist-tags"]?.latest)??""];if(y===void 0)return[];const f=y.dist?.signatures,l=y.dist?.integrity;if(f===void 0||f.length===0)return[{code:"missing-signature",message:`Package ${s}@${r} has no dist.signatures from the registry.`,packageName:s,severity:"warning",version:r}];if(typeof l!="string"||l==="")return[{code:"missing-signature",message:`Package ${s}@${r} has signatures but no dist.integrity to verify against.`,packageName:s,severity:"warning",version:r}];const v=C(s,r,l),u=[];for(const n of f){const d=k.get(n.keyid);if(d===void 0){u.push({code:"unknown-keyid",keyid:n.keyid,message:`Package ${s}@${r} was signed with an unrecognized keyid (${n.keyid}).`,packageName:s,severity:"error",version:r});continue}if(j(d,m)){u.push({code:"expired-key",keyid:n.keyid,message:`Package ${s}@${r} was signed with an expired key (${n.keyid}, expired ${d.expires??"unknown"}).`,packageName:s,severity:a,version:r});continue}R({keyBase64:d.key,message:v,signatureBase64:n.sig})||u.push({code:"invalid-signature",keyid:n.keyid,message:`Package ${s}@${r} signature did not verify against ${n.keyid}.`,packageName:s,severity:"error",version:r})}return u})).flat()};export{T as r};
1
+ import{createRequire as h}from"node:module";import{m as N,D as _}from"./provenance-DIq8KyBV.js";import{g as b}from"./packument-DquNPIq9.js";import{i as B}from"../packem_chunks/cli-main.js";import{f as P}from"./registry-keys-C8K11ets.js";const w=h(import.meta.url),g=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,$=i=>{if(typeof g<"u"&&g.versions&&g.versions.node){const[e,t]=g.versions.node.split(".").map(Number);if(e>22||e===22&&t>=3||e===20&&t>=16)return g.getBuiltinModule(i)}return w(i)},{createPublicKey:x,createVerify:M}=$("node:crypto"),E=i=>{const e=["-----BEGIN PUBLIC KEY-----"],t=i.replaceAll(/\s+/g,"");for(let a=0;a<t.length;a+=64)e.push(t.slice(a,a+64));return e.push("-----END PUBLIC KEY-----"),e.join(`
2
+ `)},R=({keyBase64:i,message:e,signatureBase64:t})=>{try{const a=x({format:"pem",key:E(i)}),o=M("SHA256");return o.update(e),o.end(),o.verify(a,Buffer.from(t,"base64"))}catch{return!1}},j=(i,e)=>{if(i.expires===void 0||i.expires==="")return!1;const t=Date.parse(i.expires);return Number.isNaN(t)?!1:t<=e},C=(i,e,t)=>`${i}@${e}:${t}`,A=(i,e)=>e!==void 0&&i.includes(e)?e:i.at(-1),K=async(i,e={})=>{if(B("signatures"))return[];const t=new Set(e.allowlist),a=e.treatExpiredAs??"warning",o=e.concurrency??_,l=await P({keysUrl:e.keysUrl,signal:e.signal,ttlMs:e.keysTtlMs});if(l===void 0)return i.filter(({name:s})=>!t.has(s)).map(({name:s,version:r})=>({code:"fetch-failed",message:"Could not fetch registry signing keys.",packageName:s,severity:"warning",version:r}));const m=new Map;for(const s of l.keys)m.set(s.keyid,s);const k=Date.now();return(await N(i,o,async({name:s,version:r})=>{if(t.has(s))return[];const c=await b(s,{workspaceRoot:e.workspaceRoot});if(c===void 0)return[];const y=c.versions[r]??c.versions[A(Object.keys(c.versions),c["dist-tags"]?.latest)??""];if(y===void 0)return[];const f=y.dist?.signatures,p=y.dist?.integrity;if(f===void 0||f.length===0)return[{code:"missing-signature",message:`Package ${s}@${r} has no dist.signatures from the registry.`,packageName:s,severity:"warning",version:r}];if(typeof p!="string"||p==="")return[{code:"missing-signature",message:`Package ${s}@${r} has signatures but no dist.integrity to verify against.`,packageName:s,severity:"warning",version:r}];const v=C(s,r,p),u=[];for(const n of f){const d=m.get(n.keyid);if(d===void 0){u.push({code:"unknown-keyid",keyid:n.keyid,message:`Package ${s}@${r} was signed with an unrecognized keyid (${n.keyid}).`,packageName:s,severity:"error",version:r});continue}if(j(d,k)){u.push({code:"expired-key",keyid:n.keyid,message:`Package ${s}@${r} was signed with an expired key (${n.keyid}, expired ${d.expires??"unknown"}).`,packageName:s,severity:a,version:r});continue}R({keyBase64:d.key,message:v,signatureBase64:n.sig})||u.push({code:"invalid-signature",keyid:n.keyid,message:`Package ${s}@${r} signature did not verify against ${n.keyid}.`,packageName:s,severity:"error",version:r})}return u})).flat()};export{K as r};
@@ -0,0 +1 @@
1
+ import{r,o as C,m as S,i as T}from"../packem_chunks/catalog.js";import{V as y}from"./MultiSpinner-B9U0-aE3-B-gIXhFk.js";const A=100,j=2147483647,l={delta:0,frame:0,time:0};function k(s){const{interval:a=A,isActive:e=!0}=s??{},t=L(a),{renderThrottleMs:c,subscribe:v}=r.useContext(C),[n,E]=r.useState(0),[I,h]=r.useState(l),o=r.useRef(0),f=r.useRef(0),x=r.useRef({isActive:e,resetKey:n,safeInterval:t}),m=x.current,K=e&&(t!==m.safeInterval||!m.isActive||n!==m.resetKey),b=r.useCallback(()=>{E(u=>u+1)},[]);return r.useLayoutEffect(()=>{if(!e)return;h(l);let u=0;const{startTime:d,unsubscribe:M}=v(i=>{if(c>0&&i<o.current)return;const p=i-u,R=i-f.current;f.current=i,o.current=i+c,h({delta:R,frame:Math.floor(p/t),time:p})},t);return u=d,f.current=d,o.current=u+c,M},[t,e,v,c,n]),r.useLayoutEffect(()=>{x.current={isActive:e,resetKey:n,safeInterval:t}},[e,t,n]),K?{...l,reset:b}:{...I,reset:b}}function L(s){return Number.isFinite(s)?Math.min(j,Math.max(1,s)):A}function D({type:s="dots"}){const a=y(s)??y("dots"),e=a?.frames??[" "],{frame:t}=k({interval:a?.interval??80});return S.jsx(T,{children:e[t%e.length]})}export{D as o};
@@ -0,0 +1 @@
1
+ import{m as u,r as n,n as y,i as A}from"../packem_chunks/catalog.js";import{y as K}from"../packem_chunks/cli-main.js";function P({children:o}){return u.jsx(u.Fragment,{children:o})}const L=/^\d$/u,O=o=>o!=null&&typeof o=="object"&&"props"in o&&"name"in o.props,Y=o=>{const c=[];for(const t of n.Children.toArray(o))O(t)&&c.push(t);return c},V=(o,c)=>o.some(t=>c[t]),Z=(o,c,t)=>o?c?{backgroundColor:t?.activeTab?.backgroundColor??"green",color:t?.activeTab?.color??"black"}:{backgroundColor:"gray",color:"black"}:{backgroundColor:void 0,color:void 0};function Q({children:o,colors:c,defaultValue:t,flexDirection:b="row",isFocused:x,keyMap:l,onChange:M,showIndex:q=!0,value:k,width:C}){const a=Y(o),s=a.length,m=n.useRef(a);m.current=a;const i=b==="column"||b==="column-reverse",g=k!==void 0,[z,B]=n.useState(()=>{const r=k??t;if(r==null||s===0)return 0;const e=a.findIndex(d=>d.props.name===r);return e===-1?0:e}),h=g?Math.max(0,a.findIndex(r=>r.props.name===k)):z,H=n.useCallback(()=>{},[]),p=g?H:B,f=n.useRef(M);f.current=M,n.useEffect(()=>{if(g)return;const r=m.current[h];r&&f.current(r.props.name,r)},[]);const R=n.useMemo(()=>l?.previous??[i?"upArrow":"leftArrow"],[l?.previous,i]),E=n.useMemo(()=>l?.next??[i?"downArrow":"rightArrow"],[l?.next,i]),I=l?.useNumbers??!0,D=l?.useTab??!0,v=n.useRef(h);v.current=h;const F=n.useCallback(r=>{p(r);const e=m.current[r];e&&f.current(e.props.name,e)},[p]),w=n.useCallback(()=>{const r=(v.current+1)%s;p(r);const e=m.current[r];e&&f.current(e.props.name,e)},[s,p]),j=n.useCallback(()=>{const r=(v.current-1+s)%s;p(r);const e=m.current[r];e&&f.current(e.props.name,e)},[s,p]);K(n.useCallback((r,e)=>{if(V(R,e)){j();return}if(V(E,e)){w();return}if(e.tab&&D&&x==null){e.shift?j():w();return}if(I&&e.meta&&L.test(r)){const d=r==="0"?9:Number.parseInt(r,10)-1;d<s&&F(d)}},[R,E,D,I,x,j,w,s,F]),{isActive:x!==!1});const N=typeof C=="number"?C:6,J=n.useMemo(()=>i?"─".repeat(N):" | ",[i,N]);return u.jsx(y,{flexDirection:b,width:C,children:a.map((r,e)=>{const{name:d}=r.props,S=Z(h===e,x!==!1,c);let T=null;return q&&(T=u.jsxs(A,{color:"grey",children:[e+1,"."," "]})),u.jsxs(y,{flexDirection:b,children:[e!==0&&u.jsx(A,{color:"dim",children:J}),u.jsxs(y,{children:[T,u.jsx(A,{backgroundColor:S.backgroundColor,color:S.color,children:r})]})]},d)})})}export{Q as F,P as a};
@@ -0,0 +1,11 @@
1
+ import{createRequire as ao}from"node:module";const lo=ao(import.meta.url),me=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,po=e=>{if(typeof me<"u"&&me.versions&&me.versions.node){const[t,o]=me.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return me.getBuiltinModule(e)}return lo(e)},{createRequire:co}=po("node:module"),fo=co(import.meta.url),de=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Xt=e=>{if(typeof de<"u"&&de.versions&&de.versions.node){const[t,o]=de.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return de.getBuiltinModule(e)}return fo(e)},{homedir:go,tmpdir:lt}=Xt("node:os"),{env:ot,cwd:ho,platform:St}=de,{createRequire:k}=Xt("node:module"),bo=0,Wt=2,yo=Symbol("findUpStop"),mo=/^[A-Z]:\//i,ye=(e="")=>e&&e.replaceAll("\\","/").replace(mo,t=>t.toUpperCase()),vo=/^[/\\]{2}/,Ao=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Z]:[/\\]/i,Qt=/^[A-Z]:$/i,Ro=/.(\.[^./]+)$/,Eo=/^[/\\]|^[a-z]:[/\\]/i,_o=/\/$/,To=()=>typeof process.cwd=="function"?process.cwd().replaceAll("\\","/"):"/",pt="/",qt=(e,t)=>{let o="",f=0,p=-1,r=0,a;for(let l=0;l<=e.length;++l){if(l<e.length)a=e[l];else{if(a==="/")break;a="/"}if(a==="/"){if(!(p===l-1||r===1))if(r===2){if(o.length<2||f!==2||!o.endsWith(".")||o.at(-2)!=="."){if(o.length>2){const c=o.lastIndexOf("/");c===-1?(o="",f=0):(o=o.slice(0,c),f=o.length-1-o.lastIndexOf("/")),p=l,r=0;continue}else if(o.length>0){o="",f=0,p=l,r=0;continue}}t&&(o+=o.length>0?"/..":"..",f=2)}else o.length>0?o+=`/${e.slice(p+1,l)}`:o=e.slice(p+1,l),f=l-p-1;p=l,r=0}else a==="."&&r!==-1?++r:r=-1}return o},be=e=>Ao.test(e),Zt=function(e){if(e.length===0)return".";e=ye(e);const t=vo.exec(e),o=be(e),f=e.at(-1)==="/";return e=qt(e,!o),e.length===0?o?"/":f?"./":".":(f&&(e+="/"),Qt.test(e)&&(e+="/"),t?o?`//${e}`:`//./${e}`:o&&!be(e)?`/${e}`:e)},oe=(...e)=>{let t="";for(const o of e)if(o)if(t.length>0){const f=t.at(-1)==="/",p=o[0]==="/";f&&p?t+=o.slice(1):t+=f||p?o:`/${o}`}else t+=o;return Zt(t)},ct=function(...e){e=e.map(f=>ye(f));let t="",o=!1;for(let f=e.length-1;f>=-1&&!o;f--){const p=f>=0?e[f]:To();!p||p.length===0||(t=`${p}/${t}`,o=be(p))}return t=qt(t,!o),o&&!be(t)?`/${t}`:t.length>0?t:"."},xo=function(e){return Ro.exec(ye(e))?.[1]??""},_t=e=>{const t=ye(e).replace(_o,""),o=t.lastIndexOf("/");if(o===-1)return be(e)?"/":".";const f=t.slice(0,o);return Qt.test(f)?`${f}/`:f||(be(e)?"/":".")},Co=(e,t)=>{const o=ye(e);return o.slice(o.lastIndexOf("/")+1)},So=function(e){const t=Eo.exec(e)?.[0]?.replaceAll("\\","/")??"",o=Co(e),f=xo(o);return{base:o,dir:_t(e),ext:f,name:o.slice(0,o.length-f.length),root:t}},$o=k(import.meta.url),ve=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Oo=e=>{if(typeof ve<"u"&&ve.versions&&ve.versions.node){const[t,o]=ve.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return ve.getBuiltinModule(e)}return $o(e)},{fileURLToPath:ko}=Oo("node:url");function wo(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var $t,Ot;function Ho(){return Ot||(Ot=1,$t=["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cr3","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]),$t}var No=Ho();const Lo=wo(No);new Set(Lo);const ut=e=>ye(e instanceof URL?ko(e):e),Yt=e=>{if(!e||!(e instanceof URL)&&typeof e!="string")throw new TypeError("Path must be a non-empty string or URL.")},Bo=k(import.meta.url),Ae=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Mo=e=>{if(typeof Ae<"u"&&Ae.versions&&Ae.versions.node){const[t,o]=Ae.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Ae.getBuiltinModule(e)}return Bo(e)};Mo("node:fs/promises");const Io=k(import.meta.url),Re=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Do=e=>{if(typeof Re<"u"&&Re.versions&&Re.versions.node){const[t,o]=Re.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Re.getBuiltinModule(e)}return Io(e)};Do("node:fs");const kt=e=>{if(e.isFile())return"file";if(e.isDirectory())return"dir";if(e.isSymbolicLink())return"symlink"},Go=k(import.meta.url),Ee=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Po=e=>{if(typeof Ee<"u"&&Ee.versions&&Ee.versions.node){const[t,o]=Ee.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Ee.getBuiltinModule(e)}return Go(e)};Po("node:fs/promises");const Uo=k(import.meta.url),_e=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Fo=e=>{if(typeof _e<"u"&&_e.versions&&_e.versions.node){const[t,o]=_e.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return _e.getBuiltinModule(e)}return Uo(e)},{lstatSync:wt,mkdirSync:jo}=Fo("node:fs"),Te=e=>{Yt(e);try{const t=wt(e);if(!t.isDirectory())throw new Error(`Ensure path exists, expected 'dir', got '${String(kt(t))}'`);return}catch(t){if(t.code!=="ENOENT")throw t}try{jo(e,{recursive:!0})}catch(t){if(t.code!=="EEXIST")throw t;const o=wt(e);if(!o.isDirectory())throw new Error(`Ensure path exists, expected 'dir', got '${String(kt(o))}'`,{cause:t})}},zo=k(import.meta.url),xe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Ko=e=>{if(typeof xe<"u"&&xe.versions&&xe.versions.node){const[t,o]=xe.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return xe.getBuiltinModule(e)}return zo(e)};Ko("node:fs/promises");const Xo=k(import.meta.url),Ce=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Wo=e=>{if(typeof Ce<"u"&&Ce.versions&&Ce.versions.node){const[t,o]=Ce.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Ce.getBuiltinModule(e)}return Xo(e)};Wo("node:fs");const Qo=k(import.meta.url),Se=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,qo=e=>{if(typeof Se<"u"&&Se.versions&&Se.versions.node){const[t,o]=Se.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Se.getBuiltinModule(e)}return Qo(e)};qo("node:fs/promises");const Zo=k(import.meta.url),$e=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Yo=e=>{if(typeof $e<"u"&&$e.versions&&$e.versions.node){const[t,o]=$e.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return $e.getBuiltinModule(e)}return Zo(e)};Yo("node:fs");const Vo=k(import.meta.url),Oe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Jo=e=>{if(typeof Oe<"u"&&Oe.versions&&Oe.versions.node){const[t,o]=Oe.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Oe.getBuiltinModule(e)}return Vo(e)};Jo("node:fs/promises");const er=k(import.meta.url),ke=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,tr=e=>{if(typeof ke<"u"&&ke.versions&&ke.versions.node){const[t,o]=ke.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return ke.getBuiltinModule(e)}return er(e)};tr("node:fs");k(import.meta.url);const or=k(import.meta.url),we=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,rr=e=>{if(typeof we<"u"&&we.versions&&we.versions.node){const[t,o]=we.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return we.getBuiltinModule(e)}return or(e)};rr("node:fs/promises");const sr=k(import.meta.url),He=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,nr=e=>{if(typeof He<"u"&&He.versions&&He.versions.node){const[t,o]=He.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return He.getBuiltinModule(e)}return sr(e)};nr("node:fs");const ur=k(import.meta.url),Ne=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,ir=e=>{if(typeof Ne<"u"&&Ne.versions&&Ne.versions.node){const[t,o]=Ne.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Ne.getBuiltinModule(e)}return ur(e)};ir("node:fs/promises");const ar=k(import.meta.url),Le=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,lr=e=>{if(typeof Le<"u"&&Le.versions&&Le.versions.node){const[t,o]=Le.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Le.getBuiltinModule(e)}return ar(e)},{statSync:pr,lstatSync:cr}=lr("node:fs"),fr=(e,t={})=>{const o=t.cwd?ut(t.cwd):process.cwd();let f=ct(o);const{root:p}=So(f),r=ut(t.stopAt??p),a=ct(f,r),l=t.type??"file",c=function(h){return[e]};t.allowSymlinks??=!0;const S=t.allowSymlinks?pr:cr;for(;f&&f!==a&&f!==p;){for(let h of c()){if(h===yo)return;if(h===void 0)continue;Buffer.isBuffer(h)?h=h.toString():h instanceof URL&&(h=ut(h));const T=be(h)?h:ct(f,h);try{const x=S(T);if(l==="file"&&x.isFile()||l==="directory"&&x.isDirectory())return T}catch{}}f=_t(f)}};function Tt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ht={},ft,Nt;function it(){if(Nt)return ft;Nt=1;const e="[^\\\\/]",t=Symbol("unignore"),o="\\.",f="\\+",p="\\?",r="\\/",a="(?=.)",l="[^/]",c=`(?:${r}|$)`,S=`(?:^|${r})`,h=`${o}{1,2}${c}`,T=`(?!${o})`,x=`(?!${S}${h})`,E=`(?!${o}{0,1}${c})`,B=`(?!${h})`,te=`[^.${r}]`,q=`${l}*?`,K="/",b={DOT_LITERAL:o,PLUS_LITERAL:f,QMARK_LITERAL:p,SLASH_LITERAL:r,ONE_CHAR:a,QMARK:l,END_ANCHOR:c,DOTS_SLASH:h,NO_DOT:T,NO_DOTS:x,NO_DOT_SLASH:E,NO_DOTS_SLASH:B,QMARK_NO_DOT:te,STAR:q,START_ANCHOR:S,SEP:K},y={...b,SLASH_LITERAL:"[\\\\/]",QMARK:e,STAR:`${e}*?`,DOTS_SLASH:`${o}{1,2}(?:[\\\\/]|$)`,NO_DOT:`(?!${o})`,NO_DOTS:`(?!(?:^|[\\\\/])${o}{1,2}(?:[\\\\/]|$))`,NO_DOT_SLASH:`(?!${o}{0,1}(?:[\\\\/]|$))`,NO_DOTS_SLASH:`(?!${o}{1,2}(?:[\\\\/]|$))`,QMARK_NO_DOT:"[^.\\\\/]",START_ANCHOR:"(?:^|[\\\\/])",END_ANCHOR:"(?:[\\\\/]|$)",SEP:"\\"},s={__proto__:null,alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};return ft={DEFAULT_MAX_EXTGLOB_RECURSION:0,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:s,UNIGNORE:t,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{__proto__:null,"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(m){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${m.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(m){return m===!0?y:b}},ft}var Lt;function at(){return Lt||(Lt=1,(function(e){const{REGEX_BACKSLASH:t,REGEX_REMOVE_BACKSLASH:o,REGEX_SPECIAL_CHARS:f,REGEX_SPECIAL_CHARS_GLOBAL:p}=it();e.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),e.hasRegexChars=r=>f.test(r),e.isRegexChar=r=>r.length===1&&e.hasRegexChars(r),e.escapeRegex=r=>r.replace(p,"\\$1"),e.toPosixSlashes=r=>r.replace(t,"/"),e.isWindows=()=>{if(typeof navigator<"u"&&navigator.platform){const r=navigator.platform.toLowerCase();return r==="win32"||r==="windows"}return process.platform?process.platform==="win32":!1},e.removeBackslashes=r=>r.replace(o,a=>a==="\\"?"":a),e.escapeLast=(r,a,l)=>{const c=r.lastIndexOf(a,l);return c===-1?r:r[c-1]==="\\"?e.escapeLast(r,a,c-1):`${r.slice(0,c)}\\${r.slice(c)}`},e.removePrefix=(r,a={})=>{let l=r;return l.startsWith("./")&&(l=l.slice(2),a.prefix="./"),l},e.wrapOutput=(r,a={},l={})=>{const c=l.contains?"":"^",S=l.contains?"":"$";let h=`${c}(?:${r})${S}`;return a.negated===!0&&(h=`(?:^(?!${h}).*$)`),h},e.basename=(r,{windows:a}={})=>{const l=r.split(a?/[\\/]/:"/"),c=l[l.length-1];return c===""?l[l.length-2]:c}})(Ht)),Ht}var gt,Bt;function gr(){if(Bt)return gt;Bt=1;const e=at(),{CHAR_ASTERISK:t,CHAR_AT:o,CHAR_BACKWARD_SLASH:f,CHAR_COMMA:p,CHAR_DOT:r,CHAR_EXCLAMATION_MARK:a,CHAR_FORWARD_SLASH:l,CHAR_LEFT_CURLY_BRACE:c,CHAR_LEFT_PARENTHESES:S,CHAR_LEFT_SQUARE_BRACKET:h,CHAR_PLUS:T,CHAR_QUESTION_MARK:x,CHAR_RIGHT_CURLY_BRACE:E,CHAR_RIGHT_PARENTHESES:B,CHAR_RIGHT_SQUARE_BRACKET:te}=it(),q=b=>b===l||b===f,K=b=>{b.isPrefix!==!0&&(b.depth=b.isGlobstar?1/0:1)};return gt=(b,y)=>{const s=y||{},m=b.length-1,A=s.parts===!0||s.scanToEnd===!0,R=[],v=[],w=[];let X=b,Z=-1,U=0,re=0,W=!1,se=!1,I=!1,le=!1,ge=!1,ne=!1,L=!1,ue=!1,he=!1,Q=!1,z=0,V,_,O={value:"",depth:0,isGlob:!1};const i=()=>Z>=m,Y=()=>X.charCodeAt(Z+1),F=()=>(V=_,X.charCodeAt(++Z));for(;Z<m;){_=F();let H;if(_===f){L=O.backslashes=!0,_=F(),_===c&&(ne=!0);continue}if(ne===!0||_===c){for(z++;i()!==!0&&(_=F());){if(_===f){L=O.backslashes=!0,F();continue}if(_===c){z++;continue}if(ne!==!0&&_===r&&(_=F())===r){if(W=O.isBrace=!0,I=O.isGlob=!0,Q=!0,A===!0)continue;break}if(ne!==!0&&_===p){if(W=O.isBrace=!0,I=O.isGlob=!0,Q=!0,A===!0)continue;break}if(_===E&&(z--,z===0)){ne=!1,W=O.isBrace=!0,Q=!0;break}}if(A===!0)continue;break}if(_===l){if(R.push(Z),v.push(O),O={value:"",depth:0,isGlob:!1},Q===!0)continue;if(V===r&&Z===U+1){U+=2;continue}re=Z+1;continue}if(s.noext!==!0&&(_===T||_===o||_===t||_===x||_===a)&&Y()===S){if(I=O.isGlob=!0,le=O.isExtglob=!0,Q=!0,_===a&&Z===U&&(he=!0),A===!0){for(;i()!==!0&&(_=F());){if(_===f){L=O.backslashes=!0,_=F();continue}if(_===B){I=O.isGlob=!0,Q=!0;break}}continue}break}if(_===t){if(V===t&&(ge=O.isGlobstar=!0),I=O.isGlob=!0,Q=!0,A===!0)continue;break}if(_===x){if(I=O.isGlob=!0,Q=!0,A===!0)continue;break}if(_===h){for(;i()!==!0&&(H=F());){if(H===f){L=O.backslashes=!0,F();continue}if(H===te){se=O.isBracket=!0,I=O.isGlob=!0,Q=!0;break}}if(A===!0)continue;break}if(s.nonegate!==!0&&_===a&&Z===U){ue=O.negated=!0,U++;continue}if(s.noparen!==!0&&_===S){if(I=O.isGlob=!0,A===!0){for(;i()!==!0&&(_=F());){if(_===S){L=O.backslashes=!0,_=F();continue}if(_===B){Q=!0;break}}continue}break}if(I===!0){if(Q=!0,A===!0)continue;break}}s.noext===!0&&(le=!1,I=!1);let P=X,n="",u="";U>0&&(n=X.slice(0,U),X=X.slice(U),re-=U),P&&I===!0&&re>0?(P=X.slice(0,re),u=X.slice(re)):I===!0?(P="",u=X):P=X,P&&P!==""&&P!=="/"&&P!==X&&q(P.charCodeAt(P.length-1))&&(P=P.slice(0,-1)),s.unescape===!0&&(u&&(u=e.removeBackslashes(u)),P&&L===!0&&(P=e.removeBackslashes(P)));const ee={prefix:n,input:b,start:U,base:P,glob:u,isBrace:W,isBracket:se,isGlob:I,isExtglob:le,isGlobstar:ge,negated:ue,negatedExtglob:he};if(s.tokens===!0&&(ee.maxDepth=0,q(_)||v.push(O),ee.tokens=v),s.parts===!0||s.tokens===!0){let H;for(let D=0;D<R.length;D++){const pe=H?H+1:U,J=R[D],ce=b.slice(pe,J);s.tokens&&(D===0&&U!==0?(v[D].isPrefix=!0,v[D].value=n):v[D].value=ce,K(v[D]),ee.maxDepth+=v[D].depth),(D!==0||ce!=="")&&w.push(ce),H=J}if(H&&H+1<b.length){const D=b.slice(H+1);w.push(D),s.tokens&&(v[v.length-1].value=D,K(v[v.length-1]),ee.maxDepth+=v[v.length-1].depth)}ee.slashes=R,ee.parts=w}return ee},gt}var ht,Mt;function hr(){if(Mt)return ht;Mt=1;const e=it(),t=at(),{MAX_LENGTH:o,POSIX_REGEX_SOURCE:f,REGEX_NON_SPECIAL_CHARS:p,REGEX_SPECIAL_CHARS_BACKREF:r,REPLACEMENTS:a}=e,l=(b,y)=>typeof y.expandRange=="function"?y.expandRange(...b,y):(b.sort(),`[${b.join("-")}]`),c=(b,y)=>`Missing ${b}: "${y}" - use "\\\\${y}" to match literal characters`,S=b=>{const y=[];let s=0,m=0,A=0,R="",v=!1;for(const w of b){if(v===!0){R+=w,v=!1;continue}if(w==="\\"){R+=w,v=!0;continue}if(w==='"'){A=A===1?0:1,R+=w;continue}if(A===0){if(w==="[")s++;else if(w==="]"&&s>0)s--;else if(s===0){if(w==="(")m++;else if(w===")"&&m>0)m--;else if(w==="|"&&m===0){y.push(R),R="";continue}}}R+=w}return y.push(R),y},h=b=>{let y=!1;for(const s of b){if(y===!0){y=!1;continue}if(s==="\\"){y=!0;continue}if(/[?*+@!()[\]{}]/.test(s))return!1}return!0},T=b=>{let y=b.trim(),s=!0;for(;s===!0;)s=!1,/^@\([^\\()[\]{}|]+\)$/.test(y)&&(y=y.slice(2,-1),s=!0);if(h(y))return y.replace(/\\(.)/g,"$1")},x=b=>{const y=b.map(T).filter(Boolean);for(let s=0;s<y.length;s++)for(let m=s+1;m<y.length;m++){const A=y[s],R=y[m],v=A[0];if(!(!v||A!==v.repeat(A.length)||R!==v.repeat(R.length))&&(A===R||A.startsWith(R)||R.startsWith(A)))return!0}return!1},E=(b,y=!0)=>{if(b[0]!=="+"&&b[0]!=="*"||b[1]!=="(")return;let s=0,m=0,A=0,R=!1;for(let v=1;v<b.length;v++){const w=b[v];if(R===!0){R=!1;continue}if(w==="\\"){R=!0;continue}if(w==='"'){A=A===1?0:1;continue}if(A!==1){if(w==="["){s++;continue}if(w==="]"&&s>0){s--;continue}if(!(s>0)){if(w==="("){m++;continue}if(w===")"&&(m--,m===0))return y===!0&&v!==b.length-1?void 0:{type:b[0],body:b.slice(2,v),end:v}}}}},B=b=>{let y=0;const s=[];for(;y<b.length;){const m=E(b.slice(y),!1);if(!m||m.type!=="*")return;const A=S(m.body).map(v=>v.trim());if(A.length!==1)return;const R=T(A[0]);if(!R||R.length!==1)return;s.push(R),y+=m.end+1}return s.length<1?void 0:`${s.length===1?t.escapeRegex(s[0]):`[${s.map(m=>t.escapeRegex(m)).join("")}]`}*`},te=b=>{let y=0,s=b.trim(),m=E(s);for(;m;)y++,s=m.body.trim(),m=E(s);return y},q=(b,y)=>{if(y.maxExtglobRecursion===!1)return{risky:!1};const s=typeof y.maxExtglobRecursion=="number"?y.maxExtglobRecursion:e.DEFAULT_MAX_EXTGLOB_RECURSION,m=S(b).map(A=>A.trim());if(m.length>1&&(m.some(A=>A==="")||m.some(A=>/^[*?]+$/.test(A))||x(m)))return{risky:!0};for(const A of m){const R=B(A);if(R)return{risky:!0,safeOutput:R};if(te(A)>s)return{risky:!0}}return{risky:!1}},K=(b,y)=>{if(typeof b!="string")throw new TypeError("Expected a string");b=a[b]||b;const s={...y},m=typeof s.maxLength=="number"?Math.min(o,s.maxLength):o;let A=b.length;if(A>m)throw new SyntaxError(`Input length: ${A}, exceeds maximum allowed length: ${m}`);const R={type:"bos",value:"",output:s.prepend||""},v=[R],w=s.capture?"":"?:",X=e.globChars(s.windows),Z=e.extglobChars(X),{DOT_LITERAL:U,PLUS_LITERAL:re,SLASH_LITERAL:W,ONE_CHAR:se,DOTS_SLASH:I,NO_DOT:le,NO_DOT_SLASH:ge,NO_DOTS_SLASH:ne,QMARK:L,QMARK_NO_DOT:ue,STAR:he,START_ANCHOR:Q}=X,z=d=>`(${w}(?:(?!${Q}${d.dot?I:U}).)*?)`,V=s.dot?"":le,_=s.dot?L:ue;let O=s.bash===!0?z(s):he;s.capture&&(O=`(${O})`),typeof s.noext=="boolean"&&(s.noextglob=s.noext);const i={input:b,index:-1,start:0,dot:s.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:v};b=t.removePrefix(b,i),A=b.length;const Y=[],F=[],P=[];let n=R,u;const ee=()=>i.index===A-1,H=i.peek=(d=1)=>b[i.index+d],D=i.advance=()=>b[++i.index]||"",pe=()=>b.slice(i.index+1),J=(d="",M=0)=>{i.consumed+=d,i.index+=M},ce=d=>{i.output+=d.output!=null?d.output:d.value,J(d.value)},uo=()=>{let d=1;for(;H()==="!"&&(H(2)!=="("||H(3)==="?");)D(),i.start++,d++;return d%2===0?!1:(i.negated=!0,i.start++,!0)},st=d=>{i[d]++,P.push(d)},fe=d=>{i[d]--,P.pop()},C=d=>{if(n.type==="globstar"){const M=i.braces>0&&(d.type==="comma"||d.type==="brace"),g=d.extglob===!0||Y.length&&(d.type==="pipe"||d.type==="paren");d.type!=="slash"&&d.type!=="paren"&&!M&&!g&&(i.output=i.output.slice(0,-n.output.length),n.type="star",n.value="*",n.output=O,i.output+=n.output)}if(Y.length&&d.type!=="paren"&&(Y[Y.length-1].inner+=d.value),(d.value||d.output)&&ce(d),n&&n.type==="text"&&d.type==="text"){n.output=(n.output||n.value)+d.value,n.value+=d.value;return}d.prev=n,v.push(d),n=d},nt=(d,M)=>{const g={...Z[M],conditions:1,inner:""};g.prev=n,g.parens=i.parens,g.output=i.output,g.startIndex=i.index,g.tokensIndex=v.length;const $=(s.capture?"(":"")+g.open;st("parens"),C({type:d,value:M,output:i.output?"":se}),C({type:"paren",extglob:!0,value:D(),output:$}),Y.push(g)},io=d=>{const M=b.slice(d.startIndex,i.index+1),g=b.slice(d.startIndex+2,i.index),$=q(g,s);if((d.type==="plus"||d.type==="star")&&$.risky){const N=$.safeOutput?(d.output?"":se)+(s.capture?`(${$.safeOutput})`:$.safeOutput):void 0,ie=v[d.tokensIndex];ie.type="text",ie.value=M,ie.output=N||t.escapeRegex(M);for(let ae=d.tokensIndex+1;ae<v.length;ae++)v[ae].value="",v[ae].output="",delete v[ae].suffix;i.output=d.output+ie.output,i.backtrack=!0,C({type:"paren",extglob:!0,value:u,output:""}),fe("parens");return}let G=d.close+(s.capture?")":""),j;if(d.type==="negate"){let N=O;if(d.inner&&d.inner.length>1&&d.inner.includes("/")&&(N=z(s)),(N!==O||ee()||/^\)+$/.test(pe()))&&(G=d.close=`)$))${N}`),d.inner.includes("*")&&(j=pe())&&/^\.[^\\/.]+$/.test(j)){const ie=K(j,{...y,fastpaths:!1}).output;G=d.close=`)${ie})${N})`}d.prev.type==="bos"&&(i.negatedExtglob=!0)}C({type:"paren",extglob:!0,value:u,output:G}),fe("parens")};if(s.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(b)){let d=!1,M=b.replace(r,(g,$,G,j,N,ie)=>j==="\\"?(d=!0,g):j==="?"?$?$+j+(N?L.repeat(N.length):""):ie===0?_+(N?L.repeat(N.length):""):L.repeat(G.length):j==="."?U.repeat(G.length):j==="*"?$?$+j+(N?O:""):O:$?g:`\\${g}`);return d===!0&&(s.unescape===!0?M=M.replace(/\\/g,""):M=M.replace(/\\+/g,g=>g.length%2===0?"\\\\":g?"\\":"")),M===b&&s.contains===!0?(i.output=b,i):(i.output=t.wrapOutput(M,i,y),i)}for(;!ee();){if(u=D(),u==="\0")continue;if(u==="\\"){const g=H();if(g==="/"&&s.bash!==!0||g==="."||g===";")continue;if(!g){u+="\\",C({type:"text",value:u});continue}const $=/^\\+/.exec(pe());let G=0;if($&&$[0].length>2&&(G=$[0].length,i.index+=G,G%2!==0&&(u+="\\")),s.unescape===!0?u=D():u+=D(),i.brackets===0){C({type:"text",value:u});continue}}if(i.brackets>0&&(u!=="]"||n.value==="["||n.value==="[^")){if(s.posix!==!1&&u===":"){const g=n.value.slice(1);if(g.includes("[")&&(n.posix=!0,g.includes(":"))){const $=n.value.lastIndexOf("["),G=n.value.slice(0,$),j=n.value.slice($+2),N=f[j];if(N){n.value=G+N,i.backtrack=!0,D(),!R.output&&v.indexOf(n)===1&&(R.output=se);continue}}}(u==="["&&H()!==":"||u==="-"&&H()==="]")&&(u=`\\${u}`),u==="]"&&(n.value==="["||n.value==="[^")&&(u=`\\${u}`),s.posix===!0&&u==="!"&&n.value==="["&&(u="^"),n.value+=u,ce({value:u});continue}if(i.quotes===1&&u!=='"'){u=t.escapeRegex(u),n.value+=u,ce({value:u});continue}if(u==='"'){i.quotes=i.quotes===1?0:1,s.keepQuotes===!0&&C({type:"text",value:u});continue}if(u==="("){st("parens"),C({type:"paren",value:u});continue}if(u===")"){if(i.parens===0&&s.strictBrackets===!0)throw new SyntaxError(c("opening","("));const g=Y[Y.length-1];if(g&&i.parens===g.parens+1){io(Y.pop());continue}C({type:"paren",value:u,output:i.parens?")":"\\)"}),fe("parens");continue}if(u==="["){if(s.nobracket===!0||!pe().includes("]")){if(s.nobracket!==!0&&s.strictBrackets===!0)throw new SyntaxError(c("closing","]"));u=`\\${u}`}else st("brackets");C({type:"bracket",value:u});continue}if(u==="]"){if(s.nobracket===!0||n&&n.type==="bracket"&&n.value.length===1){C({type:"text",value:u,output:`\\${u}`});continue}if(i.brackets===0){if(s.strictBrackets===!0)throw new SyntaxError(c("opening","["));C({type:"text",value:u,output:`\\${u}`});continue}fe("brackets");const g=n.value.slice(1);if(n.posix!==!0&&g[0]==="^"&&!g.includes("/")&&(u=`/${u}`),n.value+=u,ce({value:u}),s.literalBrackets===!1||t.hasRegexChars(g))continue;const $=t.escapeRegex(n.value);if(i.output=i.output.slice(0,-n.value.length),s.literalBrackets===!0){i.output+=$,n.value=$;continue}n.value=`(${w}${$}|${n.value})`,i.output+=n.value;continue}if(u==="{"&&s.nobrace!==!0){st("braces");const g={type:"brace",value:u,output:"(",outputIndex:i.output.length,tokensIndex:i.tokens.length};F.push(g),C(g);continue}if(u==="}"){const g=F[F.length-1];if(s.nobrace===!0||!g){C({type:"text",value:u,output:u});continue}let $=")";if(g.dots===!0){const G=v.slice(),j=[];for(let N=G.length-1;N>=0&&(v.pop(),G[N].type!=="brace");N--)G[N].type!=="dots"&&j.unshift(G[N].value);$=l(j,s),i.backtrack=!0}if(g.comma!==!0&&g.dots!==!0){const G=i.output.slice(0,g.outputIndex),j=i.tokens.slice(g.tokensIndex);g.value=g.output="\\{",u=$="\\}",i.output=G;for(const N of j)i.output+=N.output||N.value}C({type:"brace",value:u,output:$}),fe("braces"),F.pop();continue}if(u==="|"){Y.length>0&&Y[Y.length-1].conditions++,C({type:"text",value:u});continue}if(u===","){let g=u;const $=F[F.length-1];$&&P[P.length-1]==="braces"&&($.comma=!0,g="|"),C({type:"comma",value:u,output:g});continue}if(u==="/"){if(n.type==="dot"&&i.index===i.start+1){i.start=i.index+1,i.consumed="",i.output="",v.pop(),n=R;continue}C({type:"slash",value:u,output:W});continue}if(u==="."){if(i.braces>0&&n.type==="dot"){n.value==="."&&(n.output=U);const g=F[F.length-1];n.type="dots",n.output+=u,n.value+=u,g.dots=!0;continue}if(i.braces+i.parens===0&&n.type!=="bos"&&n.type!=="slash"){C({type:"text",value:u,output:U});continue}C({type:"dot",value:u,output:U});continue}if(u==="?"){if(!(n&&n.value==="(")&&s.noextglob!==!0&&H()==="("&&H(2)!=="?"){nt("qmark",u);continue}if(n&&n.type==="paren"){const g=H();let $=u;(n.value==="("&&!/[!=<:]/.test(g)||g==="<"&&!/<([!=]|\w+>)/.test(pe()))&&($=`\\${u}`),C({type:"text",value:u,output:$});continue}if(s.dot!==!0&&(n.type==="slash"||n.type==="bos")){C({type:"qmark",value:u,output:ue});continue}C({type:"qmark",value:u,output:L});continue}if(u==="!"){if(s.noextglob!==!0&&H()==="("&&(H(2)!=="?"||!/[!=<:]/.test(H(3)))){nt("negate",u);continue}if(s.nonegate!==!0&&i.index===0){uo();continue}}if(u==="+"){if(s.noextglob!==!0&&H()==="("&&H(2)!=="?"){nt("plus",u);continue}if(n&&n.value==="("||s.regex===!1){C({type:"plus",value:u,output:re});continue}if(n&&(n.type==="bracket"||n.type==="paren"||n.type==="brace")||i.parens>0){C({type:"plus",value:u});continue}C({type:"plus",value:re});continue}if(u==="@"){if(s.noextglob!==!0&&H()==="("&&H(2)!=="?"){C({type:"at",extglob:!0,value:u,output:""});continue}C({type:"text",value:u});continue}if(u!=="*"){(u==="$"||u==="^")&&(u=`\\${u}`);const g=p.exec(pe());g&&(u+=g[0],i.index+=g[0].length),C({type:"text",value:u});continue}if(n&&(n.type==="globstar"||n.star===!0)){n.type="star",n.star=!0,n.value+=u,n.output=O,i.backtrack=!0,i.globstar=!0,J(u);continue}let d=pe();if(s.noextglob!==!0&&/^\([^?]/.test(d)){nt("star",u);continue}if(n.type==="star"){if(s.noglobstar===!0){J(u);continue}const g=n.prev,$=g.prev,G=g.type==="slash"||g.type==="bos",j=$&&($.type==="star"||$.type==="globstar");if(s.bash===!0&&(!G||d[0]&&d[0]!=="/")){C({type:"star",value:u,output:""});continue}const N=i.braces>0&&(g.type==="comma"||g.type==="brace"),ie=Y.length&&(g.type==="pipe"||g.type==="paren");if(!G&&g.type!=="paren"&&!N&&!ie){C({type:"star",value:u,output:""});continue}for(;d.slice(0,3)==="/**";){const ae=b[i.index+4];if(ae&&ae!=="/")break;d=d.slice(3),J("/**",3)}if(g.type==="bos"&&ee()){n.type="globstar",n.value+=u,n.output=z(s),i.output=n.output,i.globstar=!0,J(u);continue}if(g.type==="slash"&&g.prev.type!=="bos"&&!j&&ee()){i.output=i.output.slice(0,-(g.output+n.output).length),g.output=`(?:${g.output}`,n.type="globstar",n.output=z(s)+(s.strictSlashes?")":"|$)"),n.value+=u,i.globstar=!0,i.output+=g.output+n.output,J(u);continue}if(g.type==="slash"&&g.prev.type!=="bos"&&d[0]==="/"){const ae=d[1]!==void 0?"|$":"";i.output=i.output.slice(0,-(g.output+n.output).length),g.output=`(?:${g.output}`,n.type="globstar",n.output=`${z(s)}${W}|${W}${ae})`,n.value+=u,i.output+=g.output+n.output,i.globstar=!0,J(u+D()),C({type:"slash",value:"/",output:""});continue}if(g.type==="bos"&&d[0]==="/"){n.type="globstar",n.value+=u,n.output=`(?:^|${W}|${z(s)}${W})`,i.output=n.output,i.globstar=!0,J(u+D()),C({type:"slash",value:"/",output:""});continue}if(N&&d[0]==="/"){n.type="globstar",n.value+=u,n.output=`(?:^|${W}|${z(s)}${W})`,i.output+=n.output,i.globstar=!0,J(u+D()),C({type:"slash",value:"/",output:""});continue}i.output=i.output.slice(0,-n.output.length),n.type="globstar",n.output=z(s),n.value+=u,i.output+=n.output,i.globstar=!0,J(u);continue}const M={type:"star",value:u,output:O};if(s.bash===!0){M.output=".*?",(n.type==="bos"||n.type==="slash")&&(M.output=V+M.output),C(M);continue}if(n&&(n.type==="bracket"||n.type==="paren")&&s.regex===!0){M.output=u,C(M);continue}(i.index===i.start||n.type==="slash"||n.type==="dot")&&(n.type==="dot"?(i.output+=ge,n.output+=ge):s.dot===!0?(i.output+=ne,n.output+=ne):(i.output+=V,n.output+=V),H()!=="*"&&(i.output+=se,n.output+=se)),C(M)}for(;i.brackets>0;){if(s.strictBrackets===!0)throw new SyntaxError(c("closing","]"));i.output=t.escapeLast(i.output,"["),fe("brackets")}for(;i.parens>0;){if(s.strictBrackets===!0)throw new SyntaxError(c("closing",")"));i.output=t.escapeLast(i.output,"("),fe("parens")}for(;i.braces>0;){if(s.strictBrackets===!0)throw new SyntaxError(c("closing","}"));i.output=t.escapeLast(i.output,"{"),fe("braces")}if(s.strictSlashes!==!0&&(n.type==="star"||n.type==="bracket")&&C({type:"maybe_slash",value:"",output:`${W}?`}),i.backtrack===!0){i.output="";for(const d of i.tokens)i.output+=d.output!=null?d.output:d.value,d.suffix&&(i.output+=d.suffix)}return i};return K.fastpaths=(b,y)=>{const s={...y},m=typeof s.maxLength=="number"?Math.min(o,s.maxLength):o,A=b.length;if(A>m)throw new SyntaxError(`Input length: ${A}, exceeds maximum allowed length: ${m}`);b=a[b]||b;const{DOT_LITERAL:R,SLASH_LITERAL:v,ONE_CHAR:w,DOTS_SLASH:X,NO_DOT:Z,NO_DOTS:U,NO_DOTS_SLASH:re,STAR:W,START_ANCHOR:se}=e.globChars(s.windows),I=s.dot?U:Z,le=s.dot?re:Z,ge=s.capture?"":"?:",ne={negated:!1,prefix:""};let L=s.bash===!0?".*?":W;s.capture&&(L=`(${L})`);const ue=V=>V.noglobstar===!0?L:`(${ge}(?:(?!${se}${V.dot?X:R}).)*?)`,he=V=>{switch(V){case"*":return`${I}${w}${L}`;case".*":return`${R}${w}${L}`;case"*.*":return`${I}${L}${R}${w}${L}`;case"*/*":return`${I}${L}${v}${w}${le}${L}`;case"**":return I+ue(s);case"**/*":return`(?:${I}${ue(s)}${v})?${le}${w}${L}`;case"**/*.*":return`(?:${I}${ue(s)}${v})?${le}${L}${R}${w}${L}`;case"**/.*":return`(?:${I}${ue(s)}${v})?${R}${w}${L}`;default:{const _=/^(.*?)\.(\w+)$/.exec(V);if(!_)return;const O=he(_[1]);return O?O+R+_[2]:void 0}}},Q=t.removePrefix(b,ne);let z=he(Q);return z&&s.strictSlashes!==!0&&(z+=`${v}?`),z},ht=K,ht}var bt,It;function br(){if(It)return bt;It=1;const e=gr(),t=hr(),o=at(),f=it(),p=a=>a&&typeof a=="object"&&!Array.isArray(a),r=(a,l,c=!1)=>{if(Array.isArray(a)){const q=a.map(K=>r(K,l,c));return K=>{for(const b of q){const y=b(K);if(y)return y}return!1}}const S=p(a)&&a.tokens&&a.input;if(a===""||typeof a!="string"&&!S)throw new TypeError("Expected pattern to be a non-empty string");const h=l||{},T=h.windows,x=S?r.compileRe(a,l):r.makeRe(a,l,!1,!0),E=x.state;delete x.state;let B=()=>!1;if(h.ignore){const q={...l,ignore:null,onMatch:null,onResult:null};B=r(h.ignore,q,c)}const te=(q,K=!1)=>{const{isMatch:b,match:y,output:s}=r.test(q,x,l,{glob:a,posix:T}),m={glob:a,state:E,regex:x,posix:T,input:q,output:s,match:y,isMatch:b};if(typeof h.onResult=="function"&&h.onResult(m),b===!1)return m.isMatch=!1,K?m:!1;e:if(B(q)){if(typeof h.onIgnore=="function"&&h.onIgnore(m)===f.UNIGNORE){m.isMatch=!0;break e}return m.isMatch=!1,K?m:!1}return typeof h.onMatch=="function"&&h.onMatch(m),K?m:!0};return c&&(te.state=E),te};return r.test=(a,l,c,{glob:S,posix:h}={})=>{if(typeof a!="string")throw new TypeError("Expected input to be a string");if(a==="")return{isMatch:!1,output:""};const T=c||{},x=T.format||(h?o.toPosixSlashes:null);let E=a===S,B=E&&x?x(a):a;return E===!1&&(B=x?x(a):a,E=B===S),(E===!1||T.capture===!0)&&(T.matchBase===!0||T.basename===!0?E=r.matchBase(a,l,c,h):E=l.exec(B)),{isMatch:!!E,match:E,output:B}},r.matchBase=(a,l,c)=>(l instanceof RegExp?l:r.makeRe(l,c)).test(o.basename(a)),r.isMatch=(a,l,c)=>r(l,c)(a),r.parse=(a,l)=>Array.isArray(a)?a.map(c=>r.parse(c,l)):t(a,{...l,fastpaths:!1}),r.scan=(a,l)=>e(a,l),r.compileRe=(a,l,c=!1,S=!1)=>{if(c===!0)return a.output;const h=l||{},T=h.contains?"":"^",x=h.contains?"":"$";let E=`${T}(?:${a.output})${x}`;a&&a.negated===!0&&(E=`^(?!${E}).*$`);const B=r.toRegex(E,l);return S===!0&&(B.state=a),B},r.makeRe=(a,l={},c=!1,S=!1)=>{if(!a||typeof a!="string")throw new TypeError("Expected a non-empty string");let h={negated:!1,fastpaths:!0};return l.fastpaths!==!1&&(a[0]==="."||a[0]==="*")&&(h.output=t.fastpaths(a,l)),h.output||(h=t(a,l)),r.compileRe(h,l,c,S)},r.toRegex=(a,l)=>{try{const c=l||{};return new RegExp(a,c.flags||(c.nocase?"i":""))}catch(c){if(l&&l.debug===!0)throw c;return/$^/}},r.constants=f,bt=r,bt}var dt,Dt;function dr(){if(Dt)return dt;Dt=1;const e=br(),t=at();function o(f,p,r=!1){return p&&(p.windows===null||p.windows===void 0)&&(p={...p,windows:t.isWindows()}),e(f,p,r)}return Object.assign(o,e),dt=o,dt}var yr=dr();Tt(yr);const mr=k(import.meta.url),Be=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,rt=e=>{if(typeof Be<"u"&&Be.versions&&Be.versions.node){const[t,o]=Be.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Be.getBuiltinModule(e)}return mr(e)};rt("fs");rt("fs");rt("path");rt("url");const{createRequire:vr}=rt("module");var Gt=vr(import.meta.url);try{Gt.resolve("picomatch"),Gt("picomatch")}catch{}var yt,Pt;function Ar(){if(Pt)return yt;Pt=1;/*!
2
+ * is-extglob <https://github.com/jonschlinkert/is-extglob>
3
+ *
4
+ * Copyright (c) 2014-2016, Jon Schlinkert.
5
+ * Licensed under the MIT License.
6
+ */return yt=function(e){if(typeof e!="string"||e==="")return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1},yt}var mt,Ut;function Vt(){if(Ut)return mt;Ut=1;/*!
7
+ * is-glob <https://github.com/jonschlinkert/is-glob>
8
+ *
9
+ * Copyright (c) 2014-2017, Jon Schlinkert.
10
+ * Released under the MIT License.
11
+ */var e=Ar(),t={"{":"}","(":")","[":"]"},o=function(p){if(p[0]==="!")return!0;for(var r=0,a=-2,l=-2,c=-2,S=-2,h=-2;r<p.length;){if(p[r]==="*"||p[r+1]==="?"&&/[\].+)]/.test(p[r])||l!==-1&&p[r]==="["&&p[r+1]!=="]"&&(l<r&&(l=p.indexOf("]",r)),l>r&&(h===-1||h>l||(h=p.indexOf("\\",r),h===-1||h>l)))||c!==-1&&p[r]==="{"&&p[r+1]!=="}"&&(c=p.indexOf("}",r),c>r&&(h=p.indexOf("\\",r),h===-1||h>c))||S!==-1&&p[r]==="("&&p[r+1]==="?"&&/[:!=]/.test(p[r+2])&&p[r+3]!==")"&&(S=p.indexOf(")",r),S>r&&(h=p.indexOf("\\",r),h===-1||h>S))||a!==-1&&p[r]==="("&&p[r+1]!=="|"&&(a<r&&(a=p.indexOf("|",r)),a!==-1&&p[a+1]!==")"&&(S=p.indexOf(")",a),S>a&&(h=p.indexOf("\\",a),h===-1||h>S))))return!0;if(p[r]==="\\"){var T=p[r+1];r+=2;var x=t[T];if(x){var E=p.indexOf(x,r);E!==-1&&(r=E+1)}if(p[r]==="!")return!0}else r++}return!1},f=function(p){if(p[0]==="!")return!0;for(var r=0;r<p.length;){if(/[*?{}()[\]]/.test(p[r]))return!0;if(p[r]==="\\"){var a=p[r+1];r+=2;var l=t[a];if(l){var c=p.indexOf(l,r);c!==-1&&(r=c+1)}if(p[r]==="!")return!0}else r++}return!1};return mt=function(p,r){if(typeof p!="string"||p==="")return!1;if(e(p))return!0;var a=o;return r&&r.strict===!1&&(a=f),a(p)},mt}const Rr=k(import.meta.url),Me=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Jt=e=>{if(typeof Me<"u"&&Me.versions&&Me.versions.node){const[t,o]=Me.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Me.getBuiltinModule(e)}return Rr(e)},Er=Jt("path"),_r=Jt("os");var vt,Ft;function Tr(){if(Ft)return vt;Ft=1;var e=Vt(),t=Er.posix.dirname,o=_r.platform()==="win32",f="/",p=/\\/g,r=/\\([!*?|[\](){}])/g;vt=function(c,S){var h=Object.assign({flipBackslashes:!0},S);h.flipBackslashes&&o&&c.indexOf(f)<0&&(c=c.replace(p,f)),a(c)&&(c+=f),c+="a";do c=t(c);while(l(c));return c.replace(r,"$1")};function a(c){var S=c.slice(-1),h;switch(S){case"}":h="{";break;case"]":h="[";break;default:return!1}var T=c.indexOf(h);return T<0?!1:c.slice(T+1,-1).includes(f)}function l(c){return/\([^()]+$/.test(c)||c[0]==="{"||c[0]==="["||/[^\\][{[]/.test(c)?!0:e(c)}return vt}var xr=Tr();Tt(xr);const Cr=k(import.meta.url),Ie=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Sr=e=>{if(typeof Ie<"u"&&Ie.versions&&Ie.versions.node){const[t,o]=Ie.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Ie.getBuiltinModule(e)}return Cr(e)};Sr("node:fs/promises");const $r=k(import.meta.url),De=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Or=e=>{if(typeof De<"u"&&De.versions&&De.versions.node){const[t,o]=De.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return De.getBuiltinModule(e)}return $r(e)},{accessSync:kr}=Or("node:fs");function Et(e,t=bo){Yt(e),e=ut(e);try{return kr(e,t),!0}catch{return!1}}var wr=Vt();Tt(wr);const Hr=k(import.meta.url),Ge=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,eo=e=>{if(typeof Ge<"u"&&Ge.versions&&Ge.versions.node){const[t,o]=Ge.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Ge.getBuiltinModule(e)}return Hr(e)};eo("node:fs/promises");eo("node:fs");let Nr=class extends Error{constructor(e){super(`ENOENT: ${e}`)}get code(){return"ENOENT"}set code(e){throw new Error("Cannot overwrite code ENOENT")}get name(){return"NotFoundError"}set name(e){throw new Error("Cannot overwrite name of NotFoundError")}};const Lr=k(import.meta.url),Pe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,to=e=>{if(typeof Pe<"u"&&Pe.versions&&Pe.versions.node){const[t,o]=Pe.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Pe.getBuiltinModule(e)}return Lr(e)};to("node:fs/promises");to("node:zlib");const Br=k(import.meta.url),Ue=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,oo=e=>{if(typeof Ue<"u"&&Ue.versions&&Ue.versions.node){const[t,o]=Ue.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Ue.getBuiltinModule(e)}return Br(e)};oo("node:fs");oo("node:zlib");const Mr=k(import.meta.url),Fe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Ir=e=>{if(typeof Fe<"u"&&Fe.versions&&Fe.versions.node){const[t,o]=Fe.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Fe.getBuiltinModule(e)}return Mr(e)},{createRequire:ro}=Ir("node:module"),Dr=new Map([["Error",Error],["EvalError",EvalError],["RangeError",RangeError],["ReferenceError",ReferenceError],["SyntaxError",SyntaxError],["TypeError",TypeError],["URIError",URIError]]);typeof AggregateError<"u"&&Dr.set("AggregateError",AggregateError);const Gr=ro(import.meta.url),je=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Pr=e=>{if(typeof je<"u"&&je.versions&&je.versions.node){const[t,o]=je.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return je.getBuiltinModule(e)}return Gr(e)};Pr("node:util");const Ur=ro(import.meta.url),ze=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,xt=e=>{if(typeof ze<"u"&&ze.versions&&ze.versions.node){const[t,o]=ze.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return ze.getBuiltinModule(e)}return Ur(e)};xt("node:fs");xt("node:path");xt("node:url");const Fr=k(import.meta.url),Ke=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,so=e=>{if(typeof Ke<"u"&&Ke.versions&&Ke.versions.node){const[t,o]=Ke.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Ke.getBuiltinModule(e)}return Fr(e)};so("node:fs");so("node:fs/promises");const jr=k(import.meta.url),Xe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,zr=e=>{if(typeof Xe<"u"&&Xe.versions&&Xe.versions.node){const[t,o]=Xe.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Xe.getBuiltinModule(e)}return jr(e)};zr("node:fs");const Kr=k(import.meta.url),We=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Xr=e=>{if(typeof We<"u"&&We.versions&&We.versions.node){const[t,o]=We.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return We.getBuiltinModule(e)}return Kr(e)};Xr("node:fs/promises");const Wr=k(import.meta.url),Qe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Qr=e=>{if(typeof Qe<"u"&&Qe.versions&&Qe.versions.node){const[t,o]=Qe.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Qe.getBuiltinModule(e)}return Wr(e)};Qr("node:fs");k(import.meta.url);const qr=k(import.meta.url),qe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Zr=e=>{if(typeof qe<"u"&&qe.versions&&qe.versions.node){const[t,o]=qe.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return qe.getBuiltinModule(e)}return qr(e)};Zr("node:crypto");new TextEncoder;const Yr=k(import.meta.url),Ze=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Vr=e=>{if(typeof Ze<"u"&&Ze.versions&&Ze.versions.node){const[t,o]=Ze.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Ze.getBuiltinModule(e)}return Yr(e)};Vr("node:fs/promises");const Jr=k(import.meta.url),Ye=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,es=e=>{if(typeof Ye<"u"&&Ye.versions&&Ye.versions.node){const[t,o]=Ye.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Ye.getBuiltinModule(e)}return Jr(e)};es("node:fs");const ts=k(import.meta.url),Ve=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,os=e=>{if(typeof Ve<"u"&&Ve.versions&&Ve.versions.node){const[t,o]=Ve.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Ve.getBuiltinModule(e)}return ts(e)};os("node:fs/promises");const rs=k(import.meta.url),Je=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,ss=e=>{if(typeof Je<"u"&&Je.versions&&Je.versions.node){const[t,o]=Je.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Je.getBuiltinModule(e)}return rs(e)};ss("node:fs");const ns=k(import.meta.url),et=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Ct=e=>{if(typeof et<"u"&&et.versions&&et.versions.node){const[t,o]=et.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return et.getBuiltinModule(e)}return ns(e)},us=Ct("fs"),is=Ct("os"),as=Ct("path");var At={},jt;function ls(){if(jt)return At;jt=1;var e=Object.defineProperty,t=(h,T)=>e(h,"name",{value:T,configurable:!0}),o=us,f=is,p=as;const r=t(h=>{let T="";for(let x=0;x<h.length;x+=1){const E=h[x],B=E.toUpperCase();T+=E===B?E.toLowerCase():B}return T},"invertCase"),a=new Map,l=t((h,T)=>{const x=p.join(h,`.is-fs-case-sensitive-test-${process.pid}`);try{return T.writeFileSync(x,""),!T.existsSync(r(x))}finally{try{T.unlinkSync(x)}catch{}}},"checkDirectoryCaseWithWrite"),c=t((h,T,x)=>{try{return l(h,x)}catch(E){if(T===void 0)return l(f.tmpdir(),x);throw E}},"checkDirectoryCaseWithFallback"),S=t((h,T=o,x=!0)=>{const E=h??process.cwd();if(x&&a.has(E))return a.get(E);let B;const te=r(E);return te!==E&&T.existsSync(E)?B=!T.existsSync(te):B=c(E,h,T),x&&a.set(E,B),B},"isFsCaseSensitive");return At.isFsCaseSensitive=S,At}ls();const no=e=>e instanceof URL?new URL(e).pathname:e,zt=e=>{const t=go();if(St==="win32"){const f=ot.LOCALAPPDATA??(t?oe(t,"AppData","Local"):lt());return oe(f,e,"Cache")}if(St==="darwin"){const f=t?oe(t,"Library","Caches"):lt();return oe(f,e)}const o=ot.XDG_CACHE_HOME??(t?oe(t,".cache"):lt());return oe(o,e)},ps=e=>{if(e.length===0)return;const t=e.map(r=>Zt(no(r)).split(pt));let o=Number.POSITIVE_INFINITY;for(const r of t)r.length<o&&(o=r.length);const f=[];for(let r=0;r<o;r+=1){const a=t[0][r];if(t.every(l=>l[r]===a))f.push(a);else break}const p=f.join(pt);return p===""?pt:p},tt=(e,t)=>{if(e!==void 0)return t?(...o)=>oe(e,...o):e},cs=e=>{if(e?.files&&e.files.length>0){const t=ps(e.files);if(t!==void 0)return t}return e?.cwd??ho()},fs=e=>new Nr(`No package.json found searching upwards from '${no(e)}'.`),Rt=e=>!Et(e,Wt)&&Et(e),gs=(e,t)=>{if(ot.CACHE_DIR&&!["0","1","false","true"].includes(ot.CACHE_DIR)){const l=oe(ot.CACHE_DIR,e);return t?.create&&Te(l),tt(l,t?.thunk)}const o=cs(t),f=fr("package.json",{cwd:o,type:"file"});if(!f){if(t?.useGlobalCacheFallback){const l=zt(e);return t.create&&Te(l),tt(l,t.thunk)}if(t?.throwError)throw fs(o);return}const p=oe(_t(f),"node_modules"),r=oe(p,".cache"),a=oe(r,e);if(Et(a,Wt))return t?.create&&Te(a),tt(a,t?.thunk);if(Rt(a)||Rt(r)||Rt(p)){if(t?.useGlobalCacheFallback){const l=zt(e);return t.create&&Te(l),tt(l,t.thunk)}return}return t?.create&&Te(a),tt(a,t?.thunk)},ys=gs,Kt="@inherit",hs=["aliases","dependsOn","inputs","outputs"],bs=(e,t)=>{if(t===void 0)return e===void 0?void 0:[...e];if(!t.includes(Kt))return[...t];const o=[];for(const f of t){if(f===Kt){e!==void 0&&o.push(...e);continue}o.push(f)}return o},ms=(e,t)=>{const o={...e,...t};for(const f of hs){const p=e?.[f],r=t?.[f],a=bs(p,r);a===void 0?delete o[f]:o[f]=a}return o};export{ys as E,ms as m};
@@ -0,0 +1 @@
1
+ import{createRequire as _}from"node:module";import{A as m,m as v,f as C,v as I}from"./index-CE6MsgcV.js";const y=_(import.meta.url),h=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,b=s=>{if(typeof h<"u"&&h.versions&&h.versions.node){const[e,r]=h.versions.node.split(".").map(Number);if(e>22||e===22&&r>=3||e===20&&r>=16)return h.getBuiltinModule(s)}return y(s)},{platform:T}=b("node:os"),x={server:{cache:!1,interactive:!1,persistent:!0,runInCI:!1},utility:{cache:!1,runInCI:!1}},A=s=>{const e=s.preset??s.options?.preset;if(!e)return s;const r=x[e];if(!r)return s;const{cache:n,...t}=r;return{...s,cache:s.cache??n,options:{...t,...s.options}}},j=()=>{const s=T();return s==="darwin"?"macos":s==="win32"?"windows":"linux"},R=(s,e)=>{if(!e||e.size===0)return!0;const r=s?.runnerTags;return!r||r.length===0?!0:r.some(n=>e.has(n))},k=(s,e,r=!0)=>{const n=s?.runInCI??!0;return n===!0||n==="always"?!0:n===!1?!e:n==="affected"?!e||r:!0},q=(s,e,r)=>r||!e?s:m(e)?e:v(s,e),B=(s,e)=>{if(e===!1)return{};const r=e===!0?$("production"):Array.isArray(e)?e:[e],n={};for(const t of r)Object.assign(n,O(s,t,n));return n},g=(s,e)=>{const r=t=>{const c=e[t];return c!==void 0?c:process.env[t]??""};let n="";for(let t=0;t<s.length;t+=1){const c=s[t];if(c==="\\"&&s[t+1]==="$"){n+="$",t+=1;continue}if(c!=="$"){n+=c;continue}const a=s[t+1];if(a==="{"){let o=1,l=t+2;for(;l<s.length;){const d=s[l];if(d==="}"){if(o-=1,o===0)break}else d==="{"&&s[l-1]==="$"&&(o+=1);l+=1}if(o!==0){n+=s.slice(t);break}const f=l,i=s.slice(t+2,f),u=i.indexOf(":-");if(u===-1)n+=r(i);else{const d=i.slice(0,u),w=i.slice(u+2),p=e[d]??process.env[d];n+=p!==void 0&&p!==""?p:g(w,e)}t=f;continue}if(a!==void 0&&/[A-Z_]/i.test(a)){let o=t+1;for(;o<s.length&&/\w/.test(s[o]);)o+=1;n+=r(s.slice(t+1,o)),t=o-1;continue}n+=c}return n},$=s=>{const e=[".env"];return s&&e.push(`.env.${s}`),s!=="test"&&e.push(".env.local"),s&&s!=="test"&&e.push(`.env.${s}.local`),e},O=(s,e,r={})=>{const n=m(e)?e:v(s,e);if(!C(n))return{};let t;try{t=I(n)}catch{return{}}const c={};for(const a of t.split(/\r?\n/)){const o=a.trim();if(o===""||o.startsWith("#"))continue;const l=o.indexOf("=");if(l===-1)continue;const f=o.slice(0,l).trim();if(f==="")continue;let i=o.slice(l+1).trim();const u=i.length>=2&&i.startsWith("'")&&i.endsWith("'");(i.startsWith('"')&&i.endsWith('"')||u)&&(i=i.slice(1,-1)),u||(i=g(i,{...r,...c})),c[f]=i}return c},F=(s,e=j())=>{if(s)return e==="windows"&&s.windowsShell?s.windowsShell:(e==="linux"||e==="macos")&&s.unixShell?s.unixShell:s.shell},M=s=>{if(s==="run")return!1;if(s==="build"||s==="test")return!0};export{F as a,M as b,A as c,j as d,B as l,R as m,q as r,k as s};
@@ -0,0 +1,5 @@
1
+ import{createRequire as F}from"node:module";import{m as v,f as m,o as R,v as y}from"./index-CE6MsgcV.js";import{a as W}from"./readJsonSync-CvkZyKmL-ihoybKvs.js";const D=F(import.meta.url),w=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,M=o=>{if(typeof w<"u"&&w.versions&&w.versions.node){const[e,n]=w.versions.node.split(".").map(Number);if(e>22||e===22&&n>=3||e===20&&n>=16)return w.getBuiltinModule(o)}return D(o)},{execFileSync:x}=M("node:child_process"),{randomBytes:B}=M("node:crypto"),{writeFileSync:I,renameSync:U,unlinkSync:q}=M("node:fs"),{delimiter:J}=M("node:path"),H=["proto","mise","fnm","volta","asdf","nvm","corepack"],z={asdf:["bun","deno","go","node","npm","pnpm","python","ruby","rust","yarn"],corepack:["npm","pnpm","yarn"],fnm:["node"],mise:["aube","bun","deno","go","node","npm","pnpm","python","ruby","rust","yarn"],nvm:["node"],proto:["bun","deno","go","node","npm","pnpm","python","ruby","rust","yarn"],volta:["node","npm","pnpm","yarn"]},Z=["proto","mise","fnm","volta","asdf","nvm","corepack"],A={asdf:[".tool-versions"],corepack:[],fnm:[".nvmrc",".node-version"],mise:[".mise.toml",".config/mise.toml","mise.toml"],nvm:[".nvmrc"],proto:[".prototools"],volta:[]},$=new Map,h=o=>{const e=$.get(o);if(e!==void 0||$.has(o))return e;const n=process.env.PATH;if(!n){$.set(o,void 0);return}const t=process.platform==="win32"?["",...(process.env.PATHEXT??".COM;.EXE;.BAT;.CMD").split(";")]:[""];for(const r of n.split(J)){const i=r.replaceAll(/^["']|["']$/g,"").trim();if(i!=="")for(const l of t){const s=`${i}${R}${o}${l}`;if(m(s))return $.set(o,s),s}}$.set(o,void 0)},S=(o,e=["--version"])=>{try{const n=x(o,e,{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:2e3}),t=/\d+\.\d+(?:\.\d+)?/.exec(n);return t?t[0]:n.trim()||void 0}catch{return}},_=(o,e)=>{const n=v(o,"package.json");if(!m(n))return[];try{const t=W(n)[e];if(e==="volta"&&typeof t=="object"&&t!==null&&Object.keys(t).length>0)return["package.json"];if(e==="packageManager"&&typeof t=="string"&&t.length>0)return["package.json"]}catch{}return[]},X=(o,e)=>o==="volta"?_(e,"volta"):o==="corepack"?_(e,"packageManager"):A[o].filter(n=>m(v(e,n))),P=new Map,G=()=>{P.clear(),$.clear()},O=(o,e)=>{{const i=P.get(o);if(i)return i}const n=[],t=!!h("pnpm")||!!h("yarn");for(const i of Z){const l=i==="nvm"?void 0:h(i),s=i==="nvm"&&!!process.env.NVM_DIR,c=X(i,o),a=!!l||s;i==="corepack"&&!a&&(!(c.length>0)||t)||!a&&c.length===0||n.push({binPath:l,configFiles:c,installed:a,name:i,version:l?S(l):void 0})}const r=Object.freeze(n);return P.set(o,r),r},ve=(o,e,n)=>{const t=O(o);return e?.preferredManager&&e.preferredManager!=="none"?t.find(r=>r.name===e.preferredManager)??{configFiles:[],installed:!1,name:e.preferredManager}:t.find(r=>r.installed&&r.configFiles.length>0)??t.find(r=>r.installed)??t.find(r=>r.configFiles.length>0)??{configFiles:[],installed:!1,name:"none"}},L=(o,e)=>{for(const n of e){const t=v(o,n);if(m(t))try{const r=y(t).trim();if(r!=="")return{name:n,value:r.replace(/^v/,"")}}catch{}}},V=/^([a-z][\w-]*)\s*=\s*"?([^"\n#]+?)"?\s*(?:#.*)?$/i,K=o=>{const e=v(o,".prototools");if(!m(e))return[];const n=y(e),t=[];let r=!1;for(const i of n.split(/\r?\n/)){const l=i.trim();if(l===""||l.startsWith("#"))continue;if(l.startsWith("[")){r=!0;continue}if(r)continue;const s=V.exec(l);if(!s)continue;const[,c,a]=s,p=g(c);p&&t.push({source:".prototools",tool:p,version:a.trim()})}return t},Y=/^\[tools\]\s*$/i,Q=/^([a-z][\w-]*)\s*=\s*"?([^"\n#]+?)"?\s*(?:#.*)?$/i,ee=o=>{for(const e of A.mise){const n=v(o,e);if(!m(n))continue;const t=[],r=y(n);let i=!1;for(const l of r.split(/\r?\n/)){const s=l.trim();if(s===""||s.startsWith("#"))continue;if(s.startsWith("[")){i=Y.test(s);continue}if(!i)continue;const c=Q.exec(s);if(!c)continue;const[,a,p]=c,d=g(a);d&&t.push({source:".mise.toml",tool:d,version:p.trim()})}if(t.length>0)return t}return[]},oe=o=>{const e=v(o,".tool-versions");if(!m(e))return[];const n=y(e),t=[];for(const r of n.split(/\r?\n/)){const i=r.trim();if(i===""||i.startsWith("#"))continue;const l=i.split(/\s+/);if(l.length<2)continue;const[s,...c]=l,a=g(s);a&&c[0]&&t.push({source:".tool-versions",tool:a,version:c[0]})}return t},g=o=>{switch(o.toLowerCase()){case"aube":return"aube";case"bun":return"bun";case"deno":return"deno";case"go":case"golang":return"go";case"node":case"nodejs":return"node";case"npm":return"npm";case"pnpm":return"pnpm";case"python":case"python3":return"python";case"ruby":return"ruby";case"rust":case"rustc":return"rust";case"yarn":return"yarn";default:return}},ne=o=>{const[e]=o.split("+",1),n=/^(pnpm|yarn|npm|bun)@(.+)$/.exec(e??"");if(!n)return;const t=g(n[1]);if(t)return{source:"packageManager",tool:t,version:n[2]}},te=(o,e)=>{const n=new Map,t=s=>{n.set(s.tool,s)},r=v(o,"package.json");let i={};try{m(r)&&(i=W(r))}catch{}if(i.engines)for(const[s,c]of Object.entries(i.engines)){const a=g(s);a&&typeof c=="string"&&t({source:"engines",tool:a,version:c})}if(i.packageManager){const s=ne(i.packageManager);s&&t(s)}if(i.volta)for(const[s,c]of Object.entries(i.volta)){const a=g(s);a&&typeof c=="string"&&t({source:"volta",tool:a,version:c})}const l=L(o,[".nvmrc",".node-version"]);l&&t({source:l.name===".nvmrc"?".nvmrc":".node-version",tool:"node",version:l.value});for(const s of oe(o))t(s);for(const s of ee(o))t(s);for(const s of K(o))t(s);if(e?.tools)for(const[s,c]of Object.entries(e.tools)){const a=g(s);a&&typeof c=="string"&&t({source:"vis.config.ts",tool:a,version:c})}return[...n.values()]},T={aube:{args:["--version"],binaries:["aube"]},bun:{args:["--version"],binaries:["bun"]},deno:{args:["--version"],binaries:["deno"]},go:{args:["version"],binaries:["go"]},node:{args:["--version"],binaries:["node"]},npm:{args:["--version"],binaries:["npm"]},pnpm:{args:["--version"],binaries:["pnpm"]},python:{args:["--version"],binaries:["python","python3"]},ruby:{args:["--version"],binaries:["ruby"]},rust:{args:["--version"],binaries:["rustc"]},yarn:{args:["--version"],binaries:["yarn"]}},E=o=>{const e=T[o];for(const n of e.binaries){const t=h(n);if(t)return S(t,e.args)}if(o==="node")return process.versions.node},N=(o,e)=>{const n=e.trim();if(n===""||n==="*"||n==="latest")return!0;if(/^\d[\d.]*$/.test(n))return o===n||o.startsWith(`${n}.`);const t=s=>s.split(/[.\-+]/).map(c=>Number.parseInt(c,10)||0),r=(s,c)=>{const a=t(s),p=t(c),d=Math.max(a.length,p.length);for(let f=0;f<d;f++){const b=a[f]??0,u=p[f]??0;if(b!==u)return b-u}return 0},i=s=>{for(const c of s)if(c.startsWith(">=")){if(r(o,c.slice(2).trim())<0)return!1}else if(c.startsWith("<=")){if(r(o,c.slice(2).trim())>0)return!1}else if(c.startsWith(">")){if(r(o,c.slice(1).trim())<=0)return!1}else if(c.startsWith("<")){if(r(o,c.slice(1).trim())>=0)return!1}else if(c.startsWith("^")||c.startsWith("~")){const a=c.slice(1).trim(),[p,d]=t(a),[f,b]=t(o);if(f!==p||c.startsWith("~")&&b!==d||r(o,a)<0)return!1}return!0},l=n.split("||").map(s=>s.trim().split(/\s+/).filter(Boolean)).filter(s=>s.length>0);return l.length===0?!0:l.some(s=>i(s))},re=(o,e)=>{switch(o){case".mise.toml":return["mise"];case".node-version":case".nvmrc":return["fnm","nvm","volta","proto","mise","asdf"];case".prototools":return["proto"];case".tool-versions":return["asdf","mise"];case"packageManager":return e==="pnpm"||e==="yarn"?["self-activate","volta","proto","mise","corepack"]:e==="npm"?["volta","proto","mise","asdf","corepack"]:e==="aube"?["mise"]:e==="bun"?["proto","mise","asdf"]:["volta","proto","mise"];case"volta":return["volta"];default:return["proto","mise","fnm","volta","asdf","nvm","corepack"]}},se=(o,e,n)=>{if(n?.preferredManager&&n.preferredManager!=="none"&&j(n.preferredManager,o.tool)){const r=e.find(i=>i.name===n.preferredManager);return r?{installed:r.installed,name:r.name}:{installed:!1,name:n.preferredManager,note:`${n.preferredManager} is the preferred manager but isn't on PATH`}}const t=re(o.source,o.tool);for(const r of t){if(r==="self-activate"){if((o.tool==="pnpm"||o.tool==="yarn")&&h(o.tool))return{installed:!0,name:"self-activate",note:`${o.tool} will activate ${o.version} from the packageManager field on next invocation`};continue}if(j(r,o.tool)&&e.find(i=>i.name===r)?.installed)return{installed:!0,name:r}}for(const r of t)if(!(r==="self-activate"||!j(r,o.tool)))return{installed:!1,name:r,note:`${r} can install ${o.tool} — run \`vis toolchain install\` after adding it to PATH`};return{installed:!1,name:"none",note:"No manager knows how to install this tool"}},j=(o,e)=>o==="none"?!1:o==="self-activate"?e==="pnpm"||e==="yarn":z[o].includes(e),ie=(o,e)=>{const n=O(o),t=te(o,e).map(r=>{const i=E(r.tool),l=i!==void 0&&N(i,r.version),s=se(r,n,e);return{actual:i,expected:r,manager:s,matches:l}});return{detected:n,tools:t}},ae=(o,e)=>{switch(o){case"asdf":return e?{args:["install",e.tool,e.version],bin:"asdf"}:void 0;case"corepack":return e?{args:["prepare",`${e.tool}@${e.version}`,"--activate"],bin:"corepack"}:{args:["prepare","--activate"],bin:"corepack",hint:"reads the packageManager field in package.json"};case"fnm":return e?.tool!=="node"?void 0:{args:["install",e.version],bin:"fnm"};case"mise":return e?{args:["install",`${e.tool}@${e.version}`],bin:"mise"}:void 0;case"none":return;case"nvm":return{args:[],bin:"nvm",hint:"nvm is a shell function — run `nvm install` / `nvm use` from your shell"};case"proto":return e?{args:["install",e.tool,e.version],bin:"proto"}:void 0;case"self-activate":return{args:[],bin:e?.tool??"pnpm",hint:`${e?.tool??"pnpm"} will self-activate on next invocation — no install needed`};case"volta":return e?{args:["install",`${e.tool}@${e.version}`],bin:"volta"}:{args:["install","node@lts"],bin:"volta",hint:"volta pins per-tool; specify <tool>@<version>"};default:{const n=o;throw new Error(`Unknown manager: ${n}`)}}},de=(o,e)=>{switch(o){case"asdf":return{args:["local",e.tool,e.version],bin:"asdf",configChange:{file:".tool-versions",hint:`Pins ${e.tool} ${e.version}`}};case"corepack":return e.tool!=="npm"&&e.tool!=="pnpm"&&e.tool!=="yarn"?void 0:{args:["use",`${e.tool}@${e.version}`],bin:"corepack",configChange:{file:"package.json",hint:`Writes packageManager: "${e.tool}@${e.version}"`}};case"fnm":return e.tool==="node"?{args:["use",e.version],bin:"fnm"}:void 0;case"mise":return{args:["use","--",`${e.tool}@${e.version}`],bin:"mise",configChange:{file:".mise.toml",hint:`Pins ${e.tool} ${e.version}`}};case"none":return;case"nvm":return e.tool==="node"?{args:[],bin:"nvm",configChange:{file:".nvmrc",hint:"Write version to .nvmrc manually (nvm doesn't persist)."}}:void 0;case"proto":return{args:["pin",e.tool,e.version],bin:"proto",configChange:{file:".prototools",hint:`Pins ${e.tool} ${e.version}`}};case"self-activate":return{args:[],bin:e.tool,configChange:{file:"package.json",hint:`Set packageManager: "${e.tool}@${e.version}" — ${e.tool} will self-activate on next invocation`}};case"volta":return{args:["pin",`${e.tool}@${e.version}`],bin:"volta",configChange:{file:"package.json",hint:`Writes volta.${e.tool}`}};default:{const n=o;throw new Error(`Unknown manager: ${n}`)}}},ge=o=>{for(const e of T[o].binaries){const n=h(e);if(n)return n}},he=(o,e)=>{const n=T[e].binaries;if(o.installed&&o.binPath&&(o.name==="proto"||o.name==="mise"||o.name==="asdf"||o.name==="volta"||o.name==="fnm"))for(const t of n)try{const r=x(o.binPath,["which",t],{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:2e3}).trim();if(r)return r}catch{}for(const t of n){const r=h(t);if(r)return r}},C=(o,e)=>{const n=`${o}.${process.pid}.${B(6).toString("hex")}.tmp`;I(n,e);try{U(n,o)}catch(t){try{q(n)}catch{}throw t}},ce=(o,e)=>{if("packageManager"in o)return o.packageManager=e,o;const n={};let t=!1;for(const[r,i]of Object.entries(o))!t&&(r==="dependencies"||r==="devDependencies"||r==="peerDependencies"||r==="optionalDependencies")&&(n.packageManager=e,t=!0),n[r]=i;return t||(n.packageManager=e),n},be=(o,e)=>{if(e.tool!=="pnpm"&&e.tool!=="yarn"&&e.tool!=="npm"&&e.tool!=="bun")return;const n=v(o,"package.json");if(!m(n))throw new Error(`Cannot pin ${e.tool}: ${n} does not exist.`);const t=y(n),r=/\n([ \t]+)/.exec(t)?.[1]??" ";let i;try{i=JSON.parse(t)}catch(a){throw new Error(`${n} is not valid JSON — fix it before running \`vis toolchain use\`. Underlying error: ${a.message}`,{cause:a})}const l=`${e.tool}@${e.version}`,s=ce(i,l),c=t.endsWith(`
2
+ `)?`
3
+ `:"";return C(n,`${JSON.stringify(s,void 0,r)}${c}`),l},$e=(o,e)=>{const n=v(o,"package.json");if(!m(n))return;const t=y(n);let r;try{r=JSON.parse(t)}catch(s){throw new Error(`${n} is not valid JSON — fix it before running \`vis toolchain use\`. Underlying error: ${s.message}`,{cause:s})}if(r.engines?.[e.tool]===void 0||r.engines[e.tool]===e.version)return;r.engines[e.tool]=e.version;const i=/\n([ \t]+)/.exec(t)?.[1]??" ",l=t.endsWith(`
4
+ `)?`
5
+ `:"";return C(n,`${JSON.stringify(r,void 0,i)}${l}`),e.version},ye=o=>{const e=/^([a-z][\w-]*)@(.+)$/i.exec(o.trim());if(!e)return;const n=g(e[1]);if(n)return{source:"vis.config.ts",tool:n,version:e[2]}},le=async(o,e,n)=>{const t=ie(o,e),r=t.tools.filter(a=>!a.matches);if(r.length===0)return{attempted:[],failed:[],upToDate:!0};const i=t.detected.some(a=>a.installed);if(!(e?.autoInstall??i))return{attempted:[],failed:[],upToDate:!1};const l=[],s=[],c=new Map;for(const a of r){const p=c.get(a.manager.name);p?p.push(a):c.set(a.manager.name,[a])}for(const[a,p]of c){if(a==="self-activate"){for(const{expected:f}of p)n.info(`toolchain: ${f.tool} ${f.version} will self-activate on next ${f.tool} invocation`),l.push(f);continue}if(a==="none"){for(const{expected:f}of p)s.push({error:`no manager can install ${f.tool} — install one of ${H.join(", ")}`,spec:f});continue}if(!t.detected.find(f=>f.name===a)?.installed){for(const{expected:f}of p)s.push({error:`${a} is not on PATH`,spec:f});continue}const d=p.map(f=>({invocation:ae(a,f.expected),tool:f})).filter(f=>f.invocation!==void 0);for(const{invocation:f,tool:b}of d){const{expected:u}=b;if(f.bin==="nvm"&&f.args.length===0){const k=E(u.tool);if(k!==void 0&&N(k,u.version)){n.info(`toolchain: ${u.tool} ${k} already satisfies ${u.version}; skipping nvm shell activation`),l.push(u);continue}n.warn(`toolchain: nvm requires a shell-side activation for ${u.tool} ${u.version}. Run \`nvm install\` / \`nvm use\` manually.`),s.push({error:"nvm requires shell-side activation",spec:u});continue}n.info(`toolchain: $ ${f.bin} ${f.args.join(" ")}`);try{x(f.bin,f.args,{cwd:o,stdio:"inherit"}),l.push(u),a==="fnm"&&fe(f.bin,n)}catch(k){s.push({error:k.message,spec:u});break}}}return G(),{attempted:l,failed:s,upToDate:!1}},ke=async(o,e,n,t=!1)=>{if(t)return;const r=await le(o,e,n);for(const i of r.failed)n.warn(`toolchain: ${i.spec.tool} ${i.spec.version} — ${i.error}`)},fe=(o,e)=>{const n=process.platform==="win32"?"powershell":"bash";try{const t=x(o,["env","--shell",n],{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:2e3});for(const r of t.split(/\r?\n/)){const i=r.trim();if(i==="")continue;const l=/^\$env:([A-Z_]\w*)\s*=\s*(.+)$/i.exec(i);if(l){const[,a,p]=l;process.env[a]=p.replaceAll(/^["']|["']$/g,"");continue}const s=/^set\s+"?([A-Z_]\w*)=(.*?)"?$/i.exec(i);if(s){const[,a,p]=s;process.env[a]=p;continue}const c=/^(?:export\s+)?([A-Z_]\w*)=(.+)$/i.exec(i);if(c){const[,a,p]=c;process.env[a]=p.replaceAll(/^["']|["']$/g,"")}}}catch(t){e.warn(`toolchain: could not activate fnm env (${t.message}). Subsequent tasks may use the previous Node version.`)}};export{H as S,ye as a,ae as b,se as c,de as d,he as e,O as f,ie as g,ge as h,ve as p,ke as r,$e as u,be as w};