scream-code 0.18.6 → 0.18.7

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.
@@ -3,11 +3,22 @@ import { fileURLToPath as __cjsShimFileURLToPath } from 'node:url';
3
3
  import { dirname as __cjsShimDirname } from 'node:path';
4
4
  const __filename = __cjsShimFileURLToPath(import.meta.url);
5
5
  const __dirname = __cjsShimDirname(__filename);
6
- import { createHash } from "node:crypto";
7
- import { mkdir, readFile, readdir, rename, rm, rmdir, stat, unlink, writeFile } from "node:fs/promises";
8
- import { createReadStream, existsSync, mkdirSync, rmSync } from "node:fs";
9
- import { join } from "node:path";
6
+ import { createHash, randomBytes } from "node:crypto";
7
+ import ro, { mkdir, readFile, readdir, rename, rm, rmdir, stat, unlink, writeFile } from "node:fs/promises";
8
+ import I from "fs";
9
+ import Qr, { EventEmitter } from "events";
10
+ import js, { dirname, parse } from "path";
11
+ import { Buffer as Buffer$1 } from "buffer";
12
+ import Cs from "node:stream";
13
+ import Kt, { createReadStream, existsSync, mkdirSync, rmSync, statSync } from "node:fs";
14
+ import path, { basename, join, posix, win32 } from "node:path";
10
15
  import { DatabaseSync } from "node:sqlite";
16
+ import { EventEmitter as EventEmitter$1 } from "node:events";
17
+ import { StringDecoder } from "node:string_decoder";
18
+ import zi from "assert";
19
+ import * as Ps from "zlib";
20
+ import en from "zlib";
21
+ import co from "node:assert";
11
22
  //#region ../../node_modules/.pnpm/pathe@2.0.3/node_modules/pathe/dist/shared/pathe.M-eThtNZ.mjs
12
23
  const _DRIVE_LETTER_START_RE = /^[A-Za-z]:\//;
13
24
  function normalizeWindowsPath(input = "") {
@@ -140,7 +151,7 @@ const relative$1 = function(from, to) {
140
151
  }
141
152
  return [..._from.map(() => ".."), ..._to].join("/");
142
153
  };
