@visulima/vis 4.3.1 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +598 -0
- package/LICENSE.md +151 -88
- package/README.md +2 -2
- package/dist/bin.js +1 -1
- package/dist/binx.js +1 -1
- package/dist/config/index.d.ts +42 -19
- package/dist/packem_chunks/CONFIG_FILES.js +4 -4
- package/dist/packem_chunks/bloom-status.js +1 -1
- package/dist/packem_chunks/bloom-sync.js +1 -1
- package/dist/packem_chunks/catalog.js +61 -51
- package/dist/packem_chunks/cli-exec.js +1 -1
- package/dist/packem_chunks/cli-main.js +202 -176
- package/dist/packem_chunks/dart-plan.js +1 -1
- package/dist/packem_chunks/dart-projects.js +1 -1
- package/dist/packem_chunks/dispatch.js +1 -1
- package/dist/packem_chunks/doctor-probe.js +1 -1
- package/dist/packem_chunks/fix.js +1 -1
- package/dist/packem_chunks/handler.js +1 -1
- package/dist/packem_chunks/handler10.js +4 -4
- package/dist/packem_chunks/handler11.js +1 -1
- package/dist/packem_chunks/handler12.js +1 -1
- package/dist/packem_chunks/handler13.js +1 -1
- package/dist/packem_chunks/handler14.js +1 -1
- package/dist/packem_chunks/handler15.js +1 -1
- package/dist/packem_chunks/handler16.js +1 -1
- package/dist/packem_chunks/handler17.js +1 -1
- package/dist/packem_chunks/handler18.js +1 -1
- package/dist/packem_chunks/handler19.js +1 -1
- package/dist/packem_chunks/handler2.js +1 -1
- package/dist/packem_chunks/handler20.js +2 -2
- package/dist/packem_chunks/handler21.js +1 -1
- package/dist/packem_chunks/handler22.js +2 -2
- package/dist/packem_chunks/handler23.js +1 -1
- package/dist/packem_chunks/handler24.js +1 -1
- package/dist/packem_chunks/handler26.js +5 -5
- package/dist/packem_chunks/handler27.js +1 -1
- package/dist/packem_chunks/handler28.js +1 -1
- package/dist/packem_chunks/handler29.js +1 -1
- package/dist/packem_chunks/handler3.js +1 -1
- package/dist/packem_chunks/handler30.js +1 -1
- package/dist/packem_chunks/handler39.js +6 -6
- package/dist/packem_chunks/handler5.js +1 -1
- package/dist/packem_chunks/handler50.js +2 -2
- package/dist/packem_chunks/handler51.js +1 -1
- package/dist/packem_chunks/handler53.js +1 -1
- package/dist/packem_chunks/handler54.js +1 -1
- package/dist/packem_chunks/handler55.js +1 -1
- package/dist/packem_chunks/handler58.js +1 -1
- package/dist/packem_chunks/handler59.js +1 -1
- package/dist/packem_chunks/handler6.js +1 -1
- package/dist/packem_chunks/handler60.js +7 -7
- package/dist/packem_chunks/handler61.js +2 -2
- package/dist/packem_chunks/handler62.js +10 -10
- package/dist/packem_chunks/handler63.js +1 -1
- package/dist/packem_chunks/handler64.js +6 -3
- package/dist/packem_chunks/handler65.js +8 -6
- package/dist/packem_chunks/handler66.js +2 -2
- package/dist/packem_chunks/handler67.js +31 -20
- package/dist/packem_chunks/handler68.js +1 -1
- package/dist/packem_chunks/handler69.js +22 -153
- package/dist/packem_chunks/handler7.js +1 -1
- package/dist/packem_chunks/handler70.js +9 -9
- package/dist/packem_chunks/handler71.js +153 -22
- package/dist/packem_chunks/handler72.js +1 -1
- package/dist/packem_chunks/handler73.js +1 -1
- package/dist/packem_chunks/handler74.js +1 -1
- package/dist/packem_chunks/handler75.js +35 -35
- package/dist/packem_chunks/handler76.js +1 -1
- package/dist/packem_chunks/handler77.js +3 -3
- package/dist/packem_chunks/handler78.js +69 -67
- package/dist/packem_chunks/handler8.js +1 -1
- package/dist/packem_chunks/handler9.js +1 -1
- package/dist/packem_chunks/heal-accept.js +1 -1
- package/dist/packem_chunks/heal.js +1 -1
- package/dist/packem_chunks/help-command.js +40 -7
- package/dist/packem_chunks/index2.js +32 -32
- package/dist/packem_chunks/index6.js +1 -1
- package/dist/packem_chunks/keys-refresh.js +1 -1
- package/dist/packem_chunks/lean.js +3 -4
- package/dist/packem_chunks/list.js +1 -1
- package/dist/packem_chunks/loader.js +1 -1
- package/dist/packem_chunks/orchestrator.js +1 -1
- package/dist/packem_chunks/prompts.js +1 -1
- package/dist/packem_chunks/status.js +1 -1
- package/dist/packem_chunks/sync.js +1 -1
- package/dist/packem_chunks/sync2.js +1 -1
- package/dist/packem_chunks/tar.js +1 -1
- package/dist/packem_chunks/tripwire.js +1 -1
- package/dist/packem_chunks/ts-loader.js +5 -5
- package/dist/packem_chunks/verify-lockfile.js +1 -1
- package/dist/packem_shared/{affected-selection-D4giBK2X.js → affected-selection-DDxwjwM4.js} +1 -1
- package/dist/packem_shared/affected-shas-BuaWvmsG.js +1 -0
- package/dist/packem_shared/{ai-fix-BC6aIRJT.js → ai-fix-C2BhFFhi.js} +5 -5
- package/dist/packem_shared/{augment-B9kSZuvW.js → augment-CxUPE8KX.js} +1 -1
- package/dist/packem_shared/{bin-C1XKj-O-.js → bin-Be7_QhQK.js} +1 -1
- package/dist/packem_shared/{build-scripts-CEDx_nJp.js → build-scripts-DxyVSkgM.js} +1 -1
- package/dist/packem_shared/command-runtime-BXvH5EC0.js +1 -0
- package/dist/packem_shared/{dart-pubspec-BK_cK2EP.js → dart-pubspec-DvmyleIr.js} +2 -2
- package/dist/packem_shared/{dependency-scan-B8jroa1D.js → dependency-scan-DKK3ZEZI.js} +1 -1
- package/dist/packem_shared/{docker-DXqV-07f.js → docker-BTuwdXaC.js} +1 -1
- package/dist/packem_shared/{ecosystem-gate-ddru_hOg.js → ecosystem-gate-BpQNUJzN.js} +1 -1
- package/dist/packem_shared/env-consistency-CUBJHENL.js +1 -0
- package/dist/packem_shared/{failure-log-D2x5BT8S.js → failure-log-kp0n2rbD.js} +1 -1
- package/dist/packem_shared/{formatBytes-BHAzNIrn-CrusHOew.js → formatBytes-BHAzNIrn-DRcKvqnb.js} +1 -1
- package/dist/packem_shared/git-source-DExWbfN0.js +2 -0
- package/dist/packem_shared/{index-BzhrR_iC.js → index-BdMIfGVZ.js} +15 -15
- package/dist/packem_shared/index-C9ENZqH9.js +39 -0
- package/dist/packem_shared/{index-Chje3u9v.js → index-DQfNpt2u.js} +1 -1
- package/dist/packem_shared/{index-DQ2GJzmy.js → index-DsSWb5XH.js} +1 -1
- package/dist/packem_shared/{index.server-sXNQYpsl.js → index.server-D8BLnYZO.js} +2 -2
- package/dist/packem_shared/{isAccessibleSync-DYKTrrvc-C-_5cgwu.js → isAccessibleSync-DYKTrrvc-BwaMhQs0.js} +1 -1
- package/dist/packem_shared/{lifecycle-D6PMPor-.js → lifecycle-BAhkhE2L.js} +1 -1
- package/dist/packem_shared/{lockfile-CiUtEbnt.js → lockfile-DHmlPGk1.js} +1 -1
- package/dist/packem_shared/{manifests-Du4yKlf_.js → manifests-Dd4Hoztt.js} +1 -1
- package/dist/packem_shared/{min-release-age-JViyQuBM.js → min-release-age-BJnOQaoF.js} +1 -1
- package/dist/packem_shared/{missing-package-json-Cu5YVAot.js → missing-package-json-DfzrGwe1.js} +1 -1
- package/dist/packem_shared/{multi-eco-lockfiles-B2X3yhyo.js → multi-eco-lockfiles-BIa6xvJc.js} +1 -1
- package/dist/packem_shared/{native-config-sync-TdTWjVgI.js → native-config-sync-Dr9XvxOf.js} +1 -1
- package/dist/packem_shared/osv-bloom-t40ra5U5.js +2 -0
- package/dist/packem_shared/{package-version-Dxirp-UO.js → package-version-CFuNUWDG.js} +2 -2
- package/dist/packem_shared/{packument-BQv4je9m.js → packument-C9nRiBJf.js} +1 -1
- package/dist/packem_shared/pm-runner-ImwtpnWY.js +1 -0
- package/dist/packem_shared/{project-name-filter-D6tXD8gd.js → project-name-filter-C2rkW-Vn.js} +1 -1
- package/dist/packem_shared/{provenance-DNyVMxNv.js → provenance-DF-ypZj3.js} +1 -1
- package/dist/packem_shared/{readJsonSync-CbryXYxN-EWl7_7KX.js → readJsonSync-CbryXYxN-Bm5i10UW.js} +1 -1
- package/dist/packem_shared/{registry-keys-DwB3ZXS_.js → registry-keys-BLuHOyZu.js} +1 -1
- package/dist/packem_shared/{resolve-explicit-BPsdmuty.js → resolve-explicit-BDaQRR6o.js} +1 -1
- package/dist/packem_shared/resolve-runtime-Cr19Pk6L.js +1 -0
- package/dist/packem_shared/{run-file-UBukWaha.js → run-file-XbRCF6Mp.js} +1 -1
- package/dist/packem_shared/{runtime-check-1U8HrQd9.js → runtime-check-Bh5q9IrT.js} +1 -1
- package/dist/packem_shared/{s1ngularity-QD2LD1sO.js → s1ngularity-UCZN7skW.js} +1 -1
- package/dist/packem_shared/{scan-progress-CkumcBG-.js → scan-progress-DcYI76zE.js} +1 -1
- package/dist/packem_shared/{selectors-edwcgNl3.js → selectors-DCiEU0iv.js} +2 -2
- package/dist/packem_shared/{signatures-t8LbOaqr.js → signatures-CicxPHN4.js} +1 -1
- package/dist/packem_shared/target-merge-BClIXg2k.js +14 -0
- package/dist/packem_shared/{target-options-DsHFmRZH.js → target-options-PgWIuJnb.js} +1 -1
- package/dist/packem_shared/task-env-Dl08aklA.js +2 -0
- package/dist/packem_shared/toolchain-DvUxlbDz.js +5 -0
- package/dist/packem_shared/{typosquats-8u0drCqQ.js → typosquats-DxPzyK7u.js} +1 -1
- package/dist/packem_shared/{verify-B_MblU_Q.js → verify-CadR9PUk.js} +1 -1
- package/dist/packem_shared/{vis-update-app-BCIccZfA.js → vis-update-app-DrFWQyPn.js} +1 -1
- package/dist/packem_shared/{vis-user-error-75VtCwMv.js → vis-user-error-k7CLTpA4.js} +15 -15
- package/dist/packem_shared/{watch-CcTketln.js → watch-Dr_6yz3o.js} +1 -1
- package/dist/packem_shared/watch-loop-BId9vT7Q.js +11 -0
- package/dist/packem_shared/{writeFileSync-DJoHk3Ks-BPRoepNw.js → writeFileSync-DJoHk3Ks-Dhem3Uof.js} +1 -1
- package/dist/release/core/version-actions/index.d.ts +1 -1
- package/dist/release/presets.d.ts +1 -55
- package/dist/release/presets.js +1 -1
- package/dist/release/types.d.ts +1 -18
- package/dist/runtime/preload.js +1 -1
- package/index.d.ts +204 -204
- package/index.js +52 -52
- package/package.json +10 -10
- package/schemas/project.schema.json +44 -1
- package/schemas/vis-config.schema.json +128 -35
- package/schemas/vis-release-config.schema.json +1 -12
- package/skills/vis/SKILL.md +24 -12
- package/dist/packem_shared/Table-BB8xHTU5-BLPS917D.js +0 -11
- package/dist/packem_shared/affected-shas-B2V84O0g.js +0 -1
- package/dist/packem_shared/command-runtime-p4IXiIf6.js +0 -1
- package/dist/packem_shared/giget-D8Kwb0kD.js +0 -2
- package/dist/packem_shared/index-BisalDCf.js +0 -39
- package/dist/packem_shared/osv-bloom-BCAX5ARR.js +0 -2
- package/dist/packem_shared/pm-runner-CMSml1Bj.js +0 -1
- package/dist/packem_shared/resolve-runtime-CNiHcVtx.js +0 -1
- package/dist/packem_shared/target-merge-DVJl-7Qz.js +0 -4
- package/dist/packem_shared/toolchain-BRdpaAC4.js +0 -5
- package/dist/packem_shared/watch-loop-qRn0IHPG.js +0 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createRequire as X}from"node:module";import{X as j,b as T}from"./index.server-sXNQYpsl.js";import{e as A}from"./index-BzhrR_iC.js";import{g as L}from"./formatBytes-BHAzNIrn-CrusHOew.js";import{D as m,m as y}from"./provenance-DNyVMxNv.js";import{g as E}from"./packument-BQv4je9m.js";import{c as w}from"../packem_chunks/cli-main.js";import{y as U}from"./isAccessibleSync-DYKTrrvc-C-_5cgwu.js";import{p as O}from"./readJsonSync-CbryXYxN-EWl7_7KX.js";import{h as C}from"./writeFileSync-DJoHk3Ks-BPRoepNw.js";import{s as p}from"./index-B4AjSxHU.js";let Y;const Q=r=>(Y??=X(import.meta.url))(r),b=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,$=r=>{if(typeof b<"u"&&b.versions&&b.versions.node){const[e,t]=b.versions.node.split(".").map(Number);if(e>22||e===22&&t>=3||e===20&&t>=16)return b.getBuiltinModule(r)}return Q(r)},{rmSync:D,writeFileSync:P}=$("node:fs"),{createHash:Z}=$("node:crypto"),{Resolver:ee}=$("node:dns/promises");class rr{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 tr=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(j(`${String(t.length)} error${t.length===1?"":"s"}:`));for(const s of t)e.push(` ${j("✗")} [${s.marshall}] ${s.packageName}: ${s.message}`),s.suggestedAction!==void 0&&e.push(` ${T("→")} ${s.suggestedAction}`)}if(n.length>0){t.length>0&&e.push(""),e.push(T(`${String(n.length)} warning${n.length===1?"":"s"}:`));for(const s of n)e.push(` ${T("⚠")} [${s.marshall}] ${s.packageName}: ${s.message}`),s.suggestedAction!==void 0&&e.push(` ${T("→")} ${s.suggestedAction}`)}return e},nr=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")}),re=1440*60*1e3,te=15e3,ne="https://api.github.com/repos",W=()=>A(L(),"archived-repo"),q=(r,e)=>A(W(),`${encodeURIComponent(r)}__${encodeURIComponent(e)}.json`),se=(r,e)=>{const t=q(r,e);if(U(t))try{const n=O(t);if(Date.now()-n.createdAt>n.ttlMs){D(t,{force:!0});return}return n}catch{D(t,{force:!0});return}},B=(r,e,t,n)=>{C(W());const s={createdAt:Date.now(),ttlMs:n,...t};P(q(r,e),JSON.stringify(s),"utf8")},oe=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]}},ie=async(r,e,t,n)=>{const s=`${ne}/${encodeURIComponent(r)}/${encodeURIComponent(e)}`,l=new AbortController,o=setTimeout(()=>{l.abort()},te),i=()=>{l.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 c=await fetch(s,{headers:a,signal:l.signal});if(c.status===404)return{kind:"missing"};if(!c.ok)return{kind:"transient-error"};const d=await c.json(),u=d.archived===!0,f=typeof d.archived_at=="string"?d.archived_at:void 0;return{archived:u,archivedAt:f,kind:"ok"}}catch{return{kind:"transient-error"}}finally{clearTimeout(o),n?.removeEventListener("abort",i)}},ae=(r,e)=>e!==void 0&&r.includes(e)?e:r.at(-1),sr=async(r,e={})=>{if(w("archivedRepo"))return[];const t=new Set(e.allowlist),n=e.cacheTtlMs??re,s=e.githubToken??process.env.GITHUB_TOKEN,l=e.concurrency??m,o=new Map,i=async(c,d)=>{const u=`${c}/${d}`;let f=o.get(u);return f===void 0&&(f=(async()=>{const h=se(c,d);if(h!==void 0)return h.missing===!0?{archived:!1,kind:"missing"}:{archived:h.archived,archivedAt:h.archivedAt,kind:"ok"};const v=await ie(c,d,s,e.signal);return v.kind==="missing"?B(c,d,{archived:!1,missing:!0},n):v.kind==="ok"&&B(c,d,{archived:v.archived===!0,archivedAt:v.archivedAt},n),v})(),o.set(u,f)),f};return(await y(r,l,async({name:c,version:d})=>{if(t.has(c))return;const u=await E(c,{workspaceRoot:e.workspaceRoot});if(u===void 0)return;const f=u.versions[d]??u.versions[ae(Object.keys(u.versions),u["dist-tags"]?.latest)??""];if(f===void 0)return;const h=oe(f.repository?.url);if(h===void 0)return;const v=await i(h.owner,h.repo);if(v.kind!=="transient-error"){if(v.kind==="missing")return{kind:"missing-repo",owner:h.owner,packageName:c,repo:h.repo};if(v.archived===!0)return{...v.archivedAt===void 0?{}:{archivedAt:v.archivedAt},kind:"archived",owner:h.owner,packageName:c,repo:h.repo}}})).filter(c=>c!==void 0)},ce={dormantErrorDays:274,dormantWarnDays:183,newPublisherWindowDays:21,recentVersionErrorDays:7,recentVersionWarnDays:30},de=1440*60*1e3,F=(r,e)=>(r-e)/de,_=r=>{if(r!==void 0)return r.email??r.name},ue=(r,e,t,n,s)=>{const l=r.time?.[t];if(l===void 0)return;const o=new Date(l).getTime();if(!Number.isFinite(o))return;const i=F(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}},le=(r,e,t,n,s)=>{const l=r.versions[t],o=_(l?._npmUser);if(o===void 0)return;const a=Object.keys(r.versions).filter(h=>p.valid(h)!==null).filter(h=>p.lt(h,t));if(a.length===0||a.some(h=>_(r.versions[h]?._npmUser)===o))return;const d=r.time?.[a[0]??""];if(d===void 0)return;const u=new Date(d).getTime();if(!Number.isFinite(u))return;const f=F(n,u);if(!(f<=s.newPublisherWindowDays))return{kind:"new-publisher",message:`first publish by ${o} on a ${f.toFixed(0)}-day-old package`,packageName:e,severity:"error",version:t}},fe=(r,e,t,n,s)=>{const l=r.versions[t],o=_(l?._npmUser);if(o===void 0)return;const i=[];for(const[d,u]of Object.entries(r.versions)){if(d===t||_(u._npmUser)!==o)continue;const f=r.time?.[d];if(f===void 0)continue;const h=new Date(f).getTime();Number.isFinite(h)&&i.push(h)}if(i.length===0)return;const a=Math.max(...i),c=F(n,a);if(c>=s.dormantErrorDays)return{kind:"dormant-maintainer",message:`previous release by ${o} was ${c.toFixed(0)} days ago (error threshold: ${String(s.dormantErrorDays)})`,packageName:e,severity:"error",version:t};if(c>=s.dormantWarnDays)return{kind:"dormant-maintainer",message:`previous release by ${o} was ${c.toFixed(0)} days ago (warn threshold: ${String(s.dormantWarnDays)})`,packageName:e,severity:"warning",version:t}},or=async(r,e={})=>{if(w("author"))return[];const t=new Set(e.allowlist),n={...ce,...e.thresholds},s=e.now??(()=>Date.now()),l=e.concurrency??m;return(await y(r,l,async({name:i,version:a})=>{if(t.has(i))return[];const c=await E(i,{cacheTtlMs:e.cacheTtlMs,signal:e.signal,workspaceRoot:e.workspaceRoot});if(c===void 0)return[];const d=s(),u=[],f=ue(c,i,a,d,n);f!==void 0&&u.push(f);const h=le(c,i,a,d,n);h!==void 0&&u.push(h);const v=fe(c,i,a,d,n);return v!==void 0&&u.push(v),u})).flat()},he=1440*60*1e3,ve=15e3,ge=20,pe=1e4,me="https://api.npmjs.org/downloads/point/last-month",G=()=>A(L(),"downloads"),J=r=>A(G(),`${encodeURIComponent(r)}.json`),ye=r=>{const e=J(r);if(U(e))try{const t=O(e);if(Date.now()-t.createdAt>t.ttlMs){D(e,{force:!0});return}return t.downloads}catch{D(e,{force:!0});return}},we=(r,e,t)=>{C(G());const n={createdAt:Date.now(),downloads:e,observedAt:new Date().toISOString(),ttlMs:t};P(J(r),JSON.stringify(n),"utf8")},ke=async(r,e)=>{const t=`${me}/${encodeURIComponent(r)}`,n=new AbortController,s=setTimeout(()=>{n.abort()},ve),l=()=>{n.abort()};e?.addEventListener("abort",l,{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",l)}},ir=async(r,e={})=>{if(w("downloads"))return[];const t=new Set(e.allowlist),n=e.errorThreshold??ge,s=e.warnThreshold??pe,l=e.cacheTtlMs??he,o=e.concurrency??m;return(await y(r,o,async a=>{if(t.has(a))return;let d=ye(a);if(d===void 0){const u=await ke(a,e.signal);if(u.kind==="no-data"||u.kind==="error")return{downloadsLastMonth:void 0,kind:"no-data",packageName:a,severity:"warning"};d=u.downloads??0,we(a,d,l)}if(d<n)return{downloadsLastMonth:d,kind:"below-error",packageName:a,severity:"error"};if(d<s)return{downloadsLastMonth:d,kind:"below-warning",packageName:a,severity:"warning"}})).filter(a=>a!==void 0)},De=1440*60*1e3,Ae=4e3,Ee=["1.1.1.1","8.8.8.8"],K=()=>A(L(),"expired-domains"),z=r=>{const e=Z("sha256").update(r).digest("hex").slice(0,12);return A(K(),`${e}.json`)},be=r=>{const e=z(r);if(U(e))try{const t=O(e);if(Date.now()-t.createdAt>t.ttlMs){D(e,{force:!0});return}return t}catch{D(e,{force:!0});return}},Re=(r,e,t)=>{C(K());const n={createdAt:Date.now(),outcome:e,ttlMs:t};P(z(r),JSON.stringify(n),"utf8")},Te=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},_e=(r,e)=>{const t=[];e!==void 0&&t.push(e);for(const n of r??[])t.push(n);return t},Me=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)}},Se=r=>{if(r===null||typeof r!="object")return!1;const{code:e}=r;return e==="ENOTFOUND"||e==="ENODATA"||e==="NXDOMAIN"},$e=async(r,e,t)=>{try{const n=await Me(r.resolveNs(e),t);return Array.isArray(n)&&n.length>0?{kind:"ok"}:{kind:"expired"}}catch(n){return Se(n)?{kind:"expired"}:{kind:"transient-error"}}},Pe=(r,e)=>e!==void 0&&r.includes(e)?e:r.at(-1),ar=async(r,e={})=>{if(w("expiredDomains"))return[];const t=new Set(e.allowlist),n=new Set((e.allowDomains??[]).map(f=>f.toLowerCase())),s=e.cacheTtlMs??De,l=e.perDomainTimeoutMs??Ae,o=e.dnsServers??Ee,i=e.concurrency??m,a=e.createResolver===void 0?new ee:e.createResolver();typeof a.setServers=="function"&&a.setServers(o);const c=new Map,d=async f=>{let h=c.get(f);return h===void 0&&(h=(async()=>{const v=be(f);if(v!==void 0)return{kind:v.outcome==="ok"?"ok":"expired"};const g=await $e(a,f,l);return g.kind!=="transient-error"&&Re(f,g.kind,s),g})(),c.set(f,h)),h};return(await y(r,i,async({name:f,version:h})=>{if(t.has(f))return[];const v=await E(f,{workspaceRoot:e.workspaceRoot});if(v===void 0)return[];const g=v.versions[h]??v.versions[Pe(Object.keys(v.versions),v["dist-tags"]?.latest)??""];if(g===void 0)return[];const M=_e(g.maintainers,g._npmUser),N=new Set,S=[];for(const R of M){const k=Te(R.email);if(k===void 0||n.has(k))continue;const I=`${k}:${R.email??""}`;if(N.has(I))continue;N.add(I);const x=await d(k);x.kind==="expired"?S.push({domain:k,kind:"expired",maintainer:R.email??"",packageName:f,severity:"error"}):x.kind==="transient-error"&&S.push({domain:k,kind:"unresolved",maintainer:R.email??"",packageName:f,severity:"warning"})}return S})).flat()},Le=["readme","license","repo"],Ue=["ERROR: No README data found!","# Security holding package"],Oe=r=>{const e=r.trim();return e===""?!0:Ue.some(t=>e.startsWith(t))},Ce=(r,e)=>{if(typeof e.readme=="string")return e.readme;if(typeof r.readme=="string")return r.readme},Fe=(r,e)=>{const t=Ce(r,e);if(t===void 0)return"missing-readme";if(Oe(t))return"placeholder-readme"},Ne=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"},Ie=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"},xe=r=>{const e=r["dist-tags"]?.latest;return e!==void 0&&Object.hasOwn(r.versions,e)?e:Object.keys(r.versions).at(-1)},cr=async(r,e={})=>{if(w("metadata"))return[];const t=new Set(e.allowlist),n=new Set(e.checks??Le),s=e.concurrency??m;return(await y(r,s,async({name:o,version:i})=>{if(t.has(o))return;const a=await E(o,{workspaceRoot:e.workspaceRoot});if(a===void 0)return;const c=a.versions[i]??a.versions[xe(a)??""];if(c===void 0||c.private===!0)return;const d=[];if(n.has("readme")){const u=Fe(a,c);u!==void 0&&d.push(u)}if(n.has("license")){const u=Ne(c);u!==void 0&&d.push(u)}if(n.has("repo")){const u=Ie(c);u!==void 0&&d.push(u)}if(d.length!==0)return{issues:d,packageName:o,version:i}})).filter(o=>o!==void 0)},H=(r,e)=>r===void 0?{}:typeof r=="string"?{[e.startsWith("@")?e.split("/").at(1)??e:e]:r}:{...r},je=(r,e)=>p.valid(e)?Object.keys(r.versions).filter(n=>p.valid(n)!==null&&p.lt(n,e)).sort((n,s)=>p.lt(n,s)?1:-1)[0]:void 0,dr=async(r,e={})=>{if(w("newBin"))return[];const t=new Set(e.allowlist),n=new Set(e.allowBins),s=e.concurrency??m;return(await y(r,s,async({name:o,version:i})=>{if(t.has(o))return;const a=await E(o,{workspaceRoot:e.workspaceRoot});if(a===void 0)return;const c=a.versions[i];if(c===void 0)return;const d=je(a,i);if(d===void 0)return;const u=a.versions[d];if(u===void 0)return;const f=H(c.bin,o),h=H(u.bin,o),v=Object.entries(f).filter(([g])=>!(g in h)).filter(([g])=>!n.has(g)).map(([g,M])=>({command:M,name:g}));if(v.length!==0)return{fromVersion:d,newBins:v,packageName:o,toVersion:i}})).filter(o=>o!==void 0)},Be=["preinstall","install","postinstall"],V=(r,e)=>r.versions[e]?.dist?.attestations?.provenance!==void 0,He=(r,e)=>{if(p.valid(e)!==null)return Object.keys(r.versions).filter(t=>p.valid(t)!==null&&p.prerelease(t)===null&&p.lt(t,e)).sort((t,n)=>p.lt(t,n)?1:-1)[0]},Ve=(r,e)=>{const t=r??{},n=e??{},s=[];for(const l of Be){const o=t[l];if(o===void 0||o==="")continue;const i=n[l];i===void 0||i===""?s.push({command:o,hook:l,kind:"introduced"}):i!==o&&s.push({command:o,hook:l,kind:"changed"})}return s},ur=async(r,e={})=>{if(w("s1ngularity"))return[];const t=new Set(e.allowlist),n=e.concurrency??m;return(await y(r,n,async({name:l,version:o})=>{if(t.has(l))return;const i=await E(l,{workspaceRoot:e.workspaceRoot});if(i?.versions[o]===void 0)return;const a=He(i,o);if(a===void 0||!V(i,a)||V(i,o))return;const c=Ve(i.versions[o]?.scripts,i.versions[a]?.scripts);if(c.length!==0)return{hookChanges:c,packageName:l,priorVersion:a,trustSignal:"provenance-dropped",version:o}})).filter(l=>l!==void 0)};export{rr as M,ur as a,dr as b,cr as c,ir as d,ar as e,sr as f,nr as g,tr as h,or as r};
|
|
1
|
+
import{createRequire as X}from"node:module";import{X as j,b as T}from"./index.server-D8BLnYZO.js";import{e as A}from"./index-BdMIfGVZ.js";import{g as L}from"./formatBytes-BHAzNIrn-DRcKvqnb.js";import{D as m,m as y}from"./provenance-DF-ypZj3.js";import{g as E}from"./packument-C9nRiBJf.js";import{c as w}from"../packem_chunks/cli-main.js";import{y as U}from"./isAccessibleSync-DYKTrrvc-BwaMhQs0.js";import{p as O}from"./readJsonSync-CbryXYxN-Bm5i10UW.js";import{h as C}from"./writeFileSync-DJoHk3Ks-Dhem3Uof.js";import{s as p}from"./index-B4AjSxHU.js";let Y;const Q=r=>(Y??=X(import.meta.url))(r),b=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,$=r=>{if(typeof b<"u"&&b.versions&&b.versions.node){const[e,t]=b.versions.node.split(".").map(Number);if(e>22||e===22&&t>=3||e===20&&t>=16)return b.getBuiltinModule(r)}return Q(r)},{rmSync:D,writeFileSync:P}=$("node:fs"),{createHash:Z}=$("node:crypto"),{Resolver:ee}=$("node:dns/promises");class rr{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 tr=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(j(`${String(t.length)} error${t.length===1?"":"s"}:`));for(const s of t)e.push(` ${j("✗")} [${s.marshall}] ${s.packageName}: ${s.message}`),s.suggestedAction!==void 0&&e.push(` ${T("→")} ${s.suggestedAction}`)}if(n.length>0){t.length>0&&e.push(""),e.push(T(`${String(n.length)} warning${n.length===1?"":"s"}:`));for(const s of n)e.push(` ${T("⚠")} [${s.marshall}] ${s.packageName}: ${s.message}`),s.suggestedAction!==void 0&&e.push(` ${T("→")} ${s.suggestedAction}`)}return e},nr=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")}),re=1440*60*1e3,te=15e3,ne="https://api.github.com/repos",W=()=>A(L(),"archived-repo"),q=(r,e)=>A(W(),`${encodeURIComponent(r)}__${encodeURIComponent(e)}.json`),se=(r,e)=>{const t=q(r,e);if(U(t))try{const n=O(t);if(Date.now()-n.createdAt>n.ttlMs){D(t,{force:!0});return}return n}catch{D(t,{force:!0});return}},B=(r,e,t,n)=>{C(W());const s={createdAt:Date.now(),ttlMs:n,...t};P(q(r,e),JSON.stringify(s),"utf8")},oe=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]}},ie=async(r,e,t,n)=>{const s=`${ne}/${encodeURIComponent(r)}/${encodeURIComponent(e)}`,l=new AbortController,o=setTimeout(()=>{l.abort()},te),i=()=>{l.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 c=await fetch(s,{headers:a,signal:l.signal});if(c.status===404)return{kind:"missing"};if(!c.ok)return{kind:"transient-error"};const d=await c.json(),u=d.archived===!0,f=typeof d.archived_at=="string"?d.archived_at:void 0;return{archived:u,archivedAt:f,kind:"ok"}}catch{return{kind:"transient-error"}}finally{clearTimeout(o),n?.removeEventListener("abort",i)}},ae=(r,e)=>e!==void 0&&r.includes(e)?e:r.at(-1),sr=async(r,e={})=>{if(w("archivedRepo"))return[];const t=new Set(e.allowlist),n=e.cacheTtlMs??re,s=e.githubToken??process.env.GITHUB_TOKEN,l=e.concurrency??m,o=new Map,i=async(c,d)=>{const u=`${c}/${d}`;let f=o.get(u);return f===void 0&&(f=(async()=>{const h=se(c,d);if(h!==void 0)return h.missing===!0?{archived:!1,kind:"missing"}:{archived:h.archived,archivedAt:h.archivedAt,kind:"ok"};const v=await ie(c,d,s,e.signal);return v.kind==="missing"?B(c,d,{archived:!1,missing:!0},n):v.kind==="ok"&&B(c,d,{archived:v.archived===!0,archivedAt:v.archivedAt},n),v})(),o.set(u,f)),f};return(await y(r,l,async({name:c,version:d})=>{if(t.has(c))return;const u=await E(c,{workspaceRoot:e.workspaceRoot});if(u===void 0)return;const f=u.versions[d]??u.versions[ae(Object.keys(u.versions),u["dist-tags"]?.latest)??""];if(f===void 0)return;const h=oe(f.repository?.url);if(h===void 0)return;const v=await i(h.owner,h.repo);if(v.kind!=="transient-error"){if(v.kind==="missing")return{kind:"missing-repo",owner:h.owner,packageName:c,repo:h.repo};if(v.archived===!0)return{...v.archivedAt===void 0?{}:{archivedAt:v.archivedAt},kind:"archived",owner:h.owner,packageName:c,repo:h.repo}}})).filter(c=>c!==void 0)},ce={dormantErrorDays:274,dormantWarnDays:183,newPublisherWindowDays:21,recentVersionErrorDays:7,recentVersionWarnDays:30},de=1440*60*1e3,F=(r,e)=>(r-e)/de,_=r=>{if(r!==void 0)return r.email??r.name},ue=(r,e,t,n,s)=>{const l=r.time?.[t];if(l===void 0)return;const o=new Date(l).getTime();if(!Number.isFinite(o))return;const i=F(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}},le=(r,e,t,n,s)=>{const l=r.versions[t],o=_(l?._npmUser);if(o===void 0)return;const a=Object.keys(r.versions).filter(h=>p.valid(h)!==null).filter(h=>p.lt(h,t));if(a.length===0||a.some(h=>_(r.versions[h]?._npmUser)===o))return;const d=r.time?.[a[0]??""];if(d===void 0)return;const u=new Date(d).getTime();if(!Number.isFinite(u))return;const f=F(n,u);if(!(f<=s.newPublisherWindowDays))return{kind:"new-publisher",message:`first publish by ${o} on a ${f.toFixed(0)}-day-old package`,packageName:e,severity:"error",version:t}},fe=(r,e,t,n,s)=>{const l=r.versions[t],o=_(l?._npmUser);if(o===void 0)return;const i=[];for(const[d,u]of Object.entries(r.versions)){if(d===t||_(u._npmUser)!==o)continue;const f=r.time?.[d];if(f===void 0)continue;const h=new Date(f).getTime();Number.isFinite(h)&&i.push(h)}if(i.length===0)return;const a=Math.max(...i),c=F(n,a);if(c>=s.dormantErrorDays)return{kind:"dormant-maintainer",message:`previous release by ${o} was ${c.toFixed(0)} days ago (error threshold: ${String(s.dormantErrorDays)})`,packageName:e,severity:"error",version:t};if(c>=s.dormantWarnDays)return{kind:"dormant-maintainer",message:`previous release by ${o} was ${c.toFixed(0)} days ago (warn threshold: ${String(s.dormantWarnDays)})`,packageName:e,severity:"warning",version:t}},or=async(r,e={})=>{if(w("author"))return[];const t=new Set(e.allowlist),n={...ce,...e.thresholds},s=e.now??(()=>Date.now()),l=e.concurrency??m;return(await y(r,l,async({name:i,version:a})=>{if(t.has(i))return[];const c=await E(i,{cacheTtlMs:e.cacheTtlMs,signal:e.signal,workspaceRoot:e.workspaceRoot});if(c===void 0)return[];const d=s(),u=[],f=ue(c,i,a,d,n);f!==void 0&&u.push(f);const h=le(c,i,a,d,n);h!==void 0&&u.push(h);const v=fe(c,i,a,d,n);return v!==void 0&&u.push(v),u})).flat()},he=1440*60*1e3,ve=15e3,ge=20,pe=1e4,me="https://api.npmjs.org/downloads/point/last-month",G=()=>A(L(),"downloads"),J=r=>A(G(),`${encodeURIComponent(r)}.json`),ye=r=>{const e=J(r);if(U(e))try{const t=O(e);if(Date.now()-t.createdAt>t.ttlMs){D(e,{force:!0});return}return t.downloads}catch{D(e,{force:!0});return}},we=(r,e,t)=>{C(G());const n={createdAt:Date.now(),downloads:e,observedAt:new Date().toISOString(),ttlMs:t};P(J(r),JSON.stringify(n),"utf8")},ke=async(r,e)=>{const t=`${me}/${encodeURIComponent(r)}`,n=new AbortController,s=setTimeout(()=>{n.abort()},ve),l=()=>{n.abort()};e?.addEventListener("abort",l,{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",l)}},ir=async(r,e={})=>{if(w("downloads"))return[];const t=new Set(e.allowlist),n=e.errorThreshold??ge,s=e.warnThreshold??pe,l=e.cacheTtlMs??he,o=e.concurrency??m;return(await y(r,o,async a=>{if(t.has(a))return;let d=ye(a);if(d===void 0){const u=await ke(a,e.signal);if(u.kind==="no-data"||u.kind==="error")return{downloadsLastMonth:void 0,kind:"no-data",packageName:a,severity:"warning"};d=u.downloads??0,we(a,d,l)}if(d<n)return{downloadsLastMonth:d,kind:"below-error",packageName:a,severity:"error"};if(d<s)return{downloadsLastMonth:d,kind:"below-warning",packageName:a,severity:"warning"}})).filter(a=>a!==void 0)},De=1440*60*1e3,Ae=4e3,Ee=["1.1.1.1","8.8.8.8"],K=()=>A(L(),"expired-domains"),z=r=>{const e=Z("sha256").update(r).digest("hex").slice(0,12);return A(K(),`${e}.json`)},be=r=>{const e=z(r);if(U(e))try{const t=O(e);if(Date.now()-t.createdAt>t.ttlMs){D(e,{force:!0});return}return t}catch{D(e,{force:!0});return}},Re=(r,e,t)=>{C(K());const n={createdAt:Date.now(),outcome:e,ttlMs:t};P(z(r),JSON.stringify(n),"utf8")},Te=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},_e=(r,e)=>{const t=[];e!==void 0&&t.push(e);for(const n of r??[])t.push(n);return t},Me=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)}},Se=r=>{if(r===null||typeof r!="object")return!1;const{code:e}=r;return e==="ENOTFOUND"||e==="ENODATA"||e==="NXDOMAIN"},$e=async(r,e,t)=>{try{const n=await Me(r.resolveNs(e),t);return Array.isArray(n)&&n.length>0?{kind:"ok"}:{kind:"expired"}}catch(n){return Se(n)?{kind:"expired"}:{kind:"transient-error"}}},Pe=(r,e)=>e!==void 0&&r.includes(e)?e:r.at(-1),ar=async(r,e={})=>{if(w("expiredDomains"))return[];const t=new Set(e.allowlist),n=new Set((e.allowDomains??[]).map(f=>f.toLowerCase())),s=e.cacheTtlMs??De,l=e.perDomainTimeoutMs??Ae,o=e.dnsServers??Ee,i=e.concurrency??m,a=e.createResolver===void 0?new ee:e.createResolver();typeof a.setServers=="function"&&a.setServers(o);const c=new Map,d=async f=>{let h=c.get(f);return h===void 0&&(h=(async()=>{const v=be(f);if(v!==void 0)return{kind:v.outcome==="ok"?"ok":"expired"};const g=await $e(a,f,l);return g.kind!=="transient-error"&&Re(f,g.kind,s),g})(),c.set(f,h)),h};return(await y(r,i,async({name:f,version:h})=>{if(t.has(f))return[];const v=await E(f,{workspaceRoot:e.workspaceRoot});if(v===void 0)return[];const g=v.versions[h]??v.versions[Pe(Object.keys(v.versions),v["dist-tags"]?.latest)??""];if(g===void 0)return[];const M=_e(g.maintainers,g._npmUser),N=new Set,S=[];for(const R of M){const k=Te(R.email);if(k===void 0||n.has(k))continue;const I=`${k}:${R.email??""}`;if(N.has(I))continue;N.add(I);const x=await d(k);x.kind==="expired"?S.push({domain:k,kind:"expired",maintainer:R.email??"",packageName:f,severity:"error"}):x.kind==="transient-error"&&S.push({domain:k,kind:"unresolved",maintainer:R.email??"",packageName:f,severity:"warning"})}return S})).flat()},Le=["readme","license","repo"],Ue=["ERROR: No README data found!","# Security holding package"],Oe=r=>{const e=r.trim();return e===""?!0:Ue.some(t=>e.startsWith(t))},Ce=(r,e)=>{if(typeof e.readme=="string")return e.readme;if(typeof r.readme=="string")return r.readme},Fe=(r,e)=>{const t=Ce(r,e);if(t===void 0)return"missing-readme";if(Oe(t))return"placeholder-readme"},Ne=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"},Ie=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"},xe=r=>{const e=r["dist-tags"]?.latest;return e!==void 0&&Object.hasOwn(r.versions,e)?e:Object.keys(r.versions).at(-1)},cr=async(r,e={})=>{if(w("metadata"))return[];const t=new Set(e.allowlist),n=new Set(e.checks??Le),s=e.concurrency??m;return(await y(r,s,async({name:o,version:i})=>{if(t.has(o))return;const a=await E(o,{workspaceRoot:e.workspaceRoot});if(a===void 0)return;const c=a.versions[i]??a.versions[xe(a)??""];if(c===void 0||c.private===!0)return;const d=[];if(n.has("readme")){const u=Fe(a,c);u!==void 0&&d.push(u)}if(n.has("license")){const u=Ne(c);u!==void 0&&d.push(u)}if(n.has("repo")){const u=Ie(c);u!==void 0&&d.push(u)}if(d.length!==0)return{issues:d,packageName:o,version:i}})).filter(o=>o!==void 0)},H=(r,e)=>r===void 0?{}:typeof r=="string"?{[e.startsWith("@")?e.split("/").at(1)??e:e]:r}:{...r},je=(r,e)=>p.valid(e)?Object.keys(r.versions).filter(n=>p.valid(n)!==null&&p.lt(n,e)).sort((n,s)=>p.lt(n,s)?1:-1)[0]:void 0,dr=async(r,e={})=>{if(w("newBin"))return[];const t=new Set(e.allowlist),n=new Set(e.allowBins),s=e.concurrency??m;return(await y(r,s,async({name:o,version:i})=>{if(t.has(o))return;const a=await E(o,{workspaceRoot:e.workspaceRoot});if(a===void 0)return;const c=a.versions[i];if(c===void 0)return;const d=je(a,i);if(d===void 0)return;const u=a.versions[d];if(u===void 0)return;const f=H(c.bin,o),h=H(u.bin,o),v=Object.entries(f).filter(([g])=>!(g in h)).filter(([g])=>!n.has(g)).map(([g,M])=>({command:M,name:g}));if(v.length!==0)return{fromVersion:d,newBins:v,packageName:o,toVersion:i}})).filter(o=>o!==void 0)},Be=["preinstall","install","postinstall"],V=(r,e)=>r.versions[e]?.dist?.attestations?.provenance!==void 0,He=(r,e)=>{if(p.valid(e)!==null)return Object.keys(r.versions).filter(t=>p.valid(t)!==null&&p.prerelease(t)===null&&p.lt(t,e)).sort((t,n)=>p.lt(t,n)?1:-1)[0]},Ve=(r,e)=>{const t=r??{},n=e??{},s=[];for(const l of Be){const o=t[l];if(o===void 0||o==="")continue;const i=n[l];i===void 0||i===""?s.push({command:o,hook:l,kind:"introduced"}):i!==o&&s.push({command:o,hook:l,kind:"changed"})}return s},ur=async(r,e={})=>{if(w("s1ngularity"))return[];const t=new Set(e.allowlist),n=e.concurrency??m;return(await y(r,n,async({name:l,version:o})=>{if(t.has(l))return;const i=await E(l,{workspaceRoot:e.workspaceRoot});if(i?.versions[o]===void 0)return;const a=He(i,o);if(a===void 0||!V(i,a)||V(i,o))return;const c=Ve(i.versions[o]?.scripts,i.versions[a]?.scripts);if(c.length!==0)return{hookChanges:c,packageName:l,priorVersion:a,trustSignal:"provenance-dropped",version:o}})).filter(l=>l!==void 0)};export{rr as M,ur as a,dr as b,cr as c,ir as d,ar as e,sr as f,nr as g,tr as h,or as r};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{F as h,b as T,J as C,X as k}from"./index.server-
|
|
1
|
+
import{F as h,b as T,J as C,X as k}from"./index.server-D8BLnYZO.js";import{q as R,S as l}from"../packem_chunks/cli-main.js";import{i as $}from"./index-BjdW45xX.js";import{F as s,X as d,o as a,R as g}from"../packem_chunks/catalog.js";import{l as v}from"./spinner-ukDEdGvp.js";import{D as j,W as y,T as A,C as D}from"./symbols-BXDZ_sKt.js";const b=({rows:i})=>s.jsx(d,{flexDirection:"column",children:i.map(r=>{let t;switch(r.status){case"error":{t=s.jsx(a,{color:"red",children:D});break}case"ok":{t=s.jsx(a,{color:"green",children:A});break}case"running":{t=s.jsx(a,{color:"white",children:s.jsx(v,{type:"dots"})});break}case"warn":{t=s.jsx(a,{color:"yellow",children:y});break}default:{t=s.jsx(a,{dimColor:!0,children:j});break}}return s.jsxs(d,{children:[s.jsx(d,{width:3,children:t}),s.jsx(d,{flexGrow:1,children:s.jsx(a,{children:r.label})}),r.summary?s.jsx(d,{children:s.jsxs(a,{dimColor:!0,children:[j," ",r.summary]})}):null]},r.id)})}),I={error:k(l.failure),ok:C(l.success),pending:h(l.dash),skip:h(l.dash),warn:T(l.warning)},Y=(i,r,t)=>{const p=t?`${i} ${h(`— ${t}`)}`:i;return` ${I[r]} ${p}
|
|
2
2
|
`},F=(i,r={})=>{const t=r.stream??process.stderr,w=typeof t.isTTY=="boolean"&&t.isTTY&&!$,S=r.live??w,n=new Map;for(const e of i)n.set(e.id,{id:e.id,label:e.label,status:"pending"});if(!S||i.length===0)return{finish:(e,o,f)=>{const c=n.get(e);c&&(n.set(e,{...c,status:o,summary:f}),t.write(Y(c.label,o,f)))},start:e=>{const o=n.get(e);o&&n.set(e,{...o,status:"running"})},stop:()=>{}};const x=()=>i.map(e=>n.get(e.id));let u=R(g.createElement(b,{rows:x()}),{interactive:!0,patchConsole:!1});const m=()=>{u?.rerender(g.createElement(b,{rows:x()}))};return{finish:(e,o,f)=>{const c=n.get(e);c&&(n.set(e,{...c,status:o,summary:f}),m())},start:e=>{const o=n.get(e);o&&(n.set(e,{...o,status:"running"}),m())},stop:()=>{u&&(m(),u.unmount(),u=void 0)}}};export{F as s};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{createRequire as m}from"node:module";import{
|
|
1
|
+
import{createRequire as m}from"node:module";import{b as E}from"./index-BdMIfGVZ.js";let _;const w=t=>(_??=m(import.meta.url))(t),g=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,y=t=>{if(typeof g<"u"&&g.versions&&g.versions.node){const[r,e]=g.versions.node.split(".").map(Number);if(r>22||r===22&&e>=3||r===20&&e>=16)return g.getBuiltinModule(t)}return w(t)},{createInterface:v}=y("node:readline"),T=/^#([\w\-/]+):(.+)$/,b=/^([@\w\-/]+):(.+)$/,$=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=T.exec(t);if(r?.[1]&&r[2])return{kind:"tag",tag:r[1],target:r[2]};const e=b.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}},x=async(t,r,e,a)=>{const s=$(t);if(!s)throw new Error(`Invalid target selector: "${t}"`);const o=Object.keys(r.projects);if(s.kind==="all")return{projects:o,target:s.target};if(s.kind==="project")return{projects:s.projects??[],target:s.target};if(s.kind==="tag"){const c=s.tag;return{projects:o.filter(l=>r.projects[l]?.tags?.includes(c)??!1),target:s.target}}const n=E(a,e)||".";let u,f=-1;for(const[c,i]of Object.entries(r.projects)){const l=i.root;if(!l)continue;(n===l||n.startsWith(`${l}/`))&&l.length>f&&(f=l.length,u=c)}if(!u){if(process.stdout.isTTY){const c=v({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[d,h]of i.entries())process.stderr.write(` ${String(d+1)}) ${h}
|
|
3
|
-
`);const l=await new Promise(d=>{c.question("> ",d)});c.close();const p=Number.parseInt(l,10)-1;if(p>=0&&p<i.length)return{projects:[i[p]],target:s.target}}throw new Error(`No project found at or above ${n} for selector "${t}".`)}return{projects:[u],target:s.target}},P=/^(\w+)\s*(!?=)\s*(.+)$/,R=t=>{const r=t.trim();if(r==="")return;const e=r.split("&&").map(c=>c.trim()),a=r.split("||").map(c=>c.trim()),s=e.length>1,o=a.length>1;if(s&&o)throw new Error("Query language does not support mixed && / || — split into multiple --query flags or simplify.");const n=o?a:e,u=o?"||":"&&",f=[];for(const c of n){const i=P.exec(c);if(!i)throw new Error(`Invalid query clause: "${c}". Expected <field>=<value> or <field>!=<value>.`);const[,l,p,d]=i;f.push({field:l,op:p==="!="?"!=":"=",value:d.trim().replaceAll(/^["']|["']$/g,"")})}return{clauses:f,op:u}},j=(t,r,e)=>{const{field:a,op:s,value:o}=t,n=f=>{const c=f===o;return s==="="?c:!c},u=f=>{const i=(f??[]).includes(o);return s==="="?i:!i};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 u(e.tags);default:return!1}},A=(t,r,e)=>{const a=(e??[]).flatMap(o=>o.split(",")).map(o=>o.trim()).filter(Boolean);if(a.length===0)return t;const s=new Set(a);return t.filter(o=>{const n=r.projects[o]?.tags;return Array.isArray(n)&&n.some(u=>s.has(u))})},O=(t,r,e)=>{if(!e||e.trim()==="")return t;const a=R(e);return a?t.filter(s=>{const o=r.projects[s];return o?a.op==="&&"?a.clauses.every(n=>j(n,s,o)):a.clauses.some(n=>j(n,s,o)):!1}):t};export{A as a,O as f
|
|
3
|
+
`);const l=await new Promise(d=>{c.question("> ",d)});c.close();const p=Number.parseInt(l,10)-1;if(p>=0&&p<i.length)return{projects:[i[p]],target:s.target}}throw new Error(`No project found at or above ${n} for selector "${t}".`)}return{projects:[u],target:s.target}},P=/^(\w+)\s*(!?=)\s*(.+)$/,R=t=>{const r=t.trim();if(r==="")return;const e=r.split("&&").map(c=>c.trim()),a=r.split("||").map(c=>c.trim()),s=e.length>1,o=a.length>1;if(s&&o)throw new Error("Query language does not support mixed && / || — split into multiple --query flags or simplify.");const n=o?a:e,u=o?"||":"&&",f=[];for(const c of n){const i=P.exec(c);if(!i)throw new Error(`Invalid query clause: "${c}". Expected <field>=<value> or <field>!=<value>.`);const[,l,p,d]=i;f.push({field:l,op:p==="!="?"!=":"=",value:d.trim().replaceAll(/^["']|["']$/g,"")})}return{clauses:f,op:u}},j=(t,r,e)=>{const{field:a,op:s,value:o}=t,n=f=>{const c=f===o;return s==="="?c:!c},u=f=>{const i=(f??[]).includes(o);return s==="="?i:!i};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 u(e.tags);default:return!1}},A=(t,r,e)=>{const a=(e??[]).flatMap(o=>o.split(",")).map(o=>o.trim()).filter(Boolean);if(a.length===0)return t;const s=new Set(a);return t.filter(o=>{const n=r.projects[o]?.tags;return Array.isArray(n)&&n.some(u=>s.has(u))})},O=(t,r,e)=>{if(!e||e.trim()==="")return t;const a=R(e);return a?t.filter(s=>{const o=r.projects[s];return o?a.op==="&&"?a.clauses.every(n=>j(n,s,o)):a.clauses.some(n=>j(n,s,o)):!1}):t};export{A as a,O as f,$ as p,x as r};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createRequire as w}from"node:module";import{D as N,m as x}from"./provenance-
|
|
1
|
+
import{createRequire as w}from"node:module";import{D as N,m as x}from"./provenance-DF-ypZj3.js";import{g as P}from"./packument-C9nRiBJf.js";import{c as b}from"../packem_chunks/cli-main.js";import{f as E}from"./registry-keys-BLuHOyZu.js";let _;const $=s=>(_??=w(import.meta.url))(s),u=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,v=s=>{if(typeof u<"u"&&u.versions&&u.versions.node){const[e,r]=u.versions.node.split(".").map(Number);if(e>22||e===22&&r>=3||e===20&&r>=16)return u.getBuiltinModule(s)}return $(s)},{createPublicKey:M,createVerify:R}=v("node:crypto"),B=s=>{const e=["-----BEGIN PUBLIC KEY-----"],r=s.replaceAll(/\s+/g,"");for(let n=0;n<r.length;n+=64)e.push(r.slice(n,n+64));return e.push("-----END PUBLIC KEY-----"),e.join(`
|
|
2
2
|
`)},j=({keyBase64:s,message:e,signatureBase64:r})=>{try{const n=M({format:"pem",key:B(s)}),c=R("SHA256");return c.update(e),c.end(),c.verify(n,Buffer.from(r,"base64"))}catch{return!1}},A=(s,e)=>{if(s.expires===void 0||s.expires==="")return!1;const r=Date.parse(s.expires);return Number.isNaN(r)?!1:r<=e},C=(s,e,r)=>`${s}@${e}:${r}`,S=(s,e)=>e!==void 0&&s.includes(e)?e:s.at(-1),Y=async(s,e={})=>{if(b("signatures"))return[];const r=new Set(e.allowlist),n=e.treatExpiredAs??"warning",c=e.concurrency??N,p=await E({keysUrl:e.keysUrl,signal:e.signal,ttlMs:e.keysTtlMs});if(p===void 0)return s.filter(({name:t})=>!r.has(t)).map(({name:t,version:i})=>({code:"fetch-failed",message:"Could not fetch registry signing keys.",packageName:t,severity:"warning",version:i}));const k=new Map;for(const t of p.keys)k.set(t.keyid,t);const m=Date.now();return(await x(s,c,async({name:t,version:i})=>{if(r.has(t))return[];const o=await P(t,{workspaceRoot:e.workspaceRoot});if(o===void 0)return[];const y=o.versions[i]??o.versions[S(Object.keys(o.versions),o["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 ${t}@${i} has no dist.signatures from the registry.`,packageName:t,severity:"warning",version:i}];if(typeof l!="string"||l==="")return[{code:"missing-signature",message:`Package ${t}@${i} has signatures but no dist.integrity to verify against.`,packageName:t,severity:"warning",version:i}];const h=C(t,i,l),g=[];for(const a of f){const d=k.get(a.keyid);if(d===void 0){g.push({code:"unknown-keyid",keyid:a.keyid,message:`Package ${t}@${i} was signed with an unrecognized keyid (${a.keyid}).`,packageName:t,severity:"error",version:i});continue}if(A(d,m)){g.push({code:"expired-key",keyid:a.keyid,message:`Package ${t}@${i} was signed with an expired key (${a.keyid}, expired ${d.expires??"unknown"}).`,packageName:t,severity:n,version:i});continue}j({keyBase64:d.key,message:h,signatureBase64:a.sig})||g.push({code:"invalid-signature",keyid:a.keyid,message:`Package ${t}@${i} signature did not verify against ${a.keyid}.`,packageName:t,severity:"error",version:i})}return g})).flat()};export{Y as r};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import{createRequire as ho}from"node:module";import{_ as Ao}from"./index-BdMIfGVZ.js";import{y as _o}from"./isAccessibleSync-DYKTrrvc-BwaMhQs0.js";import{U as Eo}from"./writeFileSync-DJoHk3Ks-Dhem3Uof.js";let vo;const yo=e=>(vo??=ho(import.meta.url))(e),he=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,xo=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 yo(e)},{createRequire:eo}=xo("node:module"),Ro=/^(?:( )+|\t+)/,nt="space";function Ot(e,t,o){return e&&t===nt&&o===1}function Nt(e,t){const o=new Map;let p=0,i,s;for(const n of e.split(/\n/g)){if(!n)continue;const c=n.match(Ro);if(c===null)p=0,i="";else{const f=c[0].length,h=c[1]?nt:"tab";if(Ot(t,h,f))continue;h!==i&&(p=0),i=h;let g=1,A=0;const R=f-p;if(p=f,R===0)g=0,A=1;else{const N=Math.abs(R);if(Ot(t,h,N))continue;s=To(h,N)}const _=o.get(s);o.set(s,_===void 0?[1,0]:[_[0]+g,_[1]+A])}}return o}function To(e,t){return(e===nt?"s":"t")+String(t)}function $o(e){const t=e[0]==="s"?nt:"tab",o=Number(e.slice(1));return{type:t,amount:o}}function So(e){let t,o=0,p=0;for(const[i,[s,n]]of e)(s>o||s===o&&n>p)&&(o=s,p=n,t=i);return t}function Co(e,t){return(e===nt?" ":" ").repeat(t)}function wo(e){if(typeof e!="string")throw new TypeError("Expected a string");let t=Nt(e,!0);t.size===0&&(t=Nt(e,!1));const o=So(t);let p,i=0,s="";return o!==void 0&&({type:p,amount:i}=$o(o),s=Co(p,i)),{amount:i,type:p,indent:s}}let ko;const Oo=e=>(ko??=eo(import.meta.url))(e),ve=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,No=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 Oo(e)},{readFileSync:Ho}=No("node:fs"),un=(e,t,o={})=>{const{detectIndent:p,indent:i,replacer:s,stringify:n=JSON.stringify,...c}={indent:" ",...o};let f=i,h=`
|
|
2
|
+
`;if(_o(e,Ao))try{const A=Ho(e,"utf8");if(p){const{indent:R}=wo(A);f=R}h=A.endsWith(`
|
|
3
|
+
`)?`
|
|
4
|
+
`:""}catch(A){if(A.code!=="ENOENT")throw A}const g=n(t,s,f);Eo(e,`${g}${h}`,c)};let Lo;const Bo=e=>(Lo??=eo(import.meta.url))(e),me=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,to=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 Bo(e)},{homedir:Mo,tmpdir:mt}=to("node:os"),{env:st,cwd:Io,platform:Ht}=me,{createRequire:k}=to("node:module"),Do=0,oo=2,Po=Symbol("findUpStop"),zo=/^[A-Z]:\//i,ut=(e="")=>e&&e.replaceAll("\\","/").replace(zo,t=>t.toUpperCase()),Go=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Z]:[/\\]/i,Uo=/^[A-Z]:$/i,jo=/.(\.[^./]+)$/,Fo=/^[/\\]|^[a-z]:[/\\]/i,Ko=/\/$/,Xo=()=>typeof process.cwd=="function"?process.cwd().replaceAll("\\","/"):"/",Wo=(e,t)=>{let o="",p=0,i=-1,s=0,n;for(let c=0;c<=e.length;++c){if(c<e.length)n=e[c];else{if(n==="/")break;n="/"}if(n==="/"){if(!(i===c-1||s===1))if(s===2){if(o.length<2||p!==2||!o.endsWith(".")||o.at(-2)!=="."){if(o.length>2){const f=o.lastIndexOf("/");f===-1?(o="",p=0):(o=o.slice(0,f),p=o.length-1-o.lastIndexOf("/")),i=c,s=0;continue}else if(o.length>0){o="",p=0,i=c,s=0;continue}}t&&(o+=o.length>0?"/..":"..",p=2)}else o.length>0?o+=`/${e.slice(i+1,c)}`:o=e.slice(i+1,c),p=c-i-1;i=c,s=0}else n==="."&&s!==-1?++s:s=-1}return o},rt=e=>Go.test(e),bt=function(...e){e=e.map(p=>ut(p));let t="",o=!1;for(let p=e.length-1;p>=-1&&!o;p--){const i=p>=0?e[p]:Xo();!i||i.length===0||(t=`${i}/${t}`,o=rt(i))}return t=Wo(t,!o),o&&!rt(t)?`/${t}`:t.length>0?t:"."},qo=function(e){return jo.exec(ut(e))?.[1]??""},so=e=>{const t=ut(e).replace(Ko,""),o=t.lastIndexOf("/");if(o===-1)return rt(e)?"/":".";const p=t.slice(0,o);return Uo.test(p)?`${p}/`:p||(rt(e)?"/":".")},Qo=(e,t)=>{const o=ut(e);return o.slice(o.lastIndexOf("/")+1)},Zo=function(e){const t=Fo.exec(e)?.[0]?.replaceAll("\\","/")??"",o=Qo(e),p=qo(o);return{base:o,dir:so(e),ext:p,name:o.slice(0,o.length-p.length),root:t}},Yo=k(import.meta.url),ye=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Vo=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 Yo(e)},{fileURLToPath:Jo}=Vo("node:url");function es(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Lt,Bt;function ts(){return Bt||(Bt=1,Lt=["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"]),Lt}var os=ts();const ss=es(os);new Set(ss);const pt=e=>ut(e instanceof URL?Jo(e):e),ro=e=>{if(!e||!(e instanceof URL)&&typeof e!="string")throw new TypeError("Path must be a non-empty string or URL.")},rs=k(import.meta.url),xe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,ns=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 rs(e)};ns("node:fs/promises");const us=k(import.meta.url),Ae=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,is=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 us(e)};is("node:fs");const Mt=e=>{if(e.isFile())return"file";if(e.isDirectory())return"dir";if(e.isSymbolicLink())return"symlink"},as=k(import.meta.url),_e=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,ls=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 as(e)},{lstat:an,mkdir:ln}=ls("node:fs/promises"),cs=k(import.meta.url),Ee=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,ps=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 cs(e)},{lstatSync:It,mkdirSync:fs}=ps("node:fs"),Re=e=>{ro(e);try{const t=It(e);if(!t.isDirectory())throw new Error(`Ensure path exists, expected 'dir', got '${String(Mt(t))}'`);return}catch(t){if(t.code!=="ENOENT")throw t}try{fs(e,{recursive:!0})}catch(t){if(t.code!=="EEXIST")throw t;const o=It(e);if(!o.isDirectory())throw new Error(`Ensure path exists, expected 'dir', got '${String(Mt(o))}'`,{cause:t})}},gs=k(import.meta.url),Te=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,ds=e=>{if(typeof Te<"u"&&Te.versions&&Te.versions.node){const[t,o]=Te.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return Te.getBuiltinModule(e)}return gs(e)};ds("node:fs/promises");const ms=k(import.meta.url),$e=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,bs=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 ms(e)};bs("node:fs");const hs=k(import.meta.url),Se=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,vs=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 hs(e)};vs("node:fs/promises");const ys=k(import.meta.url),Ce=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,xs=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 ys(e)};xs("node:fs");const As=k(import.meta.url),we=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,_s=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 As(e)};_s("node:fs/promises");const Es=k(import.meta.url),ke=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Rs=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 Es(e)};Rs("node:fs");k(import.meta.url);const Ts=k(import.meta.url),Oe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,$s=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 Ts(e)};$s("node:fs/promises");const Ss=k(import.meta.url),Ne=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Cs=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 Ss(e)};Cs("node:fs");const ws=k(import.meta.url),He=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,ks=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 ws(e)},{stat:cn,lstat:pn}=ks("node:fs/promises"),Os=k(import.meta.url),Le=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Ns=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 Os(e)},{statSync:Hs,lstatSync:Ls}=Ns("node:fs"),Bs=(e,t={})=>{const o=t.cwd?pt(t.cwd):process.cwd();let p=bt(o);const{root:i}=Zo(p),s=pt(t.stopAt??i),n=bt(p,s),c=t.type??"file",f=function(g){return[e]};t.allowSymlinks??=!0;const h=t.allowSymlinks?Hs:Ls;for(;p&&p!==n&&p!==i;){for(let g of f()){if(g===Po)return;if(g===void 0)continue;Buffer.isBuffer(g)?g=g.toString():g instanceof URL&&(g=pt(g));const A=rt(g)?g:bt(p,g);try{const R=h(A);if(c==="file"&&R.isFile()||c==="directory"&&R.isDirectory())return A}catch{}}p=so(p)}};function St(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Dt={},ht,Pt;function gt(){if(Pt)return ht;Pt=1;const e="[^\\\\/]",t=Symbol("unignore"),o="\\.",p="\\+",i="\\?",s="\\/",n="(?=.)",c="[^/]",f=`(?:${s}|$)`,h=`(?:^|${s})`,g=`${o}{1,2}${f}`,A=`(?!${o})`,R=`(?!${h}${g})`,_=`(?!${o}{0,1}${f})`,N=`(?!${g})`,te=`[^.${s}]`,Q=`${c}*?`,K="/",m={DOT_LITERAL:o,PLUS_LITERAL:p,QMARK_LITERAL:i,SLASH_LITERAL:s,ONE_CHAR:n,QMARK:c,END_ANCHOR:f,DOTS_SLASH:g,NO_DOT:A,NO_DOTS:R,NO_DOT_SLASH:_,NO_DOTS_SLASH:N,QMARK_NO_DOT:te,STAR:Q,START_ANCHOR:h,SEP:K},v={...m,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:"\\"},r={__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 ht={DEFAULT_MAX_EXTGLOB_RECURSION:0,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:r,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(y){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${y.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(y){return y===!0?v:m}},ht}var zt;function dt(){return zt||(zt=1,(function(e){const{REGEX_BACKSLASH:t,REGEX_REMOVE_BACKSLASH:o,REGEX_SPECIAL_CHARS:p,REGEX_SPECIAL_CHARS_GLOBAL:i}=gt();e.isObject=s=>s!==null&&typeof s=="object"&&!Array.isArray(s),e.hasRegexChars=s=>p.test(s),e.isRegexChar=s=>s.length===1&&e.hasRegexChars(s),e.escapeRegex=s=>s.replace(i,"\\$1"),e.toPosixSlashes=s=>s.replace(t,"/"),e.isWindows=()=>{if(typeof navigator<"u"&&navigator.platform){const s=navigator.platform.toLowerCase();return s==="win32"||s==="windows"}return process.platform?process.platform==="win32":!1},e.removeBackslashes=s=>s.replace(o,n=>n==="\\"?"":n),e.escapeLast=(s,n,c)=>{const f=s.lastIndexOf(n,c);return f===-1?s:s[f-1]==="\\"?e.escapeLast(s,n,f-1):`${s.slice(0,f)}\\${s.slice(f)}`},e.removePrefix=(s,n={})=>{let c=s;return c.startsWith("./")&&(c=c.slice(2),n.prefix="./"),c},e.wrapOutput=(s,n={},c={})=>{const f=c.contains?"":"^",h=c.contains?"":"$";let g=`${f}(?:${s})${h}`;return n.negated===!0&&(g=`(?:^(?!${g}).*$)`),g},e.basename=(s,{windows:n}={})=>{const c=s.split(n?/[\\/]/:"/"),f=c[c.length-1];return f===""?c[c.length-2]:f}})(Dt)),Dt}var vt,Gt;function Ms(){if(Gt)return vt;Gt=1;const e=dt(),{CHAR_ASTERISK:t,CHAR_AT:o,CHAR_BACKWARD_SLASH:p,CHAR_COMMA:i,CHAR_DOT:s,CHAR_EXCLAMATION_MARK:n,CHAR_FORWARD_SLASH:c,CHAR_LEFT_CURLY_BRACE:f,CHAR_LEFT_PARENTHESES:h,CHAR_LEFT_SQUARE_BRACKET:g,CHAR_PLUS:A,CHAR_QUESTION_MARK:R,CHAR_RIGHT_CURLY_BRACE:_,CHAR_RIGHT_PARENTHESES:N,CHAR_RIGHT_SQUARE_BRACKET:te}=gt(),Q=m=>m===c||m===p,K=m=>{m.isPrefix!==!0&&(m.depth=m.isGlobstar?1/0:1)};return vt=(m,v)=>{const r=v||{},y=m.length-1,E=r.parts===!0||r.scanToEnd===!0,T=[],x=[],O=[];let X=m,Z=-1,G=0,se=0,W=!1,re=!1,I=!1,le=!1,ge=!1,ne=!1,B=!1,ue=!1,de=!1,q=!1,F=0,V,$,w={value:"",depth:0,isGlob:!1};const l=()=>Z>=y,Y=()=>X.charCodeAt(Z+1),U=()=>(V=$,X.charCodeAt(++Z));for(;Z<y;){$=U();let H;if($===p){B=w.backslashes=!0,$=U(),$===f&&(ne=!0);continue}if(ne===!0||$===f){for(F++;l()!==!0&&($=U());){if($===p){B=w.backslashes=!0,U();continue}if($===f){F++;continue}if(ne!==!0&&$===s&&($=U())===s){if(W=w.isBrace=!0,I=w.isGlob=!0,q=!0,E===!0)continue;break}if(ne!==!0&&$===i){if(W=w.isBrace=!0,I=w.isGlob=!0,q=!0,E===!0)continue;break}if($===_&&(F--,F===0)){ne=!1,W=w.isBrace=!0,q=!0;break}}if(E===!0)continue;break}if($===c){if(T.push(Z),x.push(w),w={value:"",depth:0,isGlob:!1},q===!0)continue;if(V===s&&Z===G+1){G+=2;continue}se=Z+1;continue}if(r.noext!==!0&&($===A||$===o||$===t||$===R||$===n)&&Y()===h){if(I=w.isGlob=!0,le=w.isExtglob=!0,q=!0,$===n&&Z===G&&(de=!0),E===!0){for(;l()!==!0&&($=U());){if($===p){B=w.backslashes=!0,$=U();continue}if($===N){I=w.isGlob=!0,q=!0;break}}continue}break}if($===t){if(V===t&&(ge=w.isGlobstar=!0),I=w.isGlob=!0,q=!0,E===!0)continue;break}if($===R){if(I=w.isGlob=!0,q=!0,E===!0)continue;break}if($===g){for(;l()!==!0&&(H=U());){if(H===p){B=w.backslashes=!0,U();continue}if(H===te){re=w.isBracket=!0,I=w.isGlob=!0,q=!0;break}}if(E===!0)continue;break}if(r.nonegate!==!0&&$===n&&Z===G){ue=w.negated=!0,G++;continue}if(r.noparen!==!0&&$===h){if(I=w.isGlob=!0,E===!0){for(;l()!==!0&&($=U());){if($===h){B=w.backslashes=!0,$=U();continue}if($===N){q=!0;break}}continue}break}if(I===!0){if(q=!0,E===!0)continue;break}}r.noext===!0&&(le=!1,I=!1);let z=X,u="",a="";G>0&&(u=X.slice(0,G),X=X.slice(G),se-=G),z&&I===!0&&se>0?(z=X.slice(0,se),a=X.slice(se)):I===!0?(z="",a=X):z=X,z&&z!==""&&z!=="/"&&z!==X&&Q(z.charCodeAt(z.length-1))&&(z=z.slice(0,-1)),r.unescape===!0&&(a&&(a=e.removeBackslashes(a)),z&&B===!0&&(z=e.removeBackslashes(z)));const ee={prefix:u,input:m,start:G,base:z,glob:a,isBrace:W,isBracket:re,isGlob:I,isExtglob:le,isGlobstar:ge,negated:ue,negatedExtglob:de};if(r.tokens===!0&&(ee.maxDepth=0,Q($)||x.push(w),ee.tokens=x),r.parts===!0||r.tokens===!0){let H;for(let D=0;D<T.length;D++){const ce=H?H+1:G,J=T[D],pe=m.slice(ce,J);r.tokens&&(D===0&&G!==0?(x[D].isPrefix=!0,x[D].value=u):x[D].value=pe,K(x[D]),ee.maxDepth+=x[D].depth),(D!==0||pe!=="")&&O.push(pe),H=J}if(H&&H+1<m.length){const D=m.slice(H+1);O.push(D),r.tokens&&(x[x.length-1].value=D,K(x[x.length-1]),ee.maxDepth+=x[x.length-1].depth)}ee.slashes=T,ee.parts=O}return ee},vt}var yt,Ut;function Is(){if(Ut)return yt;Ut=1;const e=gt(),t=dt(),{MAX_LENGTH:o,POSIX_REGEX_SOURCE:p,REGEX_NON_SPECIAL_CHARS:i,REGEX_SPECIAL_CHARS_BACKREF:s,REPLACEMENTS:n}=e,c=(m,v)=>typeof v.expandRange=="function"?v.expandRange(...m,v):(m.sort(),`[${m.join("-")}]`),f=(m,v)=>`Missing ${m}: "${v}" - use "\\\\${v}" to match literal characters`,h=m=>{const v=[];let r=0,y=0,E=0,T="",x=!1;for(const O of m){if(x===!0){T+=O,x=!1;continue}if(O==="\\"){T+=O,x=!0;continue}if(O==='"'){E=E===1?0:1,T+=O;continue}if(E===0){if(O==="[")r++;else if(O==="]"&&r>0)r--;else if(r===0){if(O==="(")y++;else if(O===")"&&y>0)y--;else if(O==="|"&&y===0){v.push(T),T="";continue}}}T+=O}return v.push(T),v},g=m=>{let v=!1;for(const r of m){if(v===!0){v=!1;continue}if(r==="\\"){v=!0;continue}if(/[?*+@!()[\]{}]/.test(r))return!1}return!0},A=m=>{let v=m.trim(),r=!0;for(;r===!0;)r=!1,/^@\([^\\()[\]{}|]+\)$/.test(v)&&(v=v.slice(2,-1),r=!0);if(g(v))return v.replace(/\\(.)/g,"$1")},R=m=>{const v=m.map(A).filter(Boolean);for(let r=0;r<v.length;r++)for(let y=r+1;y<v.length;y++){const E=v[r],T=v[y],x=E[0];if(!(!x||E!==x.repeat(E.length)||T!==x.repeat(T.length))&&(E===T||E.startsWith(T)||T.startsWith(E)))return!0}return!1},_=(m,v=!0)=>{if(m[0]!=="+"&&m[0]!=="*"||m[1]!=="(")return;let r=0,y=0,E=0,T=!1;for(let x=1;x<m.length;x++){const O=m[x];if(T===!0){T=!1;continue}if(O==="\\"){T=!0;continue}if(O==='"'){E=E===1?0:1;continue}if(E!==1){if(O==="["){r++;continue}if(O==="]"&&r>0){r--;continue}if(!(r>0)){if(O==="("){y++;continue}if(O===")"&&(y--,y===0))return v===!0&&x!==m.length-1?void 0:{type:m[0],body:m.slice(2,x),end:x}}}}},N=m=>{let v=0;const r=[];for(;v<m.length;){const y=_(m.slice(v),!1);if(!y||y.type!=="*")return;const E=h(y.body).map(x=>x.trim());if(E.length!==1)return;const T=A(E[0]);if(!T||T.length!==1)return;r.push(T),v+=y.end+1}return r.length<1?void 0:`${r.length===1?t.escapeRegex(r[0]):`[${r.map(y=>t.escapeRegex(y)).join("")}]`}*`},te=m=>{let v=0,r=m.trim(),y=_(r);for(;y;)v++,r=y.body.trim(),y=_(r);return v},Q=(m,v)=>{if(v.maxExtglobRecursion===!1)return{risky:!1};const r=typeof v.maxExtglobRecursion=="number"?v.maxExtglobRecursion:e.DEFAULT_MAX_EXTGLOB_RECURSION,y=h(m).map(E=>E.trim());if(y.length>1&&(y.some(E=>E==="")||y.some(E=>/^[*?]+$/.test(E))||R(y)))return{risky:!0};for(const E of y){const T=N(E);if(T)return{risky:!0,safeOutput:T};if(te(E)>r)return{risky:!0}}return{risky:!1}},K=(m,v)=>{if(typeof m!="string")throw new TypeError("Expected a string");m=n[m]||m;const r={...v},y=typeof r.maxLength=="number"?Math.min(o,r.maxLength):o;let E=m.length;if(E>y)throw new SyntaxError(`Input length: ${E}, exceeds maximum allowed length: ${y}`);const T={type:"bos",value:"",output:r.prepend||""},x=[T],O=r.capture?"":"?:",X=e.globChars(r.windows),Z=e.extglobChars(X),{DOT_LITERAL:G,PLUS_LITERAL:se,SLASH_LITERAL:W,ONE_CHAR:re,DOTS_SLASH:I,NO_DOT:le,NO_DOT_SLASH:ge,NO_DOTS_SLASH:ne,QMARK:B,QMARK_NO_DOT:ue,STAR:de,START_ANCHOR:q}=X,F=b=>`(${O}(?:(?!${q}${b.dot?I:G}).)*?)`,V=r.dot?"":le,$=r.dot?B:ue;let w=r.bash===!0?F(r):de;r.capture&&(w=`(${w})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);const l={input:m,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:x};m=t.removePrefix(m,l),E=m.length;const Y=[],U=[],z=[];let u=T,a;const ee=()=>l.index===E-1,H=l.peek=(b=1)=>m[l.index+b],D=l.advance=()=>m[++l.index]||"",ce=()=>m.slice(l.index+1),J=(b="",M=0)=>{l.consumed+=b,l.index+=M},pe=b=>{l.output+=b.output!=null?b.output:b.value,J(b.value)},mo=()=>{let b=1;for(;H()==="!"&&(H(2)!=="("||H(3)==="?");)D(),l.start++,b++;return b%2===0?!1:(l.negated=!0,l.start++,!0)},lt=b=>{l[b]++,z.push(b)},fe=b=>{l[b]--,z.pop()},S=b=>{if(u.type==="globstar"){const M=l.braces>0&&(b.type==="comma"||b.type==="brace"),d=b.extglob===!0||Y.length&&(b.type==="pipe"||b.type==="paren");b.type!=="slash"&&b.type!=="paren"&&!M&&!d&&(l.output=l.output.slice(0,-u.output.length),u.type="star",u.value="*",u.output=w,l.output+=u.output)}if(Y.length&&b.type!=="paren"&&(Y[Y.length-1].inner+=b.value),(b.value||b.output)&&pe(b),u&&u.type==="text"&&b.type==="text"){u.output=(u.output||u.value)+b.value,u.value+=b.value;return}b.prev=u,x.push(b),u=b},ct=(b,M)=>{const d={...Z[M],conditions:1,inner:""};d.prev=u,d.parens=l.parens,d.output=l.output,d.startIndex=l.index,d.tokensIndex=x.length;const C=(r.capture?"(":"")+d.open;lt("parens"),S({type:b,value:M,output:l.output?"":re}),S({type:"paren",extglob:!0,value:D(),output:C}),Y.push(d)},bo=b=>{const M=m.slice(b.startIndex,l.index+1),d=m.slice(b.startIndex+2,l.index),C=Q(d,r);if((b.type==="plus"||b.type==="star")&&C.risky){const L=C.safeOutput?(b.output?"":re)+(r.capture?`(${C.safeOutput})`:C.safeOutput):void 0,ie=x[b.tokensIndex];ie.type="text",ie.value=M,ie.output=L||t.escapeRegex(M);for(let ae=b.tokensIndex+1;ae<x.length;ae++)x[ae].value="",x[ae].output="",delete x[ae].suffix;l.output=b.output+ie.output,l.backtrack=!0,S({type:"paren",extglob:!0,value:a,output:""}),fe("parens");return}let P=b.close+(r.capture?")":""),j;if(b.type==="negate"){let L=w;if(b.inner&&b.inner.length>1&&b.inner.includes("/")&&(L=F(r)),(L!==w||ee()||/^\)+$/.test(ce()))&&(P=b.close=`)$))${L}`),b.inner.includes("*")&&(j=ce())&&/^\.[^\\/.]+$/.test(j)){const ie=K(j,{...v,fastpaths:!1}).output;P=b.close=`)${ie})${L})`}b.prev.type==="bos"&&(l.negatedExtglob=!0)}S({type:"paren",extglob:!0,value:a,output:P}),fe("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(m)){let b=!1,M=m.replace(s,(d,C,P,j,L,ie)=>j==="\\"?(b=!0,d):j==="?"?C?C+j+(L?B.repeat(L.length):""):ie===0?$+(L?B.repeat(L.length):""):B.repeat(P.length):j==="."?G.repeat(P.length):j==="*"?C?C+j+(L?w:""):w:C?d:`\\${d}`);return b===!0&&(r.unescape===!0?M=M.replace(/\\/g,""):M=M.replace(/\\+/g,d=>d.length%2===0?"\\\\":d?"\\":"")),M===m&&r.contains===!0?(l.output=m,l):(l.output=t.wrapOutput(M,l,v),l)}for(;!ee();){if(a=D(),a==="\0")continue;if(a==="\\"){const d=H();if(d==="/"&&r.bash!==!0||d==="."||d===";")continue;if(!d){a+="\\",S({type:"text",value:a});continue}const C=/^\\+/.exec(ce());let P=0;if(C&&C[0].length>2&&(P=C[0].length,l.index+=P,P%2!==0&&(a+="\\")),r.unescape===!0?a=D():a+=D(),l.brackets===0){S({type:"text",value:a});continue}}if(l.brackets>0&&(a!=="]"||u.value==="["||u.value==="[^")){if(r.posix!==!1&&a===":"){const d=u.value.slice(1);if(d.includes("[")&&(u.posix=!0,d.includes(":"))){const C=u.value.lastIndexOf("["),P=u.value.slice(0,C),j=u.value.slice(C+2),L=p[j];if(L){u.value=P+L,l.backtrack=!0,D(),!T.output&&x.indexOf(u)===1&&(T.output=re);continue}}}(a==="["&&H()!==":"||a==="-"&&H()==="]")&&(a=`\\${a}`),a==="]"&&(u.value==="["||u.value==="[^")&&(a=`\\${a}`),r.posix===!0&&a==="!"&&u.value==="["&&(a="^"),u.value+=a,pe({value:a});continue}if(l.quotes===1&&a!=='"'){a=t.escapeRegex(a),u.value+=a,pe({value:a});continue}if(a==='"'){l.quotes=l.quotes===1?0:1,r.keepQuotes===!0&&S({type:"text",value:a});continue}if(a==="("){lt("parens"),S({type:"paren",value:a});continue}if(a===")"){if(l.parens===0&&r.strictBrackets===!0)throw new SyntaxError(f("opening","("));const d=Y[Y.length-1];if(d&&l.parens===d.parens+1){bo(Y.pop());continue}S({type:"paren",value:a,output:l.parens?")":"\\)"}),fe("parens");continue}if(a==="["){if(r.nobracket===!0||!ce().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(f("closing","]"));a=`\\${a}`}else lt("brackets");S({type:"bracket",value:a});continue}if(a==="]"){if(r.nobracket===!0||u&&u.type==="bracket"&&u.value.length===1){S({type:"text",value:a,output:`\\${a}`});continue}if(l.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(f("opening","["));S({type:"text",value:a,output:`\\${a}`});continue}fe("brackets");const d=u.value.slice(1);if(u.posix!==!0&&d[0]==="^"&&!d.includes("/")&&(a=`/${a}`),u.value+=a,pe({value:a}),r.literalBrackets===!1||t.hasRegexChars(d))continue;const C=t.escapeRegex(u.value);if(l.output=l.output.slice(0,-u.value.length),r.literalBrackets===!0){l.output+=C,u.value=C;continue}u.value=`(${O}${C}|${u.value})`,l.output+=u.value;continue}if(a==="{"&&r.nobrace!==!0){lt("braces");const d={type:"brace",value:a,output:"(",outputIndex:l.output.length,tokensIndex:l.tokens.length};U.push(d),S(d);continue}if(a==="}"){const d=U[U.length-1];if(r.nobrace===!0||!d){S({type:"text",value:a,output:a});continue}let C=")";if(d.dots===!0){const P=x.slice(),j=[];for(let L=P.length-1;L>=0&&(x.pop(),P[L].type!=="brace");L--)P[L].type!=="dots"&&j.unshift(P[L].value);C=c(j,r),l.backtrack=!0}if(d.comma!==!0&&d.dots!==!0){const P=l.output.slice(0,d.outputIndex),j=l.tokens.slice(d.tokensIndex);d.value=d.output="\\{",a=C="\\}",l.output=P;for(const L of j)l.output+=L.output||L.value}S({type:"brace",value:a,output:C}),fe("braces"),U.pop();continue}if(a==="|"){Y.length>0&&Y[Y.length-1].conditions++,S({type:"text",value:a});continue}if(a===","){let d=a;const C=U[U.length-1];C&&z[z.length-1]==="braces"&&(C.comma=!0,d="|"),S({type:"comma",value:a,output:d});continue}if(a==="/"){if(u.type==="dot"&&l.index===l.start+1){l.start=l.index+1,l.consumed="",l.output="",x.pop(),u=T;continue}S({type:"slash",value:a,output:W});continue}if(a==="."){if(l.braces>0&&u.type==="dot"){u.value==="."&&(u.output=G);const d=U[U.length-1];u.type="dots",u.output+=a,u.value+=a,d.dots=!0;continue}if(l.braces+l.parens===0&&u.type!=="bos"&&u.type!=="slash"){S({type:"text",value:a,output:G});continue}S({type:"dot",value:a,output:G});continue}if(a==="?"){if(!(u&&u.value==="(")&&r.noextglob!==!0&&H()==="("&&H(2)!=="?"){ct("qmark",a);continue}if(u&&u.type==="paren"){const d=H();let C=a;(u.value==="("&&!/[!=<:]/.test(d)||d==="<"&&!/<([!=]|\w+>)/.test(ce()))&&(C=`\\${a}`),S({type:"text",value:a,output:C});continue}if(r.dot!==!0&&(u.type==="slash"||u.type==="bos")){S({type:"qmark",value:a,output:ue});continue}S({type:"qmark",value:a,output:B});continue}if(a==="!"){if(r.noextglob!==!0&&H()==="("&&(H(2)!=="?"||!/[!=<:]/.test(H(3)))){ct("negate",a);continue}if(r.nonegate!==!0&&l.index===0){mo();continue}}if(a==="+"){if(r.noextglob!==!0&&H()==="("&&H(2)!=="?"){ct("plus",a);continue}if(u&&u.value==="("||r.regex===!1){S({type:"plus",value:a,output:se});continue}if(u&&(u.type==="bracket"||u.type==="paren"||u.type==="brace")||l.parens>0){S({type:"plus",value:a});continue}S({type:"plus",value:se});continue}if(a==="@"){if(r.noextglob!==!0&&H()==="("&&H(2)!=="?"){S({type:"at",extglob:!0,value:a,output:""});continue}S({type:"text",value:a});continue}if(a!=="*"){(a==="$"||a==="^")&&(a=`\\${a}`);const d=i.exec(ce());d&&(a+=d[0],l.index+=d[0].length),S({type:"text",value:a});continue}if(u&&(u.type==="globstar"||u.star===!0)){u.type="star",u.star=!0,u.value+=a,u.output=w,l.backtrack=!0,l.globstar=!0,J(a);continue}let b=ce();if(r.noextglob!==!0&&/^\([^?]/.test(b)){ct("star",a);continue}if(u.type==="star"){if(r.noglobstar===!0){J(a);continue}const d=u.prev,C=d.prev,P=d.type==="slash"||d.type==="bos",j=C&&(C.type==="star"||C.type==="globstar");if(r.bash===!0&&(!P||b[0]&&b[0]!=="/")){S({type:"star",value:a,output:""});continue}const L=l.braces>0&&(d.type==="comma"||d.type==="brace"),ie=Y.length&&(d.type==="pipe"||d.type==="paren");if(!P&&d.type!=="paren"&&!L&&!ie){S({type:"star",value:a,output:""});continue}for(;b.slice(0,3)==="/**";){const ae=m[l.index+4];if(ae&&ae!=="/")break;b=b.slice(3),J("/**",3)}if(d.type==="bos"&&ee()){u.type="globstar",u.value+=a,u.output=F(r),l.output=u.output,l.globstar=!0,J(a);continue}if(d.type==="slash"&&d.prev.type!=="bos"&&!j&&ee()){l.output=l.output.slice(0,-(d.output+u.output).length),d.output=`(?:${d.output}`,u.type="globstar",u.output=F(r)+(r.strictSlashes?")":"|$)"),u.value+=a,l.globstar=!0,l.output+=d.output+u.output,J(a);continue}if(d.type==="slash"&&d.prev.type!=="bos"&&b[0]==="/"){const ae=b[1]!==void 0?"|$":"";l.output=l.output.slice(0,-(d.output+u.output).length),d.output=`(?:${d.output}`,u.type="globstar",u.output=`${F(r)}${W}|${W}${ae})`,u.value+=a,l.output+=d.output+u.output,l.globstar=!0,J(a+D()),S({type:"slash",value:"/",output:""});continue}if(d.type==="bos"&&b[0]==="/"){u.type="globstar",u.value+=a,u.output=`(?:^|${W}|${F(r)}${W})`,l.output=u.output,l.globstar=!0,J(a+D()),S({type:"slash",value:"/",output:""});continue}if(L&&b[0]==="/"){u.type="globstar",u.value+=a,u.output=`(?:^|${W}|${F(r)}${W})`,l.output+=u.output,l.globstar=!0,J(a+D()),S({type:"slash",value:"/",output:""});continue}l.output=l.output.slice(0,-u.output.length),u.type="globstar",u.output=F(r),u.value+=a,l.output+=u.output,l.globstar=!0,J(a);continue}const M={type:"star",value:a,output:w};if(r.bash===!0){M.output=".*?",(u.type==="bos"||u.type==="slash")&&(M.output=V+M.output),S(M);continue}if(u&&(u.type==="bracket"||u.type==="paren")&&r.regex===!0){M.output=a,S(M);continue}(l.index===l.start||u.type==="slash"||u.type==="dot")&&(u.type==="dot"?(l.output+=ge,u.output+=ge):r.dot===!0?(l.output+=ne,u.output+=ne):(l.output+=V,u.output+=V),H()!=="*"&&(l.output+=re,u.output+=re)),S(M)}for(;l.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(f("closing","]"));l.output=t.escapeLast(l.output,"["),fe("brackets")}for(;l.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(f("closing",")"));l.output=t.escapeLast(l.output,"("),fe("parens")}for(;l.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(f("closing","}"));l.output=t.escapeLast(l.output,"{"),fe("braces")}if(r.strictSlashes!==!0&&(u.type==="star"||u.type==="bracket")&&S({type:"maybe_slash",value:"",output:`${W}?`}),l.backtrack===!0){l.output="";for(const b of l.tokens)l.output+=b.output!=null?b.output:b.value,b.suffix&&(l.output+=b.suffix)}return l};return K.fastpaths=(m,v)=>{const r={...v},y=typeof r.maxLength=="number"?Math.min(o,r.maxLength):o,E=m.length;if(E>y)throw new SyntaxError(`Input length: ${E}, exceeds maximum allowed length: ${y}`);m=n[m]||m;const{DOT_LITERAL:T,SLASH_LITERAL:x,ONE_CHAR:O,DOTS_SLASH:X,NO_DOT:Z,NO_DOTS:G,NO_DOTS_SLASH:se,STAR:W,START_ANCHOR:re}=e.globChars(r.windows),I=r.dot?G:Z,le=r.dot?se:Z,ge=r.capture?"":"?:",ne={negated:!1,prefix:""};let B=r.bash===!0?".*?":W;r.capture&&(B=`(${B})`);const ue=V=>V.noglobstar===!0?B:`(${ge}(?:(?!${re}${V.dot?X:T}).)*?)`,de=V=>{switch(V){case"*":return`${I}${O}${B}`;case".*":return`${T}${O}${B}`;case"*.*":return`${I}${B}${T}${O}${B}`;case"*/*":return`${I}${B}${x}${O}${le}${B}`;case"**":return I+ue(r);case"**/*":return`(?:${I}${ue(r)}${x})?${le}${O}${B}`;case"**/*.*":return`(?:${I}${ue(r)}${x})?${le}${B}${T}${O}${B}`;case"**/.*":return`(?:${I}${ue(r)}${x})?${T}${O}${B}`;default:{const $=/^(.*?)\.(\w+)$/.exec(V);if(!$)return;const w=de($[1]);return w?w+T+$[2]:void 0}}},q=t.removePrefix(m,ne);let F=de(q);return F&&r.strictSlashes!==!0&&(F+=`${x}?`),F},yt=K,yt}var xt,jt;function Ds(){if(jt)return xt;jt=1;const e=Ms(),t=Is(),o=dt(),p=gt(),i=n=>n&&typeof n=="object"&&!Array.isArray(n),s=(n,c,f=!1)=>{if(Array.isArray(n)){const Q=n.map(K=>s(K,c,f));return K=>{for(const m of Q){const v=m(K);if(v)return v}return!1}}const h=i(n)&&n.tokens&&n.input;if(n===""||typeof n!="string"&&!h)throw new TypeError("Expected pattern to be a non-empty string");const g=c||{},A=g.windows,R=h?s.compileRe(n,c):s.makeRe(n,c,!1,!0),_=R.state;delete R.state;let N=()=>!1;if(g.ignore){const Q={...c,ignore:null,onMatch:null,onResult:null};N=s(g.ignore,Q,f)}const te=(Q,K=!1)=>{const{isMatch:m,match:v,output:r}=s.test(Q,R,c,{glob:n,posix:A}),y={glob:n,state:_,regex:R,posix:A,input:Q,output:r,match:v,isMatch:m};if(typeof g.onResult=="function"&&g.onResult(y),m===!1)return y.isMatch=!1,K?y:!1;e:if(N(Q)){if(typeof g.onIgnore=="function"&&g.onIgnore(y)===p.UNIGNORE){y.isMatch=!0;break e}return y.isMatch=!1,K?y:!1}return typeof g.onMatch=="function"&&g.onMatch(y),K?y:!0};return f&&(te.state=_),te};return s.test=(n,c,f,{glob:h,posix:g}={})=>{if(typeof n!="string")throw new TypeError("Expected input to be a string");if(n==="")return{isMatch:!1,output:""};const A=f||{},R=A.format||(g?o.toPosixSlashes:null);let _=n===h,N=_&&R?R(n):n;return _===!1&&(N=R?R(n):n,_=N===h),(_===!1||A.capture===!0)&&(A.matchBase===!0||A.basename===!0?_=s.matchBase(n,c,f,g):_=c.exec(N)),{isMatch:!!_,match:_,output:N}},s.matchBase=(n,c,f)=>(c instanceof RegExp?c:s.makeRe(c,f)).test(o.basename(n)),s.isMatch=(n,c,f)=>s(c,f)(n),s.parse=(n,c)=>Array.isArray(n)?n.map(f=>s.parse(f,c)):t(n,{...c,fastpaths:!1}),s.scan=(n,c)=>e(n,c),s.compileRe=(n,c,f=!1,h=!1)=>{if(f===!0)return n.output;const g=c||{},A=g.contains?"":"^",R=g.contains?"":"$";let _=`${A}(?:${n.output})${R}`;n&&n.negated===!0&&(_=`^(?!${_}).*$`);const N=s.toRegex(_,c);return h===!0&&(N.state=n),N},s.makeRe=(n,c={},f=!1,h=!1)=>{if(!n||typeof n!="string")throw new TypeError("Expected a non-empty string");let g={negated:!1,fastpaths:!0};return c.fastpaths!==!1&&(n[0]==="."||n[0]==="*")&&(g.output=t.fastpaths(n,c)),g.output||(g=t(n,c)),s.compileRe(g,c,f,h)},s.toRegex=(n,c)=>{try{const f=c||{};return new RegExp(n,f.flags||(f.nocase?"i":""))}catch(f){if(c&&c.debug===!0)throw f;return/$^/}},s.constants=p,xt=s,xt}var At,Ft;function Ps(){if(Ft)return At;Ft=1;const e=Ds(),t=dt();function o(p,i,s=!1){return i&&(i.windows===null||i.windows===void 0)&&(i={...i,windows:t.isWindows()}),e(p,i,s)}return Object.assign(o,e),At=o,At}var zs=Ps();St(zs);const Gs=k(import.meta.url),Be=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,it=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 Gs(e)};it("fs");it("fs");it("path");it("url");const{createRequire:Us}=it("module");var Kt=Us(import.meta.url);try{Kt.resolve("picomatch"),Kt("picomatch")}catch{}var _t,Xt;function js(){if(Xt)return _t;Xt=1;/*!
|
|
5
|
+
* is-extglob <https://github.com/jonschlinkert/is-extglob>
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) 2014-2016, Jon Schlinkert.
|
|
8
|
+
* Licensed under the MIT License.
|
|
9
|
+
*/return _t=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},_t}var Et,Wt;function no(){if(Wt)return Et;Wt=1;/*!
|
|
10
|
+
* is-glob <https://github.com/jonschlinkert/is-glob>
|
|
11
|
+
*
|
|
12
|
+
* Copyright (c) 2014-2017, Jon Schlinkert.
|
|
13
|
+
* Released under the MIT License.
|
|
14
|
+
*/var e=js(),t={"{":"}","(":")","[":"]"},o=function(i){if(i[0]==="!")return!0;for(var s=0,n=-2,c=-2,f=-2,h=-2,g=-2;s<i.length;){if(i[s]==="*"||i[s+1]==="?"&&/[\].+)]/.test(i[s])||c!==-1&&i[s]==="["&&i[s+1]!=="]"&&(c<s&&(c=i.indexOf("]",s)),c>s&&(g===-1||g>c||(g=i.indexOf("\\",s),g===-1||g>c)))||f!==-1&&i[s]==="{"&&i[s+1]!=="}"&&(f=i.indexOf("}",s),f>s&&(g=i.indexOf("\\",s),g===-1||g>f))||h!==-1&&i[s]==="("&&i[s+1]==="?"&&/[:!=]/.test(i[s+2])&&i[s+3]!==")"&&(h=i.indexOf(")",s),h>s&&(g=i.indexOf("\\",s),g===-1||g>h))||n!==-1&&i[s]==="("&&i[s+1]!=="|"&&(n<s&&(n=i.indexOf("|",s)),n!==-1&&i[n+1]!==")"&&(h=i.indexOf(")",n),h>n&&(g=i.indexOf("\\",n),g===-1||g>h))))return!0;if(i[s]==="\\"){var A=i[s+1];s+=2;var R=t[A];if(R){var _=i.indexOf(R,s);_!==-1&&(s=_+1)}if(i[s]==="!")return!0}else s++}return!1},p=function(i){if(i[0]==="!")return!0;for(var s=0;s<i.length;){if(/[*?{}()[\]]/.test(i[s]))return!0;if(i[s]==="\\"){var n=i[s+1];s+=2;var c=t[n];if(c){var f=i.indexOf(c,s);f!==-1&&(s=f+1)}if(i[s]==="!")return!0}else s++}return!1};return Et=function(i,s){if(typeof i!="string"||i==="")return!1;if(e(i))return!0;var n=o;return s&&s.strict===!1&&(n=p),n(i)},Et}const Fs=k(import.meta.url),Me=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,uo=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 Fs(e)},Ks=uo("path"),Xs=uo("os");var Rt,qt;function Ws(){if(qt)return Rt;qt=1;var e=no(),t=Ks.posix.dirname,o=Xs.platform()==="win32",p="/",i=/\\/g,s=/\\([!*?|[\](){}])/g;Rt=function(f,h){var g=Object.assign({flipBackslashes:!0},h);g.flipBackslashes&&o&&f.indexOf(p)<0&&(f=f.replace(i,p)),n(f)&&(f+=p),f+="a";do f=t(f);while(c(f));return f.replace(s,"$1")};function n(f){var h=f.slice(-1),g;switch(h){case"}":g="{";break;case"]":g="[";break;default:return!1}var A=f.indexOf(g);return A<0?!1:f.slice(A+1,-1).includes(p)}function c(f){return/\([^()]+$/.test(f)||f[0]==="{"||f[0]==="["||/[^\\][{[]/.test(f)?!0:e(f)}return Rt}var qs=Ws();St(qs);const Qs=k(import.meta.url),Ie=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Zs=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 Qs(e)},{access:fn}=Zs("node:fs/promises"),Ys=k(import.meta.url),De=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Vs=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 Ys(e)},{accessSync:Js}=Vs("node:fs");function ft(e,t=Do){ro(e),e=pt(e);try{return Js(e,t),!0}catch{return!1}}var er=no();St(er);const tr=k(import.meta.url),Pe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,io=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 tr(e)};io("node:fs/promises");io("node:fs");let or=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 sr=k(import.meta.url),ze=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,ao=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 sr(e)};ao("node:fs/promises");ao("node:zlib");const rr=k(import.meta.url),Ge=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,lo=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 rr(e)};lo("node:fs");lo("node:zlib");const nr=k(import.meta.url),Ue=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,ur=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 nr(e)},{createRequire:co}=ur("node:module"),ir=new Map([["Error",Error],["EvalError",EvalError],["RangeError",RangeError],["ReferenceError",ReferenceError],["SyntaxError",SyntaxError],["TypeError",TypeError],["URIError",URIError]]);typeof AggregateError<"u"&&ir.set("AggregateError",AggregateError);const ar=co(import.meta.url),je=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,lr=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 ar(e)};lr("node:util");const cr=co(import.meta.url),Fe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Ct=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 cr(e)};Ct("node:fs");Ct("node:path");Ct("node:url");const pr=k(import.meta.url),Ke=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,po=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 pr(e)};po("node:fs");po("node:fs/promises");const fr=k(import.meta.url),Xe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,gr=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 fr(e)};gr("node:fs");const dr=k(import.meta.url),We=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,mr=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 dr(e)};mr("node:fs/promises");const br=k(import.meta.url),qe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,hr=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 br(e)};hr("node:fs");k(import.meta.url);const vr=k(import.meta.url),Qe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,yr=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 vr(e)};yr("node:crypto");new TextEncoder;const xr=k(import.meta.url),Ze=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Ar=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 xr(e)};Ar("node:fs/promises");const _r=k(import.meta.url),Ye=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Er=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 _r(e)};Er("node:fs");const Rr=k(import.meta.url),Ve=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Tr=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 Rr(e)};Tr("node:fs/promises");const $r=k(import.meta.url),Je=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Sr=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 $r(e)};Sr("node:fs");const Cr=k(import.meta.url),et=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,wt=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 Cr(e)},wr=wt("fs"),kr=wt("os"),Or=wt("path");var Tt={},Qt;function Nr(){if(Qt)return Tt;Qt=1;var e=Object.defineProperty,t=(g,A)=>e(g,"name",{value:A,configurable:!0}),o=wr,p=kr,i=Or;const s=t(g=>{let A="";for(let R=0;R<g.length;R+=1){const _=g[R],N=_.toUpperCase();A+=_===N?_.toLowerCase():N}return A},"invertCase"),n=new Map,c=t((g,A)=>{const R=i.join(g,`.is-fs-case-sensitive-test-${process.pid}`);try{return A.writeFileSync(R,""),!A.existsSync(s(R))}finally{try{A.unlinkSync(R)}catch{}}},"checkDirectoryCaseWithWrite"),f=t((g,A,R)=>{try{return c(g,R)}catch(_){if(A===void 0)return c(p.tmpdir(),R);throw _}},"checkDirectoryCaseWithFallback"),h=t((g,A=o,R=!0)=>{const _=g??process.cwd();if(R&&n.has(_))return n.get(_);let N;const te=s(_);return te!==_&&A.existsSync(_)?N=!A.existsSync(te):N=f(_,g,A),R&&n.set(_,N),N},"isFsCaseSensitive");return Tt.isFsCaseSensitive=h,Tt}Nr();const Hr=/^[A-Z]:\//i,at=(e="")=>e&&e.replaceAll("\\","/").replace(Hr,t=>t.toUpperCase()),Lr=/^[/\\]{2}/,Br=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Z]:[/\\]/i,kt=/^[A-Z]:$/i,Mr=/\/$/,Ir=()=>{if(typeof process.cwd=="function")try{const e=process.cwd();if(typeof e=="string")return at(e)}catch{}return"/"},$t="/",fo=(e,t)=>{let o="",p=0,i=-1,s=0,n;for(let c=0;c<=e.length;++c){if(c<e.length)n=e[c];else{if(n==="/")break;n="/"}if(n==="/"){if(!(i===c-1||s===1))if(s===2){if(o.length<2||p!==2||!o.endsWith(".")||o.at(-2)!=="."){if(o.length>2){const f=o.lastIndexOf("/");f===-1?(o="",p=0):(o=o.slice(0,f),p=o.length-1-o.lastIndexOf("/")),i=c,s=0;continue}else if(o.length>0){o="",p=0,i=c,s=0;continue}}t&&(o+=o.length>0?"/..":"..",p=2)}else o.length>0?o+=`/${e.slice(i+1,c)}`:o=e.slice(i+1,c),p=c-i-1;i=c,s=0}else n==="."&&s!==-1?++s:s=-1}return o},be=e=>Br.test(e),Dr=function(e){if(e.length===0)return".";e=at(e);const t=Lr.exec(e),o=be(e),p=e.at(-1)==="/";return e=fo(e,!o),e.length===0?o?"/":p?"./":".":(p&&(e+="/"),kt.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 p=t.at(-1)==="/",i=o[0]==="/";p&&i?t+=o.slice(1):t+=p||i?o:`/${o}`}else t+=o;return Dr(t)},Pr=function(...e){e=e.map(p=>at(p));let t="",o=!1;for(let p=e.length-1;p>=-1&&!o;p--){const i=p>=0?e[p]:Ir();!i||i.length===0||(t=`${i}/${t}`,o=be(i))}return t=fo(t,!o),kt.test(t)?`${t}/`:o&&!be(t)?`/${t}`:t.length>0?t:"."},zr=e=>{const t=at(e).replace(Mr,""),o=t.lastIndexOf("/");if(o===-1)return be(e)?"/":".";const p=t.slice(0,o);return kt.test(p)?`${p}/`:p||(be(e)?"/":".")};let Gr;const Ur=e=>(Gr??=k(import.meta.url))(e),tt=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,jr=e=>{if(typeof tt<"u"&&tt.versions&&tt.versions.node){const[t,o]=tt.versions.node.split(".").map(Number);if(t>22||t===22&&o>=3||t===20&&o>=16)return tt.getBuiltinModule(e)}return Ur(e)},{fileURLToPath:Fr}=jr("node:url");function Kr(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Zt,Yt;function Xr(){return Yt||(Yt=1,Zt=["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"]),Zt}var Wr=Xr();const qr=Kr(Wr);new Set(qr);const go=e=>at(e instanceof URL?Fr(e):e),Vt=e=>{const t=Mo();if(Ht==="win32"){const s=st.LOCALAPPDATA,n=t?oe(t,"AppData","Local"):mt(),c=s&&s.length>0?s:n;return oe(c,e,"Cache")}if(Ht==="darwin"){const s=t?oe(t,"Library","Caches"):mt();return oe(s,e)}const o=st.XDG_CACHE_HOME,p=t?oe(t,".cache"):mt(),i=o&&o.length>0?o:p;return oe(i,e)},Qr=e=>{if(e.length===0)return;const t=e.map(s=>Pr(go(s)).split($t));let o=Number.POSITIVE_INFINITY;for(const s of t)s.length<o&&(o=s.length);const p=[];for(let s=0;s<o;s+=1){const n=t[0][s];if(t.every(c=>c[s]===n))p.push(n);else break}const i=p.join($t);return i===""?$t:i},ot=(e,t)=>{if(e!==void 0)return t?(...o)=>oe(e,...o):e},Zr=e=>{if(e?.files&&e.files.length>0){const t=Qr(e.files);if(t!==void 0)return t}return e?.cwd??Io()},Yr=e=>new or(`No package.json found searching upwards from '${go(e)}'.`),Vr=e=>!ft(e,oo)&&ft(e),Jr=(e,t)=>{if(st.CACHE_DIR&&!["0","1","false","true"].includes(st.CACHE_DIR)){const h=oe(st.CACHE_DIR,e);return t?.create&&Re(h),ot(h,t?.thunk)}const o=Zr(t),p=Bs("package.json",{cwd:o,type:"file"});if(!p){if(t?.useGlobalCacheFallback){const h=Vt(e);return t.create&&Re(h),ot(h,t.thunk)}if(t?.throwError)throw Yr(o);return}const i=zr(p),s=oe(i,"node_modules"),n=oe(s,".cache"),c=oe(n,e);if(ft(c,oo))return t?.create&&Re(c),ot(c,t?.thunk);const f=[c,n,s];if(ft(s)||f.push(i),f.some(h=>Vr(h))){if(t?.useGlobalCacheFallback){const h=Vt(e);return t.create&&Re(h),ot(h,t.thunk)}return}return t?.create&&Re(c),ot(c,t?.thunk)},gn=Jr,Jt="@inherit",en=["aliases","dependsOn","inputs","outputs"],tn=(e,t)=>{if(t===void 0)return e===void 0?void 0:[...e];if(!t.includes(Jt))return[...t];const o=[];for(const p of t){if(p===Jt){e!==void 0&&o.push(...e);continue}o.push(p)}return o},dn=(e,t)=>{const o={...e,...t};for(const p of en){const i=e?.[p],s=t?.[p],n=tn(i,s);n===void 0?delete o[p]:o[p]=n}return o};export{gn as K,un as T,dn as m};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createRequire as b}from"node:module";import{
|
|
1
|
+
import{createRequire as b}from"node:module";import{z as m,e as _,a as C}from"./index-BdMIfGVZ.js";import{y as T}from"./isAccessibleSync-DYKTrrvc-BwaMhQs0.js";let g;const y=e=>(g??=b(import.meta.url))(e),h=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,I=e=>{if(typeof h<"u"&&h.versions&&h.versions.node){const[s,r]=h.versions.node.split(".").map(Number);if(s>22||s===22&&r>=3||s===20&&r>=16)return h.getBuiltinModule(e)}return y(e)},{platform:S}=I("node:os"),$={server:{cache:!1,interactive:!1,persistent:!0,runInCI:!1},utility:{cache:!1,runInCI:!1}},z=e=>{const s=e.preset??e.options?.preset;if(!s)return e;const r=$[s];if(!r)return e;const{cache:t,...n}=r;return{...e,cache:e.cache??t,options:{...n,...e.options}}},k=()=>{const e=S();return e==="darwin"?"macos":e==="win32"?"windows":"linux"},A=(e,s)=>{if(!s||s.size===0)return!0;const r=e?.runnerTags;return!r||r.length===0?!0:r.some(t=>s.has(t))},D=(e,s,r=!0)=>{const t=e?.runInCI??!0;return t===!0||t==="always"?!0:t===!1?!s:t==="affected"?!s||r:!0},E=(e,s,r)=>r||!s?e:m(s)?s:_(e,s),N=(e,s)=>{if(s===!1)return{};const r=s===!0?P(process.env.NODE_ENV):Array.isArray(s)?s:[s],t={};for(const n of r)Object.assign(t,q(e,n,t));return t},w=(e,s)=>{const r=n=>{const c=s[n];return c!==void 0?c:process.env[n]??""};let t="";for(let n=0;n<e.length;n+=1){const c=e[n];if(c==="\\"&&e[n+1]==="$"){t+="$",n+=1;continue}if(c!=="$"){t+=c;continue}const u=e[n+1];if(u==="{"){let i=1,l=n+2;for(;l<e.length;){const d=e[l];if(d==="}"){if(i-=1,i===0)break}else d==="{"&&e[l-1]==="$"&&(i+=1);l+=1}if(i!==0){t+=e.slice(n);break}const a=l,o=e.slice(n+2,a),f=o.indexOf(":-");if(f===-1)t+=r(o);else{const d=o.slice(0,f),x=o.slice(f+2),p=s[d]??process.env[d];t+=p!==void 0&&p!==""?p:w(x,s)}n=a;continue}if(u!==void 0&&/[A-Z_]/i.test(u)){let i=n+1;for(;i<e.length&&/\w/.test(e[i]);)i+=1;t+=r(e.slice(n+1,i)),n=i-1;continue}t+=c}return t},P=e=>{const s=[".env"];return e&&s.push(`.env.${e}`),e!=="test"&&s.push(".env.local"),e&&e!=="test"&&s.push(`.env.${e}.local`),s},q=(e,s,r={})=>{const t=m(s)?s:_(e,s);if(!T(t))return{};let n;try{n=C(t)}catch{return{}}const c={};for(const u of n.split(/\r?\n/)){const i=u.trim();if(i===""||i.startsWith("#"))continue;const l=i.indexOf("=");if(l===-1)continue;const a=i.slice(0,l).trim();if(a==="")continue;let o=i.slice(l+1).trim();const f=o.length>=2&&o.startsWith("'")&&o.endsWith("'");(o.startsWith('"')&&o.endsWith('"')||f)&&(o=o.slice(1,-1)),f||(o=w(o,{...r,...c})),c[a]=o}return c},O=(e,s=k())=>{if(e)return s==="windows"&&e.windowsShell?e.windowsShell:(s==="linux"||s==="macos")&&e.unixShell?e.unixShell:e.shell},B=e=>{if(e==="run")return!1;if(e==="build"||e==="test")return!0};export{O as a,z as b,B as c,k as d,N as l,A as m,E as r,D as s};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{buildChildEnv as d,resolveChildEnvPolicy as E,childEnvNameFilter as f}from"@visulima/task-runner";import{r as l,l as _}from"./target-options-PgWIuJnb.js";const S="VIS_AFFECTED_FILES",F="visTaskArgEnv",a=["FNM_*","FORCE_COLOR","NODE_EXTRA_CA_CERTS","NO_COLOR","VIS_MONOREPO_ROOT","VIS_VERSION"],h={INIT_CWD:"the directory `vis run` was invoked from",VIS_AFFECTED_FILES:"affected file paths, when `affectedFiles` is `env` or `both`",VIS_TASK_SLOTS:"the effective parallelism, for nested worker pools"},T=e=>({INIT_CWD:e.initCwd,VIS_TASK_SLOTS:String(e.taskSlots),...e.envFileVars,...e.serviceEnv,...e.execEnv,...e.affectedFilesEnv,...e.taskArgEnv}),u=(e,o)=>{const n=E(e,o);return n.mode==="clean"?{allow:[...n.allow,...a],mode:"clean"}:n},A=(e,o=process.platform)=>f({allow:[...e,...a],mode:"clean"},o),p=(e,o,n=process.platform)=>e.mode==="clean"?{env:d({injected:o,parentEnv:process.env,platform:n,policy:{allow:e.allow,mode:"clean"}}),inheritEnv:!1}:{env:o,inheritEnv:!0},c=e=>{const o=e.overrides.visOptions;if(o&&typeof o=="object")return o},C=(e,o,n)=>{const s=`${o}\0${typeof n=="string"?n:String(n)}`,r=e.get(s);if(r)return r;const t=_(o,n);return e.set(s,t),t},R=e=>({...e,envFileCache:new Map}),w=e=>e.segment===void 0?e.id:e.id.slice(0,e.id.lastIndexOf("#")),I=(e,o,n={})=>{const s=c(o),r=l(e.workspaceRoot,n.cwd??o.projectRoot,s?.runFromWorkspaceRoot===!0),t=s?.envFile?C(e.envFileCache,r,s.envFile):void 0,i={};e.affectedFiles&&e.affectedFiles.length>0&&(s?.affectedFiles==="env"||s?.affectedFiles==="both")&&(i[S]=e.affectedFiles.join(`
|
|
2
|
+
`));const v=T({affectedFilesEnv:i,envFileVars:t,execEnv:n.env,initCwd:e.initCwd,serviceEnv:e.serviceEnvByTaskId?.get(w(o)),taskArgEnv:o.overrides[F],taskSlots:e.taskSlots});return p(e.childEnvPolicy(o),v)},N=(e,o)=>{const n=l(e.workspaceRoot,o.projectRoot,c(o)?.runFromWorkspaceRoot===!0);return{cwd:n,...I(e,o,{cwd:n})}};export{S as A,F as T,a as V,h as a,R as b,A as c,N as d,u as e,c as g,I as r};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{createRequire as z}from"node:module";import{e as p,l as H,a as M}from"./index-BdMIfGVZ.js";import{y as v}from"./isAccessibleSync-DYKTrrvc-BwaMhQs0.js";import{p as A}from"./readJsonSync-CbryXYxN-Bm5i10UW.js";let B;const D=e=>(B??=z(import.meta.url))(e),k=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,T=e=>{if(typeof k<"u"&&k.versions&&k.versions.node){const[n,t]=k.versions.node.split(".").map(Number);if(n>22||n===22&&t>=3||n===20&&t>=16)return k.getBuiltinModule(e)}return D(e)},{execFileSync:P}=T("node:child_process"),{randomBytes:L}=T("node:crypto"),{writeFileSync:V,renameSync:q,unlinkSync:R}=T("node:fs"),{delimiter:U}=T("node:path"),J=["proto","mise","fnm","volta","asdf","nvm","corepack"],G={asdf:["bun","go","node","npm","pnpm","python","ruby","rust","yarn"],corepack:["npm","pnpm","yarn"],fnm:["node"],mise:["aube","bun","go","node","npm","pnpm","python","ruby","rust","yarn"],nvm:["node"],proto:["bun","go","node","npm","pnpm","python","ruby","rust","yarn"],volta:["node","npm","pnpm","yarn"]},Z=["proto","mise","fnm","volta","asdf","nvm","corepack"],O={asdf:[".tool-versions"],corepack:[],fnm:[".nvmrc",".node-version"],mise:[".mise.toml",".config/mise.toml","mise.toml"],nvm:[".nvmrc"],proto:[".prototools"],volta:[]},y=new Map,b=e=>{const n=y.get(e);if(n!==void 0||y.has(e))return n;const t=process.env.PATH;if(!t){y.set(e,void 0);return}const o=process.platform==="win32"?["",...(process.env.PATHEXT??".COM;.EXE;.BAT;.CMD").split(";")]:[""];for(const i of t.split(U)){const c=i.replaceAll(/^["']|["']$/g,"").trim();if(c!=="")for(const s of o){const a=`${c}${H}${e}${s}`;if(v(a))return y.set(e,a),a}}y.set(e,void 0)},S=(e,n=["--version"])=>{try{const t=P(e,n,{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:2e3}),r=/\d+\.\d+(?:\.\d+)?/.exec(t);return r?r[0]:t.trim()||void 0}catch{return}},j=(e,n)=>{const t=p(e,"package.json");if(!v(t))return[];try{const o=A(t)[n];if(n==="volta"&&typeof o=="object"&&o!==null&&Object.keys(o).length>0)return["package.json"];if(n==="packageManager"&&typeof o=="string"&&o.length>0)return["package.json"]}catch{}return[]},X=(e,n)=>e==="volta"?j(n,"volta"):e==="corepack"?j(n,"packageManager"):O[e].filter(t=>v(p(n,t))),x=new Map,Y=()=>{x.clear(),y.clear()},N=(e,n)=>{{const i=x.get(e);if(i)return i}const t=[],r=!!b("pnpm")||!!b("yarn");for(const i of Z){const c=i==="nvm"?void 0:b(i),s=i==="nvm"&&!!process.env.NVM_DIR,a=X(i,e),l=!!c||s;i==="corepack"&&!l&&(!(a.length>0)||r)||!l&&a.length===0||t.push({binPath:c,configFiles:a,installed:l,name:i,version:c?S(c):void 0})}const o=Object.freeze(t);return x.set(e,o),o},$n=(e,n,t)=>{const r=N(e);return n?.preferredManager&&n.preferredManager!=="none"?r.find(o=>o.name===n.preferredManager)??{configFiles:[],installed:!1,name:n.preferredManager}:r.find(o=>o.installed&&o.configFiles.length>0)??r.find(o=>o.installed)??r.find(o=>o.configFiles.length>0)??{configFiles:[],installed:!1,name:"none"}},K=(e,n)=>{for(const t of n){const r=p(e,t);if(v(r))try{const o=M(r).trim();if(o!=="")return{name:t,value:o.replace(/^v/,"")}}catch{}}},Q=/^([a-z][\w-]*)\s*=\s*"?([^"\n#]+?)"?\s*(?:#.*)?$/i,nn=e=>{const n=p(e,".prototools");if(!v(n))return[];const t=M(n),r=[];let o=!1;for(const i of t.split(/\r?\n/)){const c=i.trim();if(c===""||c.startsWith("#"))continue;if(c.startsWith("[")){o=!0;continue}if(o)continue;const s=Q.exec(c);if(!s)continue;const[,a,l]=s,f=g(a);f&&r.push({source:".prototools",tool:f,version:l.trim()})}return r},en=/^\[tools\]\s*$/i,tn=/^([a-z][\w-]*)\s*=\s*"?([^"\n#]+?)"?\s*(?:#.*)?$/i,on=e=>{for(const n of O.mise){const t=p(e,n);if(!v(t))continue;const r=[],o=M(t);let i=!1;for(const c of o.split(/\r?\n/)){const s=c.trim();if(s===""||s.startsWith("#"))continue;if(s.startsWith("[")){i=en.test(s);continue}if(!i)continue;const a=tn.exec(s);if(!a)continue;const[,l,f]=a,d=g(l);d&&r.push({source:".mise.toml",tool:d,version:f.trim()})}if(r.length>0)return r}return[]},rn=e=>{const n=p(e,".tool-versions");if(!v(n))return[];const t=M(n),r=[];for(const o of t.split(/\r?\n/)){const i=o.trim();if(i===""||i.startsWith("#"))continue;const c=i.split(/\s+/);if(c.length<2)continue;const[s,...a]=c,l=g(s);l&&a[0]&&r.push({source:".tool-versions",tool:l,version:a[0]})}return r},g=e=>{switch(e.toLowerCase()){case"aube":return"aube";case"bun":return"bun";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}},sn=e=>{const[n]=e.split("+",1),t=/^(pnpm|yarn|npm|bun)@(.+)$/.exec(n??"");if(!t)return;const r=g(t[1]);if(r)return{source:"packageManager",tool:r,version:t[2]}},an=(e,n)=>{const t=new Map,r=s=>{t.set(s.tool,s)},o=p(e,"package.json");let i={};try{v(o)&&(i=A(o))}catch{}if(i.engines)for(const[s,a]of Object.entries(i.engines)){const l=g(s);l&&typeof a=="string"&&r({source:"engines",tool:l,version:a})}if(i.packageManager){const s=sn(i.packageManager);s&&r(s)}if(i.volta)for(const[s,a]of Object.entries(i.volta)){const l=g(s);l&&typeof a=="string"&&r({source:"volta",tool:l,version:a})}const c=K(e,[".nvmrc",".node-version"]);c&&r({source:c.name===".nvmrc"?".nvmrc":".node-version",tool:"node",version:c.value});for(const s of rn(e))r(s);for(const s of on(e))r(s);for(const s of nn(e))r(s);if(n?.tools)for(const[s,a]of Object.entries(n.tools)){const l=g(s);l&&typeof a=="string"&&r({source:"vis.config.ts",tool:l,version:a})}return[...t.values()]},E={aube:{args:["--version"],binaries:["aube"]},bun:{args:["--version"],binaries:["bun"]},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"]}},F=e=>{const n=E[e];for(const t of n.binaries){const r=b(t);if(r)return S(r,n.args)}if(e==="node")return process.versions.node},W=(e,n)=>{const t=n.trim();if(t===""||t==="*"||t==="latest")return!0;if(/^\d[\d.]*$/.test(t))return e===t||e.startsWith(`${t}.`);const r=s=>s.split(/[.\-+]/).map(a=>Number.parseInt(a,10)||0),o=(s,a)=>{const l=r(s),f=r(a),d=Math.max(l.length,f.length);for(let h=0;h<d;h++){const $=l[h]??0,u=f[h]??0;if($!==u)return $-u}return 0},i=s=>{for(const a of s)if(a.startsWith(">=")){if(o(e,a.slice(2).trim())<0)return!1}else if(a.startsWith("<=")){if(o(e,a.slice(2).trim())>0)return!1}else if(a.startsWith(">")){if(o(e,a.slice(1).trim())<=0)return!1}else if(a.startsWith("<")){if(o(e,a.slice(1).trim())>=0)return!1}else if(a.startsWith("^")||a.startsWith("~")){const l=a.slice(1).trim(),[f,d]=r(l),[h,$]=r(e);if(h!==f||a.startsWith("~")&&$!==d||o(e,l)<0)return!1}return!0},c=t.split("||").map(s=>s.trim().split(/\s+/).filter(Boolean)).filter(s=>s.length>0);return c.length===0?!0:c.some(s=>i(s))},cn=(e,n)=>{switch(e){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 n==="pnpm"||n==="yarn"?["self-activate","volta","proto","mise","corepack"]:n==="npm"?["volta","proto","mise","asdf","corepack"]:n==="aube"?["mise"]:n==="bun"?["proto","mise","asdf"]:["volta","proto","mise"];case"volta":return["volta"];default:return["proto","mise","fnm","volta","asdf","nvm","corepack"]}},ln=(e,n,t)=>{if(t?.preferredManager&&t.preferredManager!=="none"&&_(t.preferredManager,e.tool)){const o=n.find(i=>i.name===t.preferredManager);return o?{installed:o.installed,name:o.name}:{installed:!1,name:t.preferredManager,note:`${t.preferredManager} is the preferred manager but isn't on PATH`}}const r=cn(e.source,e.tool);for(const o of r){if(o==="self-activate"){if((e.tool==="pnpm"||e.tool==="yarn")&&b(e.tool))return{installed:!0,name:"self-activate",note:`${e.tool} will activate ${e.version} from the packageManager field on next invocation`};continue}if(!_(o,e.tool))continue;if(n.find(c=>c.name===o)?.installed)return{installed:!0,name:o}}for(const o of r)if(!(o==="self-activate"||!_(o,e.tool)))return{installed:!1,name:o,note:`${o} can install ${e.tool} — run \`vis toolchain install\` after adding it to PATH`};return{installed:!1,name:"none",note:"No manager knows how to install this tool"}},_=(e,n)=>e==="none"?!1:e==="self-activate"?n==="pnpm"||n==="yarn":G[e].includes(n),fn=(e,n)=>{const t=N(e),o=an(e,n).map(i=>{const c=F(i.tool),s=c!==void 0&&W(c,i.version),a=ln(i,t,n);return{actual:c,expected:i,manager:a,matches:s}});return{detected:t,tools:o}},un=(e,n)=>{switch(e){case"asdf":return n?{args:["install",n.tool,n.version],bin:"asdf"}:void 0;case"corepack":return n?{args:["prepare",`${n.tool}@${n.version}`,"--activate"],bin:"corepack"}:{args:["prepare","--activate"],bin:"corepack",hint:"reads the packageManager field in package.json"};case"fnm":return n?.tool!=="node"?void 0:{args:["install",n.version],bin:"fnm"};case"mise":return n?{args:["install",`${n.tool}@${n.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 n?{args:["install",n.tool,n.version],bin:"proto"}:void 0;case"self-activate":return{args:[],bin:n?.tool??"pnpm",hint:`${n?.tool??"pnpm"} will self-activate on next invocation — no install needed`};case"volta":return n?{args:["install",`${n.tool}@${n.version}`],bin:"volta"}:{args:["install","node@lts"],bin:"volta",hint:"volta pins per-tool; specify <tool>@<version>"};default:{const t=e;throw new Error(`Unknown manager: ${t}`)}}},yn=(e,n)=>{switch(e){case"asdf":return{args:["local",n.tool,n.version],bin:"asdf",configChange:{file:".tool-versions",hint:`Pins ${n.tool} ${n.version}`}};case"corepack":return n.tool!=="npm"&&n.tool!=="pnpm"&&n.tool!=="yarn"?void 0:{args:["use",`${n.tool}@${n.version}`],bin:"corepack",configChange:{file:"package.json",hint:`Writes packageManager: "${n.tool}@${n.version}"`}};case"fnm":return n.tool==="node"?{args:["use",n.version],bin:"fnm"}:void 0;case"mise":return{args:["use","--",`${n.tool}@${n.version}`],bin:"mise",configChange:{file:".mise.toml",hint:`Pins ${n.tool} ${n.version}`}};case"none":return;case"nvm":return n.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",n.tool,n.version],bin:"proto",configChange:{file:".prototools",hint:`Pins ${n.tool} ${n.version}`}};case"self-activate":return{args:[],bin:n.tool,configChange:{file:"package.json",hint:`Set packageManager: "${n.tool}@${n.version}" — ${n.tool} will self-activate on next invocation`}};case"volta":return{args:["pin",`${n.tool}@${n.version}`],bin:"volta",configChange:{file:"package.json",hint:`Writes volta.${n.tool}`}};default:{const t=e;throw new Error(`Unknown manager: ${t}`)}}},Mn=e=>{for(const n of E[e].binaries){const t=b(n);if(t)return t}},wn=(e,n)=>{const t=E[n].binaries;if(e.installed&&e.binPath&&(e.name==="proto"||e.name==="mise"||e.name==="asdf"||e.name==="volta"||e.name==="fnm"))for(const r of t)try{const i=P(e.binPath,["which",r],{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:2e3}).trim();if(i)return i}catch{}for(const r of t){const o=b(r);if(o)return o}},I=(e,n)=>{const t=`${e}.${process.pid}.${L(6).toString("hex")}.tmp`;V(t,n);try{q(t,e)}catch(r){try{R(t)}catch{}throw r}},dn=(e,n)=>{if("packageManager"in e)return e.packageManager=n,e;const t={};let r=!1;for(const[o,i]of Object.entries(e))!r&&(o==="dependencies"||o==="devDependencies"||o==="peerDependencies"||o==="optionalDependencies")&&(t.packageManager=n,r=!0),t[o]=i;return r||(t.packageManager=n),t},kn=(e,n)=>{if(n.tool!=="pnpm"&&n.tool!=="yarn"&&n.tool!=="npm"&&n.tool!=="bun")return;const t=p(e,"package.json");if(!v(t))throw new Error(`Cannot pin ${n.tool}: ${t} does not exist.`);const r=M(t),i=/\n([ \t]+)/.exec(r)?.[1]??" ";let c;try{c=JSON.parse(r)}catch(f){throw new Error(`${t} is not valid JSON — fix it before running \`vis toolchain use\`. Underlying error: ${f.message}`,{cause:f})}const s=`${n.tool}@${n.version}`,a=dn(c,s),l=r.endsWith(`
|
|
2
|
+
`)?`
|
|
3
|
+
`:"";return I(t,`${JSON.stringify(a,void 0,i)}${l}`),s},Tn=(e,n)=>{const t=p(e,"package.json");if(!v(t))return;const r=M(t);let o;try{o=JSON.parse(r)}catch(a){throw new Error(`${t} is not valid JSON — fix it before running \`vis toolchain use\`. Underlying error: ${a.message}`,{cause:a})}if(o.engines?.[n.tool]===void 0||o.engines[n.tool]===n.version)return;o.engines[n.tool]=n.version;const c=/\n([ \t]+)/.exec(r)?.[1]??" ",s=r.endsWith(`
|
|
4
|
+
`)?`
|
|
5
|
+
`:"";return I(t,`${JSON.stringify(o,void 0,c)}${s}`),n.version},Pn=e=>{const n=/^([a-z][\w-]*)@(.+)$/i.exec(e.trim());if(!n)return;const t=g(n[1]);if(t)return{source:"vis.config.ts",tool:t,version:n[2]}},mn=async(e,n,t)=>{const r=fn(e,n),o=r.tools.filter(f=>!f.matches);if(o.length===0)return{attempted:[],failed:[],upToDate:!0};const i=r.detected.some(f=>f.installed);if(!(n?.autoInstall??i))return{attempted:[],failed:[],upToDate:!1};const s=[],a=[],l=new Map;for(const f of o){const d=l.get(f.manager.name);d?d.push(f):l.set(f.manager.name,[f])}for(const[f,d]of l){if(f==="self-activate"){for(const{expected:u}of d)t.info(`toolchain: ${u.tool} ${u.version} will self-activate on next ${u.tool} invocation`),s.push(u);continue}if(f==="none"){for(const{expected:u}of d)a.push({error:`no manager can install ${u.tool} — install one of ${J.join(", ")}`,spec:u});continue}if(!r.detected.find(u=>u.name===f)?.installed){for(const{expected:u}of d)a.push({error:`${f} is not on PATH`,spec:u});continue}const $=d.map(u=>({invocation:un(f,u.expected),tool:u})).filter(u=>u.invocation!==void 0);for(const{invocation:u,tool:C}of $){const{expected:m}=C;if(u.bin==="nvm"&&u.args.length===0){const w=F(m.tool);if(w!==void 0&&W(w,m.version)){t.info(`toolchain: ${m.tool} ${w} already satisfies ${m.version}; skipping nvm shell activation`),s.push(m);continue}t.warn(`toolchain: nvm requires a shell-side activation for ${m.tool} ${m.version}. Run \`nvm install\` / \`nvm use\` manually.`),a.push({error:"nvm requires shell-side activation",spec:m});continue}t.info(`toolchain: $ ${u.bin} ${u.args.join(" ")}`);try{P(u.bin,u.args,{cwd:e,stdio:"inherit"}),s.push(m),f==="fnm"&&vn(u.bin,t)}catch(w){a.push({error:w.message,spec:m});break}}}return Y(),{attempted:s,failed:a,upToDate:!1}},_n=async(e,n,t,r=!1)=>{if(r)return;const o=await mn(e,n,t);for(const i of o.failed)t.warn(`toolchain: ${i.spec.tool} ${i.spec.version} — ${i.error}`)},vn=(e,n)=>{const t=process.platform==="win32"?"powershell":"bash";try{const r=P(e,["env","--shell",t],{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:2e3});for(const o of r.split(/\r?\n/)){const i=o.trim();if(i==="")continue;const c=/^\$env:([A-Z_]\w*)\s*=\s*(.+)$/i.exec(i);if(c){const[,l,f]=c;process.env[l]=f.replaceAll(/^["']|["']$/g,"");continue}const s=/^set\s+"?([A-Z_]\w*)=(.*?)"?$/i.exec(i);if(s){const[,l,f]=s;process.env[l]=f;continue}const a=/^(?:export\s+)?([A-Z_]\w*)=(.+)$/i.exec(i);if(a){const[,l,f]=a;process.env[l]=f.replaceAll(/^["']|["']$/g,"")}}}catch(r){n.warn(`toolchain: could not activate fnm env (${r.message}). Subsequent tasks may use the previous Node version.`)}};export{J as S,Pn as a,un as b,ln as c,yn as d,wn as e,N as f,fn as g,Mn as h,$n as p,_n as r,Tn as u,kn as w};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createRequire as $}from"node:module";import{X as j,b as k}from"./index.server-sXNQYpsl.js";import{e as D}from"./index-BzhrR_iC.js";import{g as M}from"./_commonjsHelpers-DTfxOvZk.js";import{c as g,p as i}from"../packem_chunks/cli-main.js";import{y as A}from"./isAccessibleSync-DYKTrrvc-C-_5cgwu.js";import{p as R}from"./readJsonSync-CbryXYxN-EWl7_7KX.js";let _;const z=e=>(_??=$(import.meta.url))(e),l=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,T=e=>{if(typeof l<"u"&&l.versions&&l.versions.node){const[o,r]=l.versions.node.split(".").map(Number);if(o>22||o===22&&r>=3||o===20&&r>=16)return l.getBuiltinModule(e)}return z(e)},{createInterface:S}=T("node:readline");var B=["aj","aju","av","avj","ejv","jav","jv"],C=["angula","angular-node","angularjs"],E=["auto-prefixer"],L=["aaxios","aios","axio","axioos","axios-node","axioss","axis","axiso","axois","axos","axxios"],O=["abel","babbel","babe","babel-js","babel-node","babl","bable","bbael","bebel"],F=["bcrpyt","bcrypt-node","brcypt","crypt","dcrypt"],I=["bcryptjs-node","dcryptjs"],P=["bunan","bunya","bunyan-node","buynan"],U=["cai","cha","chaijs","chal","chi","chia","hai"],W=["cahlk","calk","cchalk","ch4lk","cha1k","chaalk","chaik","chak","chakl","chalk-node","chalkk","challk","chhalk","chlak","chlk","halk","hcalk"],V=["cheero","cherio"],X=["c0lor","ccolor","clor","colo","coloor","color-js","colorjs","colorr","colr","coolor","coolr"],J=["ccolors","colors-node","colorss","colorz","colrs","coolors"],Y=["c0mmander","ccommander","cmmander","cmomander","co-mmander","comamnder","comander","comm4nder","commaander","commader","commadner","commamder","command3r","commandder","commande","commandeer","commander-js","commanderr","commandr","commandre","commanedr","commaner","commannder","commender","commmander","commnader","commnder","coommander","ocmmander","ommander"],G=["cor","corss","cos","cosr","cros","crs","ors"],H=["days"],K=["d3bug","dbeug","dbug","ddebug","debbug","debg","debgu","debu","debu9","debug-js","debug-node","debugg","debugjs","debuug","deebug","deubg","deug","ebug","edbug"],Q=["dot-env","dotenv-node","dotenvjs","dotevn"],Z=["3lectron","eectron","eelctron","eelectron","el3ctron","elcetron","elctron","elecctron","elecron","elecrton","electon","electorn","electr0n","electrn","electrno","electro","electrom","electron-node","electronn","electroon","electrron","electtron","eleectron","eletcron","eletron","ellectron","lectron","leectron"],N=["asbuild","ebuild","esbuild-node","esbuildjs","ezbuild","sbuild"],ee=["aslint","elint","eslint-js","eslint-node","eslit","ezlint","slint"],oe=["eexpress","epress","epxress","experss","expess","exppress","expreess","expres","express-node","expressjs","expresss","exprress","exprses","exprss","exress","exrpess","exxpress","xepress","xpress"],se=["astify"],re=["firebasejs"],te=["form1dable"],ae=["glb","glo","glob-js","globjs","gob","golb","lob"],ce=["go","goot","gotjs","gott","gt","gto","ogt","ot","qot"],ne=["helmetjs","helnet"],ie=["homo","hon","hoo","hoon","ohno","ono"],de=["inquire","inquirer-js","nquirer"],le=["iredis"],me=["ejst","est","jast","jes","jestjs","jestt","jet","jets","jst"],pe=["imp","jim","jip","jmp"],ue=["ji","jio","jo","joii","jol","oi","oji"],he=["jdom","jsdm","jsdo","jsdom-js","jsdon","jsom","sdom"],ve=["jsonwebtoken-js","jsonwebtoken-node"],be=["ka","kao","ko","koaa","koajs","koe","oa","oka"],je=["1odash","iodash","l0dash","ldash","ldoash","llodash","lo-dash","loadsh","loash","lobash","lod4sh","lodaash","lodah","lodahs","lodas","lodash-node","lodashh","lodassh","loddash","lodesh","lodsah","lodsh","loodash","odash","oldash"],ke=["luca","luci","lucie"],fe=["luon","luxo","luxon-js"],ge=["imcromatch","mciromatch","micormatch","micrmoatch","micro-match","microamtch","micromacth","micromathc","micromtach","mircomatch"],ye=["minimath"],xe=["mcha","mmocha","moca","moch","mocha-js","moha","nocha","ocha"],we=["m0ment","mment","mmoent","mmoment","moemnt","moent","mom3nt","momeent","momemt","momen","momen7","momennt","moment-js","momentjs","momentt","momet","mometn","momment","momnet","momnt","monent","mooment","oment","omment"],qe=["mognoose","mogoose","mongoos","mongose","monqoose","moongoose"],$e=["moran","organ"],_e=["muler","multer-js","muter"],ze=["mysql"],Te=["ext","mext","n3xt","naxt","net","netx","nex","next-js","next-node","nextjs","nxt"],Se=["node-mailer","nodemailer-js"],De=["nodemo","nodemonjs","nodmeon"],Me=["oar","or","ora-node","ore","ra","roa"],Ae=["arcel","parce","parceljs"],Re=["passport-js"],Be=["phase","phaser-node"],Ce=["ino","pimo","pin","pino-node","pinojs","pio","pion"],Ee=["playright","playwright-js"],Le=["postcss-js","postcss-node","potscss"],Oe=["pettier","pprettier","pretier","prettierjs","prettierr","prtetier"],Fe=["prima","prism","prisma-js","prismajs","prizma"],Ie=["pupeteer"],Pe=["rada","rama","ramd","randa"],Ue=["eact","eract","r3act","raact","ract","raect","re4ct","reaact","reac","reac7","reacct","react-node","reactjs","reactt","reat","reatc","recat","rect","reeact","reect","rreact"],We=["erdis","radis","rdis","redi","redis-js","redis-node","rediss","rediz","reds","reis","rredis"],Ve=["resen","rsend"],Xe=["ollup","rollup-js","rollup-node"],Je=["ass","asss","sas","sass-node","sess","ssas","sss"],Ye=["emver","seemver","semver-node","semvre","senver","sever"],Ge=["sequelize-js","sequelize-node"],He=["harp","shap","shar","sharp-js","sharpjs"],Ke=["stipe","strip","stripe-node","tripe"],Qe=["supabase-js"],Ze=["suelte","svelt3","svelte-js","sveltejs","velte"],Ne=["tailwindcss-js"],eo=["auri","taui"],oo=["hree","htree","thee","there","three-js","three-node","tree"],so=["stx","sx","ts","tsxx","ttsx","tx","txs","tzx"],ro=["ttypescript","typecript","typescipt","typescript-node","typescriptjs","typescrit","typescritp"],to=["udnerscore","undercore","underscoer","underscore-node","underscroe","undersocre","undesrcore"],ao=["uid","uud","uudi","uui","uuid-js","uuid-node","uuidjs","vuid"],co=["ite","vie","vit","vita","vite-node","vitee","vlte","vte"],no=["itest","uitest","vitestjs","vitezt","vittest","vtest"],io=["ue","uue","uve","ve","veu","vu","vu3","vua","vue-node","vuee","vuejs","vuue","vve","vvue"],lo=["web-pack","weback","webpac","webpack-node","webpackjs","webpak","weebpack","wepack","wepback"],mo=["winson","winston-js","winstoon"],po=["up","uyp","yp","yu","yupjs","yupp"],uo=["od","zd","zdo","zo","zob","zod-js","zodjs"];const ho={ajv:B,angular:C,autoprefixer:E,"aws-sdk":["awssdk","ews-sdk"],axios:L,babel:O,bcrypt:F,bcryptjs:I,"body-parser":["body-paresr","body-parse","body-parser-js","body_parser"],bunyan:P,chai:U,chalk:W,cheerio:V,color:X,colors:J,commander:Y,"cookie-parser":["cookie-parse","cookieparser"],cors:G,"cross-env":["crossenv"],"date-fns":["data-fns","date-fn"],dayjs:H,debug:K,dotenv:Q,electron:Z,esbuild:N,eslint:ee,express:oe,fastify:se,firebase:re,formidable:te,glob:ae,got:ce,helmet:ne,hono:ie,inquirer:de,ioredis:le,jest:me,jimp:pe,joi:ue,jsdom:he,jsonwebtoken:ve,koa:be,lodash:je,lucia:ke,luxon:fe,micromatch:ge,minimatch:ye,mocha:xe,moment:we,mongoose:qe,morgan:$e,multer:_e,mysql2:ze,next:Te,"node-fetch":["node-fecth","node-fethc","node.fetch"],nodemailer:Se,nodemon:De,ora:Me,parcel:Ae,passport:Re,phaser:Be,pino:Ce,playwright:Ee,postcss:Le,prettier:Oe,prisma:Fe,puppeteer:Ie,ramda:Pe,react:Ue,"react-dom":["eact-dom","eract-dom","r3act-dom","ract-dom","raect-dom","re4ct-dom","reaact-dom","reac-dom","reac7-dom","reacct-dom","react-bom","react-d0m","react-ddom","react-dm","react-dmo","react-do","react-domm","react-don","react-doom","react-odm","react-om","react.dom","reactdom","reactt-dom","reat-dom","reatc-dom","recat-dom","rect-dom","reeact-dom","rreact-dom"],redis:We,resend:Ve,rollup:Xe,sass:Je,semver:Ye,sequelize:Ge,sharp:He,"socket.io":["ocket.io","oscket.io","scket.io","scoket.io","soccket.io","socekt.io","socet.io","sock3t.io","socke.io","socke7.io","sockeet.io","socket.1o","socket.i","socket.iio","socket.ioo","socket.lo","socket.o","socket.oi","sockett.io","sockket.io","sockt.io","sockte.io","sokcet.io","soket.io","soocket.io","ssocket.io"],stripe:Ke,supabase:Qe,svelte:Ze,tailwindcss:Ne,tauri:eo,three:oo,"ts-node":["tts-node"],tsx:so,typescript:ro,underscore:to,uuid:ao,vite:co,vitest:no,vue:io,webpack:lo,winston:mo,yup:po,zod:uo};var h,f;function vo(){return f||(f=1,h={"@tanstack/start":["start-tanstack-app","tanstack","tanstack-app","tanstack-start"]}),h}var bo=vo();const jo=M(bo),ko={a:["4","e"],b:["d"],d:["b"],e:["3","a"],g:["9","q"],i:["1","l"],l:["1","i"],m:["n"],n:["m"],o:["0"],s:["5","z"],t:["7"],u:["v"],v:["u"]},fo=["app","cli","core","kit","lib","pkg","sdk"],go=e=>{const o=new Set;if(e.length<3)return o;for(let s=0;s<e.length;s++){const a=e[s],c=a==="-"||a==="."||a==="_";if(c||o.add(e.slice(0,s)+e.slice(s+1)),c||o.add(e.slice(0,s)+a+e.slice(s)),s<e.length-1&&e[s]!==e[s+1]){const u=e[s+1]==="-"||e[s+1]==="."||e[s+1]==="_";if(!c&&!u){const d=[...e];[d[s],d[s+1]]=[d[s+1],d[s]],o.add(d.join(""))}}const n=e[s].toLowerCase(),b=ko[n];if(b)for(const u of b)o.add(e.slice(0,s)+u+e.slice(s+1))}const r=/[-._]/g;if(r.test(e))o.add(e.replaceAll(r,"")),o.add(e.replaceAll(r,"-")),o.add(e.replaceAll(r,".")),o.add(e.replaceAll(r,"_"));else if(e.length>5)for(let s=2;s<e.length-2;s++)o.add(`${e.slice(0,s)}-${e.slice(s)}`),o.add(`${e.slice(0,s)}.${e.slice(s)}`),o.add(`${e.slice(0,s)}_${e.slice(s)}`);if(e.startsWith("@")||(o.add(`${e}-js`),o.add(`${e}js`),o.add(`${e}-node`)),e.startsWith("@")){const s=e.indexOf("/");if(s>1&&s<e.length-1){const a=e.slice(1,s),c=e.slice(s+1);a.length>=3&&o.add(a);for(const n of["","-",".","_"])o.add(`${a}${n}${c}`),o.add(`${c}${n}${a}`);for(const n of fo)o.add(`${a}-${n}`),o.add(`${c}-${a}-${n}`),o.add(`${n}-${a}-${c}`)}}return o.delete(e),o};let v,p,m;const y=()=>{if(!v){const e={};for(const o of[ho,jo])for(const[r,t]of Object.entries(o)){const s=e[r]??(e[r]=[]);for(const a of t)s.includes(a)||s.push(a)}v=e}return v},yo=()=>{if(!p){p=new Map;for(const[e,o]of Object.entries(y()))for(const r of o)p.set(r,e)}return p},xo=()=>{if(!m){m=new Map;for(const e of Object.keys(y()))for(const o of go(e))m.has(o)||m.set(o,e)}return m},wo=e=>e.startsWith("@")?e.split("/")[1]??e:e,qo=e=>{const o=wo(e),r=yo().get(o);if(r)return{input:e,legitimate:r,method:"blocklist"};const t=xo().get(o);if(t)return{input:e,legitimate:t,method:"heuristic"}},x=(e,o)=>{const r=o?new Set(o):void 0,t=[];for(const s of e){if(r?.has(s))continue;const a=qo(s);a&&t.push(a)}return t},w=(e,o)=>{i.warn(""),i.warn(j(`Possible typosquat${e.length===1?"":"s"} ${o}:`));for(const r of e){const t=r.method==="blocklist"?"known typosquat":"similar name";i.warn(` ${k("⚠")} ${j(r.input)} — did you mean ${k(r.legitimate)}? (${t})`)}i.warn("")},q=async e=>{if(!process.stdin.isTTY){i.warn("Aborting: potential typosquat detected in non-interactive mode. Use --no-typosquat-check to skip.");return}const o=S({input:process.stdin,output:process.stdout}),r=await new Promise(t=>{o.question(e,s=>{t(s.trim().toLowerCase())})});return o.close(),r},Co=async(e,o)=>{if(g("typosquats"))return{ok:!0,packages:e};const r=x(e,o);if(r.length===0)return{ok:!0,packages:e};w(r,"detected");const t=await q(`Use suggested package${r.length===1?"":"s"} instead? [S]uggested / [y]es, keep original / [N]o, abort (default: N) `);if(t===void 0)return{ok:!1,packages:e};if(t==="s"||t==="suggested"){const s=new Map(r.map(c=>[c.input,c.legitimate]));return{ok:!0,packages:e.map(c=>s.get(c)??c)}}return t==="y"||t==="yes"?{ok:!0,packages:e}:{ok:!1,packages:e}},$o=/^(?:npm|pnpm|yarn):(.+?)(?:@.*)?$/,_o=e=>$o.exec(e)?.[1],zo=e=>{if(!A(e))return[];const o=R(e),r={...o.dependencies,...o.devDependencies,...o.optionalDependencies,...o.peerDependencies},t=new Set;for(const[s,a]of Object.entries(r)){t.add(s);const c=_o(a);c&&t.add(c)}return[...t]},Eo=async(e,o)=>{if(g("typosquats"))return!0;const r=D(e,"package.json"),t=zo(r);if(t.length===0)return!0;const s=x(t,o);if(s.length===0)return!0;w(s,"in package.json dependencies"),i.warn("Fix the package name in package.json before proceeding.");const a=await q("Continue anyway? [y/N] ");return a==="y"||a==="yes"};export{Co as r,Eo as s};
|
|
1
|
+
import{createRequire as $}from"node:module";import{X as j,b as k}from"./index.server-D8BLnYZO.js";import{e as D}from"./index-BdMIfGVZ.js";import{g as M}from"./_commonjsHelpers-DTfxOvZk.js";import{c as g,p as i}from"../packem_chunks/cli-main.js";import{y as A}from"./isAccessibleSync-DYKTrrvc-BwaMhQs0.js";import{p as R}from"./readJsonSync-CbryXYxN-Bm5i10UW.js";let _;const z=e=>(_??=$(import.meta.url))(e),l=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,T=e=>{if(typeof l<"u"&&l.versions&&l.versions.node){const[o,r]=l.versions.node.split(".").map(Number);if(o>22||o===22&&r>=3||o===20&&r>=16)return l.getBuiltinModule(e)}return z(e)},{createInterface:S}=T("node:readline");var B=["aj","aju","av","avj","ejv","jav","jv"],C=["angula","angular-node","angularjs"],E=["auto-prefixer"],L=["aaxios","aios","axio","axioos","axios-node","axioss","axis","axiso","axois","axos","axxios"],O=["abel","babbel","babe","babel-js","babel-node","babl","bable","bbael","bebel"],F=["bcrpyt","bcrypt-node","brcypt","crypt","dcrypt"],I=["bcryptjs-node","dcryptjs"],P=["bunan","bunya","bunyan-node","buynan"],U=["cai","cha","chaijs","chal","chi","chia","hai"],W=["cahlk","calk","cchalk","ch4lk","cha1k","chaalk","chaik","chak","chakl","chalk-node","chalkk","challk","chhalk","chlak","chlk","halk","hcalk"],V=["cheero","cherio"],X=["c0lor","ccolor","clor","colo","coloor","color-js","colorjs","colorr","colr","coolor","coolr"],J=["ccolors","colors-node","colorss","colorz","colrs","coolors"],Y=["c0mmander","ccommander","cmmander","cmomander","co-mmander","comamnder","comander","comm4nder","commaander","commader","commadner","commamder","command3r","commandder","commande","commandeer","commander-js","commanderr","commandr","commandre","commanedr","commaner","commannder","commender","commmander","commnader","commnder","coommander","ocmmander","ommander"],G=["cor","corss","cos","cosr","cros","crs","ors"],H=["days"],K=["d3bug","dbeug","dbug","ddebug","debbug","debg","debgu","debu","debu9","debug-js","debug-node","debugg","debugjs","debuug","deebug","deubg","deug","ebug","edbug"],Q=["dot-env","dotenv-node","dotenvjs","dotevn"],Z=["3lectron","eectron","eelctron","eelectron","el3ctron","elcetron","elctron","elecctron","elecron","elecrton","electon","electorn","electr0n","electrn","electrno","electro","electrom","electron-node","electronn","electroon","electrron","electtron","eleectron","eletcron","eletron","ellectron","lectron","leectron"],N=["asbuild","ebuild","esbuild-node","esbuildjs","ezbuild","sbuild"],ee=["aslint","elint","eslint-js","eslint-node","eslit","ezlint","slint"],oe=["eexpress","epress","epxress","experss","expess","exppress","expreess","expres","express-node","expressjs","expresss","exprress","exprses","exprss","exress","exrpess","exxpress","xepress","xpress"],se=["astify"],re=["firebasejs"],te=["form1dable"],ae=["glb","glo","glob-js","globjs","gob","golb","lob"],ce=["go","goot","gotjs","gott","gt","gto","ogt","ot","qot"],ne=["helmetjs","helnet"],ie=["homo","hon","hoo","hoon","ohno","ono"],de=["inquire","inquirer-js","nquirer"],le=["iredis"],me=["ejst","est","jast","jes","jestjs","jestt","jet","jets","jst"],pe=["imp","jim","jip","jmp"],ue=["ji","jio","jo","joii","jol","oi","oji"],he=["jdom","jsdm","jsdo","jsdom-js","jsdon","jsom","sdom"],ve=["jsonwebtoken-js","jsonwebtoken-node"],be=["ka","kao","ko","koaa","koajs","koe","oa","oka"],je=["1odash","iodash","l0dash","ldash","ldoash","llodash","lo-dash","loadsh","loash","lobash","lod4sh","lodaash","lodah","lodahs","lodas","lodash-node","lodashh","lodassh","loddash","lodesh","lodsah","lodsh","loodash","odash","oldash"],ke=["luca","luci","lucie"],fe=["luon","luxo","luxon-js"],ge=["imcromatch","mciromatch","micormatch","micrmoatch","micro-match","microamtch","micromacth","micromathc","micromtach","mircomatch"],ye=["minimath"],xe=["mcha","mmocha","moca","moch","mocha-js","moha","nocha","ocha"],we=["m0ment","mment","mmoent","mmoment","moemnt","moent","mom3nt","momeent","momemt","momen","momen7","momennt","moment-js","momentjs","momentt","momet","mometn","momment","momnet","momnt","monent","mooment","oment","omment"],qe=["mognoose","mogoose","mongoos","mongose","monqoose","moongoose"],$e=["moran","organ"],_e=["muler","multer-js","muter"],ze=["mysql"],Te=["ext","mext","n3xt","naxt","net","netx","nex","next-js","next-node","nextjs","nxt"],Se=["node-mailer","nodemailer-js"],De=["nodemo","nodemonjs","nodmeon"],Me=["oar","or","ora-node","ore","ra","roa"],Ae=["arcel","parce","parceljs"],Re=["passport-js"],Be=["phase","phaser-node"],Ce=["ino","pimo","pin","pino-node","pinojs","pio","pion"],Ee=["playright","playwright-js"],Le=["postcss-js","postcss-node","potscss"],Oe=["pettier","pprettier","pretier","prettierjs","prettierr","prtetier"],Fe=["prima","prism","prisma-js","prismajs","prizma"],Ie=["pupeteer"],Pe=["rada","rama","ramd","randa"],Ue=["eact","eract","r3act","raact","ract","raect","re4ct","reaact","reac","reac7","reacct","react-node","reactjs","reactt","reat","reatc","recat","rect","reeact","reect","rreact"],We=["erdis","radis","rdis","redi","redis-js","redis-node","rediss","rediz","reds","reis","rredis"],Ve=["resen","rsend"],Xe=["ollup","rollup-js","rollup-node"],Je=["ass","asss","sas","sass-node","sess","ssas","sss"],Ye=["emver","seemver","semver-node","semvre","senver","sever"],Ge=["sequelize-js","sequelize-node"],He=["harp","shap","shar","sharp-js","sharpjs"],Ke=["stipe","strip","stripe-node","tripe"],Qe=["supabase-js"],Ze=["suelte","svelt3","svelte-js","sveltejs","velte"],Ne=["tailwindcss-js"],eo=["auri","taui"],oo=["hree","htree","thee","there","three-js","three-node","tree"],so=["stx","sx","ts","tsxx","ttsx","tx","txs","tzx"],ro=["ttypescript","typecript","typescipt","typescript-node","typescriptjs","typescrit","typescritp"],to=["udnerscore","undercore","underscoer","underscore-node","underscroe","undersocre","undesrcore"],ao=["uid","uud","uudi","uui","uuid-js","uuid-node","uuidjs","vuid"],co=["ite","vie","vit","vita","vite-node","vitee","vlte","vte"],no=["itest","uitest","vitestjs","vitezt","vittest","vtest"],io=["ue","uue","uve","ve","veu","vu","vu3","vua","vue-node","vuee","vuejs","vuue","vve","vvue"],lo=["web-pack","weback","webpac","webpack-node","webpackjs","webpak","weebpack","wepack","wepback"],mo=["winson","winston-js","winstoon"],po=["up","uyp","yp","yu","yupjs","yupp"],uo=["od","zd","zdo","zo","zob","zod-js","zodjs"];const ho={ajv:B,angular:C,autoprefixer:E,"aws-sdk":["awssdk","ews-sdk"],axios:L,babel:O,bcrypt:F,bcryptjs:I,"body-parser":["body-paresr","body-parse","body-parser-js","body_parser"],bunyan:P,chai:U,chalk:W,cheerio:V,color:X,colors:J,commander:Y,"cookie-parser":["cookie-parse","cookieparser"],cors:G,"cross-env":["crossenv"],"date-fns":["data-fns","date-fn"],dayjs:H,debug:K,dotenv:Q,electron:Z,esbuild:N,eslint:ee,express:oe,fastify:se,firebase:re,formidable:te,glob:ae,got:ce,helmet:ne,hono:ie,inquirer:de,ioredis:le,jest:me,jimp:pe,joi:ue,jsdom:he,jsonwebtoken:ve,koa:be,lodash:je,lucia:ke,luxon:fe,micromatch:ge,minimatch:ye,mocha:xe,moment:we,mongoose:qe,morgan:$e,multer:_e,mysql2:ze,next:Te,"node-fetch":["node-fecth","node-fethc","node.fetch"],nodemailer:Se,nodemon:De,ora:Me,parcel:Ae,passport:Re,phaser:Be,pino:Ce,playwright:Ee,postcss:Le,prettier:Oe,prisma:Fe,puppeteer:Ie,ramda:Pe,react:Ue,"react-dom":["eact-dom","eract-dom","r3act-dom","ract-dom","raect-dom","re4ct-dom","reaact-dom","reac-dom","reac7-dom","reacct-dom","react-bom","react-d0m","react-ddom","react-dm","react-dmo","react-do","react-domm","react-don","react-doom","react-odm","react-om","react.dom","reactdom","reactt-dom","reat-dom","reatc-dom","recat-dom","rect-dom","reeact-dom","rreact-dom"],redis:We,resend:Ve,rollup:Xe,sass:Je,semver:Ye,sequelize:Ge,sharp:He,"socket.io":["ocket.io","oscket.io","scket.io","scoket.io","soccket.io","socekt.io","socet.io","sock3t.io","socke.io","socke7.io","sockeet.io","socket.1o","socket.i","socket.iio","socket.ioo","socket.lo","socket.o","socket.oi","sockett.io","sockket.io","sockt.io","sockte.io","sokcet.io","soket.io","soocket.io","ssocket.io"],stripe:Ke,supabase:Qe,svelte:Ze,tailwindcss:Ne,tauri:eo,three:oo,"ts-node":["tts-node"],tsx:so,typescript:ro,underscore:to,uuid:ao,vite:co,vitest:no,vue:io,webpack:lo,winston:mo,yup:po,zod:uo};var h,f;function vo(){return f||(f=1,h={"@tanstack/start":["start-tanstack-app","tanstack","tanstack-app","tanstack-start"]}),h}var bo=vo();const jo=M(bo),ko={a:["4","e"],b:["d"],d:["b"],e:["3","a"],g:["9","q"],i:["1","l"],l:["1","i"],m:["n"],n:["m"],o:["0"],s:["5","z"],t:["7"],u:["v"],v:["u"]},fo=["app","cli","core","kit","lib","pkg","sdk"],go=e=>{const o=new Set;if(e.length<3)return o;for(let s=0;s<e.length;s++){const a=e[s],c=a==="-"||a==="."||a==="_";if(c||o.add(e.slice(0,s)+e.slice(s+1)),c||o.add(e.slice(0,s)+a+e.slice(s)),s<e.length-1&&e[s]!==e[s+1]){const u=e[s+1]==="-"||e[s+1]==="."||e[s+1]==="_";if(!c&&!u){const d=[...e];[d[s],d[s+1]]=[d[s+1],d[s]],o.add(d.join(""))}}const n=e[s].toLowerCase(),b=ko[n];if(b)for(const u of b)o.add(e.slice(0,s)+u+e.slice(s+1))}const r=/[-._]/g;if(r.test(e))o.add(e.replaceAll(r,"")),o.add(e.replaceAll(r,"-")),o.add(e.replaceAll(r,".")),o.add(e.replaceAll(r,"_"));else if(e.length>5)for(let s=2;s<e.length-2;s++)o.add(`${e.slice(0,s)}-${e.slice(s)}`),o.add(`${e.slice(0,s)}.${e.slice(s)}`),o.add(`${e.slice(0,s)}_${e.slice(s)}`);if(e.startsWith("@")||(o.add(`${e}-js`),o.add(`${e}js`),o.add(`${e}-node`)),e.startsWith("@")){const s=e.indexOf("/");if(s>1&&s<e.length-1){const a=e.slice(1,s),c=e.slice(s+1);a.length>=3&&o.add(a);for(const n of["","-",".","_"])o.add(`${a}${n}${c}`),o.add(`${c}${n}${a}`);for(const n of fo)o.add(`${a}-${n}`),o.add(`${c}-${a}-${n}`),o.add(`${n}-${a}-${c}`)}}return o.delete(e),o};let v,p,m;const y=()=>{if(!v){const e={};for(const o of[ho,jo])for(const[r,t]of Object.entries(o)){const s=e[r]??(e[r]=[]);for(const a of t)s.includes(a)||s.push(a)}v=e}return v},yo=()=>{if(!p){p=new Map;for(const[e,o]of Object.entries(y()))for(const r of o)p.set(r,e)}return p},xo=()=>{if(!m){m=new Map;for(const e of Object.keys(y()))for(const o of go(e))m.has(o)||m.set(o,e)}return m},wo=e=>e.startsWith("@")?e.split("/")[1]??e:e,qo=e=>{const o=wo(e),r=yo().get(o);if(r)return{input:e,legitimate:r,method:"blocklist"};const t=xo().get(o);if(t)return{input:e,legitimate:t,method:"heuristic"}},x=(e,o)=>{const r=o?new Set(o):void 0,t=[];for(const s of e){if(r?.has(s))continue;const a=qo(s);a&&t.push(a)}return t},w=(e,o)=>{i.warn(""),i.warn(j(`Possible typosquat${e.length===1?"":"s"} ${o}:`));for(const r of e){const t=r.method==="blocklist"?"known typosquat":"similar name";i.warn(` ${k("⚠")} ${j(r.input)} — did you mean ${k(r.legitimate)}? (${t})`)}i.warn("")},q=async e=>{if(!process.stdin.isTTY){i.warn("Aborting: potential typosquat detected in non-interactive mode. Use --no-typosquat-check to skip.");return}const o=S({input:process.stdin,output:process.stdout}),r=await new Promise(t=>{o.question(e,s=>{t(s.trim().toLowerCase())})});return o.close(),r},Co=async(e,o)=>{if(g("typosquats"))return{ok:!0,packages:e};const r=x(e,o);if(r.length===0)return{ok:!0,packages:e};w(r,"detected");const t=await q(`Use suggested package${r.length===1?"":"s"} instead? [S]uggested / [y]es, keep original / [N]o, abort (default: N) `);if(t===void 0)return{ok:!1,packages:e};if(t==="s"||t==="suggested"){const s=new Map(r.map(c=>[c.input,c.legitimate]));return{ok:!0,packages:e.map(c=>s.get(c)??c)}}return t==="y"||t==="yes"?{ok:!0,packages:e}:{ok:!1,packages:e}},$o=/^(?:npm|pnpm|yarn):(.+?)(?:@.*)?$/,_o=e=>$o.exec(e)?.[1],zo=e=>{if(!A(e))return[];const o=R(e),r={...o.dependencies,...o.devDependencies,...o.optionalDependencies,...o.peerDependencies},t=new Set;for(const[s,a]of Object.entries(r)){t.add(s);const c=_o(a);c&&t.add(c)}return[...t]},Eo=async(e,o)=>{if(g("typosquats"))return!0;const r=D(e,"package.json"),t=zo(r);if(t.length===0)return!0;const s=x(t,o);if(s.length===0)return!0;w(s,"in package.json dependencies"),i.warn("Fix the package name in package.json before proceeding.");const a=await q("Continue anyway? [y/N] ");return a==="y"||a==="yes"};export{Co as r,Eo as s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createRequire as y}from"node:module";import{e as o,
|
|
1
|
+
import{createRequire as y}from"node:module";import{e as o,a as f}from"./index-BdMIfGVZ.js";import{l as b}from"../packem_chunks/ts-loader.js";import{y as a}from"./isAccessibleSync-DYKTrrvc-BwaMhQs0.js";let u;const h=c=>(u??=y(import.meta.url))(c),p=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,m=c=>{if(typeof p<"u"&&p.versions&&p.versions.node){const[t,e]=p.versions.node.split(".").map(Number);if(t>22||t===22&&e>=3||t===20&&e>=16)return p.getBuiltinModule(c)}return h(c)},{readdirSync:j}=m("node:fs"),v=[".husky/pre-commit",".vis/hooks/pre-commit",".git/hooks/pre-commit"],_=[".secretlintrc",".secretlintrc.json",".secretlintrc.js",".secretlintrc.mjs",".secretlintrc.cjs",".secretlintrc.yml",".secretlintrc.yaml"],$=[".syncpackrc",".syncpackrc.json",".syncpackrc.yaml",".syncpackrc.yml",".syncpackrc.cjs",".syncpackrc.js",".syncpackrc.mjs",".syncpackrc.ts","syncpack.config.cjs","syncpack.config.js","syncpack.config.mjs","syncpack.config.ts"],w=c=>{const t=o(c,"package.json");if(!a(t))return[];let e;try{e=JSON.parse(f(t))}catch{return[]}const n=[];if(e.scripts)for(const[s,i]of Object.entries(e.scripts))typeof i=="string"&&(/\bgitleaks\b/.test(i)&&n.push({detail:`Script "${s}" still invokes gitleaks: ${i}`,kind:"script",location:"package.json",tool:"gitleaks"}),/\bsecretlint\b/.test(i)&&n.push({detail:`Script "${s}" still invokes secretlint: ${i}`,kind:"script",location:"package.json",tool:"secretlint"}),/\bsyncpack\b/.test(i)&&n.push({detail:`Script "${s}" still invokes syncpack: ${i}`,kind:"script",location:"package.json",tool:"syncpack"}),/\bsherif\b/.test(i)&&n.push({detail:`Script "${s}" still invokes sherif: ${i}`,kind:"script",location:"package.json",tool:"sherif"}));if(e.devDependencies)for(const s of Object.keys(e.devDependencies))(s==="gitleaks"||s==="@gitleaks/cli")&&n.push({detail:`devDependency \`${s}\` is still installed`,kind:"devDep",location:"package.json",tool:"gitleaks"}),(s==="secretlint"||s.startsWith("@secretlint/"))&&n.push({detail:`devDependency \`${s}\` is still installed`,kind:"devDep",location:"package.json",tool:"secretlint"}),s==="syncpack"&&n.push({detail:`devDependency \`${s}\` is still installed`,kind:"devDep",location:"package.json",tool:"syncpack"}),s==="sherif"&&n.push({detail:`devDependency \`${s}\` is still installed`,kind:"devDep",location:"package.json",tool:"sherif"});return e.sherif&&n.push({detail:"`sherif` config block still present in package.json",kind:"config",location:"package.json",tool:"sherif"}),n},C=c=>{const t=[];for(const e of v){const n=o(c,e);if(!a(n))continue;const s=f(n);/\bgitleaks\b/.test(s)&&t.push({detail:"gitleaks invocation still present in hook",kind:"hook",location:e,tool:"gitleaks"}),/\bsecretlint\b/.test(s)&&t.push({detail:"secretlint invocation still present in hook",kind:"hook",location:e,tool:"secretlint"}),/\bsyncpack\b/.test(s)&&t.push({detail:"syncpack invocation still present in hook",kind:"hook",location:e,tool:"syncpack"}),/\bsherif\b/.test(s)&&t.push({detail:"sherif invocation still present in hook",kind:"hook",location:e,tool:"sherif"})}return t},D=c=>{const t=[];for(const e of _)a(o(c,e))&&t.push({detail:"secretlint config should be removed after migration",kind:"config",location:e,tool:"secretlint"});for(const e of $)a(o(c,e))&&t.push({detail:"syncpack config should be removed after migration",kind:"config",location:e,tool:"syncpack"});return t},S=[".github/workflows",".gitlab-ci.yml",".circleci/config.yml",".woodpecker.yml",".drone.yml"],I=c=>{const t=[],e=n=>{const s=o(c,n);if(!a(s))return;const i=f(s);/\bsyncpack\b/.test(i)&&t.push({detail:"syncpack invocation still present in CI",kind:"ci",location:n,tool:"syncpack"}),/\bsherif\b/.test(i)&&t.push({detail:"sherif invocation still present in CI",kind:"ci",location:n,tool:"sherif"})};for(const n of S){const s=o(c,n);if(a(s)){if(n===".github/workflows"){try{for(const i of j(s))(i.endsWith(".yml")||i.endsWith(".yaml"))&&e(`.github/workflows/${i}`)}catch{}continue}e(n)}}return t},N=c=>{const t=[],e=o(c,"pnpm-workspace.yaml");if(a(e)){let s;try{s=b(e)}catch{s=void 0}if(s&&typeof s=="object"){const i=s.catalog;i&&typeof i.syncpack=="string"&&t.push({detail:"`syncpack` still listed in pnpm-workspace.yaml#catalog",kind:"catalog",location:"pnpm-workspace.yaml",tool:"syncpack"});const l=s.catalogs;if(l&&typeof l=="object")for(const[k,r]of Object.entries(l))r&&typeof r.syncpack=="string"&&t.push({detail:`\`syncpack\` still listed in pnpm-workspace.yaml#catalogs.${k}`,kind:"catalog",location:"pnpm-workspace.yaml",tool:"syncpack"})}}const n=o(c,"package.json");if(a(n)){let s;try{s=JSON.parse(f(n))}catch{return t}const i=s.workspaces;if(i&&typeof i=="object"&&!Array.isArray(i)){const k=i.catalog;k&&typeof k.syncpack=="string"&&t.push({detail:"`syncpack` still listed in package.json#workspaces.catalog",kind:"catalog",location:"package.json",tool:"syncpack"});const r=i.catalogs;if(r&&typeof r=="object")for(const[g,d]of Object.entries(r))d&&typeof d.syncpack=="string"&&t.push({detail:`\`syncpack\` still listed in package.json#workspaces.catalogs.${g}`,kind:"catalog",location:"package.json",tool:"syncpack"})}const l=s.catalog;l&&typeof l.syncpack=="string"&&t.push({detail:"`syncpack` still listed in package.json#catalog",kind:"catalog",location:"package.json",tool:"syncpack"})}return t},O=c=>[...w(c),...C(c),...D(c),...I(c),...N(c)],F=(c,t)=>{const e=O(c);if(e.length===0)return t.info("✓ No unmigrated gitleaks/secretlint/sherif/syncpack references found."),[];t.warn(`Found ${String(e.length)} unmigrated reference(s):`);for(const n of e)t.warn(` [${n.kind}] ${n.location} — ${n.detail}`);return e};export{O as s,F as v};
|