@visulima/vis 4.1.19 → 4.2.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 +33 -0
- package/LICENSE.md +804 -360
- package/dist/bin.js +1 -1
- package/dist/binx.js +1 -1
- package/dist/config/index.d.ts +21 -0
- package/dist/packem_chunks/CONFIG_FILES.js +3 -3
- package/dist/packem_chunks/bloom-status.js +1 -1
- package/dist/packem_chunks/bloom-sync.js +1 -1
- package/dist/packem_chunks/catalog.js +49 -51
- package/dist/packem_chunks/cli-exec.js +1 -1
- package/dist/packem_chunks/cli-main.js +138 -138
- package/dist/packem_chunks/dispatch.js +1 -1
- package/dist/packem_chunks/fix.js +8 -8
- package/dist/packem_chunks/handler.js +1 -1
- package/dist/packem_chunks/handler10.js +3 -3
- package/dist/packem_chunks/handler11.js +1 -1
- package/dist/packem_chunks/handler12.js +2 -2
- 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 +1 -1
- package/dist/packem_chunks/handler23.js +1 -1
- package/dist/packem_chunks/handler24.js +1 -1
- package/dist/packem_chunks/handler26.js +1 -1
- 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 +2 -2
- package/dist/packem_chunks/handler30.js +1 -1
- package/dist/packem_chunks/handler5.js +1 -1
- package/dist/packem_chunks/handler51.js +1 -1
- package/dist/packem_chunks/handler52.js +3 -3
- package/dist/packem_chunks/handler53.js +1 -1
- package/dist/packem_chunks/handler54.js +2 -2
- package/dist/packem_chunks/handler55.js +1 -1
- package/dist/packem_chunks/handler58.js +2 -2
- package/dist/packem_chunks/handler59.js +1 -1
- package/dist/packem_chunks/handler6.js +1 -1
- package/dist/packem_chunks/handler60.js +8 -8
- package/dist/packem_chunks/handler61.js +1 -1
- package/dist/packem_chunks/handler62.js +16 -16
- package/dist/packem_chunks/handler63.js +2 -2
- package/dist/packem_chunks/handler64.js +1 -1
- package/dist/packem_chunks/handler65.js +3 -3
- package/dist/packem_chunks/handler66.js +2 -2
- package/dist/packem_chunks/handler67.js +3 -3
- package/dist/packem_chunks/handler68.js +2 -2
- package/dist/packem_chunks/handler69.js +3 -3
- package/dist/packem_chunks/handler7.js +1 -1
- package/dist/packem_chunks/handler70.js +3 -3
- package/dist/packem_chunks/handler71.js +2 -2
- package/dist/packem_chunks/handler72.js +2 -2
- package/dist/packem_chunks/handler73.js +2 -2
- package/dist/packem_chunks/handler74.js +1 -1
- package/dist/packem_chunks/handler75.js +18 -18
- package/dist/packem_chunks/handler76.js +3 -3
- package/dist/packem_chunks/handler77.js +2 -2
- package/dist/packem_chunks/handler78.js +64 -64
- 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 +7 -7
- package/dist/packem_chunks/index5.js +2 -2
- package/dist/packem_chunks/index6.js +7 -8
- package/dist/packem_chunks/keys-refresh.js +1 -1
- package/dist/packem_chunks/lean.js +1 -1
- package/dist/packem_chunks/list.js +2 -2
- package/dist/packem_chunks/loader.js +1 -1
- package/dist/packem_chunks/prune.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/tripwire.js +2 -2
- package/dist/packem_chunks/ts-loader.js +5 -5
- package/dist/packem_chunks/verify-lockfile.js +2 -2
- package/dist/packem_shared/{Table-DyORjLji-CC9cYgCG.js → Table-BB8xHTU5-BLPS917D.js} +8 -8
- package/dist/packem_shared/{advisories-0ScpWAHV.js → advisories-BSpzRIXP.js} +1 -1
- package/dist/packem_shared/affected-selection-M7riOi5-.js +1 -0
- package/dist/packem_shared/{affected-shas-Dd0P7fGD.js → affected-shas-CAwpSPmP.js} +1 -1
- package/dist/packem_shared/{ai-fix-CyUx_ZAB.js → ai-fix-BTm1Z5og.js} +1 -1
- package/dist/packem_shared/{augment-COAiXSIx.js → augment-CBv1hwMR.js} +1 -1
- package/dist/packem_shared/{bin-x7RPlduv.js → bin-Cbs_ix6l.js} +1 -1
- package/dist/packem_shared/build-scripts-BIgkWVgY.js +1 -0
- package/dist/packem_shared/{command-runtime-CiLVo4ED.js → command-runtime-BD-4UmPB.js} +1 -1
- package/dist/packem_shared/{cyclonedx-CX2fFvDi.js → cyclonedx-CT1rtKxV.js} +3 -3
- package/dist/packem_shared/dependency-scan-W9b2X0a1.js +1 -0
- package/dist/packem_shared/{docker-Dy-X_BuM.js → docker-1jgKW5Wd.js} +3 -3
- package/dist/packem_shared/failure-log-B91LvYWw.js +2 -0
- package/dist/packem_shared/formatBytes-BHAzNIrn-CLYsxlUj.js +4 -0
- package/dist/packem_shared/glob-Cyk1H9ZL-Dxlf9Swz.js +1 -0
- package/dist/packem_shared/{index-DHD8wb6Z.js → index-CVBR-Kit.js} +5 -5
- package/dist/packem_shared/{index-Chv2RJRN.js → index-Cq-J2MdB.js} +1 -1
- package/dist/packem_shared/index-onibYJkv.js +1 -0
- package/dist/packem_shared/{isAccessibleSync-DYKTrrvc-CSnBISfV.js → isAccessibleSync-DYKTrrvc-K2xhg6sV.js} +1 -1
- package/dist/packem_shared/lifecycle-DDJzp-4H.js +2 -0
- package/dist/packem_shared/lockfile-Bi1mw9jJ.js +1 -0
- package/dist/packem_shared/manifests-D671Sb1T.js +1 -0
- package/dist/packem_shared/{min-release-age-ChzTC7_I.js → min-release-age-Da4V046o.js} +7 -7
- package/dist/packem_shared/missing-package-json-CMoHdvmj.js +1 -0
- package/dist/packem_shared/{native-config-sync-BSzU4qUO.js → native-config-sync-CEB0rWlk.js} +2 -2
- package/dist/packem_shared/{osv-bloom-JYIWcH3F.js → osv-bloom-BRacgzs7.js} +1 -1
- package/dist/packem_shared/{package-version-ZC59HAtH.js → package-version-C5EPMgRw.js} +2 -2
- package/dist/packem_shared/packument-DuEV-qSE.js +1 -0
- package/dist/packem_shared/path-CxEa27Rz-pjheKk6v.js +1 -0
- package/dist/packem_shared/pm-runner-9L6ocnu2.js +1 -0
- package/dist/packem_shared/{project-name-filter-BmszI2_J.js → project-name-filter-zrdrEQbu.js} +1 -1
- package/dist/packem_shared/{provenance-w-NIPtim.js → provenance-CFPT_FQA.js} +1 -1
- package/dist/packem_shared/readJsonSync-CbryXYxN-BxKjDZnF.js +1 -0
- package/dist/packem_shared/registry-keys-C3EsP_s4.js +1 -0
- package/dist/packem_shared/{resolve-explicit-CsTmALmE.js → resolve-explicit-opfIkxoY.js} +1 -1
- package/dist/packem_shared/resolve-runtime-lJ5L9gU4.js +1 -0
- package/dist/packem_shared/run-file-DZff6GqY.js +1 -0
- package/dist/packem_shared/runtime-check-DAbveBr_.js +1 -0
- package/dist/packem_shared/s1ngularity-DTvrfWIM.js +1 -0
- package/dist/packem_shared/{scan-progress-DRIGQRMr.js → scan-progress-BGB9hIrD.js} +2 -2
- package/dist/packem_shared/{selectors-B7lSFz7l.js → selectors-CjIZ3gy2.js} +1 -1
- package/dist/packem_shared/{signatures-ijwqxAtF.js → signatures-DpqZVmmU.js} +1 -1
- package/dist/packem_shared/spinner-BVCEMm3G.js +1 -0
- package/dist/packem_shared/{tabs-UDYQ3tqt.js → tabs-Dz6xVpfX.js} +1 -1
- package/dist/packem_shared/{target-merge-B4No-LHM.js → target-merge-hsawesT4.js} +1 -1
- package/dist/packem_shared/target-options-Bxb0Y5qa.js +1 -0
- package/dist/packem_shared/toolchain-887JoquG.js +5 -0
- package/dist/packem_shared/typosquats-Xv6dN4sr.js +1 -0
- package/dist/packem_shared/verify-BLoaI7En.js +1 -0
- package/dist/packem_shared/{vis-update-app-DNeU8RBQ.js → vis-update-app-D9KWJ9Ir.js} +1 -1
- package/dist/packem_shared/{vis-user-error-DFPJeiL5.js → vis-user-error-Bdg9NRuJ.js} +7 -7
- package/dist/packem_shared/watch-BTZw2Y8Q.js +1 -0
- package/dist/packem_shared/watch-loop-Cjh2wlUl.js +11 -0
- package/dist/packem_shared/{writeFileSync-DJoHk3Ks-CgQ-VNNT.js → writeFileSync-DJoHk3Ks-O9zOKqeM.js} +1 -1
- package/dist/runtime/preload.js +1 -1
- package/index.js +52 -52
- package/package.json +12 -12
- package/schemas/vis-config.schema.json +14 -0
- package/dist/packem_shared/affected-selection-BXrRytsU.js +0 -1
- package/dist/packem_shared/build-scripts-pdVmqXRm.js +0 -1
- package/dist/packem_shared/dependency-scan-DBH2Qo4I.js +0 -1
- package/dist/packem_shared/failure-log-DE_MJCzB.js +0 -2
- package/dist/packem_shared/formatBytes-BHAzNIrn-Bkk_uRS-.js +0 -4
- package/dist/packem_shared/glob-Cyk1H9ZL-ox19CSsT.js +0 -1
- package/dist/packem_shared/index-CIIKPX4H.js +0 -1
- package/dist/packem_shared/lifecycle-DW8KRF5d.js +0 -2
- package/dist/packem_shared/lockfile-DVFySxTS.js +0 -1
- package/dist/packem_shared/manifests-BNSmpPF_.js +0 -1
- package/dist/packem_shared/missing-package-json-C0keIt78.js +0 -1
- package/dist/packem_shared/packument-CHdDsn0O.js +0 -1
- package/dist/packem_shared/pm-runner-d93_73O6.js +0 -1
- package/dist/packem_shared/readJsonSync-CbryXYxN-B2aSeDpC.js +0 -1
- package/dist/packem_shared/registry-keys-_IKDLSbu.js +0 -1
- package/dist/packem_shared/resolve-runtime-C7NBCA1C.js +0 -1
- package/dist/packem_shared/run-file-jMngGQhs.js +0 -1
- package/dist/packem_shared/runtime-check-BklgEMkC.js +0 -1
- package/dist/packem_shared/s1ngularity-BRk_GMUj.js +0 -1
- package/dist/packem_shared/spinner-BM_0Bj6x.js +0 -1
- package/dist/packem_shared/target-options-d_rIrLyq.js +0 -1
- package/dist/packem_shared/toolchain-DY11tPCw.js +0 -5
- package/dist/packem_shared/typosquats-CSkIFgF5.js +0 -1
- package/dist/packem_shared/verify-D8wYvB85.js +0 -1
- package/dist/packem_shared/watch-Dswvj6Zp.js +0 -1
- package/dist/packem_shared/watch-loop-COWvvSbR.js +0 -11
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import{createRequire as Zt}from"node:module";let Qt;const Xt=t=>(Qt??=Zt(import.meta.url))(t),D=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,ti=t=>{if(typeof D<"u"&&D.versions&&D.versions.node){const[i,e]=D.versions.node.split(".").map(Number);if(i>22||i===22&&e>=3||i===20&&e>=16)return D.getBuiltinModule(t)}return Xt(t)},{createRequire:ii}=ti("node:module");let ei;const oi=t=>(ei??=ii(import.meta.url))(t),P=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:J,pt=t=>{if(typeof P<"u"&&P.versions&&P.versions.node){const[i,e]=P.versions.node.split(".").map(Number);if(i>22||i===22&&e>=3||i===20&&e>=16)return P.getBuiltinModule(t)}return oi(t)},J=P,{execFileSync:ri}=pt("node:child_process"),Y=pt("node:fs"),ni=pt("node:tty"),si=[161,161,164,164,167,168,170,170,173,174,176,180,182,186,188,191,198,198,208,208,215,216,222,225,230,230,232,234,236,237,240,240,242,243,247,250,252,252,254,254,257,257,273,273,275,275,283,283,294,295,299,299,305,307,312,312,319,322,324,324,328,331,333,333,338,339,358,359,363,363,462,462,464,464,466,466,468,468,470,470,472,472,474,474,476,476,593,593,609,609,708,708,711,711,713,715,717,717,720,720,728,731,733,733,735,735,768,879,913,929,931,937,945,961,963,969,1025,1025,1040,1103,1105,1105,8208,8208,8211,8214,8216,8217,8220,8221,8224,8226,8228,8231,8240,8240,8242,8243,8245,8245,8251,8251,8254,8254,8308,8308,8319,8319,8321,8324,8364,8364,8451,8451,8453,8453,8457,8457,8467,8467,8470,8470,8481,8482,8486,8486,8491,8491,8531,8532,8539,8542,8544,8555,8560,8569,8585,8585,8592,8601,8632,8633,8658,8658,8660,8660,8679,8679,8704,8704,8706,8707,8711,8712,8715,8715,8719,8719,8721,8721,8725,8725,8730,8730,8733,8736,8739,8739,8741,8741,8743,8748,8750,8750,8756,8759,8764,8765,8776,8776,8780,8780,8786,8786,8800,8801,8804,8807,8810,8811,8814,8815,8834,8835,8838,8839,8853,8853,8857,8857,8869,8869,8895,8895,8978,8978,9312,9449,9451,9547,9552,9587,9600,9615,9618,9621,9632,9633,9635,9641,9650,9651,9654,9655,9660,9661,9664,9665,9670,9672,9675,9675,9678,9681,9698,9701,9711,9711,9733,9734,9737,9737,9742,9743,9756,9756,9758,9758,9792,9792,9794,9794,9824,9825,9827,9829,9831,9834,9836,9837,9839,9839,9886,9887,9919,9919,9926,9933,9935,9939,9941,9953,9955,9955,9960,9961,9963,9969,9972,9972,9974,9977,9979,9980,9982,9983,10045,10045,10102,10111,11094,11097,12872,12879,57344,63743,65024,65039,65533,65533,127232,127242,127248,127277,127280,127337,127344,127373,127375,127376,127387,127404,917760,917999,983040,1048573,1048576,1114109],hi=12288,ai=65510,ci=[12288,12288,65281,65376,65504,65510],li=8361,di=65518,ui=[8361,8361,65377,65470,65474,65479,65482,65487,65490,65495,65498,65500,65512,65518],fi=32,mi=10630,wi=[32,126,162,163,165,166,172,172,175,175,10214,10221,10629,10630],pi=4352,gi=262141,Tt=[4352,4447,8986,8987,9001,9002,9193,9196,9200,9200,9203,9203,9725,9726,9748,9749,9776,9783,9800,9811,9855,9855,9866,9871,9875,9875,9889,9889,9898,9899,9917,9918,9924,9925,9934,9934,9940,9940,9962,9962,9970,9971,9973,9973,9978,9978,9981,9981,9989,9989,9994,9995,10024,10024,10060,10060,10062,10062,10067,10069,10071,10071,10133,10135,10160,10160,10175,10175,11035,11036,11088,11088,11093,11093,11904,11929,11931,12019,12032,12245,12272,12287,12289,12350,12353,12438,12441,12543,12549,12591,12593,12686,12688,12773,12783,12830,12832,12871,12880,42124,42128,42182,43360,43388,44032,55203,63744,64255,65040,65049,65072,65106,65108,65126,65128,65131,94176,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,119552,119638,119648,119670,126980,126980,127183,127183,127374,127374,127377,127386,127488,127490,127504,127547,127552,127560,127568,127569,127584,127589,127744,127776,127789,127797,127799,127868,127870,127891,127904,127946,127951,127955,127968,127984,127988,127988,127992,128062,128064,128064,128066,128252,128255,128317,128331,128334,128336,128359,128378,128378,128405,128406,128420,128420,128507,128591,128640,128709,128716,128716,128720,128722,128725,128728,128732,128735,128747,128748,128756,128764,128992,129003,129008,129008,129292,129338,129340,129349,129351,129535,129648,129660,129664,129674,129678,129734,129736,129736,129741,129756,129759,129770,129775,129784,131072,196605,196608,262141],U=(t,i)=>{let e=0,o=Math.floor(t.length/2)-1;for(;e<=o;){const h=Math.floor((e+o)/2),s=h*2;if(i<t[s])o=h-1;else if(i>t[s+1])e=h+1;else return!0}return!1},bt=19968,[bi,xi]=yi(Tt);function yi(t){let i=t[0],e=t[1];for(let o=0;o<t.length;o+=2){const h=t[o],s=t[o+1];if(bt>=h&&bt<=s)return[h,s];s-h>e-i&&(i=h,e=s)}return[i,e]}const Wi=t=>t<161||t>1114109?!1:U(si,t),Bi=t=>t<hi||t>ai?!1:U(ci,t),vi=t=>t<li||t>di?!1:U(ui,t),Ri=t=>t<fi||t>mi?!1:U(wi,t),Si=t=>t>=bi&&t<=xi?!0:t<pi||t>gi?!1:U(Tt,t);function Ai(t){return Wi(t)?"ambiguous":Bi(t)?"fullwidth":vi(t)?"halfwidth":Ri(t)?"narrow":Si(t)?"wide":"neutral"}function Ci(t){if(!Number.isSafeInteger(t))throw new TypeError(`Expected a code point, got \`${typeof t}\`.`)}function Ot(t){return Ci(t),Ai(t)}const _t=String.raw,xt=_t`\p{Emoji}(?:\p{EMod}|[\u{E0020}-\u{E007E}]+\u{E007F}|\uFE0F?\u20E3?)`,Ii=()=>new RegExp(_t`\p{RI}{2}|(?)${xt}(?:\u200D${xt})*`,"gu"),q=new Set(["\x1B",""]),lt="\x07",$t="[",gt="m",K="]8;;",Mi=39,Ei=/[\u200B\uFEFF\u2060-\u2064]/g,ki=new RegExp(`(?:\\${$t}(?<code>\\d+)m|\\${K}(?<uri>.*)${lt})`),ji=Object.freeze(new Map([[0,0],[1,22],[2,22],[3,23],[4,24],[7,27],[8,28],[9,29],[30,39],[31,39],[32,39],[33,39],[34,39],[35,39],[36,39],[37,39],[40,49],[41,49],[42,49],[43,49],[44,49],[45,49],[46,49],[47,49],[90,39]])),ht=/[\u001B\u009B](?:[[()#;?]{0,10}(?:\d{1,4}(?:;\d{0,4})*)?[0-9A-ORZcf-nqry=><]|\]8;;[^\u0007\u001B]{0,100}(?:\u0007|\u001B\\))/g,yt=/\u001B\[[\d;]*m[^\u001B]*(?:\u001B\[[\d;]*m|$)/g,Wt=/\u001B\]8;[^\u0007\u001B]*(?:\u0007|\u001B\\)[^\u001B]*\u001B\]8;;(?:\u0007|\u001B\\)/g,Z=/[\u0000-\u0008\n-\u001F\u007F-\u009F]{1,1000}/y,Ni=Ii(),Bt=new Map,Li=t=>[t.ambiguousIsNarrow?1:0,t.control,t.fullWidth,t.regular,t.wide].join("|"),Fi=t=>{const i=Li(t.width);let e=Bt.get(i);return e||(e=new Map,Bt.set(i,e)),e},Q=new RegExp(ht.source,"y"),dt=new RegExp(Ni.source,"uy"),X=/(?:[\u0020-\u007E\u00A0-\u00FF](?!\uFE0F)){1,1000}/y,Ht=t=>t>=32&&t<=126?"latin":t===8203||t===8204||t===8205||t===8288?"zero":t<=31||t>=127&&t<=159?"control":t>=160&&t<=255||t>=9472&&t<=9599?"latin":t>=4352&&t<=4607||t>=11904&&t<=40959||t>=44032&&t<=55215||t>=63744&&t<=64255||t>=65280&&t<=65519&&!(t>=65377&&t<=65439)||t>=12352&&t<=12543?"wide":t===8230?"latin":"other",Ji=(t,i)=>{const e=Fi(i),o=Math.floor(t/65536),h=t%65536;let s=e.get(o);if(s||(s=new Map,e.set(o,s)),s.has(h))return s.get(h);let r;switch(Ht(t)){case"control":{r=i.width.control;break}case"latin":{r=i.width.regular;break}case"wide":{r=i.width.wide;break}case"zero":{r=0;break}default:switch(Ot(t)){case"ambiguous":{r=i.width.ambiguousIsNarrow?i.width.regular:i.width.wide;break}case"fullwidth":{r=i.width.fullWidth;break}case"wide":{r=i.width.wide;break}default:r=i.width.regular}}return s.set(h,r),r},Ti=t=>t>=768&&t<=879||t>=6832&&t<=6911||t>=7616&&t<=7679||t>=8400&&t<=8447||t>=65056&&t<=65071||t>=917760&&t<=917999||t>=65024&&t<=65039||t>=3633&&t<=3642||t>=3655&&t<=3662||t>=3761&&t<=3769||t>=3771&&t<=3772||t>=3784&&t<=3789||t>=2304&&t<=2307||t>=2362&&t<=2383||t>=2385&&t<=2391||t>=2402&&t<=2403||t>=2433&&t<=2435||t>=2492&&t<=2500||t>=2509&&t<=2509||t>=2561&&t<=2563||t>=2620&&t<=2637||t>=1611&&t<=1631||t>=1648&&t<=1648||t>=1750&&t<=1773||t>=2276&&t<=2302||t>=1425&&t<=1469||t>=1471&&t<=1471||t>=1473&&t<=1474||t>=1476&&t<=1477||t>=1479&&t<=1479||t>=3893&&t<=3893||t>=3895&&t<=3895||t>=3897&&t<=3897||t>=3953&&t<=3966||t>=3968&&t<=3972||t>=3974&&t<=3975?!0:t>=768&&t<=777||t>=803&&t<=803,V=(t,i={})=>{if(!t||t.length===0)return{ellipsed:!1,index:0,truncated:!1,width:0};const e={truncation:{countAnsiEscapeCodes:i.countAnsiEscapeCodes??!1,ellipsis:i.ellipsis??"",ellipsisWidth:i.ellipsisWidth??(i.ellipsis?V(i.ellipsis,{...i,ellipsis:"",ellipsisWidth:0,limit:Number.POSITIVE_INFINITY}).width:0),limit:i.limit??Number.POSITIVE_INFINITY},width:{ambiguousIsNarrow:i.ambiguousIsNarrow??!1,ansi:i.ansiWidth??0,control:i.controlWidth??0,emoji:i.emojiWidth??2,fullWidth:i.fullWidth??2,halfWidth:i.halfWidth??1,regular:i.regularWidth??1,tab:i.tabWidth??8,wide:i.wideWidth??2}},o=Math.max(0,e.truncation.limit-e.truncation.ellipsisWidth),{length:h}=t,s=h>1e4;let r=0,n=0,a=h,c=!1;const l=t.includes("\x1B")||t.includes("");for(;r<h;){if(l&&(t[r]==="\x1B"||t[r]==="")){if(t.startsWith("\x1B]8;;",r)){const g="\x1B]8;;\x07",f=g.length,b=t.indexOf("\x07",r+5);if(b!==-1){const W=t.indexOf(g,b+1);if(W!==-1){const x=W+f,y=t.slice(b+1,W).replace(ht,""),R=V(y,{ambiguousIsNarrow:e.width.ambiguousIsNarrow,ansiWidth:e.width.ansi,controlWidth:e.width.control,countAnsiEscapeCodes:!1,ellipsis:e.truncation.ellipsis,ellipsisWidth:e.truncation.ellipsisWidth,emojiWidth:e.width.emoji,fullWidth:e.width.fullWidth,halfWidth:e.width.halfWidth,limit:Math.max(0,o-n),regularWidth:e.width.regular,tabWidth:e.width.tab,wideWidth:e.width.wide}),A=R.width;if(R.truncated)c=!0,a=Math.min(a,r);else if(n+A>o&&(a=Math.min(a,r),c=!0,n+A>e.truncation.limit))break;if(n+=A,r=x,c&&n>=e.truncation.limit)break;continue}}}if(Q.lastIndex=r,Q.test(t)){const g=Q.lastIndex-r,f=e.truncation.countAnsiEscapeCodes?g:e.width.ansi;if(n+f>o&&(a=Math.min(a,r),n+f>e.truncation.limit)){c=!0;break}n+=f,r=Q.lastIndex;continue}}const u=t.codePointAt(r);if(u===8203||u===65279||u>=8288&&u<=8292){r+=1;continue}if(u===9){if(n+e.width.tab>o&&(a=Math.min(a,r),n+e.width.tab>e.truncation.limit)){c=!0;break}n+=e.width.tab,r+=1;continue}if(X.lastIndex=r,X.test(t)){const g=(X.lastIndex-r)*e.width.regular;if(n+g>o){const f=e.width.regular>0?Math.floor((o-n)/e.width.regular):0;if(a=Math.min(a,r+f),n+g>e.truncation.limit){c=!0;break}}n+=g,r=X.lastIndex;continue}if((u<=31||u>=127&&u<=159)&&(Z.lastIndex=r,Z.test(t))){const g=(Z.lastIndex-r)*e.width.control;if(n+g>o){const f=e.width.control>0?Math.floor((o-n)/e.width.control):0;if(a=Math.min(a,r+f),n+g>e.truncation.limit){c=!0;break}}n+=g,r=Z.lastIndex;continue}if(dt.lastIndex=r,dt.test(t)){if(n+e.width.emoji>o&&(a=Math.min(a,r),n+e.width.emoji>e.truncation.limit)){c=!0;break}n+=e.width.emoji,r=dt.lastIndex;continue}const w=t.codePointAt(r)??0;if(Ti(w)){r+=w>65535?2:1;continue}let p;if(s)p=Ji(w,e);else switch(Ht(w)){case"control":{p=e.width.control;break}case"latin":{p=e.width.regular;break}case"wide":{p=e.width.wide;break}case"zero":{p=0;break}default:switch(Ot(w)){case"ambiguous":{p=e.width.ambiguousIsNarrow?e.width.regular:e.width.wide;break}case"fullwidth":{p=e.width.fullWidth;break}case"wide":{p=e.width.wide;break}default:p=e.width.regular}}if(n+p>o&&(a=Math.min(a,r),n+p>e.truncation.limit)){c=!0;break}n+=p,r+=w>65535?2:1}let d=n,m=!1;return c&&e.truncation.limit>=e.truncation.ellipsisWidth&&(d=e.truncation.limit,m=!0),{ellipsed:m,index:c?a:h,truncated:c,width:d}},M=(t,i={})=>V(t,{...i,ellipsis:"",ellipsisWidth:0,limit:Number.POSITIVE_INFINITY}).width;class Oi{capacity;cache;constructor(i){this.capacity=i,this.cache=new Map}get(i){if(!this.cache.has(i))return;const e=this.cache.get(i);return this.cache.delete(i),this.cache.set(i,e),e}has(i){return this.cache.has(i)}set(i,e){if(this.cache.has(i))this.cache.delete(i);else if(this.cache.size>=this.capacity){const o=this.cache.keys().next().value;o!==void 0&&this.cache.delete(o)}this.cache.set(i,e)}delete(i){this.cache.delete(i)}clear(){this.cache.clear()}size(){return this.cache.size}}const vt=new Oi(100),_i=new Intl.Segmenter("en",{granularity:"grapheme"}),$i=/^[\u0000-\u007F]*$/,Hi=new Set(["0","22","23","24","27","28","29","39","49"]),Gi=new Set(["1","3","4","7","8","9"]),Rt=new Map([["22","1"],["23","3"],["24","4"],["27","7"],["28","8"],["29","9"]]),tt=t=>t>="30"&&t<="37"||t>="90"&&t<="97"||t.startsWith("38;"),it=t=>t>="40"&&t<="47"||t>="100"&&t<="107"||t.startsWith("48;"),Pi=[{close:"\x1B[22m",open:"\x1B[1m"},{close:"\x1B[23m",open:"\x1B[3m"},{close:"\x1B[24m",open:"\x1B[4m"},{close:"\x1B[27m",open:"\x1B[7m"},{close:"\x1B[28m",open:"\x1B[8m"},{close:"\x1B[29m",open:"\x1B[9m"}],St=(t,i)=>{let e=-1;for(const o of i){const h=t.indexOf(o);h!==-1&&(e===-1||h<e)&&(e=h)}return e},Vi=(t,i)=>{if(!t.includes("\x1B"))return[{after:"",before:"",content:t,visibleLength:M(t,i.width)}];const e=`${JSON.stringify(i.width??void 0)}\0${t}`,o=vt.get(e);if(o)return o;const h=[],s=[];let r=0,n;for(ht.lastIndex=0;(n=ht.exec(t))!==null;){const d=n[0];h.push(t.slice(r,n.index)),s.push(d),r=n.index+d.length}r<t.length&&h.push(t.slice(r));const a=[];for(const d of s){if(d==="\x1B[0m"||d==="\x1B]8;;\x07"){a.push(d);continue}if(d.startsWith("\x1B[")&&d.endsWith("m")){const m=d.slice(2,-1);if(Hi.has(m)){a.push(d);continue}}}const c=new Set,l=[];for(const[d,m]of h.entries()){if(d>0&&s[d-1]){const p=s[d-1];if(p==="\x1B[0m")c.clear();else if(p==="\x1B]8;;\x07"){for(const g of c)if(g.startsWith("\x1B]8;;")&&!g.endsWith("\x1B]8;;\x07")){c.delete(g);break}}else if(p.startsWith("\x1B[")&&p.endsWith("m")){const g=p.slice(2,-1);if(g==="39"){for(const f of c)if(f.startsWith("\x1B[")&&f.endsWith("m")){const b=f.slice(2,-1);if(tt(b)){c.delete(f);break}}}else if(g==="49"){for(const f of c)if(f.startsWith("\x1B[")&&f.endsWith("m")){const b=f.slice(2,-1);if(it(b)){c.delete(f);break}}}else if(Rt.has(g)){const f=Rt.get(g);for(const b of c)if(b===`\x1B[${f}m`){c.delete(b);break}}else{if(tt(g)){for(const f of c)if(f.startsWith("\x1B[")&&f.endsWith("m")){const b=f.slice(2,-1);if(tt(b)){c.delete(f);break}}}else if(it(g)){for(const f of c)if(f.startsWith("\x1B[")&&f.endsWith("m")){const b=f.slice(2,-1);if(it(b)){c.delete(f);break}}}else if(Gi.has(g)){const f=`\x1B[${g}m`;c.has(f)&&c.delete(f)}c.add(p)}}else if(p.startsWith("\x1B]8;;")&&!p.endsWith("\x1B]8;;\x07")){for(const g of c)if(g.startsWith("\x1B]8;;")&&!g.endsWith("\x1B]8;;\x07")){c.delete(g);break}c.add(p)}}if(m==="")continue;let u="";if(c.size>0)if(a.includes("\x1B[0m"))u="\x1B[0m";else{const p=[];let g=!1;for(const x of c)if(x.startsWith("\x1B]8;;")&&!x.endsWith("\x1B]8;;\x07")){g=!0;break}g&&a.includes("\x1B]8;;\x07")&&p.push("\x1B]8;;\x07");let f=!1,b=!1;for(const x of c)if(x.startsWith("\x1B[")&&x.endsWith("m")){const y=x.slice(2,-1);tt(y)?f=!0:it(y)&&(b=!0)}if(f&&b){const x=St(t,["\x1B[3","\x1B[9","\x1B[38;"]),y=St(t,["\x1B[4","\x1B[10","\x1B[48;"]);x>=0&&y>=0?x>y?p.push("\x1B[39m","\x1B[49m"):p.push("\x1B[49m","\x1B[39m"):p.push("\x1B[39m","\x1B[49m")}else f&&p.push("\x1B[39m"),b&&p.push("\x1B[49m");f&&b&&t.includes("\x1B[39m")&&t.includes("\x1B[49m")&&(t.indexOf("\x1B[39m")<t.indexOf("\x1B[49m")?(p.length-=2,p.push("\x1B[39m","\x1B[49m")):t.indexOf("\x1B[49m")<t.indexOf("\x1B[39m")&&(p.length-=2,p.push("\x1B[49m","\x1B[39m")));const W=Pi.filter(x=>c.has(x.open)).map(x=>({position:t.indexOf(x.open),style:x})).filter(x=>x.position>=0).toSorted((x,y)=>y.position-x.position);for(const x of W){const y=x;a.includes(y.style.close)&&p.push(y.style.close)}u=p.join("")}const w=[...c].join("");l.push({after:u,before:w,content:m,visibleLength:M(m,i.width)})}return vt.set(e,l),l},At=(t,i,e,o)=>{const h=[...o.segmenter.segment(t)],s=[];let r=0,n=!1;for(const a of h){const c=M(a.segment,o.width),l=r,d=r+c;if(!n)if(l<i){r=d;continue}else n=!0;if(l>=e||d>e)break;s.push(a.segment),r=d}return s.join("")},F=(t,i=0,e=Number.MAX_SAFE_INTEGER,o={})=>{const h={segmenter:_i,...o};if(i>=e||t==="")return"";const s=M(t,h.width);if(i===0&&e>=s)return t;if(i<0||e<0)throw new RangeError("Negative indices aren't supported");if(!t.includes("\x1B"))return $i.test(t)?t.slice(i,e):At(t,i,e,h);if(yt.lastIndex=0,Wt.lastIndex=0,!yt.test(t)&&!Wt.test(t))return t;const r=Vi(t,h);if(r.length===0)return"";let n=0;const a=[];for(const[d,m]of r.entries()){const u=n,w=n+m.visibleLength;if(w>i&&u<e){const p=Math.max(0,i-u),g=Math.min(m.visibleLength,e-u);a.push({end:g,index:d,segment:m,start:p})}n=w}if(a.length===0)return"";const c=[],l=a[0].segment;c.push(l.before);for(let d=0;d<a.length;d++){const{end:m,segment:u,start:w}=a[d];if(w===0&&m===u.visibleLength?c.push(u.content):c.push(At(u.content,w,m,h)),d<a.length-1){const p=a[d+1].segment,g=u.after,f=p.before;g!==f&&(g||f)&&c.push(g,f)}}return c.push(a.at(-1).segment.after),c.join("")},Ct="…",qi=3,et=(t,i,e=!1)=>{if(t.charAt(i)===" ")return i;const o=e?1:-1,h=Math.min(qi,e?t.length-i:i);for(let s=1;s<=h;s++){const r=i+s*o;if(t.charAt(r)===" ")return r}return i},ot=(t,i,e)=>V(t,{...e,ellipsis:"",ellipsisWidth:0,limit:i}).index,rt=(t,i,e)=>M(t.slice(0,i),e),It=(t,i,e={})=>{if(typeof t!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof t}`);if(typeof i!="number")throw new TypeError(`Expected \`limit\` to be a number, got ${typeof i}`);if(t===""||i<=0)return"";const o=t.normalize("NFC"),{ellipsis:h=Ct,position:s="end",preferTruncationOnSpace:r=!1}=e;let n=e.ellipsisWidth??(h===Ct?1:void 0);n??=V(h,{...e.width,ellipsis:"",ellipsisWidth:0,limit:Number.POSITIVE_INFINITY}).width;const{width:a}=V(o,{...e.width,ellipsis:h,ellipsisWidth:n});if(a<=i)return o;switch(s){case"end":{if(r){const c=i-n,l=ot(o,c,e.width),d=et(o,l),m=rt(o,d,e.width);return F(o,0,m,{width:e.width})+h}return F(o,0,i-n,{width:e.width})+h}case"middle":{const c=Math.floor(i/2),l=Math.max(0,i-n),d=Math.min(c,l),m=Math.max(0,l-d);if(r){const u=ot(o,d,e.width),w=et(o,u),p=rt(o,w,e.width),g=a-m,f=ot(o,g,e.width),b=et(o,f,!0),W=rt(o,b,e.width);return F(o,0,p,{width:e.width})+h+F(o,W,a,{width:e.width}).trim()}return F(o,0,d,{width:e.width})+h+F(o,a-m,a,{width:e.width})}case"start":{if(r){const c=a-i+n,l=ot(o,c,e.width),d=et(o,l,!0),m=rt(o,d,e.width);return h+F(o,m,a,{width:e.width}).trim()}return h+F(o,a-i+n,a,{width:e.width})}default:throw new Error(`Invalid position: expected 'start', 'middle' or 'end', got '${s}'`)}},zi=/\x1B\[(\d+)m/;class Gt{activeForeground=void 0;activeBackground=void 0;activeFormatting=[];processEscape(i){const e=zi.exec(i);if(!e)return;const o=Number.parseInt(e[1],10);switch(o){case 0:{this.activeForeground=void 0,this.activeBackground=void 0,this.activeFormatting=[];break}case 39:{this.activeForeground=void 0;break}case 49:{this.activeBackground=void 0;break}default:if(o>=30&&o<=37||o>=90&&o<=97)this.activeForeground=i;else if(o>=40&&o<=47||o>=100&&o<=107)this.activeBackground=i;else if([1,2,3,4,7,8,9].includes(o))this.activeFormatting.push(i);else if([22,23,24,27,28,29].includes(o)){const h={22:"[1m",23:"[3m",24:"[4m",27:"[7m",28:"[8m",29:"[9m"}[o];h&&(this.activeFormatting=this.activeFormatting.filter(s=>!s.includes(h)))}}}getStartEscapesForAllActiveAttributes(){return[this.activeBackground,this.activeForeground,...this.activeFormatting].filter(Boolean).join("")}getEndEscapesForAllActiveAttributes(){const i=[];if(this.activeFormatting.length>0){const e={"\x1B[1m":"\x1B[22m","\x1B[2m":"\x1B[22m","\x1B[3m":"\x1B[23m","\x1B[4m":"\x1B[24m","\x1B[7m":"\x1B[27m","\x1B[8m":"\x1B[28m","\x1B[9m":"\x1B[29m"};[...this.activeFormatting].toReversed().forEach(o=>{const h=e[o];h&&i.push(h)})}return this.activeForeground&&i.push("\x1B[39m"),this.activeBackground&&i.push("\x1B[49m"),i.join("")}}const Di=(t,i)=>{if(!q.has(t[i]))return{isInsideEscape:!1,isInsideLinkEscape:!1};const e=!0,o=t.slice(i+1,i+1+K.length).join("")===K;return{isInsideEscape:e,isInsideLinkEscape:o}},Yi=(t,i={})=>{const e=new Gt;let o="",h=!1,s="",r="",n=!1;const a=[...t];for(let c=0;c<a.length;c++){const l=a[c];if(l&&q.has(l)){if(o){const p=i.getWidth?.(o)??0,g={isEscapeSequence:!1,isGrapheme:!0,text:o,width:p};if(n&&(g.isHyperlink=!0,g.hyperlinkUrl=r),i.onSegment?.(g,e)===!1)return;o=""}h=!0,s=l;const u=Di(a,c),{isInsideLinkEscape:w}=u;if(w){let p=c+1;for(r="";p<a.length;){const f=a[p];if(f===lt)break;r+=f,p+=1}r=r.slice(4);const g={hyperlinkUrl:r,isEscapeSequence:!0,isGrapheme:!1,isHyperlink:!0,isHyperlinkStart:!0,width:0};if(i.onSegment?.(g,e)===!1)return;c=p,n=!0,h=!1,s="";continue}if(c+1<a.length&&a[c+1]==="\\"&&n){const p={isEscapeSequence:!0,isGrapheme:!1,isHyperlink:!0,isHyperlinkEnd:!0,width:0};if(i.onSegment?.(p,e)===!1)return;n=!1,r="",c+=1,h=!1,s="";continue}}if(h){if(s!==l&&(s+=l),l===gt){h=!1,e.processEscape(s);const u={isEscapeSequence:!0,isGrapheme:!1,text:s,width:0};if(i.onSegment?.(u,e)===!1)return;s=""}continue}o+=l;const d=i.getWidth?.(o)??0,m={isEscapeSequence:!1,isGrapheme:!0,text:o,width:d};if(n&&(m.isHyperlink=!0,m.hyperlinkUrl=r),i.onSegment?.(m,e)===!1)return;o=""}if(o){const c=i.getWidth?.(o)??0,l={isEscapeSequence:!1,isGrapheme:!0,text:o,width:c};n&&(l.isHyperlink=!0,l.hyperlinkUrl=r),i.onSegment?.(l,e)}if(s){const c={isEscapeSequence:!0,isGrapheme:!1,text:s,width:0};i.onSegment?.(c,e)}},Mt=t=>`${q.values().next().value}${$t}${String(t)}${gt}`,Et=t=>`${q.values().next().value}${K}${t}${lt}`,Ki=t=>{if(t.length===0)return"";if(t.length===1)return t[0];let i="",e,o;const h=t.join(`
|
|
2
|
-
`),
|
|
1
|
+
import{createRequire as Zt}from"node:module";let Qt;const Xt=t=>(Qt??=Zt(import.meta.url))(t),D=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,ti=t=>{if(typeof D<"u"&&D.versions&&D.versions.node){const[i,e]=D.versions.node.split(".").map(Number);if(i>22||i===22&&e>=3||i===20&&e>=16)return D.getBuiltinModule(t)}return Xt(t)},{createRequire:ii}=ti("node:module");let ei;const oi=t=>(ei??=ii(import.meta.url))(t),P=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:J,pt=t=>{if(typeof P<"u"&&P.versions&&P.versions.node){const[i,e]=P.versions.node.split(".").map(Number);if(i>22||i===22&&e>=3||i===20&&e>=16)return P.getBuiltinModule(t)}return oi(t)},J=P,{execFileSync:ri}=pt("node:child_process"),Y=pt("node:fs"),si=pt("node:tty"),ni=[161,161,164,164,167,168,170,170,173,174,176,180,182,186,188,191,198,198,208,208,215,216,222,225,230,230,232,234,236,237,240,240,242,243,247,250,252,252,254,254,257,257,273,273,275,275,283,283,294,295,299,299,305,307,312,312,319,322,324,324,328,331,333,333,338,339,358,359,363,363,462,462,464,464,466,466,468,468,470,470,472,472,474,474,476,476,593,593,609,609,708,708,711,711,713,715,717,717,720,720,728,731,733,733,735,735,768,879,913,929,931,937,945,961,963,969,1025,1025,1040,1103,1105,1105,8208,8208,8211,8214,8216,8217,8220,8221,8224,8226,8228,8231,8240,8240,8242,8243,8245,8245,8251,8251,8254,8254,8308,8308,8319,8319,8321,8324,8364,8364,8451,8451,8453,8453,8457,8457,8467,8467,8470,8470,8481,8482,8486,8486,8491,8491,8531,8532,8539,8542,8544,8555,8560,8569,8585,8585,8592,8601,8632,8633,8658,8658,8660,8660,8679,8679,8704,8704,8706,8707,8711,8712,8715,8715,8719,8719,8721,8721,8725,8725,8730,8730,8733,8736,8739,8739,8741,8741,8743,8748,8750,8750,8756,8759,8764,8765,8776,8776,8780,8780,8786,8786,8800,8801,8804,8807,8810,8811,8814,8815,8834,8835,8838,8839,8853,8853,8857,8857,8869,8869,8895,8895,8978,8978,9312,9449,9451,9547,9552,9587,9600,9615,9618,9621,9632,9633,9635,9641,9650,9651,9654,9655,9660,9661,9664,9665,9670,9672,9675,9675,9678,9681,9698,9701,9711,9711,9733,9734,9737,9737,9742,9743,9756,9756,9758,9758,9792,9792,9794,9794,9824,9825,9827,9829,9831,9834,9836,9837,9839,9839,9886,9887,9919,9919,9926,9933,9935,9939,9941,9953,9955,9955,9960,9961,9963,9969,9972,9972,9974,9977,9979,9980,9982,9983,10045,10045,10102,10111,11094,11097,12872,12879,57344,63743,65024,65039,65533,65533,127232,127242,127248,127277,127280,127337,127344,127373,127375,127376,127387,127404,917760,917999,983040,1048573,1048576,1114109],hi=12288,ai=65510,ci=[12288,12288,65281,65376,65504,65510],li=8361,di=65518,ui=[8361,8361,65377,65470,65474,65479,65482,65487,65490,65495,65498,65500,65512,65518],fi=32,mi=10630,wi=[32,126,162,163,165,166,172,172,175,175,10214,10221,10629,10630],pi=4352,gi=262141,Tt=[4352,4447,8986,8987,9001,9002,9193,9196,9200,9200,9203,9203,9725,9726,9748,9749,9776,9783,9800,9811,9855,9855,9866,9871,9875,9875,9889,9889,9898,9899,9917,9918,9924,9925,9934,9934,9940,9940,9962,9962,9970,9971,9973,9973,9978,9978,9981,9981,9989,9989,9994,9995,10024,10024,10060,10060,10062,10062,10067,10069,10071,10071,10133,10135,10160,10160,10175,10175,11035,11036,11088,11088,11093,11093,11904,11929,11931,12019,12032,12245,12272,12287,12289,12350,12353,12438,12441,12543,12549,12591,12593,12686,12688,12773,12783,12830,12832,12871,12880,42124,42128,42182,43360,43388,44032,55203,63744,64255,65040,65049,65072,65106,65108,65126,65128,65131,94176,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,119552,119638,119648,119670,126980,126980,127183,127183,127374,127374,127377,127386,127488,127490,127504,127547,127552,127560,127568,127569,127584,127589,127744,127776,127789,127797,127799,127868,127870,127891,127904,127946,127951,127955,127968,127984,127988,127988,127992,128062,128064,128064,128066,128252,128255,128317,128331,128334,128336,128359,128378,128378,128405,128406,128420,128420,128507,128591,128640,128709,128716,128716,128720,128722,128725,128728,128732,128735,128747,128748,128756,128764,128992,129003,129008,129008,129292,129338,129340,129349,129351,129535,129648,129660,129664,129674,129678,129734,129736,129736,129741,129756,129759,129770,129775,129784,131072,196605,196608,262141],U=(t,i)=>{let e=0,o=Math.floor(t.length/2)-1;for(;e<=o;){const h=Math.floor((e+o)/2),n=h*2;if(i<t[n])o=h-1;else if(i>t[n+1])e=h+1;else return!0}return!1},bt=19968,[bi,xi]=yi(Tt);function yi(t){let i=t[0],e=t[1];for(let o=0;o<t.length;o+=2){const h=t[o],n=t[o+1];if(bt>=h&&bt<=n)return[h,n];n-h>e-i&&(i=h,e=n)}return[i,e]}const Wi=t=>t<161||t>1114109?!1:U(ni,t),Bi=t=>t<hi||t>ai?!1:U(ci,t),vi=t=>t<li||t>di?!1:U(ui,t),Ri=t=>t<fi||t>mi?!1:U(wi,t),Si=t=>t>=bi&&t<=xi?!0:t<pi||t>gi?!1:U(Tt,t);function Ai(t){return Wi(t)?"ambiguous":Bi(t)?"fullwidth":vi(t)?"halfwidth":Ri(t)?"narrow":Si(t)?"wide":"neutral"}function Ci(t){if(!Number.isSafeInteger(t))throw new TypeError(`Expected a code point, got \`${typeof t}\`.`)}function Ot(t){return Ci(t),Ai(t)}const $t=String.raw,xt=$t`\p{Emoji}(?:\p{EMod}|[\u{E0020}-\u{E007E}]+\u{E007F}|\uFE0F?\u20E3?)`,Ii=()=>new RegExp($t`\p{RI}{2}|(?)${xt}(?:\u200D${xt})*`,"gu"),q=new Set(["\x1B",""]),lt="\x07",_t="[",gt="m",K="]8;;",Mi=39,Ei=/[\u200B\uFEFF\u2060-\u2064]/g,ki=new RegExp(`(?:\\${_t}(?<code>\\d+)m|\\${K}(?<uri>.*)${lt})`),ji=Object.freeze(new Map([[0,0],[1,22],[2,22],[3,23],[4,24],[7,27],[8,28],[9,29],[30,39],[31,39],[32,39],[33,39],[34,39],[35,39],[36,39],[37,39],[40,49],[41,49],[42,49],[43,49],[44,49],[45,49],[46,49],[47,49],[90,39]])),ht=/[\u001B\u009B](?:[[()#;?]{0,10}(?:\d{1,4}(?:;\d{0,4})*)?[0-9A-ORZcf-nqry=><]|\]8;;[^\u0007\u001B]{0,100}(?:\u0007|\u001B\\))/g,yt=/\u001B\[[\d;]*m[^\u001B]*(?:\u001B\[[\d;]*m|$)/g,Wt=/\u001B\]8;[^\u0007\u001B]*(?:\u0007|\u001B\\)[^\u001B]*\u001B\]8;;(?:\u0007|\u001B\\)/g,Z=/[\u0000-\u0008\n-\u001F\u007F-\u009F]{1,1000}/y,Ni=Ii(),Bt=new Map,Li=t=>[t.ambiguousIsNarrow?1:0,t.control,t.fullWidth,t.regular,t.wide].join("|"),Fi=t=>{const i=Li(t.width);let e=Bt.get(i);return e||(e=new Map,Bt.set(i,e)),e},Q=new RegExp(ht.source,"y"),dt=new RegExp(Ni.source,"uy"),X=/(?:[\u0020-\u007E\u00A0-\u00FF](?!\uFE0F)){1,1000}/y,Ht=t=>t>=32&&t<=126?"latin":t===8203||t===8204||t===8205||t===8288?"zero":t<=31||t>=127&&t<=159?"control":t>=160&&t<=255||t>=9472&&t<=9599?"latin":t>=4352&&t<=4607||t>=11904&&t<=40959||t>=44032&&t<=55215||t>=63744&&t<=64255||t>=65280&&t<=65519&&!(t>=65377&&t<=65439)||t>=12352&&t<=12543?"wide":t===8230?"latin":"other",Ji=(t,i)=>{const e=Fi(i),o=Math.floor(t/65536),h=t%65536;let n=e.get(o);if(n||(n=new Map,e.set(o,n)),n.has(h))return n.get(h);let r;switch(Ht(t)){case"control":{r=i.width.control;break}case"latin":{r=i.width.regular;break}case"wide":{r=i.width.wide;break}case"zero":{r=0;break}default:switch(Ot(t)){case"ambiguous":{r=i.width.ambiguousIsNarrow?i.width.regular:i.width.wide;break}case"fullwidth":{r=i.width.fullWidth;break}case"wide":{r=i.width.wide;break}default:r=i.width.regular}}return n.set(h,r),r},Ti=t=>t>=768&&t<=879||t>=6832&&t<=6911||t>=7616&&t<=7679||t>=8400&&t<=8447||t>=65056&&t<=65071||t>=917760&&t<=917999||t>=65024&&t<=65039||t>=3633&&t<=3642||t>=3655&&t<=3662||t>=3761&&t<=3769||t>=3771&&t<=3772||t>=3784&&t<=3789||t>=2304&&t<=2307||t>=2362&&t<=2383||t>=2385&&t<=2391||t>=2402&&t<=2403||t>=2433&&t<=2435||t>=2492&&t<=2500||t>=2509&&t<=2509||t>=2561&&t<=2563||t>=2620&&t<=2637||t>=1611&&t<=1631||t>=1648&&t<=1648||t>=1750&&t<=1773||t>=2276&&t<=2302||t>=1425&&t<=1469||t>=1471&&t<=1471||t>=1473&&t<=1474||t>=1476&&t<=1477||t>=1479&&t<=1479||t>=3893&&t<=3893||t>=3895&&t<=3895||t>=3897&&t<=3897||t>=3953&&t<=3966||t>=3968&&t<=3972||t>=3974&&t<=3975?!0:t>=768&&t<=777||t>=803&&t<=803,V=(t,i={})=>{if(!t||t.length===0)return{ellipsed:!1,index:0,truncated:!1,width:0};const e={truncation:{countAnsiEscapeCodes:i.countAnsiEscapeCodes??!1,ellipsis:i.ellipsis??"",ellipsisWidth:i.ellipsisWidth??(i.ellipsis?V(i.ellipsis,{...i,ellipsis:"",ellipsisWidth:0,limit:Number.POSITIVE_INFINITY}).width:0),limit:i.limit??Number.POSITIVE_INFINITY},width:{ambiguousIsNarrow:i.ambiguousIsNarrow??!1,ansi:i.ansiWidth??0,control:i.controlWidth??0,emoji:i.emojiWidth??2,fullWidth:i.fullWidth??2,halfWidth:i.halfWidth??1,regular:i.regularWidth??1,tab:i.tabWidth??8,wide:i.wideWidth??2}},o=Math.max(0,e.truncation.limit-e.truncation.ellipsisWidth),{length:h}=t,n=h>1e4;let r=0,s=0,a=h,c=!1;const l=t.includes("\x1B")||t.includes("");for(;r<h;){if(l&&(t[r]==="\x1B"||t[r]==="")){if(t.startsWith("\x1B]8;;",r)){const g="\x1B]8;;\x07",f=g.length,b=t.indexOf("\x07",r+5);if(b!==-1){const W=t.indexOf(g,b+1);if(W!==-1){const x=W+f,y=t.slice(b+1,W).replace(ht,""),R=V(y,{ambiguousIsNarrow:e.width.ambiguousIsNarrow,ansiWidth:e.width.ansi,controlWidth:e.width.control,countAnsiEscapeCodes:!1,ellipsis:e.truncation.ellipsis,ellipsisWidth:e.truncation.ellipsisWidth,emojiWidth:e.width.emoji,fullWidth:e.width.fullWidth,halfWidth:e.width.halfWidth,limit:Math.max(0,o-s),regularWidth:e.width.regular,tabWidth:e.width.tab,wideWidth:e.width.wide}),A=R.width;if(R.truncated)c=!0,a=Math.min(a,r);else if(s+A>o&&(a=Math.min(a,r),c=!0,s+A>e.truncation.limit))break;if(s+=A,r=x,c&&s>=e.truncation.limit)break;continue}}}if(Q.lastIndex=r,Q.test(t)){const g=Q.lastIndex-r,f=e.truncation.countAnsiEscapeCodes?g:e.width.ansi;if(s+f>o&&(a=Math.min(a,r),s+f>e.truncation.limit)){c=!0;break}s+=f,r=Q.lastIndex;continue}}const u=t.codePointAt(r);if(u===8203||u===65279||u>=8288&&u<=8292){r+=1;continue}if(u===9){if(s+e.width.tab>o&&(a=Math.min(a,r),s+e.width.tab>e.truncation.limit)){c=!0;break}s+=e.width.tab,r+=1;continue}if(X.lastIndex=r,X.test(t)){const g=(X.lastIndex-r)*e.width.regular;if(s+g>o){const f=e.width.regular>0?Math.floor((o-s)/e.width.regular):0;if(a=Math.min(a,r+f),s+g>e.truncation.limit){c=!0;break}}s+=g,r=X.lastIndex;continue}if((u<=31||u>=127&&u<=159)&&(Z.lastIndex=r,Z.test(t))){const g=(Z.lastIndex-r)*e.width.control;if(s+g>o){const f=e.width.control>0?Math.floor((o-s)/e.width.control):0;if(a=Math.min(a,r+f),s+g>e.truncation.limit){c=!0;break}}s+=g,r=Z.lastIndex;continue}if(dt.lastIndex=r,dt.test(t)){if(s+e.width.emoji>o&&(a=Math.min(a,r),s+e.width.emoji>e.truncation.limit)){c=!0;break}s+=e.width.emoji,r=dt.lastIndex;continue}const w=t.codePointAt(r)??0;if(Ti(w)){r+=w>65535?2:1;continue}let p;if(n)p=Ji(w,e);else switch(Ht(w)){case"control":{p=e.width.control;break}case"latin":{p=e.width.regular;break}case"wide":{p=e.width.wide;break}case"zero":{p=0;break}default:switch(Ot(w)){case"ambiguous":{p=e.width.ambiguousIsNarrow?e.width.regular:e.width.wide;break}case"fullwidth":{p=e.width.fullWidth;break}case"wide":{p=e.width.wide;break}default:p=e.width.regular}}if(s+p>o&&(a=Math.min(a,r),s+p>e.truncation.limit)){c=!0;break}s+=p,r+=w>65535?2:1}let d=s,m=!1;return c&&e.truncation.limit>=e.truncation.ellipsisWidth&&(d=e.truncation.limit,m=!0),{ellipsed:m,index:c?a:h,truncated:c,width:d}},M=(t,i={})=>V(t,{...i,ellipsis:"",ellipsisWidth:0,limit:Number.POSITIVE_INFINITY}).width;class Oi{capacity;cache;constructor(i){this.capacity=i,this.cache=new Map}get(i){if(!this.cache.has(i))return;const e=this.cache.get(i);return this.cache.delete(i),this.cache.set(i,e),e}has(i){return this.cache.has(i)}set(i,e){if(this.cache.has(i))this.cache.delete(i);else if(this.cache.size>=this.capacity){const o=this.cache.keys().next().value;o!==void 0&&this.cache.delete(o)}this.cache.set(i,e)}delete(i){this.cache.delete(i)}clear(){this.cache.clear()}size(){return this.cache.size}}const vt=new Oi(100),$i=new Intl.Segmenter("en",{granularity:"grapheme"}),_i=/^[\u0000-\u007F]*$/,Hi=new Set(["0","22","23","24","27","28","29","39","49"]),Gi=new Set(["1","3","4","7","8","9"]),Rt=new Map([["22","1"],["23","3"],["24","4"],["27","7"],["28","8"],["29","9"]]),tt=t=>t>="30"&&t<="37"||t>="90"&&t<="97"||t.startsWith("38;"),it=t=>t>="40"&&t<="47"||t>="100"&&t<="107"||t.startsWith("48;"),Pi=[{close:"\x1B[22m",open:"\x1B[1m"},{close:"\x1B[23m",open:"\x1B[3m"},{close:"\x1B[24m",open:"\x1B[4m"},{close:"\x1B[27m",open:"\x1B[7m"},{close:"\x1B[28m",open:"\x1B[8m"},{close:"\x1B[29m",open:"\x1B[9m"}],St=(t,i)=>{let e=-1;for(const o of i){const h=t.indexOf(o);h!==-1&&(e===-1||h<e)&&(e=h)}return e},Vi=(t,i)=>{if(!t.includes("\x1B"))return[{after:"",before:"",content:t,visibleLength:M(t,i.width)}];const e=`${JSON.stringify(i.width??void 0)}\0${t}`,o=vt.get(e);if(o)return o;const h=[],n=[];let r=0,s;for(ht.lastIndex=0;(s=ht.exec(t))!==null;){const d=s[0];h.push(t.slice(r,s.index)),n.push(d),r=s.index+d.length}r<t.length&&h.push(t.slice(r));const a=[];for(const d of n){if(d==="\x1B[0m"||d==="\x1B]8;;\x07"){a.push(d);continue}if(d.startsWith("\x1B[")&&d.endsWith("m")){const m=d.slice(2,-1);if(Hi.has(m)){a.push(d);continue}}}const c=new Set,l=[];for(const[d,m]of h.entries()){if(d>0&&n[d-1]){const p=n[d-1];if(p==="\x1B[0m")c.clear();else if(p==="\x1B]8;;\x07"){for(const g of c)if(g.startsWith("\x1B]8;;")&&!g.endsWith("\x1B]8;;\x07")){c.delete(g);break}}else if(p.startsWith("\x1B[")&&p.endsWith("m")){const g=p.slice(2,-1);if(g==="39"){for(const f of c)if(f.startsWith("\x1B[")&&f.endsWith("m")){const b=f.slice(2,-1);if(tt(b)){c.delete(f);break}}}else if(g==="49"){for(const f of c)if(f.startsWith("\x1B[")&&f.endsWith("m")){const b=f.slice(2,-1);if(it(b)){c.delete(f);break}}}else if(Rt.has(g)){const f=Rt.get(g);for(const b of c)if(b===`\x1B[${f}m`){c.delete(b);break}}else{if(tt(g)){for(const f of c)if(f.startsWith("\x1B[")&&f.endsWith("m")){const b=f.slice(2,-1);if(tt(b)){c.delete(f);break}}}else if(it(g)){for(const f of c)if(f.startsWith("\x1B[")&&f.endsWith("m")){const b=f.slice(2,-1);if(it(b)){c.delete(f);break}}}else if(Gi.has(g)){const f=`\x1B[${g}m`;c.has(f)&&c.delete(f)}c.add(p)}}else if(p.startsWith("\x1B]8;;")&&!p.endsWith("\x1B]8;;\x07")){for(const g of c)if(g.startsWith("\x1B]8;;")&&!g.endsWith("\x1B]8;;\x07")){c.delete(g);break}c.add(p)}}if(m==="")continue;let u="";if(c.size>0)if(a.includes("\x1B[0m"))u="\x1B[0m";else{const p=[];let g=!1;for(const x of c)if(x.startsWith("\x1B]8;;")&&!x.endsWith("\x1B]8;;\x07")){g=!0;break}g&&a.includes("\x1B]8;;\x07")&&p.push("\x1B]8;;\x07");let f=!1,b=!1;for(const x of c)if(x.startsWith("\x1B[")&&x.endsWith("m")){const y=x.slice(2,-1);tt(y)?f=!0:it(y)&&(b=!0)}if(f&&b){const x=St(t,["\x1B[3","\x1B[9","\x1B[38;"]),y=St(t,["\x1B[4","\x1B[10","\x1B[48;"]);x>=0&&y>=0?x>y?p.push("\x1B[39m","\x1B[49m"):p.push("\x1B[49m","\x1B[39m"):p.push("\x1B[39m","\x1B[49m")}else f&&p.push("\x1B[39m"),b&&p.push("\x1B[49m");f&&b&&t.includes("\x1B[39m")&&t.includes("\x1B[49m")&&(t.indexOf("\x1B[39m")<t.indexOf("\x1B[49m")?(p.length-=2,p.push("\x1B[39m","\x1B[49m")):t.indexOf("\x1B[49m")<t.indexOf("\x1B[39m")&&(p.length-=2,p.push("\x1B[49m","\x1B[39m")));const W=Pi.filter(x=>c.has(x.open)).map(x=>({position:t.indexOf(x.open),style:x})).filter(x=>x.position>=0).toSorted((x,y)=>y.position-x.position);for(const x of W){const y=x;a.includes(y.style.close)&&p.push(y.style.close)}u=p.join("")}const w=[...c].join("");l.push({after:u,before:w,content:m,visibleLength:M(m,i.width)})}return vt.set(e,l),l},At=(t,i,e,o)=>{const h=[...o.segmenter.segment(t)],n=[];let r=0,s=!1;for(const a of h){const c=M(a.segment,o.width),l=r,d=r+c;if(!s)if(l<i){r=d;continue}else s=!0;if(l>=e||d>e)break;n.push(a.segment),r=d}return n.join("")},F=(t,i=0,e=Number.MAX_SAFE_INTEGER,o={})=>{const h={segmenter:$i,...o};if(i>=e||t==="")return"";const n=M(t,h.width);if(i===0&&e>=n)return t;if(i<0||e<0)throw new RangeError("Negative indices aren't supported");if(!t.includes("\x1B"))return _i.test(t)?t.slice(i,e):At(t,i,e,h);if(yt.lastIndex=0,Wt.lastIndex=0,!yt.test(t)&&!Wt.test(t))return t;const r=Vi(t,h);if(r.length===0)return"";let s=0;const a=[];for(const[d,m]of r.entries()){const u=s,w=s+m.visibleLength;if(w>i&&u<e){const p=Math.max(0,i-u),g=Math.min(m.visibleLength,e-u);a.push({end:g,index:d,segment:m,start:p})}s=w}if(a.length===0)return"";const c=[],l=a[0].segment;c.push(l.before);for(let d=0;d<a.length;d++){const{end:m,segment:u,start:w}=a[d];if(w===0&&m===u.visibleLength?c.push(u.content):c.push(At(u.content,w,m,h)),d<a.length-1){const p=a[d+1].segment,g=u.after,f=p.before;g!==f&&(g||f)&&c.push(g,f)}}return c.push(a.at(-1).segment.after),c.join("")},Ct="…",qi=3,et=(t,i,e=!1)=>{if(t.charAt(i)===" ")return i;const o=e?1:-1,h=Math.min(qi,e?t.length-i:i);for(let n=1;n<=h;n++){const r=i+n*o;if(t.charAt(r)===" ")return r}return i},ot=(t,i,e)=>V(t,{...e,ellipsis:"",ellipsisWidth:0,limit:i}).index,rt=(t,i,e)=>M(t.slice(0,i),e),It=(t,i,e={})=>{if(typeof t!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof t}`);if(typeof i!="number")throw new TypeError(`Expected \`limit\` to be a number, got ${typeof i}`);if(t===""||i<=0)return"";const o=t.normalize("NFC"),{ellipsis:h=Ct,position:n="end",preferTruncationOnSpace:r=!1}=e;let s=e.ellipsisWidth??(h===Ct?1:void 0);s??=V(h,{...e.width,ellipsis:"",ellipsisWidth:0,limit:Number.POSITIVE_INFINITY}).width;const{width:a}=V(o,{...e.width,ellipsis:h,ellipsisWidth:s});if(a<=i)return o;switch(n){case"end":{if(r){const c=i-s,l=ot(o,c,e.width),d=et(o,l),m=rt(o,d,e.width);return F(o,0,m,{width:e.width})+h}return F(o,0,i-s,{width:e.width})+h}case"middle":{const c=Math.floor(i/2),l=Math.max(0,i-s),d=Math.min(c,l),m=Math.max(0,l-d);if(r){const u=ot(o,d,e.width),w=et(o,u),p=rt(o,w,e.width),g=a-m,f=ot(o,g,e.width),b=et(o,f,!0),W=rt(o,b,e.width);return F(o,0,p,{width:e.width})+h+F(o,W,a,{width:e.width}).trim()}return F(o,0,d,{width:e.width})+h+F(o,a-m,a,{width:e.width})}case"start":{if(r){const c=a-i+s,l=ot(o,c,e.width),d=et(o,l,!0),m=rt(o,d,e.width);return h+F(o,m,a,{width:e.width}).trim()}return h+F(o,a-i+s,a,{width:e.width})}default:throw new Error(`Invalid position: expected 'start', 'middle' or 'end', got '${n}'`)}},zi=/\x1B\[(\d+)m/;class Gt{activeForeground=void 0;activeBackground=void 0;activeFormatting=[];processEscape(i){const e=zi.exec(i);if(!e)return;const o=Number.parseInt(e[1],10);switch(o){case 0:{this.activeForeground=void 0,this.activeBackground=void 0,this.activeFormatting=[];break}case 39:{this.activeForeground=void 0;break}case 49:{this.activeBackground=void 0;break}default:if(o>=30&&o<=37||o>=90&&o<=97)this.activeForeground=i;else if(o>=40&&o<=47||o>=100&&o<=107)this.activeBackground=i;else if([1,2,3,4,7,8,9].includes(o))this.activeFormatting.push(i);else if([22,23,24,27,28,29].includes(o)){const h={22:"[1m",23:"[3m",24:"[4m",27:"[7m",28:"[8m",29:"[9m"}[o];h&&(this.activeFormatting=this.activeFormatting.filter(n=>!n.includes(h)))}}}getStartEscapesForAllActiveAttributes(){return[this.activeBackground,this.activeForeground,...this.activeFormatting].filter(Boolean).join("")}getEndEscapesForAllActiveAttributes(){const i=[];if(this.activeFormatting.length>0){const e={"\x1B[1m":"\x1B[22m","\x1B[2m":"\x1B[22m","\x1B[3m":"\x1B[23m","\x1B[4m":"\x1B[24m","\x1B[7m":"\x1B[27m","\x1B[8m":"\x1B[28m","\x1B[9m":"\x1B[29m"};[...this.activeFormatting].toReversed().forEach(o=>{const h=e[o];h&&i.push(h)})}return this.activeForeground&&i.push("\x1B[39m"),this.activeBackground&&i.push("\x1B[49m"),i.join("")}}const Di=(t,i)=>{if(!q.has(t[i]))return{isInsideEscape:!1,isInsideLinkEscape:!1};const e=!0,o=t.slice(i+1,i+1+K.length).join("")===K;return{isInsideEscape:e,isInsideLinkEscape:o}},Yi=(t,i={})=>{const e=new Gt;let o="",h=!1,n="",r="",s=!1;const a=[...t];for(let c=0;c<a.length;c++){const l=a[c];if(l&&q.has(l)){if(o){const p=i.getWidth?.(o)??0,g={isEscapeSequence:!1,isGrapheme:!0,text:o,width:p};if(s&&(g.isHyperlink=!0,g.hyperlinkUrl=r),i.onSegment?.(g,e)===!1)return;o=""}h=!0,n=l;const u=Di(a,c),{isInsideLinkEscape:w}=u;if(w){let p=c+1;for(r="";p<a.length;){const f=a[p];if(f===lt)break;r+=f,p+=1}r=r.slice(4);const g={hyperlinkUrl:r,isEscapeSequence:!0,isGrapheme:!1,isHyperlink:!0,isHyperlinkStart:!0,width:0};if(i.onSegment?.(g,e)===!1)return;c=p,s=!0,h=!1,n="";continue}if(c+1<a.length&&a[c+1]==="\\"&&s){const p={isEscapeSequence:!0,isGrapheme:!1,isHyperlink:!0,isHyperlinkEnd:!0,width:0};if(i.onSegment?.(p,e)===!1)return;s=!1,r="",c+=1,h=!1,n="";continue}}if(h){if(n!==l&&(n+=l),l===gt){h=!1,e.processEscape(n);const u={isEscapeSequence:!0,isGrapheme:!1,text:n,width:0};if(i.onSegment?.(u,e)===!1)return;n=""}continue}o+=l;const d=i.getWidth?.(o)??0,m={isEscapeSequence:!1,isGrapheme:!0,text:o,width:d};if(s&&(m.isHyperlink=!0,m.hyperlinkUrl=r),i.onSegment?.(m,e)===!1)return;o=""}if(o){const c=i.getWidth?.(o)??0,l={isEscapeSequence:!1,isGrapheme:!0,text:o,width:c};s&&(l.isHyperlink=!0,l.hyperlinkUrl=r),i.onSegment?.(l,e)}if(n){const c={isEscapeSequence:!0,isGrapheme:!1,text:n,width:0};i.onSegment?.(c,e)}},Mt=t=>`${q.values().next().value}${_t}${String(t)}${gt}`,Et=t=>`${q.values().next().value}${K}${t}${lt}`,Ki=t=>{if(t.length===0)return"";if(t.length===1)return t[0];let i="",e,o;const h=t.join(`
|
|
2
|
+
`),n=[...h];let r=0;for(const[s,a]of n.entries()){if(i+=a,q.has(a)){const l=ki.exec(h.slice(r))?.groups??{};if(l.code!==void 0){const d=Number.parseFloat(l.code);e=d===Mi?void 0:d}else l.uri!==void 0&&(o=l.uri.length===0?void 0:l.uri)}const c=ji.get(Number(e));n[s+1]===`
|
|
3
3
|
`?(o&&(i+=Et("")),e&&c&&(i+=Mt(c))):a===`
|
|
4
|
-
`&&(e&&c&&(i+=Mt(e)),o&&(i+=Et(o))),r+=a.length}return i},Pt=/(?=\s)|(?<=\s)/,Vt=/^\s+$/,kt=new Map,Ui=t=>{const i=kt.get(t);if(i!==void 0)return i;const e=M(t);return kt.set(t,e),e},ut=t=>{if(!t.includes("\x1B"))return t;let i=t;return t.includes("\x1B[30m")&&(i+="\x1B[39m"),t.includes("\x1B[42m")&&(i+="\x1B[49m"),i},O=t=>{const i=t.split(" ");let e=i.length;for(;e>0&&M(i[e-1])===0;)e--;return e===i.length?t:i.slice(0,e).join(" ")+i.slice(e).join("")},qt=(t,i,e)=>{if(t.length===0)return[""];if(i<=0)return[t];const o=[],h=new Gt;let
|
|
4
|
+
`&&(e&&c&&(i+=Mt(e)),o&&(i+=Et(o))),r+=a.length}return i},Pt=/(?=\s)|(?<=\s)/,Vt=/^\s+$/,kt=new Map,Ui=t=>{const i=kt.get(t);if(i!==void 0)return i;const e=M(t);return kt.set(t,e),e},ut=t=>{if(!t.includes("\x1B"))return t;let i=t;return t.includes("\x1B[30m")&&(i+="\x1B[39m"),t.includes("\x1B[42m")&&(i+="\x1B[49m"),i},O=t=>{const i=t.split(" ");let e=i.length;for(;e>0&&M(i[e-1])===0;)e--;return e===i.length?t:i.slice(0,e).join(" ")+i.slice(e).join("")},qt=(t,i,e)=>{if(t.length===0)return[""];if(i<=0)return[t];const o=[],h=new Gt;let n="",r=0,s=!1,a=!1,c="",l=0;for(;l<t.length;){const d=t.codePointAt(l),m=String.fromCodePoint(d),u=m.length;if(q.has(m)){s=!0,c=m,n+=m,a=t.startsWith(K,l+1),l+=1;continue}if(s){c+=m,n+=m,a?m===lt&&(s=a=!1):m===gt&&(s=!1,h.processEscape(c)),l+=1;continue}const w=Ui(m),p=m===" ";if(w===0){n+=m,l+=u;continue}if(r+w>i&&(n&&o.push(n+h.getEndEscapesForAllActiveAttributes()),n=h.getStartEscapesForAllActiveAttributes(),r=M(n),p&&e)){for(;l<t.length&&t[l]===" ";)l+=1;continue}if(n+=m,r+=w,r===i&&l+u<t.length&&(o.push(n+h.getEndEscapesForAllActiveAttributes()),n=h.getStartEscapesForAllActiveAttributes(),r=M(n),l+u<t.length&&t[l+u]===" "&&e)){for(l+=u;l<t.length&&t[l]===" ";)l+=1;continue}l+=u}return n&&o.push(n+h.getEndEscapesForAllActiveAttributes()),e?o.map(d=>O(d)):o},Zi=(t,i,e)=>{if(t.length===0)return[];const o=e?t.trim():t;if(o.length===0)return[];const h=[];let n="",r=0;return Yi(o,{getWidth:M,onSegment:(s,a)=>{const c=s.text??"";if(s.isEscapeSequence)n+=c;else{const l=c===" ";if(s.width===0)return n+=c,!0;if(r+s.width>i&&(n&&h.push(n),n=a.getStartEscapesForAllActiveAttributes(),r=0,l))return e||h.push(a.getStartEscapesForAllActiveAttributes()+c),!0;n+=c,r+=s.width}return!0}}),n&&h.push(n),e?h.map(s=>O(s)):h},Qi=(t,i,e)=>{if(t.length===0)return[];const o=e?t.trim():t;if(o.length===0)return[];const h=o.split(Pt),n=[];let r="",s=0,a=0;for(;a<h.length;){const c=h[a],l=Vt.test(c),d=M(c);if(c.length===0){a+=1;continue}if(e&&l&&s===0){a+=1;continue}if(s+d>i&&s>0){e?n.push(O(r)):n.push(r),r="",s=0;continue}r+=c,s+=d,a+=1}return r&&(e?n.push(O(r)):n.push(r)),n},Xi=(t,i,e)=>{if(t.length===0)return[];const o=e?t.trim():t;if(o.length===0)return[];const h=o.split(Pt),n=[];let r="",s=0,a=0;for(;a<h.length;){const c=h[a],l=Vt.test(c),d=M(c);if(c.length===0){a+=1;continue}if(e&&l&&s===0){a+=1;continue}if(d>i){r&&n.push(ut(e?O(r):r));const m=qt(c,i,e);if(m.length>0){for(let u=0;u<m.length-1;u+=1)n.push(m[u]);r=m.at(-1),s=M(r)}else r="",s=0;a+=1;continue}if(s+d>i&&s>0&&(n.push(ut(e?O(r):r)),r="",s=0,e&&l)){a+=1;continue}r+=c,s+=d,a+=1}return r&&n.push(ut(e?O(r):r)),n},st={BREAK_AT_CHARACTERS:"BREAK_AT_CHARACTERS",BREAK_WORDS:"BREAK_WORDS",PRESERVE_WORDS:"PRESERVE_WORDS",STRICT_WIDTH:"STRICT_WIDTH"},te=(t,i={})=>{const{removeZeroWidthCharacters:e=!0,trim:o=!0,width:h=80,wrapMode:n=st.PRESERVE_WORDS}=i;if(o&&t.trim()==="")return"";let r=t.normalize("NFC").replaceAll(`\r
|
|
5
5
|
`,`
|
|
6
6
|
`);return e&&(r=r.replaceAll(Ei,"")),r.split(`
|
|
7
|
-
`).map(
|
|
8
|
-
`)},zt=80,Dt=24,mt=(t,i,{shell:e,env:o}={})=>ri(t,i,{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:500,shell:e,env:o}).trim(),st=(t,i)=>({columns:Number.parseInt(t,10),rows:Number.parseInt(i,10)}),Yt=(t,i)=>{const{columns:e,rows:o}=st(t,i);if(!(Number.isNaN(e)||Number.isNaN(o))&&!(e===zt&&o===Dt))return{columns:e,rows:o}},ie=()=>{if(J.platform!=="linux")return!0;try{const t=Y.readFileSync("/proc/self/stat","utf8"),i=t.lastIndexOf(") ");if(i===-1)return!1;const e=t.slice(i+2).trim().split(/\s+/),o=Number.parseInt(e[2],10),h=Number.parseInt(e[5],10);return Number.isNaN(o)||Number.isNaN(h)||h<=0?!1:o===h}catch{return!1}};function ee(){const{env:t,stdout:i,stderr:e}=J;if(i?.columns&&i?.rows)return st(i.columns,i.rows);if(e?.columns&&e?.rows)return st(e.columns,e.rows);if(t.COLUMNS&&t.LINES)return st(t.COLUMNS,t.LINES);const o={columns:zt,rows:Dt};return J.platform==="win32"?ft()??o:J.platform==="darwin"?jt()??ft()??o:jt()??ft()??oe()??o}const jt=()=>{try{const t=J.platform==="darwin"?Y.constants.O_EVTONLY|Y.constants.O_NONBLOCK:Y.constants.O_NONBLOCK,{columns:i,rows:e}=ni.WriteStream(Y.openSync("/dev/tty",t));return{columns:i,rows:e}}catch{}},ft=()=>{try{const t=mt("tput",["cols"],{env:{TERM:"dumb",...J.env}}),i=mt("tput",["lines"],{env:{TERM:"dumb",...J.env}});if(t&&i)return Yt(t,i)}catch{}},oe=()=>{try{if(!ie())return;const t=mt("resize",["-u"]).match(/\d+/g);if(t.length===2)return Yt(t[0],t[1])}catch{}},H=(t,i)=>{switch(i){case"bottom":return{body:t.bottomBody,join:t.bottomJoin,left:t.bottomLeft,right:t.bottomRight};case"middle":return{body:t.joinBody,join:t.joinJoin,left:t.joinLeft,right:t.joinRight};case"top":return{body:t.topBody,join:t.topJoin,left:t.topLeft,right:t.topRight};default:throw new Error(`Invalid borderType: ${String(i)}`)}},re=t=>({join:t.bodyJoin,left:t.bodyLeft,right:t.bodyRight}),at=(t,i,e,o=1)=>{let h=0;for(let s=0;s<e;s+=1)h+=t[i+s]??0;return e>1&&(h+=(e-1)*o),h},wt=(t,i,e,o)=>{let h=i;for(;h>0&&t[h-1]?.[e]===o;)h-=1;let s=i;for(;s<t.length-1&&t[s+1]?.[e]===o;)s+=1;let r;const n=s-h+1;if(n===1)r=!0;else switch(o.vAlign){case"bottom":{r=i===s;break}case"middle":{const a=h+Math.floor(n/2);r=i===a;break}case"top":{r=i===h;break}default:r=i===h}return{firstRow:h,lastRow:s,showContent:r}},ne=(t,i,e,o,h)=>{if(t.length===0)return[];const s=e.showBorders?e.border?.bodyJoin.width??0:0,r=e.showBorders&&(e.border?.joinBody.width??0)>0;let n=t.length-1;for(let l=0;l<t.length;l+=1){const d=t[l];if(d){for(const[m,u]of d.entries())if(u&&h(t,l,m,u)===l){const w=wt(t,l,m,u);n=Math.max(n,w.lastRow)}}}const a=Array.from({length:n+1}).fill(1);for(let l=0;l<t.length;l+=1){const d=t[l];if(d)for(let m=0;m<e.columns;m+=1){const u=d[m];if(u&&h(t,l,m,u)===l&&(u.rowSpan??1)===1){const w=u.colSpan??1,p=at(i,m,w,s),g=o(u,p).length;a[l]=Math.max(a[l]??1,g)}}}const c=Array.from({length:a.length}).fill(!1);if(e.fixedRowHeights)for(let l=0;l<a.length;l+=1){let d;e.fixedRowHeights[l]!==void 0?d=e.fixedRowHeights[l]:e.fixedRowHeights.length===1&&e.fixedRowHeights[0]!==void 0&&(d=e.fixedRowHeights[0]),d!==void 0&&(a[l]=Math.max(1,d),c[l]=!0)}for(let l=0;l<t.length;l+=1){const d=t[l];if(d)for(let m=0;m<e.columns;m+=1){const u=d[m];if(u&&h(t,l,m,u)===l&&(u.rowSpan??1)>1){const w=u.colSpan??1,p=at(i,m,w,s),g=o(u,p),f=r?g.length-1:g.length,b=wt(t,l,m,u),{firstRow:W,lastRow:x}=b;let y=0,R=0;for(let v=W;v<=x&&v<a.length;v+=1)y+=a[v]??1,c[v]||(R+=1);const A=f-y;if(A>0)if(R>0){const v=Math.ceil(A/R);let B=0;for(let C=W;C<=x&&C<a.length;C+=1)if(!c[C]){const E=Math.min(v,A-B);if(a[C]=(a[C]??1)+E,B+=E,B>=A)break}}else(e.onWarn??(v=>{console.warn(v)}))(`[calculateRowHeights] Content of spanning cell exceeds fixed height allocated. Cell: ${JSON.stringify(u.content)}, Required: ${String(f)}, Allocated: ${String(y)} (fixed).`)}}}return a},G=(t,i,e,o)=>{let h=i;for(;h>0&&t[h-1]?.[e]===o;)h-=1;return h},Nt=t=>{if(typeof t=="string")return{content:t};if(typeof t=="number"||typeof t=="bigint"||typeof t=="boolean")return{content:String(t)};if(t==null)return{content:"",isEmpty:!0};if(typeof t=="object"&&"content"in t){let{content:i}=t,e=!1;if(typeof i=="number"||typeof i=="bigint"||typeof i=="boolean")i=String(i);else if(i==null)i="",e=!0;else if(typeof i!="string")throw new TypeError(`Invalid item type in grid cell: expected string, number, null, undefined, or GridItem object, but received ${JSON.stringify(t)} (type: ${typeof t})`);return e?{...t,content:i,isEmpty:!0}:{...t,content:i}}throw new TypeError(`Invalid item type in grid cell: expected string, number, null, undefined, or GridItem object, but received ${JSON.stringify(t)} (type: ${typeof t})`)},se=(t,i,e,o,h)=>{const s=M(t),r=" ".repeat(Math.max(0,o)),n=" ".repeat(Math.max(0,h));if(s===0)return r+" ".repeat(Math.max(0,i))+n;const a=Math.max(0,i-s);switch(e){case"center":{const c=Math.floor(a/2),l=a-c;return r+" ".repeat(c)+t+" ".repeat(l)+n}case"right":return r+" ".repeat(a)+t+n;default:return r+t+" ".repeat(a)+n}},Lt=/\r?\n/,Ft=/\s+/;let Jt;const he=()=>(Jt??=ee().columns,Jt),S=(t,i)=>!t||!i?t:typeof i=="function"?i(t):i.open+t+i.close;class ct{#t;#e=[];#o;#n=new WeakMap;#r=new WeakMap;#i=new WeakMap;#s(i){const e=this.#i.get(i);if(e)return e;const o=String(i.content??"").split(Lt);let h=0;for(const r of o)h=Math.max(h,M(r));const s={lines:o,maxLineWidth:h};return this.#i.set(i,s),s}#h(i){const e=this.#t.onWarn;if(e){e(i);return}console.warn(i)}static createGridLayout(){return[]}static calculateImplicitRowCount(i,e){let o=0;for(const h of i)o+=(h.colSpan??1)*(h.rowSpan??1);return Math.max(1,Math.ceil(o/e))}constructor(i){const e={autoColumns:1,autoFlow:"row",autoRows:1,balancedWidths:!1,gap:0,paddingLeft:1,paddingRight:1,rows:0,showBorders:i.border!==void 0,truncate:!1,truncateOverflow:!0,wordWrap:!1};let o;Array.isArray(i.fixedRowHeights)?o=i.fixedRowHeights:typeof i.fixedRowHeights=="number"&&(o=[i.fixedRowHeights]),this.#t={...e,...i,columns:i.columns,fixedRowHeights:o,showBorders:i.border!==void 0||(i.showBorders??!1)};const{terminalWidth:h}=this.#t;this.#o=h??he(),this.#t.maxWidth&&(this.#t.maxWidth=Math.min(this.#t.maxWidth,this.#o))}addItem(i){const e=Nt(i);return this.#a(e),this.#e.push(e),this}#a(i){i.width!==void 0&&this.#h("@visulima/tabular: GridItem.width is ignored by Grid (it is only consumed by Table). Use fixedColumnWidths or maxWidth to constrain Grid column widths.")}addItems(i){for(const e of i){const o=Nt(e);this.#a(o),this.#e.push(o)}return this}setColumns(i){return this.#t.columns=i,this}setRows(i){return this.#t.rows=i,this}setBorder(i){return this.#t.border=i,this}setShowBorders(i){return this.#t.showBorders=i,this}setMaxWidth(i){return this.#t.maxWidth=i,this}toString(){const i=ct.createGridLayout();if(this.#n=new WeakMap,this.#r=new WeakMap,this.#i=new WeakMap,this.placeItems(i),i.length===0||i[0]?.length===0)return"";let e=this.calculateColumnWidths(i);const o=this.calculateTotalGridWidth(e),h=typeof this.#t.maxWidth=="number"&&this.#t.maxWidth>0?Math.min(this.#t.maxWidth,this.#o):this.#o;return o>h&&(e=this.adjustColumnWidthsForTerminal(e,o)),this.renderGrid(i,e)}placeItems(i){let e=0,o=0;const h=this.#t.rows>0?this.#t.rows:Number.POSITIVE_INFINITY,s=this.#t.rows>0?this.#t.rows:ct.calculateImplicitRowCount(this.#e,Math.max(1,this.#t.columns));for(let r=0;r<this.#e.length;r+=1){const n=this.#e[r];if(n.isEmpty&&!(n.rowSpan&&n.rowSpan>1)&&!(n.colSpan&&n.colSpan>1)){this.#t.autoFlow==="row"?(o+=1,o>=this.#t.columns&&(o=0,e+=1)):(e+=1,e>=s&&(e=0,o+=1));continue}const a=n.colSpan??1,c=n.rowSpan??1;let l=!1,d=e,m=o,u=0;const w=((this.#t.autoFlow==="column"?Math.max(i.length,s):i.length)+c+5)*this.#t.columns,p=a<=this.#t.columns;for(;p&&!l&&d<h&&u<w;){for(u+=1;d+c>i.length;)i.push(Array.from({length:this.#t.columns}).fill(void 0));if(this.canPlaceItem(i,d,m,a,c))this.placeItem(i,d,m,n),l=!0,this.#t.autoFlow==="row"?(o=m+a,e=d,o>=this.#t.columns&&(o=0,e+=1)):(e=d+c,o=m,e>=s&&(e=0,o+=1));else if(this.#t.autoFlow==="row")m+=1,m>=this.#t.columns&&(m=0,d+=1);else if(d+=1,d>=s&&(d=0,m+=1,m>=this.#t.columns))break}l||(this.#h(`@visulima/tabular: Could not find position for item: ${JSON.stringify(n)} after ${String(u)} attempts. Grid might be too small or layout impossible.`),this.#t.autoFlow==="row"?(o+=1,o>=this.#t.columns&&(o=0,e+=1)):(e+=1,e>=s&&(e=0,o+=1)))}if(this.#t.rows>0){if(i.length>0)for(;i.length<this.#t.rows;)i.push(Array.from({length:this.#t.columns}).fill(void 0))}else for(;i.length>0&&i.at(-1)?.every(r=>r===void 0);)i.pop()}canPlaceItem(i,e,o,h,s,r=!1){if(o+h>this.#t.columns)return!1;for(let n=e;n<e+s;n+=1)if(n<i.length){if(!i[n])return this.#h(`Grid layout unexpectedly missing row ${String(n)} during canPlaceItem check.`),!1;for(let a=o;a<o+h;a+=1)if(i[n]?.[a]!==void 0)return!1}else if(!r)return!1;return!0}computeWrappedContentWidth(i,e,o,h){let s=i;if(h){if(s>20){let r=0;for(const n of e){const a=n.split(Ft);for(const c of a)r=Math.max(r,Math.min(M(c),o))}s=Math.min(s,Math.max(r+4,12))}}else{let r=0;for(const n of e){const a=n.split(Ft);for(const c of a)r=Math.max(r,Math.min(M(c),o))}s=Math.min(s,Math.max(r+12,20))}return s}placeItem(i,e,o,h){const s=h.rowSpan??1,r=h.colSpan??1;for(let n=e;n<e+s;n+=1){for(;n>=i.length;)i.push(Array.from({length:this.#t.columns}).fill(void 0));for(let a=o;a<o+r;a+=1)a<this.#t.columns&&(i[n]||(this.#h(`Logic error: Row ${String(n)} not found in placeItem despite check.`),i[n]=Array.from({length:this.#t.columns}).fill(void 0)),i[n][a]=h)}}calculateTotalGridWidth(i){let e=0;const o=this.#t.showBorders?this.#t.border:void 0;o&&(e+=o.bodyLeft.width,e+=o.bodyRight.width);const h=i.length,s=this.#t.showBorders?o?.bodyJoin.width??0:0,r=this.#t.gap;for(let n=0;n<h;n+=1)e+=i[n]??0,n<h-1&&(e+=r,e+=s);return e}adjustColumnWidthsForTerminal(i,e){const o=typeof this.#t.maxWidth=="number"&&this.#t.maxWidth>0?Math.min(this.#t.maxWidth??0,this.#o):this.#o;if(e<=o)return i;let h=0;const s=i.length,r=this.#t.showBorders?this.#t.border:void 0;if(r&&(h+=r.bodyLeft.width,h+=r.bodyRight.width),s>1){h+=(s-1)*this.#t.gap;const m=r?.bodyJoin.width??0;h+=(s-1)*m}if(h>=o)return Array.from({length:s}).fill(1);const n=o-h,a=i.reduce((m,u)=>m+u,0);if(a===0){const m=Math.floor(n/s);return Array.from({length:s}).fill(m)}const c=i.map(m=>{const u=m/a;return Math.max(1,Math.floor(n*u))});let l=c.reduce((m,u)=>m+u,0)-n;for(;l>0;){let m=-1;for(let u=0;u<c.length;u+=1)(c[u]??0)>1&&(m===-1||(c[u]??0)>(c[m]??0))&&(m=u);if(m===-1)break;c[m]-=1,l-=1}let d=n-c.reduce((m,u)=>m+u,0);if(d>0){const m=c.map((u,w)=>{const p=a>0?(i[w]??0)/a:1/s;return{index:w,remainder:n*p%1}}).toSorted((u,w)=>w.remainder-u.remainder);for(const u of m){if(d<=0)break;const{index:w}=u;c[w]!==void 0&&(c[w]+=1,d-=1)}}return c}calculateBalancedColumnWidths(i){const e=this.calculateMinimumColumnWidthsWithGrowableInfo(i),o=e.widths,{growableColumns:h}=e,s=typeof this.#t.maxWidth=="number"&&this.#t.maxWidth>0?Math.min(this.#t.maxWidth,this.#o):this.#o,r=this.#t.showBorders?this.#t.border:void 0;let n=0;if(r&&(n+=r.bodyLeft.width,n+=r.bodyRight.width),this.#t.columns>1){n+=(this.#t.columns-1)*this.#t.gap;const l=r?.bodyJoin.width??0;n+=(this.#t.columns-1)*l}const a=Math.max(0,s-n);if(o.reduce((l,d)=>l+d,0)>0){const l=Math.floor(a/this.#t.columns),d=Array.from({length:this.#t.columns}).fill(l),m=l*this.#t.columns;let u=a-m;for(let f=0;f<d.length&&u>0;f+=1)d[f]=(d[f]??0)+1,u-=1;const w=[];let p=0;for(let f=0;f<this.#t.columns;f+=1){const b=d[f]??0,W=o[f]??0,x=Math.max(b,W);w.push(x),p+=x}if(p>a){const f=a/p,b=w.map(y=>Math.max(3,Math.floor(y*f))),W=b.reduce((y,R)=>y+R,0);let x=a-W;for(let y=0;y<b.length&&x>0;y+=1)b[y]=(b[y]??0)+1,x-=1;return b}let g=a-p;if(g>0){const f=h.length>0?h:w.map((b,W)=>W);for(;g>0&&f.length>0;)for(const b of f){if(g<=0)break;w[b]=(w[b]??0)+1,g-=1}}return w}const c=Math.floor(a/this.#t.columns);return Array.from({length:this.#t.columns}).fill(c)}calculateMinimumColumnWidthsWithGrowableInfo(i){const e=Array.from({length:this.#t.columns}).fill(0),o=[],h=this.#t.paddingLeft+this.#t.paddingRight,s=this.#t.gap+(this.#t.showBorders?this.#t.border?.bodyJoin.width??0:0);for(let r=0;r<this.#t.columns;r+=1)for(let n=0;n<i.length;n+=1){const a=i[n]?.[r];if(!a||G(i,n,r,a)!==n||r>0&&i[n]?.[r-1]===a)continue;const c=a.colSpan??1,l=a.maxWidth??Number.POSITIVE_INFINITY,{lines:d,maxLineWidth:m}=this.#s(a),u=this.#t.wordWrap&&a.wordWrap!==!1;let w=Math.min(m,l);w=this.computeWrappedContentWidth(w,d,l,u),c===1&&(e[r]=Math.max(e[r]??0,w+h),u&&!o.includes(r)&&o.push(r))}for(let r=0;r<i.length;r+=1)for(let n=0;n<this.#t.columns;n+=1){const a=i[r]?.[n];if(!a||G(i,r,n,a)!==r||n>0&&i[r]?.[n-1]===a)continue;const c=a.colSpan??1;if(c>1){const l=a.maxWidth??Number.POSITIVE_INFINITY,{lines:d,maxLineWidth:m}=this.#s(a),u=this.#t.wordWrap&&a.wordWrap!==!1;let w=Math.min(m,l);w=this.computeWrappedContentWidth(w,d,l,u);const p=(c-1)*s,g=w+h+p;let f=0;for(let W=n;W<n+c;W+=1)f+=e[W]??0;const b=f+p;if(g>b){const W=g-b,x=Math.floor(W/c);let y=0;for(let R=0;R<c&&n+R<this.#t.columns;R+=1){const A=Math.min(x,W-y);if(e[n+R]=(e[n+R]??0)+A,y+=A,y>=W)break}}}}return{growableColumns:o,widths:e}}calculateColumnWidths(i){if(this.#t.fixedColumnWidths&&this.#t.fixedColumnWidths.length===this.#t.columns){const s=this.#t.fixedColumnWidths;if(!s.some(r=>r===void 0||!Number.isFinite(r)))return[...s];if(this.#t.balancedWidths){const r=Array.from({length:s.length}).fill(0),n=typeof this.#t.maxWidth=="number"&&this.#t.maxWidth>0?Math.min(this.#t.maxWidth,this.#o):this.#o,a=this.calculateTotalGridWidth(Array.from({length:r.length}).fill(0)),c=Math.max(0,n-a);let l=0;const d=[];for(const[w,p]of s.entries())typeof p=="number"&&Number.isFinite(p)?(r[w]=p,l+=p):d.push(w);let m=Math.max(0,c-l);const u=d.length>0?Math.floor(m/d.length):0;for(const w of d)r[w]=u;m-=u*d.length;for(const w of d){if(m<=0)break;r[w]+=1,m-=1}return r}}if(this.#t.balancedWidths)return this.calculateBalancedColumnWidths(i);const e=Array.from({length:this.#t.columns}).fill(0),o=this.#t.paddingLeft+this.#t.paddingRight,h=this.#t.gap+(this.#t.showBorders?this.#t.border?.bodyJoin.width??0:0);for(let s=0;s<this.#t.columns;s+=1)for(let r=0;r<i.length;r+=1){const n=i[r]?.[s];if(!n||G(i,r,s,n)!==r||s>0&&i[r]?.[s-1]===n)continue;const a=n.colSpan??1,c=n.maxWidth??Number.POSITIVE_INFINITY,{maxLineWidth:l}=this.#s(n),d=Math.min(l,c);a===1&&(e[s]=Math.max(e[s]??0,d+o))}for(let s=0;s<i.length;s+=1)for(let r=0;r<this.#t.columns;r+=1){const n=i[s]?.[r];if(!n||G(i,s,r,n)!==s||r>0&&i[s]?.[r-1]===n)continue;const a=n.colSpan??1;if(a>1){const c=n.maxWidth??Number.POSITIVE_INFINITY,{lines:l,maxLineWidth:d}=this.#s(n),m=this.#t.wordWrap&&n.wordWrap!==!1;let u=Math.min(d,c);u=this.computeWrappedContentWidth(u,l,c,m);let w=0;for(let b=r;b<r+a;b+=1)w+=e[b]??0;const p=a>1?(a-1)*h:0,g=u+o+p,f=w+p;if(g>f){const b=g-f,W=Math.floor(b/a);let x=0;for(let y=0;y<a&&r+y<this.#t.columns;y+=1){const R=Math.min(W,b-x);if(e[r+y]=(e[r+y]??0)+R,x+=R,x>=b)break}}}}if(this.#t.fixedColumnWidths&&this.#t.fixedColumnWidths.length===this.#t.columns)for(const[s,r]of this.#t.fixedColumnWidths.entries())typeof r=="number"&&Number.isFinite(r)&&(e[s]=r);if(this.#t.maxWidth){const s=this.calculateTotalGridWidth(e);if(s>this.#t.maxWidth)return this.adjustColumnWidthsForTerminal(e,s)}return e}renderVisualRowContent(i,e,o,h,s){const r=i[e];if(!r)return"";const n=this.#t.borderColor??this.#t.foregroundColor??void 0,a=[],c=this.#t.showBorders&&this.#t.border?re(this.#t.border):void 0,l=c&&c.left.width>0?c.left.char:"",d=c&&c.right.width>0?c.right.char:"",m=c&&c.join.width>0?c.join.char:"",u=" ".repeat(this.#t.gap);l&&a.push(S(S(l,n),this.#t.backgroundColor));let w=0;for(;w<this.#t.columns;){const p=r[w]??void 0;let g=1,f;if(p){const b=p.colSpan??1;g=b;const W=G(i,e,w,p),x=this.#t.showBorders?this.#t.border?.bodyJoin.width??0:0,y=at(h,w,b,x),R=this.alignCellContent(p,y),A=R.length,v=this.getCachedCellVerticalPosition(i,e,w,p);v.firstRow!==W&&this.#h(`Mismatch between findFirstOccurrenceRow (${String(W)}) and determineCellVerticalPosition (${String(v.firstRow)})`);const B=s.slice(W,v.lastRow+1).reduce((I,k)=>I+k,0),C=v.lastRow-v.firstRow+1;let E=o,L=0;const _=this.#t.showBorders&&(this.#t.border?.joinBody.width??0)>0;for(let I=W;I<e;I+=1)I<s.length&&(E+=s[I]??1),_&&I<v.lastRow&&(L+=1);E+=L;const T=p.vAlign??"top";let j;switch(T){case"bottom":{let I=o;for(let N=W;N<e;N+=1)I+=s[N]??1;const k=B-A;j=I>=k?I-k:-1;break}case"middle":{const I=Math.round((B-A)/2);let k=o;for(let N=W;N<e;N+=1)k+=s[N]??1;j=k>=I&&k<I+A?k-I:-1;break}case"top":{j=E;break}default:j=E}const z=j>=0&&j<A;if(f=" ".repeat(Math.max(0,y)),z){let I=!1;T==="middle"&&C%2===0&&j===0&&(I=!0),I||(f=R[j]??f)}p.colSpan&&p.colSpan>1&&(f+=u.repeat(p.colSpan)),p.foregroundColor?f=S(f,p.foregroundColor):this.#t.foregroundColor&&(f=S(f,this.#t.foregroundColor)),p.backgroundColor?f=S(f,p.backgroundColor):this.#t.backgroundColor&&(f=S(f,this.#t.backgroundColor))}else{const b=this.#t.paddingLeft+this.#t.paddingRight,W=Math.max(0,(h[w]??0)-b),x=" ".repeat(this.#t.paddingLeft+W+this.#t.paddingRight);f=S(S(o===0?x:" ".repeat(x.length),this.#t.foregroundColor),this.#t.backgroundColor)}a.push(f),w+g<this.#t.columns&&(a.push(u),this.#t.showBorders&&m&&a.push(S(S(m,n),this.#t.backgroundColor)),this.#t.gap>0&&a.push(u)),w+=g}return d&&a.push(S(S(d,n),this.#t.backgroundColor)),a.join("")}alignCellContent(i,e){const o=this.#n.get(i);if(o?.has(e))return o.get(e);const{paddingLeft:h,paddingRight:s}=this.#t,r=h+s,n=e-r;if(n<=0){const d=[" ".repeat(r+this.#t.gap)];return o?o.set(e,d):this.#n.set(i,new Map([[e,d]])),d}let a;const c=String(i.content??"");if(a=c.includes(`
|
|
9
|
-
`)||c.includes("\r")?c.split(Lt):[c],this.#t.wordWrap&&i.wordWrap!==!1){const d=typeof this.#t.wordWrap=="object"?this.#t.wordWrap:{},m=typeof i.wordWrap=="object"?i.wordWrap:d;a=te(c,{...m,width:
|
|
10
|
-
`)}if(this.#t.truncate&&i.truncate!==!1){const d=typeof this.#t.truncate=="object"?this.#t.truncate:{},m=typeof i.truncate=="object"?i.truncate:d;a=a.map(u=>It(u,
|
|
11
|
-
`)}getCachedCellVerticalPosition(i,e,o,h){const
|
|
7
|
+
`).map(s=>{if(o&&s.trim()==="")return"";let a;switch(n){case st.BREAK_AT_CHARACTERS:{a=Zi(s,h,o);break}case st.BREAK_WORDS:{a=Xi(s,h,o);break}case st.STRICT_WIDTH:{a=qt(s,h,o);break}default:a=Qi(s,h,o)}return Ki(a)}).join(`
|
|
8
|
+
`)},zt=80,Dt=24,mt=(t,i,{shell:e,env:o}={})=>ri(t,i,{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:500,shell:e,env:o}).trim(),nt=(t,i)=>({columns:Number.parseInt(t,10),rows:Number.parseInt(i,10)}),Yt=(t,i)=>{const{columns:e,rows:o}=nt(t,i);if(!(Number.isNaN(e)||Number.isNaN(o))&&!(e===zt&&o===Dt))return{columns:e,rows:o}},ie=()=>{if(J.platform!=="linux")return!0;try{const t=Y.readFileSync("/proc/self/stat","utf8"),i=t.lastIndexOf(") ");if(i===-1)return!1;const e=t.slice(i+2).trim().split(/\s+/),o=Number.parseInt(e[2],10),h=Number.parseInt(e[5],10);return Number.isNaN(o)||Number.isNaN(h)||h<=0?!1:o===h}catch{return!1}};function ee(){const{env:t,stdout:i,stderr:e}=J;if(i?.columns&&i?.rows)return nt(i.columns,i.rows);if(e?.columns&&e?.rows)return nt(e.columns,e.rows);if(t.COLUMNS&&t.LINES)return nt(t.COLUMNS,t.LINES);const o={columns:zt,rows:Dt};return J.platform==="win32"?ft()??o:J.platform==="darwin"?jt()??ft()??o:jt()??ft()??oe()??o}const jt=()=>{try{const t=J.platform==="darwin"?Y.constants.O_EVTONLY|Y.constants.O_NONBLOCK:Y.constants.O_NONBLOCK,{columns:i,rows:e}=si.WriteStream(Y.openSync("/dev/tty",t));return{columns:i,rows:e}}catch{}},ft=()=>{try{const t=mt("tput",["cols"],{env:{TERM:"dumb",...J.env}}),i=mt("tput",["lines"],{env:{TERM:"dumb",...J.env}});if(t&&i)return Yt(t,i)}catch{}},oe=()=>{try{if(!ie())return;const t=mt("resize",["-u"]).match(/\d+/g);if(t.length===2)return Yt(t[0],t[1])}catch{}},H=(t,i)=>{switch(i){case"bottom":return{body:t.bottomBody,join:t.bottomJoin,left:t.bottomLeft,right:t.bottomRight};case"middle":return{body:t.joinBody,join:t.joinJoin,left:t.joinLeft,right:t.joinRight};case"top":return{body:t.topBody,join:t.topJoin,left:t.topLeft,right:t.topRight};default:throw new Error(`Invalid borderType: ${String(i)}`)}},re=t=>({join:t.bodyJoin,left:t.bodyLeft,right:t.bodyRight}),at=(t,i,e,o=1)=>{let h=0;for(let n=0;n<e;n+=1)h+=t[i+n]??0;return e>1&&(h+=(e-1)*o),h},wt=(t,i,e,o)=>{let h=i;for(;h>0&&t[h-1]?.[e]===o;)h-=1;let n=i;for(;n<t.length-1&&t[n+1]?.[e]===o;)n+=1;let r;const s=n-h+1;if(s===1)r=!0;else switch(o.vAlign){case"bottom":{r=i===n;break}case"middle":{const a=h+Math.floor(s/2);r=i===a;break}case"top":{r=i===h;break}default:r=i===h}return{firstRow:h,lastRow:n,showContent:r}},se=(t,i,e,o,h)=>{if(t.length===0)return[];const n=e.showBorders?e.border?.bodyJoin.width??0:0,r=e.showBorders&&(e.border?.joinBody.width??0)>0;let s=t.length-1;for(let l=0;l<t.length;l+=1){const d=t[l];if(d){for(const[m,u]of d.entries())if(u&&h(t,l,m,u)===l){const w=wt(t,l,m,u);s=Math.max(s,w.lastRow)}}}const a=Array.from({length:s+1}).fill(1);for(let l=0;l<t.length;l+=1){const d=t[l];if(d)for(let m=0;m<e.columns;m+=1){const u=d[m];if(u&&h(t,l,m,u)===l&&(u.rowSpan??1)===1){const w=u.colSpan??1,p=at(i,m,w,n),g=o(u,p).length;a[l]=Math.max(a[l]??1,g)}}}const c=Array.from({length:a.length}).fill(!1);if(e.fixedRowHeights)for(let l=0;l<a.length;l+=1){let d;e.fixedRowHeights[l]!==void 0?d=e.fixedRowHeights[l]:e.fixedRowHeights.length===1&&e.fixedRowHeights[0]!==void 0&&(d=e.fixedRowHeights[0]),d!==void 0&&(a[l]=Math.max(1,d),c[l]=!0)}for(let l=0;l<t.length;l+=1){const d=t[l];if(d)for(let m=0;m<e.columns;m+=1){const u=d[m];if(u&&h(t,l,m,u)===l&&(u.rowSpan??1)>1){const w=u.colSpan??1,p=at(i,m,w,n),g=o(u,p),f=r?g.length-1:g.length,b=wt(t,l,m,u),{firstRow:W,lastRow:x}=b;let y=0,R=0;for(let v=W;v<=x&&v<a.length;v+=1)y+=a[v]??1,c[v]||(R+=1);const A=f-y;if(A>0)if(R>0){const v=Math.ceil(A/R);let B=0;for(let C=W;C<=x&&C<a.length;C+=1)if(!c[C]){const E=Math.min(v,A-B);if(a[C]=(a[C]??1)+E,B+=E,B>=A)break}}else(e.onWarn??(v=>{console.warn(v)}))(`[calculateRowHeights] Content of spanning cell exceeds fixed height allocated. Cell: ${JSON.stringify(u.content)}, Required: ${String(f)}, Allocated: ${String(y)} (fixed).`)}}}return a},G=(t,i,e,o)=>{let h=i;for(;h>0&&t[h-1]?.[e]===o;)h-=1;return h},Nt=t=>{if(typeof t=="string")return{content:t};if(typeof t=="number"||typeof t=="bigint"||typeof t=="boolean")return{content:String(t)};if(t==null)return{content:"",isEmpty:!0};if(typeof t=="object"&&"content"in t){let{content:i}=t,e=!1;if(typeof i=="number"||typeof i=="bigint"||typeof i=="boolean")i=String(i);else if(i==null)i="",e=!0;else if(typeof i!="string")throw new TypeError(`Invalid item type in grid cell: expected string, number, null, undefined, or GridItem object, but received ${JSON.stringify(t)} (type: ${typeof t})`);return e?{...t,content:i,isEmpty:!0}:{...t,content:i}}throw new TypeError(`Invalid item type in grid cell: expected string, number, null, undefined, or GridItem object, but received ${JSON.stringify(t)} (type: ${typeof t})`)},ne=(t,i,e,o,h)=>{const n=M(t),r=" ".repeat(Math.max(0,o)),s=" ".repeat(Math.max(0,h));if(n===0)return r+" ".repeat(Math.max(0,i))+s;const a=Math.max(0,i-n);switch(e){case"center":{const c=Math.floor(a/2),l=a-c;return r+" ".repeat(c)+t+" ".repeat(l)+s}case"right":return r+" ".repeat(a)+t+s;default:return r+t+" ".repeat(a)+s}},Lt=/\r?\n/,Ft=/\s+/;let Jt;const he=()=>(Jt??=ee().columns,Jt),S=(t,i)=>!t||!i?t:typeof i=="function"?i(t):i.open+t+i.close;class ct{#t;#e=[];#o;#s=new WeakMap;#r=new WeakMap;#i=new WeakMap;#n(i){const e=this.#i.get(i);if(e)return e;const o=String(i.content??"").split(Lt);let h=0;for(const r of o)h=Math.max(h,M(r));const n={lines:o,maxLineWidth:h};return this.#i.set(i,n),n}#h(i){const e=this.#t.onWarn;if(e){e(i);return}console.warn(i)}static createGridLayout(){return[]}static calculateImplicitRowCount(i,e){let o=0;for(const h of i)o+=(h.colSpan??1)*(h.rowSpan??1);return Math.max(1,Math.ceil(o/e))}constructor(i){const e={autoColumns:1,autoFlow:"row",autoRows:1,balancedWidths:!1,gap:0,paddingLeft:1,paddingRight:1,rows:0,showBorders:i.border!==void 0,truncate:!1,truncateOverflow:!0,wordWrap:!1};let o;Array.isArray(i.fixedRowHeights)?o=i.fixedRowHeights:typeof i.fixedRowHeights=="number"&&(o=[i.fixedRowHeights]),this.#t={...e,...i,columns:i.columns,fixedRowHeights:o,showBorders:i.border!==void 0||(i.showBorders??!1)};const{terminalWidth:h}=this.#t;this.#o=h??he(),this.#t.maxWidth&&(this.#t.maxWidth=Math.min(this.#t.maxWidth,this.#o))}addItem(i){const e=Nt(i);return this.#a(e),this.#e.push(e),this}#a(i){i.width!==void 0&&this.#h("@visulima/tabular: GridItem.width is ignored by Grid (it is only consumed by Table). Use fixedColumnWidths or maxWidth to constrain Grid column widths.")}addItems(i){for(const e of i){const o=Nt(e);this.#a(o),this.#e.push(o)}return this}setColumns(i){return this.#t.columns=i,this}setRows(i){return this.#t.rows=i,this}setBorder(i){return this.#t.border=i,this}setShowBorders(i){return this.#t.showBorders=i,this}setMaxWidth(i){return this.#t.maxWidth=i,this}toString(){const i=ct.createGridLayout();if(this.#s=new WeakMap,this.#r=new WeakMap,this.#i=new WeakMap,this.placeItems(i),i.length===0||i[0]?.length===0)return"";let e=this.calculateColumnWidths(i);const o=this.calculateTotalGridWidth(e),h=typeof this.#t.maxWidth=="number"&&this.#t.maxWidth>0?Math.min(this.#t.maxWidth,this.#o):this.#o;return o>h&&(e=this.adjustColumnWidthsForTerminal(e,o)),this.renderGrid(i,e)}placeItems(i){let e=0,o=0;const h=this.#t.rows>0?this.#t.rows:Number.POSITIVE_INFINITY,n=this.#t.rows>0?this.#t.rows:ct.calculateImplicitRowCount(this.#e,Math.max(1,this.#t.columns));for(let r=0;r<this.#e.length;r+=1){const s=this.#e[r];if(s.isEmpty&&!(s.rowSpan&&s.rowSpan>1)&&!(s.colSpan&&s.colSpan>1)){this.#t.autoFlow==="row"?(o+=1,o>=this.#t.columns&&(o=0,e+=1)):(e+=1,e>=n&&(e=0,o+=1));continue}const a=s.colSpan??1,c=s.rowSpan??1;let l=!1,d=e,m=o,u=0;const w=((this.#t.autoFlow==="column"?Math.max(i.length,n):i.length)+c+5)*this.#t.columns,p=a<=this.#t.columns;for(;p&&!l&&d<h&&u<w;){for(u+=1;d+c>i.length;)i.push(Array.from({length:this.#t.columns}).fill(void 0));if(this.canPlaceItem(i,d,m,a,c))this.placeItem(i,d,m,s),l=!0,this.#t.autoFlow==="row"?(o=m+a,e=d,o>=this.#t.columns&&(o=0,e+=1)):(e=d+c,o=m,e>=n&&(e=0,o+=1));else if(this.#t.autoFlow==="row")m+=1,m>=this.#t.columns&&(m=0,d+=1);else if(d+=1,d>=n&&(d=0,m+=1,m>=this.#t.columns))break}l||(this.#h(`@visulima/tabular: Could not find position for item: ${JSON.stringify(s)} after ${String(u)} attempts. Grid might be too small or layout impossible.`),this.#t.autoFlow==="row"?(o+=1,o>=this.#t.columns&&(o=0,e+=1)):(e+=1,e>=n&&(e=0,o+=1)))}if(this.#t.rows>0){if(i.length>0)for(;i.length<this.#t.rows;)i.push(Array.from({length:this.#t.columns}).fill(void 0))}else for(;i.length>0&&i.at(-1)?.every(r=>r===void 0);)i.pop()}canPlaceItem(i,e,o,h,n,r=!1){if(o+h>this.#t.columns)return!1;for(let s=e;s<e+n;s+=1)if(s<i.length){if(!i[s])return this.#h(`Grid layout unexpectedly missing row ${String(s)} during canPlaceItem check.`),!1;for(let a=o;a<o+h;a+=1)if(i[s]?.[a]!==void 0)return!1}else if(!r)return!1;return!0}computeWrappedContentWidth(i,e,o,h){let n=i;if(h){if(n>20){let r=0;for(const s of e){const a=s.split(Ft);for(const c of a)r=Math.max(r,Math.min(M(c),o))}n=Math.min(n,Math.max(r+4,12))}}else{let r=0;for(const s of e){const a=s.split(Ft);for(const c of a)r=Math.max(r,Math.min(M(c),o))}n=Math.min(n,Math.max(r+12,20))}return n}placeItem(i,e,o,h){const n=h.rowSpan??1,r=h.colSpan??1;for(let s=e;s<e+n;s+=1){for(;s>=i.length;)i.push(Array.from({length:this.#t.columns}).fill(void 0));for(let a=o;a<o+r;a+=1)a<this.#t.columns&&(i[s]||(this.#h(`Logic error: Row ${String(s)} not found in placeItem despite check.`),i[s]=Array.from({length:this.#t.columns}).fill(void 0)),i[s][a]=h)}}calculateTotalGridWidth(i){let e=0;const o=this.#t.showBorders?this.#t.border:void 0;o&&(e+=o.bodyLeft.width,e+=o.bodyRight.width);const h=i.length,n=this.#t.showBorders?o?.bodyJoin.width??0:0,r=this.#t.gap;for(let s=0;s<h;s+=1)e+=i[s]??0,s<h-1&&(e+=r,e+=n);return e}adjustColumnWidthsForTerminal(i,e){const o=typeof this.#t.maxWidth=="number"&&this.#t.maxWidth>0?Math.min(this.#t.maxWidth??0,this.#o):this.#o;if(e<=o)return i;let h=0;const n=i.length,r=this.#t.showBorders?this.#t.border:void 0;if(r&&(h+=r.bodyLeft.width,h+=r.bodyRight.width),n>1){h+=(n-1)*this.#t.gap;const m=r?.bodyJoin.width??0;h+=(n-1)*m}if(h>=o)return Array.from({length:n}).fill(1);const s=o-h,a=i.reduce((m,u)=>m+u,0);if(a===0){const m=Math.floor(s/n);return Array.from({length:n}).fill(m)}const c=i.map(m=>{const u=m/a;return Math.max(1,Math.floor(s*u))});let l=c.reduce((m,u)=>m+u,0)-s;for(;l>0;){let m=-1;for(let u=0;u<c.length;u+=1)(c[u]??0)>1&&(m===-1||(c[u]??0)>(c[m]??0))&&(m=u);if(m===-1)break;c[m]-=1,l-=1}let d=s-c.reduce((m,u)=>m+u,0);if(d>0){const m=c.map((u,w)=>{const p=a>0?(i[w]??0)/a:1/n;return{index:w,remainder:s*p%1}}).toSorted((u,w)=>w.remainder-u.remainder);for(const u of m){if(d<=0)break;const{index:w}=u;c[w]!==void 0&&(c[w]+=1,d-=1)}}return c}calculateBalancedColumnWidths(i){const e=this.calculateMinimumColumnWidthsWithGrowableInfo(i),o=e.widths,{growableColumns:h}=e,n=typeof this.#t.maxWidth=="number"&&this.#t.maxWidth>0?Math.min(this.#t.maxWidth,this.#o):this.#o,r=this.#t.showBorders?this.#t.border:void 0;let s=0;if(r&&(s+=r.bodyLeft.width,s+=r.bodyRight.width),this.#t.columns>1){s+=(this.#t.columns-1)*this.#t.gap;const l=r?.bodyJoin.width??0;s+=(this.#t.columns-1)*l}const a=Math.max(0,n-s);if(o.reduce((l,d)=>l+d,0)>0){const l=Math.floor(a/this.#t.columns),d=Array.from({length:this.#t.columns}).fill(l),m=l*this.#t.columns;let u=a-m;for(let f=0;f<d.length&&u>0;f+=1)d[f]=(d[f]??0)+1,u-=1;const w=[];let p=0;for(let f=0;f<this.#t.columns;f+=1){const b=d[f]??0,W=o[f]??0,x=Math.max(b,W);w.push(x),p+=x}if(p>a){const f=a/p,b=w.map(y=>Math.max(3,Math.floor(y*f))),W=b.reduce((y,R)=>y+R,0);let x=a-W;for(let y=0;y<b.length&&x>0;y+=1)b[y]=(b[y]??0)+1,x-=1;return b}let g=a-p;if(g>0){const f=h.length>0?h:w.map((b,W)=>W);for(;g>0&&f.length>0;)for(const b of f){if(g<=0)break;w[b]=(w[b]??0)+1,g-=1}}return w}const c=Math.floor(a/this.#t.columns);return Array.from({length:this.#t.columns}).fill(c)}calculateMinimumColumnWidthsWithGrowableInfo(i){const e=Array.from({length:this.#t.columns}).fill(0),o=[],h=this.#t.paddingLeft+this.#t.paddingRight,n=this.#t.gap+(this.#t.showBorders?this.#t.border?.bodyJoin.width??0:0);for(let r=0;r<this.#t.columns;r+=1)for(let s=0;s<i.length;s+=1){const a=i[s]?.[r];if(!a||G(i,s,r,a)!==s||r>0&&i[s]?.[r-1]===a)continue;const c=a.colSpan??1,l=a.maxWidth??Number.POSITIVE_INFINITY,{lines:d,maxLineWidth:m}=this.#n(a),u=this.#t.wordWrap&&a.wordWrap!==!1;let w=Math.min(m,l);w=this.computeWrappedContentWidth(w,d,l,u),c===1&&(e[r]=Math.max(e[r]??0,w+h),u&&!o.includes(r)&&o.push(r))}for(let r=0;r<i.length;r+=1)for(let s=0;s<this.#t.columns;s+=1){const a=i[r]?.[s];if(!a||G(i,r,s,a)!==r||s>0&&i[r]?.[s-1]===a)continue;const c=a.colSpan??1;if(c>1){const l=a.maxWidth??Number.POSITIVE_INFINITY,{lines:d,maxLineWidth:m}=this.#n(a),u=this.#t.wordWrap&&a.wordWrap!==!1;let w=Math.min(m,l);w=this.computeWrappedContentWidth(w,d,l,u);const p=(c-1)*n,g=w+h+p;let f=0;for(let W=s;W<s+c;W+=1)f+=e[W]??0;const b=f+p;if(g>b){const W=g-b,x=Math.floor(W/c);let y=0;for(let R=0;R<c&&s+R<this.#t.columns;R+=1){const A=Math.min(x,W-y);if(e[s+R]=(e[s+R]??0)+A,y+=A,y>=W)break}}}}return{growableColumns:o,widths:e}}calculateColumnWidths(i){if(this.#t.fixedColumnWidths&&this.#t.fixedColumnWidths.length===this.#t.columns){const n=this.#t.fixedColumnWidths;if(!n.some(r=>r===void 0||!Number.isFinite(r)))return[...n];if(this.#t.balancedWidths){const r=Array.from({length:n.length}).fill(0),s=typeof this.#t.maxWidth=="number"&&this.#t.maxWidth>0?Math.min(this.#t.maxWidth,this.#o):this.#o,a=this.calculateTotalGridWidth(Array.from({length:r.length}).fill(0)),c=Math.max(0,s-a);let l=0;const d=[];for(const[w,p]of n.entries())typeof p=="number"&&Number.isFinite(p)?(r[w]=p,l+=p):d.push(w);let m=Math.max(0,c-l);const u=d.length>0?Math.floor(m/d.length):0;for(const w of d)r[w]=u;m-=u*d.length;for(const w of d){if(m<=0)break;r[w]+=1,m-=1}return r}}if(this.#t.balancedWidths)return this.calculateBalancedColumnWidths(i);const e=Array.from({length:this.#t.columns}).fill(0),o=this.#t.paddingLeft+this.#t.paddingRight,h=this.#t.gap+(this.#t.showBorders?this.#t.border?.bodyJoin.width??0:0);for(let n=0;n<this.#t.columns;n+=1)for(let r=0;r<i.length;r+=1){const s=i[r]?.[n];if(!s||G(i,r,n,s)!==r||n>0&&i[r]?.[n-1]===s)continue;const a=s.colSpan??1,c=s.maxWidth??Number.POSITIVE_INFINITY,{maxLineWidth:l}=this.#n(s),d=Math.min(l,c);a===1&&(e[n]=Math.max(e[n]??0,d+o))}for(let n=0;n<i.length;n+=1)for(let r=0;r<this.#t.columns;r+=1){const s=i[n]?.[r];if(!s||G(i,n,r,s)!==n||r>0&&i[n]?.[r-1]===s)continue;const a=s.colSpan??1;if(a>1){const c=s.maxWidth??Number.POSITIVE_INFINITY,{lines:l,maxLineWidth:d}=this.#n(s),m=this.#t.wordWrap&&s.wordWrap!==!1;let u=Math.min(d,c);u=this.computeWrappedContentWidth(u,l,c,m);let w=0;for(let b=r;b<r+a;b+=1)w+=e[b]??0;const p=a>1?(a-1)*h:0,g=u+o+p,f=w+p;if(g>f){const b=g-f,W=Math.floor(b/a);let x=0;for(let y=0;y<a&&r+y<this.#t.columns;y+=1){const R=Math.min(W,b-x);if(e[r+y]=(e[r+y]??0)+R,x+=R,x>=b)break}}}}if(this.#t.fixedColumnWidths&&this.#t.fixedColumnWidths.length===this.#t.columns)for(const[n,r]of this.#t.fixedColumnWidths.entries())typeof r=="number"&&Number.isFinite(r)&&(e[n]=r);if(this.#t.maxWidth){const n=this.calculateTotalGridWidth(e);if(n>this.#t.maxWidth)return this.adjustColumnWidthsForTerminal(e,n)}return e}renderVisualRowContent(i,e,o,h,n){const r=i[e];if(!r)return"";const s=this.#t.borderColor??this.#t.foregroundColor??void 0,a=[],c=this.#t.showBorders&&this.#t.border?re(this.#t.border):void 0,l=c&&c.left.width>0?c.left.char:"",d=c&&c.right.width>0?c.right.char:"",m=c&&c.join.width>0?c.join.char:"",u=" ".repeat(this.#t.gap);l&&a.push(S(S(l,s),this.#t.backgroundColor));let w=0;for(;w<this.#t.columns;){const p=r[w]??void 0;let g=1,f;if(p){const b=p.colSpan??1;g=b;const W=G(i,e,w,p),x=this.#t.showBorders?this.#t.border?.bodyJoin.width??0:0,y=at(h,w,b,x),R=this.alignCellContent(p,y),A=R.length,v=this.getCachedCellVerticalPosition(i,e,w,p);v.firstRow!==W&&this.#h(`Mismatch between findFirstOccurrenceRow (${String(W)}) and determineCellVerticalPosition (${String(v.firstRow)})`);const B=n.slice(W,v.lastRow+1).reduce((I,k)=>I+k,0),C=v.lastRow-v.firstRow+1;let E=o,L=0;const $=this.#t.showBorders&&(this.#t.border?.joinBody.width??0)>0;for(let I=W;I<e;I+=1)I<n.length&&(E+=n[I]??1),$&&I<v.lastRow&&(L+=1);E+=L;const T=p.vAlign??"top";let j;switch(T){case"bottom":{let I=o;for(let N=W;N<e;N+=1)I+=n[N]??1;const k=B-A;j=I>=k?I-k:-1;break}case"middle":{const I=Math.round((B-A)/2);let k=o;for(let N=W;N<e;N+=1)k+=n[N]??1;j=k>=I&&k<I+A?k-I:-1;break}case"top":{j=E;break}default:j=E}const z=j>=0&&j<A;if(f=" ".repeat(Math.max(0,y)),z){let I=!1;T==="middle"&&C%2===0&&j===0&&(I=!0),I||(f=R[j]??f)}p.colSpan&&p.colSpan>1&&(f+=u.repeat(p.colSpan)),p.foregroundColor?f=S(f,p.foregroundColor):this.#t.foregroundColor&&(f=S(f,this.#t.foregroundColor)),p.backgroundColor?f=S(f,p.backgroundColor):this.#t.backgroundColor&&(f=S(f,this.#t.backgroundColor))}else{const b=this.#t.paddingLeft+this.#t.paddingRight,W=Math.max(0,(h[w]??0)-b),x=" ".repeat(this.#t.paddingLeft+W+this.#t.paddingRight);f=S(S(o===0?x:" ".repeat(x.length),this.#t.foregroundColor),this.#t.backgroundColor)}a.push(f),w+g<this.#t.columns&&(a.push(u),this.#t.showBorders&&m&&a.push(S(S(m,s),this.#t.backgroundColor)),this.#t.gap>0&&a.push(u)),w+=g}return d&&a.push(S(S(d,s),this.#t.backgroundColor)),a.join("")}alignCellContent(i,e){const o=this.#s.get(i);if(o?.has(e))return o.get(e);const{paddingLeft:h,paddingRight:n}=this.#t,r=h+n,s=e-r;if(s<=0){const d=[" ".repeat(r+this.#t.gap)];return o?o.set(e,d):this.#s.set(i,new Map([[e,d]])),d}let a;const c=String(i.content??"");if(a=c.includes(`
|
|
9
|
+
`)||c.includes("\r")?c.split(Lt):[c],this.#t.wordWrap&&i.wordWrap!==!1){const d=typeof this.#t.wordWrap=="object"?this.#t.wordWrap:{},m=typeof i.wordWrap=="object"?i.wordWrap:d;a=te(c,{...m,width:s}).split(`
|
|
10
|
+
`)}if(this.#t.truncate&&i.truncate!==!1){const d=typeof this.#t.truncate=="object"?this.#t.truncate:{},m=typeof i.truncate=="object"?i.truncate:d;a=a.map(u=>It(u,s,m))}else this.#t.truncateOverflow&&(a=a.map(d=>M(d)>s?It(d,s,{}):d));const l=a.map(d=>ne(d,s,i.hAlign??"left",h,n));return o?o.set(e,l):this.#s.set(i,new Map([[e,l]])),l}renderHorizontalBorder(i,e,o,h,n,r=-1){if(!this.#t.showBorders||!this.#t.border)return"";const s=this.#t.border,a=H(s,n),c=a.body.char,l=a.body.width,d=s.bodyJoin.char;if(n!=="middle"&&l===0)return"";let m=a.left.char,u=a.right.char;if(n==="middle"&&r!==-1){const f=i[o]?.[0]??void 0,b=i[r]?.[0]??void 0;f&&b&&f===b&&(m=d);const W=this.#t.columns-1,x=i[o]?.[W]??void 0,y=i[r]?.[W]??void 0;x&&y&&x===y&&(u=d)}const w=[],p=" ".repeat(this.#t.gap);m&&w.push(S(S(m,this.#t.borderColor),this.#t.backgroundColor));let g;for(let f=0;f<this.#t.columns;f+=1){const b=i[o]?.[f]??void 0,W=n==="middle"&&r!==-1?i[r]?.[f]??void 0:void 0;let x,y=!1;if(b&&(f===0||i[o]?.[f-1]!==b)&&(x=b,y=!0),b&&!y)continue;if(!b){const v=h[f]??0;if(g=l>0?c.repeat(v):" ".repeat(v),w.push(S(S(g,this.#t.borderColor),this.#t.backgroundColor)),f<this.#t.columns-1){const B=this.determineJoinChar(n,i,o,r,f,f+1);w.push(p),B.width>0&&w.push(S(S(B.char,this.#t.borderColor),this.#t.backgroundColor))}continue}const R=x?.colSpan??1;if(n==="middle"&&n==="middle"&&W&&b===W&&x){const v=x.vAlign==="middle",{firstRow:B,lastRow:C}=this.getCachedCellVerticalPosition(i,o,f,x),E=C-B+1,L=E%2===0,$=B+Math.ceil(E/2)-1,T=s.bodyJoin.width,j=at(h,f,R,T),z=this.alignCellContent(x,j),I=z.length;if(v&&L&&o===$)g=S(z[0]??"",this.#t.borderColor);else{let k=0;for(let _=B;_<=o;_+=1)k+=e[_]??1,_<o&&(k+=1);const N=k;if(N>=0&&N<I)g=S(z[N]??"",this.#t.foregroundColor);else{const _=h.slice(f,f+R).reduce((Kt,Ut)=>Kt+Ut,0)+(R-1)*(this.#t.gap+this.#t.border.bodyJoin.width);g=S(" ".repeat(_),this.#t.borderColor)}}w.push(S(g,this.#t.backgroundColor))}else{const v=[];for(let B=f;B<f+R;B+=1){const C=h[B]??0,E=l>0?c:" ";if(v.push(E.repeat(C+this.#t.gap)),B<f+R-1){const L=this.determineJoinChar(n,i,o,r,B,B+1);L.width>0&&v.push(L.char)}}g=v.join(""),w.push(S(S(g,this.#t.borderColor),this.#t.backgroundColor))}const A=f+R-1;if(A<this.#t.columns-1){const v=this.determineJoinChar(n,i,o,r,A,A+1);v.width>0&&w.push(S(S(v.char,this.#t.borderColor),this.#t.backgroundColor))}f+=R-1}return u&&w.push(S(S(u,this.#t.borderColor),this.#t.backgroundColor)),w.join("")}determineJoinChar(i,e,o,h,n,r=-1){if(!this.#t.showBorders||!this.#t.border)return{char:" ",width:this.#t.gap};const s=this.#t.border;if(i!=="middle"){const y=H(s,i),R=e[o]?.[n]??void 0,A=r===-1?n+1:r,v=e[o]?.[A]??void 0,B=R!==void 0&&v!==void 0&&R===v?y.body:y.join,{char:C,width:E}=B;return{char:C,width:E>0?E:this.#t.gap}}if(h===-1||r===-1)return{char:" ",width:this.#t.gap};const a=s.bodyJoin,c=e[o]?.[n]??void 0,l=e[h]?.[n]??void 0,d=e[o]?.[r]??void 0,m=e[h]?.[r]??void 0,u=c!==void 0&&l!==void 0&&c===l,w=d!==void 0&&m!==void 0&&d===m,p=c!==void 0&&d!==void 0&&c===d,g=l!==void 0&&m!==void 0&&l===m;let f;const b=H(s,"middle");u&&w?f=p?{char:" ",width:a.width}:a:u?f=s.joinLeft:w?f=s.joinRight:p&&g?f=b.body:p?f=s.topJoin:g?f=s.bottomJoin:f=s.joinJoin;const{char:W,width:x}=f;return{char:W,width:x>0?x:this.#t.gap}}renderGrid(i,e){if(i.length===0)return"";const o=[],h=se(i,e,this.#t,this.alignCellContent.bind(this),G),n=this.#t.showBorders&&this.#t.border?H(this.#t.border,"top"):void 0;n&&n.body.width>0&&o.push(this.renderHorizontalBorder(i,h,0,e,"top"));for(let s=0;s<i.length;s+=1){const a=h[s]??1;for(let l=0;l<a;l+=1)o.push(this.renderVisualRowContent(i,s,l,e,h));const c=this.#t.showBorders&&this.#t.border?H(this.#t.border,"middle"):void 0;if(s<i.length-1&&c&&c.body.width>0){const l=i[s],d=i[s+1];let m=!1;if(l&&d)for(let u=0;u<this.#t.columns;u+=1){const w=l[u],p=d[u];if(w!==p){m=!0;break}}m&&o.push(this.renderHorizontalBorder(i,h,s,e,"middle",s+1))}}const r=this.#t.showBorders&&this.#t.border?H(this.#t.border,"bottom"):void 0;return r&&r.body.width>0&&o.push(this.renderHorizontalBorder(i,h,i.length-1,e,"bottom")),o.join(`
|
|
11
|
+
`)}getCachedCellVerticalPosition(i,e,o,h){const n=this.#r.get(h);if(n)return n;const r=wt(i,e,o,h);return this.#r.set(h,r),r}}const ae={bodyJoin:{char:"│",width:1},bodyLeft:{char:"│",width:1},bodyRight:{char:"│",width:1},bottomBody:{char:"─",width:1},bottomJoin:{char:"┴",width:1},bottomLeft:{char:"└",width:1},bottomRight:{char:"┘",width:1},joinBody:{char:"─",width:1},joinJoin:{char:"┼",width:1},joinLeft:{char:"├",width:1},joinRight:{char:"┤",width:1},topBody:{char:"─",width:1},topJoin:{char:"┬",width:1},topLeft:{char:"┌",width:1},topRight:{char:"┐",width:1}},me={bodyJoin:{char:" ",width:1},bodyLeft:{char:" ",width:1},bodyRight:{char:" ",width:1},bottomBody:{char:"-",width:1},bottomJoin:{char:"-",width:1},bottomLeft:{char:"-",width:1},bottomRight:{char:"-",width:1},joinBody:{char:"-",width:1},joinJoin:{char:"-",width:1},joinLeft:{char:"-",width:1},joinRight:{char:"-",width:1},topBody:{char:"-",width:1},topJoin:{char:"-",width:1},topLeft:{char:"-",width:1},topRight:{char:"-",width:1}},we={bodyJoin:{char:"║",width:1},bodyLeft:{char:"║",width:1},bodyRight:{char:"║",width:1},bottomBody:{char:"═",width:1},bottomJoin:{char:"╩",width:1},bottomLeft:{char:"╚",width:1},bottomRight:{char:"╝",width:1},joinBody:{char:"═",width:1},joinJoin:{char:"╬",width:1},joinLeft:{char:"╠",width:1},joinRight:{char:"╣",width:1},topBody:{char:"═",width:1},topJoin:{char:"╦",width:1},topLeft:{char:"╔",width:1},topRight:{char:"╗",width:1}},pe={bodyJoin:{char:"│",width:1},bodyLeft:{char:"│",width:1},bodyRight:{char:"│",width:1},bottomBody:{char:"─",width:1},bottomJoin:{char:"┴",width:1},bottomLeft:{char:"╰",width:1},bottomRight:{char:"╯",width:1},joinBody:{char:"─",width:1},joinJoin:{char:"┼",width:1},joinLeft:{char:"├",width:1},joinRight:{char:"┤",width:1},topBody:{char:"─",width:1},topJoin:{char:"┬",width:1},topLeft:{char:"╭",width:1},topRight:{char:"╮",width:1}},ge={bodyJoin:{char:"┊",width:1},bodyLeft:{char:"┊",width:1},bodyRight:{char:"┊",width:1},bottomBody:{char:"┈",width:1},bottomJoin:{char:"┴",width:1},bottomLeft:{char:"└",width:1},bottomRight:{char:"┘",width:1},joinBody:{char:"┈",width:1},joinJoin:{char:"┼",width:1},joinLeft:{char:"├",width:1},joinRight:{char:"┤",width:1},topBody:{char:"┈",width:1},topJoin:{char:"┬",width:1},topLeft:{char:"┌",width:1},topRight:{char:"┐",width:1}},be={bodyJoin:{char:"|",width:1},bodyLeft:{char:"|",width:1},bodyRight:{char:"|",width:1},bottomBody:{char:"-",width:1},bottomJoin:{char:"|",width:1},bottomLeft:{char:"|",width:1},bottomRight:{char:"|",width:1},joinBody:{char:"-",width:1},joinJoin:{char:"|",width:1},joinLeft:{char:"|",width:1},joinRight:{char:"|",width:1},topBody:{char:"-",width:1},topJoin:{char:"|",width:1},topLeft:{char:"|",width:1},topRight:{char:"|",width:1}},xe={bodyJoin:{char:"|",width:1},bodyLeft:{char:"|",width:1},bodyRight:{char:"|",width:1},bottomBody:{char:"-",width:1},bottomJoin:{char:"+",width:1},bottomLeft:{char:"+",width:1},bottomRight:{char:"+",width:1},joinBody:{char:"-",width:1},joinJoin:{char:"+",width:1},joinLeft:{char:"+",width:1},joinRight:{char:"+",width:1},topBody:{char:"-",width:1},topJoin:{char:"+",width:1},topLeft:{char:"+",width:1},topRight:{char:"+",width:1}},ye={bodyJoin:{char:"",width:0},bodyLeft:{char:"",width:0},bodyRight:{char:"",width:0},bottomBody:{char:"",width:0},bottomJoin:{char:"",width:0},bottomLeft:{char:"",width:0},bottomRight:{char:"",width:0},joinBody:{char:"",width:0},joinJoin:{char:"",width:0},joinLeft:{char:"",width:0},joinRight:{char:"",width:0},topBody:{char:"",width:0},topJoin:{char:"",width:0},topLeft:{char:"",width:0},topRight:{char:"",width:0}},We={bodyJoin:{char:"█",width:1},bodyLeft:{char:"█",width:1},bodyRight:{char:"█",width:1},bottomBody:{char:"█",width:1},bottomJoin:{char:"█",width:1},bottomLeft:{char:"█",width:1},bottomRight:{char:"█",width:1},joinBody:{char:"█",width:1},joinJoin:{char:"█",width:1},joinLeft:{char:"█",width:1},joinRight:{char:"█",width:1},topBody:{char:"█",width:1},topJoin:{char:"█",width:1},topLeft:{char:"█",width:1},topRight:{char:"█",width:1}},Be={bodyJoin:{char:"┃",width:1},bodyLeft:{char:"┃",width:1},bodyRight:{char:"┃",width:1},bottomBody:{char:"━",width:1},bottomJoin:{char:"┻",width:1},bottomLeft:{char:"┗",width:1},bottomRight:{char:"┛",width:1},joinBody:{char:"━",width:1},joinJoin:{char:"╋",width:1},joinLeft:{char:"┣",width:1},joinRight:{char:"┫",width:1},topBody:{char:"━",width:1},topJoin:{char:"┳",width:1},topLeft:{char:"┏",width:1},topRight:{char:"┓",width:1}},ce=t=>t.reduce((i,e)=>{if(e===null)return i+1;if(typeof e=="object"&&!Array.isArray(e)){const o=typeof e.colSpan=="number"?e.colSpan:1;return i+(o<=0?1:o)}return i+1},0),le=/[\u0000-\u001F\u007F-\u009F]/gu,de=t=>t.replaceAll(le,"");class ue{#t;#e=[];#o=[];#s=[];#r=!0;#i=void 0;#n(i){const e=this.#t.onWarn;if(e){e(i);return}console.warn(i)}constructor(i={}){this.#t={...i,showFooter:i.showFooter??!0,showHeader:i.showHeader??!0,style:{border:ae,paddingLeft:1,paddingRight:1,...i.style}}}setHeaders(i){return i.length>0&&!Array.isArray(i[0])?this.#o=[i]:this.#o=i.map(e=>Array.isArray(e)?e:[e]),this.#r=!0,this.#i=void 0,this}setFooter(i){return i.length>0&&!Array.isArray(i[0])?this.#s=[i]:this.#s=i.map(e=>Array.isArray(e)?e:[e]),this.#r=!0,this.#i=void 0,this}addRow(i){if(!Array.isArray(i))throw new TypeError("Row must be an array");return this.#e.push(i),this.#r=!0,this.#i=void 0,this}addRows(...i){for(const e of i)this.addRow(e);return this.#r=!0,this.#i=void 0,this}getRows(){return this.#e.map(i=>[...i])}get rowCount(){return this.#e.length}removeRow(i){if(!Number.isInteger(i)||i<0||i>=this.#e.length)throw new RangeError(`Row index ${String(i)} is out of bounds (0..${String(this.#e.length-1)})`);return this.#e.splice(i,1),this.#r=!0,this.#i=void 0,this}clear(){return this.#e.length=0,this.#r=!0,this.#i=void 0,this}toString(){if(!this.#r&&this.#i!==void 0)return this.#i;const i=this.#t.showHeader?this.#o:[],e=this.#t.showFooter?this.#s:[],o=[...i,...this.#e,...e];if(o.length===0)return this.#i="",this.#r=!1,"";let h=0;for(const u of o){const w=u;Array.isArray(w)?h=Math.max(h,ce(w)):this.#n(`Unexpected non-array element found while calculating columns: ${JSON.stringify(w)}`)}if(h===0)return this.#i="",this.#r=!1,"";let n;Array.isArray(this.#t.columnWidths)?n=this.#t.columnWidths.length>=h?this.#t.columnWidths.slice(0,h):[...this.#t.columnWidths,...Array.from({length:h-this.#t.columnWidths.length}).fill(void 0)]:typeof this.#t.columnWidths=="number"&&(n=Array.from({length:h}).fill(this.#t.columnWidths));let r;const s=o.length;if(Array.isArray(this.#t.rowHeights)?r=this.#t.rowHeights:typeof this.#t.rowHeights=="number"&&(r=Array.from({length:s}).fill(this.#t.rowHeights)),n||o.some(u=>Array.isArray(u)&&u.some(w=>typeof w=="object"&&w!==null&&!Array.isArray(w)&&w.width!==void 0))&&(n=Array.from({length:h}).fill(void 0)),n&&Array.isArray(n)){const u=[...n];for(const w of o){const p=w;let g=0;for(const f of p){let b={};if(typeof f=="object"&&f!==null&&!Array.isArray(f)){const{content:W,href:x,...y}=f;b=y}b.width!==void 0?u[g]=b.width:b.maxWidth!==void 0&&u[g]!==void 0&&(u[g]=Math.min(u[g],b.maxWidth)),g+=b.colSpan??1}}n=u}const a={autoFlow:"row",backgroundColor:this.#t.style?.backgroundColor,balancedWidths:this.#t.balancedWidths??!1,border:this.#t.style?.border,borderColor:this.#t.style?.borderColor,columns:h,fixedColumnWidths:n,fixedRowHeights:r,foregroundColor:this.#t.style?.foregroundColor,gap:this.#t.gap??0,maxWidth:this.#t.maxWidth,onWarn:this.#t.onWarn,paddingLeft:this.#t.style?.paddingLeft,paddingRight:this.#t.style?.paddingRight,terminalWidth:this.#t.terminalWidth,truncate:this.#t.truncate??(n?.every(u=>typeof u=="number")||this.#t.maxWidth!==void 0&&!this.#t.balancedWidths),truncateOverflow:this.#t.truncateOverflow??!0,wordWrap:this.#t.wordWrap??!1},c=new ct(a),l=[];if(this.#t.columnDefaults)for(const[u,w]of this.#t.columnDefaults.entries())w&&(l[u]={...w});if(this.#t.colAligns)for(const[u,w]of this.#t.colAligns.entries())w!==void 0&&(l[u]={...l[u],hAlign:l[u]?.hAlign??w});const d=l.length>0,m=[];for(const[u,w]of o.entries()){const p=w;if(!Array.isArray(p)){this.#n(`Skipping non-array row while creating GridItems: ${JSON.stringify(p)}`);continue}const g=this.#t.showHeader?this.#o.length:0,f=this.#e.length,b=this.#t.showHeader&&u<g,W=this.#t.showFooter&&u>=g+f,x=b&&p.length===1&&h>1,y=W&&p.length===1&&h>1;let R=0;for(const A of p){let v=A,B={};if(typeof v=="object"&&v!==null&&!Array.isArray(v)){const{content:$,href:T,...j}=v;v=T?`\x1B]8;;${de(T)}\x1B\\${String($)}\x1B]8;;\x1B\\`:$,B=j}const C=d?l[R]:void 0;C&&(B={...B,hAlign:B.hAlign??C.hAlign,maxWidth:B.maxWidth??C.maxWidth,truncate:B.truncate??C.truncate,vAlign:B.vAlign??C.vAlign,wordWrap:B.wordWrap??C.wordWrap}),R+=B.colSpan??1,x&&(B.colSpan=h),y&&(B.colSpan=h);const E=this.#t.transformTabToSpace&&typeof v=="string"?v.replaceAll(" "," ".repeat(this.#t.transformTabToSpace)):v,{maxWidth:L}=B;m.push({backgroundColor:B.backgroundColor,colSpan:B.colSpan,content:E,foregroundColor:B.foregroundColor,hAlign:B.hAlign,maxWidth:L,rowSpan:B.rowSpan,truncate:B.truncate??(L===void 0?void 0:!0),vAlign:B.vAlign,wordWrap:B.wordWrap})}}return c.addItems(m),this.#i=c.toString(),this.#r=!1,this.#i}}const ve=t=>new ue(t);export{ve as N,Be as R,ye as a,be as c,ge as d,me as h,pe as i,ue as k,we as o,xe as r,ae as t,We as w};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createRequire as D}from"node:module";import{L as q}from"./target-merge-
|
|
1
|
+
import{createRequire as D}from"node:module";import{L as q}from"./target-merge-hsawesT4.js";import{advisoriesQuery as C,advisoriesIngest as M,advisoriesStatus as S,NATIVE_BINDING_VERSION as w}from"#native";let I;const R=e=>(I??=D(import.meta.url))(e),u=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,l=e=>{if(typeof u<"u"&&u.versions&&u.versions.node){const[t,s]=u.versions.node.split(".").map(Number);if(t>22||t===22&&s>=3||t===20&&s>=16)return u.getBuiltinModule(e)}return R(e)},{randomUUID:T}=l("node:crypto"),{existsSync:O,createWriteStream:L}=l("node:fs"),{mkdir:$,unlink:U,stat:x}=l("node:fs/promises"),{join:g,dirname:P}=l("node:path"),{Readable:k}=l("node:stream"),{pipeline:B}=l("node:stream/promises"),p=6;if(w!==p)throw new Error(`vis native binding ABI mismatch in advisories: expected ${p}, got ${w}. Rebuild via \`pnpm --filter @visulima/vis run build:native\` or reinstall the platform binding package.`);const X="https://osv-vulnerabilities.storage.googleapis.com",W=new Set(["osv-vulnerabilities.storage.googleapis.com"]);class j extends Error{cause="DB_NOT_FOUND";constructor(t){super(`No local advisory DB at ${t}. Run 'vis advisories sync' first.`),this.name="AdvisoryDbNotFoundError"}}class y extends Error{cause="SOURCE_NOT_ALLOWED";constructor(t){super(`Advisory source host '${t}' is not in the built-in allowlist. Add it to \`security.audit.advisories.allowedHosts\` if intentional.`),this.name="AdvisorySourceNotAllowedError"}}class _ extends Error{cause="SYNC_NETWORK";constructor(t,s){super(`Advisory sync failed for ${t}: ${s}. Check connectivity, proxy env vars, or --source.`),this.name="AdvisorySyncNetworkError"}}const v=e=>{const s=q("vis",{create:!0,cwd:e})??g(e,"node_modules",".cache","vis");return g(s,"advisories","db.sqlite")},V=(e,t)=>{let s;try{s=new URL(e)}catch{throw new y(e)}if(s.protocol!=="https:")throw new y(`${s.protocol}//${s.host}`);if(!new Set([...W,...t??[]]).has(s.host))throw new y(s.host);return s},J=async e=>{const t=e.dbPath??v(e.workspaceRoot);await $(P(t),{recursive:!0});const s=V(e.source,e.allowedHosts),n=new URL(`${e.ecosystem}/all.zip`,G(s.toString())),a=await H(t,e.ecosystem);let o=null;if(!e.force){const i=await E(n,{method:"HEAD"});if(i.ok&&(o=i.headers.get("etag"),o&&a&&o===a))return{advisoriesIngested:0,dbPath:t,durationMs:0,upToDate:!0}}const c=`${t}.${e.ecosystem}.${process.pid}.${T()}.zip.tmp`,r=await E(n,{method:"GET"});if(!r.ok||!r.body)throw new _(n.toString(),r.status);o||(o=r.headers.get("etag"));const m=r.headers.get("content-length"),d=m?Number.parseInt(m,10):null;let h=0;const b=L(c),f=k.fromWeb(r.body);e.onProgress&&d&&f.on("data",i=>{h+=i.byteLength,e.onProgress?.(h,d,"download")}),await B(f,b);try{const i=await M({dbPath:t,ecosystem:e.ecosystem,manifestEtag:o??void 0,zipPath:c},(A,N)=>e.onProgress?.(A,N,"ingest"));return{advisoriesIngested:i.advisoriesIngested,dbPath:t,durationMs:i.durationMs,upToDate:!1}}finally{await U(c).catch(()=>{})}},Z=(e,t)=>{if(e.length===0)return new Map;const s=t.dbPath??v(t.workspaceRoot),n=t.ecosystem??"npm";if(!O(s))throw new j(s);const a=e.map(r=>({ecosystem:n,name:r.name,version:r.version})),o=C(s,a),c=new Map;for(const[r,m]of e.entries()){const d=o[r];!d||d.vulnerabilities.length===0||c.set(m.name,d.vulnerabilities.map(h=>z(h)))}return c},ee=async(e,t)=>{const s=t??v(e);return S(s)},H=async(e,t)=>{try{await x(e)}catch{return null}return S(e).ecosystems.find(a=>a.name===t)?.manifestEtag??null},z=e=>({aliases:e.aliases.length>0?e.aliases:void 0,cvssScore:e.cvssScore??void 0,fixedVersions:e.fixedVersions,id:e.id,severity:F(e.severity),summary:e.summary}),F=e=>{const t=e.toUpperCase();return t==="CRITICAL"||t==="HIGH"||t==="MODERATE"||t==="LOW"?t:"UNKNOWN"},G=e=>e.endsWith("/")?e:`${e}/`,E=async(e,t)=>{try{return await fetch(e,t)}catch(s){throw new _(e.toString(),s instanceof Error?s.message:String(s))}};export{j as A,X as D,ee as g,Z as q,v as r,J as s};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createRequire as T}from"node:module";import{getAffectedProjects as W}from"@visulima/task-runner";import{i as A}from"./index-BjdW45xX.js";import{V as k}from"./vis-user-error-Bdg9NRuJ.js";import{r as B}from"./affected-shas-CAwpSPmP.js";let I;const R=e=>(I??=T(import.meta.url))(e),f=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,F=e=>{if(typeof f<"u"&&f.versions&&f.versions.node){const[t,s]=f.versions.node.split(".").map(Number);if(t>22||t===22&&s>=3||t===20&&s>=16)return f.getBuiltinModule(e)}return R(e)},{spawnSync:S}=F("node:child_process"),b=new Set(["deep","direct","none"]),O=e=>{const t=[],s=e.split("\0");for(let n=0;n<s.length;n++){const o=s[n];if(!o||o.length<4)continue;const c=o.slice(0,2),p=o.slice(3);if(p&&t.push(p),c.includes("R")||c.includes("C")){n+=1;const l=s[n];l&&t.push(l)}}return t},P=e=>{const t=S("git",["status","--porcelain","-z"],{cwd:e,encoding:"utf8"});return t.error||t.status!==0||typeof t.stdout!="string"?[]:O(t.stdout)},D=async(e,t,s={})=>{const n=e.downstream??"deep",o=e.upstream??"none";if(!b.has(n))throw new k(`Invalid --downstream value: "${n}". Must be "none", "direct", or "deep".`);if(!b.has(o))throw new k(`Invalid --upstream value: "${o}". Must be "none", "direct", or "deep".`);const{fileOwners:c,projectGraph:p,projects:l,workspaceRoot:h}=t,a=[];let{base:g}=e,{head:i}=e;if(!g||!i){const u=B({defaultBase:s.defaultBase,workspaceRoot:h});g=g||u.base,i=i||u.head,a.push(`Resolved affected refs from ${u.provider} (${u.notes.join("; ")})`)}const y=s.runningInCi??A,w=i==="HEAD"||i==="",$=e.uncommitted??(!y&&w);let d=[];if($)if(w){const j=(s.readWorkingTreeChanges??P)(h),C=Object.values(l).map(r=>r.root?.replace(/\/$/,"")).filter(r=>!!r&&r!==".");d=j.filter(r=>c!==void 0&&Object.hasOwn(c,r)||C.some(v=>r===v||r.startsWith(`${v}/`)));const _=j.length-d.length;d.length>0&&a.push(`including ${d.length} uncommitted working-tree file(s)`),_>0&&a.push(`ignoring ${_} uncommitted path(s) outside any project (untracked scratch would otherwise mark every project affected)`)}else a.push(`ignoring --uncommitted: --head=${i} pins the comparison to a commit, not the working tree`);const m=await W({additionalChangedFiles:d,base:g,downstream:n,fileOwners:c,head:i,ignoredFiles:s.affectedIgnore,projectGraph:p,projects:l,upstream:o,workspaceRoot:h});return m.ignoredFiles.length>0&&a.push(`ignoring ${m.ignoredFiles.length} changed path(s) outside any project matching affectedIgnore`),{...m,notes:a,uncommittedFileCount:d.length}};export{D as s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createRequire as l}from"node:module";import{z as g}from"./index-
|
|
1
|
+
import{createRequire as l}from"node:module";import{z as g}from"./index-CVBR-Kit.js";import{y as b}from"./isAccessibleSync-DYKTrrvc-K2xhg6sV.js";let d;const E=e=>(d??=l(import.meta.url))(e),u=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,h=e=>{if(typeof u<"u"&&u.versions&&u.versions.node){const[t,r]=u.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return u.getBuiltinModule(e)}return E(e)},{spawnSync:p}=h("node:child_process"),f="0000000000000000000000000000000000000000",A=e=>{if(b(e))try{const t=g(e);return JSON.parse(t)}catch{return}},I=(e,t)=>{const r=p("git",e,{cwd:t,encoding:"utf8"});if(!(r.error||typeof r.status!="number"||r.status!==0))return typeof r.stdout=="string"?r.stdout.trim():void 0},_=e=>typeof e=="string"&&e.length>0&&e!==f,R=(e,t,r)=>{const o=[],s=e.GITHUB_BASE_REF,i=e.GITHUB_SHA??"HEAD";if(s&&s.length>0)return o.push(`pull_request: $GITHUB_BASE_REF=${s}`),{base:`origin/${s}`,head:i,notes:o,provider:"github"};const c=e.GITHUB_EVENT_PATH,a=c?r(c):void 0;if(a){const n=typeof a.before=="string"?a.before:void 0;if(_(n))return o.push(`push: event.before=${n}`),{base:n,head:i,notes:o,provider:"github"}}return o.push(`fallback: origin/${t}`),{base:`origin/${t}`,head:i,notes:o,provider:"github"}},C=(e,t)=>{const r=[],o=e.CI_COMMIT_SHA??"HEAD";if(e.CI_PIPELINE_SOURCE==="merge_request_event"){const a=e.CI_MERGE_REQUEST_DIFF_BASE_SHA;if(_(a))return r.push(`merge_request: $CI_MERGE_REQUEST_DIFF_BASE_SHA=${a}`),{base:a,head:o,notes:r,provider:"gitlab"};const n=e.CI_MERGE_REQUEST_TARGET_BRANCH_NAME;if(n&&n.length>0)return r.push(`merge_request: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME=${n}`),{base:`origin/${n}`,head:o,notes:r,provider:"gitlab"}}const i=e.CI_COMMIT_BEFORE_SHA;if(_(i))return r.push(`push: $CI_COMMIT_BEFORE_SHA=${i}`),{base:i,head:o,notes:r,provider:"gitlab"};const c=e.CI_DEFAULT_BRANCH??t;return r.push(`fallback: origin/${c}`),{base:`origin/${c}`,head:o,notes:r,provider:"gitlab"}},S=(e,t)=>{const r=[],o=e.BUILDKITE_COMMIT??"HEAD",s=e.BUILDKITE_PULL_REQUEST_BASE_BRANCH;return s&&s.length>0?(r.push(`pull_request: $BUILDKITE_PULL_REQUEST_BASE_BRANCH=${s}`),{base:`origin/${s}`,head:o,notes:r,provider:"buildkite"}):(r.push(`fallback: origin/${t} (buildkite has no canonical previous-build SHA env)`),{base:`origin/${t}`,head:o,notes:r,provider:"buildkite"})},B=(e,t)=>{const r=[],o=e.CIRCLE_SHA1??"HEAD",s=e.CIRCLE_PR_BASE_BRANCH;return s&&s.length>0?(r.push(`pull_request: $CIRCLE_PR_BASE_BRANCH=${s}`),{base:`origin/${s}`,head:o,notes:r,provider:"circleci"}):(r.push(`fallback: origin/${t} (circleci has no canonical previous-build SHA env)`),{base:`origin/${t}`,head:o,notes:r,provider:"circleci"})},v=(e,t,r)=>{const o=[],s=t(["merge-base","HEAD",`origin/${e}`],r);return s&&s.length>0?(o.push(`local: git merge-base HEAD origin/${e}=${s}`),{base:s,head:"HEAD",notes:o,provider:"local"}):(o.push(`local fallback: origin/${e} (no merge-base available)`),{base:`origin/${e}`,head:"HEAD",notes:o,provider:"local"})},m=e=>{const t=e?.env??process.env,r=e?.defaultBase??"main",o=e?.readEventPayload??A,s=e?.runGit??I,i=e?.workspaceRoot??process.cwd();return t.GITHUB_ACTIONS==="true"?R(t,r,o):t.GITLAB_CI==="true"?C(t,r):t.BUILDKITE==="true"?S(t,r):t.CIRCLECI==="true"?B(t,r):v(r,s,i)};export{m as r};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as T}from"node:module";import{readLastRunSummary as _}from"@visulima/task-runner";import{a as $}from"./failure-log-
|
|
1
|
+
import{createRequire as T}from"node:module";import{readLastRunSummary as _}from"@visulima/task-runner";import{a as $}from"./failure-log-B91LvYWw.js";import{n as v,o as P,q as D,f as j,s as E,t as N,u as A}from"../packem_chunks/cli-main.js";import{c as R}from"./formatBytes-BHAzNIrn-CLYsxlUj.js";import{v as x,U as y,e as B,n as H}from"./path-CxEa27Rz-pjheKk6v.js";import{a as q,b as C,e as U}from"./ai-analysis-DSQQDFU9.js";let I;const F=e=>(I??=T(import.meta.url))(e),h=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,O=e=>{if(typeof h<"u"&&h.versions&&h.versions.node){const[t,n]=h.versions.node.split(".").map(Number);if(t>22||t===22&&n>=3||t===20&&n>=16)return h.getBuiltinModule(e)}return F(e)},{readFile:L,writeFile:M}=O("node:fs/promises"),k=32*1024,W=(e,t)=>{if(e.length<=t)return e;const n=e.slice(-t),o=e.length-n.length;return`[…${String(o)} bytes truncated from head…]
|
|
2
2
|
${n}`},J=async(e,t)=>t===void 0?_(e,{dataDirectory:R(e)}):j(e,t),pe=async(e,t,n={})=>{const o=n.terminalOutputLimit??k,[r,i]=await Promise.all([$(e,t),J(e,n.runId)]),s=i?v(i,t):void 0;if(!r&&!s)return;let a,c;if(i&&s){const u=await P(e,i.id),f=u?v(u,t):void 0;a=D(s.hashDetails,f?.hashDetails),c=u?.id}const d=r?.terminalOutput??"";return{command:r?.command??void 0,cwd:r?.cwd??void 0,dependencies:s?.dependencies??[],duration:s?.duration,exitCode:r?.exitCode??s?.exitCode,hash:s?.hash??r?.hash,hashDetails:s?.hashDetails,hashDiff:a,previousRunId:c,project:s?.target.project,runId:i?.id??r?.runId,status:r?.status??(s?K(s):void 0),target:s?.target.target,taskId:t,terminalOutput:W(d,o),terminalOutputCaptured:!!r,timestamp:r?.timestamp??s?.endTime??s?.startTime}},K=e=>{if(e.exitCode!==void 0&&e.exitCode!==0)return"failure";switch(e.cacheStatus){case"HIT":return"local-cache";case"REMOTE_HIT":return"remote-cache";case"SKIPPED":return"skipped";default:return e.exitCode===0?"success":void 0}},Y=3600*1e3,w=80,V=new Set(["high","low","medium"]),X=()=>`You are an expert software engineer helping fix a failing build/test/lint task.
|
|
3
3
|
|
|
4
4
|
You will be given:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as _}from"node:module";import{l as L}from"./target-options-
|
|
1
|
+
import{createRequire as _}from"node:module";import{l as L}from"./target-options-Bxb0Y5qa.js";import{e as q}from"./path-CxEa27Rz-pjheKk6v.js";let P;const R=e=>(P??=_(import.meta.url))(e),g=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,b=e=>{if(typeof g<"u"&&g.versions&&g.versions.node){const[t,r]=g.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return g.getBuiltinModule(e)}return R(e)},{createRequire:j}=b("node:module"),{pathToFileURL:F}=b("node:url"),w=["temporal","urlpattern","reporterror","regexp-escape","promise-try","float16array","error-iserror","navigator-locks"],x=e=>{const t=e.trim().toLowerCase();return t===""||t==="all"||t==="1"||t==="true"?w:t.split(",").map(r=>r.trim()).filter(r=>w.includes(r))},E=async(e,t)=>{try{const o=j(q(t,"__vis_polyfill_resolver__.js")).resolve(e);return await import(F(o).href)}catch{return}},A=async e=>{if(globalThis.Temporal!==void 0)return;const t=await E("@js-temporal/polyfill",e);t?.Temporal===void 0?process.stderr.write(`vis: --polyfill temporal requested but @js-temporal/polyfill is not installed in this project.
|
|
2
2
|
`):globalThis.Temporal=t.Temporal},I=async e=>{if(globalThis.URLPattern!==void 0)return;const t=await E("urlpattern-polyfill",e);t?.URLPattern===void 0?process.stderr.write(`vis: --polyfill urlpattern requested but urlpattern-polyfill is not installed in this project.
|
|
3
3
|
`):globalThis.URLPattern=t.URLPattern},N=()=>{typeof globalThis.reportError!="function"&&(globalThis.reportError=e=>{const t=e instanceof Error?e.stack??`${e.name}: ${e.message}`:String(e);process.stderr.write(`${t}
|
|
4
4
|
`)})},O=()=>{if(typeof RegExp.escape=="function")return;const e=new Set(String.raw`^$\.*+?()[]{}|/`),t={"\f":String.raw`\f`,"\n":String.raw`\n`,"\r":String.raw`\r`," ":String.raw`\t`,"\v":String.raw`\v`},r=/\s/u,o=l=>l<=255?String.raw`\x${l.toString(16).padStart(2,"0")}`:String.raw`\u${l.toString(16).padStart(4,"0")}`;RegExp.escape=l=>{if(typeof l!="string")throw new TypeError("RegExp.escape requires a string argument");let i="",s=!0;for(const a of l){const u=a.codePointAt(0);s&&/[\dA-Za-z]/u.test(a)?i+=o(u):e.has(a)?i+=`\\${a}`:t[a]!==void 0?i+=t[a]:r.test(a)?i+=o(u):i+=a,s=!1}return i}},k=()=>{typeof Promise.try!="function"&&(Promise.try=function(t,...r){const o=typeof this=="function"?this:Promise;return new o((n,l)=>{try{n(t(...r))}catch(i){l(i)}})})},h=e=>{const t=new Float32Array(1),r=new Uint32Array(t.buffer);t[0]=e;const o=r[0],n=o>>>16&32768,l=o>>>23&255,i=o&8388607;if(l===255)return i===0?n|31744:n|32256;const s=l-127+15;if(s>=31)return n|31744;if(s<=0){if(s<-10)return n;const f=i|8388608,c=14-s;let p=f>>c;const m=f&(1<<c)-1,d=1<<c-1;return(m>d||m===d&&(p&1)===1)&&(p+=1),n|p}let a=s<<10|i>>13;const u=i&8191;return(u>4096||u===4096&&(a&1)===1)&&(a+=1),n|a},v=e=>{const t=e&32768?-1:1,r=e>>10&31,o=e&1023;return r===0?t*o*2**-24:r===31?o?Number.NaN:t*Number.POSITIVE_INFINITY:t*(1+o/1024)*2**(r-15)},U=()=>{const e=Math;typeof e.f16round!="function"&&(e.f16round=r=>v(h(r)));const t=DataView.prototype;typeof t.getFloat16!="function"&&(t.getFloat16=function(o,n){return v(this.getUint16(o,n))}),typeof t.setFloat16!="function"&&(t.setFloat16=function(o,n,l){this.setUint16(o,h(n),l)})},C=()=>{typeof Error.isError!="function"&&(Error.isError=e=>typeof e=="object"&&e!==null&&Object.prototype.toString.call(e)==="[object Error]")},V=()=>{const e=globalThis,t=e.navigator;if(t?.locks!==void 0)return;const r=new Map,o=new Set,n=s=>s.reason??(typeof DOMException=="function"?new DOMException("The lock request is aborted","AbortError"):Object.assign(new Error("The lock request is aborted"),{name:"AbortError"})),i={request:async(s,a,u)=>{const f=typeof a!="function",c=(f?a:{})??{},p=f?u:a,m=c.mode==="shared"?"shared":"exclusive";if(c.signal?.aborted)throw n(c.signal);if(c.ifAvailable===!0&&o.has(s))return p(null);const d=r.get(s)??Promise.resolve();let y;const S=new Promise(T=>{y=T});if(r.set(s,d.then(()=>S)),await d.catch(()=>{}),c.signal?.aborted)throw y(),n(c.signal);o.add(s);try{return await p({mode:m,name:s})}finally{o.delete(s),y()}}};t===void 0?Object.defineProperty(e,"navigator",{configurable:!0,enumerable:!0,value:{locks:i},writable:!0}):Object.defineProperty(t,"locks",{configurable:!0,enumerable:!0,value:i})},$={"error-iserror":C,float16array:U,"navigator-locks":V,"promise-try":k,"regexp-escape":O,reporterror:N},M=async(e,t=process.cwd())=>{const r=x(e);await Promise.all(r.map(async o=>{o==="temporal"?await A(t):o==="urlpattern"?await I(t):$[o]?.()}))},H=async e=>{for(const[t,r]of Object.entries(L(e,!0)))process.env[t]===void 0&&(process.env[t]=r);process.env.VIS_POLYFILL!==void 0&&await M(process.env.VIS_POLYFILL,e)};export{H as p};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createRequire as v}from"node:module";import{t as T}from"./compile-cache-DoMHRsRZ.js";import{l as w,i as R,a as j,b as M,c as m,g as S}from"./package-version-
|
|
1
|
+
import{createRequire as v}from"node:module";import{t as T}from"./compile-cache-DoMHRsRZ.js";import{l as w,i as R,a as j,b as M,c as m,g as S}from"./package-version-C5EPMgRw.js";import{i as $}from"./index-BjdW45xX.js";let _;const x=s=>(_??=v(import.meta.url))(s),t=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,b=s=>{if(typeof t<"u"&&t.versions&&t.versions.node){const[e,o]=t.versions.node.split(".").map(Number);if(e>22||e===22&&o>=3||e===20&&o>=16)return t.getBuiltinModule(s)}return x(s)},{createRequire:y}=b("node:module");let N;const O=s=>(N??=y(import.meta.url))(s),r=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,f=s=>{if(typeof r<"u"&&r.versions&&r.versions.node){const[e,o]=r.versions.node.split(".").map(Number);if(e>22||e===22&&o>=3||e===20&&o>=16)return r.getBuiltinModule(s)}return O(s)},{execFileSync:C}=f("node:child_process"),{totalmem:I}=f("node:os"),q=/--max-old-space-size=(\d+)/,z=/--max-semi-space-size=(\d+)/,E=s=>Math.floor(I()/1024/1024*s),P=s=>s<=512?4:s<=1024?8:s<=2048?16:s<=4096?32:s<=8192?64:Math.floor(Math.log2(s))*8,d=(s,e)=>{for(const o of e){const n=s.exec(o);if(n)return Number.parseInt(n[1],10)}},B=s=>{const o=[...w()],n=[...R()],a=d(q,o),p=d(z,o);if(a!==void 0&&p!==void 0)return;const l=a??E(.75),g=p??P(l),c=[];if(a===void 0&&c.push(`--max-old-space-size=${String(l)}`),p===void 0&&c.push(`--max-semi-space-size=${String(g)}`),c.length!==0)try{C(j(),[...c,...o,...n.slice(1)],{env:M(),stdio:"inherit"}),m(0)}catch(h){const u=h.status;m(typeof u=="number"?u:1)}},V=()=>{process.env.VIS_VERSION=S()},H=s=>{!process.stdout.isTTY||$||process.env.TERM==="dumb"||process.stdout.write(`\x1B]0;${s}\x07`)},L=new Set(["","--help","--version","-h","-v","completion","dlx","exec","x"]),i=process.argv[2]??"";!L.has(i)&&!process.argv.includes("--help")&&!process.argv.includes("-h")&&B();process.argv.includes("--no-color")&&(process.env.NO_COLOR="1",process.env.FORCE_COLOR="0");V();T();(async()=>{if(i==="__pm-shim"){const{dispatchShim:e}=await import("../packem_chunks/dispatch.js");e(process.argv[3]??"",process.argv.slice(4));return}if(i==="x"){const{runLeanX:e}=await import("../packem_chunks/lean.js");await e(process.argv.slice(3));return}if(i==="exec"||i==="dlx"){const{runExecCli:e}=await import("../packem_chunks/cli-exec.js");await e();return}const{runCli:s}=await import("../packem_chunks/cli-main.js").then(e=>e.ax);await s()})();export{H as s};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createRequire as W}from"node:module";import"./index-CVBR-Kit.js";import{e as h}from"./path-CxEa27Rz-pjheKk6v.js";import{y as g}from"./isAccessibleSync-DYKTrrvc-K2xhg6sV.js";import{p as O}from"./readJsonSync-CbryXYxN-BxKjDZnF.js";let S;const B=e=>(S??=W(import.meta.url))(e),_=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,w=e=>{if(typeof _<"u"&&_.versions&&_.versions.node){const[s,n]=_.versions.node.split(".").map(Number);if(s>22||s===22&&n>=3||s===20&&n>=16)return _.getBuiltinModule(e)}return B(e)},{readdirSync:y,statSync:M}=w("node:fs"),P=["preinstall","install","postinstall","prepare"],$=e=>{const s=h(e,"node_modules");if(!g(s))return[];const n=new Map,o=(p,f="")=>{let l;try{l=y(p)}catch{return}for(const r of l){const i=h(p,r);if(r.startsWith("@")){o(i,`${r}/`);continue}if(r===".pnpm"&&f===""){let u;try{u=y(i)}catch{continue}for(const a of u){const c=h(i,a,"node_modules");g(c)&&o(c)}continue}if(r.startsWith("."))continue;const m=f+r,t=h(i,"package.json");try{if(!M(i).isDirectory()||!g(t))continue;const u=O(t),a=u.scripts??{},c=P.filter(v=>a[v]);!a.preinstall&&!a.install&&!a.postinstall&&g(h(i,"binding.gyp"))&&c.push("install (binding.gyp)"),c.length>0&&!n.has(m)&&n.set(m,{directory:i,hooks:c,name:m,version:typeof u.version=="string"?u.version:void 0});const d=h(i,"node_modules");g(d)&&o(d)}catch{}}};return o(s),[...n.values()]},b=e=>{const s=e.startsWith("@"),n=e.indexOf("@",s?1:0);return n===-1?{name:e}:{name:e.slice(0,n),version:e.slice(n+1)}},k=(e,s,n)=>{for(const[o,p]of Object.entries(s)){if(!p)continue;if(o.endsWith("@*")){if(o.slice(0,-2)===e.name)return!0;continue}if(o.endsWith("*")){if(e.name.startsWith(o.slice(0,-1)))return!0;continue}const{name:f,version:l}=b(o);if(f===e.name&&(!n||l===void 0||e.version===l))return!0}return!1},q=(e,s,n={})=>{const o=n.pinVersions===!0,p=$(e),f=[],l=[],r=new Map(p.map(t=>[t.name,t]));for(const t of p)k(t,s,o)?l.push(t):f.push(t);const i=[],m=[];for(const[t,u]of Object.entries(s)){if(!u)continue;if(t.endsWith("@*")){const v=t.slice(0,-2);r.has(v)||i.push(t);continue}if(t.endsWith("*")){const v=t.slice(0,-1);[...r.keys()].some(j=>j.startsWith(v))||i.push(t);continue}const{name:a,version:c}=b(t),d=r.get(a);if(!d){i.push(t);continue}o&&c!==void 0&&c!=="*"&&d.version&&d.version!==c&&m.push({from:t,to:`${a}@${d.version}`})}return{excess:i,installed:l,unapproved:f,versionDrift:m}},A=(e,s)=>q(e,s).unapproved.map(n=>`${n.name} (${n.hooks.join(", ")})`);export{q as a,A as s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as i}from"./resolve-runtime-
|
|
1
|
+
import{r as i}from"./resolve-runtime-lJ5L9gU4.js";const t=e=>{if(e!==null&&typeof e=="object"&&"runtime"in e){const r=e.runtime;if(typeof r=="string")return r}},u=(e,r)=>{const n=i(r,{config:e.visConfig?.runtime,flag:t(e.options)});return n.deferredNotice!==void 0&&e.logger?.warn?.(n.deferredNotice),n},a=e=>e.runtime==="bun"?"bun":void 0;export{a,u as r};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as ie}from"node:module";import{
|
|
1
|
+
import{createRequire as ie}from"node:module";import{z as ue}from"./index-CVBR-Kit.js";import{e as I}from"./path-CxEa27Rz-pjheKk6v.js";import{r as fe}from"./docker-1jgKW5Wd.js";import{p as oe}from"./readJsonSync-CbryXYxN-BxKjDZnF.js";import{e as me}from"./license-DvlYdo6T.js";import{S as he}from"./lockfile-DhHAaHN5.js";import{a as _e}from"./index-B4AjSxHU.js";let ae;const pe=e=>(ae??=ie(import.meta.url))(e),J=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,se=e=>{if(typeof J<"u"&&J.versions&&J.versions.node){const[t,n]=J.versions.node.split(".").map(Number);if(t>22||t===22&&n>=3||t===20&&n>=16)return J.getBuiltinModule(e)}return pe(e)},{randomUUID:le}=se("node:crypto"),{readdirSync:de}=se("node:fs"),H=e=>e.replaceAll(/[^\w.~-]/g,t=>`%${(t.codePointAt(0)??0).toString(16).toUpperCase().padStart(2,"0")}`),j=(e,t)=>{const n=e.toLowerCase();if(n.startsWith("@")){const s=n.indexOf("/");if(s>0){const c=n.slice(0,s),p=n.slice(s+1);return`pkg:npm/${H(c)}/${H(p)}@${H(t)}`}}return`pkg:npm/${H(n)}@${H(t)}`},d={ARRAY:"array",BOOLEAN:"boolean",DATE:"date",FUNCTION:"function",JSTOXML_OBJECT:"jstoxml-object",NULL:"null",NUMBER:"number",OBJECT:"object",STRING:"string"},ge=[d.STRING,d.NUMBER,d.BOOLEAN],ye='<?xml version="1.0" encoding="UTF-8"?>',ee=["_selfCloseTag","_attrs"],Oe=(e="",t=0)=>e.repeat(t),W=e=>Array.isArray(e)&&d.ARRAY||typeof e===d.OBJECT&&e!==null&&e._name&&d.JSTOXML_OBJECT||e instanceof Date&&d.DATE||e===null&&d.NULL||typeof e,re=e=>e.startsWith("<![CDATA["),ce=(e="",t={},n)=>{let s=e;if(typeof e===d.STRING){if(re(e))return e;const c=new RegExp(`(${Object.keys(t).join("|")})(?!(\\w|#)*;)`,"g");s=String(e).replace(c,(p,m)=>t[m]||"")}return typeof n=="function"?n(s):s},Se=(e={},t,n,s)=>(Array.isArray(e)?e:Object.entries(e).map(([p,m])=>({[p]:m}))).reduce((p,m)=>{const _=Object.keys(m)[0],O=m[_];if(typeof n===d.FUNCTION&&n(_,O))return p;const S=t?ce(O,t):O,v=!s&&S===!0?"":`="${S}"`;return p.push(`${_}${v}`),p},[]),Ce=(e={},t,n,s)=>{const c=Se(e,t,n,s);return c.length===0?"":` ${c.join(" ")}`},Ae=(e={})=>Object.keys(e).map(t=>({_name:t,_content:e[t]})),ve=e=>ge.includes(W(e)),Te=e=>!e.match("<"),Re=({header:e,isOutputStart:t})=>e&&t?typeof e===d.BOOLEAN?ye:e:"",te={"<":"<",">":">","&":"&",'"':"""},B=(e={},t={})=>{const{depth:n=0,indent:s,_isFirstItem:c,_isOutputStart:p=!0,header:m,attributeReplacements:_={},attributeFilter:O,attributeExplicitTrue:S=!1,contentReplacements:v={},contentMap:x,selfCloseTags:L=!0}=t,Y=typeof _=="boolean"&&!_?{}:{...te,..._},k=typeof v=="boolean"&&!v?{}:{...te,...v},U=typeof s=="string",D=Oe(s,n),G=W(e),w=Re({header:m,isOutputStart:p}),b=p&&!w&&c&&n===0,X=U&&!b?`
|
|
2
2
|
`:"";let C="";switch(G){case d.JSTOXML_OBJECT:{const{_name:h,_content:g}=e;if(g===null&&typeof x!="function"){C=`${X}${D}${h}`;break}if(Array.isArray(g)&&g.every(ve))return g.map(F=>B({_name:h,_content:F},{...t,depth:n,_isOutputStart:!1})).join("");if(ee.includes(h))break;const y=B(g,{...t,depth:n+1,_isOutputStart:b}),M=W(y),R=Te(y),r=re(y),o=`${X}${D}`;if(h==="_comment"){C+=`${o}<!-- ${g} -->`;break}const i=M==="undefined"||y==="",a=L,l=e._selfCloseTag,f=typeof l===d.BOOLEAN?i&&l:i&&a,E=f?"/":"",$=Ce(e._attrs,Y,O,S),T=`<${h}${$}${E}>`,A=U&&!R&&!r?`
|
|
3
|
-
${D}`:"",N=f?"":`${y}${A}</${h}>`;C+=`${o}${T}${N}`;break}case d.OBJECT:{const h=Object.keys(e);C=h.map((u,y)=>{const M={...t,_isFirstItem:y===0,_isLastItem:y+1===h.length,_isOutputStart:b},R={_name:u};if(W(e[u])===d.OBJECT&&(ee.forEach(i=>{const a=e[u][i];typeof a<"u"&&(R[i]=a,delete e[u][i])}),typeof e[u]._content<"u"&&Object.keys(e[u]).length>1)){const i=Object.assign({},e[u]);delete i._content,R._content=[...Ae(i),e[u]._content]}return typeof R._content>"u"&&(R._content=e[u]),B(R,M)},t).join("");break}case d.FUNCTION:{const h=e(t);C=B(h,t);break}case d.ARRAY:{C=e.map((g,u)=>{const y={...t,_isFirstItem:u===0,_isLastItem:u+1===e.length,_isOutputStart:b};return B(g,y)}).join("");break}default:{C=ce(e,k,x);break}}return`${w}${C}`},Q=e=>{try{return oe(e)}catch{return}},Ee=e=>{if(e.length===0||e.includes("..")||e.startsWith(".")||e.includes("\0")||e.includes("\\"))return!1;if(e.startsWith("@")){const t=e.indexOf("/");return t>1&&!e.includes("/",t+1)}return!e.includes("/")},$e=e=>e.length>0&&!e.includes("/")&&!e.includes("\\")&&!e.includes("..")&&!e.includes("\0"),be=(e,t,n)=>{const c=`${t.replaceAll("/","+")}@${n}`,p=I(e,"node_modules",".pnpm"),m=Q(I(p,c,"node_modules",t,"package.json"));if(m)return m;let _;try{_=de(p)}catch{return}const O=`${c}_`;for(const S of _){if(!S.startsWith(O))continue;const v=Q(I(p,S,"node_modules",t,"package.json"));if(v)return v}},Ne=(e,t,n)=>{const s=Q(I(e,"node_modules",t,"package.json"));return s?.version===n?s:void 0},xe=(e,t,n)=>{if(!(!Ee(t)||!$e(n)))return be(e,t,n)??Ne(e,t,n)},ke={sha256:"SHA-256",sha384:"SHA-384",sha512:"SHA-512"},De={sha256:64,sha384:96,sha512:128},we=e=>{const t={name:e.name,version:e.version},{integrity:n}=e;return n&&n.hex.length===De[n.algorithm]&&(t.hash={alg:ke[n.algorithm],content:n.hex}),e.dependencies&&(t.dependencies=e.dependencies),e.peerDependencies&&(t.peerDependencies=e.peerDependencies),e.optionalDependencies&&(t.optionalDependencies=e.optionalDependencies),t},je=[{file:"pnpm-lock.yaml",type:"pnpm"},{file:"npm-shrinkwrap.json",type:"npm"},{file:"package-lock.json",type:"npm"},{file:"yarn.lock",type:"yarn"},{file:"bun.lock",type:"bun"}],Ie=e=>{for(const{file:t,type:n}of je){let s;try{s=ue(I(e,t))}catch{continue}const c=new Map;for(const p of he(s,n))c.set(`${p.name}@${p.version}`,we(p));return{packages:c,type:n}}},Le=e=>{const t=e.indexOf(":");return t<=0?e:e.slice(0,t)==="npm"?e.slice(t+1):e},z=(e,t,n)=>{const s=n.get(e);if(!s||s.size===0)return;if(s.has(t))return t;const c=Le(t);if(c!==t&&s.has(c))return c;const p=[...s],m=_e.maxSatisfying(p,c,{includePrerelease:!0});return m||p[0]},Me="1.7",Pe="CycloneDX",Be="http://cyclonedx.org/schema/bom-1.7.schema.json",Ve="@visulima/vis",ne=e=>{try{return oe(e)}catch{return}},Ue=e=>{if(e){if(typeof e=="string")return e;if(typeof e=="object"&&e.name)return e.email?`${e.name} <${e.email}>`:e.name}},Xe=e=>{if(e)return typeof e=="string"?e:e.url},Fe=e=>{if(e)return typeof e=="string"?e:e.url},Je=e=>{const t=[];e.homepage&&t.push({type:"website",url:e.homepage});const n=Xe(e.repository);n&&t.push({type:"vcs",url:n});const s=Fe(e.bugs);return s&&t.push({type:"issue-tracker",url:s}),t.length>0?t:void 0},He=e=>e==="application"||e==="service"||e==="tool"?"application":"library",K=(e,t)=>{if(!t)return;t.description&&(e.description=t.description);const n=Ue(t.author);n&&(e.author=n);const s=me(t);s&&(e.licenses=s);const c=Je(t);c&&(e.externalReferences=c)},
|
|
4
|
-
`},qe=e=>{const t=[];return e.timestamp&&t.push({timestamp:e.timestamp}),e.lifecycles&&e.lifecycles.length>0&&t.push({_content:e.lifecycles.map(n=>{const s=[];return n.phase&&s.push({phase:n.phase}),n.name&&s.push({name:n.name}),n.description&&s.push({description:n.description}),{_content:s,_name:"lifecycle"}}),_name:"lifecycles"}),e.tools?.components&&t.push({_content:[{_content:e.tools.components.map(n=>Z(n)),_name:"components"}],_name:"tools"}),e.component&&t.push(Z(e.component)),{_content:t,_name:"metadata"}},Z=e=>{const t={type:e.type};e["bom-ref"]&&(t["bom-ref"]=e["bom-ref"]);const n=[];e.group&&n.push({group:e.group}),n.push({name:e.name}),e.version&&n.push({version:e.version}),e.description&&n.push({description:e.description}),e.author&&n.push({author:e.author}),e.hashes&&e.hashes.length>0&&n.push({_content:e.hashes.map(c=>({_attrs:{alg:c.alg},_content:c.content,_name:"hash"})),_name:"hashes"});const s=Ye(e.licenses);return s&&n.push(s),e.purl&&n.push({purl:e.purl}),e.scope&&n.push({scope:e.scope}),e.externalReferences&&e.externalReferences.length>0&&n.push({_content:e.externalReferences.map(c=>({_attrs:{type:c.type},_content:[{url:c.url}],_name:"reference"})),_name:"externalReferences"}),{_attrs:t,_content:n,_name:"component"}},Ye=e=>{if(!e||e.length===0)return;const t=[];for(const n of e){if("expression"in n){t.push({expression:n.expression});continue}const s=[];"id"in n.license&&n.license.id?s.push({id:n.license.id}):"name"in n.license&&n.license.name&&s.push({name:n.license.name}),t.push({_content:s,_name:"license"})}return{_content:t,_name:"licenses"}},Ge=e=>e.dependsOn&&e.dependsOn.length>0?{_attrs:{ref:e.ref},_content:e.dependsOn.map(t=>({_attrs:{ref:t},_name:"dependency"})),_name:"dependency"}:{_attrs:{ref:e.ref},_name:"dependency"};export{
|
|
3
|
+
${D}`:"",N=f?"":`${y}${A}</${h}>`;C+=`${o}${T}${N}`;break}case d.OBJECT:{const h=Object.keys(e);C=h.map((u,y)=>{const M={...t,_isFirstItem:y===0,_isLastItem:y+1===h.length,_isOutputStart:b},R={_name:u};if(W(e[u])===d.OBJECT&&(ee.forEach(i=>{const a=e[u][i];typeof a<"u"&&(R[i]=a,delete e[u][i])}),typeof e[u]._content<"u"&&Object.keys(e[u]).length>1)){const i=Object.assign({},e[u]);delete i._content,R._content=[...Ae(i),e[u]._content]}return typeof R._content>"u"&&(R._content=e[u]),B(R,M)},t).join("");break}case d.FUNCTION:{const h=e(t);C=B(h,t);break}case d.ARRAY:{C=e.map((g,u)=>{const y={...t,_isFirstItem:u===0,_isLastItem:u+1===e.length,_isOutputStart:b};return B(g,y)}).join("");break}default:{C=ce(e,k,x);break}}return`${w}${C}`},Q=e=>{try{return oe(e)}catch{return}},Ee=e=>{if(e.length===0||e.includes("..")||e.startsWith(".")||e.includes("\0")||e.includes("\\"))return!1;if(e.startsWith("@")){const t=e.indexOf("/");return t>1&&!e.includes("/",t+1)}return!e.includes("/")},$e=e=>e.length>0&&!e.includes("/")&&!e.includes("\\")&&!e.includes("..")&&!e.includes("\0"),be=(e,t,n)=>{const c=`${t.replaceAll("/","+")}@${n}`,p=I(e,"node_modules",".pnpm"),m=Q(I(p,c,"node_modules",t,"package.json"));if(m)return m;let _;try{_=de(p)}catch{return}const O=`${c}_`;for(const S of _){if(!S.startsWith(O))continue;const v=Q(I(p,S,"node_modules",t,"package.json"));if(v)return v}},Ne=(e,t,n)=>{const s=Q(I(e,"node_modules",t,"package.json"));return s?.version===n?s:void 0},xe=(e,t,n)=>{if(!(!Ee(t)||!$e(n)))return be(e,t,n)??Ne(e,t,n)},ke={sha256:"SHA-256",sha384:"SHA-384",sha512:"SHA-512"},De={sha256:64,sha384:96,sha512:128},we=e=>{const t={name:e.name,version:e.version},{integrity:n}=e;return n&&n.hex.length===De[n.algorithm]&&(t.hash={alg:ke[n.algorithm],content:n.hex}),e.dependencies&&(t.dependencies=e.dependencies),e.peerDependencies&&(t.peerDependencies=e.peerDependencies),e.optionalDependencies&&(t.optionalDependencies=e.optionalDependencies),t},je=[{file:"pnpm-lock.yaml",type:"pnpm"},{file:"npm-shrinkwrap.json",type:"npm"},{file:"package-lock.json",type:"npm"},{file:"yarn.lock",type:"yarn"},{file:"bun.lock",type:"bun"}],Ie=e=>{for(const{file:t,type:n}of je){let s;try{s=ue(I(e,t))}catch{continue}const c=new Map;for(const p of he(s,n))c.set(`${p.name}@${p.version}`,we(p));return{packages:c,type:n}}},Le=e=>{const t=e.indexOf(":");return t<=0?e:e.slice(0,t)==="npm"?e.slice(t+1):e},z=(e,t,n)=>{const s=n.get(e);if(!s||s.size===0)return;if(s.has(t))return t;const c=Le(t);if(c!==t&&s.has(c))return c;const p=[...s],m=_e.maxSatisfying(p,c,{includePrerelease:!0});return m||p[0]},Me="1.7",Pe="CycloneDX",Be="http://cyclonedx.org/schema/bom-1.7.schema.json",Ve="@visulima/vis",ne=e=>{try{return oe(e)}catch{return}},Ue=e=>{if(e){if(typeof e=="string")return e;if(typeof e=="object"&&e.name)return e.email?`${e.name} <${e.email}>`:e.name}},Xe=e=>{if(e)return typeof e=="string"?e:e.url},Fe=e=>{if(e)return typeof e=="string"?e:e.url},Je=e=>{const t=[];e.homepage&&t.push({type:"website",url:e.homepage});const n=Xe(e.repository);n&&t.push({type:"vcs",url:n});const s=Fe(e.bugs);return s&&t.push({type:"issue-tracker",url:s}),t.length>0?t:void 0},He=e=>e==="application"||e==="service"||e==="tool"?"application":"library",K=(e,t)=>{if(!t)return;t.description&&(e.description=t.description);const n=Ue(t.author);n&&(e.author=n);const s=me(t);s&&(e.licenses=s);const c=Je(t);c&&(e.externalReferences=c)},st=e=>{const{focus:t,generatorVersion:n,includeDev:s=!1,now:c=new Date,projectGraph:p,serialNumber:m,workspace:_,workspaceRoot:O}=e,S=t&&t.length>0?[...fe(t,p)].sort():Object.keys(_.projects).sort(),v=new Set(S),x=new Map;for(const r of S){const o=_.projects[r];o&&x.set(r,ne(I(O,o.root,"package.json")))}const L=[],q=new Map;for(const r of S){const o=_.projects[r];if(!o)continue;const i=x.get(r);if(!i)continue;const a=i.version??"0.0.0",l=j(r,a);q.set(r,l);const f={"bom-ref":l,name:r,purl:l,type:He(o.projectType),version:a};K(f,i),L.push(f)}const Y=Ie(O),V=new Map,k=new Map;if(Y)for(const r of Y.packages.values()){V.set(`${r.name}@${r.version}`,r);let o=k.get(r.name);o||(o=new Set,k.set(r.name,o)),o.add(r.version)}const U=[],D=[],G=new Map;for(const r of S){const o=x.get(r);if(!o)continue;const i=[o.dependencies,o.peerDependencies];s&&i.push(o.devDependencies);const a=new Set,l=(f,E)=>{if(E)for(const[$,T]of Object.entries(E)){if(v.has($)){const N=q.get($);N&&a.add(N);continue}const A=z($,T,k);A&&(a.add(j($,A)),f.push(`${$}@${A}`))}};for(const f of i)l(U,f);l(D,o.optionalDependencies),G.set(r,a)}const w=new Map,b=new Map,X=(r,o)=>{const i=[...r];for(;i.length>0;){const a=i.pop(),l=w.get(a);if(l==="required"||l==="optional"&&o==="optional")continue;w.set(a,o);const f=V.get(a);if(!f)continue;const E=b.get(a)??new Set,$=[f.dependencies,f.peerDependencies];for(const T of $)if(T)for(const[A,N]of Object.entries(T))for(const P of N){const F=z(A,P,k);F&&(E.add(j(A,F)),i.push(`${A}@${F}`))}if(f.optionalDependencies)for(const[T,A]of Object.entries(f.optionalDependencies))for(const N of A){const P=z(T,N,k);P&&(E.add(j(T,P)),D.push(`${T}@${P}`))}E.size>0&&b.set(a,E)}};X(U,"required"),X(D,"optional");const C=[],h=[...w.keys()].sort();for(const r of h){const o=V.get(r);if(!o)continue;const i=j(o.name,o.version),a={"bom-ref":i,name:o.name,purl:i,scope:w.get(r)??"required",type:"library",version:o.version};o.hash&&(a.hashes=[o.hash]),K(a,xe(O,o.name,o.version)),C.push(a)}const g=[];for(const[r,o]of G){const i=q.get(r);if(!i)continue;const a=[...o].sort();g.push(a.length>0?{dependsOn:a,ref:i}:{ref:i})}for(const r of h){const o=V.get(r);if(!o)continue;const i=j(o.name,o.version),a=b.get(r),l=a?[...a].sort():[];g.push(l.length>0?{dependsOn:l,ref:i}:{ref:i})}g.sort((r,o)=>r.ref.localeCompare(o.ref));const u=ne(I(O,"package.json")),y=(()=>{if(t?.length===1){const l=L.find(f=>f.name===t[0]);if(l)return{"bom-ref":l["bom-ref"],name:l.name,purl:l.purl,type:l.type,version:l.version}}const r=u?.name??"workspace",o=u?.version??"0.0.0",i=j(r,o),a={"bom-ref":i,name:r,purl:i,type:"application",version:o};return K(a,u),a})(),M=y["bom-ref"],R=M?L.filter(r=>r["bom-ref"]!==M):L;return{$schema:Be,bomFormat:Pe,components:[...R,...C],dependencies:g,metadata:{component:y,lifecycles:[{phase:"build"}],timestamp:c.toISOString(),tools:{components:[{name:Ve,type:"application",...n?{version:n}:{}}]}},serialNumber:m??`urn:uuid:${le()}`,specVersion:Me,version:1}},ot=e=>{const t={version:e.version??1,xmlns:"http://cyclonedx.org/schema/bom/1.7"};e.serialNumber&&(t.serialNumber=e.serialNumber);const n=[];return e.metadata&&n.push(qe(e.metadata)),e.components&&e.components.length>0&&n.push({_content:e.components.map(c=>Z(c)),_name:"components"}),e.dependencies&&e.dependencies.length>0&&n.push({_content:e.dependencies.map(c=>Ge(c)),_name:"dependencies"}),`${B({_attrs:t,_content:n,_name:"bom"},{header:!0,indent:" ",selfCloseTags:!0})}
|
|
4
|
+
`},qe=e=>{const t=[];return e.timestamp&&t.push({timestamp:e.timestamp}),e.lifecycles&&e.lifecycles.length>0&&t.push({_content:e.lifecycles.map(n=>{const s=[];return n.phase&&s.push({phase:n.phase}),n.name&&s.push({name:n.name}),n.description&&s.push({description:n.description}),{_content:s,_name:"lifecycle"}}),_name:"lifecycles"}),e.tools?.components&&t.push({_content:[{_content:e.tools.components.map(n=>Z(n)),_name:"components"}],_name:"tools"}),e.component&&t.push(Z(e.component)),{_content:t,_name:"metadata"}},Z=e=>{const t={type:e.type};e["bom-ref"]&&(t["bom-ref"]=e["bom-ref"]);const n=[];e.group&&n.push({group:e.group}),n.push({name:e.name}),e.version&&n.push({version:e.version}),e.description&&n.push({description:e.description}),e.author&&n.push({author:e.author}),e.hashes&&e.hashes.length>0&&n.push({_content:e.hashes.map(c=>({_attrs:{alg:c.alg},_content:c.content,_name:"hash"})),_name:"hashes"});const s=Ye(e.licenses);return s&&n.push(s),e.purl&&n.push({purl:e.purl}),e.scope&&n.push({scope:e.scope}),e.externalReferences&&e.externalReferences.length>0&&n.push({_content:e.externalReferences.map(c=>({_attrs:{type:c.type},_content:[{url:c.url}],_name:"reference"})),_name:"externalReferences"}),{_attrs:t,_content:n,_name:"component"}},Ye=e=>{if(!e||e.length===0)return;const t=[];for(const n of e){if("expression"in n){t.push({expression:n.expression});continue}const s=[];"id"in n.license&&n.license.id?s.push({id:n.license.id}):"name"in n.license&&n.license.name&&s.push({name:n.license.name}),t.push({_content:s,_name:"license"})}return{_content:t,_name:"licenses"}},Ge=e=>e.dependsOn&&e.dependsOn.length>0?{_attrs:{ref:e.ref},_content:e.dependsOn.map(t=>({_attrs:{ref:t},_name:"dependency"})),_name:"dependency"}:{_attrs:{ref:e.ref},_name:"dependency"};export{st as b,ot as s,j as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{z as d}from"./index-CVBR-Kit.js";import{S as m}from"./lockfile-DhHAaHN5.js";import{e as l}from"./path-CxEa27Rz-pjheKk6v.js";import{i as v,j as g}from"../packem_chunks/catalog.js";import{y as D}from"./isAccessibleSync-DYKTrrvc-K2xhg6sV.js";const b={bun:{file:"bun.lock",type:"bun"},npm:{aliases:["npm-shrinkwrap.json"],file:"package-lock.json",type:"npm"},pnpm:{file:"pnpm-lock.yaml",type:"pnpm"},yarn:{file:"yarn.lock",type:"yarn"}},j=t=>{const o=b[t];return o?[...o.aliases??[],o.file].map(e=>({file:e,type:o.type})):[]},h=(t,o)=>{const e=j(o);if(e.length!==0)return e.find(r=>D(l(t,r.file)))??e[e.length-1]},k=t=>{try{return JSON.parse(d(t))}catch{return}},y=t=>{const o=[],e=k(l(t,"package.json"));e&&o.push(e);const r=v(t);let c;if(r?c=r:e?.workspaces&&(Array.isArray(e.workspaces)?c=e.workspaces:e.workspaces.packages&&(c=e.workspaces.packages)),!c)return o;const i=g(t,c);for(const s of i){const n=k(l(t,s,"package.json"));n&&o.push(n)}return o},P=(t,o)=>{const e=new Set,r=[],c=new Map;for(const s of o){const n=c.get(s.name);n?n.push(s):c.set(s.name,[s])}const i=s=>{if(s)for(const n of Object.keys(s))e.has(n)||(e.add(n),r.push(n))};for(const s of y(t))i(s.dependencies),i(s.peerDependencies),i(s.optionalDependencies);for(;r.length>0;){const s=r.shift(),n=c.get(s);if(n){for(const a of n)for(const p of[a.dependencies,a.peerDependencies,a.optionalDependencies])if(p)for(const f of Object.keys(p))e.has(f)||(e.add(f),r.push(f))}}return e},I=(t,o,e={})=>{const r=h(t,o);if(!r)return[];let c;try{c=d(l(t,r.file))}catch{return[]}const i=m(c,r.type);if(i.length===0)return[];const n=e.includeDev??!0?void 0:P(t,i),a=new Set,p=[];for(const f of i){if(n&&!n.has(f.name))continue;const u=`${f.name}@${f.version}`;a.has(u)||(a.add(u),p.push({isDev:!1,name:f.name,version:f.version}))}return p},M=(t,o)=>{const e=h(t,o);if(!e)return[];let r;try{r=d(l(t,e.file))}catch{return[]}const c=m(r,e.type);if(c.length===0)return[];const i=new Map;for(const n of c)i.has(n.name)||i.set(n.name,new Set),i.get(n.name).add(n.version);const s=[];for(const[n,a]of i)a.size<=1||s.push({name:n,versions:[...a]});return s.sort((n,a)=>n.name.localeCompare(a.name))},N=(t,o)=>{const e=h(t,o);if(!e)return;let r;try{r=d(l(t,e.file))}catch{return}const c=m(r,e.type);if(c.length===0)return;const i=[],s=new Set;for(const n of y(t))for(const a of[n.dependencies,n.devDependencies,n.peerDependencies,n.optionalDependencies])if(a)for(const[p,f]of Object.entries(a)){const u=`${p}@${f}`;s.has(u)||(s.add(u),i.push({name:p,version:f}))}return{entries:c,roots:i}};export{b as L,N as a,M as f,I as l,h as r};
|