143
- const dirname$1 = function(p) {
154
+ const dirname$2 = function(p) {
144
155
  const segments = normalizeWindowsPath(p).replace(/\/$/, "").split("/").slice(0, -1);
145
156
  if (segments.length === 1 && _DRIVE_LETTER_RE.test(segments[0])) segments[0] += "/";
146
157
  return segments.join("/") || (isAbsolute$1(p) ? "/" : ".");
@@ -157,13 +168,13 @@ const basename$1 = function(p, extension) {
157
168
  }
158
169
  return extension && lastSegment.endsWith(extension) ? lastSegment.slice(0, -extension.length) : lastSegment;
159
170
  };
160
- const parse = function(p) {
171
+ const parse$1 = function(p) {
161
172
  const root = _PATH_ROOT_RE.exec(p)?.[0]?.replace(/\\/g, "/") || "";
162
173
  const base = basename$1(p);
163
174
  const extension = extname$1(base);
164
175
  return {
165
176
  root,
166
- dir: dirname$1(p),
177
+ dir: dirname$2(p),
167
178
  base,
168
179
  ext: extension,
169
180
  name: base.slice(0, base.length - extension.length)
@@ -487,6 +498,3022 @@ function toSummary(memo) {
487
498
  };
488
499
  }
489
500
  //#endregion
501
+ //#region ../../node_modules/.pnpm/tar@7.5.22/node_modules/tar/dist/esm/index.min.js
502
+ var zr = Object.defineProperty;
503
+ var Ur = (s, t) => {
504
+ for (var e in t) zr(s, e, {
505
+ get: t[e],
506
+ enumerable: !0
507
+ });
508
+ };
509
+ var Ds = typeof process == "object" && process ? process : {
510
+ stdout: null,
511
+ stderr: null
512
+ }, Wr = (s) => !!s && typeof s == "object" && (s instanceof A || s instanceof Cs || Gr(s) || Zr(s)), Gr = (s) => !!s && typeof s == "object" && s instanceof EventEmitter$1 && typeof s.pipe == "function" && s.pipe !== Cs.Writable.prototype.pipe, Zr = (s) => !!s && typeof s == "object" && s instanceof EventEmitter$1 && typeof s.write == "function" && typeof s.end == "function", Q = Symbol("EOF"), J = Symbol("maybeEmitEnd"), nt = Symbol("emittedEnd"), De = Symbol("emittingEnd"), qt = Symbol("emittedError"), Ne = Symbol("closed"), Ns = Symbol("read"), Ae = Symbol("flush"), As = Symbol("flushChunk"), z = Symbol("encoding"), Mt = Symbol("decoder"), g = Symbol("flowing"), Qt = Symbol("paused"), Bt = Symbol("resume"), b = Symbol("buffer"), N = Symbol("pipes"), _ = Symbol("bufferLength"), bi = Symbol("bufferPush"), Ie = Symbol("bufferShift"), L = Symbol("objectMode"), S = Symbol("destroyed"), _i = Symbol("error"), Oi = Symbol("emitData"), Is = Symbol("emitEnd"), Ti = Symbol("emitEnd2"), Z = Symbol("async"), xi = Symbol("abort"), Ce = Symbol("aborted"), Jt = Symbol("signal"), Rt = Symbol("dataListeners"), C = Symbol("discarded"), jt = (s) => Promise.resolve().then(s), Yr = (s) => s(), Kr = (s) => s === "end" || s === "finish" || s === "prefinish", Vr = (s) => s instanceof ArrayBuffer || !!s && typeof s == "object" && s.constructor && s.constructor.name === "ArrayBuffer" && s.byteLength >= 0, $r = (s) => !Buffer.isBuffer(s) && ArrayBuffer.isView(s), Fe = class {
513
+ src;
514
+ dest;
515
+ opts;
516
+ ondrain;
517
+ constructor(t, e, i) {
518
+ this.src = t, this.dest = e, this.opts = i, this.ondrain = () => t[Bt](), this.dest.on("drain", this.ondrain);
519
+ }
520
+ unpipe() {
521
+ this.dest.removeListener("drain", this.ondrain);
522
+ }
523
+ proxyErrors(t) {}
524
+ end() {
525
+ this.unpipe(), this.opts.end && this.dest.end();
526
+ }
527
+ }, Li = class extends Fe {
528
+ unpipe() {
529
+ this.src.removeListener("error", this.proxyErrors), super.unpipe();
530
+ }
531
+ constructor(t, e, i) {
532
+ super(t, e, i), this.proxyErrors = (r) => this.dest.emit("error", r), t.on("error", this.proxyErrors);
533
+ }
534
+ }, Xr = (s) => !!s.objectMode, qr = (s) => !s.objectMode && !!s.encoding && s.encoding !== "buffer", A = class extends EventEmitter$1 {
535
+ [g] = !1;
536
+ [Qt] = !1;
537
+ [N] = [];
538
+ [b] = [];
539
+ [L];
540
+ [z];
541
+ [Z];
542
+ [Mt];
543
+ [Q] = !1;
544
+ [nt] = !1;
545
+ [De] = !1;
546
+ [Ne] = !1;
547
+ [qt] = null;
548
+ [_] = 0;
549
+ [S] = !1;
550
+ [Jt];
551
+ [Ce] = !1;
552
+ [Rt] = 0;
553
+ [C] = !1;
554
+ writable = !0;
555
+ readable = !0;
556
+ constructor(...t) {
557
+ let e = t[0] || {};
558
+ if (super(), e.objectMode && typeof e.encoding == "string") throw new TypeError("Encoding and objectMode may not be used together");
559
+ Xr(e) ? (this[L] = !0, this[z] = null) : qr(e) ? (this[z] = e.encoding, this[L] = !1) : (this[L] = !1, this[z] = null), this[Z] = !!e.async, this[Mt] = this[z] ? new StringDecoder(this[z]) : null, e && e.debugExposeBuffer === !0 && Object.defineProperty(this, "buffer", { get: () => this[b] }), e && e.debugExposePipes === !0 && Object.defineProperty(this, "pipes", { get: () => this[N] });
560
+ let { signal: i } = e;
561
+ i && (this[Jt] = i, i.aborted ? this[xi]() : i.addEventListener("abort", () => this[xi]()));
562
+ }
563
+ get bufferLength() {
564
+ return this[_];
565
+ }
566
+ get encoding() {
567
+ return this[z];
568
+ }
569
+ set encoding(t) {
570
+ throw new Error("Encoding must be set at instantiation time");
571
+ }
572
+ setEncoding(t) {
573
+ throw new Error("Encoding must be set at instantiation time");
574
+ }
575
+ get objectMode() {
576
+ return this[L];
577
+ }
578
+ set objectMode(t) {
579
+ throw new Error("objectMode must be set at instantiation time");
580
+ }
581
+ get async() {
582
+ return this[Z];
583
+ }
584
+ set async(t) {
585
+ this[Z] = this[Z] || !!t;
586
+ }
587
+ [xi]() {
588
+ this[Ce] = !0, this.emit("abort", this[Jt]?.reason), this.destroy(this[Jt]?.reason);
589
+ }
590
+ get aborted() {
591
+ return this[Ce];
592
+ }
593
+ set aborted(t) {}
594
+ write(t, e, i) {
595
+ if (this[Ce]) return !1;
596
+ if (this[Q]) throw new Error("write after end");
597
+ if (this[S]) return this.emit("error", Object.assign(/* @__PURE__ */ new Error("Cannot call write after a stream was destroyed"), { code: "ERR_STREAM_DESTROYED" })), !0;
598
+ typeof e == "function" && (i = e, e = "utf8"), e || (e = "utf8");
599
+ let r = this[Z] ? jt : Yr;
600
+ if (!this[L] && !Buffer.isBuffer(t)) {
601
+ if ($r(t)) t = Buffer.from(t.buffer, t.byteOffset, t.byteLength);
602
+ else if (Vr(t)) t = Buffer.from(t);
603
+ else if (typeof t != "string") throw new Error("Non-contiguous data written to non-objectMode stream");
604
+ }
605
+ return this[L] ? (this[g] && this[_] !== 0 && this[Ae](!0), this[g] ? this.emit("data", t) : this[bi](t), this[_] !== 0 && this.emit("readable"), i && r(i), this[g]) : t.length ? (typeof t == "string" && !(e === this[z] && !this[Mt]?.lastNeed) && (t = Buffer.from(t, e)), Buffer.isBuffer(t) && this[z] && (t = this[Mt].write(t)), this[g] && this[_] !== 0 && this[Ae](!0), this[g] ? this.emit("data", t) : this[bi](t), this[_] !== 0 && this.emit("readable"), i && r(i), this[g]) : (this[_] !== 0 && this.emit("readable"), i && r(i), this[g]);
606
+ }
607
+ read(t) {
608
+ if (this[S]) return null;
609
+ if (this[C] = !1, this[_] === 0 || t === 0 || t && t > this[_]) return this[J](), null;
610
+ this[L] && (t = null), this[b].length > 1 && !this[L] && (this[b] = [this[z] ? this[b].join("") : Buffer.concat(this[b], this[_])]);
611
+ let e = this[Ns](t || null, this[b][0]);
612
+ return this[J](), e;
613
+ }
614
+ [Ns](t, e) {
615
+ if (this[L]) this[Ie]();
616
+ else {
617
+ let i = e;
618
+ t === i.length || t === null ? this[Ie]() : typeof i == "string" ? (this[b][0] = i.slice(t), e = i.slice(0, t), this[_] -= t) : (this[b][0] = i.subarray(t), e = i.subarray(0, t), this[_] -= t);
619
+ }
620
+ return this.emit("data", e), !this[b].length && !this[Q] && this.emit("drain"), e;
621
+ }
622
+ end(t, e, i) {
623
+ return typeof t == "function" && (i = t, t = void 0), typeof e == "function" && (i = e, e = "utf8"), t !== void 0 && this.write(t, e), i && this.once("end", i), this[Q] = !0, this.writable = !1, (this[g] || !this[Qt]) && this[J](), this;
624
+ }
625
+ [Bt]() {
626
+ this[S] || (!this[Rt] && !this[N].length && (this[C] = !0), this[Qt] = !1, this[g] = !0, this.emit("resume"), this[b].length ? this[Ae]() : this[Q] ? this[J]() : this.emit("drain"));
627
+ }
628
+ resume() {
629
+ return this[Bt]();
630
+ }
631
+ pause() {
632
+ this[g] = !1, this[Qt] = !0, this[C] = !1;
633
+ }
634
+ get destroyed() {
635
+ return this[S];
636
+ }
637
+ get flowing() {
638
+ return this[g];
639
+ }
640
+ get paused() {
641
+ return this[Qt];
642
+ }
643
+ [bi](t) {
644
+ this[L] ? this[_] += 1 : this[_] += t.length, this[b].push(t);
645
+ }
646
+ [Ie]() {
647
+ return this[L] ? this[_] -= 1 : this[_] -= this[b][0].length, this[b].shift();
648
+ }
649
+ [Ae](t = !1) {
650
+ do ;
651
+ while (this[As](this[Ie]()) && this[b].length);
652
+ !t && !this[b].length && !this[Q] && this.emit("drain");
653
+ }
654
+ [As](t) {
655
+ return this.emit("data", t), this[g];
656
+ }
657
+ pipe(t, e) {
658
+ if (this[S]) return t;
659
+ this[C] = !1;
660
+ let i = this[nt];
661
+ return e = e || {}, t === Ds.stdout || t === Ds.stderr ? e.end = !1 : e.end = e.end !== !1, e.proxyErrors = !!e.proxyErrors, i ? e.end && t.end() : (this[N].push(e.proxyErrors ? new Li(this, t, e) : new Fe(this, t, e)), this[Z] ? jt(() => this[Bt]()) : this[Bt]()), t;
662
+ }
663
+ unpipe(t) {
664
+ let e = this[N].find((i) => i.dest === t);
665
+ e && (this[N].length === 1 ? (this[g] && this[Rt] === 0 && (this[g] = !1), this[N] = []) : this[N].splice(this[N].indexOf(e), 1), e.unpipe());
666
+ }
667
+ addListener(t, e) {
668
+ return this.on(t, e);
669
+ }
670
+ on(t, e) {
671
+ let i = super.on(t, e);
672
+ if (t === "data") this[C] = !1, this[Rt]++, !this[N].length && !this[g] && this[Bt]();
673
+ else if (t === "readable" && this[_] !== 0) super.emit("readable");
674
+ else if (Kr(t) && this[nt]) super.emit(t), this.removeAllListeners(t);
675
+ else if (t === "error" && this[qt]) {
676
+ let r = e;
677
+ this[Z] ? jt(() => r.call(this, this[qt])) : r.call(this, this[qt]);
678
+ }
679
+ return i;
680
+ }
681
+ removeListener(t, e) {
682
+ return this.off(t, e);
683
+ }
684
+ off(t, e) {
685
+ let i = super.off(t, e);
686
+ return t === "data" && (this[Rt] = this.listeners("data").length, this[Rt] === 0 && !this[C] && !this[N].length && (this[g] = !1)), i;
687
+ }
688
+ removeAllListeners(t) {
689
+ let e = super.removeAllListeners(t);
690
+ return (t === "data" || t === void 0) && (this[Rt] = 0, !this[C] && !this[N].length && (this[g] = !1)), e;
691
+ }
692
+ get emittedEnd() {
693
+ return this[nt];
694
+ }
695
+ [J]() {
696
+ !this[De] && !this[nt] && !this[S] && this[b].length === 0 && this[Q] && (this[De] = !0, this.emit("end"), this.emit("prefinish"), this.emit("finish"), this[Ne] && this.emit("close"), this[De] = !1);
697
+ }
698
+ emit(t, ...e) {
699
+ let i = e[0];
700
+ if (t !== "error" && t !== "close" && t !== S && this[S]) return !1;
701
+ if (t === "data") return !this[L] && !i ? !1 : this[Z] ? (jt(() => this[Oi](i)), !0) : this[Oi](i);
702
+ if (t === "end") return this[Is]();
703
+ if (t === "close") {
704
+ if (this[Ne] = !0, !this[nt] && !this[S]) return !1;
705
+ let n = super.emit("close");
706
+ return this.removeAllListeners("close"), n;
707
+ } else if (t === "error") {
708
+ this[qt] = i, super.emit(_i, i);
709
+ let n = !this[Jt] || this.listeners("error").length ? super.emit("error", i) : !1;
710
+ return this[J](), n;
711
+ } else if (t === "resume") {
712
+ let n = super.emit("resume");
713
+ return this[J](), n;
714
+ } else if (t === "finish" || t === "prefinish") {
715
+ let n = super.emit(t);
716
+ return this.removeAllListeners(t), n;
717
+ }
718
+ let r = super.emit(t, ...e);
719
+ return this[J](), r;
720
+ }
721
+ [Oi](t) {
722
+ for (let i of this[N]) i.dest.write(t) === !1 && this.pause();
723
+ let e = this[C] ? !1 : super.emit("data", t);
724
+ return this[J](), e;
725
+ }
726
+ [Is]() {
727
+ return this[nt] ? !1 : (this[nt] = !0, this.readable = !1, this[Z] ? (jt(() => this[Ti]()), !0) : this[Ti]());
728
+ }
729
+ [Ti]() {
730
+ if (this[Mt]) {
731
+ let e = this[Mt].end();
732
+ if (e) {
733
+ for (let i of this[N]) i.dest.write(e);
734
+ this[C] || super.emit("data", e);
735
+ }
736
+ }
737
+ for (let e of this[N]) e.end();
738
+ let t = super.emit("end");
739
+ return this.removeAllListeners("end"), t;
740
+ }
741
+ async collect() {
742
+ let t = Object.assign([], { dataLength: 0 });
743
+ this[L] || (t.dataLength = 0);
744
+ let e = this.promise();
745
+ return this.on("data", (i) => {
746
+ t.push(i), this[L] || (t.dataLength += i.length);
747
+ }), await e, t;
748
+ }
749
+ async concat() {
750
+ if (this[L]) throw new Error("cannot concat in objectMode");
751
+ let t = await this.collect();
752
+ return this[z] ? t.join("") : Buffer.concat(t, t.dataLength);
753
+ }
754
+ async promise() {
755
+ return new Promise((t, e) => {
756
+ this.on(S, () => e(/* @__PURE__ */ new Error("stream destroyed"))), this.on("error", (i) => e(i)), this.on("end", () => t());
757
+ });
758
+ }
759
+ [Symbol.asyncIterator]() {
760
+ this[C] = !1;
761
+ let t = !1, e = async () => (this.pause(), t = !0, {
762
+ value: void 0,
763
+ done: !0
764
+ });
765
+ return {
766
+ next: () => {
767
+ if (t) return e();
768
+ let r = this.read();
769
+ if (r !== null) return Promise.resolve({
770
+ done: !1,
771
+ value: r
772
+ });
773
+ if (this[Q]) return e();
774
+ let n, o, h = (d) => {
775
+ this.off("data", a), this.off("end", l), this.off(S, c), e(), o(d);
776
+ }, a = (d) => {
777
+ this.off("error", h), this.off("end", l), this.off(S, c), this.pause(), n({
778
+ value: d,
779
+ done: !!this[Q]
780
+ });
781
+ }, l = () => {
782
+ this.off("error", h), this.off("data", a), this.off(S, c), e(), n({
783
+ done: !0,
784
+ value: void 0
785
+ });
786
+ }, c = () => h(/* @__PURE__ */ new Error("stream destroyed"));
787
+ return new Promise((d, y) => {
788
+ o = y, n = d, this.once(S, c), this.once("error", h), this.once("end", l), this.once("data", a);
789
+ });
790
+ },
791
+ throw: e,
792
+ return: e,
793
+ [Symbol.asyncIterator]() {
794
+ return this;
795
+ },
796
+ [Symbol.asyncDispose]: async () => {}
797
+ };
798
+ }
799
+ [Symbol.iterator]() {
800
+ this[C] = !1;
801
+ let t = !1, e = () => (this.pause(), this.off(_i, e), this.off(S, e), this.off("end", e), t = !0, {
802
+ done: !0,
803
+ value: void 0
804
+ }), i = () => {
805
+ if (t) return e();
806
+ let r = this.read();
807
+ return r === null ? e() : {
808
+ done: !1,
809
+ value: r
810
+ };
811
+ };
812
+ return this.once("end", e), this.once(_i, e), this.once(S, e), {
813
+ next: i,
814
+ throw: e,
815
+ return: e,
816
+ [Symbol.iterator]() {
817
+ return this;
818
+ },
819
+ [Symbol.dispose]: () => {}
820
+ };
821
+ }
822
+ destroy(t) {
823
+ if (this[S]) return t ? this.emit("error", t) : this.emit(S), this;
824
+ this[S] = !0, this[C] = !0, this[b].length = 0, this[_] = 0;
825
+ let e = this;
826
+ return typeof e.close == "function" && !this[Ne] && e.close(), t ? this.emit("error", t) : this.emit(S), this;
827
+ }
828
+ static get isStream() {
829
+ return Wr;
830
+ }
831
+ };
832
+ var Jr = I.writev, ht = Symbol("_autoClose"), H = Symbol("_close"), te = Symbol("_ended"), m = Symbol("_fd"), Ni = Symbol("_finished"), tt = Symbol("_flags"), Ai = Symbol("_flush"), ki = Symbol("_handleChunk"), vi = Symbol("_makeBuf"), ie = Symbol("_mode"), ke = Symbol("_needDrain"), Ut = Symbol("_onerror"), Ht = Symbol("_onopen"), Ii = Symbol("_onread"), Pt = Symbol("_onwrite"), at = Symbol("_open"), U = Symbol("_path"), ot = Symbol("_pos"), Y = Symbol("_queue"), zt = Symbol("_read"), Ci = Symbol("_readSize"), j = Symbol("_reading"), ee = Symbol("_remain"), Fi = Symbol("_size"), ve = Symbol("_write"), gt = Symbol("_writing"), Me = Symbol("_defaultFlag"), bt = Symbol("_errored"), _t = class extends A {
833
+ [bt] = !1;
834
+ [m];
835
+ [U];
836
+ [Ci];
837
+ [j] = !1;
838
+ [Fi];
839
+ [ee];
840
+ [ht];
841
+ constructor(t, e) {
842
+ if (e = e || {}, super(e), this.readable = !0, this.writable = !1, typeof t != "string") throw new TypeError("path must be a string");
843
+ this[bt] = !1, this[m] = typeof e.fd == "number" ? e.fd : void 0, this[U] = t, this[Ci] = e.readSize || 16 * 1024 * 1024, this[j] = !1, this[Fi] = typeof e.size == "number" ? e.size : Infinity, this[ee] = this[Fi], this[ht] = typeof e.autoClose == "boolean" ? e.autoClose : !0, typeof this[m] == "number" ? this[zt]() : this[at]();
844
+ }
845
+ get fd() {
846
+ return this[m];
847
+ }
848
+ get path() {
849
+ return this[U];
850
+ }
851
+ write() {
852
+ throw new TypeError("this is a readable stream");
853
+ }
854
+ end() {
855
+ throw new TypeError("this is a readable stream");
856
+ }
857
+ [at]() {
858
+ I.open(this[U], "r", (t, e) => this[Ht](t, e));
859
+ }
860
+ [Ht](t, e) {
861
+ t ? this[Ut](t) : (this[m] = e, this.emit("open", e), this[zt]());
862
+ }
863
+ [vi]() {
864
+ return Buffer.allocUnsafe(Math.min(this[Ci], this[ee]));
865
+ }
866
+ [zt]() {
867
+ if (!this[j]) {
868
+ this[j] = !0;
869
+ let t = this[vi]();
870
+ if (t.length === 0) return process.nextTick(() => this[Ii](null, 0, t));
871
+ I.read(this[m], t, 0, t.length, null, (e, i, r) => this[Ii](e, i, r));
872
+ }
873
+ }
874
+ [Ii](t, e, i) {
875
+ this[j] = !1, t ? this[Ut](t) : this[ki](e, i) && this[zt]();
876
+ }
877
+ [H]() {
878
+ if (this[ht] && typeof this[m] == "number") {
879
+ let t = this[m];
880
+ this[m] = void 0, I.close(t, (e) => e ? this.emit("error", e) : this.emit("close"));
881
+ }
882
+ }
883
+ [Ut](t) {
884
+ this[j] = !0, this[H](), this.emit("error", t);
885
+ }
886
+ [ki](t, e) {
887
+ let i = !1;
888
+ return this[ee] -= t, t > 0 && (i = super.write(t < e.length ? e.subarray(0, t) : e)), (t === 0 || this[ee] <= 0) && (i = !1, this[H](), super.end()), i;
889
+ }
890
+ emit(t, ...e) {
891
+ switch (t) {
892
+ case "prefinish":
893
+ case "finish": return !1;
894
+ case "drain": return typeof this[m] == "number" && this[zt](), !1;
895
+ case "error": return this[bt] ? !1 : (this[bt] = !0, super.emit(t, ...e));
896
+ default: return super.emit(t, ...e);
897
+ }
898
+ }
899
+ }, Be = class extends _t {
900
+ [at]() {
901
+ let t = !0;
902
+ try {
903
+ this[Ht](null, I.openSync(this[U], "r")), t = !1;
904
+ } finally {
905
+ t && this[H]();
906
+ }
907
+ }
908
+ [zt]() {
909
+ let t = !0;
910
+ try {
911
+ if (!this[j]) {
912
+ this[j] = !0;
913
+ do {
914
+ let e = this[vi](), i = e.length === 0 ? 0 : I.readSync(this[m], e, 0, e.length, null);
915
+ if (!this[ki](i, e)) break;
916
+ } while (!0);
917
+ this[j] = !1;
918
+ }
919
+ t = !1;
920
+ } finally {
921
+ t && this[H]();
922
+ }
923
+ }
924
+ [H]() {
925
+ if (this[ht] && typeof this[m] == "number") {
926
+ let t = this[m];
927
+ this[m] = void 0, I.closeSync(t), this.emit("close");
928
+ }
929
+ }
930
+ }, et = class extends Qr {
931
+ readable = !1;
932
+ writable = !0;
933
+ [bt] = !1;
934
+ [gt] = !1;
935
+ [te] = !1;
936
+ [Y] = [];
937
+ [ke] = !1;
938
+ [U];
939
+ [ie];
940
+ [ht];
941
+ [m];
942
+ [Me];
943
+ [tt];
944
+ [Ni] = !1;
945
+ [ot];
946
+ constructor(t, e) {
947
+ e = e || {}, super(e), this[U] = t, this[m] = typeof e.fd == "number" ? e.fd : void 0, this[ie] = e.mode === void 0 ? 438 : e.mode, this[ot] = typeof e.start == "number" ? e.start : void 0, this[ht] = typeof e.autoClose == "boolean" ? e.autoClose : !0;
948
+ let i = this[ot] !== void 0 ? "r+" : "w";
949
+ this[Me] = e.flags === void 0, this[tt] = e.flags === void 0 ? i : e.flags, this[m] === void 0 && this[at]();
950
+ }
951
+ emit(t, ...e) {
952
+ if (t === "error") {
953
+ if (this[bt]) return !1;
954
+ this[bt] = !0;
955
+ }
956
+ return super.emit(t, ...e);
957
+ }
958
+ get fd() {
959
+ return this[m];
960
+ }
961
+ get path() {
962
+ return this[U];
963
+ }
964
+ [Ut](t) {
965
+ this[H](), this[gt] = !0, this.emit("error", t);
966
+ }
967
+ [at]() {
968
+ I.open(this[U], this[tt], this[ie], (t, e) => this[Ht](t, e));
969
+ }
970
+ [Ht](t, e) {
971
+ this[Me] && this[tt] === "r+" && t && t.code === "ENOENT" ? (this[tt] = "w", this[at]()) : t ? this[Ut](t) : (this[m] = e, this.emit("open", e), this[gt] || this[Ai]());
972
+ }
973
+ end(t, e) {
974
+ return t && this.write(t, e), this[te] = !0, !this[gt] && !this[Y].length && typeof this[m] == "number" && this[Pt](null, 0), this;
975
+ }
976
+ write(t, e) {
977
+ return typeof t == "string" && (t = Buffer.from(t, e)), this[te] ? (this.emit("error", /* @__PURE__ */ new Error("write() after end()")), !1) : this[m] === void 0 || this[gt] || this[Y].length ? (this[Y].push(t), this[ke] = !0, !1) : (this[gt] = !0, this[ve](t), !0);
978
+ }
979
+ [ve](t) {
980
+ I.write(this[m], t, 0, t.length, this[ot], (e, i) => this[Pt](e, i));
981
+ }
982
+ [Pt](t, e) {
983
+ t ? this[Ut](t) : (this[ot] !== void 0 && typeof e == "number" && (this[ot] += e), this[Y].length ? this[Ai]() : (this[gt] = !1, this[te] && !this[Ni] ? (this[Ni] = !0, this[H](), this.emit("finish")) : this[ke] && (this[ke] = !1, this.emit("drain"))));
984
+ }
985
+ [Ai]() {
986
+ if (this[Y].length === 0) this[te] && this[Pt](null, 0);
987
+ else if (this[Y].length === 1) this[ve](this[Y].pop());
988
+ else {
989
+ let t = this[Y];
990
+ this[Y] = [], Jr(this[m], t, this[ot], (e, i) => this[Pt](e, i));
991
+ }
992
+ }
993
+ [H]() {
994
+ if (this[ht] && typeof this[m] == "number") {
995
+ let t = this[m];
996
+ this[m] = void 0, I.close(t, (e) => e ? this.emit("error", e) : this.emit("close"));
997
+ }
998
+ }
999
+ }, Wt = class extends et {
1000
+ [at]() {
1001
+ let t;
1002
+ if (this[Me] && this[tt] === "r+") try {
1003
+ t = I.openSync(this[U], this[tt], this[ie]);
1004
+ } catch (e) {
1005
+ if (e?.code === "ENOENT") return this[tt] = "w", this[at]();
1006
+ throw e;
1007
+ }
1008
+ else t = I.openSync(this[U], this[tt], this[ie]);
1009
+ this[Ht](null, t);
1010
+ }
1011
+ [H]() {
1012
+ if (this[ht] && typeof this[m] == "number") {
1013
+ let t = this[m];
1014
+ this[m] = void 0, I.closeSync(t), this.emit("close");
1015
+ }
1016
+ }
1017
+ [ve](t) {
1018
+ let e = !0;
1019
+ try {
1020
+ this[Pt](null, I.writeSync(this[m], t, 0, t.length, this[ot])), e = !1;
1021
+ } finally {
1022
+ if (e) try {
1023
+ this[H]();
1024
+ } catch {}
1025
+ }
1026
+ }
1027
+ };
1028
+ var jr = new Map([
1029
+ ["C", "cwd"],
1030
+ ["f", "file"],
1031
+ ["z", "gzip"],
1032
+ ["P", "preservePaths"],
1033
+ ["U", "unlink"],
1034
+ ["strip-components", "strip"],
1035
+ ["stripComponents", "strip"],
1036
+ ["keep-newer", "newer"],
1037
+ ["keepNewer", "newer"],
1038
+ ["keep-newer-files", "newer"],
1039
+ ["keepNewerFiles", "newer"],
1040
+ ["k", "keep"],
1041
+ ["keep-existing", "keep"],
1042
+ ["keepExisting", "keep"],
1043
+ ["m", "noMtime"],
1044
+ ["no-mtime", "noMtime"],
1045
+ ["p", "preserveOwner"],
1046
+ ["L", "follow"],
1047
+ ["h", "follow"],
1048
+ ["onentry", "onReadEntry"]
1049
+ ]), Fs = (s) => !!s.sync && !!s.file, ks = (s) => !s.sync && !!s.file, vs = (s) => !!s.sync && !s.file, Ms = (s) => !s.sync && !s.file;
1050
+ var Bs = (s) => !!s.file;
1051
+ var tn = (s) => {
1052
+ return jr.get(s) || s;
1053
+ }, se = (s = {}) => {
1054
+ if (!s) return {};
1055
+ let t = {};
1056
+ for (let [e, i] of Object.entries(s)) {
1057
+ let r = tn(e);
1058
+ t[r] = i;
1059
+ }
1060
+ return t.chmod === void 0 && t.noChmod === !1 && (t.chmod = !0), delete t.noChmod, t;
1061
+ };
1062
+ var K = (s, t, e, i, r) => Object.assign((n = [], o, h) => {
1063
+ Array.isArray(n) && (o = n, n = {}), typeof o == "function" && (h = o, o = void 0), o = o ? Array.from(o) : [];
1064
+ let a = se(n);
1065
+ if (r?.(a, o), Fs(a)) {
1066
+ if (typeof h == "function") throw new TypeError("callback not supported for sync tar functions");
1067
+ return s(a, o);
1068
+ } else if (ks(a)) {
1069
+ let l = t(a, o);
1070
+ return h ? l.then(() => h(), h) : l;
1071
+ } else if (vs(a)) {
1072
+ if (typeof h == "function") throw new TypeError("callback not supported for sync tar functions");
1073
+ return e(a, o);
1074
+ } else if (Ms(a)) {
1075
+ if (typeof h == "function") throw new TypeError("callback only supported with file option");
1076
+ return i(a, o);
1077
+ }
1078
+ throw new Error("impossible options??");
1079
+ }, {
1080
+ syncFile: s,
1081
+ asyncFile: t,
1082
+ syncNoFile: e,
1083
+ asyncNoFile: i,
1084
+ validate: r
1085
+ });
1086
+ var sn = en.constants || { ZLIB_VERNUM: 4736 }, M = Object.freeze(Object.assign(Object.create(null), {
1087
+ Z_NO_FLUSH: 0,
1088
+ Z_PARTIAL_FLUSH: 1,
1089
+ Z_SYNC_FLUSH: 2,
1090
+ Z_FULL_FLUSH: 3,
1091
+ Z_FINISH: 4,
1092
+ Z_BLOCK: 5,
1093
+ Z_OK: 0,
1094
+ Z_STREAM_END: 1,
1095
+ Z_NEED_DICT: 2,
1096
+ Z_ERRNO: -1,
1097
+ Z_STREAM_ERROR: -2,
1098
+ Z_DATA_ERROR: -3,
1099
+ Z_MEM_ERROR: -4,
1100
+ Z_BUF_ERROR: -5,
1101
+ Z_VERSION_ERROR: -6,
1102
+ Z_NO_COMPRESSION: 0,
1103
+ Z_BEST_SPEED: 1,
1104
+ Z_BEST_COMPRESSION: 9,
1105
+ Z_DEFAULT_COMPRESSION: -1,
1106
+ Z_FILTERED: 1,
1107
+ Z_HUFFMAN_ONLY: 2,
1108
+ Z_RLE: 3,
1109
+ Z_FIXED: 4,
1110
+ Z_DEFAULT_STRATEGY: 0,
1111
+ DEFLATE: 1,
1112
+ INFLATE: 2,
1113
+ GZIP: 3,
1114
+ GUNZIP: 4,
1115
+ DEFLATERAW: 5,
1116
+ INFLATERAW: 6,
1117
+ UNZIP: 7,
1118
+ BROTLI_DECODE: 8,
1119
+ BROTLI_ENCODE: 9,
1120
+ Z_MIN_WINDOWBITS: 8,
1121
+ Z_MAX_WINDOWBITS: 15,
1122
+ Z_DEFAULT_WINDOWBITS: 15,
1123
+ Z_MIN_CHUNK: 64,
1124
+ Z_MAX_CHUNK: Infinity,
1125
+ Z_DEFAULT_CHUNK: 16384,
1126
+ Z_MIN_MEMLEVEL: 1,
1127
+ Z_MAX_MEMLEVEL: 9,
1128
+ Z_DEFAULT_MEMLEVEL: 8,
1129
+ Z_MIN_LEVEL: -1,
1130
+ Z_MAX_LEVEL: 9,
1131
+ Z_DEFAULT_LEVEL: -1,
1132
+ BROTLI_OPERATION_PROCESS: 0,
1133
+ BROTLI_OPERATION_FLUSH: 1,
1134
+ BROTLI_OPERATION_FINISH: 2,
1135
+ BROTLI_OPERATION_EMIT_METADATA: 3,
1136
+ BROTLI_MODE_GENERIC: 0,
1137
+ BROTLI_MODE_TEXT: 1,
1138
+ BROTLI_MODE_FONT: 2,
1139
+ BROTLI_DEFAULT_MODE: 0,
1140
+ BROTLI_MIN_QUALITY: 0,
1141
+ BROTLI_MAX_QUALITY: 11,
1142
+ BROTLI_DEFAULT_QUALITY: 11,
1143
+ BROTLI_MIN_WINDOW_BITS: 10,
1144
+ BROTLI_MAX_WINDOW_BITS: 24,
1145
+ BROTLI_LARGE_MAX_WINDOW_BITS: 30,
1146
+ BROTLI_DEFAULT_WINDOW: 22,
1147
+ BROTLI_MIN_INPUT_BLOCK_BITS: 16,
1148
+ BROTLI_MAX_INPUT_BLOCK_BITS: 24,
1149
+ BROTLI_PARAM_MODE: 0,
1150
+ BROTLI_PARAM_QUALITY: 1,
1151
+ BROTLI_PARAM_LGWIN: 2,
1152
+ BROTLI_PARAM_LGBLOCK: 3,
1153
+ BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING: 4,
1154
+ BROTLI_PARAM_SIZE_HINT: 5,
1155
+ BROTLI_PARAM_LARGE_WINDOW: 6,
1156
+ BROTLI_PARAM_NPOSTFIX: 7,
1157
+ BROTLI_PARAM_NDIRECT: 8,
1158
+ BROTLI_DECODER_RESULT_ERROR: 0,
1159
+ BROTLI_DECODER_RESULT_SUCCESS: 1,
1160
+ BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT: 2,
1161
+ BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT: 3,
1162
+ BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION: 0,
1163
+ BROTLI_DECODER_PARAM_LARGE_WINDOW: 1,
1164
+ BROTLI_DECODER_NO_ERROR: 0,
1165
+ BROTLI_DECODER_SUCCESS: 1,
1166
+ BROTLI_DECODER_NEEDS_MORE_INPUT: 2,
1167
+ BROTLI_DECODER_NEEDS_MORE_OUTPUT: 3,
1168
+ BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE: -1,
1169
+ BROTLI_DECODER_ERROR_FORMAT_RESERVED: -2,
1170
+ BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE: -3,
1171
+ BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET: -4,
1172
+ BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME: -5,
1173
+ BROTLI_DECODER_ERROR_FORMAT_CL_SPACE: -6,
1174
+ BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE: -7,
1175
+ BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT: -8,
1176
+ BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1: -9,
1177
+ BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2: -10,
1178
+ BROTLI_DECODER_ERROR_FORMAT_TRANSFORM: -11,
1179
+ BROTLI_DECODER_ERROR_FORMAT_DICTIONARY: -12,
1180
+ BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS: -13,
1181
+ BROTLI_DECODER_ERROR_FORMAT_PADDING_1: -14,
1182
+ BROTLI_DECODER_ERROR_FORMAT_PADDING_2: -15,
1183
+ BROTLI_DECODER_ERROR_FORMAT_DISTANCE: -16,
1184
+ BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET: -19,
1185
+ BROTLI_DECODER_ERROR_INVALID_ARGUMENTS: -20,
1186
+ BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES: -21,
1187
+ BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS: -22,
1188
+ BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP: -25,
1189
+ BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1: -26,
1190
+ BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2: -27,
1191
+ BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES: -30,
1192
+ BROTLI_DECODER_ERROR_UNREACHABLE: -31
1193
+ }, sn));
1194
+ var rn = Buffer$1.concat, zs = Object.getOwnPropertyDescriptor(Buffer$1, "concat"), nn = (s) => s, Bi = zs?.writable === !0 || zs?.set !== void 0 ? (s) => {
1195
+ Buffer$1.concat = s ? nn : rn;
1196
+ } : (s) => {}, Tt = Symbol("_superWrite"), Gt = class extends Error {
1197
+ code;
1198
+ errno;
1199
+ constructor(t, e) {
1200
+ super("zlib: " + t.message, { cause: t }), this.code = t.code, this.errno = t.errno, this.code || (this.code = "ZLIB_ERROR"), this.message = "zlib: " + t.message, Error.captureStackTrace(this, e ?? this.constructor);
1201
+ }
1202
+ get name() {
1203
+ return "ZlibError";
1204
+ }
1205
+ }, Pi = Symbol("flushFlag"), re = class extends A {
1206
+ #t = !1;
1207
+ #i = !1;
1208
+ #s;
1209
+ #n;
1210
+ #r;
1211
+ #e;
1212
+ #o;
1213
+ get sawError() {
1214
+ return this.#t;
1215
+ }
1216
+ get handle() {
1217
+ return this.#e;
1218
+ }
1219
+ get flushFlag() {
1220
+ return this.#s;
1221
+ }
1222
+ constructor(t, e) {
1223
+ if (!t || typeof t != "object") throw new TypeError("invalid options for ZlibBase constructor");
1224
+ if (super(t), this.#s = t.flush ?? 0, this.#n = t.finishFlush ?? 0, this.#r = t.fullFlushFlag ?? 0, typeof Ps[e] != "function") throw new TypeError("Compression method not supported: " + e);
1225
+ try {
1226
+ this.#e = new Ps[e](t);
1227
+ } catch (i) {
1228
+ throw new Gt(i, this.constructor);
1229
+ }
1230
+ this.#o = (i) => {
1231
+ this.#t || (this.#t = !0, this.close(), this.emit("error", i));
1232
+ }, this.#e?.on("error", (i) => this.#o(new Gt(i))), this.once("end", () => this.close);
1233
+ }
1234
+ close() {
1235
+ this.#e && (this.#e.close(), this.#e = void 0, this.emit("close"));
1236
+ }
1237
+ reset() {
1238
+ if (!this.#t) return zi(this.#e, "zlib binding closed"), this.#e.reset?.();
1239
+ }
1240
+ flush(t) {
1241
+ this.ended || (typeof t != "number" && (t = this.#r), this.write(Object.assign(Buffer$1.alloc(0), { [Pi]: t })));
1242
+ }
1243
+ end(t, e, i) {
1244
+ return typeof t == "function" && (i = t, e = void 0, t = void 0), typeof e == "function" && (i = e, e = void 0), t && (e ? this.write(t, e) : this.write(t)), this.flush(this.#n), this.#i = !0, super.end(i);
1245
+ }
1246
+ get ended() {
1247
+ return this.#i;
1248
+ }
1249
+ [Tt](t) {
1250
+ return super.write(t);
1251
+ }
1252
+ write(t, e, i) {
1253
+ if (typeof e == "function" && (i = e, e = "utf8"), typeof t == "string" && (t = Buffer$1.from(t, e)), this.#t) return;
1254
+ zi(this.#e, "zlib binding closed");
1255
+ let r = this.#e._handle, n = r.close;
1256
+ r.close = () => {};
1257
+ let o = this.#e.close;
1258
+ this.#e.close = () => {}, Bi(!0);
1259
+ let h;
1260
+ try {
1261
+ let l = typeof t[Pi] == "number" ? t[Pi] : this.#s;
1262
+ h = this.#e._processChunk(t, l), Bi(!1);
1263
+ } catch (l) {
1264
+ Bi(!1), this.#o(new Gt(l, this.write));
1265
+ } finally {
1266
+ this.#e && (this.#e._handle = r, r.close = n, this.#e.close = o, this.#e.removeAllListeners("error"));
1267
+ }
1268
+ this.#e && this.#e.on("error", (l) => this.#o(new Gt(l, this.write)));
1269
+ let a;
1270
+ if (h) if (Array.isArray(h) && h.length > 0) {
1271
+ let l = h[0];
1272
+ a = this[Tt](Buffer$1.from(l));
1273
+ for (let c = 1; c < h.length; c++) a = this[Tt](h[c]);
1274
+ } else a = this[Tt](Buffer$1.from(h));
1275
+ return i && i(), a;
1276
+ }
1277
+ }, Pe = class extends re {
1278
+ #t;
1279
+ #i;
1280
+ constructor(t, e) {
1281
+ t = t || {}, t.flush = t.flush || M.Z_NO_FLUSH, t.finishFlush = t.finishFlush || M.Z_FINISH, t.fullFlushFlag = M.Z_FULL_FLUSH, super(t, e), this.#t = t.level, this.#i = t.strategy;
1282
+ }
1283
+ params(t, e) {
1284
+ if (!this.sawError) {
1285
+ if (!this.handle) throw new Error("cannot switch params when binding is closed");
1286
+ if (!this.handle.params) throw new Error("not supported in this implementation");
1287
+ if (this.#t !== t || this.#i !== e) {
1288
+ this.flush(M.Z_SYNC_FLUSH), zi(this.handle, "zlib binding closed");
1289
+ let i = this.handle.flush;
1290
+ this.handle.flush = (r, n) => {
1291
+ typeof r == "function" && (n = r, r = this.flushFlag), this.flush(r), n?.();
1292
+ };
1293
+ try {
1294
+ this.handle.params(t, e);
1295
+ } finally {
1296
+ this.handle.flush = i;
1297
+ }
1298
+ this.handle && (this.#t = t, this.#i = e);
1299
+ }
1300
+ }
1301
+ }
1302
+ };
1303
+ var ze = class extends Pe {
1304
+ #t;
1305
+ constructor(t) {
1306
+ super(t, "Gzip"), this.#t = t && !!t.portable;
1307
+ }
1308
+ [Tt](t) {
1309
+ return this.#t ? (this.#t = !1, t[9] = 255, super[Tt](t)) : super[Tt](t);
1310
+ }
1311
+ };
1312
+ var Ue = class extends Pe {
1313
+ constructor(t) {
1314
+ super(t, "Unzip");
1315
+ }
1316
+ }, He = class extends re {
1317
+ constructor(t, e) {
1318
+ t = t || {}, t.flush = t.flush || M.BROTLI_OPERATION_PROCESS, t.finishFlush = t.finishFlush || M.BROTLI_OPERATION_FINISH, t.fullFlushFlag = M.BROTLI_OPERATION_FLUSH, super(t, e);
1319
+ }
1320
+ }, We = class extends He {
1321
+ constructor(t) {
1322
+ super(t, "BrotliCompress");
1323
+ }
1324
+ }, Ge = class extends He {
1325
+ constructor(t) {
1326
+ super(t, "BrotliDecompress");
1327
+ }
1328
+ }, Ze = class extends re {
1329
+ constructor(t, e) {
1330
+ t = t || {}, t.flush = t.flush || M.ZSTD_e_continue, t.finishFlush = t.finishFlush || M.ZSTD_e_end, t.fullFlushFlag = M.ZSTD_e_flush, super(t, e);
1331
+ }
1332
+ }, Ye = class extends Ze {
1333
+ constructor(t) {
1334
+ super(t, "ZstdCompress");
1335
+ }
1336
+ }, Ke = class extends Ze {
1337
+ constructor(t) {
1338
+ super(t, "ZstdDecompress");
1339
+ }
1340
+ };
1341
+ var Us = (s, t) => {
1342
+ if (Number.isSafeInteger(s)) s < 0 ? an(s, t) : hn(s, t);
1343
+ else throw Error("cannot encode number outside of javascript safe integer range");
1344
+ return t;
1345
+ }, hn = (s, t) => {
1346
+ t[0] = 128;
1347
+ for (var e = t.length; e > 1; e--) t[e - 1] = s & 255, s = Math.floor(s / 256);
1348
+ }, an = (s, t) => {
1349
+ t[0] = 255;
1350
+ var e = !1;
1351
+ s = s * -1;
1352
+ for (var i = t.length; i > 1; i--) {
1353
+ var r = s & 255;
1354
+ s = Math.floor(s / 256), e ? t[i - 1] = Ws(r) : r === 0 ? t[i - 1] = 0 : (e = !0, t[i - 1] = Gs(r));
1355
+ }
1356
+ }, Hs = (s) => {
1357
+ let t = s[0], e = t === 128 ? cn(s.subarray(1, s.length)) : t === 255 ? ln(s) : null;
1358
+ if (e === null) throw Error("invalid base256 encoding");
1359
+ if (!Number.isSafeInteger(e)) throw Error("parsed number outside of javascript safe integer range");
1360
+ return e;
1361
+ }, ln = (s) => {
1362
+ for (var t = s.length, e = 0, i = !1, r = t - 1; r > -1; r--) {
1363
+ var n = Number(s[r]), o;
1364
+ i ? o = Ws(n) : n === 0 ? o = n : (i = !0, o = Gs(n)), o !== 0 && (e -= o * Math.pow(256, t - r - 1));
1365
+ }
1366
+ return e;
1367
+ }, cn = (s) => {
1368
+ for (var t = s.length, e = 0, i = t - 1; i > -1; i--) {
1369
+ var r = Number(s[i]);
1370
+ r !== 0 && (e += r * Math.pow(256, t - i - 1));
1371
+ }
1372
+ return e;
1373
+ }, Ws = (s) => (255 ^ s) & 255, Gs = (s) => (255 ^ s) + 1 & 255;
1374
+ Ur({}, {
1375
+ code: () => Ve,
1376
+ isCode: () => ne,
1377
+ isName: () => dn,
1378
+ name: () => oe,
1379
+ normalFsTypes: () => Ui
1380
+ });
1381
+ var ne = (s) => oe.has(s), dn = (s) => Ve.has(s), Ui = new Set([
1382
+ "0",
1383
+ "",
1384
+ "1",
1385
+ "2",
1386
+ "3",
1387
+ "4",
1388
+ "5",
1389
+ "6",
1390
+ "7",
1391
+ "D"
1392
+ ]), oe = new Map([
1393
+ ["0", "File"],
1394
+ ["", "OldFile"],
1395
+ ["1", "Link"],
1396
+ ["2", "SymbolicLink"],
1397
+ ["3", "CharacterDevice"],
1398
+ ["4", "BlockDevice"],
1399
+ ["5", "Directory"],
1400
+ ["6", "FIFO"],
1401
+ ["7", "ContiguousFile"],
1402
+ ["g", "GlobalExtendedHeader"],
1403
+ ["x", "ExtendedHeader"],
1404
+ ["A", "SolarisACL"],
1405
+ ["D", "GNUDumpDir"],
1406
+ ["I", "Inode"],
1407
+ ["K", "NextFileHasLongLinkpath"],
1408
+ ["L", "NextFileHasLongPath"],
1409
+ ["M", "ContinuationFile"],
1410
+ ["N", "OldGnuLongPath"],
1411
+ ["S", "SparseFile"],
1412
+ ["V", "TapeVolumeHeader"],
1413
+ ["X", "OldExtendedHeader"]
1414
+ ]), Ve = new Map(Array.from(oe).map((s) => [s[1], s[0]]));
1415
+ var un = (s) => s === void 0 || s < 0 ? void 0 : s, F = class {
1416
+ cksumValid = !1;
1417
+ needPax = !1;
1418
+ nullBlock = !1;
1419
+ block;
1420
+ path;
1421
+ mode;
1422
+ uid;
1423
+ gid;
1424
+ size;
1425
+ cksum;
1426
+ #t = "Unsupported";
1427
+ linkpath;
1428
+ uname;
1429
+ gname;
1430
+ devmaj = 0;
1431
+ devmin = 0;
1432
+ atime;
1433
+ ctime;
1434
+ mtime;
1435
+ charset;
1436
+ comment;
1437
+ constructor(t, e = 0, i, r) {
1438
+ Buffer.isBuffer(t) ? this.decode(t, e || 0, i, r) : t && this.#i(t);
1439
+ }
1440
+ decode(t, e, i, r) {
1441
+ if (e || (e = 0), !t || !(t.length >= e + 512)) throw new Error("need 512 bytes for header");
1442
+ let n = xt(t, e + 156, 1), o = Ui.has(n), h = o ? i : void 0, a = o ? r : void 0;
1443
+ if (this.path = h?.path ?? xt(t, e, 100), this.mode = h?.mode ?? a?.mode ?? lt(t, e + 100, 8), this.uid = h?.uid ?? a?.uid ?? lt(t, e + 108, 8), this.gid = h?.gid ?? a?.gid ?? lt(t, e + 116, 8), this.size = un(h?.size ?? a?.size ?? lt(t, e + 124, 12)), this.mtime = h?.mtime ?? a?.mtime ?? Wi(t, e + 136, 12), this.cksum = lt(t, e + 148, 12), a && this.#i(a, !0), h && this.#i(h), ne(n) && (this.#t = n || "0"), this.#t === "0" && this.path.slice(-1) === "/" && (this.#t = "5"), this.#t === "5" && (this.size = 0), this.linkpath = xt(t, e + 157, 100), t.subarray(e + 257, e + 265).toString() === "ustar\x0000") if (this.uname = h?.uname ?? a?.uname ?? xt(t, e + 265, 32), this.gname = h?.gname ?? a?.gname ?? xt(t, e + 297, 32), this.devmaj = h?.devmaj ?? a?.devmaj ?? lt(t, e + 329, 8) ?? 0, this.devmin = h?.devmin ?? a?.devmin ?? lt(t, e + 337, 8) ?? 0, t[e + 475] !== 0) {
1444
+ let c = xt(t, e + 345, 155);
1445
+ this.path = c + "/" + this.path;
1446
+ } else {
1447
+ let c = xt(t, e + 345, 130);
1448
+ c && (this.path = c + "/" + this.path), this.atime = i?.atime ?? r?.atime ?? Wi(t, e + 476, 12), this.ctime = i?.ctime ?? r?.ctime ?? Wi(t, e + 488, 12);
1449
+ }
1450
+ let l = 256;
1451
+ for (let c = e; c < e + 148; c++) l += t[c];
1452
+ for (let c = e + 156; c < e + 512; c++) l += t[c];
1453
+ this.cksumValid = l === this.cksum, this.cksum === void 0 && l === 256 && (this.nullBlock = !0);
1454
+ }
1455
+ #i(t, e = !1) {
1456
+ Object.assign(this, Object.fromEntries(Object.entries(t).filter(([i, r]) => !(r == null || i === "size" && Number(r) < 0 || i === "path" && e || i === "linkpath" && e || i === "global"))));
1457
+ }
1458
+ encode(t, e = 0) {
1459
+ if (t || (t = this.block = Buffer.alloc(512)), this.#t === "Unsupported" && (this.#t = "0"), !(t.length >= e + 512)) throw new Error("need 512 bytes for header");
1460
+ let i = this.ctime || this.atime ? 130 : 155, r = mn(this.path || "", i), n = r[0], o = r[1];
1461
+ this.needPax = !!r[2], this.needPax = Lt(t, e, 100, n) || this.needPax, this.needPax = ct(t, e + 100, 8, this.mode) || this.needPax, this.needPax = ct(t, e + 108, 8, this.uid) || this.needPax, this.needPax = ct(t, e + 116, 8, this.gid) || this.needPax, this.needPax = ct(t, e + 124, 12, this.size) || this.needPax, this.needPax = Gi(t, e + 136, 12, this.mtime) || this.needPax, t[e + 156] = Number(this.#t.codePointAt(0)), this.needPax = Lt(t, e + 157, 100, this.linkpath) || this.needPax, t.write("ustar\x0000", e + 257, 8), this.needPax = Lt(t, e + 265, 32, this.uname) || this.needPax, this.needPax = Lt(t, e + 297, 32, this.gname) || this.needPax, this.needPax = ct(t, e + 329, 8, this.devmaj) || this.needPax, this.needPax = ct(t, e + 337, 8, this.devmin) || this.needPax, this.needPax = Lt(t, e + 345, i, o) || this.needPax, t[e + 475] !== 0 ? this.needPax = Lt(t, e + 345, 155, o) || this.needPax : (this.needPax = Lt(t, e + 345, 130, o) || this.needPax, this.needPax = Gi(t, e + 476, 12, this.atime) || this.needPax, this.needPax = Gi(t, e + 488, 12, this.ctime) || this.needPax);
1462
+ let h = 256;
1463
+ for (let a = e; a < e + 148; a++) h += t[a];
1464
+ for (let a = e + 156; a < e + 512; a++) h += t[a];
1465
+ return this.cksum = h, ct(t, e + 148, 8, this.cksum), this.cksumValid = !0, this.needPax;
1466
+ }
1467
+ get type() {
1468
+ return this.#t === "Unsupported" ? this.#t : oe.get(this.#t);
1469
+ }
1470
+ get typeKey() {
1471
+ return this.#t;
1472
+ }
1473
+ set type(t) {
1474
+ let e = String(Ve.get(t));
1475
+ if (ne(e) || e === "Unsupported") this.#t = e;
1476
+ else if (ne(t)) this.#t = t;
1477
+ else throw new TypeError("invalid entry type: " + t);
1478
+ }
1479
+ }, mn = (s, t) => {
1480
+ let i = s, r = "", n, o = posix.parse(s).root || ".";
1481
+ if (Buffer.byteLength(i) < 100) n = [
1482
+ i,
1483
+ r,
1484
+ !1
1485
+ ];
1486
+ else {
1487
+ r = posix.dirname(i), i = posix.basename(i);
1488
+ do
1489
+ Buffer.byteLength(i) <= 100 && Buffer.byteLength(r) <= t ? n = [
1490
+ i,
1491
+ r,
1492
+ !1
1493
+ ] : Buffer.byteLength(i) > 100 && Buffer.byteLength(r) <= t ? n = [
1494
+ i.slice(0, 99),
1495
+ r,
1496
+ !0
1497
+ ] : (i = posix.join(posix.basename(r), i), r = posix.dirname(r));
1498
+ while (r !== o && n === void 0);
1499
+ n || (n = [
1500
+ s.slice(0, 99),
1501
+ "",
1502
+ !0
1503
+ ]);
1504
+ }
1505
+ return n;
1506
+ }, xt = (s, t, e) => s.subarray(t, t + e).toString("utf8").replace(/\0.*/, ""), Wi = (s, t, e) => pn(lt(s, t, e)), pn = (s) => s === void 0 ? void 0 : /* @__PURE__ */ new Date(s * 1e3), lt = (s, t, e) => Number(s[t]) & 128 ? Hs(s.subarray(t, t + e)) : wn(s, t, e), En = (s) => isNaN(s) ? void 0 : s, wn = (s, t, e) => En(parseInt(s.subarray(t, t + e).toString("utf8").replace(/\0.*$/, "").trim(), 8)), Sn = {
1507
+ 12: 8589934591,
1508
+ 8: 2097151
1509
+ }, ct = (s, t, e, i) => i === void 0 ? !1 : i > Sn[e] || i < 0 ? (Us(i, s.subarray(t, t + e)), !0) : (yn(s, t, e, i), !1), yn = (s, t, e, i) => s.write(Rn(i, e), t, e, "ascii"), Rn = (s, t) => gn(Math.floor(s).toString(8), t), gn = (s, t) => (s.length === t - 1 ? s : new Array(t - s.length - 1).join("0") + s + " ") + "\0", Gi = (s, t, e, i) => i === void 0 ? !1 : ct(s, t, e, i.getTime() / 1e3), bn = new Array(156).join("\0"), Lt = (s, t, e, i) => i === void 0 ? !1 : (s.write(i + bn, t, e, "utf8"), i.length !== Buffer.byteLength(i) || i.length > e);
1510
+ var ft = class s {
1511
+ atime;
1512
+ mtime;
1513
+ ctime;
1514
+ charset;
1515
+ comment;
1516
+ gid;
1517
+ uid;
1518
+ gname;
1519
+ uname;
1520
+ linkpath;
1521
+ dev;
1522
+ ino;
1523
+ nlink;
1524
+ path;
1525
+ size;
1526
+ mode;
1527
+ global;
1528
+ constructor(t, e = !1) {
1529
+ this.atime = t.atime, this.charset = t.charset, this.comment = t.comment, this.ctime = t.ctime, this.dev = t.dev, this.gid = t.gid, this.global = e, this.gname = t.gname, this.ino = t.ino, this.linkpath = t.linkpath, this.mtime = t.mtime, this.nlink = t.nlink, this.path = t.path, this.size = t.size, this.uid = t.uid, this.uname = t.uname;
1530
+ }
1531
+ encode() {
1532
+ let t = this.encodeBody();
1533
+ if (t === "") return Buffer.allocUnsafe(0);
1534
+ let e = Buffer.byteLength(t), i = 512 * Math.ceil(1 + e / 512), r = Buffer.allocUnsafe(i);
1535
+ for (let n = 0; n < 512; n++) r[n] = 0;
1536
+ new F({
1537
+ path: ("PaxHeader/" + basename(this.path ?? "")).slice(0, 99),
1538
+ mode: this.mode || 420,
1539
+ uid: this.uid,
1540
+ gid: this.gid,
1541
+ size: e,
1542
+ mtime: this.mtime,
1543
+ type: this.global ? "GlobalExtendedHeader" : "ExtendedHeader",
1544
+ linkpath: "",
1545
+ uname: this.uname || "",
1546
+ gname: this.gname || "",
1547
+ devmaj: 0,
1548
+ devmin: 0,
1549
+ atime: this.atime,
1550
+ ctime: this.ctime
1551
+ }).encode(r), r.write(t, 512, e, "utf8");
1552
+ for (let n = e + 512; n < r.length; n++) r[n] = 0;
1553
+ return r;
1554
+ }
1555
+ encodeBody() {
1556
+ return this.encodeField("path") + this.encodeField("ctime") + this.encodeField("atime") + this.encodeField("dev") + this.encodeField("ino") + this.encodeField("nlink") + this.encodeField("charset") + this.encodeField("comment") + this.encodeField("gid") + this.encodeField("gname") + this.encodeField("linkpath") + this.encodeField("mtime") + this.encodeField("size") + this.encodeField("uid") + this.encodeField("uname");
1557
+ }
1558
+ encodeField(t) {
1559
+ if (this[t] === void 0) return "";
1560
+ let e = this[t], i = e instanceof Date ? e.getTime() / 1e3 : e, r = " " + (t === "dev" || t === "ino" || t === "nlink" ? "SCHILY." : "") + t + "=" + i + `
1561
+ `, n = Buffer.byteLength(r), o = Math.floor(Math.log(n) / Math.log(10)) + 1;
1562
+ return n + o >= Math.pow(10, o) && (o += 1), o + n + r;
1563
+ }
1564
+ static parse(t, e, i = !1) {
1565
+ return new s(On(Tn(t), e), i);
1566
+ }
1567
+ }, On = (s, t) => t ? Object.assign({}, t, s) : s, Tn = (s) => s.replace(/\n$/, "").split(`
1568
+ `).reduce(xn, Object.create(null)), xn = (s, t) => {
1569
+ let e = parseInt(t, 10);
1570
+ if (e !== Buffer.byteLength(t) + 1) return s;
1571
+ t = t.slice((e + " ").length);
1572
+ let i = t.split("="), r = i.shift();
1573
+ if (!r) return s;
1574
+ let n = r.replace(/^SCHILY\.(dev|ino|nlink)/, "$1"), o = i.join("=").replace(/\0.*/, "");
1575
+ switch (n) {
1576
+ case "path":
1577
+ case "linkpath":
1578
+ case "type":
1579
+ case "charset":
1580
+ case "comment":
1581
+ case "gname":
1582
+ case "uname":
1583
+ s[n] = o;
1584
+ break;
1585
+ case "ctime":
1586
+ case "atime":
1587
+ case "mtime":
1588
+ s[n] = /* @__PURE__ */ new Date(Number(o) * 1e3);
1589
+ break;
1590
+ case "size":
1591
+ let h = +o;
1592
+ h >= 0 && (s[n] = h);
1593
+ break;
1594
+ case "gid":
1595
+ case "uid":
1596
+ case "dev":
1597
+ case "ino":
1598
+ case "nlink":
1599
+ case "mode":
1600
+ s[n] = +o;
1601
+ break;
1602
+ }
1603
+ return s;
1604
+ };
1605
+ var f = (process.env.TESTING_TAR_FAKE_PLATFORM || process.platform) !== "win32" ? (s) => String(s) : (s) => String(s).replaceAll(/\\/g, "/");
1606
+ var $e = class extends A {
1607
+ extended;
1608
+ globalExtended;
1609
+ header;
1610
+ startBlockSize;
1611
+ blockRemain;
1612
+ remain;
1613
+ type;
1614
+ meta = !1;
1615
+ ignore = !1;
1616
+ path;
1617
+ mode;
1618
+ uid;
1619
+ gid;
1620
+ uname;
1621
+ gname;
1622
+ size = 0;
1623
+ mtime;
1624
+ atime;
1625
+ ctime;
1626
+ linkpath;
1627
+ dev;
1628
+ ino;
1629
+ nlink;
1630
+ invalid = !1;
1631
+ absolute;
1632
+ unsupported = !1;
1633
+ constructor(t, e, i) {
1634
+ switch (super({}), this.pause(), this.extended = e, this.globalExtended = i, this.header = t, this.remain = t.size ?? 0, this.startBlockSize = 512 * Math.ceil(this.remain / 512), this.blockRemain = this.startBlockSize, this.type = t.type, this.type) {
1635
+ case "File":
1636
+ case "OldFile":
1637
+ case "Link":
1638
+ case "SymbolicLink":
1639
+ case "CharacterDevice":
1640
+ case "BlockDevice":
1641
+ case "Directory":
1642
+ case "FIFO":
1643
+ case "ContiguousFile":
1644
+ case "GNUDumpDir": break;
1645
+ case "NextFileHasLongLinkpath":
1646
+ case "NextFileHasLongPath":
1647
+ case "OldGnuLongPath":
1648
+ case "GlobalExtendedHeader":
1649
+ case "ExtendedHeader":
1650
+ case "OldExtendedHeader":
1651
+ this.meta = !0;
1652
+ break;
1653
+ default: this.ignore = !0;
1654
+ }
1655
+ if (!t.path) throw new Error("no path provided for tar.ReadEntry");
1656
+ this.path = f(t.path), this.mode = t.mode, this.mode && (this.mode = this.mode & 4095), this.uid = t.uid, this.gid = t.gid, this.uname = t.uname, this.gname = t.gname, this.size = this.remain, this.mtime = t.mtime, this.atime = t.atime, this.ctime = t.ctime, this.linkpath = t.linkpath ? f(t.linkpath) : void 0, this.uname = t.uname, this.gname = t.gname, e && this.#t(e), i && this.#t(i, !0);
1657
+ }
1658
+ write(t) {
1659
+ let e = t.length;
1660
+ if (e > this.blockRemain) throw new Error("writing more to entry than is appropriate");
1661
+ let i = this.remain, r = this.blockRemain;
1662
+ return this.remain = Math.max(0, i - e), this.blockRemain = Math.max(0, r - e), this.ignore ? !0 : i >= e ? super.write(t) : super.write(t.subarray(0, i));
1663
+ }
1664
+ #t(t, e = !1) {
1665
+ t.path && (t.path = f(t.path)), t.linkpath && (t.linkpath = f(t.linkpath)), Object.assign(this, Object.fromEntries(Object.entries(t).filter(([i, r]) => !(r == null || i === "path" && e))));
1666
+ }
1667
+ };
1668
+ var Dt = (s, t, e, i = {}) => {
1669
+ s.file && (i.file = s.file), s.cwd && (i.cwd = s.cwd), i.code = e instanceof Error && e.code || t, i.tarCode = t, !s.strict && i.recoverable !== !1 ? (e instanceof Error && (i = Object.assign(e, i), e = e.message), s.emit("warn", t, e, i)) : e instanceof Error ? s.emit("error", Object.assign(e, i)) : s.emit("error", Object.assign(/* @__PURE__ */ new Error(`${t}: ${e}`), i));
1670
+ };
1671
+ var Nn = 1024 * 1024, Xi = Buffer.from([31, 139]), qi = Buffer.from([
1672
+ 40,
1673
+ 181,
1674
+ 47,
1675
+ 253
1676
+ ]), An = Math.max(Xi.length, qi.length), B = Symbol("state"), Nt = Symbol("writeEntry"), it = Symbol("readEntry"), Zi = Symbol("nextEntry"), Zs = Symbol("processEntry"), V = Symbol("extendedHeader"), he = Symbol("globalExtendedHeader"), dt = Symbol("meta"), Ys = Symbol("emitMeta"), p = Symbol("buffer"), st = Symbol("queue"), ut = Symbol("ended"), Yi = Symbol("emittedEnd"), At = Symbol("emit"), w = Symbol("unzip"), Xe = Symbol("consumeChunk"), qe = Symbol("consumeChunkSub"), Ki = Symbol("consumeBody"), Ks = Symbol("consumeMeta"), Vs = Symbol("consumeHeader"), ae = Symbol("consuming"), Vi = Symbol("bufferConcat"), Qe = Symbol("maybeEnd"), Yt = Symbol("writing"), $ = Symbol("aborted"), Je = Symbol("onDone"), It = Symbol("sawValidEntry"), je = Symbol("sawNullBlock"), ti = Symbol("sawEOF"), $s = Symbol("closeStream"), In = 1e3, le = Symbol("compressedBytesRead"), $i = Symbol("decompressedBytesRead"), Xs = Symbol("checkDecompressionRatio"), Cn = () => !0, rt = class extends EventEmitter {
1677
+ file;
1678
+ strict;
1679
+ maxMetaEntrySize;
1680
+ filter;
1681
+ brotli;
1682
+ zstd;
1683
+ maxDecompressionRatio;
1684
+ writable = !0;
1685
+ readable = !1;
1686
+ [st] = [];
1687
+ [p];
1688
+ [it];
1689
+ [Nt];
1690
+ [B] = "begin";
1691
+ [dt] = "";
1692
+ [V];
1693
+ [he];
1694
+ [ut] = !1;
1695
+ [w];
1696
+ [$] = !1;
1697
+ [It];
1698
+ [je] = !1;
1699
+ [ti] = !1;
1700
+ [Yt] = !1;
1701
+ [ae] = !1;
1702
+ [Yi] = !1;
1703
+ [le] = 0;
1704
+ [$i] = 0;
1705
+ constructor(t = {}) {
1706
+ super(), this.file = t.file || "", this.on(Je, () => {
1707
+ (this[B] === "begin" || this[It] === !1) && this.warn("TAR_BAD_ARCHIVE", "Unrecognized archive format");
1708
+ }), t.ondone ? this.on(Je, t.ondone) : this.on(Je, () => {
1709
+ this.emit("prefinish"), this.emit("finish"), this.emit("end");
1710
+ }), this.strict = !!t.strict, this.maxDecompressionRatio = typeof t.maxDecompressionRatio == "number" ? t.maxDecompressionRatio : In, this.maxMetaEntrySize = t.maxMetaEntrySize || Nn, this.filter = typeof t.filter == "function" ? t.filter : Cn;
1711
+ let e = t.file && (t.file.endsWith(".tar.br") || t.file.endsWith(".tbr"));
1712
+ this.brotli = !(t.gzip || t.zstd) && t.brotli !== void 0 ? t.brotli : e ? void 0 : !1;
1713
+ let i = t.file && (t.file.endsWith(".tar.zst") || t.file.endsWith(".tzst"));
1714
+ this.zstd = !(t.gzip || t.brotli) && t.zstd !== void 0 ? t.zstd : i ? !0 : void 0, this.on("end", () => this[$s]()), typeof t.onwarn == "function" && this.on("warn", t.onwarn), typeof t.onReadEntry == "function" && this.on("entry", t.onReadEntry);
1715
+ }
1716
+ warn(t, e, i = {}) {
1717
+ Dt(this, t, e, i);
1718
+ }
1719
+ [Vs](t, e) {
1720
+ this[It] === void 0 && (this[It] = !1);
1721
+ let i;
1722
+ try {
1723
+ i = new F(t, e, this[V], this[he]);
1724
+ } catch (r) {
1725
+ return this.warn("TAR_ENTRY_INVALID", r);
1726
+ }
1727
+ if (i.nullBlock) this[je] ? (this[ti] = !0, this[B] === "begin" && (this[B] = "header"), this[At]("eof")) : (this[je] = !0, this[At]("nullBlock"));
1728
+ else if (this[je] = !1, !i.cksumValid) this.warn("TAR_ENTRY_INVALID", "checksum failure", { header: i });
1729
+ else if (!i.path) this.warn("TAR_ENTRY_INVALID", "path is required", { header: i });
1730
+ else {
1731
+ let r = i.type;
1732
+ if (/^(Symbolic)?Link$/.test(r) && !i.linkpath) this.warn("TAR_ENTRY_INVALID", "linkpath required", { header: i });
1733
+ else if (!/^(Symbolic)?Link$/.test(r) && !/^(Global)?ExtendedHeader$/.test(r) && i.linkpath) this.warn("TAR_ENTRY_INVALID", "linkpath forbidden", { header: i });
1734
+ else {
1735
+ let n = this[Nt] = new $e(i, this[V], this[he]);
1736
+ if (!this[It]) if (n.remain) {
1737
+ let o = () => {
1738
+ n.invalid || (this[It] = !0);
1739
+ };
1740
+ n.on("end", o);
1741
+ } else this[It] = !0;
1742
+ n.meta ? n.size > this.maxMetaEntrySize ? (n.ignore = !0, this[At]("ignoredEntry", n), this[B] = "ignore", n.resume()) : n.size > 0 && (this[dt] = "", n.on("data", (o) => this[dt] += o), this[B] = "meta") : (this[V] = void 0, n.ignore = n.ignore || !this.filter(n.path, n), n.ignore ? (this[At]("ignoredEntry", n), this[B] = n.remain ? "ignore" : "header", n.resume()) : (n.remain ? this[B] = "body" : (this[B] = "header", n.end()), this[it] ? this[st].push(n) : (this[st].push(n), this[Zi]())));
1743
+ }
1744
+ }
1745
+ }
1746
+ [$s]() {
1747
+ queueMicrotask(() => this.emit("close"));
1748
+ }
1749
+ [Zs](t) {
1750
+ let e = !0;
1751
+ if (!t) this[it] = void 0, e = !1;
1752
+ else if (Array.isArray(t)) {
1753
+ let [i, ...r] = t;
1754
+ this.emit(i, ...r);
1755
+ } else this[it] = t, this.emit("entry", t), t.emittedEnd || (t.on("end", () => this[Zi]()), e = !1);
1756
+ return e;
1757
+ }
1758
+ [Zi]() {
1759
+ do ;
1760
+ while (this[Zs](this[st].shift()));
1761
+ if (this[st].length === 0) {
1762
+ let t = this[it];
1763
+ !t || t.flowing || t.size === t.remain ? this[Yt] || this.emit("drain") : t.once("drain", () => this.emit("drain"));
1764
+ }
1765
+ }
1766
+ [Ki](t, e) {
1767
+ let i = this[Nt];
1768
+ if (!i) throw new Error("attempt to consume body without entry??");
1769
+ let r = i.blockRemain ?? 0, n = r >= t.length && e === 0 ? t : t.subarray(e, e + r);
1770
+ return i.write(n), i.blockRemain || (this[B] = "header", this[Nt] = void 0, i.end()), n.length;
1771
+ }
1772
+ [Ks](t, e) {
1773
+ let i = this[Nt], r = this[Ki](t, e);
1774
+ return !this[Nt] && i && this[Ys](i), r;
1775
+ }
1776
+ [At](t, e, i) {
1777
+ this[st].length === 0 && !this[it] ? this.emit(t, e, i) : this[st].push([
1778
+ t,
1779
+ e,
1780
+ i
1781
+ ]);
1782
+ }
1783
+ [Ys](t) {
1784
+ switch (this[At]("meta", this[dt]), t.type) {
1785
+ case "ExtendedHeader":
1786
+ case "OldExtendedHeader":
1787
+ this[V] = ft.parse(this[dt], this[V], !1);
1788
+ break;
1789
+ case "GlobalExtendedHeader":
1790
+ this[he] = ft.parse(this[dt], this[he], !0);
1791
+ break;
1792
+ case "NextFileHasLongPath":
1793
+ case "OldGnuLongPath": {
1794
+ let e = this[V] ?? Object.create(null);
1795
+ this[V] = e, e.path = this[dt].replace(/\0.*/, "");
1796
+ break;
1797
+ }
1798
+ case "NextFileHasLongLinkpath": {
1799
+ let e = this[V] || Object.create(null);
1800
+ this[V] = e, e.linkpath = this[dt].replace(/\0.*/, "");
1801
+ break;
1802
+ }
1803
+ default: throw new Error("unknown meta: " + t.type);
1804
+ }
1805
+ }
1806
+ abort(t) {
1807
+ if (!this[$]) {
1808
+ if (this[w]) {
1809
+ let e = this[w];
1810
+ e.write = () => !0, e.end = () => e, e.emit = () => !1, e.destroy?.();
1811
+ }
1812
+ this[$] = !0, this.emit("abort", t), this.warn("TAR_ABORT", t, { recoverable: !1 });
1813
+ }
1814
+ }
1815
+ [Xs](t) {
1816
+ this[$i] += t.length;
1817
+ let e = this[$i] / this[le];
1818
+ return e > this.maxDecompressionRatio ? (this.abort(/* @__PURE__ */ new Error(`max decompression ratio exceeded: ${e.toFixed(2)} > ${this.maxDecompressionRatio}`)), !1) : !0;
1819
+ }
1820
+ write(t, e, i) {
1821
+ if (typeof e == "function" && (i = e, e = void 0), typeof t == "string" && (t = Buffer.from(t, typeof e == "string" ? e : "utf8")), this[$]) return i?.(), !1;
1822
+ if ((this[w] === void 0 || this.brotli === void 0 && this[w] === !1) && t) {
1823
+ if (this[p] && (t = Buffer.concat([this[p], t]), this[p] = void 0), t.length < An) return this[p] = t, i?.(), !0;
1824
+ for (let a = 0; this[w] === void 0 && a < Xi.length; a++) t[a] !== Xi[a] && (this[w] = !1);
1825
+ let o = !1;
1826
+ if (this[w] === !1 && this.zstd !== !1) {
1827
+ o = !0;
1828
+ for (let a = 0; a < qi.length; a++) if (t[a] !== qi[a]) {
1829
+ o = !1;
1830
+ break;
1831
+ }
1832
+ }
1833
+ let h = this.brotli === void 0 && !o;
1834
+ if (this[w] === !1 && h) if (t.length < 512) if (this[ut]) this.brotli = !0;
1835
+ else return this[p] = t, i?.(), !0;
1836
+ else try {
1837
+ new F(t.subarray(0, 512)), this.brotli = !1;
1838
+ } catch {
1839
+ this.brotli = !0;
1840
+ }
1841
+ if (this[w] === void 0 || this[w] === !1 && (this.brotli || o)) {
1842
+ let a = this[ut];
1843
+ this[ut] = !1, this[w] = this[w] === void 0 ? new Ue({}) : o ? new Ke({}) : new Ge({}), this[w].on("data", (c) => {
1844
+ this[Xs](c) && this[Xe](c);
1845
+ }), this[w].on("error", (c) => {
1846
+ this[$] || this.abort(c);
1847
+ }), this[w].on("end", () => {
1848
+ this[ut] = !0, this[Xe]();
1849
+ }), this[Yt] = !0, this[le] += t.length;
1850
+ let l = !!this[w][a ? "end" : "write"](t);
1851
+ return this[Yt] = !1, i?.(), l;
1852
+ }
1853
+ }
1854
+ this[Yt] = !0, this[w] ? (this[le] += t.length, this[w].write(t)) : this[Xe](t), this[Yt] = !1;
1855
+ let n = this[st].length > 0 ? !1 : this[it] ? this[it].flowing : !0;
1856
+ return !n && this[st].length === 0 && this[it]?.once("drain", () => this.emit("drain")), i?.(), n;
1857
+ }
1858
+ [Vi](t) {
1859
+ t && !this[$] && (this[p] = this[p] ? Buffer.concat([this[p], t]) : t);
1860
+ }
1861
+ [Qe]() {
1862
+ if (this[ut] && !this[Yi] && !this[$] && !this[ae]) {
1863
+ this[Yi] = !0;
1864
+ let t = this[Nt];
1865
+ if (t?.blockRemain) {
1866
+ let e = this[p] ? this[p].length : 0;
1867
+ this.warn("TAR_BAD_ARCHIVE", `Truncated input (needed ${t.blockRemain} more bytes, only ${e} available)`, { entry: t }), this[p] && t.write(this[p]), t.end();
1868
+ }
1869
+ this[At](Je);
1870
+ }
1871
+ }
1872
+ [Xe](t) {
1873
+ if (this[ae] && t) this[Vi](t);
1874
+ else if (!t && !this[p]) this[Qe]();
1875
+ else if (t) {
1876
+ if (this[ae] = !0, this[p]) {
1877
+ this[Vi](t);
1878
+ let e = this[p];
1879
+ this[p] = void 0, this[qe](e);
1880
+ } else this[qe](t);
1881
+ for (; this[p] && this[p]?.length >= 512 && !this[$] && !this[ti];) {
1882
+ let e = this[p];
1883
+ this[p] = void 0, this[qe](e);
1884
+ }
1885
+ this[ae] = !1;
1886
+ }
1887
+ (!this[p] || this[ut]) && this[Qe]();
1888
+ }
1889
+ [qe](t) {
1890
+ let e = 0, i = t.length;
1891
+ for (; e + 512 <= i && !this[$] && !this[ti];) switch (this[B]) {
1892
+ case "begin":
1893
+ case "header":
1894
+ this[Vs](t, e), e += 512;
1895
+ break;
1896
+ case "ignore":
1897
+ case "body":
1898
+ e += this[Ki](t, e);
1899
+ break;
1900
+ case "meta":
1901
+ e += this[Ks](t, e);
1902
+ break;
1903
+ default: throw new Error("invalid state: " + this[B]);
1904
+ }
1905
+ e < i && (this[p] = this[p] ? Buffer.concat([t.subarray(e), this[p]]) : t.subarray(e));
1906
+ }
1907
+ end(t, e, i) {
1908
+ return typeof t == "function" && (i = t, e = void 0, t = void 0), typeof e == "function" && (i = e, e = void 0), typeof t == "string" && (t = Buffer.from(t, e)), i && this.once("finish", i), this[$] || (this[w] ? (t && (this[le] += t.length, this[w].write(t)), this[w].end()) : (this[ut] = !0, (this.brotli === void 0 || this.zstd === void 0) && (t = t || Buffer.alloc(0)), t && this.write(t), this[Qe]())), this;
1909
+ }
1910
+ };
1911
+ var mt = (s) => {
1912
+ let t = s.length - 1, e = -1;
1913
+ for (; t > -1 && s.charAt(t) === "/";) e = t, t--;
1914
+ return e === -1 ? s : s.slice(0, e);
1915
+ };
1916
+ var vn = (s) => {
1917
+ let t = s.onReadEntry;
1918
+ s.onReadEntry = t ? (e) => {
1919
+ t(e), e.resume();
1920
+ } : (e) => e.resume();
1921
+ }, Qi = (s, t) => {
1922
+ let e = new Map(t.map((o) => [mt(o), !0])), i = s.filter, r = 100, n = (o, h = "", a = 0) => {
1923
+ if (a >= r) return e.set(o, !1), !1;
1924
+ let l = h || parse(o).root || ".", c;
1925
+ if (o === l) c = !1;
1926
+ else {
1927
+ let d = e.get(o);
1928
+ c = d !== void 0 ? d : n(dirname(o), l, a + 1);
1929
+ }
1930
+ return e.set(o, c), c;
1931
+ };
1932
+ s.filter = i ? (o, h) => i(o, h) && n(mt(o)) : (o) => n(mt(o));
1933
+ }, Mn = (s) => {
1934
+ let t = new rt(s), e = s.file, i;
1935
+ try {
1936
+ i = Kt.openSync(e, "r");
1937
+ let r = Kt.fstatSync(i), n = s.maxReadSize || 16 * 1024 * 1024;
1938
+ if (r.size < n) {
1939
+ let o = Buffer.allocUnsafe(r.size), h = Kt.readSync(i, o, 0, r.size, 0);
1940
+ t.end(h === o.byteLength ? o : o.subarray(0, h));
1941
+ } else {
1942
+ let o = 0, h = Buffer.allocUnsafe(n);
1943
+ for (; o < r.size;) {
1944
+ let a = Kt.readSync(i, h, 0, n, o);
1945
+ if (a === 0) break;
1946
+ o += a, t.write(h.subarray(0, a));
1947
+ }
1948
+ t.end();
1949
+ }
1950
+ } finally {
1951
+ if (typeof i == "number") try {
1952
+ Kt.closeSync(i);
1953
+ } catch {}
1954
+ }
1955
+ }, Bn = (s, t) => {
1956
+ let e = new rt(s), i = s.maxReadSize || 16 * 1024 * 1024, r = s.file;
1957
+ return new Promise((o, h) => {
1958
+ e.on("error", h), e.on("end", o), Kt.stat(r, (a, l) => {
1959
+ if (a) h(a);
1960
+ else {
1961
+ let c = new _t(r, {
1962
+ readSize: i,
1963
+ size: l.size
1964
+ });
1965
+ c.on("error", h), c.pipe(e);
1966
+ }
1967
+ });
1968
+ });
1969
+ }, Ct = K(Mn, Bn, (s) => new rt(s), (s) => new rt(s), (s, t) => {
1970
+ t?.length && Qi(s, t), s.noResume || vn(s);
1971
+ });
1972
+ var Ji = (s, t, e) => (s &= 4095, e && (s = (s | 384) & -19), t && (s & 256 && (s |= 64), s & 32 && (s |= 8), s & 4 && (s |= 1)), s);
1973
+ var { isAbsolute: zn, parse: qs } = win32, ce = (s) => {
1974
+ let t = "", e = qs(s);
1975
+ for (; zn(s) || e.root;) {
1976
+ let i = s.charAt(0) === "/" && s.slice(0, 4) !== "//?/" ? "/" : e.root;
1977
+ s = s.slice(i.length), t += i, e = qs(s);
1978
+ }
1979
+ return [t, s];
1980
+ };
1981
+ var ei = [
1982
+ "|",
1983
+ "<",
1984
+ ">",
1985
+ "?",
1986
+ ":"
1987
+ ], ji = ei.map((s) => String.fromCodePoint(61440 + Number(s.codePointAt(0)))), Un = new Map(ei.map((s, t) => [s, ji[t]])), Hn = new Map(ji.map((s, t) => [s, ei[t]])), ts = (s) => ei.reduce((t, e) => t.split(e).join(Un.get(e)), s), Qs = (s) => ji.reduce((t, e) => t.split(e).join(Hn.get(e)), s);
1988
+ var rr = (s, t) => t ? (s = f(s).replace(/^\.(\/|$)/, ""), mt(t) + "/" + s) : f(s), Wn = 16 * 1024 * 1024, tr = Symbol("process"), er = Symbol("file"), ir = Symbol("directory"), is = Symbol("symlink"), sr = Symbol("hardlink"), fe = Symbol("header"), ii = Symbol("read"), ss = Symbol("lstat"), si = Symbol("onlstat"), rs = Symbol("onread"), ns = Symbol("onreadlink"), os = Symbol("openfile"), hs = Symbol("onopenfile"), pt = Symbol("close"), ri = Symbol("mode"), as = Symbol("awaitDrain"), es = Symbol("ondrain"), q = Symbol("prefix"), de = class extends A {
1989
+ path;
1990
+ portable;
1991
+ myuid = process.getuid && process.getuid() || 0;
1992
+ myuser = process.env.USER || "";
1993
+ maxReadSize;
1994
+ linkCache;
1995
+ statCache;
1996
+ preservePaths;
1997
+ cwd;
1998
+ strict;
1999
+ mtime;
2000
+ noPax;
2001
+ noMtime;
2002
+ prefix;
2003
+ fd;
2004
+ blockLen = 0;
2005
+ blockRemain = 0;
2006
+ buf;
2007
+ pos = 0;
2008
+ remain = 0;
2009
+ length = 0;
2010
+ offset = 0;
2011
+ win32;
2012
+ absolute;
2013
+ header;
2014
+ type;
2015
+ linkpath;
2016
+ stat;
2017
+ onWriteEntry;
2018
+ #t = !1;
2019
+ constructor(t, e = {}) {
2020
+ let i = se(e);
2021
+ super(), this.path = f(t), this.portable = !!i.portable, this.maxReadSize = i.maxReadSize || Wn, this.linkCache = i.linkCache || /* @__PURE__ */ new Map(), this.statCache = i.statCache || /* @__PURE__ */ new Map(), this.preservePaths = !!i.preservePaths, this.cwd = f(i.cwd || process.cwd()), this.strict = !!i.strict, this.noPax = !!i.noPax, this.noMtime = !!i.noMtime, this.mtime = i.mtime, this.prefix = i.prefix ? f(i.prefix) : void 0, this.onWriteEntry = i.onWriteEntry, typeof i.onwarn == "function" && this.on("warn", i.onwarn);
2022
+ let r = !1;
2023
+ if (!this.preservePaths) {
2024
+ let [o, h] = ce(this.path);
2025
+ o && typeof h == "string" && (this.path = h, r = o);
2026
+ }
2027
+ this.win32 = !!i.win32 || process.platform === "win32", this.win32 && (this.path = Qs(this.path.replaceAll(/\\/g, "/")), t = t.replaceAll(/\\/g, "/")), this.absolute = f(i.absolute || js.resolve(this.cwd, t)), this.path === "" && (this.path = "./"), r && this.warn("TAR_ENTRY_INFO", `stripping ${r} from absolute path`, {
2028
+ entry: this,
2029
+ path: r + this.path
2030
+ });
2031
+ let n = this.statCache.get(this.absolute);
2032
+ n ? this[si](n) : this[ss]();
2033
+ }
2034
+ warn(t, e, i = {}) {
2035
+ return Dt(this, t, e, i);
2036
+ }
2037
+ emit(t, ...e) {
2038
+ return t === "error" && (this.#t = !0), super.emit(t, ...e);
2039
+ }
2040
+ [ss]() {
2041
+ I.lstat(this.absolute, (t, e) => {
2042
+ if (t) return this.emit("error", t);
2043
+ this[si](e);
2044
+ });
2045
+ }
2046
+ [si](t) {
2047
+ this.statCache.set(this.absolute, t), this.stat = t, t.isFile() || (t.size = 0), this.type = Gn(t), this.emit("stat", t), this[tr]();
2048
+ }
2049
+ [tr]() {
2050
+ switch (this.type) {
2051
+ case "File": return this[er]();
2052
+ case "Directory": return this[ir]();
2053
+ case "SymbolicLink": return this[is]();
2054
+ default: return this.end();
2055
+ }
2056
+ }
2057
+ [ri](t) {
2058
+ return Ji(t, this.type === "Directory", this.portable);
2059
+ }
2060
+ [q](t) {
2061
+ return rr(t, this.prefix);
2062
+ }
2063
+ [fe]() {
2064
+ if (!this.stat) throw new Error("cannot write header before stat");
2065
+ this.type === "Directory" && this.portable && (this.noMtime = !0), this.onWriteEntry?.(this), this.header = new F({
2066
+ path: this[q](this.path),
2067
+ linkpath: this.type === "Link" && this.linkpath !== void 0 ? this[q](this.linkpath) : this.linkpath,
2068
+ mode: this[ri](this.stat.mode),
2069
+ uid: this.portable ? void 0 : this.stat.uid,
2070
+ gid: this.portable ? void 0 : this.stat.gid,
2071
+ size: this.stat.size,
2072
+ mtime: this.noMtime ? void 0 : this.mtime || this.stat.mtime,
2073
+ type: this.type === "Unsupported" ? void 0 : this.type,
2074
+ uname: this.portable ? void 0 : this.stat.uid === this.myuid ? this.myuser : "",
2075
+ atime: this.portable ? void 0 : this.stat.atime,
2076
+ ctime: this.portable ? void 0 : this.stat.ctime
2077
+ }), this.header.encode() && !this.noPax && super.write(new ft({
2078
+ atime: this.portable ? void 0 : this.header.atime,
2079
+ ctime: this.portable ? void 0 : this.header.ctime,
2080
+ gid: this.portable ? void 0 : this.header.gid,
2081
+ mtime: this.noMtime ? void 0 : this.mtime || this.header.mtime,
2082
+ path: this[q](this.path),
2083
+ linkpath: this.type === "Link" && this.linkpath !== void 0 ? this[q](this.linkpath) : this.linkpath,
2084
+ size: this.header.size,
2085
+ uid: this.portable ? void 0 : this.header.uid,
2086
+ uname: this.portable ? void 0 : this.header.uname,
2087
+ dev: this.portable ? void 0 : this.stat.dev,
2088
+ ino: this.portable ? void 0 : this.stat.ino,
2089
+ nlink: this.portable ? void 0 : this.stat.nlink
2090
+ }).encode());
2091
+ let t = this.header?.block;
2092
+ if (!t) throw new Error("failed to encode header");
2093
+ super.write(t);
2094
+ }
2095
+ [ir]() {
2096
+ if (!this.stat) throw new Error("cannot create directory entry without stat");
2097
+ this.path.slice(-1) !== "/" && (this.path += "/"), this.stat.size = 0, this[fe](), this.end();
2098
+ }
2099
+ [is]() {
2100
+ I.readlink(this.absolute, (t, e) => {
2101
+ if (t) return this.emit("error", t);
2102
+ this[ns](e);
2103
+ });
2104
+ }
2105
+ [ns](t) {
2106
+ this.linkpath = f(t), this[fe](), this.end();
2107
+ }
2108
+ [sr](t) {
2109
+ if (!this.stat) throw new Error("cannot create link entry without stat");
2110
+ this.type = "Link", this.linkpath = f(js.relative(this.cwd, t)), this.stat.size = 0, this[fe](), this.end();
2111
+ }
2112
+ [er]() {
2113
+ if (!this.stat) throw new Error("cannot create file entry without stat");
2114
+ if (this.stat.nlink > 1) {
2115
+ let t = `${this.stat.dev}:${this.stat.ino}`, e = this.linkCache.get(t);
2116
+ if (e?.indexOf(this.cwd) === 0) return this[sr](e);
2117
+ this.linkCache.set(t, this.absolute);
2118
+ }
2119
+ if (this[fe](), this.stat.size === 0) return this.end();
2120
+ this[os]();
2121
+ }
2122
+ [os]() {
2123
+ I.open(this.absolute, "r", (t, e) => {
2124
+ if (t) return this.emit("error", t);
2125
+ this[hs](e);
2126
+ });
2127
+ }
2128
+ [hs](t) {
2129
+ if (this.fd = t, this.#t) return this[pt]();
2130
+ if (!this.stat) throw new Error("should stat before calling onopenfile");
2131
+ this.blockLen = 512 * Math.ceil(this.stat.size / 512), this.blockRemain = this.blockLen;
2132
+ let e = Math.min(this.blockLen, this.maxReadSize);
2133
+ this.buf = Buffer.allocUnsafe(e), this.offset = 0, this.pos = 0, this.remain = this.stat.size, this.length = this.buf.length, this[ii]();
2134
+ }
2135
+ [ii]() {
2136
+ let { fd: t, buf: e, offset: i, length: r, pos: n } = this;
2137
+ if (t === void 0 || e === void 0) throw new Error("cannot read file without first opening");
2138
+ I.read(t, e, i, r, n, (o, h) => {
2139
+ if (o) return this[pt](() => this.emit("error", o));
2140
+ this[rs](h);
2141
+ });
2142
+ }
2143
+ [pt](t = () => {}) {
2144
+ this.fd !== void 0 && I.close(this.fd, t);
2145
+ }
2146
+ [rs](t) {
2147
+ if (t <= 0 && this.remain > 0) {
2148
+ let r = Object.assign(/* @__PURE__ */ new Error("encountered unexpected EOF"), {
2149
+ path: this.absolute,
2150
+ syscall: "read",
2151
+ code: "EOF"
2152
+ });
2153
+ return this[pt](() => this.emit("error", r));
2154
+ }
2155
+ if (t > this.remain) {
2156
+ let r = Object.assign(/* @__PURE__ */ new Error("did not encounter expected EOF"), {
2157
+ path: this.absolute,
2158
+ syscall: "read",
2159
+ code: "EOF"
2160
+ });
2161
+ return this[pt](() => this.emit("error", r));
2162
+ }
2163
+ if (!this.buf) throw new Error("should have created buffer prior to reading");
2164
+ if (t === this.remain) for (let r = t; r < this.length && t < this.blockRemain; r++) this.buf[r + this.offset] = 0, t++, this.remain++;
2165
+ let e = this.offset === 0 && t === this.buf.length ? this.buf : this.buf.subarray(this.offset, this.offset + t);
2166
+ this.write(e) ? this[es]() : this[as](() => this[es]());
2167
+ }
2168
+ [as](t) {
2169
+ this.once("drain", t);
2170
+ }
2171
+ write(t, e, i) {
2172
+ if (typeof e == "function" && (i = e, e = void 0), typeof t == "string" && (t = Buffer.from(t, typeof e == "string" ? e : "utf8")), this.blockRemain < t.length) {
2173
+ let r = Object.assign(/* @__PURE__ */ new Error("writing more data than expected"), { path: this.absolute });
2174
+ return this.emit("error", r);
2175
+ }
2176
+ return this.remain -= t.length, this.blockRemain -= t.length, this.pos += t.length, this.offset += t.length, super.write(t, null, i);
2177
+ }
2178
+ [es]() {
2179
+ if (!this.remain) return this.blockRemain && super.write(Buffer.alloc(this.blockRemain)), this[pt]((t) => t ? this.emit("error", t) : this.end());
2180
+ if (!this.buf) throw new Error("buffer lost somehow in ONDRAIN");
2181
+ this.offset >= this.length && (this.buf = Buffer.allocUnsafe(Math.min(this.blockRemain, this.buf.length)), this.offset = 0), this.length = this.buf.length - this.offset, this[ii]();
2182
+ }
2183
+ }, ni = class extends de {
2184
+ sync = !0;
2185
+ [ss]() {
2186
+ this[si](I.lstatSync(this.absolute));
2187
+ }
2188
+ [is]() {
2189
+ this[ns](I.readlinkSync(this.absolute));
2190
+ }
2191
+ [os]() {
2192
+ this[hs](I.openSync(this.absolute, "r"));
2193
+ }
2194
+ [ii]() {
2195
+ let t = !0;
2196
+ try {
2197
+ let { fd: e, buf: i, offset: r, length: n, pos: o } = this;
2198
+ if (e === void 0 || i === void 0) throw new Error("fd and buf must be set in READ method");
2199
+ let h = I.readSync(e, i, r, n, o);
2200
+ this[rs](h), t = !1;
2201
+ } finally {
2202
+ if (t) try {
2203
+ this[pt](() => {});
2204
+ } catch {}
2205
+ }
2206
+ }
2207
+ [as](t) {
2208
+ t();
2209
+ }
2210
+ [pt](t = () => {}) {
2211
+ this.fd !== void 0 && I.closeSync(this.fd), t();
2212
+ }
2213
+ }, oi = class extends A {
2214
+ blockLen = 0;
2215
+ blockRemain = 0;
2216
+ buf = 0;
2217
+ pos = 0;
2218
+ remain = 0;
2219
+ length = 0;
2220
+ preservePaths;
2221
+ portable;
2222
+ strict;
2223
+ noPax;
2224
+ noMtime;
2225
+ readEntry;
2226
+ type;
2227
+ prefix;
2228
+ path;
2229
+ mode;
2230
+ uid;
2231
+ gid;
2232
+ uname;
2233
+ gname;
2234
+ header;
2235
+ mtime;
2236
+ atime;
2237
+ ctime;
2238
+ linkpath;
2239
+ size;
2240
+ onWriteEntry;
2241
+ warn(t, e, i = {}) {
2242
+ return Dt(this, t, e, i);
2243
+ }
2244
+ constructor(t, e = {}) {
2245
+ let i = se(e);
2246
+ super(), this.preservePaths = !!i.preservePaths, this.portable = !!i.portable, this.strict = !!i.strict, this.noPax = !!i.noPax, this.noMtime = !!i.noMtime, this.onWriteEntry = i.onWriteEntry, this.readEntry = t;
2247
+ let { type: r } = t;
2248
+ if (r === "Unsupported") throw new Error("writing entry that should be ignored");
2249
+ this.type = r, this.type === "Directory" && this.portable && (this.noMtime = !0), this.prefix = i.prefix, this.path = f(t.path), this.mode = t.mode !== void 0 ? this[ri](t.mode) : void 0, this.uid = this.portable ? void 0 : t.uid, this.gid = this.portable ? void 0 : t.gid, this.uname = this.portable ? void 0 : t.uname, this.gname = this.portable ? void 0 : t.gname, this.size = t.size, this.mtime = this.noMtime ? void 0 : i.mtime || t.mtime, this.atime = this.portable ? void 0 : t.atime, this.ctime = this.portable ? void 0 : t.ctime, this.linkpath = t.linkpath !== void 0 ? f(t.linkpath) : void 0, typeof i.onwarn == "function" && this.on("warn", i.onwarn);
2250
+ let n = !1;
2251
+ if (!this.preservePaths) {
2252
+ let [h, a] = ce(this.path);
2253
+ h && typeof a == "string" && (this.path = a, n = h);
2254
+ }
2255
+ this.remain = t.size, this.blockRemain = t.startBlockSize, this.onWriteEntry?.(this), this.header = new F({
2256
+ path: this[q](this.path),
2257
+ linkpath: this.type === "Link" && this.linkpath !== void 0 ? this[q](this.linkpath) : this.linkpath,
2258
+ mode: this.mode,
2259
+ uid: this.portable ? void 0 : this.uid,
2260
+ gid: this.portable ? void 0 : this.gid,
2261
+ size: this.size,
2262
+ mtime: this.noMtime ? void 0 : this.mtime,
2263
+ type: this.type,
2264
+ uname: this.portable ? void 0 : this.uname,
2265
+ atime: this.portable ? void 0 : this.atime,
2266
+ ctime: this.portable ? void 0 : this.ctime
2267
+ }), n && this.warn("TAR_ENTRY_INFO", `stripping ${n} from absolute path`, {
2268
+ entry: this,
2269
+ path: n + this.path
2270
+ }), this.header.encode() && !this.noPax && super.write(new ft({
2271
+ atime: this.portable ? void 0 : this.atime,
2272
+ ctime: this.portable ? void 0 : this.ctime,
2273
+ gid: this.portable ? void 0 : this.gid,
2274
+ mtime: this.noMtime ? void 0 : this.mtime,
2275
+ path: this[q](this.path),
2276
+ linkpath: this.type === "Link" && this.linkpath !== void 0 ? this[q](this.linkpath) : this.linkpath,
2277
+ size: this.size,
2278
+ uid: this.portable ? void 0 : this.uid,
2279
+ uname: this.portable ? void 0 : this.uname,
2280
+ dev: this.portable ? void 0 : this.readEntry.dev,
2281
+ ino: this.portable ? void 0 : this.readEntry.ino,
2282
+ nlink: this.portable ? void 0 : this.readEntry.nlink
2283
+ }).encode());
2284
+ let o = this.header?.block;
2285
+ if (!o) throw new Error("failed to encode header");
2286
+ super.write(o), t.pipe(this);
2287
+ }
2288
+ [q](t) {
2289
+ return rr(t, this.prefix);
2290
+ }
2291
+ [ri](t) {
2292
+ return Ji(t, this.type === "Directory", this.portable);
2293
+ }
2294
+ write(t, e, i) {
2295
+ typeof e == "function" && (i = e, e = void 0), typeof t == "string" && (t = Buffer.from(t, typeof e == "string" ? e : "utf8"));
2296
+ let r = t.length;
2297
+ if (r > this.blockRemain) throw new Error("writing more to entry than is appropriate");
2298
+ return this.blockRemain -= r, super.write(t, i);
2299
+ }
2300
+ end(t, e, i) {
2301
+ return this.blockRemain && super.write(Buffer.alloc(this.blockRemain)), typeof t == "function" && (i = t, e = void 0, t = void 0), typeof e == "function" && (i = e, e = void 0), typeof t == "string" && (t = Buffer.from(t, e ?? "utf8")), i && this.once("finish", i), t ? super.end(t, i) : super.end(i), this;
2302
+ }
2303
+ }, Gn = (s) => s.isFile() ? "File" : s.isDirectory() ? "Directory" : s.isSymbolicLink() ? "SymbolicLink" : "Unsupported";
2304
+ var hi = class s {
2305
+ tail;
2306
+ head;
2307
+ length = 0;
2308
+ static create(t = []) {
2309
+ return new s(t);
2310
+ }
2311
+ constructor(t = []) {
2312
+ for (let e of t) this.push(e);
2313
+ }
2314
+ *[Symbol.iterator]() {
2315
+ for (let t = this.head; t; t = t.next) yield t.value;
2316
+ }
2317
+ removeNode(t) {
2318
+ if (t.list !== this) throw new Error("removing node which does not belong to this list");
2319
+ let e = t.next, i = t.prev;
2320
+ return e && (e.prev = i), i && (i.next = e), t === this.head && (this.head = e), t === this.tail && (this.tail = i), this.length--, t.next = void 0, t.prev = void 0, t.list = void 0, e;
2321
+ }
2322
+ unshiftNode(t) {
2323
+ if (t === this.head) return;
2324
+ t.list && t.list.removeNode(t);
2325
+ let e = this.head;
2326
+ t.list = this, t.next = e, e && (e.prev = t), this.head = t, this.tail || (this.tail = t), this.length++;
2327
+ }
2328
+ pushNode(t) {
2329
+ if (t === this.tail) return;
2330
+ t.list && t.list.removeNode(t);
2331
+ let e = this.tail;
2332
+ t.list = this, t.prev = e, e && (e.next = t), this.tail = t, this.head || (this.head = t), this.length++;
2333
+ }
2334
+ push(...t) {
2335
+ for (let e = 0, i = t.length; e < i; e++) Yn(this, t[e]);
2336
+ return this.length;
2337
+ }
2338
+ unshift(...t) {
2339
+ for (var e = 0, i = t.length; e < i; e++) Kn(this, t[e]);
2340
+ return this.length;
2341
+ }
2342
+ pop() {
2343
+ if (!this.tail) return;
2344
+ let t = this.tail.value, e = this.tail;
2345
+ return this.tail = this.tail.prev, this.tail ? this.tail.next = void 0 : this.head = void 0, e.list = void 0, this.length--, t;
2346
+ }
2347
+ shift() {
2348
+ if (!this.head) return;
2349
+ let t = this.head.value, e = this.head;
2350
+ return this.head = this.head.next, this.head ? this.head.prev = void 0 : this.tail = void 0, e.list = void 0, this.length--, t;
2351
+ }
2352
+ forEach(t, e) {
2353
+ e = e || this;
2354
+ for (let i = this.head, r = 0; i; r++) t.call(e, i.value, r, this), i = i.next;
2355
+ }
2356
+ forEachReverse(t, e) {
2357
+ e = e || this;
2358
+ for (let i = this.tail, r = this.length - 1; i; r--) t.call(e, i.value, r, this), i = i.prev;
2359
+ }
2360
+ get(t) {
2361
+ let e = 0, i = this.head;
2362
+ for (; i && e < t; e++) i = i.next;
2363
+ if (e === t && i) return i.value;
2364
+ }
2365
+ getReverse(t) {
2366
+ let e = 0, i = this.tail;
2367
+ for (; i && e < t; e++) i = i.prev;
2368
+ if (e === t && i) return i.value;
2369
+ }
2370
+ map(t, e) {
2371
+ e = e || this;
2372
+ let i = new s();
2373
+ for (let r = this.head; r;) i.push(t.call(e, r.value, this)), r = r.next;
2374
+ return i;
2375
+ }
2376
+ mapReverse(t, e) {
2377
+ e = e || this;
2378
+ var i = new s();
2379
+ for (let r = this.tail; r;) i.push(t.call(e, r.value, this)), r = r.prev;
2380
+ return i;
2381
+ }
2382
+ reduce(t, e) {
2383
+ let i, r = this.head;
2384
+ if (arguments.length > 1) i = e;
2385
+ else if (this.head) r = this.head.next, i = this.head.value;
2386
+ else throw new TypeError("Reduce of empty list with no initial value");
2387
+ for (var n = 0; r; n++) i = t(i, r.value, n), r = r.next;
2388
+ return i;
2389
+ }
2390
+ reduceReverse(t, e) {
2391
+ let i, r = this.tail;
2392
+ if (arguments.length > 1) i = e;
2393
+ else if (this.tail) r = this.tail.prev, i = this.tail.value;
2394
+ else throw new TypeError("Reduce of empty list with no initial value");
2395
+ for (let n = this.length - 1; r; n--) i = t(i, r.value, n), r = r.prev;
2396
+ return i;
2397
+ }
2398
+ toArray() {
2399
+ let t = new Array(this.length);
2400
+ for (let e = 0, i = this.head; i; e++) t[e] = i.value, i = i.next;
2401
+ return t;
2402
+ }
2403
+ toArrayReverse() {
2404
+ let t = new Array(this.length);
2405
+ for (let e = 0, i = this.tail; i; e++) t[e] = i.value, i = i.prev;
2406
+ return t;
2407
+ }
2408
+ slice(t = 0, e = this.length) {
2409
+ e < 0 && (e += this.length), t < 0 && (t += this.length);
2410
+ let i = new s();
2411
+ if (e < t || e < 0) return i;
2412
+ t < 0 && (t = 0), e > this.length && (e = this.length);
2413
+ let r = this.head, n = 0;
2414
+ for (n = 0; r && n < t; n++) r = r.next;
2415
+ for (; r && n < e; n++, r = r.next) i.push(r.value);
2416
+ return i;
2417
+ }
2418
+ sliceReverse(t = 0, e = this.length) {
2419
+ e < 0 && (e += this.length), t < 0 && (t += this.length);
2420
+ let i = new s();
2421
+ if (e < t || e < 0) return i;
2422
+ t < 0 && (t = 0), e > this.length && (e = this.length);
2423
+ let r = this.length, n = this.tail;
2424
+ for (; n && r > e; r--) n = n.prev;
2425
+ for (; n && r > t; r--, n = n.prev) i.push(n.value);
2426
+ return i;
2427
+ }
2428
+ splice(t, e = 0, ...i) {
2429
+ t > this.length && (t = this.length - 1), t < 0 && (t = this.length + t);
2430
+ let r = this.head;
2431
+ for (let o = 0; r && o < t; o++) r = r.next;
2432
+ let n = [];
2433
+ for (let o = 0; r && o < e; o++) n.push(r.value), r = this.removeNode(r);
2434
+ r ? r !== this.tail && (r = r.prev) : r = this.tail;
2435
+ for (let o of i) r = Zn(this, r, o);
2436
+ return n;
2437
+ }
2438
+ reverse() {
2439
+ let t = this.head, e = this.tail;
2440
+ for (let i = t; i; i = i.prev) {
2441
+ let r = i.prev;
2442
+ i.prev = i.next, i.next = r;
2443
+ }
2444
+ return this.head = e, this.tail = t, this;
2445
+ }
2446
+ };
2447
+ function Zn(s, t, e) {
2448
+ let n = new ue(e, t, t ? t.next : s.head, s);
2449
+ return n.next === void 0 && (s.tail = n), n.prev === void 0 && (s.head = n), s.length++, n;
2450
+ }
2451
+ function Yn(s, t) {
2452
+ s.tail = new ue(t, s.tail, void 0, s), s.head || (s.head = s.tail), s.length++;
2453
+ }
2454
+ function Kn(s, t) {
2455
+ s.head = new ue(t, void 0, s.head, s), s.tail || (s.tail = s.head), s.length++;
2456
+ }
2457
+ var ue = class {
2458
+ list;
2459
+ next;
2460
+ prev;
2461
+ value;
2462
+ constructor(t, e, i, r) {
2463
+ this.list = r, this.value = t, e ? (e.next = this, this.prev = e) : this.prev = void 0, i ? (i.prev = this, this.next = i) : this.next = void 0;
2464
+ }
2465
+ };
2466
+ var pi = class {
2467
+ path;
2468
+ absolute;
2469
+ entry;
2470
+ stat;
2471
+ readdir;
2472
+ pending = !1;
2473
+ pendingLink = !1;
2474
+ ignore = !1;
2475
+ piped = !1;
2476
+ constructor(t, e) {
2477
+ this.path = t || "./", this.absolute = e;
2478
+ }
2479
+ }, nr = Buffer.alloc(1024), li = Symbol("onStat"), me = Symbol("ended"), W = Symbol("queue"), pe = Symbol("pendingLinks"), Et = Symbol("current"), Ft = Symbol("process"), Ee = Symbol("processing"), ai = Symbol("processJob"), G = Symbol("jobs"), ls = Symbol("jobDone"), ci = Symbol("addFSEntry"), or = Symbol("addTarEntry"), ds = Symbol("stat"), us = Symbol("readdir"), fi = Symbol("onreaddir"), di = Symbol("pipe"), hr = Symbol("entry"), cs = Symbol("entryOpt"), ui = Symbol("writeEntryClass"), lr = Symbol("write"), fs = Symbol("ondrain"), wt = class extends A {
2480
+ sync = !1;
2481
+ opt;
2482
+ cwd;
2483
+ maxReadSize;
2484
+ preservePaths;
2485
+ strict;
2486
+ noPax;
2487
+ prefix;
2488
+ linkCache;
2489
+ statCache;
2490
+ file;
2491
+ portable;
2492
+ zip;
2493
+ readdirCache;
2494
+ noDirRecurse;
2495
+ follow;
2496
+ noMtime;
2497
+ mtime;
2498
+ filter;
2499
+ jobs;
2500
+ [ui];
2501
+ onWriteEntry;
2502
+ [W];
2503
+ [pe] = /* @__PURE__ */ new Map();
2504
+ [G] = 0;
2505
+ [Ee] = !1;
2506
+ [me] = !1;
2507
+ constructor(t = {}) {
2508
+ if (super(), this.opt = t, this.file = t.file || "", this.cwd = t.cwd || process.cwd(), this.maxReadSize = t.maxReadSize, this.preservePaths = !!t.preservePaths, this.strict = !!t.strict, this.noPax = !!t.noPax, this.prefix = f(t.prefix || ""), this.linkCache = t.linkCache || /* @__PURE__ */ new Map(), this.statCache = t.statCache || /* @__PURE__ */ new Map(), this.readdirCache = t.readdirCache || /* @__PURE__ */ new Map(), this.onWriteEntry = t.onWriteEntry, this[ui] = de, typeof t.onwarn == "function" && this.on("warn", t.onwarn), this.portable = !!t.portable, t.gzip || t.brotli || t.zstd) {
2509
+ if ((t.gzip ? 1 : 0) + (t.brotli ? 1 : 0) + (t.zstd ? 1 : 0) > 1) throw new TypeError("gzip, brotli, zstd are mutually exclusive");
2510
+ if (t.gzip && (typeof t.gzip != "object" && (t.gzip = {}), this.portable && (t.gzip.portable = !0), this.zip = new ze(t.gzip)), t.brotli && (typeof t.brotli != "object" && (t.brotli = {}), this.zip = new We(t.brotli)), t.zstd && (typeof t.zstd != "object" && (t.zstd = {}), this.zip = new Ye(t.zstd)), !this.zip) throw new Error("impossible");
2511
+ let e = this.zip;
2512
+ e.on("data", (i) => super.write(i)), e.on("end", () => super.end()), e.on("drain", () => this[fs]()), this.on("resume", () => e.resume());
2513
+ } else this.on("drain", this[fs]);
2514
+ this.noDirRecurse = !!t.noDirRecurse, this.follow = !!t.follow, this.noMtime = !!t.noMtime, t.mtime && (this.mtime = t.mtime), this.filter = typeof t.filter == "function" ? t.filter : () => !0, this[W] = new hi(), this[G] = 0, this.jobs = Number(t.jobs) || 4, this[Ee] = !1, this[me] = !1;
2515
+ }
2516
+ [lr](t) {
2517
+ return super.write(t);
2518
+ }
2519
+ add(t) {
2520
+ return this.write(t), this;
2521
+ }
2522
+ end(t, e, i) {
2523
+ return typeof t == "function" && (i = t, t = void 0), typeof e == "function" && (i = e, e = void 0), t && this.add(t), this[me] = !0, this[Ft](), i && i(), this;
2524
+ }
2525
+ write(t) {
2526
+ if (this[me]) throw new Error("write after end");
2527
+ return typeof t == "string" ? this[ci](t) : this[or](t), this.flowing;
2528
+ }
2529
+ [or](t) {
2530
+ let e = f(js.resolve(this.cwd, t.path));
2531
+ if (!this.filter(t.path, t)) t.resume();
2532
+ else {
2533
+ let i = new pi(t.path, e);
2534
+ i.entry = new oi(t, this[cs](i)), i.entry.on("end", () => this[ls](i)), this[G] += 1, this[W].push(i);
2535
+ }
2536
+ this[Ft]();
2537
+ }
2538
+ [ci](t) {
2539
+ let e = f(js.resolve(this.cwd, t));
2540
+ this[W].push(new pi(t, e)), this[Ft]();
2541
+ }
2542
+ [ds](t) {
2543
+ t.pending = !0, this[G] += 1;
2544
+ I[this.follow ? "stat" : "lstat"](t.absolute, (i, r) => {
2545
+ t.pending = !1, this[G] -= 1, i ? this.emit("error", i) : this[li](t, r);
2546
+ });
2547
+ }
2548
+ [li](t, e) {
2549
+ if (this.statCache.set(t.absolute, e), t.stat = e, !this.filter(t.path, e)) t.ignore = !0;
2550
+ else if (e.isFile() && e.nlink > 1 && !this.linkCache.get(`${e.dev}:${e.ino}`) && !this.sync) if (t === this[Et]) this[ai](t);
2551
+ else {
2552
+ let i = `${e.dev}:${e.ino}`, r = this[pe].get(i);
2553
+ r ? r.push(t) : this[pe].set(i, [t]), t.pendingLink = !0, t.pending = !0;
2554
+ }
2555
+ this[Ft]();
2556
+ }
2557
+ [us](t) {
2558
+ t.pending = !0, this[G] += 1, I.readdir(t.absolute, (e, i) => {
2559
+ if (t.pending = !1, this[G] -= 1, e) return this.emit("error", e);
2560
+ this[fi](t, i);
2561
+ });
2562
+ }
2563
+ [fi](t, e) {
2564
+ this.readdirCache.set(t.absolute, e), t.readdir = e, this[Ft]();
2565
+ }
2566
+ [Ft]() {
2567
+ if (!this[Ee]) {
2568
+ this[Ee] = !0;
2569
+ for (let t = this[W].head; t && this[G] < this.jobs; t = t.next) if (this[ai](t.value), t.value.ignore) {
2570
+ let e = t.next;
2571
+ this[W].removeNode(t), t.next = e;
2572
+ }
2573
+ this[Ee] = !1, this[me] && this[W].length === 0 && this[G] === 0 && (this.zip ? this.zip.end(nr) : (super.write(nr), super.end()));
2574
+ }
2575
+ }
2576
+ get [Et]() {
2577
+ return this[W] && this[W].head && this[W].head.value;
2578
+ }
2579
+ [ls](t) {
2580
+ this[W].shift(), this[G] -= 1;
2581
+ let { stat: e } = t;
2582
+ if (e && e.isFile() && e.nlink > 1) {
2583
+ let i = `${e.dev}:${e.ino}`, r = this[pe].get(i);
2584
+ if (r) {
2585
+ this[pe].delete(i);
2586
+ for (let n of r) n.pending = !1, this[ai](n);
2587
+ }
2588
+ }
2589
+ this[Ft]();
2590
+ }
2591
+ [ai](t) {
2592
+ if (t.pending && t.pendingLink && t === this[Et] && (t.pending = !1, t.pendingLink = !1), !t.pending) {
2593
+ if (t.entry) {
2594
+ t === this[Et] && !t.piped && this[di](t);
2595
+ return;
2596
+ }
2597
+ if (!t.stat) {
2598
+ let e = this.statCache.get(t.absolute);
2599
+ e ? this[li](t, e) : this[ds](t);
2600
+ }
2601
+ if (t.stat && !t.ignore) {
2602
+ if (!this.noDirRecurse && t.stat.isDirectory() && !t.readdir) {
2603
+ let e = this.readdirCache.get(t.absolute);
2604
+ if (e ? this[fi](t, e) : this[us](t), !t.readdir) return;
2605
+ }
2606
+ if (t.entry = this[hr](t), !t.entry) {
2607
+ t.ignore = !0;
2608
+ return;
2609
+ }
2610
+ t === this[Et] && !t.piped && this[di](t);
2611
+ }
2612
+ }
2613
+ }
2614
+ [cs](t) {
2615
+ return {
2616
+ onwarn: (e, i, r) => this.warn(e, i, r),
2617
+ noPax: this.noPax,
2618
+ cwd: this.cwd,
2619
+ absolute: t.absolute,
2620
+ preservePaths: this.preservePaths,
2621
+ maxReadSize: this.maxReadSize,
2622
+ strict: this.strict,
2623
+ portable: this.portable,
2624
+ linkCache: this.linkCache,
2625
+ statCache: this.statCache,
2626
+ noMtime: this.noMtime,
2627
+ mtime: this.mtime,
2628
+ prefix: this.prefix,
2629
+ onWriteEntry: this.onWriteEntry
2630
+ };
2631
+ }
2632
+ [hr](t) {
2633
+ this[G] += 1;
2634
+ try {
2635
+ return new this[ui](t.path, this[cs](t)).on("end", () => this[ls](t)).on("error", (i) => this.emit("error", i));
2636
+ } catch (e) {
2637
+ this.emit("error", e);
2638
+ }
2639
+ }
2640
+ [fs]() {
2641
+ this[Et] && this[Et].entry && this[Et].entry.resume();
2642
+ }
2643
+ [di](t) {
2644
+ t.piped = !0, t.readdir && t.readdir.forEach((r) => {
2645
+ let n = t.path, o = n === "./" ? "" : n.replace(/\/*$/, "/");
2646
+ this[ci](o + r);
2647
+ });
2648
+ let e = t.entry, i = this.zip;
2649
+ if (!e) throw new Error("cannot pipe without source");
2650
+ i ? e.on("data", (r) => {
2651
+ i.write(r) || e.pause();
2652
+ }) : e.on("data", (r) => {
2653
+ super.write(r) || e.pause();
2654
+ });
2655
+ }
2656
+ pause() {
2657
+ return this.zip && this.zip.pause(), super.pause();
2658
+ }
2659
+ warn(t, e, i = {}) {
2660
+ Dt(this, t, e, i);
2661
+ }
2662
+ }, kt = class extends wt {
2663
+ sync = !0;
2664
+ constructor(t) {
2665
+ super(t), this[ui] = ni;
2666
+ }
2667
+ pause() {}
2668
+ resume() {}
2669
+ [ds](t) {
2670
+ let e = this.follow ? "statSync" : "lstatSync";
2671
+ this[li](t, I[e](t.absolute));
2672
+ }
2673
+ [us](t) {
2674
+ this[fi](t, I.readdirSync(t.absolute));
2675
+ }
2676
+ [di](t) {
2677
+ let e = t.entry, i = this.zip;
2678
+ if (t.readdir && t.readdir.forEach((r) => {
2679
+ let n = t.path, o = n === "./" ? "" : n.replace(/\/*$/, "/");
2680
+ this[ci](o + r);
2681
+ }), !e) throw new Error("Cannot pipe without source");
2682
+ i ? e.on("data", (r) => {
2683
+ i.write(r);
2684
+ }) : e.on("data", (r) => {
2685
+ super[lr](r);
2686
+ });
2687
+ }
2688
+ }, Vn = (s, t) => {
2689
+ let e = new kt(s), i = new Wt(s.file, { mode: s.mode || 438 });
2690
+ e.pipe(i), fr(e, t);
2691
+ }, $n = (s, t) => {
2692
+ let e = new wt(s), i = new et(s.file, { mode: s.mode || 438 });
2693
+ e.pipe(i);
2694
+ let r = new Promise((n, o) => {
2695
+ i.on("error", o), i.on("close", n), e.on("error", o);
2696
+ });
2697
+ return dr(e, t).catch((n) => e.emit("error", n)), r;
2698
+ }, fr = (s, t) => {
2699
+ t.forEach((e) => {
2700
+ e.charAt(0) === "@" ? Ct({
2701
+ file: path.resolve(s.cwd, e.slice(1)),
2702
+ sync: !0,
2703
+ noResume: !0,
2704
+ onReadEntry: (i) => s.add(i)
2705
+ }) : s.add(e);
2706
+ }), s.end();
2707
+ }, dr = async (s, t) => {
2708
+ for (let e of t) e.charAt(0) === "@" ? await Ct({
2709
+ file: path.resolve(String(s.cwd), e.slice(1)),
2710
+ noResume: !0,
2711
+ onReadEntry: (i) => {
2712
+ s.add(i);
2713
+ }
2714
+ }) : s.add(e);
2715
+ s.end();
2716
+ }, Xn = (s, t) => {
2717
+ let e = new kt(s);
2718
+ return fr(e, t), e;
2719
+ }, qn = (s, t) => {
2720
+ let e = new wt(s);
2721
+ return dr(e, t).catch((i) => e.emit("error", i)), e;
2722
+ };
2723
+ K(Vn, $n, Xn, qn, (s, t) => {
2724
+ if (!t?.length) throw new TypeError("no paths specified to add to archive");
2725
+ });
2726
+ var Er = (process.env.__FAKE_PLATFORM__ || process.platform) === "win32", { O_CREAT: wr, O_NOFOLLOW: ur, O_TRUNC: Sr, O_WRONLY: yr } = I.constants, Rr = Number(process.env.__FAKE_FS_O_FILENAME__) || I.constants.UV_FS_O_FILEMAP || 0, jn = Er && !!Rr, to = 512 * 1024, eo = Rr | Sr | wr | yr, mr = !Er && typeof ur == "number" ? ur | Sr | wr | yr : null, ms = mr !== null ? () => mr : jn ? (s) => s < to ? eo : "w" : () => "w";
2727
+ var ps = (s, t, e) => {
2728
+ try {
2729
+ return Kt.lchownSync(s, t, e);
2730
+ } catch (i) {
2731
+ if (i?.code !== "ENOENT") throw i;
2732
+ }
2733
+ }, Ei = (s, t, e, i) => {
2734
+ Kt.lchown(s, t, e, (r) => {
2735
+ i(r && r?.code !== "ENOENT" ? r : null);
2736
+ });
2737
+ }, io = (s, t, e, i, r) => {
2738
+ if (t.isDirectory()) Es(path.resolve(s, t.name), e, i, (n) => {
2739
+ if (n) return r(n);
2740
+ Ei(path.resolve(s, t.name), e, i, r);
2741
+ });
2742
+ else Ei(path.resolve(s, t.name), e, i, r);
2743
+ }, Es = (s, t, e, i) => {
2744
+ Kt.readdir(s, { withFileTypes: !0 }, (r, n) => {
2745
+ if (r) {
2746
+ if (r.code === "ENOENT") return i();
2747
+ if (r.code !== "ENOTDIR" && r.code !== "ENOTSUP") return i(r);
2748
+ }
2749
+ if (r || !n.length) return Ei(s, t, e, i);
2750
+ let o = n.length, h = null, a = (l) => {
2751
+ if (!h) {
2752
+ if (l) return i(h = l);
2753
+ if (--o === 0) return Ei(s, t, e, i);
2754
+ }
2755
+ };
2756
+ for (let l of n) io(s, l, t, e, a);
2757
+ });
2758
+ }, so = (s, t, e, i) => {
2759
+ t.isDirectory() && ws(path.resolve(s, t.name), e, i), ps(path.resolve(s, t.name), e, i);
2760
+ }, ws = (s, t, e) => {
2761
+ let i;
2762
+ try {
2763
+ i = Kt.readdirSync(s, { withFileTypes: !0 });
2764
+ } catch (r) {
2765
+ let n = r;
2766
+ if (n?.code === "ENOENT") return;
2767
+ if (n?.code === "ENOTDIR" || n?.code === "ENOTSUP") return ps(s, t, e);
2768
+ throw n;
2769
+ }
2770
+ for (let r of i) so(s, r, t, e);
2771
+ return ps(s, t, e);
2772
+ };
2773
+ var Se = class extends Error {
2774
+ path;
2775
+ code;
2776
+ syscall = "chdir";
2777
+ constructor(t, e) {
2778
+ super(`${e}: Cannot cd into '${t}'`), this.path = t, this.code = e;
2779
+ }
2780
+ get name() {
2781
+ return "CwdError";
2782
+ }
2783
+ };
2784
+ var St = class extends Error {
2785
+ path;
2786
+ symlink;
2787
+ syscall = "symlink";
2788
+ code = "TAR_SYMLINK_ERROR";
2789
+ constructor(t, e) {
2790
+ super("TAR_SYMLINK_ERROR: Cannot extract through symbolic link"), this.symlink = t, this.path = e;
2791
+ }
2792
+ get name() {
2793
+ return "SymlinkError";
2794
+ }
2795
+ };
2796
+ var no = (s, t) => {
2797
+ Kt.stat(s, (e, i) => {
2798
+ (e || !i.isDirectory()) && (e = new Se(s, e?.code || "ENOTDIR")), t(e);
2799
+ });
2800
+ }, gr = (s, t, e) => {
2801
+ s = f(s);
2802
+ let i = t.umask ?? 18, r = t.mode | 448, n = (r & i) !== 0, o = t.uid, h = t.gid, a = typeof o == "number" && typeof h == "number" && (o !== t.processUid || h !== t.processGid), l = t.preserve, c = t.unlink, d = f(t.cwd), y = (E, x) => {
2803
+ E ? e(E) : x && a ? Es(x, o, h, (Le) => y(Le)) : n ? Kt.chmod(s, r, e) : e();
2804
+ };
2805
+ if (s === d) return no(s, y);
2806
+ if (l) return ro.mkdir(s, {
2807
+ mode: r,
2808
+ recursive: !0
2809
+ }).then((E) => y(null, E ?? void 0), y);
2810
+ Ss(d, f(path.relative(d, s)).split("/"), r, c, d, void 0, y);
2811
+ }, Ss = (s, t, e, i, r, n, o) => {
2812
+ if (t.length === 0) return o(null, n);
2813
+ let h = t.shift(), a = f(path.resolve(s + "/" + h));
2814
+ Kt.mkdir(a, e, br(a, t, e, i, r, n, o));
2815
+ }, br = (s, t, e, i, r, n, o) => (h) => {
2816
+ h ? Kt.lstat(s, (a, l) => {
2817
+ if (a) a.path = a.path && f(a.path), o(a);
2818
+ else if (l.isDirectory()) Ss(s, t, e, i, r, n, o);
2819
+ else if (i) Kt.unlink(s, (c) => {
2820
+ if (c) return o(c);
2821
+ Kt.mkdir(s, e, br(s, t, e, i, r, n, o));
2822
+ });
2823
+ else {
2824
+ if (l.isSymbolicLink()) return o(new St(s, s + "/" + t.join("/")));
2825
+ o(h);
2826
+ }
2827
+ }) : (n = n || s, Ss(s, t, e, i, r, n, o));
2828
+ }, oo = (s) => {
2829
+ let t = !1, e;
2830
+ try {
2831
+ t = Kt.statSync(s).isDirectory();
2832
+ } catch (i) {
2833
+ e = i?.code;
2834
+ } finally {
2835
+ if (!t) throw new Se(s, e ?? "ENOTDIR");
2836
+ }
2837
+ }, _r = (s, t) => {
2838
+ s = f(s);
2839
+ let e = t.umask ?? 18, i = t.mode | 448, r = (i & e) !== 0, n = t.uid, o = t.gid, h = typeof n == "number" && typeof o == "number" && (n !== t.processUid || o !== t.processGid), a = t.preserve, l = t.unlink, c = f(t.cwd), d = (E) => {
2840
+ E && h && ws(E, n, o), r && Kt.chmodSync(s, i);
2841
+ };
2842
+ if (s === c) return oo(c), d();
2843
+ if (a) return d(Kt.mkdirSync(s, {
2844
+ mode: i,
2845
+ recursive: !0
2846
+ }) ?? void 0);
2847
+ let T = f(path.relative(c, s)).split("/"), D;
2848
+ for (let E = T.shift(), x = c; E && (x += "/" + E); E = T.shift()) {
2849
+ x = f(path.resolve(x));
2850
+ try {
2851
+ Kt.mkdirSync(x, i), D = D || x;
2852
+ } catch {
2853
+ let Le = Kt.lstatSync(x);
2854
+ if (Le.isDirectory()) continue;
2855
+ if (l) {
2856
+ Kt.unlinkSync(x), Kt.mkdirSync(x, i), D = D || x;
2857
+ continue;
2858
+ } else if (Le.isSymbolicLink()) return new St(x, x + "/" + T.join("/"));
2859
+ }
2860
+ }
2861
+ return d(D);
2862
+ };
2863
+ var ys = Object.create(null), Or = 1e4, Vt = /* @__PURE__ */ new Set(), Tr = (s) => {
2864
+ Vt.has(s) ? Vt.delete(s) : ys[s] = s.normalize("NFD").toLocaleLowerCase("en").toLocaleUpperCase("en"), Vt.add(s);
2865
+ let t = ys[s], e = Vt.size - Or;
2866
+ if (e > Or / 10) {
2867
+ for (let i of Vt) if (Vt.delete(i), delete ys[i], --e <= 0) break;
2868
+ }
2869
+ return t;
2870
+ };
2871
+ var ao = (process.env.TESTING_TAR_FAKE_PLATFORM || process.platform) === "win32", lo = (s) => s.split("/").slice(0, -1).reduce((e, i) => {
2872
+ let r = e.at(-1);
2873
+ return r !== void 0 && (i = join(r, i)), e.push(i || "/"), e;
2874
+ }, []), yi = class {
2875
+ #t = /* @__PURE__ */ new Map();
2876
+ #i = /* @__PURE__ */ new Map();
2877
+ #s = /* @__PURE__ */ new Set();
2878
+ reserve(t, e) {
2879
+ t = ao ? ["win32 parallelization disabled"] : t.map((r) => mt(join(Tr(r))));
2880
+ let i = new Set(t.map((r) => lo(r)).reduce((r, n) => r.concat(n)));
2881
+ this.#i.set(e, {
2882
+ dirs: i,
2883
+ paths: t
2884
+ });
2885
+ for (let r of t) {
2886
+ let n = this.#t.get(r);
2887
+ n ? n.push(e) : this.#t.set(r, [e]);
2888
+ }
2889
+ for (let r of i) {
2890
+ let n = this.#t.get(r);
2891
+ if (!n) this.#t.set(r, [new Set([e])]);
2892
+ else {
2893
+ let o = n.at(-1);
2894
+ o instanceof Set ? o.add(e) : n.push(new Set([e]));
2895
+ }
2896
+ }
2897
+ return this.#r(e);
2898
+ }
2899
+ #n(t) {
2900
+ let e = this.#i.get(t);
2901
+ if (!e) throw new Error("function does not have any path reservations");
2902
+ return {
2903
+ paths: e.paths.map((i) => this.#t.get(i)),
2904
+ dirs: [...e.dirs].map((i) => this.#t.get(i))
2905
+ };
2906
+ }
2907
+ check(t) {
2908
+ let { paths: e, dirs: i } = this.#n(t);
2909
+ return e.every((r) => r && r[0] === t) && i.every((r) => r && r[0] instanceof Set && r[0].has(t));
2910
+ }
2911
+ #r(t) {
2912
+ return this.#s.has(t) || !this.check(t) ? !1 : (this.#s.add(t), t(() => this.#e(t)), !0);
2913
+ }
2914
+ #e(t) {
2915
+ if (!this.#s.has(t)) return !1;
2916
+ let e = this.#i.get(t);
2917
+ if (!e) throw new Error("invalid reservation");
2918
+ let { paths: i, dirs: r } = e, n = /* @__PURE__ */ new Set();
2919
+ for (let o of i) {
2920
+ let h = this.#t.get(o);
2921
+ if (!h || h?.[0] !== t) continue;
2922
+ let a = h[1];
2923
+ if (!a) {
2924
+ this.#t.delete(o);
2925
+ continue;
2926
+ }
2927
+ if (h.shift(), typeof a == "function") n.add(a);
2928
+ else for (let l of a) n.add(l);
2929
+ }
2930
+ for (let o of r) {
2931
+ let h = this.#t.get(o), a = h?.[0];
2932
+ if (!(!h || !(a instanceof Set))) if (a.size === 1 && h.length === 1) {
2933
+ this.#t.delete(o);
2934
+ continue;
2935
+ } else if (a.size === 1) {
2936
+ h.shift();
2937
+ let l = h[0];
2938
+ typeof l == "function" && n.add(l);
2939
+ } else a.delete(t);
2940
+ }
2941
+ return this.#s.delete(t), n.forEach((o) => this.#r(o)), !0;
2942
+ }
2943
+ };
2944
+ var Lr = () => process.umask();
2945
+ var Dr = Symbol("onEntry"), _s = Symbol("checkFs"), Nr = Symbol("checkFs2"), Os = Symbol("isReusable"), P = Symbol("makeFs"), Ts = Symbol("file"), xs = Symbol("directory"), gi = Symbol("link"), Ar = Symbol("symlink"), Ir = Symbol("hardlink"), Re = Symbol("ensureNoSymlink"), Cr = Symbol("unsupported"), Fr = Symbol("checkPath"), Rs = Symbol("stripAbsolutePath"), yt = Symbol("mkdir"), O = Symbol("onError"), Ri = Symbol("pending"), kr = Symbol("pend"), $t = Symbol("unpend"), gs = Symbol("ended"), bs = Symbol("maybeClose"), Ls = Symbol("skip"), ge = Symbol("doChown"), be = Symbol("uid"), _e = Symbol("gid"), Oe = Symbol("checkedCwd"), Te = (process.env.TESTING_TAR_FAKE_PLATFORM || process.platform) === "win32", uo = 1024, mo = (s, t) => {
2946
+ if (!Te) return Kt.unlink(s, t);
2947
+ let e = s + ".DELETE." + randomBytes(16).toString("hex");
2948
+ Kt.rename(s, e, (i) => {
2949
+ if (i) return t(i);
2950
+ Kt.unlink(e, t);
2951
+ });
2952
+ }, po = (s) => {
2953
+ if (!Te) return Kt.unlinkSync(s);
2954
+ let t = s + ".DELETE." + randomBytes(16).toString("hex");
2955
+ Kt.renameSync(s, t), Kt.unlinkSync(t);
2956
+ }, vr = (s, t, e) => s !== void 0 && s === s >>> 0 ? s : t !== void 0 && t === t >>> 0 ? t : e, Xt = class extends rt {
2957
+ [gs] = !1;
2958
+ [Oe] = !1;
2959
+ [Ri] = 0;
2960
+ reservations = new yi();
2961
+ transform;
2962
+ writable = !0;
2963
+ readable = !1;
2964
+ uid;
2965
+ gid;
2966
+ setOwner;
2967
+ preserveOwner;
2968
+ processGid;
2969
+ processUid;
2970
+ maxDepth;
2971
+ forceChown;
2972
+ win32;
2973
+ newer;
2974
+ keep;
2975
+ noMtime;
2976
+ preservePaths;
2977
+ unlink;
2978
+ cwd;
2979
+ strip;
2980
+ processUmask;
2981
+ umask;
2982
+ dmode;
2983
+ fmode;
2984
+ chmod;
2985
+ constructor(t = {}) {
2986
+ if (t.ondone = () => {
2987
+ this[gs] = !0, this[bs]();
2988
+ }, super(t), this.transform = t.transform, this.chmod = !!t.chmod, typeof t.uid == "number" || typeof t.gid == "number") {
2989
+ if (typeof t.uid != "number" || typeof t.gid != "number") throw new TypeError("cannot set owner without number uid and gid");
2990
+ if (t.preserveOwner) throw new TypeError("cannot preserve owner in archive and also set owner explicitly");
2991
+ this.uid = t.uid, this.gid = t.gid, this.setOwner = !0;
2992
+ } else this.uid = void 0, this.gid = void 0, this.setOwner = !1;
2993
+ this.preserveOwner = t.preserveOwner === void 0 && typeof t.uid != "number" ? process.getuid?.() === 0 : !!t.preserveOwner, this.processUid = (this.preserveOwner || this.setOwner) && process.getuid ? process.getuid() : void 0, this.processGid = (this.preserveOwner || this.setOwner) && process.getgid ? process.getgid() : void 0, this.maxDepth = typeof t.maxDepth == "number" ? t.maxDepth : uo, this.forceChown = t.forceChown === !0, this.win32 = !!t.win32 || Te, this.newer = !!t.newer, this.keep = !!t.keep, this.noMtime = !!t.noMtime, this.preservePaths = !!t.preservePaths, this.unlink = !!t.unlink, this.cwd = f(path.resolve(t.cwd || process.cwd())), this.strip = Number(t.strip) || 0, this.processUmask = this.chmod ? typeof t.processUmask == "number" ? t.processUmask : Lr() : 0, this.umask = typeof t.umask == "number" ? t.umask : this.processUmask, this.dmode = t.dmode || 511 & ~this.umask, this.fmode = t.fmode || 438 & ~this.umask, this.on("entry", (e) => this[Dr](e));
2994
+ }
2995
+ warn(t, e, i = {}) {
2996
+ return (t === "TAR_BAD_ARCHIVE" || t === "TAR_ABORT") && (i.recoverable = !1), super.warn(t, e, i);
2997
+ }
2998
+ [bs]() {
2999
+ this[gs] && this[Ri] === 0 && (this.emit("prefinish"), this.emit("finish"), this.emit("end"));
3000
+ }
3001
+ [Rs](t, e) {
3002
+ let i = t[e], { type: r } = t;
3003
+ if (!i || this.preservePaths) return !0;
3004
+ let [n, o] = ce(i), h = o.replaceAll(/\\/g, "/").split("/");
3005
+ if (h.includes("..") || Te && /^[a-z]:\.\.$/i.test(h[0] ?? "")) {
3006
+ if (e === "path" || r === "Link") return this.warn("TAR_ENTRY_ERROR", `${e} contains '..'`, {
3007
+ entry: t,
3008
+ [e]: i
3009
+ }), !1;
3010
+ let a = path.posix.dirname(t.path), l = path.posix.normalize(path.posix.join(a, h.join("/")));
3011
+ if (l.startsWith("../") || l === "..") return this.warn("TAR_ENTRY_ERROR", `${e} escapes extraction directory`, {
3012
+ entry: t,
3013
+ [e]: i
3014
+ }), !1;
3015
+ }
3016
+ return n && (t[e] = String(o), this.warn("TAR_ENTRY_INFO", `stripping ${n} from absolute ${e}`, {
3017
+ entry: t,
3018
+ [e]: i
3019
+ })), !0;
3020
+ }
3021
+ [Fr](t) {
3022
+ let e = f(t.path), i = e.split("/");
3023
+ if (this.strip) {
3024
+ if (i.length < this.strip) return !1;
3025
+ if (t.type === "Link") {
3026
+ let r = f(String(t.linkpath)).split("/");
3027
+ if (r.length >= this.strip) t.linkpath = r.slice(this.strip).join("/");
3028
+ else return !1;
3029
+ }
3030
+ i.splice(0, this.strip), t.path = i.join("/");
3031
+ }
3032
+ if (isFinite(this.maxDepth) && i.length > this.maxDepth) return this.warn("TAR_ENTRY_ERROR", "path excessively deep", {
3033
+ entry: t,
3034
+ path: e,
3035
+ depth: i.length,
3036
+ maxDepth: this.maxDepth
3037
+ }), !1;
3038
+ if (!this[Rs](t, "path") || !this[Rs](t, "linkpath")) return !1;
3039
+ if (t.absolute = path.isAbsolute(t.path) ? f(path.resolve(t.path)) : f(path.resolve(this.cwd, t.path)), !this.preservePaths && typeof t.absolute == "string" && t.absolute.indexOf(this.cwd + "/") !== 0 && t.absolute !== this.cwd) return this.warn("TAR_ENTRY_ERROR", "path escaped extraction target", {
3040
+ entry: t,
3041
+ path: f(t.path),
3042
+ resolvedPath: t.absolute,
3043
+ cwd: this.cwd
3044
+ }), !1;
3045
+ if (t.absolute === this.cwd && t.type !== "Directory" && t.type !== "GNUDumpDir") return !1;
3046
+ if (this.win32) {
3047
+ let { root: r } = path.win32.parse(String(t.absolute));
3048
+ t.absolute = r + ts(String(t.absolute).slice(r.length));
3049
+ let { root: n } = path.win32.parse(t.path);
3050
+ t.path = n + ts(t.path.slice(n.length));
3051
+ }
3052
+ return !0;
3053
+ }
3054
+ [Dr](t) {
3055
+ if (!this[Fr](t)) return t.resume();
3056
+ switch (co.equal(typeof t.absolute, "string"), t.type) {
3057
+ case "Directory":
3058
+ case "GNUDumpDir": t.mode && (t.mode = t.mode | 448);
3059
+ case "File":
3060
+ case "OldFile":
3061
+ case "ContiguousFile":
3062
+ case "Link":
3063
+ case "SymbolicLink": return this[_s](t);
3064
+ default: return this[Cr](t);
3065
+ }
3066
+ }
3067
+ [O](t, e) {
3068
+ t.name === "CwdError" ? this.emit("error", t) : (this.warn("TAR_ENTRY_ERROR", t, { entry: e }), this[$t](), e.resume());
3069
+ }
3070
+ [yt](t, e, i) {
3071
+ gr(f(t), {
3072
+ uid: this.uid,
3073
+ gid: this.gid,
3074
+ processUid: this.processUid,
3075
+ processGid: this.processGid,
3076
+ umask: this.processUmask,
3077
+ preserve: this.preservePaths,
3078
+ unlink: this.unlink,
3079
+ cwd: this.cwd,
3080
+ mode: e
3081
+ }, i);
3082
+ }
3083
+ [ge](t) {
3084
+ return this.forceChown || this.preserveOwner && (typeof t.uid == "number" && t.uid !== this.processUid || typeof t.gid == "number" && t.gid !== this.processGid) || typeof this.uid == "number" && this.uid !== this.processUid || typeof this.gid == "number" && this.gid !== this.processGid;
3085
+ }
3086
+ [be](t) {
3087
+ return vr(this.uid, t.uid, this.processUid);
3088
+ }
3089
+ [_e](t) {
3090
+ return vr(this.gid, t.gid, this.processGid);
3091
+ }
3092
+ [Ts](t, e) {
3093
+ let i = typeof t.mode == "number" ? t.mode & 4095 : this.fmode, r = new et(String(t.absolute), {
3094
+ flags: ms(t.size),
3095
+ mode: i,
3096
+ autoClose: !1
3097
+ });
3098
+ r.on("error", (a) => {
3099
+ r.fd && Kt.close(r.fd, () => {}), r.write = () => !0, this[O](a, t), e();
3100
+ });
3101
+ let n = 1, o = (a) => {
3102
+ if (a) {
3103
+ r.fd && Kt.close(r.fd, () => {}), this[O](a, t), e();
3104
+ return;
3105
+ }
3106
+ --n === 0 && r.fd !== void 0 && Kt.close(r.fd, (l) => {
3107
+ l ? this[O](l, t) : this[$t](), e();
3108
+ });
3109
+ };
3110
+ r.on("finish", () => {
3111
+ let a = String(t.absolute), l = r.fd;
3112
+ if (typeof l == "number" && t.mtime && !this.noMtime) {
3113
+ n++;
3114
+ let c = t.atime || /* @__PURE__ */ new Date(), d = t.mtime;
3115
+ Kt.futimes(l, c, d, (y) => y ? Kt.utimes(a, c, d, (T) => o(T && y)) : o());
3116
+ }
3117
+ if (typeof l == "number" && this[ge](t)) {
3118
+ n++;
3119
+ let c = this[be](t), d = this[_e](t);
3120
+ typeof c == "number" && typeof d == "number" && Kt.fchown(l, c, d, (y) => y ? Kt.chown(a, c, d, (T) => o(T && y)) : o());
3121
+ }
3122
+ o();
3123
+ });
3124
+ let h = this.transform && this.transform(t) || t;
3125
+ h !== t && (h.on("error", (a) => {
3126
+ this[O](a, t), e();
3127
+ }), t.pipe(h)), h.pipe(r);
3128
+ }
3129
+ [xs](t, e) {
3130
+ let i = typeof t.mode == "number" ? t.mode & 4095 : this.dmode;
3131
+ this[yt](String(t.absolute), i, (r) => {
3132
+ if (r) {
3133
+ this[O](r, t), e();
3134
+ return;
3135
+ }
3136
+ let n = 1, o = () => {
3137
+ --n === 0 && (e(), this[$t](), t.resume());
3138
+ };
3139
+ t.mtime && !this.noMtime && (n++, Kt.utimes(String(t.absolute), t.atime || /* @__PURE__ */ new Date(), t.mtime, o)), this[ge](t) && (n++, Kt.chown(String(t.absolute), Number(this[be](t)), Number(this[_e](t)), o)), o();
3140
+ });
3141
+ }
3142
+ [Cr](t) {
3143
+ t.unsupported = !0, this.warn("TAR_ENTRY_UNSUPPORTED", `unsupported entry type: ${t.type}`, { entry: t }), t.resume();
3144
+ }
3145
+ [Ar](t, e) {
3146
+ let i = f(path.relative(this.cwd, path.resolve(path.dirname(String(t.absolute)), String(t.linkpath)))).split("/");
3147
+ this[Re](t, this.cwd, i, () => this[gi](t, String(t.linkpath), "symlink", e), (r) => {
3148
+ this[O](r, t), e();
3149
+ });
3150
+ }
3151
+ [Ir](t, e) {
3152
+ let i = f(path.resolve(this.cwd, String(t.linkpath))), r = f(String(t.linkpath)).split("/");
3153
+ this[Re](t, this.cwd, r, () => this[gi](t, i, "link", e), (n) => {
3154
+ this[O](n, t), e();
3155
+ });
3156
+ }
3157
+ [Re](t, e, i, r, n) {
3158
+ let o = i.shift();
3159
+ if (this.preservePaths || o === void 0) return r();
3160
+ let h = path.resolve(e, o);
3161
+ Kt.lstat(h, (a, l) => {
3162
+ if (a) return r();
3163
+ if (l?.isSymbolicLink()) return n(new St(h, path.resolve(h, i.join("/"))));
3164
+ this[Re](t, h, i, r, n);
3165
+ });
3166
+ }
3167
+ [kr]() {
3168
+ this[Ri]++;
3169
+ }
3170
+ [$t]() {
3171
+ this[Ri]--, this[bs]();
3172
+ }
3173
+ [Ls](t) {
3174
+ this[$t](), t.resume();
3175
+ }
3176
+ [Os](t, e) {
3177
+ return t.type === "File" && !this.unlink && e.isFile() && e.nlink <= 1 && !Te;
3178
+ }
3179
+ [_s](t) {
3180
+ this[kr]();
3181
+ let e = [t.path];
3182
+ t.linkpath && e.push(t.linkpath), this.reservations.reserve(e, (i) => this[Nr](t, i));
3183
+ }
3184
+ [Nr](t, e) {
3185
+ let i = (h) => {
3186
+ e(h);
3187
+ }, r = () => {
3188
+ this[yt](this.cwd, this.dmode, (h) => {
3189
+ if (h) {
3190
+ this[O](h, t), i();
3191
+ return;
3192
+ }
3193
+ this[Oe] = !0, n();
3194
+ });
3195
+ }, n = () => {
3196
+ if (t.absolute !== this.cwd) {
3197
+ let h = f(path.dirname(String(t.absolute)));
3198
+ if (h !== this.cwd) return this[yt](h, this.dmode, (a) => {
3199
+ if (a) {
3200
+ this[O](a, t), i();
3201
+ return;
3202
+ }
3203
+ o();
3204
+ });
3205
+ }
3206
+ o();
3207
+ }, o = () => {
3208
+ Kt.lstat(String(t.absolute), (h, a) => {
3209
+ if (a && (this.keep || this.newer && a.mtime > (t.mtime ?? a.mtime))) {
3210
+ this[Ls](t), i();
3211
+ return;
3212
+ }
3213
+ if (h || this[Os](t, a)) return this[P](null, t, i);
3214
+ if (a.isDirectory()) {
3215
+ if (t.type === "Directory") {
3216
+ let l = this.chmod && t.mode && (a.mode & 4095) !== t.mode, c = (d) => this[P](d ?? null, t, i);
3217
+ return l ? Kt.chmod(String(t.absolute), Number(t.mode), c) : c();
3218
+ }
3219
+ if (t.absolute !== this.cwd) return Kt.rmdir(String(t.absolute), (l) => this[P](l ?? null, t, i));
3220
+ }
3221
+ if (t.absolute === this.cwd) return this[P](null, t, i);
3222
+ mo(String(t.absolute), (l) => this[P](l ?? null, t, i));
3223
+ });
3224
+ };
3225
+ this[Oe] ? n() : r();
3226
+ }
3227
+ [P](t, e, i) {
3228
+ if (t) {
3229
+ this[O](t, e), i();
3230
+ return;
3231
+ }
3232
+ switch (e.type) {
3233
+ case "File":
3234
+ case "OldFile":
3235
+ case "ContiguousFile": return this[Ts](e, i);
3236
+ case "Link": return this[Ir](e, i);
3237
+ case "SymbolicLink": return this[Ar](e, i);
3238
+ case "Directory":
3239
+ case "GNUDumpDir": return this[xs](e, i);
3240
+ }
3241
+ }
3242
+ [gi](t, e, i, r) {
3243
+ Kt[i](e, String(t.absolute), (n) => {
3244
+ n ? this[O](n, t) : (this[$t](), t.resume()), r();
3245
+ });
3246
+ }
3247
+ }, ye = (s) => {
3248
+ try {
3249
+ return [null, s()];
3250
+ } catch (t) {
3251
+ return [t, null];
3252
+ }
3253
+ }, xe = class extends Xt {
3254
+ sync = !0;
3255
+ [P](t, e) {
3256
+ return super[P](t, e, () => {});
3257
+ }
3258
+ [_s](t) {
3259
+ if (!this[Oe]) {
3260
+ let n = this[yt](this.cwd, this.dmode);
3261
+ if (n) return this[O](n, t);
3262
+ this[Oe] = !0;
3263
+ }
3264
+ if (t.absolute !== this.cwd) {
3265
+ let n = f(path.dirname(String(t.absolute)));
3266
+ if (n !== this.cwd) {
3267
+ let o = this[yt](n, this.dmode);
3268
+ if (o) return this[O](o, t);
3269
+ }
3270
+ }
3271
+ let [e, i] = ye(() => Kt.lstatSync(String(t.absolute)));
3272
+ if (i && (this.keep || this.newer && i.mtime > (t.mtime ?? i.mtime))) return this[Ls](t);
3273
+ if (e || this[Os](t, i)) return this[P](null, t);
3274
+ if (i.isDirectory()) {
3275
+ if (t.type === "Directory") {
3276
+ let [h] = this.chmod && t.mode && (i.mode & 4095) !== t.mode ? ye(() => {
3277
+ Kt.chmodSync(String(t.absolute), Number(t.mode));
3278
+ }) : [];
3279
+ return this[P](h, t);
3280
+ }
3281
+ let [n] = ye(() => Kt.rmdirSync(String(t.absolute)));
3282
+ this[P](n, t);
3283
+ }
3284
+ let [r] = t.absolute === this.cwd ? [] : ye(() => po(String(t.absolute)));
3285
+ this[P](r, t);
3286
+ }
3287
+ [Ts](t, e) {
3288
+ let i = typeof t.mode == "number" ? t.mode & 4095 : this.fmode, r = (h) => {
3289
+ let a;
3290
+ try {
3291
+ Kt.closeSync(n);
3292
+ } catch (l) {
3293
+ a = l;
3294
+ }
3295
+ (h || a) && this[O](h || a, t), e();
3296
+ }, n;
3297
+ try {
3298
+ n = Kt.openSync(String(t.absolute), ms(t.size), i);
3299
+ } catch (h) {
3300
+ return r(h);
3301
+ }
3302
+ let o = this.transform && this.transform(t) || t;
3303
+ o !== t && (o.on("error", (h) => this[O](h, t)), t.pipe(o)), o.on("data", (h) => {
3304
+ try {
3305
+ Kt.writeSync(n, h, 0, h.length);
3306
+ } catch (a) {
3307
+ r(a);
3308
+ }
3309
+ }), o.on("end", () => {
3310
+ let h = null;
3311
+ if (t.mtime && !this.noMtime) {
3312
+ let a = t.atime || /* @__PURE__ */ new Date(), l = t.mtime;
3313
+ try {
3314
+ Kt.futimesSync(n, a, l);
3315
+ } catch (c) {
3316
+ try {
3317
+ Kt.utimesSync(String(t.absolute), a, l);
3318
+ } catch {
3319
+ h = c;
3320
+ }
3321
+ }
3322
+ }
3323
+ if (this[ge](t)) {
3324
+ let a = this[be](t), l = this[_e](t);
3325
+ try {
3326
+ Kt.fchownSync(n, Number(a), Number(l));
3327
+ } catch (c) {
3328
+ try {
3329
+ Kt.chownSync(String(t.absolute), Number(a), Number(l));
3330
+ } catch {
3331
+ h = h || c;
3332
+ }
3333
+ }
3334
+ }
3335
+ r(h);
3336
+ });
3337
+ }
3338
+ [xs](t, e) {
3339
+ let i = typeof t.mode == "number" ? t.mode & 4095 : this.dmode, r = this[yt](String(t.absolute), i);
3340
+ if (r) {
3341
+ this[O](r, t), e();
3342
+ return;
3343
+ }
3344
+ if (t.mtime && !this.noMtime) try {
3345
+ Kt.utimesSync(String(t.absolute), t.atime || /* @__PURE__ */ new Date(), t.mtime);
3346
+ } catch {}
3347
+ if (this[ge](t)) try {
3348
+ Kt.chownSync(String(t.absolute), Number(this[be](t)), Number(this[_e](t)));
3349
+ } catch {}
3350
+ e(), t.resume();
3351
+ }
3352
+ [yt](t, e) {
3353
+ try {
3354
+ return _r(f(t), {
3355
+ uid: this.uid,
3356
+ gid: this.gid,
3357
+ processUid: this.processUid,
3358
+ processGid: this.processGid,
3359
+ umask: this.processUmask,
3360
+ preserve: this.preservePaths,
3361
+ unlink: this.unlink,
3362
+ cwd: this.cwd,
3363
+ mode: e
3364
+ });
3365
+ } catch (i) {
3366
+ return i;
3367
+ }
3368
+ }
3369
+ [Re](t, e, i, r, n) {
3370
+ if (this.preservePaths || i.length === 0) return r();
3371
+ let o = e;
3372
+ for (let h of i) {
3373
+ o = path.resolve(o, h);
3374
+ let [a, l] = ye(() => Kt.lstatSync(o));
3375
+ if (a) return r();
3376
+ if (l.isSymbolicLink()) return n(new St(o, path.resolve(e, i.join("/"))));
3377
+ }
3378
+ r();
3379
+ }
3380
+ [gi](t, e, i, r) {
3381
+ let n = `${i}Sync`;
3382
+ try {
3383
+ Kt[n](e, String(t.absolute)), r(), t.resume();
3384
+ } catch (o) {
3385
+ return this[O](o, t);
3386
+ }
3387
+ }
3388
+ };
3389
+ var Eo = (s) => {
3390
+ let t = new xe(s), e = s.file, i = Kt.statSync(e);
3391
+ new Be(e, {
3392
+ readSize: s.maxReadSize || 16 * 1024 * 1024,
3393
+ size: i.size
3394
+ }).pipe(t);
3395
+ }, wo = (s, t) => {
3396
+ let e = new Xt(s), i = s.maxReadSize || 16 * 1024 * 1024, r = s.file;
3397
+ return new Promise((o, h) => {
3398
+ e.on("error", h), e.on("close", o), Kt.stat(r, (a, l) => {
3399
+ if (a) h(a);
3400
+ else {
3401
+ let c = new _t(r, {
3402
+ readSize: i,
3403
+ size: l.size
3404
+ });
3405
+ c.on("error", h), c.pipe(e);
3406
+ }
3407
+ });
3408
+ });
3409
+ }, So = K(Eo, wo, (s) => new xe(s), (s) => new Xt(s), (s, t) => {
3410
+ t?.length && Qi(s, t);
3411
+ });
3412
+ var yo = (s, t) => {
3413
+ let e = new kt(s), i = !0, r, n;
3414
+ try {
3415
+ try {
3416
+ r = Kt.openSync(s.file, "r+");
3417
+ } catch (a) {
3418
+ if (a?.code === "ENOENT") r = Kt.openSync(s.file, "w+");
3419
+ else throw a;
3420
+ }
3421
+ let o = Kt.fstatSync(r), h = Buffer.alloc(512);
3422
+ t: for (n = 0; n < o.size; n += 512) {
3423
+ for (let c = 0, d = 0; c < 512; c += d) {
3424
+ if (d = Kt.readSync(r, h, c, h.length - c, n + c), n === 0 && h[0] === 31 && h[1] === 139) throw new Error("cannot append to compressed archives");
3425
+ if (!d) break t;
3426
+ }
3427
+ let a = new F(h);
3428
+ if (!a.cksumValid) break;
3429
+ let l = 512 * Math.ceil((a.size || 0) / 512);
3430
+ if (n + l + 512 > o.size) break;
3431
+ n += l, s.mtimeCache && a.mtime && s.mtimeCache.set(String(a.path), a.mtime);
3432
+ }
3433
+ i = !1, Ro(s, e, n, r, t);
3434
+ } finally {
3435
+ if (i) try {
3436
+ Kt.closeSync(r);
3437
+ } catch {}
3438
+ }
3439
+ }, Ro = (s, t, e, i, r) => {
3440
+ let n = new Wt(s.file, {
3441
+ fd: i,
3442
+ start: e
3443
+ });
3444
+ t.pipe(n), bo(t, r);
3445
+ }, go = (s, t) => {
3446
+ t = Array.from(t);
3447
+ let e = new wt(s), i = (n, o, h) => {
3448
+ let a = (T, D) => {
3449
+ T ? Kt.close(n, (E) => h(T)) : h(null, D);
3450
+ }, l = 0;
3451
+ if (o === 0) return a(null, 0);
3452
+ let c = 0, d = Buffer.alloc(512), y = (T, D) => {
3453
+ if (T || D === void 0) return a(T);
3454
+ if (c += D, c < 512 && D) return Kt.read(n, d, c, d.length - c, l + c, y);
3455
+ if (l === 0 && d[0] === 31 && d[1] === 139) return a(/* @__PURE__ */ new Error("cannot append to compressed archives"));
3456
+ if (c < 512) return a(null, l);
3457
+ let E = new F(d);
3458
+ if (!E.cksumValid) return a(null, l);
3459
+ let x = 512 * Math.ceil((E.size ?? 0) / 512);
3460
+ if (l + x + 512 > o || (l += x + 512, l >= o)) return a(null, l);
3461
+ s.mtimeCache && E.mtime && s.mtimeCache.set(String(E.path), E.mtime), c = 0, Kt.read(n, d, 0, 512, l, y);
3462
+ };
3463
+ Kt.read(n, d, 0, 512, l, y);
3464
+ };
3465
+ return new Promise((n, o) => {
3466
+ e.on("error", o);
3467
+ let h = "r+", a = (l, c) => {
3468
+ if (l && l.code === "ENOENT" && h === "r+") return h = "w+", Kt.open(s.file, h, a);
3469
+ if (l || !c) return o(l);
3470
+ Kt.fstat(c, (d, y) => {
3471
+ if (d) return Kt.close(c, () => o(d));
3472
+ i(c, y.size, (T, D) => {
3473
+ if (T) return o(T);
3474
+ let E = new et(s.file, {
3475
+ fd: c,
3476
+ start: D
3477
+ });
3478
+ e.pipe(E), E.on("error", o), E.on("close", n), _o(e, t);
3479
+ });
3480
+ });
3481
+ };
3482
+ Kt.open(s.file, h, a);
3483
+ });
3484
+ }, bo = (s, t) => {
3485
+ t.forEach((e) => {
3486
+ e.charAt(0) === "@" ? Ct({
3487
+ file: path.resolve(s.cwd, e.slice(1)),
3488
+ sync: !0,
3489
+ noResume: !0,
3490
+ onReadEntry: (i) => s.add(i)
3491
+ }) : s.add(e);
3492
+ }), s.end();
3493
+ }, _o = async (s, t) => {
3494
+ for (let e of t) e.charAt(0) === "@" ? await Ct({
3495
+ file: path.resolve(String(s.cwd), e.slice(1)),
3496
+ noResume: !0,
3497
+ onReadEntry: (i) => s.add(i)
3498
+ }) : s.add(e);
3499
+ s.end();
3500
+ }, vt = K(yo, go, () => {
3501
+ throw new TypeError("file is required");
3502
+ }, () => {
3503
+ throw new TypeError("file is required");
3504
+ }, (s, t) => {
3505
+ if (!Bs(s)) throw new TypeError("file is required");
3506
+ if (s.gzip || s.brotli || s.zstd || s.file.endsWith(".br") || s.file.endsWith(".tbr")) throw new TypeError("cannot append to compressed archives");
3507
+ if (!t?.length) throw new TypeError("no paths specified to add/replace");
3508
+ });
3509
+ K(vt.syncFile, vt.asyncFile, vt.syncNoFile, vt.asyncNoFile, (s, t = []) => {
3510
+ vt.validate?.(s, t), To(s);
3511
+ });
3512
+ var To = (s) => {
3513
+ let t = s.filter;
3514
+ s.mtimeCache || (s.mtimeCache = /* @__PURE__ */ new Map()), s.filter = t ? (e, i) => t(e, i) && !((s.mtimeCache?.get(e) ?? i.mtime ?? 0) > (i.mtime ?? 0)) : (e, i) => !((s.mtimeCache?.get(e) ?? i.mtime ?? 0) > (i.mtime ?? 0));
3515
+ };
3516
+ //#endregion
490
3517
  //#region ../../packages/memory/src/embeddings.ts
491
3518
  /**
492
3519
  * Text used to generate embeddings for a memo.
@@ -593,7 +3620,10 @@ function createFastEmbedEngineImpl(cacheDir) {
593
3620
  }
594
3621
  async function loadEmbedder(cacheDir) {
595
3622
  const { FlagEmbedding, EmbeddingModel } = await import("fastembed");
596
- if (cacheDir !== void 0) mkdirSync(cacheDir, { recursive: true });
3623
+ if (cacheDir !== void 0) {
3624
+ mkdirSync(cacheDir, { recursive: true });
3625
+ await ensureEmbeddingModelFiles(cacheDir);
3626
+ }
597
3627
  const model = EmbeddingModel.BGESmallZH;
598
3628
  const initOpts = cacheDir !== void 0 ? {
599
3629
  model,
@@ -613,6 +3643,58 @@ async function loadEmbedder(cacheDir) {
613
3643
  * into `<cacheDir>/<name>/` from the staged archive `<cacheDir>/<name>.tar.gz`.
614
3644
  */
615
3645
  const BGESMALLZH_CACHE_NAME = "fast-bge-small-zh-v1.5";
3646
+ /** Escape hatch for air-gapped installs and tests: points at an archive file. */
3647
+ const EMBEDDING_MODEL_URL_ENV = "SCREAM_CODE_EMBEDDING_MODEL_URL";
3648
+ function modelWeightsPath(cacheDir) {
3649
+ return join(cacheDir, BGESMALLZH_CACHE_NAME, "model_optimized.onnx");
3650
+ }
3651
+ function sha256File(filePath) {
3652
+ return readFile(filePath).then((data) => createHash("sha256").update(data).digest("hex"));
3653
+ }
3654
+ /**
3655
+ * Stage the embedding model files when they are missing: download the pinned
3656
+ * archive (HTTP status verified — unlike fastembed's own downloader), extract,
3657
+ * and verify the weights payload against the pinned sha256.
3658
+ *
3659
+ * A partially extracted tree or a hash mismatch is removed so the caller keeps
3660
+ * the honest "weights missing" state the setup card is gated on — never a
3661
+ * directory that only looks installed.
3662
+ */
3663
+ async function ensureEmbeddingModelFiles(cacheDir, options) {
3664
+ if (hasEmbeddingModelCache(cacheDir)) return;
3665
+ mkdirSync(cacheDir, { recursive: true });
3666
+ const modelDir = join(cacheDir, BGESMALLZH_CACHE_NAME);
3667
+ const stagingPath = join(cacheDir, `${BGESMALLZH_CACHE_NAME}.tar.gz.part`);
3668
+ const url = options?.sourceUrl ?? process.env[EMBEDDING_MODEL_URL_ENV] ?? "https://github.com/LIUTod/scream-code/releases/download/embedding-models-v1/fast-bge-small-zh-v1.5.tar.gz";
3669
+ try {
3670
+ let response;
3671
+ try {
3672
+ response = await fetch(url);
3673
+ } catch (error) {
3674
+ const message = error instanceof Error ? error.message : String(error);
3675
+ throw new Error(`fetch failed for ${url}: ${message}`, { cause: error });
3676
+ }
3677
+ if (!response.ok) throw new Error(`model source returned HTTP ${response.status} for ${url}`);
3678
+ await writeFile(stagingPath, Buffer.from(await response.arrayBuffer()));
3679
+ await So({
3680
+ file: stagingPath,
3681
+ cwd: cacheDir
3682
+ });
3683
+ const weightsPath = modelWeightsPath(cacheDir);
3684
+ if (!existsSync(weightsPath) || statSync(weightsPath).size === 0) throw new Error(`model package did not contain weights after extraction: ${url}`);
3685
+ const sha256 = await sha256File(weightsPath);
3686
+ const expected = options?.expectedOnnxSha256 ?? "1294ea4b6331115a353d81f96b85e8c8d7fdcc284453d5b2fab5b016230aad38";
3687
+ if (sha256 !== expected) throw new Error(`model weights sha256 mismatch (${sha256.slice(0, 12)}… != ${expected.slice(0, 12)}…): ${url}`);
3688
+ } catch (error) {
3689
+ rmSync(modelDir, {
3690
+ recursive: true,
3691
+ force: true
3692
+ });
3693
+ throw error instanceof Error ? error : new Error(String(error));
3694
+ } finally {
3695
+ rmSync(stagingPath, { force: true });
3696
+ }
3697
+ }
616
3698
  const PLATFORM_FAILURE = /@anush008\/tokenizers|Failed to load native binding|Unsupported (?:OS|platform|architecture)|ERR_DLOPEN_FAILED|invalid ELF header|Exec format error|is not a valid Win32 application|GLIBC_\d+[^"\n]*not found|Error loading shared library|cannot open shared object file/iu;
617
3699
  const ARCHIVE_FAILURE = /\bTAR_[A-Z_]+|incorrect header check|unexpected end of file|invalid tar|zlib/iu;
618
3700
  const NETWORK_FAILURE = /\b(?:ENOTFOUND|EAI_AGAIN|ETIMEDOUT|ECONNRESET|ECONNREFUSED|EHOSTUNREACH|socket hang up|fetch failed)\b|network error|HTTP \d{3}/iu;
@@ -944,7 +4026,7 @@ var MemoryMemoStore = class MemoryMemoStore {
944
4026
  }
945
4027
  for (const legacyPath of legacyPaths) {
946
4028
  await unlink(legacyPath).catch(() => {});
947
- await rmdir(dirname$1(legacyPath)).catch(() => {});
4029
+ await rmdir(dirname$2(legacyPath)).catch(() => {});
948
4030
  }
949
4031
  await writeFile(markerPath, `${migratedCount}\n`, "utf8").catch(() => {});
950
4032
  } finally {
@@ -1390,7 +4472,7 @@ var MemoryMemoStore = class MemoryMemoStore {
1390
4472
  };
1391
4473
  }
1392
4474
  async ensureDir() {
1393
- await mkdir(dirname$1(this.dbPath), { recursive: true });
4475
+ await mkdir(dirname$2(this.dbPath), { recursive: true });
1394
4476
  }
1395
4477
  async withWriteLock(fn) {
1396
4478
  const next = this.writeLock.then(fn, fn);
@@ -1918,7 +5000,7 @@ var DreamTracker = class {
1918
5000
  state: this.state
1919
5001
  };
1920
5002
  try {
1921
- await mkdir(dirname$1(this.lockPath), { recursive: true });
5003
+ await mkdir(dirname$2(this.lockPath), { recursive: true });
1922
5004
  await writeFileAtomic(this.lockPath, JSON.stringify(data, null, 2));
1923
5005
  } catch {}
1924
5006
  }
@@ -1952,7 +5034,7 @@ var DreamTracker = class {
1952
5034
  }
1953
5035
  for (const candidate of candidates) try {
1954
5036
  await rm(candidate);
1955
- await rmdir(dirname$1(candidate)).catch(() => {});
5037
+ await rmdir(dirname$2(candidate)).catch(() => {});
1956
5038
  } catch {}
1957
5039
  }
1958
5040
  };
@@ -2024,7 +5106,7 @@ var KnowledgeStore = class {
2024
5106
  }
2025
5107
  async _doInit() {
2026
5108
  if (this.initialized) return;
2027
- await mkdir(dirname$1(this.dbPath), { recursive: true });
5109
+ await mkdir(dirname$2(this.dbPath), { recursive: true });
2028
5110
  this.db = new DatabaseSync(this.dbPath);
2029
5111
  this.db.exec("PRAGMA journal_mode = WAL;");
2030
5112
  this.db.exec("PRAGMA foreign_keys = ON;");
@@ -4172,4 +7254,4 @@ async function chunkVectorFallback(store, queryVec, topK) {
4172
7254
  return results;
4173
7255
  }
4174
7256
  //#endregion
4175
- export { sharedMemoStore as A, buildProjectTagCloud as B, applyConsolidation as C, parseMemoryMemos as D, buildExitExtractionPrompt as E, probeLocalEmbeddingSupport as F, join$1 as G, basename$1 as H, createMemoryMemo as I, relative$1 as J, normalize as K, toSummary as L, clearEmbeddingModelCache as M, createFastEmbedEngine as N, stripMemoryTags as O, hasEmbeddingModelCache as P, generateTags as R, DreamTracker as S, EXIT_EXTRACTION_SYSTEM_PROMPT as T, dirname$1 as U, rankMemos as V, isAbsolute$1 as W, resolve$1 as Y, splitLargeSection as _, isSupportedFile as a, sharedKnowledgeStoreReady as b, buildExtractionUserPrompt as c, extractQueryEntities as d, parseExtractionResponse as f, estimateTokens as g, chunkText as h, ingestFile as i, classifyEmbeddingFailure as j, MemoryMemoStore as k, extractEventFromChunk as l, chunkMarkdown as m, multiSearchWithTrace as n, ENTITY_TYPES as o, rerankEventsWithLlm as p, parse as q, ingestDirectory as r, EXTRACTION_SYSTEM_PROMPT as s, multiSearch as t, extractJsonFromText as u, stripMarkdown as v, buildConsolidationPlan as w, KnowledgeStore as x, sharedKnowledgeStore as y, normalizeTags as z };
7257
+ export { sharedMemoStore as A, buildProjectTagCloud as B, applyConsolidation as C, parseMemoryMemos as D, buildExitExtractionPrompt as E, probeLocalEmbeddingSupport as F, join$1 as G, basename$1 as H, createMemoryMemo as I, relative$1 as J, normalize as K, toSummary as L, clearEmbeddingModelCache as M, createFastEmbedEngine as N, stripMemoryTags as O, hasEmbeddingModelCache as P, generateTags as R, DreamTracker as S, EXIT_EXTRACTION_SYSTEM_PROMPT as T, dirname$2 as U, rankMemos as V, isAbsolute$1 as W, resolve$1 as Y, splitLargeSection as _, isSupportedFile as a, sharedKnowledgeStoreReady as b, buildExtractionUserPrompt as c, extractQueryEntities as d, parseExtractionResponse as f, estimateTokens as g, chunkText as h, ingestFile as i, classifyEmbeddingFailure as j, MemoryMemoStore as k, extractEventFromChunk as l, chunkMarkdown as m, multiSearchWithTrace as n, ENTITY_TYPES as o, rerankEventsWithLlm as p, parse$1 as q, ingestDirectory as r, EXTRACTION_SYSTEM_PROMPT as s, multiSearch as t, extractJsonFromText as u, stripMarkdown as v, buildConsolidationPlan as w, KnowledgeStore as x, sharedKnowledgeStore as y, normalizeTags as z };